BLERP: BLE Re-Pairing Attacks and Defenses 논문 리뷰# BLE 프로토콜 스택 및 아키텍처 계층 분석 BLE 프로토콜 스택은 크게 물리적 무선 신호와 실시간 타이밍을 제어하는 하위 계층인 '컨트롤러(Controller)'와, 고수준의 데이터 처리와 프로토콜 다중화를 담당하는 상위 계층인 '호스트(Host)'로 분리된다. 이 두 계층은 호스트-컨트롤러 인터페이스(HCI, Host Controller Interface)를 통해 상호 통신한다. ### 컨트롤러(Controller) 계층의 역할 컨트롤러는 물리 계층(Physical Layer, PHY)과 링크 계층(Link Layer, LL)으로 구성된다. 물리 계층은 2.4 GHz ISM 대역을 40개의 채널(각 2 MHz 간격)로 분할하여 사용하며, 가우시안 주파수 편이 변조(GFSK) 방식을 통해 디지털 데이터를 무선 신호로 변환한다. 링크 계층(Link Layer)은 BLE 통신의 핵심 상태 머신(State Machine)을 제어한다. 링크 계층은 디바이스를 대기(Standby), 광고(Advertising), 스캐닝(Scanning), 개시(Initiating), 연결(Connection) 상태 중 하나로 유지시킨다. 통신은 한 디바이스가 3개의 기본 광고 채널(37, 38, 39번)을 통해 패킷을 브로드캐스트하는 '광고' 상태에서 시작되며, 다른 디바이스가 이를 '스캐닝'하여 발견한 뒤 '개시' 상태로 전환하여 연결 요청(`CONNECT_IND` 또는 `AUX_CONNECT_REQ`)을 전송함으로써 '연결' 상태로 진입한다. 또한 링크 계층은 적응형 주파수 도약(Adaptive Frequency Hopping, AFH)을 사용하여 전파 간섭을 최소화하고, 순환 중복 검사(CRC)를 통해 패킷의 무결성을 하드웨어 수준에서 검증한다. ### 호스트(Host) 계층과 논리적 역할 정의 호스트 계층은 L2CAP(Logical Link Control and Adaptation Protocol)을 기반으로 여러 프로토콜을 다중화(Multiplexing)하고 패킷의 분할 및 재조립(Segmentation and Reassembly)을 수행한다. L2CAP 위에는 데이터의 구조화 및 교환을 담당하는 ATT(Attribute Protocol)와 GATT(Generic Attribute Profile), 그리고 디바이스의 발견과 연결 토폴로지를 정의하는 GAP(Generic Access Profile)가 존재한다. GAP는 링크 계층의 상태를 바탕으로 디바이스의 논리적 역할을 네 가지로 규정한다. 1. **브로드캐스터(Broadcaster):** 연결을 허용하지 않고 데이터를 송신만 하는 역할. 2. **옵저버(Observer):** 연결을 개시하지 않고 수신만 하는 역할. 3. **페리페럴(Peripheral):** 광고를 수행하며 다른 디바이스로부터의 연결을 수락하는 역할 (일반적으로 센서, 스마트워치 등 전력 제한 기기). 4. **센트럴(Central):** 스캐닝을 수행하고 연결을 개시하는 주도적 역할 (일반적으로 스마트폰, 랩탑 등 자원이 풍부한 기기). BLERP 공격의 주요 대상이 되는 연결(Connection) 토폴로지에서는 항상 센트럴과 페리페럴의 비대칭적 관계가 성립하며, 이 역할의 비대칭성은 보안 프로토콜인 SMP의 키 분배 논리에도 직접적인 영향을 미친다. ## 보안 관리자 프로토콜(SMP)과 페어링 메커니즘 심층 해부 블루투스 기기 간의 신뢰 관계는 호스트 계층에 위치한 보안 관리자 프로토콜(SMP, Security Manager Protocol)에 의해 수립된다. SMP는 L2CAP의 고정 채널(0x0006)을 통해 통신하며, 두 기기 간에 보안 매개변수를 협상하고, 암호화 키를 생성 및 분배하는 전체 과정을 통제한다. 흔히 혼용되는 '페어링(Pairing)'과 '본딩(Bonding)'은 엄연히 다른 개념이다. 페어링은 현재의 통신 세션을 암호화하기 위해 단기적인 키를 협상하고 생성하는 능동적인 절차이다. 반면, 본딩은 페어링 과정에서 생성된 장기 키(Long-Term Key, LTK)와 다양한 식별 키들을 디바이스의 비휘발성 메모리인 보안 데이터베이스(Security Database)에 영구적으로 '저장(Storage)'하여, 향후 재연결 시 복잡한 페어링 절차를 생략하고 즉각적인 암호화 세션을 수립할 수 있도록 하는 사후 조치이다. BLE의 페어링 절차는 표준 사양에 따라 다음 세 가지 명확한 페어링 단계(Phase)로 나뉘어 수행된다. ### Phase 1: 페어링 기능 교환 (Pairing Feature Exchange) 페어링의 첫 단계는 센트럴 기기가 페리페럴 기기에게 `SMP_PAIR_REQ` (Pairing Request) 패킷을 전송하고, 페리페럴이 `SMP_PAIR_RSP` (Pairing Response) 패킷으로 응답하면서 시작된다. 만약 페리페럴이 센트럴에게 페어링을 먼저 유도하고 싶다면, 페어링 요청 대신 `SMP_SEC_REQ` (Security Request) 패킷을 전송하여 센트럴이 `SMP_PAIR_REQ`를 보내도록 촉발할 수 있다. 이 교환 과정에서 기기들은 입출력(IO) 기능, OOB(Out-of-Band) 데이터 지원 여부, 최대 암호화 키 크기, 분배할 키의 종류, 그리고 가장 핵심이 되는 **인증 요구사항(Authentication Requirements, AuthReq)** 플래그를 상호 교환한다. `AuthReq`는 8비트(1옥텟) 길이의 비트 필드로, 기기가 요구하는 보안 속성을 매우 구체적으로 정의하며, BLERP 공격자들은 바로 이 필드의 조작을 통해 보안 수준을 강제로 낮추는 기법(Security Downgrade)을 사용한다. 각 비트 필드의 의미는 다음과 같다. | 비트 위치 (LSB->MSB) | 플래그 명칭 | 상세 의미 및 암호학적 파급력 | | --- | --- | --- | | Bit 0-1 | `bonding` (Bonding Flags) | 디바이스가 장기 키(LTK)를 교환하고 향후 사용을 위해 보안 데이터베이스에 저장(본딩)할 것인지를 결정하는 2비트 플래그이다. `00`은 본딩을 하지 않음(No Bonding)을, `01`은 본딩 수행(Bonding)을 의미하며 나머지 값은 예약(RFU)되어 있다. | | Bit 2 | `mitm` (Man-in-the-Middle) | 중간자 공격(MitM) 보호를 요구하는 1비트 플래그이다. 이 값이 `1`로 설정되면, 기기는 반드시 사용자 인증이 수반되는 페어링 모델(예: Passkey Entry, Numeric Comparison)을 요구한다. 이 플래그가 `0`이거나 디바이스에 적절한 입출력 장치(IO Capability)가 없다면, 아무런 인증 없이 키가 교환되는 'Just Works' 방식이 채택되어 심각한 보안 위협에 노출될 수 있다. | | Bit 3 | `sc` (Secure Connections) | 블루투스 4.2 버전에서 도입된 LE 보안 연결(LE Secure Connections, LESC) 지원 여부를 나타낸다. 두 기기 모두 이 비트를 `1`로 설정해야만 FIPS 호환 타원 곡선 암호(ECDH P-256) 알고리즘을 사용한 페어링이 진행된다. 한쪽이라도 `0`일 경우, 취약한 구형 암호화 방식인 LE 레거시 페어링(Legacy Pairing)으로 강등(Fallback)된다. | | Bit 4 | `keypress` | Passkey Entry 모델에서만 사용되는 플래그로, 사용자가 비밀번호를 입력할 때마다 한 비트씩 키 입력 알림(Keypress Notification)을 전송할지 여부를 결정한다. 이는 패스키 전체가 한 번에 탈취되는 것을 방지하기 위해 도입되었다. | | Bit 5 | `ct2` | 교차 전송 키 파생(Cross-Transport Key Derivation, CTKD) 시 블루투스 클래식과 BLE 간의 암호키 변환에 사용되는 `h7` 해시 함수의 지원 여부를 알리는 플래그이다. | | Bit 6-7 | `rfu` (Reserved for Future Use) | 현재 표준에서는 사용되지 않으며 미래의 기능 확장을 위해 예약된 공간이다. | ### Phase 2: 암호 키 생성 및 인증 (Key Generation Method Selection) 2단계에서는 1단계에서 협상된 `sc` 플래그의 값에 따라 암호 키 생성 알고리즘이 두 가지 갈래로 나뉜다. **1. LE 레거시 페어링 (LE Legacy Pairing,** `sc`**=0):** 과거 블루투스 4.0/4.1의 표준 방식이다. 선택된 결합 모델에 따라 임시 키(Temporary Key, TK)가 생성된다 (예: Just Works의 경우 TK는 0으로 고정됨). 이후 센트럴과 페리페럴은 각각 무작위 난수(`Mrand`, `Srand`)를 생성하여 교환한 뒤, 이를 TK와 함께 AES-128 암호화 함수에 통과시켜 128비트 단기 키(Short Term Key, STK)를 파생한다 (STK = AES128(TK, Srand || Mrand)). 레거시 페어링의 치명적인 약점은 TK가 단순할 경우(예: 0이거나 6자리 PIN), 패시브 스니핑(Passive Eavesdropping)을 통해 무선상에 노출된 난수를 수집한 공격자가 STK를 쉽게 역산해 낼 수 있다는 점이다. **2. LE 보안 연결 (LE Secure Connections, LESC,** `sc`**=1):** STK의 취약성을 극복하기 위해 블루투스 4.2에서 도입된 방식으로, FIPS 승인 알고리즘인 타원 곡선 디피-헬만(Elliptic Curve Diffie-Hellman, ECDH) P-256 곡선을 사용한다. 양 기기는 자신만의 개인 키(Private Key)와 공개 키(Public Key)를 생성하고, 무선상을 통해 공개 키만을 교환한다. 이후 각자는 자신의 개인 키와 상대방의 공개 키를 결합하여 동일한 256비트 공유 비밀(Shared Secret, DHKey)을 안전하게 연산해 낸다. 이 과정에서 서명 검증 및 인증을 위해 AES-CMAC 기반의 암호학적 해시 함수인 `f4`, `f5`, `f6` 함수가 동원된다. 공유 비밀은 `f5` 함수(KDF)를 통과하여 최종 통신 암호화에 사용될 장기 키(Long Term Key, LTK)와, 다음 단계의 메시지 무결성을 검증하기 위한 `MacKey`로 파생된다. 결과적으로 LESC 방식에서는 LTK가 무선상으로 절대 전송되지 않으므로, 공격자가 공개 키 교환 과정을 모두 감청하더라도 개인 키를 모르면 LTK를 역산할 수 없다. ### Phase 3: 전송 계층 종속 키 분배 (Transport Specific Key Distribution) 2단계에서 생성된 STK(레거시) 또는 LTK(LESC)를 이용하여 통신 링크가 암호화되면, 비로소 3단계인 키 분배 과정이 시작된다. 페어링 1단계에서 상호 요청했던 `Initiator Key Distribution` 및 `Responder Key Distribution` 필드의 설정값에 따라, 미래의 세션과 식별을 위해 필수적인 여러 암호학적 키와 정보들이 안전하게 암호화된 채널을 통해 상대방에게 전달된다. 이 단계에서 교환 및 저장되는 핵심 요소들은 다음과 같다. - **장기 키 (Long Term Key, LTK):** 레거시 페어링의 경우 페리페럴이 독자적으로 무작위 128비트 LTK를 생성하여 센트럴에게 전송한다. (LESC의 경우 이미 2단계에서 상호 도출되었으므로 전송하지 않는다 ). 이 LTK는 페어링 절차가 끝난 후 향후 기기들이 재연결(Reconnection)될 때 암호화 세션 키(Session Key)를 파생하기 위한 근원 키(Root Key)로 사용된다. - **EDIV (Encrypted Diversifier) & Rand (Random Number):** 레거시 페어링에서 페리페럴이 LTK와 함께 생성하여 센트럴에 전달하는 식별자이다. 16비트의 EDIV와 64비트의 Rand 값은 페리페럴의 보안 데이터베이스(Security Database)에 저장된 수많은 LTK 중, 현재 연결을 시도하는 센트럴과 매칭되는 정확한 LTK를 식별하고 조회(Database Lookup)하기 위한 인덱스 역할을 수행한다. - **IRK (Identity Resolving Key):** 128비트 식별 확인 키이다. BLE 기기는 프라이버시 보호 및 위치 추적 방지를 위해 자신의 MAC 주소를 주기적으로 변경하는 임의 결정 가능 비공개 주소(Resolvable Private Address, RPA) 메커니즘을 사용한다. RPA는 난수(prand)와 이를 IRK로 해시(hash = AES128(IRK, prand))한 값을 이어 붙여 생성된다. IRK를 분배받아 보안 데이터베이스에 보관한 신뢰된 기기만이 수신된 RPA의 해시를 역산하여, 해당 기기의 변하지 않는 고정 신원 주소(Identity Address)를 알아낼 수 있다. - **CSRK (Connection Signature Resolving Key):** 통신 링크를 암호화하지 않고 데이터를 평문으로 전송할 때, 데이터의 출처를 인증하고 위변조(무결성)를 방지하기 위해 사용되는 128비트 데이터 서명(Data Signing) 키이다. 송신자가 CSRK를 이용해 데이터에 암호학적 서명을 부착하면 수신자는 이를 검증한다. 성공적으로 3단계가 완료되면, 양 기기는 교환된 키들(LTK, IRK, CSRK 등)을 자신들의 호스트 스택 내에 구현된 비휘발성 스토리지인 보안 데이터베이스(Security Database)에 영구적으로 기록한다. 이 행위가 바로 '본딩(Bonding)'이며, 본딩이 완료된 기기 간에는 향후 무거운 페어링 연산(Phase 1\~3)을 전면 생략할 수 있게 된다. ## 세션 수립 (Session Establishment) 및 페어링과의 논리적 분리 BLE 프로토콜 설계상 가장 주목해야 할 점은, 장기 키(LTK)를 생성하고 교환하는 '페어링(SMP)' 과정과, 이미 본딩된 기기가 재연결되어 암호화된 통신을 시작하는 '세션 수립(Link Layer)' 과정이 아키텍처 상으로 완벽하게 분리되어 있다는 사실이다. 이 아키텍처의 논리적 단절이 바로 향후 논의할 BLERP 공격의 주요 표적이 된다. 본딩된 두 기기(Alice와 Bob)가 물리적으로 재연결되면, SMP를 통하지 않고 컨트롤러의 링크 계층(LL) 수준에서 직접 세션 수립 절차가 진행된다. 1. **암호화 요청 (**`LL_ENC_REQ`**):** 센트럴 기기는 자신의 난수인 세션 키 다양화기(`SKD_C`, 8바이트)와 초기화 벡터(`IV_C`, 4바이트)를 포함하는 `LL_ENC_REQ` 패킷을 전송한다. 레거시 연결의 경우 이 패킷에 `EDIV`와 `Rand` 값도 평문으로 함께 포함되어 페리페럴이 데이터베이스에서 올바른 LTK를 찾을 수 있도록 한다. 2. **암호화 응답 (**`LL_ENC_RSP`**):** 페리페럴은 수신한 `EDIV`와 `Rand`를 통해 보안 데이터베이스에서 128비트 LTK를 조회한다. 성공적으로 LTK를 찾으면, 페리페럴 역시 자신의 난수인 `SKD_P`(8바이트)와 `IV_P`(4바이트)를 담은 `LL_ENC_RSP`를 센트럴에 회신한다. 3. **세션 키 (Session Key, SK) 파생:** 두 기기는 교환된 `SKD_C`와 `SKD_P`를 이어 붙여 16바이트의 전체 SKD를 구성한다. 이후 저장되어 있던 장기 키(LTK)를 마스터 키로 사용하여, AES-ECB 암호화 알고리즘에 SKD를 평문으로 입력하여 고유한 128비트 세션 키(SK)를 파생한다 (SK = AES-ECB(LTK, SKD_C || SKD_P)).즉, 세션 키는 매 연결마다 교환된 평문 난수(SKD)와 기기 내부에 저장된 비밀 키(LTK)의 결합으로 완전히 새롭게 생성된다. 4. **암호화 시작 3방향 핸드셰이크:** 세션 키가 준비되면 센트럴은 평문 상태의 `LL_START_ENC_REQ`를 전송한다. 페리페럴은 방금 생성한 세션 키(SK)와 양측의 IV를 결합하여 AES-CCM 알고리즘을 초기화하고, 이를 바탕으로 페이로드 없이 암호화 및 인증(MIC) 코드가 포함된 `LL_START_ENC_RSP` 패킷을 전송한다. 센트럴 역시 동일한 방식으로 암호화된 `LL_START_ENC_RSP`를 회신하여 핸드셰이크를 완료한다. 이후의 모든 L2CAP 및 GATT 데이터 통신은 이 세션 키(SK)를 이용해 AES-CCM으로 강력하게 암호화된다. ## BLE 표준의 재페어링(Re-Pairing) 메커니즘과 결정 트리 로직 블루투스 핵심 규격 v6.1(Bluetooth Core Specification v6.1, Vol 3, Part H)은 이미 본딩이 완료되어 장기 키(PK/LTK)를 공유하고 있는 두 기기가, 더 높은 수준의 보안을 협상하기 위해 기존의 키를 폐기하고 새로운 키로 덮어쓸 수 있도록 허용하는 '재페어링(Re-pairing)' 메커니즘을 명시하고 있다. 예를 들어, 과거에 디스플레이가 없어 'Just Works' 방식(인증 없음)으로 본딩되었던 기기가, 펌웨어 업데이트를 통해 OOB 방식을 지원하게 되어 더 강력한 보안 수준으로 갱신하려는 합법적인 유스케이스를 지원하기 위함이다. 표준 명세서의 결정 트리(Decision Tree, Vol 3, Part H, Figure 2.7)는 센트럴 기기가 페리페럴로부터 재페어링을 요구하는 `SMP_SEC_REQ` (Security Request) 패킷을 수신했을 때 이를 어떻게 처리해야 하는지에 대한 로직(Listing 1)을 다음과 같이 유사 코드로 정의하고 있다. - 만약 두 기기가 현재 이미 페어링 절차를 진행 중이라면, 중복된 보안 요청은 무시한다 (`ignore_security_request`). - **만약 두 기기가 이미 본딩되어 PK(LTK)를 가지고 있다면:** - 센트럴은 수신된 `SMP_SEC_REQ` 패킷에 포함된 `AuthReq` 필드의 보안 수준(`AR_SR`)과, 현재 데이터베이스에 저장되어 있는 기존 키의 보안 수준(`AR_PK`)을 비교한다. - 만약 요청된 보안 수준이 기존 수준보다 엄격하게 높다면 (`AR_SR > AR_PK`), 센트럴은 `SMP_PAIR_REQ`를 전송하여 기존 PK를 덮어쓰기 위한 **재페어링 절차를 개시한다 (**`repair()`**)**. - 만약 `AR_SR AR_PK`를 어기고, `AR_SR >= AR_PK` 조건만으로도 재페어링을 허용하는 버그가 있었다. 이로 인해 최고 수준의 보안(MitM 방어 및 SC)을 갖춘 기기도 강제로 재페어링 공격에 노출되었다. - **Android (Fluoride 스택):** PI 공격자가 `LL_ENC_REQ`를 두 번 연속으로 거부(`LL_REJECT_IND`)하면, 안드로이드 스택은 원인을 알 수 없는 이유로 기존에 저장된 신뢰할 수 있는 페리페럴의 LTK를 데이터베이스에서 영구 삭제해 버리는 심각한 오류가 존재했다. LTK가 삭제되므로 `AR_PK`와의 비교 로직 자체가 무력화되어 공격자의 `SMP_SEC_REQ`를 무조건적으로 승인하게 된다. - **Apache NimBLE:** `SMP_SEC_REQ` 수신 시 `bonding` 플래그 비트가 설정되어 있지 않으면, 보안 수준의 높낮이와 관계없이 맹목적으로 재페어링을 개시하는 논리적 버그(CVE-2025-62235 할당)가 확인되었다. # 방어 대책(Countermeasures): 프로토콜 로직의 강화 및 재설계 BLERP 공격의 근본 원인을 제거하기 위해서는 컨트롤러의 세션 수립 단계와 호스트의 페어링 협상 단계 사이의 단절된 상태 검증을 강화해야 한다. 논문은 즉시 배포 가능한 하위 호환성 방어책과, 블루투스 표준의 근본적 개정이 필요한 암호학적 방어책 두 가지를 제시한다. ## 1. 강화된 재페어링 로직 (Hardened Re-pairing) 기존 블루투스 기기의 하위 호환성을 유지하면서 펌웨어 업데이트만으로 즉각적인 완화 효과를 거둘 수 있는 휴리스틱 방어 기법이다. 표준의 모호한 비교 검증 알고리즘을 엄격한 3단계 규칙으로 강화한다. 1. **암호화 실패 시 즉각 연결 종료 (PI 공격 방어 / V5 완화):** 컨트롤러가 세션 수립 중 상대방으로부터 `LL_REJECT_IND` 패킷(암호화 거부)을 수신하거나 암호화 절차에 실패할 경우, 평문 상태로 물러서서 `SMP_SEC_REQ`를 기다리는 것이 아니라 `LL_TERMINATE_IND` 메시지를 발생시켜 즉시 블루투스 물리적 연결을 끊어버린다. 이를 통해 V5 취약점을 통한 PI 공격 진입을 원천 차단한다. 2. **일관성 검증 로직 도입 (V3 완화):** 센트럴의 SMP 상태 머신은 최초에 페리페럴이 보낸 `SMP_SEC_REQ`의 `AR_SR` 값을 메모리에 캐싱(Caching)해둔다. 이후 재페어링 절차가 개시되어 페리페럴이 `SMP_PAIR_RSP` 패킷을 응답할 때, 이 패킷 내의 실제 `AuthReq` 값이 캐싱된 `AR_SR`과 일치하는지 엄격히 검증한다. 일치하지 않고 보안 수준이 강등되었다면 연결을 즉각 종료(Authentication Requirements 에러 발생)한다. 3. **강력한 하한선(Anti-Downgrade) 강제 (V4, V6 완화):** 새로운 장기 키(PK/LTK)를 도출하여 기존 키를 덮어쓰기 직전에, 새롭게 협상된 보안 수준 및 패킷 엔트로피 크기가 기존 보안 데이터베이스에 보관된 `AR_PK` 및 이전 엔트로피보다 절대 낮아질 수 없도록 차단벽을 형성한다. ## 2. 인증 및 무결성 보장 재페어링 (Authenticated and Integrity-Protected Re-pairing) '강화된 재페어링 로직'은 효과적인 완화책이지만, 요청 자체에 대한 인증이 결여된 V1과 V2의 근본적 문제(가짜 보안 요청을 통한 불필요한 재페어링 시도 자체)를 완벽히 억제하지는 못한다. 이를 디자인 바이 디폴트(Design-by-default)로 해결하기 위해, 연구진은 새로운 암호학적 재페어링 프로토콜을 블루투스 표준에 개정안으로 제안하였다. 이 제안의 핵심은 기존에 저장된 장기 키(PK_old)를 새로운 키 파생에 대한 '암호학적 증명 수단'으로 활용하는 것이다. - **키 체이닝(Key Chaining):** 새로운 페어링 키(PK_new)를 생성하는 KDF(Key Derivation Function) 알고리즘에, 새로 교환된 ECDH 공유 비밀(Shared Secret, `ss`)뿐만 아니라, 기존에 신뢰를 맺었던 장기 키(PK_old)를 필수 입력 파라미터로 추가한다 (PK_new = KDF(ss, h\_{transcript} || PK_old)).이를 통해 기존 PK_old를 알지 못하는 공격자(Charlie)는 올바른 PK\_{new}를 수학적으로 도출할 수 없게 되어 재페어링 시도가 무조건 실패하게 된다 (암묵적 인증 보장). - **트랜스크립트 해싱(Transcript Hashing):** 페어링 과정에서 교환되는 모든 SMP 메시지 패킷(`AuthReq` 플래그, 엔트로피 크기 등)을 누적 해싱하여 h\_{transcript}를 생성하고 이를 키 파생 과정에 결합한다 (h = hash(h || msg)). 이는 공격자가 중간에 릴레이 공격을 통해 `AuthReq` 패킷의 한 비트라도 변조할 경우, 양 기기에서 계산되는 h\_{transcript} 값이 달라져 최종 도출되는 PK_new가 불일치하게 되므로 MitM 공격(릴레이 기반 단일 채널 공격 등)을 원천 차단하는 무결성 보장 기능이다. 이 방식은 오버헤드를 거의 증가시키지 않으며, ProVerif 등 정형 검증(Formal Verification) 도구를 통해 재전송(Replay) 및 반사(Reflection) 공격을 방어하고 강력한 상호 인증이 보장됨을 수학적으로 증명하였다. 단, 기기가 공장 초기화되어 PK\_{old}를 소실한 경우 사용자 개입을 통해 예외 처리해야 하는 UX 측면의 트레이드오프가 존재한다. # Reference 1. 2. The Bluetooth® Low Energy Primer Document 3. 4.