서버쪽에 프라이빗 키(d)가 있고 클라이언트는 서버에게 받은 퍼블릭 키(e) 를 갖고 있고
이걸 이용해서 클라이언트가 AES 키를 암호화해서 서버에 보내서 교환한 다음에
서버는 그걸 받아 AES 키를 저장해놓고, 그 다음부터 클라이언트는 그 AES 키로 암호화해서
보내고 주고 받고...
뭐 중간 과정이야 더 복잡하지만 일단 크게 보면 저런거 잖냐.
이건 기본적으로 중간에서 패킷을 스니핑해서 내용이 유출되는 걸
방지하기 위한 보안 프로토콜인데, 이게 뚫릴 수가 있냐?
물론 만약 중간에서 스니핑하는데 클라이언트가 보내기 전에 먼저 자기가 서버에
지가 원하는 키를 공개키로 암호화해서 핸드쉐이킹하고 클라이언트하고도 따로
세션을 유지해서 중간에서 패킷 원본을 전부 볼 수 있게 뒤죽박죽으로 만드는 공격이나
아니면 또 중간에 껴서 서버하고 자기가 통신하고 이걸 풀어서 클라이언트한테는
ssl 사용 안하는 일반 프로토콜인듯 그냥 보내서 중간에서 다 보는 방법.
아무튼 이런 중간 공격들이 있긴 하지만 이건 SSL 의 취약성이라고 하긴 약간 다른 문제고..
( 저것들도 사실 서버단에서 최신 SSL/TLS 기반에다가 특별한 방식을 추가해서 막을 수 있지 )
위에서 얘기한 ssl 의 기본적인 개념에 입각해서
이 프로토콜 알고리즘 자체가 뚫릴 가능성은 그냥 없는 거 아니냐
한마디로 중간에 지나가는 패킷들을 스니핑만 하고 핸드쉐이킹 과정에
끼어들거나 하는 짓은 전혀 하지 않았다고 가정할 때
이 패킷들만 가지고 원본을 해독해낸다는 건 그냥 RSA 를 뚫겠다는 소리밖에 더 되냐
보통 1024bit 키를 사용하니 이걸 뭐 뚫을 수 있을 리가 만무하고.
그냥 누가 SSL 이 취약하다고 해서 말해봤음.
SSL의 경우는 서버 인증서 오류뜨면 거의 털렸다고 봐도 무방하다는듯
SSL Proxy 빼고는 복호화 할 방법 없음
SSL자체가 털린 건 아닌듯 핸드쉐이킹하는 과정이 문제인가
사실 말장난일뿐 핸드쉐이킹도 SSL에 필연적이고 포함된 것인데 이 부분이 중간 공격에 취약하면 SSL 이 취약하다고 말해도 사실 상관은 없지
요즘 SSL 최신 버전에선 앞의 중간공격 같은 경우 의미없고, 뒤에 공격(흔히 ssl strip 이라 부르지)은 클라이언트단의 인증을 요구하면 되긴 하지
뭐 기본적으로 사용자 네트웍 단에 ARP 스푸핑을 할 수 있다는 가정이 전부 붙는거지만