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