본문 바로가기

네트워크 보안

MITM Attack

암호학에서 Man-In-The-Middle attack [MITM]은 공격자가 메시지를 주고 받는 두 당사자간의 메시지들을 마음대로 읽고 삽입 , 수정할수 있는 공격이다. 이때 두 당사자들은 공격자가 공격하고 있다는 사실을 모르고 있고 공격자는 두 당사자 (희생자)들에게서 오가는 메시지들을 관찰하거나 가로챌 수 있다. MITM공격은 특히 인증절차가 이루어지지 않은 원형의 디피-헬프만 키 교환프로토콜에 적용할수있다.

1.클라이언트가 서버에 접속하면 서버인증서(서버의 공개키를 인증기관이 전자서명으로 인증한것)를 전송받는다.

2.클라이언트는 받은 서버 인증서를 분석하여 신뢰할 수 있는 인증서 인지를 검토한 후 서버의 공개키를 추출합니다.

3.클라이언트가 세션키로 사용할 임의의 메시지를 서버의 공개키로 암호화하여 서버에 전송합니다.

4.서버에서는 자신의 비밀키로 세션키를 복호화하여 그 키를 사용하여 대칭키 암호방식으로 메시지를 암호화하여 클라이언트와 통신하게 되며 이것은 "https" 라는 별도의 프로토콜을 사용하게 됩니다.

얼핏 보기에 강력한 암호화 통신을 할 수 있을 것 처럼 보이지만 한가지 취약점을 가지고 있습니다.웹 브라우저는 기본적으로 내장되지 않은 기관이 발행한 인증서의 확인을 전적으로 유저의 확인에 의존한다는 것입니다.

Defenses against the attack

- 공개키 [Public keys]

- 강한 상호 인증 [Mutual authentication]

- 비밀키 [High Infirmation Entroy Secrects]

- 패스워드 [Low Infirmation Entroy Secrects]

- 음성 인식 혹은 생체 인식 방법

 

공격 시나리오


 
 
 
1. Attacker는 Victim 에게 DNS Spoofing 을 이용하여 자신을 주소를 Server의 주소인것처럼 속입니다.
2. Victim 으로부터 서버로의 패킷을 릴레이 합니다. (Victim은 접속이 아무 이상 없이 잘되므로 통신을 합니다)
3. 로그인시 Server로부터 SSL통신을 위한 인증서가 송신되고 Attacker는 Server의 인증서를 저장합니다.
4. Victim에게 Attacker의 인증서를 송신합니다.
5. Victim은 Attacker의 인증서를 승인하게 되고 Attacker의 공개키로 암호화 된 패킷은 해독되게 됩니다.
 
인증서를 생성하고 MITM공격 준비를 합니다.
 
 
 
 
 
DNS spoofing 을 이용하여 Attacker의 IP를 Server의 IP로 속입니다.
 
>dnsspoof -f /root/naver-ssl/hosts
 
 
 
nslookup 명령어를 이용하여 daum.net 의 IP를 확인 하면 192.168.1.100 번으로 Spoofing 된걸 알 수 있습니다
 

 
 
내용을 확인 하기 위해 패킷을 캡춰합니다.
 
 
 
 

 
 
 
 
Victim의 로그인 시에 나타난 인증서 확인 경고창.
이때 사용자는 대부분 아무 생각 없이 예를 클릭한다는것이 문제가 됩니다.

잡 힌 패킷을 해독하면 로그인시의 아이디와 암호를 확인 할 수 있습니다.

 

'네트워크 보안' 카테고리의 다른 글

SET(Secure Electronic Transaction)  (1) 2010.05.29
RFC 5280  (1) 2010.05.12
남의 무선랜을 쓰는 댓가  (2) 2010.04.29
DNS 정보  (0) 2010.04.29
Tutorial: MS Terminal Server Cracking  (3) 2010.04.29