중간자 공격
1. 개요
[image]
'''MITM (Man In the Middle attack)'''
두 사람이 서로 통신을 주고 받는데, 중간에 제 3의 인물이 끼여서 데이터를 중계한다면, 이 제3자는 그 내용을 모두 알 수 있다. 또한, 중간에서 데이터를 위/변조하면 두 사람에게 서로 잘못된 정보를 전달하게 만들 수도 있다.
2. 수법
- 지나가는 패킷을 모두 감청하여 ID / 패스워드 / 공인인증서 등 중요 개인정보를 훔쳐 볼 수 있다.
- DNS 정보 등을 위조하여 피싱 사이트로 연결되도록 속일 수 있다.
- 암호 키 교환에 개입하여 암호화에 사용되는 키를 빼낼 수 있다.
3. 실제 악용 사례
4. 방어
이 공격법을 방어하기 위한 목적으로 만들어진 것이 TLS 통신이다. TLS 통신은 클라이언트가 연결을 요청하면 서버에서 자신의 공개키가 포함된 인증서를 보내고, 클라이언트는 인증서의 내용을 연결 프로그램(웹 브라우저 등) 또는 운영체제에 내장된 루트 인증서 정보와 비교하여 무결성을 검증한 뒤, 인증서에 있는 공개키로 대칭형 암호화 키를 만들 수 있는 난수 정보를 공개키로 암호화해 서버로 보내며, 클라이언트와 서버가 각각 이 난수에서 암호화 키를 만들어내 암호화 연결이 개시된다.
여기서 중요한 점은 '''루트 인증서를 신뢰할 수 있어야 한다'''는 것이다. 보안성이 충분이 보장되지 않았거나, 내부적으로 악용할 가능성이 있거나 하는 루트 인증서는 허용해서는 안 된다. 한국의 GPKI(행정전자서명) 인증서는 보안성을 검증받지 못해 파이어폭스의 자체 루트 인증서 저장소에 탑재되지 못했는데, 마이크로소프트는 정부기관이라는 이유로 보안성 검증 없이 윈도우의 루트 인증서 저장소에 GPKI 루트 인증서를 넣었다. 이 때문에 윈도우에서 크롬, IE, 엣지 등의 브라우저는 GPKI 인증서를 사용하는 사이트에 접속할 수 있지만 파이어폭스는 HTTPS 인증을 실패해서 접속할 수 없다.
윈도우에는 마찬가지로 파이어폭스 등에서 탑재를 거부한 중국 정부의 루트 인증서 역시 탑재되어 있으며, 이렇게 보안성 검증 없이 신뢰되는 인증서는 매우 큰 통신 보안 위협이 된다.
5. 기타
입자의 하나인 중간자(中間'''子''')와는 무관하다. 번역 과정에서 한자음이 겹친 것.
몇몇 백신 또는 광고 차단 소프트웨어[1] 들은 이 방식으로 통신 내역을 읽어 광고를 차단한다. 특히 HTTPS 필터링 기능을 사용할 경우 인증서를 신뢰할 것을 요구하는데, 이는 웹사이트 로그인 등 민감한 데이터가 모두 해당 프로그램으로 흘러간다는 뜻이다. 이런 방법은 심각한 보안 위협을 초래할 수 있으며, 가급적 사용하지 않을 것이 권장된다. 광고 차단이 필요하다면 Intra와 같은 DNS 변경 프로그램으로 광고 차단이 지원되는 DNS를 사용하거나, 확장 프로그램이 지원되는 파이어폭스 웹 브라우저 또는 광고 차단이 지원되는 파이어폭스 포커스, Brave, Bromite등을 사용하는 것이 좋다. 광고 차단 프로그램에는 보통 바이러스나 맬웨어 유포 사이트도 차단하는 기능이 있다. 미심쩍은 파일을 받지 않는 등 보안 수칙을 지키면 모든 통신정보를 백신에 보내지 않더라도 위협은 현저히 줄어든다.