DICE의 응용

기기 식별자 구성 엔진 (DICE)은 다양한 방식으로 Android의 보안 상태를 개선합니다. 이 아키텍처의 통합이 확장됨에 따라 더 많은 사용 사례가 개발되고 있습니다.

원격 키 프로비저닝

DICE의 원래 사용 사례는 TEE 내부 대신 칩에 사용할 수 있는 가장 작은 TCB인 ROM에서 원격 키 프로비저닝(RKP) 프로토콜의 신뢰 루트를 설정하는 것이었습니다. 이렇게 하면 RKP의 영구적인 손상에 대한 공격 노출 영역이 크게 줄어듭니다. 무엇보다도 KeyMint가 생성하는 키 증명의 유효성에 영향을 미칠 수 있는 TEE 또는 부트로더의 손상이 발생한 후 기기의 신뢰를 복구할 수 있는 기능을 부여합니다.

이전에는 TEE 또는 부트로더의 취약점으로 인해 영향을 받는 모든 기기에서 증명 키가 완전히 취소되었으며 취약점에 패치를 적용했더라도 신뢰를 복구할 방법이 없었습니다. 이는 Android 자체 검사 부팅을 통해 로드되는 Android 이미지에 대해 TEE에서 원격 인증을 실행하므로 원격 당사자에게 패치가 적용되었음을 증명할 수 없기 때문입니다. DICE는 Android 외부에서 로드된 펌웨어의 현재 상태를 원격으로 확인할 수 있는 기능을 제공하여 이러한 간극을 해결합니다.

격리된 환경의 상호 인증

DICE가 종료되는 각 애플리케이션 도메인은 ROM에서 파생된 공유 신뢰 루트로 다시 확장되는 인증서 체인이 있는 키 형식의 ID를 수신합니다. DICE 파생 프로세스는 로드 경로가 분할될 때 분기되므로 동일한 루트를 공유하는 인증서 트리가 생성됩니다. 따라서 DICE 프로세스 중에 기기 내 PKI가 생성됩니다.

DICE 파생 프로세스에 의해 생성된 PKI는 별도의 보안 엔클레이브에 있는 구성요소가 서로 상호 인증할 수 있는 메커니즘을 만듭니다. 그 구체적인 예로 pVM이 TEE와 통신하여 안정적인 보안 비밀을 수신할 수 있는 신뢰할 수 있는 HAL인 SecretKeeper가 있습니다. 이 보안 비밀은 영구 데이터를 안전하게 저장하는 데 사용할 수 있습니다.