1. 4 단계 핸드세이크 (4-Way Handshake)
※ 무선 LAN 보안을 위한 4-Way Handshake
- 비록 양단 간에 사전에 준비된 키가 없더라도,
- 비 보안 채널(안전하지 못한 채널)을 거쳐감에도 불구하고,
- 양단 간에 같은 비밀 키(세션 키)를 공유할 수 있게끔,
- 일련의 패킷 등을 교환해가며 대칭 키를 합의하는 과정
ㅇ 주요 목적 : Pairwise Key 또는 Group Key 생성을 위함 ☞ 802.11 키 관리, 802.11 키 구분 참조
- Pairwise Key : STA와 AP 간에 `Unicast용` 키 : 쌍으로 이루어짐
. STA(무선단말)와 AP(액세스포인트) 간의 1:1 통신(Unicast)을 위한 키
. 각 STA 마다 고유하게 생성됨
- Group Key : AP에서 STA들로의 `Multicast/Broadcast용` 키 (다수의 멤버들로 그룹지어짐)
. AP → 여러 STA에 대한 멀티캐스트/브로드캐스트용 키
. 여러 STA들이 공유하는 키로, 그룹 단위로 관리됨
ㅇ 주요 기능
- 쌍방간 PMK 보유 및 현행성 확인
. STA와 AP가 동일한 PMK를 갖고 있는지 확인
. PMK : PTK를 유도하기 위해 사용되는 `일종의 보조 키`
.. 인증 과정(EAP 등)을 통해 공유된 기반 키
- STA 및 AP 양쪽 각각에서, PMK로부터 PTK 유도 및 설치
. 실제 무선구간 암호화에 사용될 키를 생성하여, 양쪽에 설치
. PTK : 무선구간 암호화(TKIP,CCMP)를 수행하기 위한 `실제 암호 키`
.. (PMK + MAC 주소 + Nonce) 등을 통해 파생된 실제 키
- 또한, Cipher Suite 선택 확정
. 어떤 암호화 방식(TKIP, CCMP 등)을 쓸 것인지 확정
2. 4 단계 핸드세이크 절차
ㅇ 1 : AP → STA (AP가 첫 메시지를 STA에게 보냄)
- 수행 작업 : AP의 MAC 주소 및 Nonce 값(ANonce : 임의로 생성된 Nounce)이 포함된 메세지 전송
- 전송 내용 : AP MAC주소, ANonce
- 수행 목적
. AP의 세션 식별용 정보 제공
. 이후 PTK 계산에 필요한 입력값 전달
ㅇ 2 : STA → AP (STA가 응답 메시지를 AP에게 전송)
- 수행 작업
. STA는, 자체 Nonce 값(SNonce) 생성
. STA는, 다음 정보들을 조합, PTK 계산 : PMK, AP MAC주소, STA MAC주소, ANonce, SNonce
. STA는, STA MAC주소, SNonce이 포함된 메세지(MIC) 전송
.. MIC : 메시지 무결성 코드 (Message Integrity Code), 변조 방지용
- 전송 내용 : STA MAC주소, SNonce, MIC
- 수행 목적
. STA 측 PTK 유도 완료
. AP가 PTK를 검증할 수 있도록 정보 제공
ㅇ 3 : AP → STA (AP가 확인 메시지를 STA에게 보냄)
- 수행 작업
. AP도 동일한 정보로 PTK를 계산
. STA가 보낸 MIC를 사용해 PTK 정확성 검증
- 전송 내용 : ANonce + MIC
. 처음 메시지 1과 유사한 구조. 다만, 추가적으로 AP가 계산한 MIC 포함
- 수행 목적
. AP가 올바른 PTK를 계산했음을 STA에게 증명
. AP → STA 방향의 암호화 키 설정 완료
ㅇ 4 : STA → AP (STA가 마지막 확인 메시지를 AP에게 보냄)
- 수행 작업 : 메시지 3을 정상적으로 수신하고(단순 수신 응답), PTK 검증 완료됨을 알림
- 전송 내용 : MIC 포함 및 간단한 응답 메시지
- 수행 목적
. STA → AP 방향의 키 설정 완료
. 4-Way Handshake 최종 완료