티스토리 뷰
1.네트워크
- 네트워크란 노드 간에 데이터를 교환하는 망의 형태를 의미
- 네트워크 규모에 따라 PAN(Personal Area Network), LAN(Local Area Network), MAN(Metopolital Area Network), WAN(Wide Area Network)로 구분
- PAN은 개인 영역에서의 네트워크를 의미
- LAN은 가까운 건물 단위의 네트워크를 의미
- MAN은 도시단위
- WAN은 국가나 주 단위의 네트워크
통신망 | 설명 |
PAN(Personal Area Network | 가장 작은 규모인 개인 영역 네트워크로 약 5m 전후의 인접한 영역에서의 연결에 사용 |
LAN(Local Area Network) | 근거리 통신망을 의미하며, 비교적 짧은 거리에서 신뢰성있는 장치들 간의 고속 통신을 제공 |
MAN(Metropolitan Area Network) | 중거리 통신망은 LAN 보다는 큰 규모를 가지지만 광대역 네트워크인 WAN보다 작은 규모에서 연결을 지원 |
WAN(Wide Area Network) | LAN과 LAN을 연결해 주는 광대역 네트워크 |
(1) 프로토콜
- 과거 네트워크들은 각기 다른 통신 방법을 사용했는데, 이로 인해 서로 다른 네트워크에 속한 호스트들 간에는 통신이 불가하였다.
- 예로 네트워크라는 지역에서 각 호스트들의 언어가 달라 소통이 어렵다라고 생각하면 쉽다.
- 따라서 노드 간에 공통의 언어를 사용하도록 통신 규칙을 정할 필요성이 대두되었고 이를 통신 프로토콜이라 한다.
(2) 계층
- 네트워크는 복잡한 시스템들 간의 통신인만큼 다양한 프로토콜들을 필요
- 노드 간 성공적 데이터 교환이 가능하도록 다양한 프로토콜을 하나의 틀로 묶고자 하였는데 이 떄 사용한 개념이 계층
- 통신 프로토콜을 계층화함으로써 데이터 흐름을 쉽게 파악할 수 있게 되었다.
- 오류를 수정하거나 향상시켜야 하는 경우 해당 계층의 모듈만 교체하면 되어 설계와 구현이 용이
- 이러한 계층 구조를 표준화한 것이 OSI 7계층이다
(3) OSI 7계층
- OSI 7계층은 가장 상위 계층에 속하는 응용계층, 표현 계층, 세션계층, 전송계층, 네트워크계층, 데이터링크계층 그리고 가장 하위 계층에 속하는 물리 계층으로 이루어졌다.
(4) TCP/IP 5계층
- TCP/IP가 미 국방성에 의해 개발되면서 OSI 7계층이 개념적으로는 뛰어날지라도 TCP/IP 기반의 각종 인터넷 서비스가 발전하면서 실용성, 상업성 측면에서 우수하여 현재 실질적으로 사용되고 있다.
계층 명 | 특징 | 통신 단위 | 주요 프로토콜 |
Application(응용) | - 사용자의 요청으르 받고 그에 대한 응답을 담당하는 계층 - 요청이나 응답 에러 발생 시 그에대한 확인만 가능 |
Message(메시지) | - HTTP(HyperText Transfer Protocol) - DNS(Domain Name System) |
Transport(전송) | - Message를 원하는 socket으로 전송해주는 계층 - Segment 내의 Port Number를 식별하여 맞는 응용프로그램으로 Segment 전송 - 하위 계층에서 올라온 packet에 대하여 error 또는 loss를 감지하고 이를 핸들링 |
Segment (세그먼트) |
- TCP - UDP |
Network(네트워크) | - Transport 계층에서 보내고자 하는 packet을 목적지에 도착하도록 하는 역할 수행 - packet 내의 Source IP와 Destination IP를 식별해 전송 - packet이 목적지에 도달할 수 있는 최적의 경로를 선택하는 작업인 라우팅 수행 |
Packet(패킷) | - IP |
Data Link (데이터링크) |
- 노드와 노드 사이를 관장하는 계층 - 물리적 주소인 MAC(Media Access Control) 주소를 식별해 Frame을 전송 |
Frame(프레임) | - Ethernet - Wi-Fi |
Pysical(물리) | - 기기들이 연결되기 위한 물리적인 사항 결정 - 구리선, 광케이블 등의 물리적인 통신 채널을 통해 bit 신호를 주고 받는 역할 수행 |
Bit | - 10 Base T |
- TCP/IP 계층의 핵심 프로토콜은 IP와 TCP이다.
- TCP는 호스트 간에 데이터를 신뢰성 있게 주고 받기 위해 만들어진 프로토콜이다.
- TCP는 데이터 전송과정 중 손실된 데이터를 일련번호를 통해 손실을 찾아내고 순서를 재조합하여 신뢰성 있는 통신을 도와준다.
- TCP에서는 상위 계층에 있는 응용프로그램들이 네트워크를 통해 통신하므로 이들을 구분하기 위한 목적으로 Port 번호를 사용한다.
2. 인터넷
- 인터넷은 시스템은 수많은 서버와 클라이언트로 구성되어 있다.
서버 : 클라이언트에게 서비스를 제공하는 컴퓨터 프로그램 및 장치를 의미
클라이언트 : 서버가 제공하는 서비스를 이용하는 컴퓨터 프로그램 및 장치, 그 사용자를 의미 - 인터넷 상에서 통신을 할 때 송신 측에서는 데이터를 전달받을 컴퓨터나 서버를 특정해야하는데 이때 사용하는 것이 IP 주소이다.
- 하지만 IP주소는 사전에 알아내는 것이 번거롭고 사용자가 통신할 모든 IP주소를 외우기는 어렵기 때문에 이 때 사용되는 개념이 도메인 네임이다.
- 아래 사진과 같이 도메인 네임과 IP주소를 매칭하는 작업은 DNS 서버에서 담당한다.
- 그 외에 웹(WWW), 이메일(e-mail), FTP(File Transfer Protocol)등이 있는데 그 중 웹 서비스가 가장 널리 서용되고 있다.
3. 암호 기술
(1) 암호 기술 관련 용어
암호학(cryptology): 암호학의 어원은 '숨겨진', '비밀'을 의미하는 그리스어로 정보를 보호하기 위한 언어학적 및 수학적 방법론을 다루는 학문으로 크게 암호화 분야와 암호해독 분야로 나뉜다.
평문(Plaintext) : 암호 알고리즘의 입력 대상으로 암호화되지 않은 정보를 의미
암호문(Ciphertext): 평문에 암호 기술을 적용하여 해독하기 어려운 형태로 변형된 것을 의미
암호화(Encryption): 보안이 필요한 평문을 해독이 어려운 암호문으로 변환하는 과정
복호화(Decryption): 암호화의 역으로, 암호문을 평문으로 되돌리는 과정
암호화 방식(Cryptography): 암호화 및 복호화를 포함하는 개별적인 암호화 원리
암호화 알고리즘(Cryptographic Algorithm, Cipher): 암호화/복호화, 키 생성, 인증, 서명 등과 같은 암호화 프로세스를 설명하는 데 사용되는 일련의 수학 방정식 혹은 잘 정의된 절차를 의미
키(Key):키는 암호화 및 복호화하는 핵심 정보값으로 암호화 알고리즘 수행 시 반드시 필요, 평문에서 암호문으로 변환할 때에는 암호화 키가 필요하고, 암호문에서 평문으로 변환할 때에는 복호화가 키가 필요
암호 공격(Cryptographic attacks): 암호 시스템의 약점을 찾아 암호 시스템을 찾아 암호 시스템의 보안을 우회하는 방법
암호 분석(Crytanalysis): 암호문을 통해 평문과 키를 찾아내고자 분석하는 것을 의미
비밀번호(Password): 시스템에 허가된 사용자임을 확인할 때 제시해야 하는 미리 정해진 문자열
(2) 현대 암호
1) 대칭키 암호
- 대칭키 암호는 평문의 암호화에 사용하는 키와 암호문의 복호화에 사용하는 키가 동일한 알고리즘을 이야기한다.
- 위 그림과 같이 암호화와 복호화에 사용되는 키가 동일하다.
- 대칭키와 비대칭키 암호 둘다 키를 제외한 암호 시스템의 다른 모든 내용이 알려지더라도 암호 체계는 안전해야 한다는 Kerckhoffs's principle에 의한 것이다.
- 대칭키는 비대칭키 암호에 비해 필요한 연산량이 적기때문에 데이터 처리량이 커 계산 속도가 빠르다는 장점이 있지만 키의 공유가 어렵다는 단점이 있다.
- 대칭키 알고리즘은 암호화하는 평문의 단위에 따라 스트림 암호와 블록 암호로 분류할 수 있다.
스트림 암호
- 스트림 암호는 평문과 같은 키 스트림을 생성하여 암호화 및 복호화한다.
- 평문과 키의 2진수 값을 XOR 연산하여 암호화 하고 암호문과 키를 마찬가지로 XOR 연산하여 복호화한다.
블록암호
- 블록 암호란 평문을 블록 단위로 쪼갠 후, 각 블록을 암호화하는 대칭키 암호 시스템을 의미
- 대표적인 블록암호로는 DES(Data Encryption Standard)와 AES(Advanced Encryption Standard)가 있다.
- DES 암호는 64비트 평문을 56비트의 키를 이용하여 64비트 암호문으로 암호화하는 방식 과거에는 보안성이 뛰어났으나 현대에 컴퓨터 하드웨어가 발전함에 따라 권장하지 않는다.
- AES암호는 128비트 평문을 128비트 암호문으로 출력하는 알고리즘인데 키의 크기를 128비트나 192비트, 256비트 중 하나로 선택할 수 있다.
2) 비대칭키 암호
- 비대칭키 암호는 대칭키 암호의 단점을 극복하기 위해 제시되었다.
- 대칭키 암호 방식에서는 통신 대상자와의 키 교환에 어려움이 있었는데 비대칭키 암호 방식에서는 두 종류의 키를 만들어 제3자에게 공개되어도 보안에 문제가 없는 키와 반드시 지켜야 하는 키로 구분하였다. 이것을 각각 공개키와 개인키라고 한다.
- 공개키로 암호화한 데이터는 개인키로만 복호화할 수 있고 반대로 개인키로 암호화한 데이터는 공개키로만 복호화 할 수 있다.
- 예로 송신자 A는 수신자 B의 공개키로 보내고자 하는 메시지를 암호화하고 이를 전송한다.
- B는 수신한 암호문을 개인키로 복호화한다.
- 만약 제3자가 네트워크에 전송 중인 암호문을 가로챈다 하더라도 B의 공개키로 함호화된 데이터는 B의 개인키로만 복호화가 가능하므로 기밀성을 지킬 수 있다.
- 비대칭키 암호는 소인수분해 문제나 이산대수 문제와 같은 수학적으로 풀기 어려운 문제를 기반으로 만들어진다.
- 비대칭키 암호는 대칭키 암호에 비해 확장성이 뛰어나나 암호화 복호화 속도가 느리고 키의 길이가 길다는 단점이 있다. 대칭키와 비대칭키 암호의 장점을 혼합하여 비대칭키 암호를 이용해서 대칭키 암호의 키를 전달하는 하이브리드 방식이 주로 사용되고 있다.
- 대표적인 암호로 RSA, ElGamal, 타원곡선 암호, 하이브리드 암호 등이 있다.
RSA(Rivest-Shamir-Adleman)
- RSA는 소인수분해 문제에 기반하여 만들어진 비대칭키 암호
- 충분히 큰 두 소수 p와 q를 곱한 수가 주어졌을 때 이를 인수분해 하여 p와 q를 알아내는 것은 매우 어렵다는 특징을 활용
- RSA는 세계적으로 가장 널리 알려진 비대칭키 암호로 SSL을 비롯한 실생활에 널리 사용 중
ElGamal
- ElGamal은 이산대수 문제의 어려움에 기반하여 만들어진 비대칭키 암호
- 이산대수 문제는 p가 소수이고 g가 원시 원소(Primitive Element) 일 때, g,x,p를 이용하여 y= g^x mod p를 구하기는 쉬우나 g,y,p만 주어졌을 때 지수승 x를 구하기는 어렵다는 문제이다.
- 암호문 길이가 평문의 약 2배가 되는 특징 때문에 타 알고리즘에 비해 더 많은 메모리 공간이 필요하고 상대적으로 속도가 느리다는 단점이 있다.
타원곡선 암호(Elliptic Curve Cryptography; ECC)
- 타원곡선 상의 이산대수 문제에 기반한 비대칭키 암호이다.
- 타원콕선 암호는 타 암호 시스템과 비교하여 키의 길이가 짧으나
안전성 측면에서는 동등한 성능을 보여 효율성이 좋다.
3) 하이브리드 암호
- 대칭키 암호와 비대칭키 암호의 장점을 혼합한 방식이다.
- 송신자 A는 안전한 통신을 하고자하는 수신자 B와 대칭키 암호를 위한 키 K를 공유하기 위해 우선 K를 수신자의 공개키 PK_B로 암호화한다.
- 암호화된 데이터를 전달받은 수신자 B는 본인의 개인키 SK_B로 복호화하고 대칭키 암호키 K를 획득한다.
- 이후 송신자에게 올바르게 키 K를 전달받았다는 것을 알리는 일련의 절차를 거친 후 대칭키 암호를 이용하여 안전한 통신을 수행한다.
- 클라이언트와 서버와의 안전한 통신을 위해 사용되는 SSL/TLS가 하이브리드 암호 방식이 적용된 대표적인 예시이다.
- 웹 브라우저의 주소창에 보안연결(HTTPS)이라고 표시가 된 웹 페이지는 SSL/TLS가 적용된 안전한 통신을 지원하는 사이트에 해당
(3) 암호 공격
무차별 대입 공격
- 무차별 대입 공격은 비밀번호나 암호화 키를 무작위로 계속해서 입력함으로써 암호 기술을 무력화하는 공격 기법
사전 공격
- 사전 공격(Dictionary Attack)란 비밀번호에 자주 사용되는 단어나 문구를 담은 사전을 제작한 후 사전에 있는 단어를 입력하거나 해당 단어들을 조합함으로써 비밀번호를 알아내는 공격 기법
4. 해시 알고리즘
- 해시 알고리즘은 임의로 설정된 길이의 데이터를, 고정된 길이의 데이터로 매핑하는 함수이며 해시 함수 라고도 한다.
- 해시 알고리즘에 의해 계산된 결과 값은 해시값, 해시코드, 해시 체크섬, 메시지 다이제스트, 핑거프린트라고 부른다.
- 해시함수에는 암호학적 해시함수와 비암호학적 해시함수, 유사도 해시가 있다.
(1) 암호학적 해시함수
- 암호학적 해시함수(cyrptographic hash function)는 역상저학성 제2역상저항성, 충돌 저항성을 특징으로 가지며
- 대표적 알고리즘으로 MD5, SHA256, SHA512가 있다.
- 해시함수는 역상저항성, 제2역상저항성, 충돌저항성의 특성으로 인해 다양한 분야에서 사용되는데 그 중 가장 흔한 분야는 데이터 무결성 확인다.
- 데이터의 한 비트만 변경되어도 해시값 전체가 변경되는 특성을 이용한 것으로 디지털 포렌식에서는 분석 조사 대상 파일이 수집 당시의 원본과 다르지 않음을 증명하는데 사용
역상저항성(Preimage Resistance)
- 역사저항성은 해시값이 주어졌을 때 그 해시값을 생성하는 입력값을 알아내기가 불가능하다는 특성
- Y가 주어졌을때, h(x)=Y인 x를 찾는 것은 불가능하다는 것이다.
제2역상저항성 (Second Preimage Resistance)
- 제2역상저항성은 어떤 입력값과 그에 대한 해시값이 주어졌을 때, 동일한 해시값을 가지는 다른 입력값을 찾을 수 없어야 한다는 특성
- h(x)=y인 x와 y가 주어지고, h(x')=y(x != x')인 x'를 찾는 것이 어렵다는 것이다.
충동저항성
- 충돌이란 해시함수가 서로 다른 두 개의 입력값에 대한 동일한 출력값을 내는 것으로 무한한 개수의 입력값에 비해 길이가 고정된 출력값은 경우의 수가 유한하기 때문에 나타나는 현상
- 해시 충돌은 해시함수를 이용한 알고리즘의 효율성을 떨어트리기 때문에 의도적인 해시 충돌의 가능성을 최소화해야 한다.
- 충돌을 어렵게 만드는 특성이 충돌저항성인데 이는 해시값이 같은 입력값 두 개를 찾을 수 없다는 특성이다.
- h(x)=h(x') (x !=x')인 x, x'를 찾는 것이 어렵다는 것이다.
(2) 비암호학적 해시함수
- 역상저항성과 충돌저항성을 보장하는 암호학적 해시함수와는 다르게 비암호학적 해시함수는 데이터의 빠른 조화와 효율성에 중점을 둔다.
(3) 유사도 비교 해시
- 암호학적 해시 함수나 비암호학적 해시함수는 출력 값이 정확히 일치하는지를 확인함으로써 데이터의 무결성이 유지되었는지, 혹은 오류가 발생하였는지 검증한다.
- 그와 다르게 완전히 일치하는 값을 찾는 목적이 아닌, 유사한 데이터를 찾고자하는 알고리즘으로 퍼지 해시(Fuzzy Hash)가 있다.
- 퍼지 해시는 입력 데이터를 블록 단위로 나눠 해시 연산을 수행함으로써 출력값으로 연속적인 스트림을 제공한다.
- 출력된 스트림들이 어느정도 유사한지를 비교함으로써 두 데이터간의 유사도를 출력한다.
'Digital Forensics > 디지털 포렌식 개론' 카테고리의 다른 글
Digital Forensics Framework (0) | 2024.05.11 |
---|---|
Digital Evidence (1) | 2024.03.02 |
컴퓨터 구조 (3) | 2024.02.19 |
디지털 포렌식 기초 지식 (0) | 2024.02.16 |
디지털 포렌식이란 (2) | 2024.02.11 |