본문 바로가기

320x100
ssl handshake 5

반응형
HTTPS 통신과정 쉽게 이해하기 #3(SSL Handshake, 협상) 고대 그리스에서는 타인에게 노출되어서는 안 될 중요한 정보를 보낼 때, 전달하는 이(사자)의 머리를 빡빡 깎아서 중요한 정보를 적은 후 머리가 자라서 글이 보이지 않으면 그제야 상대방에게 보냈다고 합니다. 그리하게 되면 그 사실을 모르는 사람은 정보를 볼 수 없고 사실을 아는 수신자는 다시 머리를 깎은 후 정보를 볼 수 있을 테니까요. 이 암호 기법을 스테가노그래피라고 합니다. 그 당시로서는 정말 획기적인 방법이 아닌가 싶습니다. 누가 두피에 글을 적어서 보낼 거라고 예상을 할까요? 물론 머리가 다 자라라면 한참 걸린다는 단점이 존재하지만 들키지 않는 데는 이만한 방법이 없는 것 같습니다. 그만큼 중요한 정보를 안전하게 보내는 것이 가장 중요했기 때문이겠지요. 세 번째 그림에서 보니 동그라미 속 수신자는.. 2020. 3. 23.
SSL/TLS #4, Forward Secrecy와 디피 헬만 키교환 방식, RSA 키교환 방식 Diffie-Hellman Key Exchange Diffie와 Hellman이 1976년도에 발표한 비밀키 교환 방식 Client와 Server가 각자 선택한 정수와 소수를 이용하여 비밀키를 만들고 이를 통해 데이터를 암호화 즉, 비밀키를 교환하는 것이 아닌 키를 만들 재료를 교환하는 방식 서로가 선택한 수를 가지고 비밀키를 만든다는 점에서 공개키/개인키가 필요하지 않음 키길이는 1024bit와 2048bit가 있으며 2048bit를 쓰는 것을 권고 DH, DHE, ECDHE가 있으며 DHE(2048bits), ECDHE를 쓰는 것이 가장 좋음 Key Exchange 방식 중에서 가장 권고되는 방식(ECDHE) RSA Key Exchange 공개키와 개인키를 통해 비밀키를 교환하는 방식 위의 Diffi.. 2020. 3. 20.
SSL/TLS #3, MAC(Message Authentication Code) 들어 가기 앞서, MAC/MDC 알고리즘을 통해 생성된 MD(Message Digest)는 암호화/복호화의 개념이 적용되지 않으며, 일방향성을 가짐을 전제로 함 MDC(Message Detection Code) 송신자가 MAC 알고리즘을 이용하여 생성한 MD(Message Digest)를 메시지와 함께 보냄 수신자는 메시지와 MD를 받은 후, 받은 메시지를 MAC 알고리즘을 통해 MD를 생성함 그 후 생성한 MD와 전달받은 MD를 비교하여 위조 / 변조 여부를 확인 MDC는 메시지의 위조 / 변조만을 검증할 뿐 누가 보냈는지를 검증하지 않기 때문에 인증이 어려움 공격자가 중간에 MD와 메시지를 탈취하여 메시지를 변조한 뒤 다시 수신자에게 보내면 이것이 변조된 것인지 아닌지 알 수 없음 메시지 위조 / 변.. 2020. 3. 20.
SSL/TLS #2, 인증서 검증과 Chain 인증서 인증서란, 서버가 암호화/복호화를 위해 사용하는 서버의 공개키 확보와 이 서버의 신원을 증명해주는 존재 인증서 생성과정 서버의 소유자가 CSR(Certificate Server Request)를 통해 CA(Certificate Authority)에게 인증서 생성를 요구할 경우, 요청자는 회사의 신원을 확인할 수 있는 내용과 서버의 ‘공개키’를 CA에게 전달 CA는 서버의 소유자가 보낸 자료를 토대로 인증서(인증서 내부에는 서버의 공개키가 존재)를 생성하고 CA의 개인키로 암호화 또한 인증서 주요 정보와 공개키를 HASH 알고리즘을 이용하여 해시값을 생성한 후 개인키로 암호화(전자서명) 아래의 서명 알고리즘을 보면 인증서를 개인키로 암호화(RSA)하되 전자서명은 SHA256을 사용했다는 것을 설명 .. 2020. 3. 20.
SSL/TLS #1, SSL / TLS protocol and Cipher suite SSL / TLS (Secure Socket Layer, Transport Layer Security) 단말(PC, Server 등)과 단말간의 암호화 통신을 위한 프로토콜 SSLv1은 최초의 버전으로서 문제가 많아 발표되지 않고 사장됨 SSLv2부터 공개가 되었으며 보다 더 나은 버전인 SSLv3가 나왔으며 이를 기반으로 TLSv1 생성 TLSv1.0, v1.1,v1.2, v1.3가 나왔지만 아직 많은 브라우저에서 TLSv3를 지원하지 않음 SSL handshake(Client Certificate 과정 제외) Client Hello – Client가 Server에게 자신이 사용가능한 Random byte(대칭키 생성에 사용됨), Session ID, SSL / TLS 버전이 포함된 Cipher sui.. 2020. 3. 19.