142. PSK (Pre-Shared Key, 사전 공유 키)

⚠️ 이 문서는 복잡한 디피-헬만(DH) 키 교환이나 거대한 RSA 인증서 검증이라는 고단한 과정을 모두 생략하고, "너랑 나랑은 이미 예전에 밥 먹으면서 비밀번호를 맞춰놨잖아?"라는 전제하에 번개처럼 통신 암호화를 시작해 버리는 초고속, 초경량 암호 아키텍처인 PSK를 다룹니다.

핵심 인사이트 (3줄 요약)

  1. 본질: PSK(사전 공유 키)는 통신을 시작하기 전에 클라이언트와 서버(또는 두 기기)가 대칭키 비밀번호 문자열을 USB, 오프라인 미팅, 또는 어제의 통신(세션 티켓) 등을 통해 사전에 물리적/논리적으로 이미 공유(Pre-Shared)해 둔 상태를 의미한다.
  2. 가치: 가장 큰 장점은 **'압도적인 속도와 가벼움'**이다. 무거운 공개키(RSA/ECC) 수학 연산과 인증서 검증(PKI) 과정이 통째로 썰려 나가기 때문에, CPU 코어가 약한 사물인터넷(IoT) 센서나 와이파이(WPA2) 비밀번호 입력, 그리고 TLS 1.3의 재접속(0-RTT) 시나리오에서 절대적인 위력을 발휘한다.
  3. 한계/융합: "그 키를 어떻게 안전하게 미리 나눠 가질 것인가?(키 배송 문제)"라는 대칭키의 태생적 저주를 그대로 안고 있으므로, 수백만 명을 상대로 하는 불특정 다수 서비스(B2C)에는 부적합하며, 오직 1:1 통신이나 이전에 한 번 안전하게 접속했던(ECDHE를 거친) 단골손님을 위한 세션 재개(Session Resumption) 용도로 현대 아키텍처에 융합된다.

Ⅰ. 개요 및 왜 '사전 공유'인가? (Context & Necessity)

"네이버에 처음 들어온 손님"에게는 RSA 인증서를 보여주고 타원곡선(ECDHE) 당구를 쳐서 해커 몰래 비밀번호를 맞춰야 한다. 보안을 위해 어쩔 수 없는 0.2초의 희생(Handshake Delay)이다.

하지만 당신의 방에 있는 '공유기'와 '스마트폰'을 생각해 보자. 스마트폰을 공유기에 처음 붙일 때, 스마트폰이 공유기에게 "네가 진짜 우리 집 공유기인지 아이파크 관리소 인증서(PKI)를 보여줘! 그리고 타원곡선 핀볼(DH)을 치자!"라고 하지 않는다. 당신이 공유기 뒷면에 적힌 wifi_password_123 이라는 문자를 스마트폰에 손으로 타이핑하는 순간, 폰과 공유기는 "아, 우리 둘 다 똑같은 비밀번호를 이미 나눠 가졌네(Pre-Shared)?"라며 0.01초 만에 바로 AES 암호화를 켜버린다.

이처럼 무거운 수학의 늪을 피하고, 신뢰된 대칭키를 머릿속에 꽂아둔 채 통신을 시작하는 것이 **PSK(사전 공유 키)**의 철학이다.

📢 섹션 요약 비유: 인터넷 뱅킹(RSA/ECDHE)은 소개팅에 나가서 1시간 동안 서로 신분증(인증서)을 까고 상대의 호구조사를 한 뒤에야 마음을 여는 것입니다. PSK는 소꿉친구를 만나는 겁니다. 신분증을 볼 필요도 없이, 골목길에서 만나자마자 둘만 아는 암호 "산에 산에" -> "진달래꽃!" 을 외치고 바로 비밀 아지트로 뛰어 들어가는 초스피드 패스입니다.


Ⅱ. 실무 적용: PSK가 지배하는 3대 인프라

PSK는 단순한 와이파이 비번을 넘어, 현대 보안 인프라의 가장 치열한 속도전 구간에 박혀 있다.

1. 와이파이 보안 (WPA2 / WPA3-Personal)

  • 집이나 카페에서 Wi-Fi 비밀번호를 묻고 타이핑하는 것 자체가 바로 PSK-Key를 내 폰에 쑤셔 넣는 과정이다 (WPA2-PSK).
  • 이 PSK 원석과 우리 집 공유기의 이름(SSID)을 해시 믹서기(PBKDF2)에 4,000번 갈아서 마스터키(PMK)를 뽑아내고 폰과 공유기가 암호화 통신을 한다.

2. TLS 1.3의 0-RTT (세션 재개)

  • [137번 문서]에서 배운 기적의 0.0초 접속(0-RTT)의 핵심 기술이다.
  • 어제 네이버에 접속했을 때(정상적인 ECDHE 과정을 거친 뒤), 네이버 서버가 연결을 끊기 직전 내일 쓸 임시 비밀번호가 적힌 '티켓(Session Ticket)'을 내 브라우저에 꽂아주고 보냈다.
  • 오늘 네이버에 다시 접속할 때, 브라우저와 서버는 어제 나눠 가진 이 티켓을 **'사전 공유 키(PSK)'**로 취급하여 인사말을 나누기도 전에 바로 데이터(HTTP GET)를 쏴버린다.

3. 사물인터넷(IoT)과 VPN (IPsec)

  • 공장에 온도 센서를 1,000대 깔았다. 센서 CPU가 너무 구져서 RSA 인증서 검증 코드를 돌리면 뻗는다.
  • 관리자는 공장 출고 시 센서 뱃속(ROM)에 32바이트짜리 난수(PSK)를 USB 케이블로 하드코딩해서 박아버린다. 공장 메인 서버에도 똑같은 키를 박아둔다.
  • 센서는 부팅되자마자 복잡한 통신 없이, 뱃속의 PSK를 쓱 꺼내 서버와 초고속 통신(TLS-PSK 등)을 갈겨버린다.
┌────────────────────────────────────────────────────────────────────────────┐
│           무거운 비대칭키 통신 vs 가벼운 PSK 통신의 속도전 시각화          │
├────────────────────────────────────────────────────────────────────────────┤
│                                                                            │
│ 🐢 [ 비대칭키 기반 (처음 온 손님) ]                                        │
│   1. 클라이언트: "인사" -> 서버: "내 RSA 신분증 여기. 1회용 키 던진다."    │
│   2. 클라이언트: (CPU 땀 뻘뻘 흘리며 서명 검증 중...) "아 힘들다. 합격!"   │
│   3. 클라이언트: "내 1회용 키 여깄고 마스터키 조립 끝."                    │
│   (0.2초 낭비 후 10GB 영화 암호화 시작)                                    │
│                                                                            │
│ 🚀 [ PSK 기반 (어제 왔던 단골 또는 IoT 센서) ]                             │
│   (어제 이미 서버와 내 하드디스크에 '티켓(PSK)'을 미리 나눠 가진 상태)     │
│   1. 클라이언트: "나 어제 줬던 티켓(PSK) 들고 왔고, 장바구니 줘!" (0-RTT)  │
│   2. 서버: "티켓 뜯어보니 우리 PSK 맞네? 바로 장바구니 쏠게!"              │
│   (기다림 0.0초 만에 즉시 10GB 영화 암호화 시작)                           │
└────────────────────────────────────────────────────────────────────────────┘

[다이어그램 해설] PSK 모드는 CPU의 연산 자원(서명 검증, 이산 대수 곱셈)과 통신 대역폭(인증서 파일 2KB 왕복)을 모두 우주 끝으로 깎아버리는 궁극의 다이어트다. 클라이언트가 "나 너랑 공유하는 키 이거 써서 보낸다"라는 꼬리표만 하나 달아주면 바로 AES 고속도로에 진입한다.

  • 📢 섹션 요약 비유: 처음 해외여행을 갈 때(비대칭키 통신), 공항 출입국 사무소에서 지문 찍고 사진 찍고 비자(인증서) 검사를 1시간 동안 받습니다. 하지만 어제 출입국 수속을 다 마치고 얼굴을 튼 호텔 앞 단골 편의점(PSK 통신)에 갈 때는 신분증을 안 챙기고 그냥 문 열고 들어가서 "담배 하나 주쇼!" 하면 끝납니다.

Ⅲ. 치명적 맹점: 전방 비밀성(PFS)의 부재

편리함에는 언제나 피눈물 나는 대가(Trade-off)가 따른다. 만약 당신이 공장에 깔린 IoT 센서 1,000대에 MySecretKey123 이라는 똑같은 PSK를 박아두었다고 치자. 해커가 공장 담을 넘어 센서 하나를 훔쳐서 분해한 뒤, 메모리 칩에서 저 PSK를 빼내 버리면? 해커는 공장 안의 나머지 999대 센서가 메인 서버와 주고받는 모든 데이터를 도청하고 복호화할 수 있다. 심지어 과거 10년 치 도청 기록도 소급해서 다 까발려진다! (전방 비밀성 파괴).

이 파국을 막기 위해 현대 TLS 1.3은 기막힌 타협안을 헌법에 박아두었다. "PSK로 0.0초 만에 초고속 접속을 허락해 주겠다. 하지만, PSK만 믿고 끝까지 통신하지 마라! 접속하자마자 백그라운드에서 다시 타원곡선 핀볼(ECDHE)을 쳐서 1회용 새로운 세션 키를 뽑아내고, 그 새로운 세션 키로 데이터를 암호화해라!" 이것이 그 유명한 (EC)DHE-PSK 모드다. (속도는 PSK로 잡고, 보안성(PFS)은 1회용 ECDHE로 덮어버리는 미친 하이브리드 전략이다).


Ⅳ. 결론

"가장 원시적인 암호(대칭키)가 최신 아키텍처의 윤활유로 부활하다." PSK는 암호학의 시작(대칭키)이자 가장 투박한 무기다. 키를 어떻게 나눠 줄 것인지에 대한 뾰족한 수가 없기 때문에 불특정 다수를 상대로 한 인터넷에서는 왕따를 당했다. 하지만 블록체인 노드 간의 1:1 터널링, 기업망 VPN, 초경량 IoT, 그리고 TLS 1.3의 0-RTT 세션 재개라는 '특수 부대'의 임무를 맡으면서, 무겁고 지친 비대칭키(RSA/ECC)를 쉬게 해주는 독보적이고 강력한 돌격대장으로 화려하게 부활했다.


📌 관련 개념 맵

  • 전체 분류: 키 교환/합의 프로토콜 (Key Agreement)
  • 보호하지 못하는 취약점: 전방 비밀성(PFS) 파괴 (단독 사용 시), 키 배송 문제
  • 보완하는 융합 아키텍처: (EC)DHE-PSK (TLS 1.3에서 PFS를 섞어 쓰는 방식)
  • 활용처: WPA2/WPA3 개인용 와이파이, TLS 1.3 Session Resumption (0-RTT), IPsec VPN (사전 공유 키 모드)

👶 어린이를 위한 3줄 비유 설명

  1. 처음 만나는 친구랑 비밀번호를 정하려면 서로 종이비행기에 암호를 적어 날리며 눈치를 봐야 해서 시간이 참 오래 걸려요.
  2. 하지만 우리는 어제 같이 피자를 먹으면서 "내일 비밀번호는 '피자'로 하자!"라고 미리 똑같이 맞춰놨어요 (이게 PSK, 사전 공유 키랍니다).
  3. 오늘 친구를 보자마자 귀찮은 인사를 생략하고 바로 "피자!"라고 외치고 순식간에 비밀 대화를 시작할 수 있어서 속도가 우주에서 제일 빨라요!