저전력 블루투스 (BLE) 기기
BLE 기기의 Google 빠른 페어링 서비스 (GFPS) 구현은 블루투스 핵심 사양 v4.2 이상과 호환됩니다.
빠른 페어링 사양의 다음 부록을 통해 GFPS에서 저전력 (LE) 전용 및 저전력 오디오 (LEA) 기기를 지원할 수 있습니다.
적합성 수준
사양에 언급된 '해야 한다', '해야 한다', '할 것이다', '해야 한다', '할 수 있다', '할 수 있다'라는 키워드는 아래에 설명되어 있습니다.
| 용어 | 설명 |
|---|---|
| 해야 합니다. | 필수 - 요구사항을 정의하는 데 사용됩니다. |
| must | 이전에 명시된 필수 요구사항의 자연스러운 결과 또는 상황에 관계없이 항상 참인 명백한 사실을 표현하는 데 사용됩니다. |
| will | 사실입니다 - 사실을 진술할 때만 사용됩니다. |
| should | 권장 - 여러 가능성 중에서 하나가 특히 적합한 것으로 권장되지만 필수는 아님을 나타내는 데 사용됩니다. |
| 5월 | 허용됨 - 옵션을 허용하는 데 사용됩니다. |
| 가능한 | 할 수 있습니다 - 인과 관계 방식으로 문장을 연결하는 데 사용됩니다. |
키 기반 페어링 특성
구직자가 제공업체에게 보내는 메시지
키 기반 페어링 특성의 원시 요청 type 0x00은 비트 4를 사용하여 탐색기가 BLE 기기 사양을 지원하는지 나타내고 비트 5를 사용하여 탐색기가 LE 오디오를 지원하는지 나타냅니다.
| 옥텟 | 데이터 유형 | 설명 | 값 | 필수 여부 |
|---|---|---|---|---|
| 0 | uint8 |
메시지 유형 | 0x00 = 키 기반 페어링 요청 |
필수 |
| 1 | uint8 |
플래그
|
다름 | 필수 |
| 2~7 | uint48 |
다음 중 하나를 충족해야 합니다.
|
다름 | 필수 |
| 8~13 | uint48 |
시커의 BR/EDR 주소 | 다름 | 플래그 비트 1 또는 3이 설정된 경우에만 표시됩니다. |
| n - 15 | 임의의 값 (솔트) | 다름 | 필수 |
제공자가 구직자에게 보내는 메시지
요청의 비트 4가 설정되면 키 기반 페어링 특성의 새로운 응답 메시지 type 0x02를 사용하여 시커에 추가 결합 옵션을 제공할 수 있습니다.
| 옥텟 | 데이터 유형 | 설명 | 값 |
|---|---|---|---|
| 0 | uint8 |
메시지 유형 | 0x02 = 키 기반 페어링 확장 응답 |
| 1 | uint8 |
플래그
|
다름 |
| 2 | uint8 |
제공업체 주소 수 (현재 버전에서는 수가 3 이상인 경우 블록 암호 모드를 AES-CTR로 수정해야 하므로 수가 1 또는 2임) |
다름 |
| 3~8 또는 3~14 |
|
다름 | |
| 9~15 또는 15 | 임의의 값 (솔트) | 다름 |
BLE 기기 사양을 지원하는 제공자는 비트 4와 비트 5를 읽어 탐색기의 기능을 이해해야 합니다.
- 비트 4가 0이면 제공자는 비트 5를 무시하고
type 0x01형식으로 응답해야 합니다. - 비트 4가 1인 경우
- LE 전용 프로바이더의 경우 LE 결합 환경설정을 나타내기 위해
type 0x02로 응답해야 합니다. - 이중 모드 제공업체의 경우
type 0x02로 응답하여 BR/EDR 또는 LE 결합 환경설정을 나타낼 수 있습니다.
- LE 전용 프로바이더의 경우 LE 결합 환경설정을 나타내기 위해
- LE 오디오 (LEA) 듀얼 모드 제공업체 사례는 예: LEA 듀얼 모드 제공업체와 페어링을 참고하세요.
메시지 스트림 PSM (프로토콜 서비스 멀티플렉서) 특성
BLE 기기의 메시지 스트림을 지원하기 위해 빠른 페어링은 메시지를 보내고 받기 위한 BLE L2CAP 채널을 설정하고 유지합니다. 빠른 페어링 L2CAP 서버는 LE 크레딧 기반 흐름 제어를 구현해야 합니다.
이 특성을 통해 시커는 PSM 값을 읽은 다음 PSM 값으로 보안 L2CAP 연결을 설정할 수 있습니다.
| 빠른 페어링 서비스 특성 | 암호화됨 | 권한 | UUID |
|---|---|---|---|
| 메시지 스트림 PSM | 예 | 읽기 | FE2C1239-8366-4814-8EB0-01DE32100BEA |
| 옥텟 | 데이터 유형 | 설명 | 값 |
|---|---|---|---|
| 0 | uint8 |
주
|
다름 |
| 1 - 2 | uint16 |
PSM 값은 0x80~0xFF 범위에 있어야 합니다. | 다름 |
참고: TWS에는 기본 및 보조의 두 가지 구성요소가 있습니다. 이러한 구성요소의 역할은 특정 조건에서 상호 교환이 가능합니다. A가 기본 구성요소이고 B가 보조 구성요소라고 가정할 때 구성요소 A의 배터리 소모로 인해 구성요소 B가 기본 구성요소 역할을 맡아야 하며 이 시나리오를 role switch라고 합니다.
role switch 후 제공자가 빠른 페어링 메시지 스트림을 처리할 수 없는 경우 기존 L2CAP 연결을 선제적으로 연결 해제해야 합니다. 그러면 빠른 페어링 탐색기가 새 기본 구성요소와의 L2CAP 메시지 스트림 연결을 다시 설정할 수 있습니다.
추가 패스키 특성
이 특성은 추가 구성요소에 MITM 보호를 제공하기 위한 것입니다.
CSIS 가짜 구성원 MITM 보호 조치
빠른 페어링에는 페어링 절차의 일부로 MITM 보호가 필요합니다. CSIS는 MITM 보호를 제공하지 않으므로 여러 구성요소의 FP에 관한 현재 설계를 확장하여 추가 구성요소에 MITM 보호를 제공해야 합니다.
특성 정의
| 빠른 페어링 서비스 특성 | 암호화됨 | 권한 | UUID |
|---|---|---|---|
| 추가 패스키 | 예 | 읽기,쓰기,알림 | FE2C123A-8366-4814-8EB0-01DE32100BEA |
메시지
메시지 형식은 읽기, 쓰기, 알림 작업에 적용됩니다.
암호화된 데이터 형식
암호화된 데이터는 빠른 페어링 GATT 연결을 사용하여 전송됩니다.
| 옥텟 | 데이터 유형 | 설명 | 값 |
|---|---|---|---|
| 0-15 | uint128 | 암호화된 추가 패스키 블록 | 다양한 가격 |
원시 데이터 형식
공유 비밀번호를 사용하여 암호화된 데이터를 복호화한 후 형식은 다음과 같습니다.
| 옥텟 | 데이터 유형 | 설명 | 값 |
|---|---|---|---|
| 0 | uint8 | 메시지 유형 |
|
| 1-3 | uint24 | 6자리 패스키 | 다양한 가격 |
| 4~9 | uint48 | 타겟 결합 구성요소 주소 | 다양한 가격 |
| 10 | uint8 | 상태 코드입니다. 읽기 작업에서만 사용됩니다. | 다음 중 하나
|
| 11-15 | 임의의 값 (솔트) | 다양한 가격 |
기본 (첫 번째 결합 구성요소)은 빠른 페어링 탐색기와 추가 결합 구성요소 간의 브리지입니다. 특성은 다음 가이드라인을 따라야 합니다.
- 빠른 페어링 탐색기에서 쓰기 요청을 수신할 때 제공자는 다음을 충족해야 합니다.
- 결합되는 구성요소의 주소 설정
- 본딩되는 구성요소에 패스키 전송
- 상태 코드를 대기 중(0x01)으로 설정
- 본딩되는 구성요소로부터 패스키를 수신하기 전에 읽기 요청을 수신하는 경우 제공자는
- 패스키, 모든 값
- 결합되는 구성요소의 주소
- 대기 중 상태 코드, 0x01
- 공급자가 빠른 페어링 탐색기에 알림을 보내기 전에
- 결합되는 구성요소의 패스키
- 결합되는 구성요소의 주소
- 성공 상태 코드, 0x00
- 제공자 측에 복구할 수 없는 오류가 있는 경우 결과
- 패스키, 모든 값
- 결합되는 구성요소의 주소
- 실패 상태 코드, 0x02
자세한 내용은 MITM 다이어그램 1 및 MITM 다이어그램 2를 참고하세요.
LE 기기 요구사항
LE 광고
검색 가능 모드 또는 검색 불가능 모드의 경우 공급자는 RPA를 사용하여 FastPair 데이터를 광고해야 합니다.
본딩 기능
LE 지원 기기의 경우 시커는 기존 LE 연결과 페어링을 생성해야 합니다. 빠른 페어링 키 기반 페어링 확인을 통과한 후 제공자는 RPA와의 결합을 허용하고 빠른 페어링 비밀번호 확인을 위해 IO 기능을 DisplayYesNo로 설정해야 합니다.
LEA 기기 요구사항
LEA 광고
이중 모드 기기의 경우: 검색 가능 모드의 경우 제공자는 ID 주소로 빠른 페어링 데이터를 광고해야 합니다. 검색 불가능 모드의 경우 제공업체는 RPA를 사용하여 빠른 페어링 데이터를 광고해야 합니다. 이전 버전과의 호환성을 위해 이전 광고 (BT 4.2)를 사용하여 이전 기기를 지원하는 것이 좋습니다. 기기가 초기화될 때마다 IRK를 변경해야 합니다.
이중 모드가 아닌 기기의 경우: 검색 가능 모드 또는 검색 불가능 모드에서 공급자는 RPA를 사용하여 확장 광고 (BT 5.0)를 사용하여 FastPair 데이터를 광고해야 합니다.
FP 서비스 데이터가 포함된 LE 연결 가능 광고는 블루투스 어댑터 프로필 (BAP 1.0.1) 및 공통 오디오 프로필 요구사항에 따라 CAS UUID를 포함해야 합니다.
공급자는 검색 가능 모드와 관계없이 서비스 데이터 (AD 유형 0x16) 또는 16비트 서비스 클래스 UUID (AD 유형 0x02 또는 0x03)에 CAS UUID(0x1853)를 포함하여 LEA 기능을 나타낼 수 있습니다.
배터리 및 SASS 데이터 포함으로 인해 기존 광고에서 공간이 충분하지 않은 검색 불가능 광고의 경우 이 경우 스캔 응답에 CAS UUID를 포함해야 합니다.
LEA 결합 기능
시커는 기존 LE 연결과 페어링을 생성해야 합니다. 빠른 페어링 키 기반 페어링 확인을 통과한 후 이중 모드 제공자는 ID 주소 및 RPA와의 결합을 허용해야 하고 이중 모드가 아닌 제공자는 RPA와의 결합을 허용하고 빠른 페어링 비밀번호 확인을 위해 IO 기능을 DisplayYesNo로 설정해야 합니다.
구성요소 간 내부 통신 채널
추가 구성요소에서 MITM 보호를 실행하기 위해 기존 GATT 연결이 유지됩니다. 기본 연결 구성요소는 빠른 페어링 탐색기와 나머지 구성요소 간의 메시지 전송을 처리해야 합니다.
내부 커뮤니케이션은 Initial Pair 및 Subsequent Pair에 사용됩니다.
- 키 기반 페어링 절차가 기본 구성요소에서 전달되면 기본 구성요소는 나머지 구성요소의 IO 기능을 변경하는 메시지를 전송해야 합니다.
- 빠른 페어링이 완료되면 기본 구성요소는 나머지 구성요소의 IO 기능을 재설정하는 메시지를 전송해야 합니다.
- 추가 패스키 절차를 실행할 때 기본 구성요소는 빠른 페어링 탐색기와 나머지 구성요소 간의 패스키 전송을 처리해야 합니다.
IO 기능을 변경하는 시간
- 키 기반 페어링 절차가 통과되면 IO 기능을 DisplayYesNo로 변경
- 기기에 여러 구성요소가 있는 경우 모든 구성요소를 DisplayYesNo로 설정해야 합니다.
- 공급자가 IO 기능을 DisplayYesNo로 변경하면 안 되는 한 가지 예외는 키 기반 페어링 요청의 비트 3이 1로 설정된
Retroactive Pair입니다(탐색기에서 공급자로 보내는 메시지 참고).
- IO 기능을 기본 설정으로 변경
- 초기 페어링
- LE 연결이 연결 해제되면 빠른 페어링 세션 종료
- 기본 키가 바인딩된 후 15초 이내에 추가 패스키 쓰기 요청이 없으면 빠른 페어링 세션을 종료합니다.
- 추가 패스키 쓰기 요청이 수신된 후 결합되는 구성요소가 15초 이내에 결합되지 않으면 빠른 페어링 세션 종료
- 모든 구성요소가 결합된 후 15초 이내에 계정 키 쓰기 요청이 없으면 빠른 페어링 세션을 종료합니다.
- 계정 키 쓰기 요청이 수신된 후 빠른 페어링 세션을 종료하도록 제한 시간을 15초로 설정
- 후속 페어링
- LE 연결이 연결 해제되면 빠른 페어링 세션 종료
- 기본 키가 바인딩된 후 15초 이내에 추가 패스키 쓰기 요청이 없으면 빠른 페어링 세션을 종료합니다.
- 추가 패스키 쓰기 요청이 수신된 후 결합되는 구성요소가 15초 이내에 결합되지 않으면 빠른 페어링 세션 종료
- 모든 구성요소가 결합되면 빠른 페어링 세션을 종료합니다.
- 초기 페어링
UI 표시 숨기기
헤드셋이 페어링 준비가 되지 않은 경우 공급자는 type 0b0010를 사용하여 계정 키 데이터의 UI 표시를 숨겨 탐색기에게 후속 페어링 UI를 표시하지 않도록 알려야 합니다 (광고 페이로드: 빠른 페어링 계정 데이터 참고).
LE 오디오 기기 요구사항
블루투스 요구사항
Android, LE 오디오 헤드셋 권장사항을 참고하세요.
CTKD 지원
이중 모드 기기의 경우 LE에서 BR/EDR로의 CTKD가 필수이며 BAP 요구사항과 일치합니다.
타겟 공지사항
주변기기는 타겟팅된 알림을 사용하여 페어링된 중앙 기기의 연결을 요청해야 합니다. 타겟팅된 공지는 CAP 1.0 표 8.4 (p48/58)에 따라 연결 관리를 위해 BAP 및 CAP에 정의되어 있습니다.
GATT EATT 서버 지원
EATT를 사용하면 기기가 결합된 경우 중앙 기기가 여러 GATT 트랜잭션을 동시에 전송할 수 있습니다. CSIP를 지원하는 기기의 경우 프로필 연결 성능이 향상된 후 곧 다른 이어폰의 CSIP 결합 절차가 시작됩니다.
GATT 강력한 캐싱 (적극 권장)
제공자가 단일 기기가 아니라 CSIP 구현이 있는 조정된 집합인 경우 서비스 검색을 실행하는 횟수를 줄이고 연결 속도를 높이기 위해 제공자는 블루투스 5.1에 정의된 GATT 캐싱을 구현해야 합니다.
빠른 페어링 요구사항
LE 광고
검색 가능 모드 또는 검색 불가능 모드의 경우 기기에 여러 구성요소가 있으면 빠른 페어링 데이터는 기본 구성요소에 의해 광고되어야 합니다. 기기가 후속 페어링을 위해 준비되지 않은 경우 보조 구성요소는 확장 기능의 빠른 페어링 데이터를 광고할 수 있습니다. UI 표시 숨기기를 참고하세요.
GATT 서비스 공개 상태
GATT 데이터베이스는 모든 LE 트랜스포트 GATT 연결에서 동일해야 합니다. LE 오디오 서비스 (0x184E)는 빠른 페어링 연결의 GATT 데이터베이스에 포함되어야 합니다.
예: LEA 이중 모드 제공업체와 페어링
시나리오 1 - 시커가 LEA를 지원하지 않는 경우
제공자는 LEA를 지원하지 않는 탐색기와 하위 호환되어야 합니다.
구성요소
- 제공자: A2DP/HFP/LEA
- 발표자: A2DP/HFP
초기 페어링 / 후속 페어링의 예상 동작
- 제공업체는 ID 주소 (초기) 또는 RPA (후속)를 사용하여 빠른 페어링 서비스 데이터 (0xFE2C)를 광고합니다.
- 기존 광고 사용
- 시커는 초기 페어링을 위한 ID 주소 또는 후속 페어링을 위한 RPA와 함께 공급자의 광고를 수신합니다.
- 시커가 키 기반 페어링 요청을 전송합니다.
- 키 기반 페어링 요청의 플래그 비트 5가 0으로 설정됨
- 공급자는 다음 중 하나의 공개 주소와 함께 키 기반 페어링 응답을 전송합니다.
- 메시지 유형 0x01을 사용하는 경우 주소는 공개 주소여야 합니다.
- 메시지 유형 0x02를 사용하는 경우
- 비트 0은 0이어야 합니다.
- 비트 1은 0이어야 합니다.
- 주소는 공개 주소여야 합니다.
- 시커는 BR/EDR 전송과 결합을 생성합니다.
- BR/EDR의 IO 기능이 DisplayYesNo로 설정됨
- 탐색기와 제공자가 빠른 페어링 패스키 확인 절차를 실행합니다.
시나리오 2 - 탐색기가 LEA를 지원하는 경우
구성요소
- 제공업체
- A2DP/HFP/LEA 지원
- 단일 구성요소
- 탐색기
- A2DP/HFP/LEA 지원
초기 페어링 / 후속 페어링의 예상 동작
- 제공업체는 ID 주소 (초기) 또는 RPA (후속)를 사용하여 빠른 페어링 서비스 데이터 (0xFE2C)를 광고합니다.
- 기존 광고 사용
- 시커가 키 기반 페어링 요청을 전송합니다.
- 키 기반 페어링 요청의 플래그 비트 5가 1로 설정됨
- 제공자는 메시지 유형 0x02로 키 기반 페어링 응답을 전송합니다.
- 비트 0은 0이어야 합니다.
- 비트 1은 1이어야 합니다.
- 주소는 신원 주소입니다.
- 시커는 LE 전송의 기존 LE 연결과 본드를 생성합니다.
- CTKD 방향은 LE에서 BR/EDR로
- IO 기능이 LE의 경우 DisplayYesNo로 설정됨
- 탐색기와 제공자가 빠른 페어링 패스키 확인 절차를 실행합니다.
시나리오 3 - 요청자가 LEA 및 CSIP 관련 지원을 제공하는 경우
구성요소
- 제공업체
- A2DP/HFP/LEA 지원
- 여러 구성요소
- 기본 구성요소는 BR/EDR/LE입니다.
- 보조 구성요소는 LE 전용입니다.
- 탐색기
- A2DP/HFP/LEA 지원
초기 페어링 / 후속 페어링의 예상 동작
- 기본 구성요소는 ID 주소 (초기) 또는 RPA (후속)를 사용하여 빠른 페어링 서비스 데이터 (0xFE2C)를 광고합니다.
- 기존 광고 사용
- 시커가 기본 구성요소에 키 기반 페어링 요청을 전송합니다.
- 키 기반 페어링 요청의 플래그 비트 5가 1로 설정됨
- 기본 구성요소는 메시지 유형 0x02로 키 기반 페어링 응답을 전송합니다.
- 비트 0은 0이어야 합니다.
- 비트 1은 1이어야 합니다.
- 주소는 다음과 같습니다.
- 첫 번째 주소는 기본 구성요소의 ID 주소입니다.
- 두 번째 주소는 보조 구성요소의 결합 가능한 주소이며, 두 번째 구성요소는 이 주소를 사용하여 CSIP 광고도 실행합니다.
- 시커는 기존 LE 연결에서 기본 구성요소와 결합을 생성합니다.
- CTKD 방향은 LE에서 BR/EDR로
- IO 기능이 LE의 경우 DisplayYesNo로 설정됨
- 시커는 주소가 키 기반 페어링 확장 응답에서 가져온 보조 구성요소와 결합을 생성합니다.
- IO 기능은 DisplayYesNo여야 합니다. 그렇지 않으면 페어링 요청을 거부해야 합니다.
- 탐색기와 제공자는 보조 구성요소를 페어링하기 위해 MITM 보호 절차를 실행합니다. 제공자는 두 시나리오 모두에서 구현해야 합니다.
- 시커는 보조 구성요소와 결합될 때까지 기다립니다.
MITM 순차 다이어그램
이 세션에서는 MITM 보호 절차의 순서를 설명합니다.
알림으로 결합된 구성요소에서 패스키 가져오기

읽기로 결합된 구성요소에서 패스키 가져오기

알려진 문제
LEA용 FP는 Android V(Android 15)와 호환되도록 최적화되었습니다.
반대로 LEA를 지원하지만 LEA를 통한 올바른 빠른 페어링 구현이 없는 (즉, 클래식을 통한 빠른 페어링만 해당) 헤드셋에서는 수많은 문제가 발생했습니다. 구체적으로 예를 들어 제공업체의 RPA가 올바른 ID 해결 키 (IRK)로 생성되지 않아 주소를 확인할 수 없는 경우입니다. Google에서는 포괄적인 헤드셋 구성 목록을 테스트하지 못했지만, 제한적인 테스트를 통해 이어폰 배터리 알림 표시 실패, 오디오 전환 (SASS) 기능 부족, 광범위한 초기 및 후속 페어링 실패 등 다양한 문제가 발견되었습니다.
따라서 파트너는 듀얼 모드를 지원하는 새 기기와 기존 기기 모두에 빠른 페어링-LEA 사양을 구현할 것을 적극 권장합니다(무선 업데이트를 통해).