오늘 끝나면
HTTPS / TLS
- ✓HTTPS / TLS의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 HTTPS이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
브라우저 자물쇠의 정체 — 대칭+공개키 핸드셰이크 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
암호 & 보안 · 11
HTTPS
/ TLS
브라우저 주소창 자물쇠의 정체다. 공개키로 키를 합의하고, 본 통신은 빠른 대칭키로 한다.
공개키는 안전한데 느리고, 대칭키는 빠른데 키가 문제다
암호는 두 종류다. 공개키는 잠그는 열쇠와 푸는 열쇠가 따로다.
아무나 잠그고 주인만 푼다. 안전하다. 근데 계산이 무거워서 느리다.
대칭키는 잠그는 열쇠와 푸는 열쇠가 같다. 빠르다. 근데 그 열쇠를 상대에게 어떻게 건네느냐가 문제다.
그냥 보내면 중간에서 가로채는 순간 끝난다. 빠른 대칭키를 쓰고 싶은데 키 전달이 위험하다.
TLS는 둘을 합쳐서 장점만 취함
그래서 TLS는 둘을 섞어 쓴다. 각자 잘하는 일만 시킨다.
처음 딱 한 번만 느린 공개키를 쓴다. 하는 일은 하나, 대칭키를 안전하게 건네는 것이다. 무거워도 한 번이라 괜찮다.
대칭키가 양쪽에 깔리면 그다음부터는 쭉 빠른 대칭키로 데이터를 주고받는다. 안전함은 공개키가, 속도는 대칭키가 맡는다.
공개키로 대칭키를 안전하게 건넨다
대칭키로 실제 데이터를 빠르게 암호화
안전함은 공개키가, 속도는 대칭키가
핸드셰이크, 통신 전에 키부터 합의한다
본 통신 전에 인사부터 나눈다. 이걸 핸드셰이크라 한다.
① 브라우저가 Hello를 보낸다.
② 서버가 인증서와 공개키를 보낸다. 브라우저가 진짜 주인인지 검증한다.
③ 브라우저가 대칭키를 그 공개키로 잠가서 보낸다. 서버만 풀 수 있다.
④ 이제 양쪽이 같은 대칭키를 가진다. 자물쇠가 잠기는 순간이다. 중간에서 봐도 못 읽는다. 키 합의를 안전하게 끝냈기 때문이다.
안녕, 우리 암호로 얘기하자. 가능한 방식을 알려준다.
내 신분증(인증서)과 공개키를 보낸다. 브라우저가 진짜인지 검증한다.
공개키로 대칭키를 잠가서 보낸다. 서버만 풀 수 있다.
이제 둘 다 같은 대칭키를 가진다. 자물쇠가 잠긴다. 빠르게 암호화 통신한다.
시작을 누르면 브라우저와 서버가 키를 합의한다. 끝나면 자물쇠가 잠긴다.
합의 끝나면 데이터는 대칭키로 빠르게
핸드셰이크가 끝나면 무거운 공개키는 역할이 끝난다. 이후엔 가벼운 대칭키만 돌아간다.
웹페이지, 이미지, 입력한 비밀번호까지 오가는 모든 데이터가 그 대칭키로 암호화된다. 빠르니까 영상도 안 끊긴다.
이게 HTTP에 S가 붙은 정체다. 평범한 HTTP에 TLS라는 암호 봉투를 씌운 게 HTTPS다. 주소창 자물쇠가 그 증거다.
빠르니까 영상도 끊김 없이 흐른다
정리하면, 자물쇠 하나에 두 암호가 담겼다
정리한다. 공개키로 키를 합의하고, 대칭키로 데이터를 나눈다.
공개키는 안전한데 느리니까 처음 한 번만 쓴다. 대칭키는 빠르니까 그다음 계속 쓴다. 두 암호의 좋은 점만 한 자물쇠에 모은 것이다.
Q. HTTPS가 공개키와 대칭키를 둘 다 쓰는 이유는?
공개키로 대칭키를 안전하게 합의하고, 데이터는 빠른 대칭키로 처리하기 위해서다. 공개키의 안전함에 대칭키의 속도까지, 장점만 취한 것이다.공개키로 키 합의 · 대칭키로 데이터
주소창 자물쇠가 그 증거다