기기 등록

기기 등록 단계에서는 발급기관의 시스템에 ID 키를 등록하여 VDC를 저장할 수 있도록 기기를 준비합니다.

요청 흐름

플로우 설명

단계 소스 설명
1 Android 지원 기기 사용자 기기에서 새 VDC 요청이 생성되었습니다. 발급기관에서 새 ID 키를 만들어야 합니다. 사용자 기기에서 getDeviceRegistrationNonce를 호출하여 이 프로세스를 시작합니다.
2 Google 서버 Google은 getDeviceRegistrationNonce 요청을 발급기관에 전달합니다.
3 발급기관 서버 발급기관은 nonce를 생성하고 deviceReferenceId와 함께 저장한 후 nonce를 Google에 반환합니다.
4 Google 서버 Google은 nonce를 사용자 기기에 전달합니다.
5 Android 지원 기기 사용자 기기에서 nonce에 서명하고 x509 인증서에 삽입합니다. 기기를 확인하기 위해 registerDevice 호출에 포함됩니다.
6 Google 서버 Google은 registerDevice 호출을 발급기관에 전달합니다.
7 발급기관 서버 발급기관은 기기 무결성 검사를 실행하고 기기와 연결된 ID 키 를 저장합니다.

기기의 무결성을 확인하는 방법

기기 증명은 발급기관이 기기를 등록하기 전에 기기의 무결성을 확인할 수 있는 보안 기능입니다. 이 기능은 변조되었거나 승인되지 않은 소프트웨어를 실행하는 기기의 등록을 방지하는 데 도움이 됩니다.

기기의 무결성을 확인하려면 발급기관에서 다음 작업을 실행해야 합니다.

  1. /registerDevice 요청에서 전송된 인증서 체인의 유효성을 검사합니다. 체인의 루트 인증서는 Google에서 제공한 인증서 와 일치해야 합니다.
  2. 루트 인증서가 인증서 해지 목록에 포함되지 않도록 합니다.
  3. 리프 인증서를 파싱하고 확장 프로그램을 읽은 후 다음을 확인합니다.
    • attestationChallenge 값이 nonce 작업 중에 전송된 /getDeviceRegistrationNonce와 일치합니다.
    • teeEnforced.rootOfTrust 에 다음 속성이 있습니다.
      • deviceLocked=TRUE
      • verifiedBootState=VERIFIED
    • softwareEnforced.attestationApplicationId의 패키지 이름이 com.google.android.gms 또는 com.google.android.gsf와 일치합니다.

기기 증명 프로세스의 다양한 부분에 대한 설명

  • 인증서 체인: 인증서 체인은 기기의 ID를 인증하는 일련의 인증서입니다. 체인의 루트 인증서는 가장 신뢰할 수 있는 인증서이며 체인의 각 후속 인증서는 위의 인증서로 서명됩니다.
  • 인증서 해지 목록: 인증서 해지 목록 (CRL)은 어떤 이유로든 해지된 인증서의 목록입니다. 기기 증명 인증서 체인의 루트 인증서가 CRL에 있는 경우 인증서는 유효하지 않으며 기기 증명을 신뢰해서는 안 됩니다.
  • 리프 인증서: 리프 인증서는 기기 전용 인증서입니다. 여기에는 하드웨어 식별자, 소프트웨어 버전과 같은 기기에 관한 정보가 포함되어 있습니다.
  • 확장 프로그램: 확장 프로그램은 인증서에 포함된 추가 정보입니다. 기기 증명 인증서에는 기기의 무결성을 확인하는 데 사용되는 여러 확장 프로그램이 포함되어 있습니다. 자세한 내용은 인증서 확장 프로그램 데이터 스키마를 참고하세요.