MITM(Man In The Middle) 공격: 중간자 공격
- 암호화된 통신 채널 이용으로 ARP Redirect, ICMP Redirect, ARP Spoofing이 불가해지자 등장
- 관련 도구: etterfilter, ettercap
SSH MITM
※ SSH(Secure Shell) 암호화 기법 → 전자서명 알고리즘 이용
① 클라이언트가 SSH 서버에게 공개키를 요청하고, SSH 접속용 공개키를 받음
② 클라이언트는 자신의 개인키로 데이터 암호화, 서버의 공개키로 데이터(클라이언트의 개인키와 암호화된 데이터)를 암호화하여 서버로 전송
③ 서버는 클라이언트로부터 수신한 암호화된 데이터(클라이언트 개인키 + 암호화된 데이터)를 자신의 개인키로 복호화한 후, 이를 다시 클라이언트의 공개키로 복호화해서 데이터를 읽음
※ SSH MITM 공격
① 클라이언트가 서버에 SSH 접속을 요청하면 공격자는 ARP Spoofing 공격 등으로 SSH 서버인 것처럼 자신의 공개키를 전송
② 공격자는 서버에 자신이 클라이언트인 것처럼 공개키 요청
③ 클라이언트가 서버에 공격자의 공개키와 자신의 개인키로 암호화된 데이터를 보냄
④ 공격자는 자신의 개인키와 클라이언트 공개키로 복호화하고 내용을 확인 후, 다시 자신의 개인키와 서버의 공개키로 암호화해서 서버로 전송
⑤ 서버가 클라이언트로 데이터를 보낼 때도 공격자는 서버가 전송한 데이터를 복호화한 후, 다시 암호화해서 클라이언트로 전송
SSL 암호화 통신
※ SSL(Secure Socket Layer): 웹서버와 브라우저 간 보안통신을 위해 만든 암호화 프로토콜
※ SSL 연결 생성 과정
① 클라이언트는 서버에게 지원 가능한 방식(암호, 키 교환, 서명, 압축)을 알려줌
② 서버는 클라이언트에게 지원 가능한 방식이 포함된 서버 인증서를 발송
③ 서버가 클라이언트 인증서를 요구할 경우 클라이언트 인증서를 서버로 전송
④ 암호화키로 사용될 세션키를 랜덤으로 생성하고, 이를 서버의 공개키로 암호화한 후 서버로 전송
⑤ 서버는 클라이언트에게 전송받은 세션키 복호화
⑥ 클라이언트는 전송된 모든 메시지에 대한 방식을 다음부터 적용할 것을 알리는 종결 메시지를 발송한 후 데이터 전송 단계로 이동
SSL 암호화 통신 MITM
※ SSL 스니핑: 서버와 클라이언트 간 인증서를 가로채는 공격
- 공격자는 임의의 인증서를 생성하고, 이를 클라이언트에게 보내 별도의 SSL 세션 생성 후 중간에서 스니핑
※ SSL 스트립
- MITM 공격을 통해 클라이언트와 서버 간의 모든 암호화된 HTTPS 데이터를 HTTP로 변조하여 클라이언트에게 전달
- SSL 스트립 과정
① 사용자가 웹서버 접근 시 HTTP 사용하여 로그인 시도
② 웹 서버는 로그인 시 SSL 통신이 이뤄지도록 사용자에게 HTTPS 유도
③ 공격자는 서버로부터 전달받은 URL을 HTTPS가 아닌 HTTP로 변조하여 사용자에게 전달
④ 사용자는 HTTP 로그인하고, 공격자는 사용자 계정 정보를 스니핑
MITM 공격 대응책
※ MITM 공격 보안 대책
- SSH MITM 공격: SSL 2.0 사용
- 안전하지 않은 인증서는 확실하지 않으면 접속하지 않기
※ SSL 스트립 공격 보안 대책
- HSTS(Http Strict Transport Security)
- 본인이 접속한 사이트가 SSL로 정상적으로 접속되고 있는지 확인
공부하면서 학습 목적으로 작성한 포스팅이므로 내용이 완전하지 않습니다ㅠ
계속해서 학습 후 지식이 좀 더 쌓이면 수시로 수정해나갈 예정입니다!
틀린 내용은 둥글게 댓글 달아주시면 빠른 확인 후 수정하겠습니다. :)
'보안 > 네트워크 보안' 카테고리의 다른 글
세션 하이재킹(Session Hijacking) (0) | 2020.12.14 |
---|---|
스푸핑(Spoofing) (1) | 2020.12.14 |
스니핑(Sniffing) (0) | 2020.12.14 |
스캐닝 공격 분석(Nmap, 와이어샤크 이용) (0) | 2020.12.14 |
사이버공격 - 정보수집(스캐닝) (0) | 2020.12.13 |
댓글