전체 글 280

블록체인

블록체인 Introduction기존의 중앙 집중형 DB1. 단일 서버에 저장된다.2. 쉬운 관리와 유지보수를 할 수 있다.3. 무결성과, 일관성을 보장하기 쉽다.4. 데이터가 한곳에 집중되어 있으므로 보안이 좋다. 분산 DB상태가 공유되어야 한다.A에서의 변경이 B, C, D에 적용이 되어야 한다. What is BlockChain?상태의 변화에 대한 기록이다 (트랜젝션을 기록)해시 값을 통해 다른 블록들과 연결한다.Hash = 이전 트랜젝션에 대한 요약 블록체인에서 값을 변경할 수 있지만, 탐지가 된다. 탐지를 하면 변경된 것을 원복 한다. 블록체인은 완전히 분산된 p2p 소프트웨어 네트워크이다.무결성만 보장해 준다. 기밀성, 가용성은 보장하지 않는다. (퍼블릭 블록체인인 경우 모든 데이터 완전히 공개..

카테고리 없음 2024.12.19

[프로그래머스] 충돌위험 찾기 (C++)

출처 : https://school.programmers.co.kr/learn/courses/30/lessons/340211?language=cpp 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이 방법시뮬레이션 문제이다. 적절한 자료구조 선택과, 시뮬레이션 방법을 선택한 후 구현하면 된다. 자료구조 선택 로봇을 stuct 자료구조를 이용해서 설정했다. 이유 1. 하나의 로봇이 가져야 할 정보가 많다.2. 여러 로봇을 헷갈리지 않게 제어하기 위해 여러 자료구조를 사용하는 거보다 구조체가 제어하기 쉬울 거 같다. 시뮬레이션 방법 선택 큐를 사용한 bfs로 시뮬레이션 이유 1. 먼저 도착한 로봇을 시뮬레..

Algorithm 2024.12.19

[SSL, HTTPS] HTTP over SSL

SSLTCP기반으로 연결되며, 클라이언트와 서버 간의 안전한 통신을 보장하기 위한 프로토콜이다. 서버 인증사용자가 서버를 신뢰할 수 있는지 확인사용자가 서버의 ID를 검증한다.서버 인증서의 발급기관 (CA)가 신뢰할 수 있는 CA의 목록에 포함되어 있는지 확인한다. 클라이언트 인증서버가 클라이언트의 신원을 확인클라이언트의 ID를 검증클라이언트의 CA 발급 기관이 신뢰할 수 있는 CA의 목록에 포함되어 있는지 확인 암호화된 SSL 연결클라이언트와 서버 간의 전송되는 모든 데이터는 암호화되어 전송된다. SSL Architecture  SSL은 주로 4개의 프로토콜 계층으로 구성되어 있다. Handshake Protocol서버와 클라이언트의 상호 인증키 교환 방법, 대칭 키 암호화 방법, HMAC Method..

보안 2024.12.18

DoS and DDoS

DoS서버가 처리할 수 있는 능력을 넘어서게 요청을 보내 정상적으로 작동하지 못하게 한다. Dos 종류1. Destruction : Disks, Data System 파괴2. System resource depletion : cpu, memory, 디스크 용량을 고갈3. Network resource depletion : 가바지 데이터를 보내서 밴드 width를 꽉 채운다.Ping of Death ICMP 패킷을 정상보다 크게 보내서 마비시킨다.큰 패킷은 라우터팅 되며 공격 네트워크에 도달하는 동안 작은 여러 개의 패킷으로 분할된다.공격 대상은 많은 패킷을 처리해야 하므로 많은 부하가 된다. 패킷은 왜 작게 나누어져야할까? 1. 네트워크를 통과할 때 네트워크의 MTU가 다 다르다.2. 라우터에서는 재조립..

보안 2024.12.17

[Wireless Security] 무선 보안 (IEEE 802.11 Wireless LAN)

개요무선 환경에서의 네트워크 연결 방법과 이에 따른 보안 방법에 대해 공부해 보자 무선  통신  특징  base station = 기지국backbone link = 네트워크에서 고속, 고용량 데이터 전송을 지원하는 핵심적인 연결  무선 링크의 특징1. 무선링크는 일반적으로 모바일과 base station을 연결하는 데 사용된다.2. backbond link로도 사용된다.3. MAC 프로토콜을 이용해 무선 링크의 접속을 관리한다. (여려 디바이스가 하나의 무선 채널을 공유하려고 할 때 충돌 방지)4. 무선 링크는 환경과 기술에 따라 전송 속도와, 거리가 달라질 수 있다. base station의 특징1. 모바일이 유선망으로 바로 연결을 못하기 때문에 패킷릴레이 역할을 한다. infrastructure mo..

보안 2024.12.16

Firewall

Firewall모든 트래픽을 막아 놓고 허용된 트래픽만 허용한다. 내부에서 외부로, 외부에서 내부로 이동하는 모든 트래픽은 방화벽을 통과해야 한다.오직 권한이 있는 트래픽만 통과한다. 방화벽의 접근 제어 및 보안 정책 적용 기법Service Control (서비스 제어)접근 가능한 인터넷 서비스 유형을 제어한다.ex) HTTP, FTP Direction Control (방향 제어)특정 서비스 요청이 어떤 방향으로 흐를 수 있을지 제어한다.ex) 내부, 외부User Control (사용자 제어)특정 사용자가 접근하려고 할 때 사용자의 권한에 따라 제어한다.Behavior Control (행동 제어)특정 서비스가 어떻게 사용되는지 제어한다.ex) 초당 트래픽을 몇 개까지 허용할지  Firewall 한계 1...

보안 2024.12.13

[IDS] 침입 탐시 시스템

IDS침입 사용자의 행동이 일반적인 합법 사용자와 다르다는 가정하에 동작한다.침입자의 행동을 수치화하여 비정상적인 활동을 실시간으로 감지한다. 정상적인 사용자와 비정상적인 사용자의 분포도를 통해 판별한다.서로 겹치는 부분을 최소화하는 것이 가장 중요하다. IDS의 탐지 기법통계 기반합법 사용자의 정상적인 행동 패턴 데이터를 수집하고 관찰된 행동에 대한 통계적 테스트를 적용하여 해당 행동이 합법적인 사용자 행동이 아닌지 확인한다.임계값 탐지사용자와 독립적으로 이벤트 발생 빈도를 기준으로 임계값을 설정하여 탐지한다.Profile based각 사용자의 활동 프로파일을 만들어 개인 계정의 행동 변화를 탐지한다.  2. 규칙 기반공격 패턴을 미리 정의해 두고 이를 기준으로 정한다. (이미 알려진 공격 패턴으로 ..

보안 2024.12.09

[이메일 보안] PGP

PGP  (Pretty Good Privacy)사실상 이메일 암호화 표준인 PGP에 대해 학습해 보자  Authentication 인증    Source1. 발신자는 메시지원본을 생성한다 M2. 메시지를 해시 알고리즘을 사용하여 해시 값을 생성한다. H3. 생성된 해시 값을 자신의 비밀키(RSA)를 사용해서 암호화한 후 메시지에 추가해 준다. Z Destination1. 수신자는 발신자의 RSA공개키를 사용해서 복호화 한다.2. 수신자는 메시지원본과 메시지의 해시값을 비교하여 메시지가 변경이 되었는지 확인한다. Confidentiality 기밀성   Z: 압축 Source1. 랜덤 세션 키를 생성한다. (대칭키 알고리즘 ex(AES))2. 세션 키를 사용해 메시지를 암호화한 후 메시지에 추가한다.3. 세..

보안 2024.12.01

[백준] 어른 상어 19237번 (c++) 구현

출처 : https://www.acmicpc.net/problem/19237 풀이 방법호흡이 긴 문제 이므로 구현해야 할 것을 정리하자  턴마다 수행해야 할 것상어 이동방향 정하기겹치면 강한 상어 살아남기냄새 시간 제거시간 0이면 냄새 제거냄새 생성위와 같이 순서를 정할 수 있다. 이제 구현할 때 사용할 자료구조를 선택하자일단 저장해야 할 자료 : 상어의 위치, 냄새 (시간, 위치, 누구의 냄새인지)를 저장해야 한다.이를 위해 상어의 위치는 pair의 벡터로 저장했다. 또한 냄새도 매 턴이 지날 때마다, 시간을 1씩 감소해야 하므로 2차원 배열을 사용하기보단, vector, int>를 활용하여 저장했다.냄새를 따로 저장했고, 상어의 이동을 위해 해당 상어의 상하좌우에 어떤 상어의 냄새가 있는지 빠르게 판..

Algorithm 2024.11.14

[프로그래머스] 산 모양 타일링 (c++) DP 경우에 따라 여러개 사용하기

출처 : https://school.programmers.co.kr/learn/courses/30/lessons/258705 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이 방법처음에는 완전 탐색을 이용해서 풀이했지만, 시간 초과가 발생했다.문제를 살펴보면, 특정 상황이 반복되는 것을 확인할 수 있다.하지만 다른 문제와 다르게 2가지의 상황이 반복되므로, DP를 두 개를 사용해야 했다.또한 DP의 기준점을 정하는 것도 중요하다.기준점으로 top으로 설정했다. (n개 이기도하고, 가장 명확한 기준점이 될 거 같아서)또한 케이스를 나누어야 한다.  n = 2일 때, dp[1]을 구하려면 두 가지 경우로..

Algorithm 2024.11.13