인증 기기는 Connectivity Standards Alliance (Alliance) Matter 인증 절차를 거친 기기입니다.
커미셔닝 프로세스 중에 인증된 기기는 자체적으로 증명해야 합니다. 즉, 제품이 주장하는 바와 동일하며 진품임을 입증해야 합니다. 따라서 모든 Matter 기기에는 증명 키 쌍과 연결된 인증서 체인을 포함하는 사용자 인증 정보가 있습니다. 기기 증명 인증서 (DAC)는 이 체인의 일부입니다. 커미셔닝 대상 기기가 커미셔너에게 DAC를 제시하면 커미셔너는 다음을 인증합니다.
- 인증된 제조업체에서 제작한 제품입니다.
- 정품 기기입니다.
- Matter 규정 준수 테스트를 통과했습니다.
개발 단계에서 제조업체는 전체 증명 프로세스 없이 기기를 테스트할 수 있습니다. 테스터는 기기가 테스트 중이며 아직 인증 및 출시되지 않았음을 명시적으로 알려야 합니다. 제조업체가 프로덕션 단계에 진입하면 프로비저너의 생태계는 모든 증명 요구사항을 시행해야 합니다.
증명은 SSL/TLS에 사용되는 널리 채택된 서버 인증 인증서와 유사한 방식으로 루트 인증 기관 및 중간 인증서를 활용하는 공개 키 인프라 (PKI)를 사용합니다. 이 프로세스를 기기 증명 인증서 체인이라고 합니다.
기기 증명 PKI
DAC는 X.509 v3 인증서입니다. X.509의 첫 번째 버전은 1988년에 ITU-T에서 게시했습니다. Matter에서 사용하는 공개 키 인프라 인증서 및 인증서 취소 목록 (CRL)이 포함된 X.509 v3은 RFC5280에 지정되어 있습니다. 여기에는 다음이 포함됩니다.
- 공개 키
- 발급자
- 제목
- 인증서 일련번호
- 유효성(만료일이 불확실할 수 있음)
- 서명
공급업체 ID 및 제품 ID는 DAC 주제의 MatterDACName
속성입니다.
DAC는 기기마다 고유하며 제품 내 고유한 증명 키 쌍과 연결됩니다. 기기 제조업체와 연결된 CA에서 발급합니다.
DAC의 서명은 PAA에서 발급한 제품 증명 중간 인증서 (PAI)를 기준으로 유효성이 검사됩니다. 하지만 공급업체는 제품 (PID별), 제품 그룹 또는 모든 제품에 대해 하나의 PAI를 만들 수도 있습니다.
신뢰 체인의 루트에서 제품 증명 기관(PAA) 인증 기관 (CA) 공개 키가 PAI의 서명을 확인합니다. Matter 트러스트 저장소는 제휴되어 있으며, 커미셔너가 신뢰하는 PAA 인증서 집합은 중앙 신뢰할 수 있는 데이터베이스 (분산 규정 준수 원장)에 유지됩니다. 신뢰할 수 있는 세트 내에 PAA를 입력하려면 Alliance에서 관리하는 인증서 정책을 충족해야 합니다.
PAI는 다음을 포함하는 X.509 v3 인증서이기도 합니다.
- 공개 키
- 발급자
- 제목
- 인증서 일련번호
- 유효성(만료일이 불확실할 수 있음)
- 서명
공급업체 ID 및 제품 ID (선택사항)는 DAC 제목의 MatterDACName
의 속성입니다.
마지막으로 PAA는 체인의 루트 인증서이며 자체 서명됩니다. 여기에는 다음이 포함됩니다.
- 서명
- 공개 키
- 발급자
- 제목
- 인증서 일련번호
- 유효성
추가 증빙 서류 및 메시지
증명 프로세스에는 여러 문서와 메시지가 있습니다. 다음은 기능과 구성에 관한 간략한 개요입니다. 아래 이미지는 계층 구조를 이해하는 데 도움이 됩니다.
문서 | 설명 |
---|---|
인증 선언 (CD) | CD를 사용하면 Matter 기기가 Matter 프로토콜을 준수함을 증명할 수 있습니다.
Matter 인증 프로세스가 완료될 때마다 Alliance는 기기 유형의 CD를 만들어 공급업체가 펌웨어에 포함할 수 있도록 합니다. CD에는 다음과 같은 정보가 포함되어 있습니다.
|
펌웨어 정보 (선택사항) | 펌웨어 정보에는 CD 버전 번호와 OS, 파일 시스템, 부트로더와 같은 펌웨어 구성요소의 다이제스트가 하나 이상 포함됩니다. 다이제스트는 소프트웨어 구성요소의 해시 또는 소프트웨어 구성요소의 서명된 매니페스트의 해시일 수 있습니다. 공급업체는 개별 해시 배열 대신 구성요소의 '해시-해시'만 펌웨어 정보에 포함하도록 선택할 수도 있습니다. 펌웨어 정보는 증명 프로세스의 선택적 요소이며 공급업체에 증명 키 쌍을 처리하는 보안 부팅 환경이 있는 경우에 적용됩니다. |
증명 정보 | 위탁자가 위탁 기관에 보낸 메시지입니다. 증명 정보는 증명 요소와 증명 서명이 포함된 TLV를 결합합니다. |
증명 요소 | 다음을 포함하는 TLV입니다.
|
증명 챌린지 | Passcode Authenticated Session Establishment (PASE)/Certificate Authenticated Session Establishment (CASE) 세션 설정 중에 파생된 비표준 챌린지로, 절차를 더욱 안전하게 보호하고 재생된 서명을 방지하는 데 사용됩니다. CASE 세션, PASE 세션 또는 재개된 CASE 세션에서 가져옵니다. |
증명 TBS (서명 필요) | 증명 요소와 증명 챌린지가 포함된 메시지입니다. |
증명 서명 | 기기 증명 비공개 키를 사용하여 서명된 증명 TBS의 서명입니다. |
증명 절차
커미셔너는 커미셔니의 증명을 담당합니다. 다음 단계를 실행합니다.
- 커미셔너는 무작위 32바이트 증명 nonce를 생성합니다. 암호화 전문 용어로 nonce (한 번 사용되는 숫자)는 암호화 절차에서 생성되고 한 번만 사용하도록 설계된 난수입니다.
- 커미셔너는 DUT에 nonce를 전송하고 증명 정보를 요청합니다.
- DUT는 증명 정보를 생성하고 증명 비공개 키로 서명합니다.
- 커미셔너는 기기에서 DAC 및 PAI 인증서를 복구하고 Matter 신뢰 저장소에서 PAA 인증서를 조회합니다.
- 커미셔너가 증명 정보의 유효성을 검사합니다. 다음은 유효성 검사 조건입니다.
- PAI 및 PAA의 취소 확인을 비롯하여 DAC 인증서 체인의 유효성을 검사해야 합니다.
- DAC의 VID가 PAI의 VID와 일치합니다.
- 증명 서명이 유효합니다.
- 기기 증명 요소의 nonce가 커미셔너가 제공한 nonce와 일치합니다.
- 인증서 선언 서명은 Alliance의 잘 알려진 인증서 선언 서명 키 중 하나를 사용하여 유효합니다.
- 펌웨어 정보 (있는 경우 및 커미셔너가 지원하는 경우)가 분산 규정 준수 원장의 항목과 일치합니다.
- 기기 기본 정보 클러스터, 인증 선언, DAC 간에 추가 VID/PID 유효성 검사도 진행됩니다.