참고자료: https://www.bluetooth.com/specifications/specs/core-specification-5-3/
전체 GAP 설명은 "GAP(Generic Access Profile)" 참고
1. Authentication
- Link key 여부와 Pairing 지원 여부에 따라, LMP Pairing과 LMP Authentication을 어떻게 할 것인지 설명
- UI에서 "Bluetooth authentication"으로 표현
- 유효한 link key가 있으면 LMP Authentication을 진행하고, 없으면 LMP Pairing을 진행
1-1. Generic Authentication Procedure
2. Security mode
2-1. Legacy security mode
- Secure Simple Pairing을 지원하지 않음
Security mode 1 (non-secure) |
Security 절차를 시작하지 않는다. |
Security mode 2 (service level enforced security) |
L2CAP channel 연결시도가 시작되지 않았으면(L2CAP_CONNECTION_REQ), Security 절차를 시작하지 않는다. 적어도 아래 속성을 사용하여, Security 요구사항을 구현해야 한다. - Authorization required - Authentication required - Encryption required |
Security mode 3 (link level enforced security) |
LMP 연결이 완료되기 전에(LMP_SETUP_COMPLETE), Security 절차를 시작해야 한다. |
2-2. Security mode 4 (service level enforced security)
2-2-1. Security 종류
- Authenticated link key required
- Unauthenticated link key required
- Security optional (limited to specific services)
2-2-2. Authenticated link key가 요구되는 Pairing
- Numeric comparison
- Out-of-band
- Passkey entry Secure Simple Pairing
2-2-3. Unauthenticated link key가 요구되는 Pairing
- Just works Secure Simple Pairing
Security for access to remote service (initiating side) |
Remote 서비스에 접근하기 위한, Pairing 요구사항 - Link key가 없으면 L2CAP channel 또는 upper layer의 연결을 시도하기 전에, pairing과 encryption을 실행해야 한다. Remote 서비스에 접근하기 위한, Authentication 요구사항 - Link key가 있어야지 L2CAP channel 또는 upper layer의 연결을 시도하기 전에, Authentication을 하고 encryption을 실행할 수 있다. Cross-transport key 생성과 전송 - 양쪽 디바이스에서 cross-transport key generation을 지원하면, encryption 실행 후, BR/EDR Central에서 LE key 생성과 전송을 할 수 있다. - LE key 생성과 전송을 하지 않았는데, Encryption이 실행되고 role switch가 되었다면, 새로운 Central에서 LE key 생성과 전송을 할 수 있다. |
Security for access to local service by remote device (responding side) |
Link key가 있는데 Authentication이 실행되지 않았으면, L2CAP channel 또는 upper layer의 연결이 완료되기 전에, Authentication과 Encryption을 실행해야 한다. Remote 디바이스에서 local service에 접근하기 위해서는, Pairing이나 Authentication이 필요하다. Cross-transport key 생성과 전송 - Encryption이 실행되고, 양쪽 디바이스에서 cross-transport key generation을 지원하면, BR/EDR Central에서 LE key를 생성하고 전송한다. |
Secure Simple Pairing after authentication failure | 두 디바이스가 Secure Simple Pairing을 지원하면, SDP 연결을 제외하고, 모든 연결은 encryption 되어야 한다. 초기 연결은 Secure Simple Pairing을 통해 link key가 생성된다. 두 디바이스에서 link key가 생선된 후, Authentication을 실행한다. |
IO capabilities | IO capability 교환의 목적은 Authentication 1단계 알고리즘을 결정하기 위해서다. 연결이 된 후에 보안이 필요하고, 두 디바이스가 Secure Simple Pairing을 지원하면, IO capability를 교환한다. - User input (No input, Yes/No, Keyboard) - User output (No output, Numeric output) |
Mapping of input/output capabilities to IO capability | 가능한 input/output은 IO capability에 맵핑되어, Authentication 알고리즘에서 사용된다. |
IO and OOB capability mapping to authentication stage 1 method | 어느 한쪽 디바이스의 IO capability에서, OOB authentication 데이터가 있으면, OOB가 사용된다. |
Out of Band (OOB) | NFC 등등 다른 기술을 이용하여 Pairing을 수행 OOB를 통해 아래 정보들을 얻을 수 있다. (Optional) - Length (2 bytes) - BD_ADDR (6 bytes) - Class of Device (3 bytes) - Secure Simple Pairing Hash C (16 bytes) - Secure Simple Pairing Randomizer R (16 bytes) - Local name (variable length) - Other information |
Security database | Level 4 - Authentication 필수 - MITM protection 필수 - Encryption 필수(FIPS 승인된 128 bit encryption key 사용) - User interaction 사용가능 Level 3 - Authentication 필수 - MITM protection 필수 - Encryption 필수(56 bit encryption key 사용) - User interaction 사용가능 Level 2 - Authentication 필수 - MITM protection 필수아님 - Encryption 필수(56 bit encryption key 사용) Level 1 - Encryption이 실행되면 Authentication 필수 - MITM protection 필수아님 - Encryption 필수아님(56 bit encryption key 사용) - 최소한의 User interaction 희망 Level 0 - Authentication 필수아님 - MITM protection 필수아님 - Encryption 불필요 - User interaction 불필요 |
'블루투스 > GAP' 카테고리의 다른 글
GAP - BR/EDR에서 Establishment procedure (0) | 2023.01.03 |
---|---|
GAP - BR/EDR Idle mode procedures (0) | 2023.01.03 |
GAP - BR/EDR에서 가능한 mode (0) | 2023.01.02 |
GAP - User Interface aspect (0) | 2023.01.02 |
GAP(Generic Access Profile) (0) | 2022.12.30 |