인증 기기는 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에서 관리하는 인증서 정책을 충족해야 합니다.
![법적 사안 증명 공개 키 인프라](https://developers.home.google.com/static/matter/primer/images/primer-attestation-pki.png?authuser=7&hl=ko)
또한 PAI는 다음을 포함하는 X.509 v3 인증서입니다.
- 공개 키
- 발급자
- 제목
- 인증서 일련 번호
- 유효 기간: 만료가 확정되지 않을 수 있음
- 서명
공급업체 ID와 제품 ID (선택사항)는 DAC 주체의 MatterDACName
속성입니다.
마지막으로 PAA는 체인의 루트 인증서이며 자체 서명됩니다. 여기에는 다음이 포함됩니다.
- 서명
- 공개 키
- 발급자
- 제목
- 인증서 일련 번호
- 유효성
추가 증명 서류 및 메시지
증명 프로세스에는 여러 문서와 메시지가 있습니다. 다음 항목은 이러한 함수의 기능 및 구성에 대한 간략한 개요입니다. 아래 이미지는 계층 구조를 이해하는 데 도움이 됩니다.
![증명 문서 계층 구조](https://developers.home.google.com/static/matter/primer/images/primer-attestation-document-hierarchy.png?authuser=7&hl=ko)
문서 | 설명 |
---|---|
인증 선언 (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 유효성 검사도 진행됩니다.