본문 바로가기

320x100
Network Infra 쉽게 이해하기/HTTPS 쉽게 이해하기 10

반응형
HTTPS 통신과정 쉽게 이해하기 번외편(Perfect Forward Secrecy) 여러분은 오픈소스 패킷 분석 툴인 Wireshark(와이어샤크)를 자주 사용하시나요? 직무가 네트워크 엔지니어인 저는 꽤 자주 사용하는 편입니다. 통신이 안 되는 구간이 있다면 그 구간 내 어느 지점에서 패킷이 빠지는지 확인하거나 특이한 패킷이 있는지 살펴볼 때 유용하게 사용합니다. Wireshark를 사용하면 SSL Handshake뿐만 아니라 그 후에 지나가는 패킷도 캡쳐하여 저장할 수 있습니다. HTTPS 통신과정 쉽게 이해하기 #3(SSL Handshake, 협상)에서 제가 사용한 캡쳐화면 역시 Wireshark를 사용한 것입니다. SSL Handshake와 이후에 교환된 데이터를 모두 제 PC에 저장하는 것이죠. 그러나 해당 패킷들은 암호화되어 있기 때문에 제가 볼 수는 없습니다. 만약에 서버의.. 2020. 10. 9.
HTTPS 통신과정 쉽게 이해하기 #5(CA, 인증기관) 지난 #1, #2, #3, #4 문서에서 서버가 보유한 SSL 인증서를 인증기관(CA)이 발급한다고 설명했습니다. 그렇다면 도대체 이 인증기관(CA)은 무엇일까요? 그리고 내가 사용하는 브라우저는 접속하는 웹사이트마다 인증서를 검증받으러 인증기관에 찾아가는 것일까요? 만약 그렇다면 인증기관은 이 수많은 요청들을 혼자 해결하는 것일까요? 그에 대해 알아보고자 합니다. CA(Certificate Authority, 인증기관) 이전 문서에서 브라우저가 접속하고자 하는 서버의 SSL 인증서를 받으면 이것이 진짜인지 가짜인지 검증하기 위해 인증기관(CA)에 요청한다고 말씀드린 것을 기억하시나요? 이 인증기관은 단 하나만 존재하는 것일까요? 하나의 인증기관만이 존재하여 모든 요청을 처리하게 된다고 생각해봅시다. 그.. 2020. 5. 9.
HTTPS 통신과정 쉽게 이해하기 #4(Cipher Suite, 암호문의 집합) 이 문서에서 Cipher Suite에 대해 중점적으로 다루고자 합니다. 그 전에 HTTPS 통신과정 쉽게 이해하기 #3(SSL Handshake, 협상과정)에서 언급한 Cipher Suite를 다시 정리해보겠습니다. 1. SSL Handshake는 암호화 알고리즘 결정과 대칭키(비밀키) 전달을 위해 사용 2. SSL Handshake의 첫 단계, Client가 'Client Hello'로 협상을 시작할 때 자신이 사용 가능한 'Cipher Suite'를 쭉 나열 3. Server가 'ServerHello'를 통해 자신이 고른 'Cipher Suite'를 전달 SSL Handshake의 첫 협상 단계인 'Client Hello'와 'Server Hello'에서 'Cipher Suite'가 가장 먼저 언급되.. 2020. 3. 26.
HTTPS 통신과정 쉽게 이해하기 #3(SSL Handshake, 협상) 고대 그리스에서는 타인에게 노출되어서는 안 될 중요한 정보를 보낼 때, 전달하는 이(사자)의 머리를 빡빡 깎아서 중요한 정보를 적은 후 머리가 자라서 글이 보이지 않으면 그제야 상대방에게 보냈다고 합니다. 그리하게 되면 그 사실을 모르는 사람은 정보를 볼 수 없고 사실을 아는 수신자는 다시 머리를 깎은 후 정보를 볼 수 있을 테니까요. 이 암호 기법을 스테가노그래피라고 합니다. 그 당시로서는 정말 획기적인 방법이 아닌가 싶습니다. 누가 두피에 글을 적어서 보낼 거라고 예상을 할까요? 물론 머리가 다 자라라면 한참 걸린다는 단점이 존재하지만 들키지 않는 데는 이만한 방법이 없는 것 같습니다. 그만큼 중요한 정보를 안전하게 보내는 것이 가장 중요했기 때문이겠지요. 세 번째 그림에서 보니 동그라미 속 수신자는.. 2020. 3. 23.
HTTPS 통신과정 쉽게 이해하기 #2(Key가 있어야 문을 열 수 있다) HTTPS 통신과정 쉽게 이해하기 #1(HTTPS의 개요)에서 'SSL 인증서'를 이용하여 웹브라우저와 서버가 서로를 신뢰하고 통신을 한다고 설명했습니다. 이제 조금 더 깊게 들어가 어떻게 SSL 인증서를 생성하는지, 웹브라우저는 이 SSL 인증서가 어떻게 진짜임을 알게 되는지, 웹브라우저와 서버는 데이터를 어떻게 암호화하는지에 대해 알아보고자 합니다. 들어가기에 앞서 암호화, 복호화, 공개키, 개인키 등에 대한 개념을 확실히 잡고 넘어가야 합니다. 이 개념들이 확실히 잡히지 않으면 이해가 되지 않고 더욱 어렵게 느껴질 거라고 생각합니다. 암호화 데이터를 알아볼 수 없는 모습으로 변경하여 감추는 것을 암호화라고 합니다. HTTPS에서는 후술할 'Key'들을 이용하여 데이터를 암호화합니다. 복호화 암호화된.. 2020. 3. 21.
HTTPS 통신과정 쉽게 이해하기 #1(HTTPS란 무엇인가) 약 3년 전, 구글 크롬은 암호화되지 않은 모든 사이트(HTTP)에 대해 '안전하지 않음' 표시를 하기 시작했습니다. 웹브라우저와 서버 간의 통신의 암호화를 의무로 하여 보다 안전한 통신을 추구하고자 하는 듯합니다. 여러분들도 크롬을 사용하여 사이트에 접속하면 사이트 주소 왼편에 자물쇠를 눌러 안전 여부를 확인할 수 있습니다. 그렇다면 브라우저와 서버는 어떻게 암호화 통신을 하는 것일까요? 그 과정에 대하여 알아보고자 합니다. HTTPS HTTPS가 무엇인가에 대해서 먼저 짚고 넘어가야 합니다. HTTPS(HyperText Transfer Protocol over Secure Socket Layer, HTTP over TLS, HTTP over SSL, HTTP Secure)는 월드 와이드 웹 통신 프로.. 2020. 3. 20.