한다는 것이다. 굉장히 상식적인데, 지금까지 배운 계층에서는 이게 단 하나도 구현이 되어 있지 않다. 설계가 70년대였기 때문에,
그래서 공격을 받을 때 마다 대응하려고 밴드를 덕지덕지 붙이는 상태다.
Trudy는 모든 사람이 될 수 있다. 당장 와이어샤크같은 모니터링 툴을 사용하면,
주변의 모든 IP 패킷을 볼 수 있다.
IP 패킷 안에 뭐가 있지? Src,Dst IP, Port 다 있다.
TOR ( The Onion Routing) : 목적지를 감추는 툴
목적지가 B인데, 패킷에는 목적지를 저 라우터로 적는 것이다.
테러리스트들이 사용한다고 한다 ㄷㄷ
그리고 딱 봐도 ㅈㄴ 돌아가니까 느리다.
야동사이트를 들어가면 이렇게 정부에서 차단이 된다.
이게 어떻게 가능할까?
미국의 야동사이트를 들어가려고 해보자.
결국 나는 한국에서 SK, KT 등을 거쳐서 내보낼 것이다.
이 통신사 라우터에, 정부의 블랙 리스트들을 적어놓고,
Dst IP가 일치하면 차단하면 되는 것이다.
그래서 우리는 Proxy, 우회해서 가는 것을 사용한다.
이건 한국 정부가 막지는 않는다고 한다. (중국은 막는단다.)
막을 수는 있다. 이것도 다 찾아서 통신사 라우터에 적으면 되니까.
다시 돌아와서, 만약 통신사들이 이 패킷을 "버린다"면 어떻게 될까? 해결되나?
내 컴퓨터는, 이걸 Loss라고 생각하겠지, 그럼 네트워크 에런줄 알고 계속 재전송할 것이다.
그리고 신기한게, Warning HTML은 HTTP 커넥션을 맺어야 받을 수 있는거 아닌가?
난 정부랑 커넥션 맺은 적이 없는데?
실제로는 TCP Connection 까지는 맺게 냅둔다고 한다.
그리고 HTTP Req을 보낼 때, 거기 안에 Host : www.pornhub.com
이 있는데, 이걸 보고서 블랙 리스트라면,
지가 폰허브인척하고 응답하는 척 메시지를 조작해서 HTML을 보낸다고 한다.
둘만 알아듣는 메시지를 사용하고 싶으면, Key로 메시지를 암호화, 복호화하면 되겠지?
간단하게, 같은 키를 공유해서, 이걸로 암호화, 복호화 하면 되겠다.
그런데, 이 키를 어떻게 서로 공유해서 가지고 있냐?
오프라인에서 만나는 것도 아닌데? 그럼 온라인에서 주고 받다간 털릴 수도 있는데?
디피헬먼이 74년도에 키 교환 방식을 제안한다.
서로 공개키, 개인키를 가지고 있어서, 공개키는 아무나 다 받아도 알빠노 하게 뿌리는 것이다.
그리고 암호화는 개인키로 하고, 복호화는 공개키로 하는 방식이다.
문제는 이건 개념이고, 수학적으로 구현하는게 불가능했다.
2년뒤 MIT 교수 3명이 이름을 따서 RSA 공개키 암호화를 만들었다.
신기한 점은, 메시지 => 공개키 암호화 => 개인키 암호화 => 결과
랑 개인키 암호화 => 공개키 암호화
하는 결과가 같다는 것이다.
암호화는 오케이 넘어가.
이 메시지가 정말 밥으로 온지 어떻게 알지?
위에서 공개키로 암호화하면, 정말 당사자라면 본인의 개인키로 복호화할 수 있다.
긴 메시지를 공개키 암호화하는게 계산이 많이 드니까,
고정된 길이의 값이 필요했고, 이를 H(m)으로 사용한다. (메시지를 해싱한 값을 다이제스트라고 한다.)
이를 서명한 값을 보내서,
받는 이가 공개키로 해석을 하면, H(m)이 나올 것이다.
원문 메시지도 받기 때문에, 같은 해시함수를 써서 비교를 하면 끝!
아까 공개키는 막 뿌린다고 했다.
이 공개키가 Bob 공개키인지 어떻게 알지?
믿을 수 있는 기관에서 인증서를 발급해서, 그 안에
bob - 공개키
이렇게 쓴 걸 기관의 개인키로 암호화 한다.
그럼 기관의 개인키는 어떻게 믿냐? 그래서 브라우저 안에 하드코딩 되어있다고 한다.
자세한 이야기는 다음 시간에 계속...