암호화 (CCMP·GCMP)¶
규격 · 개정판
802.11-2024 Clause 12 (데이터 기밀성·무결성: TKIP(폐기 예정), CCMP-128/256, GCMP-128/256) · NIST SP 800-38C (CCM), SP 800-38D (GCM) · GCMP: 802.11ad에서 도입, CCMP-256·GCMP-256: 802.11ac 시기에 추가
한눈에 보기
4-Way Handshake로 만든 키(TK)로 실제 데이터를 보호하는 방식이 CCMP와 GCMP입니다. 둘 다 AES 블록 암호를 쓰고, 한 번에 두 가지를 해 줍니다.
- 기밀성: 내용을 암호화
- 무결성: 헤더 일부와 내용에 대한 MIC(인증 태그)를 붙여 변조를 탐지
또 프레임마다 증가하는 PN(패킷 번호)으로 같은 프레임을 다시 보내는 재전송 공격을 막습니다.
| 방식 | 어디서 |
|---|---|
| CCMP-128 | WPA2·WPA3-Personal 기본 — 가장 널리 쓰임 |
| GCMP-256 | WPA3-Enterprise 192-bit, Wi-Fi 7 고속·MLO 환경 |
| TKIP | 옛 WPA. 새 장비에서는 금지 |
비교¶
| 항목 | TKIP | CCMP-128 | CCMP-256 | GCMP-128 | GCMP-256 |
|---|---|---|---|---|---|
| 블록 암호 | RC4 | AES-128 | AES-256 | AES-128 | AES-256 |
| 모드 | 스트림 + Michael | CCM (CTR + CBC-MAC) | CCM | GCM (CTR + GHASH) | GCM |
| MIC 길이 | 8옥텟 (Michael) | 8옥텟 | 16옥텟 | 16옥텟 | 16옥텟 |
| 헤더 | 8옥텟 (IV/ExtIV) | 8옥텟 | 8옥텟 | 8옥텟 | 8옥텟 |
| 프레임당 추가 | 20옥텟 (ICV 포함) | 16옥텟 | 24옥텟 | 24옥텟 | 24옥텟 |
| 병렬 처리 | — | 어려움 (CBC-MAC 직렬) | 어려움 | 쉬움 | 쉬움 |
| 스위트 번호 (00-0F-AC:n) | 2 | 4 | 10 | 8 | 9 |
GCM은 MIC 계산(GHASH)을 병렬로 할 수 있어 수 Gbps급 하드웨어에 유리합니다. 60 GHz(11ad)에서 먼저 도입된 이유입니다.
CCMP 프레임 구조¶
| 부분 | 길이 | 내용 |
|---|---|---|
| MAC 헤더 | 24–36옥텟 | Protected Frame 비트 = 1 |
| CCMP 헤더 | 8옥텟 | PN0, PN1, 예약, Key ID(+ExtIV 비트), PN2–PN5 |
| 암호화된 본문 | 가변 | |
| MIC | 8 / 16옥텟 | |
| FCS | 4옥텟 |
| 입력 | 구성 |
|---|---|
| Nonce (13옥텟) | Nonce Flags(우선순위 = TID, 관리 프레임 표시) ‖ A2(송신 주소) ‖ PN(6옥텟) |
| AAD | Frame Control(일부 비트 0으로 가림) ‖ A1 ‖ A2 ‖ A3 ‖ Sequence Control(시퀀스 번호 가림) ‖ A4 ‖ QoS Control(TID 등) |
Retry 비트나 시퀀스 번호처럼 재전송 시 바뀔 수 있는 필드는 AAD에서 0으로 가려서, 재전송 프레임도 같은 MIC로 검증됩니다.
재전송 방지¶
수신 측은 TID(및 관리 프레임)별로 마지막으로 받은 PN을 기억하고, 그보다 크지 않은 PN을 가진 프레임은 버립니다. A-MPDU와 Block Ack 재정렬 때문에 PN 검사는 재정렬 이후에 해야 합니다.
전문가 노트 — nonce 재사용과 성능
nonce 재사용의 치명성. CCM·GCM 모두 같은 키·같은 nonce로 두 번 암호화하면 키 스트림이 같아져 평문 XOR이 노출됩니다. GCM은 추가로 인증 키(H)까지 복구될 수 있어 위조가 가능해집니다. KRACK이 위험했던 이유이며, 구현은 키 설치 시 PN을 절대 되돌리지 않아야 합니다.
MLO와 PN. Wi-Fi 7 MLD에서는 링크가 달라도 같은 TK·같은 PN 공간을 공유합니다. 링크별로 PN을 따로 세면 nonce가 충돌할 수 있기 때문입니다. 재정렬도 MLD 단위로 합니다.
성능 감각. 23 Gbps급 EHT 링크에서 1500바이트 MPDU는 초당 약 190만 개입니다. AES-GCM 하드웨어 엔진은 이를 실시간 처리해야 하므로, 칩셋은 데이터 경로에 암호 엔진을 내장하고 호스트는 키 설치만 담당하는 것이 일반적입니다.