Bluetooth Mesh 서브넷 브리징

기술 개요

릴리스 : 1.0.0
문서 버전 :   1.0
마지막 업데이트 : 2023년 9월 19일
저자 :   

마틴 울리, Bluetooth SIG
옴카르 쿨카르니, 노르딕 세미컨덕터
피오트르 위니악지크, 실베어

개정 내역

Version

Date

Author

Changes

1.0.0

September 19, 2023

Martin Woolley, Bluetooth SIG
Omkar Kulkarni, Nordic Semiconductor
Piotr Winiarczyk, Silvair

Initial version

 

참고

Bluetooth Mesh 프로필 사양의 이름이 변경되어 이제 Bluetooth Mesh 프로토콜 사양으로 불립니다. 이 문서와 관련 문서에서 버전 1.1 사양을 언급할 때는 이 이름을 사용하지만, 버전 1.0 사양은 계속해서 Bluetooth Mesh Profile 사양이라고 합니다.

 

1. 배경

서브넷 브리 징은 Bluetooth® Mesh 프로토콜 사양의 버전 1.1에 도입되었습니다. Bluetooth Mesh 서브넷 브리징의 기능과 이점을 충분히 이해하려면 Bluetooth Mesh 버전 1.0의 특정 측면을 이해해야 합니다. 이 섹션에서는 Bluetooth Mesh 서브넷 브리징 기능을 검토하는 데 도움이 되는 맥락과 배경을 제공합니다.

1.1 서브넷

Bluetooth® Mesh 네트워크는 모든 유니캐스트 주소의 주소 공간을 구성합니다. Bluetooth Mesh 네트워크는 이 공통 주소 공간을 공유하는 하나 이상의 서브넷으로 구성될 수 있습니다. 각 서브넷에는 고유한 네트워크 키(NetKey)가 있으며, 노드가 프로비저닝될 때 이 NetKey를 제공받으면 해당 노드는 해당 서브넷의 회원, 회원사 가 됩니다.

노드는 둘 이상의 NetKey를 소유할 수 있으므로 둘 이상의 서브넷의 회원, 회원사 가 될 수 있지만, Bluetooth Mesh 프로파일 사양 1.0 버전에서는 한 서브넷에서 다른 서브넷으로 메시지를 전달할 수 있는 방법이 없었습니다. 서브넷은 서로 완전히 격리되어 있었습니다.

1.2 지역 격리

네트워크를 여러 개의 서브넷으로 분할하여 네트워크의 한 부분을 다른 부분으로부터 격리하는 기능은 여러 가지 이점을 제공합니다.

1.2.1 지역 격리 및 보안

한 서브넷의 디바이스가 다른 서브넷의 디바이스와 상호 작용할 수 없도록 하는 것은 보안상의 이유로 유용하거나 필수적일 수도 있습니다. 한 방에 있는 스마트 디바이스가 같은 방에 있는 다른 디바이스와 통신할 수 있지만 방 밖에 있는 디바이스와는 통신할 수 없는 호텔 객실을 예로 들어 보겠습니다. 각 호텔 객실의 디바이스를 자체 서브넷에 배치하면 각 객실의 디바이스를 다른 객실의 디바이스로부터 격리하고 호텔의 객실 보안 요구 사항을 충족할 수 있습니다.

그림 1

그림 1 - 호텔 객실 및 서브넷 영역 격리

1.2.2 지역 격리 및 네트워크 효율성

서브넷은 건물의 한 영역으로 네트워크 트래픽을 제한하는 데에도 사용할 수 있습니다. 이는 메시지가 의도한 모든 대상 노드에 도달하기 위해 릴레이가 필요하고 Bluetooth Mesh 관리형 플러딩이 사용 중인 경우에 특히 유용할 수 있습니다. 서브넷은 디바이스 그룹에 경계를 설정하여 메시지가 릴레이될 때에도 경계를 넘지 못하도록 함으로써 대상 디바이스가 없는 네트워크의 일부로 관련 없는 메시지가 릴레이되는 것을 방지하는 것으로 생각할 수 있습니다.

이 기술은 일반적으로 사무실에서 한 층과 다른 층을 격리하는 데 사용되며, 그림 2에 나와 있습니다. 3층의 전등 스위치에서 보낸 메시지는 같은 서브넷에 속해 있기 때문에 해당 층의 천장에 있는 릴레이 노드에 의해 릴레이되지만, 스위치에서 전송을 수신할 수 있는 위층과 아래층의 릴레이는 즉시 메시지를 삭제하므로 메시지가 층을 넘어 전파되지 않습니다.

그림 2

그림 2 - 사무실의 서브넷

1.3 리플레이 공격 및 시퀀스 번호

악성 디바이스는 수동적으로 메시지를 수신한 후 나중에 재전송하여 네트워크에 무단 변경을 일으킬 수 있습니다. 이러한 공격을 리플레이 공격이라고 합니다. Bluetooth Mesh 에서는 리플레이 공격을 방지하는 리플레이 보호 메커니즘을 정의하고 있습니다.

리플레이 보호는 24비트 시퀀스 번호(SEQ)가 포함된 논스 값을 가진 모든 메시지를 포함하며, 소스 노드는 새 메시지를 전송할 때마다 이 값을 증가시켜야 합니다. 노드가 5초에 한 번씩 메시지를 전송하는 경우, SEQ 값을 감싸는 데 2년이 넘게 걸립니다. 그러나 이러한 문제를 방지하기 위해 전체 네트워크에서 공유되는 32비트 초기화 벡터(IV) 값으로 SEQ 값을 확장합니다. IV는 SEQ 값이 소진될 위험이 있을 때마다 IV 업데이트 절차라는 절차를 통해 자동으로 업데이트됩니다.

32비트 IV 값 자체는 메시지에 포함되지 않습니다. 대신 IVI라는 단일 비트 필드는 네트워크에서 한 번에 사용할 수 있는 두 개의 가능한 IV 값 중 어떤 것이 메시지와 관련이 있는지를 나타냅니다.

수신 장치는 각 소스 주소에서 마지막으로 성공적으로 처리된 메시지의 IV 및 SEQ 값을 추적합니다. 동일한 소스 유니캐스트 주소에서 마지막으로 수신한 메시지보다 IV 및 SEQ 값 조합이 더 높지 않은 메시지가 수신되면 리플레이 공격 가능성이 있는 것으로 간주하여 삭제합니다.

1.4 Bluetooth® Mesh 1.0의 서브넷 평가

Bluetooth Mesh 프로파일 사양의 버전 1.0에 정의된 서브넷은 보안 및 네트워크 활용 효율성이 뛰어난 몇 가지 이점을 제공합니다. 그러나 서브넷이 부과하는 영역 격리의 절대적인 특성으로 인해 충족하기 어려운 몇 가지 요구 사항이 있습니다. 서브넷을 사용하여 네트워크의 관련 없는 부분으로 메시지가 이동하는 것을 제한해야 하는 경우, 네트워크 계획자는 서브넷 사용 방법에 대해 신중하게 고려해야 합니다. 설치자는 네트워크를 처음 만들 때 필요한 서브넷을 설정해야 합니다.

Bluetooth Mesh 다이렉트 포워딩( Bluetooth Mesh 다이렉트 포워딩 기술 개요 문서 참조)은 노드 간 트래픽 흐름을 관련성이 있는 네트워크 부분으로 제한하는 우수한 접근 방식을 제공합니다. 서브넷도 때때로 비슷한 결과를 얻을 수 있지만, 서브넷 영역 격리는 선택한 디바이스만 메시지를 처리하도록 제한한다는 점에서 Bluetooth Mesh 리디렉션 포워딩만큼 정밀하게 대상을 지정하는 방식으로 사용할 수 없습니다. Bluetooth Mesh 현재 네트워크 사용 효율성 요구 사항을 해결하기 위한 방법으로 다이렉트 포워딩이 권장되고 있습니다.

서브넷을 네트워크 보안 메커니즘으로 사용하는 영역 격리는 강력한 기능입니다. 하지만 호텔이 각 객실에 서브넷 영역 격리를 사용했다고 상상해 보세요. 고객들은 기술적으로 스마트한 호텔 객실에서 디바이스와 시스템을 수동 및 자동으로 제어할 수 있다는 사실에 만족합니다. 호텔 경영진은 한 방의 디바이스가 다른 방의 디바이스를 간섭하는 데 사용될 수 없다는 점에 만족합니다. 그러나 호텔 경영진은 각 호텔 객실의 센서가 재실 데이터를 보고할 수 있는 게이트웨이를 설치하여 객실 청소 및 세탁 서비스를 방해받지 않고 예약할 수 있는 TCP/IP 기반 GUI 시스템을 제공하고자 합니다. Bluetooth ® Mesh 1.0 서브넷이 사용 중일 때 모든 호텔 객실에 게이트웨이 노드가 없으면 이 작업을 수행할 수 없습니다.

2. 서브넷 브리징 정보

때로는 서브넷이 제공하는 영역 격리를 손상시키지 않으면서 서로 다른 서브넷에 있는 디바이스 간의 통신이 필요한 사용 사례가 있습니다. Bluetooth Mesh 서브넷 브리징 기능으로 이를 가능하게 합니다.

2.1 기능 및 이점

Bluetooth Mesh 서브넷 브리징 기능을 사용하면 네트워크에서 영역 격리를 위해 서브넷을 사용하면서 인접한 다른 서브넷에 있는 특정 디바이스 간의 통신을 선택적으로 허용할 수도 있습니다.

2.1.1 서브넷 브리징 활성화하기

네트워크 기획자는 네트워크에서 어떤 노드가 서브넷 브리지 역할을 하여 인접한 두 서브넷의 특정 노드 간에 제어된 통신을 허용할지 결정해야 합니다. 브리지 구성 서버 모델이 있으면 Bluetooth Mesh 서브넷 브리징이 노드에서 지원됨을 나타냅니다.

노드를 서브넷 브리지로 만들려면 서브넷 브리지라는 상태의 값이 활성화로 설정되어 있어야 합니다. 그런 다음 브리징 테이블이라는 추가 상태를 노드의 Bluetooth Mesh 서브넷 브리징 기능을 구성하는 항목으로 채워야 합니다.

2.1.2 브리징 테이블 상태

브리징 테이블은 Bluetooth Mesh 서브넷 브리징이 수행될 소스 및 대상 주소를 정의하는 항목이 포함된 상태입니다. 항목은 한 주소에서 다른 주소로 한 방향으로만 또는 양방향으로만 브리징을 사용할 수 있도록 정의합니다. 두 경우 모두 각 서브넷의 네트워크 키에 대한 인덱스 값도 각 브리징 테이블 항목에 포함됩니다. Bluetooth ® Mesh 프로토콜 사양의 섹션 4.2.42에 브리징 테이블 항목의 전체 형식이 나와 있으며 여기 그림 3에 반복되어 있습니다.

필드

크기(비트)

묘사

방향

8

브리지 트래픽에 허용되는 길 안내

NetKeyIndex1

12

첫 번째 서브넷의 NetKey 인덱스

NetKeyIndex2

12

두 번째 서브넷의 NetKey 인덱스

주소1

16

첫 번째 서브넷의 노드 주소

주소2

16

두 번째 서브넷의 노드 주소

그림 3 - 브리징 테이블 상태 입력 형식

길찾기 필드는 0x01 또는 0x02 값을 사용합니다.

0x01은 소스 주소(SRC)가 주소1 브리징 테이블 항목과 같고 대상 주소(DST)가 주소2와 같은 메시지에 대해 한 방향의 브리징만 허용됨을 의미하며, 첫 번째 서브넷에서 두 번째 서브넷으로 메시지를 전달할 수 있습니다.

0x02는 주소2와 동일한 소스 주소(SRC)와 주소1과 동일한 목적지 주소(DST)를 가진 메시지에 대해 두 번째 서브넷에서 첫 번째 서브넷으로의 브리징을 포함하여 어느 방향으로든 브리징을 수행할 수 있음을 의미합니다.

2.1.3 서브넷 브리징 및 보안

서브넷을 사용하면 네트워크의 서로 다른 부분을 서로 격리할 수 있으며, 이는 일부 시나리오에서 한 서브넷의 노드가 다른 서브넷의 노드와 통신하지 못하도록 하는 보안상의 이점이 있습니다.

Bluetooth Mesh 서브넷 브리징은 서브넷 간 통신을 허용합니다. 그러나 브리징 테이블은 특정 소스 및 대상 주소 쌍과 특정 서브넷 쌍 사이에서만 이러한 통신이 이루어지도록 합니다. 예를 들어, 호텔에서 게스트는 Bluetooth Mesh 서브넷 브리징 및 Bluetooth Mesh 리디렉션 포워딩을 사용하여 자신의 객실이 속한 서브넷에서 호텔 전체에 메시지를 보내는 버튼을 눌러 객실 청소를 원한다는 신호를 하우스키핑 팀에 보낼 수 있습니다. 그러나 게스트의 객실에 있는 다른 디바이스는 해당 서브넷 외부의 다른 노드와 통신할 수 없습니다. Bluetooth Mesh 서브넷 브리징을 사용하면 서브넷 간 통신을 선택적으로 제어할 수 있지만 그 외에는 영역 격리가 제공하는 보안상의 이점을 그대로 유지할 수 있습니다.

서브넷 브리지는 대상 노드와 동일한 방식으로 리플레이 보호를 수행하여 서브넷 브리지에서 처리하는 메시지의 소스 주소에 대해 IV 및 SEQ 값을 추적합니다. IV 및 SEQ 값 조합이 특정 소스 주소에서 브리징을 위해 마지막으로 수신한 값보다 숫자가 높지 않으면 삭제됩니다. 이러한 방식으로 서브넷 브리지는 다음 서브넷을 서비스 거부 공격으로부터 보호하여 다음 서브넷의 대상 노드보다 먼저 리플레이 보호를 수행합니다.

2.1.4 서브넷 브리징 작동 중

Bluetooth Mesh 서브넷 브리징은 서브넷 브리지 노드 내의 네트워크 계층에서 수행됩니다. 메시지 수신 시 브리징 테이블에서 Address1 및 Address2 필드가 메시지의 소스 주소 및 목적지 주소와 일치하는 항목 또는 Address2에 메시지 SRC 주소가 포함되고 Address1에 메시지 DST 주소가 포함되며 방향 필드에 양방향 브리징이 지원됨을 나타내는 항목이 있는지 확인합니다. 메시지 네트워크 PDU가 소스 서브넷에 대한 NetKey로 암호화되었는지 확인하기 위해 추가 확인이 이루어집니다. 이러한 조건이 충족되면 메시지는 소스 서브넷 NetKey를 사용하여 복호화되고 대상 서브넷 NetKey로 다시 암호화된 다음 재전송됩니다. 서브넷 브리지 노드의 적절한 구성이 준비되어 있으면 메시지를 두 번 이상 재전송하여 여러 서브넷을 통해 이동할 수 있습니다.

단방향 또는 양방향 브리징 항목 형식의 브리징 테이블에 소스 및 대상 주소가 없는 메시지는 다른 서브넷으로 재전송되지 않습니다. 릴레이 또는 Bluetooth Mesh 리디렉션 포워딩을 사용하면 적절한 경우 현재 서브넷 내에서 메시지가 재전송될 수 있습니다.

2.1.5 서브넷 브리징 및 다이렉트 포워딩

Bluetooth Mesh 직접 전달( Bluetooth Mesh 직접 전달 기술 개요 문서 참조)은 Bluetooth Mesh 서브넷 브리징과 함께 사용할 수 있으며 두 개의 노드 종속성 관계를 수반합니다.

첫 번째 종속성은 첫 번째 서브넷의 소스 노드와 두 번째 서브넷의 회원, 회원사 로서 서브넷 브리지 사이에 존재합니다. 두 번째 종속성은 첫 번째 서브넷의 서브넷 브리지( 회원, 회원사 )와 두 번째 서브넷의 대상 노드 사이에 존재합니다.

서브넷 브리지는 두 노드 종속성 관계에서 지원 노드 역할을 하며 종속 노드를 대신하여 경로 검색 및 유지 관리 절차, 메시지 전달을 수행합니다.

3. 닫기

Bluetooth Mesh 서브넷 브리징을 사용하면 교차 서브넷이 필요한 경우 보안을 손상시키지 않고 훨씬 더 유연하고 쉽게 서브넷을 설정할 수 있습니다.

도움말 받기