Matter에서 커미셔닝이란 새 기기에 Fabric 사용자 인증 정보를 할당하는 프로세스를 의미합니다. 커미셔너는 커미셔닝 프로세스를 실행하는 기기입니다. 커미셔닝 연결 기기는 Fabric에 프로비저닝해야 하는 새 기기입니다.
커미셔닝 흐름은 대략 다음과 같은 여러 단계로 나눌 수 있습니다.
기기 검색
커미셔닝 흐름을 시작하기 전에 커미셔닝 연결 기기가 자체 광고를 시작해야 합니다. 커미셔닝 연결 기기는 세 가지 커미셔닝 가능 검색 방법 중 하나를 사용하여 자체 광고를 할 수 있습니다. 커미셔닝 연결 기기는 온보딩 페이로드도 제공해야 합니다.
기기에 연결 (PASE)
커미셔너가 광고를 보고 식별자를 일치시키면 커미셔너는 온보딩 페이로드의 비밀번호를 사용하여 Passcode Authenticated Session Establishment (PASE)를 실행하여 기기에 연결합니다. 이 방법은 두 기기 모두 통신을 설정하는 데 사용할 수 있는 키를 안전하게 설정하는 방법입니다. 이 단계에서 커미셔너는 페일세이프도 준비합니다. 페일세이프는 커미셔닝이 완료되지 않은 경우 기기를 원래 상태로 롤백하는 방법을 제공합니다.
커미셔닝 연결 기기 정보 가져오기
커미셔너는 커미셔닝 연결 기기의 모든 설명자를 읽습니다. DescriptorCluster는 기기의 엔드포인트 0에 있으며 다른 모든 엔드포인트를 설명합니다. 커미셔너는 벤더 ID, 제품 ID, 제품 이름, 일련번호와 같은 정보가 포함된 기본 정보 클러스터도 읽습니다.
이 단계에서 커미셔너는 커미셔너 측의 UX를 구동하는 데 도움이 되는 커미셔닝 연결 기기의 기기 유형도 읽습니다.
규제 구성
커미셔너는 SetRegulatoryConfig 명령어를 사용하여 커미셔닝 연결 기기의 규제 정보를 구성합니다. 규제 정보에는 기기의 위치 (실내/실외/둘 다)를 구성하거나 국가 코드를 설정하는 등의 정보가 포함됩니다.
커미셔닝 연결 기기 증명
커미셔닝 연결 기기 증명 절차의 목표는 기기가 인증되었으며 정품 Matter 기기인지 확인하는 것입니다. 커미셔너는 커미셔닝 연결 기기에서 기기 증명 인증서 (DAC) 와 제품 증명 중간 (PAI) 인증서를 추출합니다. 이러한 인증서에는 벤더 ID, 제품 ID, 증명 공개 키가 포함됩니다. 인증서를 수신하면 커미셔너는 증명 비공개 키로 서명해야 하는 챌린지 요청을 실행하고 이를 사용하여 커미셔닝 연결 기기의 진위 여부를 확인합니다.
인증서 서명 요청 (CSR)
커미셔너는 커미셔닝 연결 기기에 인증서 서명 요청 (CSR)을 보냅니다. 커미셔닝 연결 기기는 나중에 Certificate Authenticated Session Establishment (CASE) 에 사용될 고유한 운영 키 쌍을 만듭니다. 커미셔닝 연결 기기는 결과 CSR 정보를 커미셔너에게 다시 반환합니다.
노드 운영 인증서 (NOC) 추가
커미셔너는 커미셔닝 연결 기기에서 수신한 CSR 정보를 사용하여 관리 도메인 관리자 (ADM) 에 전달하여 신뢰할 수 있는 노드 운영 인증서 (NOC) 를 생성합니다. 커미셔너는 AddTrustedRootCertReq 명령어를 사용하여 커미셔닝 연결 기기에 루트 인증서를 설치한 다음 AddNOC 명령어를 사용하여 노드 운영 인증서를 설치합니다.
네트워크 프로비저닝
커미셔너는 커미셔닝 연결 기기에서 운영 네트워크를 구성합니다. 이
단계는 Thread 또는 Wi-Fi 기기에 필요합니다. 이 단계는 기기가 이미 네트워크에 연결되어 있는 이더넷 기기에는 필요하지 않습니다. ScanNetworks, AddOrUpdateWifiNetwork, ConnectNetwork 명령어를 사용합니다.
운영 검색
새로 커미셔닝된 노드가 네트워크에 연결되면 커미셔너는 운영 검색 을 사용하여 운영 네트워크에서 노드를 찾습니다. 운영 검색은 DNS-SD를 사용하여 커미셔닝된 노드를 운영 네트워크에서 찾는 프로세스입니다. 커미셔닝 연결 기기가 Wi-Fi 기기인 경우 mDNS를 사용하여 기기를 검색합니다.
운영 검색을 통해 커미셔너와 네트워크의 다른 노드는 커미셔닝 연결 기기가 사용하는 IP 주소와 포트를 알 수 있습니다.
CASE 세션 설정
새로 커미셔닝된 노드가 검색되면 커미셔너와 기기 간에 CASE 세션이 설정됩니다. 이 세션은 커미셔너가 시작하고 기기가 응답합니다. 이 단계에서는 운영 인증서가 교환되고 동일한 논리적 Fabric에 있는지 확인하여 공유 신뢰가 설정됩니다.
커미셔닝 완료
커미셔너는 CASE를 사용하여
CommissioningComplete 명령어를 새로 커미셔닝된 기기에 보냅니다. 이는 커미셔닝 프로세스의 마지막 단계입니다. CommissioningComplete 는 페일세이프 타이머도 자동으로 해제합니다. 커미셔닝이 완료되면 기기는 운영 네트워크의 다른 노드와 마찬가지로 작동합니다.