저전력 블루투스 (BLE) 기기
BLE 기기용 Google 빠른 페어링 서비스 (GFPS) 구현은 블루투스 핵심 사양 v4.2 이상과 호환됩니다.
다음과 같은 빠른 페어링 사양의 부록을 통해 GFPS에서 저전력 (LE) 전용 및 저전력 오디오 (LEA) 기기를 지원할 수 있습니다.
규정 준수 수준
사양에서 언급된 '할 것', '반드시', '할 것', '해야 합니다', '할 수 있습니다', '할 수 있습니다'에 대한 설명은 아래에 나와 있습니다.
용어 | 설명 |
---|---|
해야 한다 | 필수: 요구사항을 정의하는 데 사용됩니다. |
필수 | 이전에 명시된 필수 요구사항의 자연스러운 결과 또는 논쟁의 여지가 없는 사실 (상황과 관계없이 항상 사실인 사실)을 표현하는 데 사용됩니다. |
will | 사실은 - 사실에 관한 진술에만 사용됩니다. |
should | 권장됨: 여러 가능성 중에서 특별히 적합한 것으로 권장되지만 필수는 아님을 나타낼 때 사용됩니다. |
5월 | is permitted to: 옵션을 허용하는 데 사용됩니다. |
…할 수 있다 | 할 수 있습니다 - 인과관계에 있는 문장과 연관되는 데 사용됩니다. |
키 기반 페어링 특성
검색자에서 제공업체로 전송되는 메시지
키 기반 페어링 특성의 원시 요청 type 0x00
은 비트 4를 사용하여 탐색기가 BLE 기기 사양을 지원하는지 나타내고 비트 5를 사용하여 탐색기가 LE 오디오를 지원하는지 나타냅니다.
Octet | 데이터 유형 | 설명 | 값 | 필수 여부 |
---|---|---|---|---|
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 |
제공업체 주소 수 (현재 버전에서는 1 또는 2입니다. 수가 3보다 크면 블록 암호 모드를 AES-CTR로 수정해야 하기 때문입니다.) |
다름 |
3~8 또는 3~14 |
|
다름 | |
9~15 또는 15 | 임의 값 (salt) | 다름 |
BLE 기기 사양을 지원하는 제공업체는 비트 4와 비트 5를 읽어 시커의 기능을 파악해야 합니다.
- 비트 4가 0이면 제공자는 비트 5를 무시하고
type 0x01
형식으로 응답합니다. - 비트 4가 1이면,
- LE 전용 제공자의 경우
type 0x02
로 응답하여 LE 결합 환경설정을 나타내야 합니다. - 듀얼 모드 제공자의 경우
type 0x02
로 응답하여 BR/EDR 또는 LE 결합 환경설정을 나타낼 수 있습니다.
- LE 전용 제공자의 경우
- LE Audio (LEA) 듀얼 모드 제공업체 케이스의 경우 참고용으로 예: LEA 듀얼 모드 제공업체와 페어링을 참고하세요.
메시지 스트림 PSM (프로토콜 서비스 멀티플렉스기) 특성
BLE 기기의 메시지 스트림을 지원하기 위해 빠른 페어링은 메시지 전송 및 수신을 위한 BLE L2CAP 채널을 설정하고 유지합니다. 빠른 페어링 L2CAP 서버는 LE 크레딧 기반 흐름 제어를 구현해야 합니다.
이 특성을 통해 시커는 PSM 값을 읽은 다음 PSM 값으로 보안 L2CAP 연결을 설정할 수 있습니다.
빠른 페어링 서비스 특성 | 암호화됨 | 권한 | UUID |
---|---|---|---|
메시지 스트림 PSM | 예 | 읽기 | FE2C1239-8366-4814-8EB0-01DE32100BEA |
Octet | 데이터 유형 | 설명 | 값 |
---|---|---|---|
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 |
---|---|---|---|
추가 패스키 | 예 | Read,write,notify | 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를 포함해야 합니다. 배터리 및 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 (48/58페이지)에 따라 연결 관리를 위해 BAP 및 CAP에 정의되어 있습니다.
GATT EATT 서버 지원
EATT를 사용하면 기기가 연결될 때 중앙 기기가 여러 GATT 트랜잭션을 동시에 전송할 수 있습니다. CSIP를 지원하는 기기의 경우 프로필 연결 성능이 향상된 후 다른 이어폰에 대한 CSIP 결합 절차가 곧 시작됩니다.
GATT 견고한 캐싱 (적극 권장)
제공업체가 단일 기기가 아닌 CSIP 구현으로 조정된 세트인 경우 서비스 검색 횟수를 줄이고 연결 속도를 높이려면 제공업체가 블루투스 5.1에 정의된 GATT 캐싱을 구현해야 합니다.
빠른 페어링 요구사항
저전력 광고
검색 가능 모드 또는 검색 불가 모드의 경우 기기에 구성요소가 여러 개인 경우 기본 구성요소에서 빠른 페어링 데이터를 광고해야 합니다. 기기가 후속 페어링 준비가 되지 않았다면 보조 구성요소는 확장 기능을 위한 빠른 페어링 데이터를 알릴 수 있습니다. 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 전송으로 결합을 만듭니다.
- IO 기능이 BR/EDR의 경우 DisplayYesNo로 설정됨
- 검색자와 제공업체가 빠른 페어링 패스키 확인 절차를 실행합니다.
시나리오 2 - 검색자가 LEA를 지원하는 경우
구성요소
- 제공업체
- A2DP/HFP/LEA 지원
- 단일 구성요소
- 구직자
- SupportA2DP/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로
- LE의 경우 IO 기능이 DisplayYesNo로 설정됨
- 검색자는 주소가 키 기반 페어링 확장 응답에서 가져온 보조 구성요소와 결합을 만듭니다.
- IO 기능은 DisplayYesNo여야 하며, 그렇지 않으면 페어링 요청을 거부합니다.
- 검색자와 제공업체는 보조 구성요소 페어링을 위한 MITM 보호 절차를 실행하며, 제공업체는 두 시나리오를 모두 구현해야 합니다.
- 시커는 보조 구성요소와 결합될 때까지 기다립니다.
MITM의 순차 다이어그램
이 세션에서는 MITM 보호 절차의 시퀀스를 설명합니다.
알림을 통해 연결된 구성요소에서 패스키 가져오기
읽기로 결합된 구성요소에서 패스키 가져오기
알려진 문제
LEA용 FP가 Android V(Android 15)에서 작동하도록 최적화되었습니다.
반대로 LEA를 지원하지만 올바른 LEA를 통한 빠른 페어링 구현이 없는 헤드셋 (즉, 기존을 통한 빠른 페어링만 있음)에는 여러 문제가 발생했습니다. 예를 들어 공급자의 RPA가 올바른 ID 확인 키 (IRK)로 생성되지 않았고 주소를 확인할 수 없는 경우입니다. 포괄적인 헤드셋 구성 목록을 테스트할 수는 없었지만 제한적인 테스트에서 이어폰 배터리 알림 표시 실패, 오디오 전환 (SASS) 기능 없음, 광범위한 초기 및 후속 페어링 실패 등 다양한 문제가 발견되었습니다.
따라서 파트너는 듀얼 모드를 지원하는 신규 기기와 현장의 기존 기기 모두에(무선 업데이트를 통해) Fast Pair-LEA 사양을 구현하는 것이 좋습니다.