본문 바로가기
블루투스/GAP

GAP - BR/EDR에서 Security aspect

by 테크쟁이 2023. 1. 2.
반응형

참고자료: 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

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