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 세션이 설정됩니다. 이 세션은 조사관이 시작하고 기기가 응답합니다. 이 단계에서는 운영 인증서가 교환되고 동일한 논리적 패브릭에 있는지 확인하여 공유 신뢰가 설정됩니다.
커미셔닝 완료
커미셔너는 CASE를 사용하여 새로 커미셔닝된 기기에 CommissioningComplete
명령어를 전송합니다. 이는 커미셔닝 프로세스의 마지막 단계입니다. CommissioningComplete
는 또한 페일세이프 타이머를 자동으로 해제합니다. 커미셔닝이 완료되면 기기는 운영 네트워크의 다른 노드와 마찬가지로 작동합니다.