요즘 언론도 그렇고 여기저기 SSL 관련해서 말이 많습니다.
제가 하는 프로젝트도 해당 관련이고..
아무튼, 이런 상황에서 다음 두 가지 기술이 뭔지 정도는 알아두시면 좋을것 같아서 간단히 적어봅니다.
이해하기에 어려운것도 없고, 기존 기술들에 더하여 특별히 대단한것도 없습니다.
다만, 발견자의 발상에 대한 부분은 정말로 인정해야 하겠지만요. 멋집니다.
또 아무튼, 최대한(?) 날려서 썼습니다. 단순히 이게 뭔가..? 정도를 말해드리려는 취지이기도 하고,
하루종일 있었던 일정으로 인해 피곤하기도 하고(아.. 우루사),
가장 중요한건, 고량주를 약간 마셨더니 피로함이 일반적인 상태에서 세 제곱은 더한것 같아서..ㅎㅎㅎ
의미 전달상의 miss나 부족한 부분은 너그러운 마음으로 술취한 주정뱅이가 낙서했다고 생각해주시길 바랍니다. ㅎㅎ
친절한 그림따윈 없습니다. text-lover.
SSL MITM
말 그대로 중간에서 삽질하는 것.
스푸핑 기술을 통해 서버가 전송해주는 인증서를 중간에서 빼돌리고, attacker의 인증서를 클라이언트에게 전송.
클라이언트는 여기서부터 낚임. 이후, 클라이언트는 해당 인증서의 공개키를 이용하여 평문을 암호화한 뒤 서버에게 전달.
하지만, attacker가 중간에서 삽질을 하고있기 때문에 이 데이터를 훔쳐볼 수 있음.
원래라면 당연히 암호화가 되어있고, 이를 풀어보기도 힘들어서 그림의 떡이지만,
attacker가 자신의 인증서를 클라이언트에게 전송했기 때문에, 가지고 있던 해당 비밀키를 이용하여 이를 복호화하고 훔쳐봄.
단, 클라이언트의 웹 브라우저상에 신뢰할 수 없는 인증서라는 식의 경고창 종류가 뜨는 단점이 있음.
SSL strip
말그대로 SSL을 벗겨내는것.
스푸핑 기술등을 이용하여 클라이언트에게 전송되는 html과 같은 폼의 https:// 스트링을 http://로 교체.
예를들면, <a href=https://...... -> <a href=http://...... 등이 있겠음.
때문에, 이후, 클라이언트는 평문전송을 하게되고, attacker는 중간에서 그걸 훔쳐보고, 서버와는 그대로 ssl 통신을 함.
client <-> (http, plain_text) <-> attacker <-> (https, ssl) <-> server
정도가 됨.
지금까지 언급한 스푸핑 기술이란 DNS Spoofing, ARP Spoofing 등이 있겠음.
우왕ㅋ굳ㅋ
참고로 얘기를 하자면 attacker가 중간에 개입하는 방법은 비단 arp spoofing, dns spoofing만 있는 것은 아님. 라우터에서 제공하는 GRE routing 기능을 이용해서도 IP 패킷을 다른 곳으로 redirect할 수 있고, 요즘에는 웬만한 허접 스위치에서도 비슷한 기능을 제공함(패킷이나 프레임의 특정 패턴에 대해 패킷을 다른 곳으로 relay시켜 주는). 예를 들어 dyangen 을 이용해서도 이러한 MITM 개입이 가능함. 결론적으로 MITM attack을 위해 중간에 개입하는 방법은 여러가지가 있음.
그런데 무슨 프로젝트를 하길래? 하늘을 우러러 한점 부끄러움 없고, 밝고 해맑은 프로젝트만은 아닐 거 같은데? ㅋㅋ