[목차]

 

 

1. 무선 WEP 패킷 분석

    * WEP 암호화 이론

    * Host OS 패킷 파일 분석 및 암호 크랙 실습

 

 

2. 공개 키 암호 이론

 

 

 


 

 

 

[무선 WEP 패킷 분석 - RC4 패킷 분석]

무선 WEP 패킷을 분석해 보고, WEP 방식이 사용하고 있는 취약점에 대해 알아 본다.

 

 

 

■ 사용 시스템

kali

Host OS(win 7 or win 10)

 

 

 

■ 무선 보안 프로토콜

암호화 방식

WEP(wired equivalent privacy) ==> 권장하지 않는 방식

WPA(Wi-Fi Protected Access)/WPA2

TKIP(Temporal Key Integrity Protocol) 임시키 무결성 프로토콜

AES(Advanced Encryption Standard) 고급 암호 표준

 

 

 

■ WEP(Wired Equivalent Privacy) 키 크래킹

무선랜의 취약점을 보완하기 위해 1999년 IEEE 802.11에서 WEP 암호화 방식을 표준안으로 확정했다. IEEE 802.11 표준에 규정돼 있는 WEP 암화화 방식은 IEEE 802.11b 프로토콜에서 적용되기 시작했으며, RC4 암호화 알고리즘을 사용한다. 40비트 길이의 WEP 기밀 키와 임의로 할당되는 24비트 IV(Initialization Vector)로 조합된 총 64비트의 키를 이용해 RC4 알고리즘을 통해 암호화하는 방식이다.

 

 

 

(암호화 방식)

- MAC 데이터 부분에 대한 CRC-32 계산 결과 값인 32비트 길이의

ICV(Integrity Check Value)를 얻어 페이로드의 끝에 추가한다.

- 24비트의 IV 값을 랜덤하게 생성한다.

- IV + WEP 키(64비트) 값을 RC4 알고리즘에 대입해 키 스트림을 생성한다.

- ICV 값이 추가된 평문과 RC4 알고리즘을 통과한 키 스트림을 XOR 연산한다.

- XOR 연산 결과 생성된 암호문 앞에 IV 값을 추가해 전송한다.

 

 

(복호화 방식)

- 평문으로 전달된 IV 값과 WEP 비밀 키를 조합해 키 스트림을 생성한다.

- 암호문과 키 스트림을 XOR 연산해 복호화하면 평문과 ICV 값을 획득할 수 있다.

- 복호화된 평문의 ICV 값과 복호화된 데이터에서 나온 ICV 값을 비교해서

동일 여부를 확인한 후 전송이 올바르게 되었는지 판단한다.

 

 

 

(WEP 취약점)

WEP 암호화 방식은 키 길이가 짧은 것이 취약점이 아니라 IV 값의 노출과 반복 사용하는 RC4 알고리즘에 취약점이 있다. WEP 암호화 방식은 비밀키와 임의로 선택된 IVS 값을 이용해 4개의 키를 생성하고 생성된 키 중 하나를 선택해 암호화할 때 사용한다. 이때 키스트림의 재사용이 발생한다. 24비트의 IV는 5000개의 패킷마다 IV 값이 반복될 가능성이 50% 이상 된다고 한다. 그래서 2003년 와이파이 Alliance에 의해 WPA 암호화 방식이 임시 표준으로 대체하게 되었다. WEP 암화화 방식은 무선랜은 보안상에 문제가 많다라는 편견을 심어준 대표적인 보안 프로토콜이다.

 

 

■ WEP 해킹 툴의 종류

(CLI) #aircrack-ng (우리가 사용할 툴)

(GUI) Fern-wifi-cracker

(GUI) WIFI-Pumpkin (강추!)

 

 

 

 

(Host OS) 패킷 파일 분석 및 암호 크랙 실습

 

 

1. 공유디렉토리(src\Packet\WEP\*)

패킷 캡쳐 파일을 다운로드 한다.

 

 

2. (kali) 칼리리눅스에 공유 설정

 

분산파일시스템

* CIFS(common internet file system) => SAMBA S/W

* NFS(network file system) => NFS S/W

 

# mkdir -p /share

# chmod 777 /share /* 테스트용 퍼미션 */

# vi /etc/samba/smb.conf

[share]

comment = Kali Linux Shared Directory

path = /share

browseable = yes

read only = no

writable = yes

public = yes

 

smb.conf 파일의 하단 부분에 위의 내용을 추가한다.

 

 

[root@kali ~]# systemctl --help | grep now

--now Start or stop unit after enabling or disabling it

 

[root@kali ~]# systemctl enable smbd --now

Synchronizing state of smbd.service with SysV service script with /lib/systemd/systemd-sysv-install.

Executing: /lib/systemd/systemd-sysv-install enable smbd

 

# systemctl status smbd

 

 

 

3. (Host OS) 공유디렉토리에 있는 파일을 kali 시스템의 공유디렉토리 넣기

 

<CTRL + ESC> => \\192.168.10.60

Host OS의 공유디렉토리에 있는 패킷 파일들을

kali 리눅스 공유디렉토리(ex:/share)에 넣는다.

 

 

 

4. (kali) wireshark 프로그램을 통한 패킷 파일 확인

# cd /share

# wireshark packet-01.cap &

wireshark > View > [v] Wireless Toolbar

display filter : (wlan.da == 94:76:b7:f8:44:83)

* AP(8A:36:6C:E6:B1:88) <--> Handphone(94:76:B7:F8:44:83)

 

 

패킷 내용 분석

IEEE 802.11 QoS Data, Flag: .p....F.

WEP parameters

Initialization Vector : 0x370937 <== 요기 확인(4 bits x 6 = 24 bits)

 

 

5. WEP Key Crack

# aircrack-ng -z packet-01.cap

Aircrack-ng 1.3

 

 

[00:00:01] Tested 548417 keys (got 570 IVs)

 

KB depth byte(vote)

0 44/ 45 F0(1024) 01( 768) 05( 768) 0B( 768) 10( 768)

1 18/ 1 CC(1280) 0C(1024) 13(1024) 16(1024) 27(1024)

2 21/ 40 E1(1280) 10(1024) 3A(1024) 3E(1024) 51(1024) 

3 13/ 3 FB(1536) 03(1280) 0D(1280) 36(1280) 3D(1280) 

4 3/ 13 B5(1536) 0A(1280) 45(1280) 49(1280) 6B(1280)

 

KEY FOUND! [ 61:61:61:61:61 ] (ASCII: aaaaa )

Decrypted correctly: 100%

 

10초 안에 키가 crack 된다.

 

 

 


 

 

[공개 키 암호]

 

 

 

■ 공개 키 암호란?

■ 공개 키를 사용한 통신의 흐름

■ 여러 가지 용어

■ 공개 키 암호로도 해결할 수 없는 문제

 

 

 

 

1. 공개 키 암호란?

 

■ 공개 키 암호(Public-Key Cryptography)

"암호화 키"와 "복호화 키"가 분리

송신자는 "암호화 키"를 써서 메시지를 암호화하고, 수신자는 "복호화 키"를 써서 암호문을 복호화 한다.

 

 

 

■ 공개키 암호의 암호화

송신자가 필요한 것은 "암호화 키" 뿐

수신자가 필요한 것은 "복호화 키" 뿐

도청자에게 알려지면 곤란한 것은 "복호화 키"

"암호화 키"는 도청자에게 알려져도 무방

 

 

 

■ 공개키의 의미

 

공개키(Public Key)

"암호화 키"는 일반에게 공개해도 무방

수신자에게 메일로 전달해도 무방

신문의 광고란에 실어도 무방

간판으로 해서 길가에 세워도 무방

Web 페이지를 통하여 전 세계에서 읽을 수 있도록 해도 무방

따라서, 도청자 이브에게 공개 키가 도청되는 것을 신경 쓸 필요가 없다.

 

 

 

■ 개인키의 의미

 

개인 키(Private Key)

"복호화 키"는 미공개

이 키는 본인만 사용

개인 키는 다른 사람에게 보이거나, 건네주거나 해서는 안 됨

개인 키는 자신의 통신 상대에게도 보여서는 안 됨

 

 

 

■ 공개키/개인키 쌍

 

개인키 --> 언제 공개키 생성 가능

공개키 --> 지워지면 개인키 생성 불가능

 

키 쌍(Key Pair)

공개 키와 개인 키는 둘이 한쌍

- 공개 키로 암호화한 암호문은 그 공개 키와 쌍이 되는 개인 키가 아니면 복호화 할 수 없다.

수학적인 관계

- 키 쌍을 이루고 있는 2개의 키는 서로 밀접한 관계

- 공개 키와 개인 키 쌍은 별개로 만들 수 없음(동시에 만들어 짐)

 

 

 

■ 공개키 암호의 역사

(1976) 휫필드 디피(Whitfield Diffie)와 마틴 헬먼(Martin Hellman)

- 공개 키 암호의 아이디어를 발표 -> 나중에 RSA 발표에 초석이 됨

- 암호화 키와 복호화 키의 분리성

- 공개 키가 어떠한 특성을 갖추고 있어야 하는지를 제시

(1977) Ralph Merkle 와 Martin Hellman

- 배낭(napsack) 암호

(1978) Ron Rivest, Adi Shamir, Leonard Adleman

- 공개 키 암호 알고리즘 RSA 발표

 

 

 

 

 

2. 공개 키를 사용한 통신의 흐름

 

공개 키를 사용해서 앨리스가 밥에게 메시지를 보낸다.

 

 

① 밥은 공개 키/개인 키로 이루어진 한 쌍의 키(KB(pub)/KB(pri)) 생성

② 밥은 자신의 공개 키(KB(pub))를 앨리스에게 전송

③ 앨리스는 밥의 공개 키를 써서 메시지(P)를 암호화(C=E(KB(pub),P))

④ 앨리스는 암호문(C)을 밥에게 전송

⑤ 밥은 자신의 개인 키(KB(pri))를 써서 암호문을 복호화(P=D(KB(pri),C))

 

 

 

 

3. 여러가지 용어

 

대칭 암호(Symmetric Cryptography)

동일키 사용해서 암호화와 복호화 수행

암호화와 복호화가 마치 거울처럼 대칭

키: 비밀키(Secret Key)라고 함

 

비대칭 암호(Asymmetric Cryptography)

대칭 암호와의 대비

암호화와 복호화에 다른 키 사용

키 : 개인키(private key)와 공개키(public key)

 

 

 

 

4. 공개 키 암호로도 해결 할 수 없는 문제

 

공개 키의 인증에 관한 문제

입수한 공개 키의 진위를 판단할 필요 => 메시지 인증 필요(MAC)

중간자 공격(Man-In-The-Middle attack, MITM)

 

공개 키 암호의 속도

대칭 암호에 비해 처리 속도가 몇 백 배나 늦음 => 하이브리드 암호 필요(+ 블럭 암호)

 

 

 


 

 

 

 

728x90

+ Recent posts