Anahtar onayı ile donanım destekli anahtar çiftlerini doğrulama

Anahtar doğrulaması, uygulamanızda kullandığınız anahtarların bir cihazın donanım destekli anahtar deposunda depolandığından daha emin olmanızı sağlar. Aşağıdaki bölümlerde, donanım destekli anahtarların özelliklerinin nasıl doğrulanacağı ve doğrulama sertifikalarının uzantı verilerinin nasıl yorumlanacağı açıklanmaktadır.

Not: Bir cihazın donanım destekli anahtarlarının özelliklerini üretim düzeyinde bir ortamda doğrulamadan önce, cihazın donanım düzeyinde anahtar doğrulamayı desteklediğinden emin olun. Bunu yapmak için doğrulama sertifikası zincirinin, Google doğrulama kök anahtarıyla imzalanan bir kök sertifika içerdiğinden ve anahtar açıklaması veri yapısındaki attestationSecurityLevel öğesinin TrustedEnvironment güvenlik seviyesine veya StrongBox güvenlik seviyesine ayarlandığından emin olun.

Ayrıca, sertifika iptal durumu listesini kontrol ederek sertifika zincirindeki imzaları doğrulamak ve zincirdeki anahtarların hiçbirinin iptal edilmediğini onaylamak önemlidir. Hepsi geçerli değilse ve kök, Google kök anahtarı değilse sertifikaya tam olarak güvenmeyin. Ancak iptal edilmiş sertifikalar içeren cihazların, yalnızca yazılım kimlik doğrulamasını destekleyen cihazlar kadar güvenilir olduğunu unutmayın. Tam geçerlilik onayı, olumlu bir göstergedir. Bu tür bir sayfanın olmaması negatif değil, nötr bir göstergedir.

Donanım destekli anahtar çiftini alma ve doğrulama

Anahtar onayı sırasında, bir anahtar çiftinin takma adını belirtir ve anahtar çiftinin özelliklerini doğrulamak için kullanabileceğiniz sertifika zincirini alırsınız.

Cihaz, donanım düzeyinde anahtar onayını destekliyorsa bu zincirdeki kök sertifika, cihazın donanım destekli anahtar deposuna güvenli bir şekilde sağlanan onay kök anahtarı kullanılarak imzalanır.

Not: Donanım düzeyinde anahtar doğrulaması, Android 7.0 (API düzeyi 24) veya sonraki sürümler ve Google Play Hizmetleri yüklü cihazlarda kök sertifika, Google doğrulama kök anahtarıyla imzalanır. Bu kök sertifikanın, kök sertifikalar bölümünde listelenenler arasında olduğundan emin olun.

Anahtar tasdiki uygulamak için aşağıdaki adımları tamamlayın:

  1. Donanım destekli anahtar deposuyla ilişkili X.509 sertifika zincirinin referansını almak için bir KeyStore nesnesinin getCertificateChain() yöntemini kullanın.
  2. Sertifikaları, doğrulama için güvendiğiniz ayrı bir sunucuya gönderin.

    Dikkat: Aşağıdaki doğrulama işlemini KeyStore ile aynı cihazda tamamlamayın. Söz konusu cihazdaki Android sisteminin güvenliği ihlal edilmişse doğrulama sürecinin güvenilir olmayan bir şeye güvenmesine neden olabilir.

  3. Araç setiniz için en uygun X.509 sertifika zinciri ayrıştırma ve doğrulama kitaplığının referansını edinin. Kök genel sertifikanın güvenilir olduğundan ve her sertifikanın zincirdeki sonraki sertifikayı imzaladığından emin olun.

  4. Sertifikaların hiçbirinin iptal edilmediğinden emin olmak için her sertifikanın iptal durumunu kontrol edin.

  5. İsteğe bağlı olarak, yalnızca yeni sertifika zincirlerinde bulunan temel hazırlık bilgileri sertifika uzantısını inceleyin.

    Araç setinize en uygun CBOR ayrıştırıcı kitaplığının referansını edinin. Köke en yakın, hizmet sağlama bilgileri sertifika uzantısını içeren sertifikayı bulun. Ayrıştırıcıyı kullanarak söz konusu sertifikadan temel hazırlık bilgileri sertifika uzantısı verilerini çıkarın.

    Daha fazla bilgi için temel hazırlama bilgileri uzantı veri şeması ile ilgili bölümü inceleyin.

  6. Araç grubunuz için en uygun ASN.1 ayrıştırıcı kitaplığına ilişkin bir referans edinin. Köke en yakın, anahtar doğrulama sertifikası uzantısını içeren sertifikayı bulun. Temel hazırlama bilgileri sertifikası uzantısı varsa anahtar doğrulama sertifikası uzantısı, hemen sonraki sertifikada olmalıdır. Anahtar doğrulama sertifikası uzantısı verilerini bu sertifikadan ayıklamak için ayrıştırıcıyı kullanın.

    Dikkat: Anahtar doğrulama sertifikası uzantısının zincirin son varlık sertifikasında olduğunu varsaymayın. Yalnızca zincirdeki uzantının ilk oluşumuna güvenilebilir. Uzatmayla ilgili diğer tüm örnekler güvenli donanım tarafından yayınlanmamıştır ve güvenilmeyen anahtarlar için sahte onay oluşturmaya çalışırken zinciri uzatan bir saldırgan tarafından yayınlanmış olabilir.

    Anahtar Onay örneği, bir onay sertifikasının uzantı verilerini ayıklamak için Bouncy Castle'daki ASN.1 ayrıştırıcıyı kullanır. Kendi ayrıştırıcınızı oluşturmak için bu örneği referans olarak kullanabilirsiniz.

    Daha fazla bilgi için anahtar onayı uzantısı veri şeması ile ilgili bölüme bakın.

  7. Önceki adımlarda aldığınız uzantı verilerini tutarlılık açısından kontrol edin ve bu verileri, donanım destekli anahtarın içermesini beklediğiniz değer grubuyla karşılaştırın.

Kök sertifikalar

Onay belgesinin güvenilirliği, zincirin kök sertifikasına bağlıdır. Google Play dahil olmak üzere Google uygulama paketine sahip olmak için gereken testi geçmiş ve Android 7.0 (API düzeyi 24) veya sonraki sürümlerle kullanıma sunulmuş Android cihazlar, Google Donanım Onaylama Kök Sertifikası tarafından imzalanmış doğrulama anahtarları kullanmalıdır. Android 8.0'a (API düzeyi 26) kadar doğrulamanın gerekli olmadığını unutmayın. Kök ortak anahtar şu şekildedir:

  -----BEGIN PUBLIC KEY-----
  MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xU
  FmOr75gvMsd/dTEDDJdSSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5j
  lRfdnJLmN0pTy/4lj4/7tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y
  //0rb+T+W8a9nsNL/ggjnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73X
  pXyTqRxB/M0n1n/W9nGqC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYI
  mQQcHtGl/m00QLVWutHQoVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB
  +TxywElgS70vE0XmLD+OJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7q
  uvmag8jfPioyKvxnK/EgsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgp
  Zrt3i5MIlCaY504LzSRiigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7
  gLiMm0jhO2B6tUXHI/+MRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82
  ixPvZtXQpUpuL12ab+9EaDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+
  NpUFgNPN9PvQi8WEg5UmAGMCAwEAAQ==
  -----END PUBLIC KEY-----
Daha Önce Yayınlanan Kök Sertifikalar
    -----BEGIN CERTIFICATE-----
    MIIFYDCCA0igAwIBAgIJAOj6GWMU0voYMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNV
    BAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMTYwNTI2MTYyODUyWhcNMjYwNTI0MTYy
    ODUyWjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0B
    AQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdS
    Sxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7
    tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggj
    nar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGq
    C4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQ
    oVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+O
    JtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/Eg
    sTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRi
    igHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+M
    RPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9E
    aDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5Um
    AGMCAwEAAaOBpjCBozAdBgNVHQ4EFgQUNmHhAHyIBQlRi0RsR/8aTMnqTxIwHwYD
    VR0jBBgwFoAUNmHhAHyIBQlRi0RsR/8aTMnqTxIwDwYDVR0TAQH/BAUwAwEB/zAO
    BgNVHQ8BAf8EBAMCAYYwQAYDVR0fBDkwNzA1oDOgMYYvaHR0cHM6Ly9hbmRyb2lk
    Lmdvb2dsZWFwaXMuY29tL2F0dGVzdGF0aW9uL2NybC8wDQYJKoZIhvcNAQELBQAD
    ggIBACDIw41L3KlXG0aMiS//cqrG+EShHUGo8HNsw30W1kJtjn6UBwRM6jnmiwfB
    Pb8VA91chb2vssAtX2zbTvqBJ9+LBPGCdw/E53Rbf86qhxKaiAHOjpvAy5Y3m00m
    qC0w/Zwvju1twb4vhLaJ5NkUJYsUS7rmJKHHBnETLi8GFqiEsqTWpG/6ibYCv7rY
    DBJDcR9W62BW9jfIoBQcxUCUJouMPH25lLNcDc1ssqvC2v7iUgI9LeoM1sNovqPm
    QUiG9rHli1vXxzCyaMTjwftkJLkf6724DFhuKug2jITV0QkXvaJWF4nUaHOTNA4u
    JU9WDvZLI1j83A+/xnAJUucIv/zGJ1AMH2boHqF8CY16LpsYgBt6tKxxWH00XcyD
    CdW2KlBCeqbQPcsFmWyWugxdcekhYsAWyoSf818NUsZdBWBaR/OukXrNLfkQ79Iy
    ZohZbvabO/X+MVT3rriAoKc8oE2Uws6DF+60PV7/WIPjNvXySdqspImSN78mflxD
    qwLqRBYkA3I75qppLGG9rp7UCdRjxMl8ZDBld+7yvHVgt1cVzJx9xnyGCC23Uaic
    MDSXYrB4I4WHXPGjxhZuCuPBLTdOLU8YRvMYdEvYebWHMpvwGCF6bAx3JBpIeOQ1
    wDB5y0USicV3YgYGmi+NZfhA4URSh77Yd6uuJOJENRaNVTzk
    -----END CERTIFICATE-----
  
    -----BEGIN CERTIFICATE-----
    MIIFHDCCAwSgAwIBAgIJANUP8luj8tazMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNV
    BAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMTkxMTIyMjAzNzU4WhcNMzQxMTE4MjAz
    NzU4WjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0B
    AQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdS
    Sxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7
    tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggj
    nar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGq
    C4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQ
    oVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+O
    JtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/Eg
    sTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRi
    igHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+M
    RPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9E
    aDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5Um
    AGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1Ud
    IwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYD
    VR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQBOMaBc8oumXb2voc7XCWnu
    XKhBBK3e2KMGz39t7lA3XXRe2ZLLAkLM5y3J7tURkf5a1SutfdOyXAmeE6SRo83U
    h6WszodmMkxK5GM4JGrnt4pBisu5igXEydaW7qq2CdC6DOGjG+mEkN8/TA6p3cno
    L/sPyz6evdjLlSeJ8rFBH6xWyIZCbrcpYEJzXaUOEaxxXxgYz5/cTiVKN2M1G2ok
    QBUIYSY6bjEL4aUN5cfo7ogP3UvliEo3Eo0YgwuzR2v0KR6C1cZqZJSTnghIC/vA
    D32KdNQ+c3N+vl2OTsUVMC1GiWkngNx1OO1+kXW+YTnnTUOtOIswUP/Vqd5SYgAI
    mMAfY8U9/iIgkQj6T2W6FsScy94IN9fFhE1UtzmLoBIuUFsVXJMTz+Jucth+IqoW
    Fua9v1R93/k98p41pjtFX+H8DslVgfP097vju4KDlqN64xV1grw3ZLl4CiOe/A91
    oeLm2UHOq6wn3esB4r2EIQKb6jTVGu5sYCcdWpXr0AUVqcABPdgL+H7qJguBw09o
    jm6xNIrw2OocrDKsudk/okr/AwqEyPKw9WnMlQgLIKw1rODG2NvU9oR3GVGdMkUB
    ZutL8VuFkERQGt6vQ2OCw0sV47VMkuYbacK/xyZFiRcrPJPb41zgbQj9XAEyLKCH
    ex0SdDrx+tWUDqG8At2JHA==
    -----END CERTIFICATE-----
  
    -----BEGIN CERTIFICATE-----
    MIIFHDCCAwSgAwIBAgIJAMNrfES5rhgxMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNV
    BAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMjExMTE3MjMxMDQyWhcNMzYxMTEzMjMx
    MDQyWjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0B
    AQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdS
    Sxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7
    tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggj
    nar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGq
    C4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQ
    oVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+O
    JtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/Eg
    sTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRi
    igHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+M
    RPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9E
    aDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5Um
    AGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1Ud
    IwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYD
    VR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQBTNNZe5cuf8oiq+jV0itTG
    zWVhSTjOBEk2FQvh11J3o3lna0o7rd8RFHnN00q4hi6TapFhh4qaw/iG6Xg+xOan
    63niLWIC5GOPFgPeYXM9+nBb3zZzC8ABypYuCusWCmt6Tn3+Pjbz3MTVhRGXuT/T
    QH4KGFY4PhvzAyXwdjTOCXID+aHud4RLcSySr0Fq/L+R8TWalvM1wJJPhyRjqRCJ
    erGtfBagiALzvhnmY7U1qFcS0NCnKjoO7oFedKdWlZz0YAfu3aGCJd4KHT0MsGiL
    Zez9WP81xYSrKMNEsDK+zK5fVzw6jA7cxmpXcARTnmAuGUeI7VVDhDzKeVOctf3a
    0qQLwC+d0+xrETZ4r2fRGNw2YEs2W8Qj6oDcfPvq9JySe7pJ6wcHnl5EZ0lwc4xH
    7Y4Dx9RA1JlfooLMw3tOdJZH0enxPXaydfAD3YifeZpFaUzicHeLzVJLt9dvGB0b
    HQLE4+EqKFgOZv2EoP686DQqbVS1u+9k0p2xbMA105TBIk7npraa8VM0fnrRKi7w
    lZKwdH+aNAyhbXRW9xsnODJ+g8eF452zvbiKKngEKirK5LGieoXBX7tZ9D1GNBH2
    Ob3bKOwwIWdEFle/YF/h6zWgdeoaNGDqVBrLr2+0DtWoiB1aDEjLWl9FmyIUyUm7
    mD/vFDkzF+wm7cyWpQpCVQ==
    -----END CERTIFICATE-----
  
    -----BEGIN CERTIFICATE-----
    MIIFHDCCAwSgAwIBAgIJAPHBcqaZ6vUdMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNV
    BAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMjIwMzIwMTgwNzQ4WhcNNDIwMzE1MTgw
    NzQ4WjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0B
    AQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdS
    Sxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7
    tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggj
    nar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGq
    C4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQ
    oVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+O
    JtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/Eg
    sTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRi
    igHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+M
    RPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9E
    aDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5Um
    AGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1Ud
    IwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYD
    VR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQB8cMqTllHc8U+qCrOlg3H7
    174lmaCsbo/bJ0C17JEgMLb4kvrqsXZs01U3mB/qABg/1t5Pd5AORHARs1hhqGIC
    W/nKMav574f9rZN4PC2ZlufGXb7sIdJpGiO9ctRhiLuYuly10JccUZGEHpHSYM2G
    tkgYbZba6lsCPYAAP83cyDV+1aOkTf1RCp/lM0PKvmxYN10RYsK631jrleGdcdkx
    oSK//mSQbgcWnmAEZrzHoF1/0gso1HZgIn0YLzVhLSA/iXCX4QT2h3J5z3znluKG
    1nv8NQdxei2DIIhASWfu804CA96cQKTTlaae2fweqXjdN1/v2nqOhngNyz1361mF
    mr4XmaKH/ItTwOe72NI9ZcwS1lVaCvsIkTDCEXdm9rCNPAY10iTunIHFXRh+7KPz
    lHGewCq/8TOohBRn0/NNfh7uRslOSZ/xKbN9tMBtw37Z8d2vvnXq/YWdsm1+JLVw
    n6yYD/yacNJBlwpddla8eaVMjsF6nBnIgQOf9zKSe06nSTqvgwUHosgOECZJZ1Eu
    zbH4yswbt02tKtKEFhx+v+OTge/06V+jGsqTWLsfrOCNLuA8H++z+pUENmpqnnHo
    vaI47gC+TNpkgYGkkBT6B/m/U01BuOBBTzhIlMEZq9qkDWuM2cA5kW5V3FJUcfHn
    w1IdYIg2Wxg7yHcQZemFQg==
    -----END CERTIFICATE-----
  

Aldığınız onay zincirindeki kök sertifika bu ortak anahtarı içeriyorsa ve zincirdeki sertifikalardan hiçbiri iptal edilmemişse şunları bilirsiniz:

  1. Anahtarınız, Google'ın güvenli olduğuna inandığı donanımdadır ve
  2. Onay sertifikasında açıklanan özelliklere sahiptir.

Sertifika zincirinde başka bir kök ortak anahtar varsa Google, donanımın güvenliği hakkında herhangi bir iddiada bulunmaz. Bu durum, anahtarınızın güvenliğinin ihlal edildiği anlamına gelmez. Yalnızca onayın, anahtarın güvenli donanımda olduğunu kanıtlamadığı anlamına gelir. Güvenlik varsayımlarınızı buna göre ayarlayın.

Kök sertifika bu sayfadaki ortak anahtarı içermiyorsa bunun iki olası nedeni vardır:

  • Cihazın Android'in 7.0'dan eski bir sürümüyle kullanıma sunulması muhtemeldir ve cihaz donanım onayını desteklemez. Bu durumda Android, aynı tür onay sertifikası oluşturan ancak Android kaynak koduna sabit kodlu bir anahtarla imzalanmış bir onay yazılımı uygulamasına sahiptir. Bu imzalama anahtarı gizli olmadığından onay, güvenli donanım sağladığını iddia eden bir saldırgan tarafından oluşturulmuş olabilir.
  • Diğer olası neden, cihazın Google Play cihazı olmamasıdır. Bu durumda, cihaz üreticisi kendi kökünü oluşturabilir ve doğrulamanın ne anlama geldiğiyle ilgili istediği iddialarda bulunabilir. Cihaz üreticisinin belgelerine bakın. Google'ın, bu yazının yazıldığı tarih itibarıyla bu işlemi yapan herhangi bir cihaz üreticisi olmadığını belirtmek isteriz.

Sertifika iptal durumu listesi

Attestation anahtarları, kötüye kullanım veya saldırgan tarafından anahtarların çalınma şüphesi dahil olmak üzere çeşitli nedenlerle iptal edilebilir. Bu nedenle, bir doğrulama zincirindeki her bir sertifikanın durumunun resmi sertifika iptal durumu listesinde (CRL) kontrol edilmesi önemlidir. Bu liste Google tarafından yönetilir ve şu adreste yayınlanır: https://android.googleapis.com/attestation/status. HTTP yanıtındaki Cache-Control başlığı, güncellemelerin ne sıklıkta kontrol edileceğini belirler ve böylece doğrulanan her sertifika için bir ağ isteğine gerek kalmaz. Bu URL, normal geçerli durumuna sahip olmayan sertifikaların iptal durumunu içeren bir JSON dosyası döndürür. JSON dosyasının biçimi aşağıdaki JSON Şeması (taslak 07) tanımına bağlıdır:

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "entries": {
      "description" : "Each entry represents the status of an attestation key. The dictionary-key is the certificate serial number in lowercase hex.",
      "type": "object",
      "propertyNames": {
        "pattern": "^[a-f1-9][a-f0-9]*$"
      },
      "additionalProperties": {
        "type": "object",
        "properties": {
          "status": {
            "description": "[REQUIRED] Current status of the key.",
            "type": "string",
            "enum": ["REVOKED", "SUSPENDED"]
          },
          "expires": {
            "description": "[OPTIONAL] UTC date when certificate expires in ISO8601 format (YYYY-MM-DD). Can be used to clear expired certificates from the status list.",
            "type": "string",
            "format": "date"
          },
          "reason": {
            "description": "[OPTIONAL] Reason for the current status.",
            "type": "string",
            "enum": ["UNSPECIFIED", "KEY_COMPROMISE", "CA_COMPROMISE", "SUPERSEDED", "SOFTWARE_FLAW"]
          },
          "comment": {
            "description": "[OPTIONAL] Free form comment about the key status.",
            "type": "string",
            "maxLength": 140
          }
        },
        "required": ["status"],
        "additionalProperties": false
      }
    }
  },
  "required": ["entries"],
  "additionalProperties": false
}

Örnek CRL:

{
  "entries": {
    "2c8cdddfd5e03bfc": {
      "status": "REVOKED",
      "expires": "2020-11-13",
      "reason": "KEY_COMPROMISE",
      "comment": "Key stored on unsecure system"
    },
    "c8966fcb2fbb0d7a": {
      "status": "SUSPENDED",
      "reason": "SOFTWARE_FLAW",
      "comment": "Bug in keystore causes this key malfunction b/555555"
    }
  }
}

Anahtar onayı uzantısı veri şeması

Anahtar onayı uzantısının OID'si 1.3.6.1.4.1.11129.2.1.17. Uzantı, bilgileri bir ASN.1 şemasına göre depolar.

Aşağıdaki listede, şemada yer alan her bir öğenin açıklaması sunulmaktadır:

KeyDescription

Bu değer dizisi, anahtar onayı aracılığıyla doğrulanan anahtar çifti hakkında genel bilgiler sunar ve ek ayrıntılara kolayca erişmenizi sağlar.

attestationVersion
Anahtar onay özelliğinin sürümü.
DeğerSürüm
1Keymaster 2.0 sürümü
2Keymaster sürümü 3.0
3Keymaster sürümü 4.0
4Keymaster 4.1 sürümü
100KeyMint sürüm 1.0
200KeyMint 2.0 sürümü
300KeyMint 3.0 sürümü
attestationSecurityLevel

Onayın güvenlik seviyesi.

Uyarı: Android sisteminde depolanan anahtarların doğrulanması mümkündür (yani attestationSecurityLevel değerinin Yazılım olarak ayarlanması gerekir). Ancak Android sisteminin güvenliği ihlal edilirse bu doğrulamalara güvenemezsiniz.

keymasterVersion/keyMintVersion
Keymaster veya KeyMint donanım soyutlama katmanının (HAL) sürümü.
DeğerSürüm
0Keymaster 0.2 veya 0.3 sürümü
1Keymaster sürüm 1.0
2Keymaster 2.0 sürümü
3Keymaster sürümü 3.0
4Keymaster sürümü 4.0
41Keymaster 4.1 sürümü
100KeyMint sürüm 1.0
200KeyMint 2.0 sürümü
300KeyMint 3.0 sürümü
keymasterSecurityLevel/keyMintSecurityLevel
Keymaster/KeyMint uygulamasının güvenlik düzeyi.
attestationChallenge
Anahtar oluşturma sırasında sağlanan sorgulamayı içerir. Bu değerin, sunucunuz tarafından sağlanan, Tag::ATTESTATION_CHALLENGE yetkilendirme etiketinde depolandığı değerle eşleşip eşleşmediğini kontrol edin. Aksi takdirde, hizmetiniz eski doğrulama sertifikalarının yeniden oynatılmasına karşı savunmasız olabilir.
uniqueId
Bu değer, cihazı tanımlar ancak yalnızca sınırlı bir süre için geçerlidir. Hesaplanır ve yalnızca sistem uygulamaları tarafından kullanılır. Diğer tüm uygulamalarda uniqueId boştur.
softwareEnforced
İsteğe bağlı. Cihazın Güvenilir Yürütme Ortamı (TEE) tarafından değil, Android sistemi tarafından zorunlu kılınan Keymaster/KeyMint yetkilendirme listesi. Bu yetkilendirme listesindeki bilgiler, platformun bir parçası olan kod tarafından toplanır veya oluşturulur ve cihazın sistem bölümünde depolanır. Cihaz, Android Platform Güvenlik Modeli'ne uygun bir işletim sistemi çalıştırdığı sürece bu yetkilendirme listesinin içeriğine güvenilebilir. Sertifikalı tüm Android cihazlar bu güvenlik modeline uygundur. Bu nedenle, cihaz kilitliyse ve doğrulanmış başlatma durumu Verified ise buradaki değerler güvenilir olmalıdır. Önyükleyicinin kilidinin açıldığı değiştirilmiş bir cihazda kullanıcı, Android Platform Güvenlik Modeli ile uyumlu olmayan bir işletim sistemi yükleyebilir. Bu nedenle, bu alandaki değerler kullanıcı tarafından keyfi olarak seçilebilir.
hardwareEnforced
İsteğe bağlı. Cihazın Güvenilir Yürütme Ortamı (TEE) tarafından zorunlu kılınan Keymaster/KeyMint yetkilendirme listesi. Bu yetkilendirme listesindeki bilgiler, güvenli donanımın parçası olan ve platform tarafından kontrol edilmeyen kod tarafından toplanır veya oluşturulur. Örneğin, bu yetkilendirme listesindeki bilgiler cihazın bootloader'ından veya cihazda çalışan TEE'den gelir. Bu yetkilendirme listesindeki, doğrudan KeyMint tarafından ayarlanmayan alanlar, güvenli donanımın diğer parçaları (ör. önyükleyici) tarafından platforma güvenmeyi gerektirmeyen güvenli iletişim kanalları aracılığıyla sağlanır. Güvenli donanım ile Android sistem arasındaki fark, kullanıcının güvenli donanımda (donanım yazılımı) çalışan kodu değiştirememesidir. Bu nedenle, kullanıcı bu yetkilendirme listesindeki değerleri bozamaz.

Güvenlik Seviyesi

Bu veri yapısı, bir yazılım özelliğinin (ör. anahtar çifti) cihazdaki konumuna göre ne kadar korunduğunu gösterir.

Veri yapısı bir numaralandırma olduğundan tam olarak aşağıdaki değerlerden birini alır:

Anahtar deposu
Özelliği oluşturma ve yönetme mantığı Android sistemine uygulanır. Anahtar çiftleri oluşturma ve depolama açısından bu konum TEE'den daha az güvenlidir ancak uygulamanızın işlem alanından daha güvenlidir.
TrustedEnvironment
Özelliği oluşturma ve yönetme mantığı, TEE gibi güvenli donanımlarda uygulanır. Güvenli donanım uzaktan saldırılara karşı son derece dayanıklı olduğundan, anahtar çiftleri oluşturmak ve depolamak için bu konum daha güvenlidir.
StrongBox
Özelliği oluşturma ve yönetme mantığı, özel bir donanım güvenlik modülünde uygulanır. Modüle karşı uzaktan güvenlik ihlali ve donanım saldırılarına karşı son derece dirençli olduğundan, anahtar çiftleri oluşturma ve depolama açısından bu konum daha güvenlidir.
Yazılım
Özelliği oluşturma ve yönetme mantığı, güvenli bir ortamda çalışmayan bir KeyMint veya Keymaster uygulamasında uygulanıyor. Anahtar çiftleri oluşturmak ve depolamak için bu konum, TEE'den daha az ancak uygulamanızın işlem alanından daha güvenlidir.

AuthorizationList

Bu veri yapısı, Keymaster veya KeyMint donanım soyutlama katmanında (HAL) tanımlandığı şekliyle anahtar çiftinin özelliklerini içerir. Bir anahtar çiftinin uygulamanızda kullanılmaya devam edip etmediğini doğrulamak için bu değerleri cihazın mevcut durumuyla veya beklenen bir değer kümesiyle karşılaştırırsınız.

Her alan adı, benzer şekilde adlandırılmış bir Keymaster/KeyMint yetkilendirme etiketine karşılık gelir. Örneğin, bir yetkilendirme listesindeki keySize alanı, Tag::KEY_SIZE yetkilendirme etiketine karşılık gelir.

Provizyon etiketleriyle ilgili kesin bilgiler AIDL arayüz spesifikasyonunda yer alır. Bu, her etiketin kimlik değerini ve türünü tanımlar. Ayrıca, her etiketin hardwareEnforced yetkilendirme listesinde (etiketin güvenli ortamda zorunlu kılındığını belirtir) veya softwareEnforced yetkilendirme listesinde (etiketin Android tarafından, genellikle Keystore tarafından zorunlu kılındığını belirtir) bulunmasını bekleyip beklemediğini belirtir.

Aşağıdaki listedeki her alan isteğe bağlıdır:

purpose
1 değerine sahip bir etiket kimliği kullanan Tag::PURPOSE yetkilendirme etiketine karşılık gelir.
algorithm

2 değerine sahip bir etiket kimliği kullanan Tag::ALGORITHM yetkilendirme etiketine karşılık gelir.

Bir doğrulama AuthorizationList nesnesinde algoritma değeri her zaman RSA veya EC olur.

keySize
3 değerine sahip bir etiket kimliği kullanan Tag::KEY_SIZE yetkilendirme etiketine karşılık gelir.
digest
5 kimlik değeri kullanan Tag::DIGEST yetkilendirme etiketine karşılık gelir.
padding
Etiket kimliği değeri 6 olan Tag::PADDING yetkilendirme etiketine karşılık gelir.
ecCurve

10 değerini kullanan Tag::EC_CURVE yetkilendirme etiketine karşılık gelir.

Android sistem anahtar deposunda imzalama ve doğrulama için ECDSA kullanan bir eliptik eğri (EC) anahtar çifti oluşturmak için kullanılan parametre grubu.

rsaPublicExponent
200 değerinde bir etiket kimliği kullanan Tag::RSA_PUBLIC_EXPONENT yetkilendirme etiketine karşılık gelir.
mgfDigest

Yalnızca anahtar onayı sürümü >= 100'de mevcut.

203 kimlikli etiket değerini kullanan Tag::RSA_OAEP_MGF_DIGEST KeyMint yetkilendirme etiketine karşılık gelir.
rollbackResistance

Yalnızca anahtar doğrulama sürümünün 3 veya sonraki sürümlerinde bulunur.

Etiket kimliği değeri 303 olan Tag::ROLLBACK_RESISTANT yetkilendirme etiketine karşılık gelir.

earlyBootOnly

Yalnızca anahtar doğrulama sürümünün 4 veya sonraki sürümlerinde bulunur.

305 etiket kimliği değerini kullanan Tag::EARLY_BOOT_ONLY yetkilendirme etiketine karşılık gelir.

activeDateTime
400 etiket kimliği değerini kullanan Tag::ACTIVE_DATETIME yetkilendirme etiketine karşılık gelir.
originationExpireDateTime
401 kimlikli etiket değerini kullanan Tag::ORIGINATION_EXPIRE_DATETIME Keymaster yetkilendirme etiketine karşılık gelir.
usageExpireDateTime
402 etiket kimliği değerini kullanan Tag::USAGE_EXPIRE_DATETIME yetkilendirme etiketine karşılık gelir.
usageCountLimit
405 etiket kimliği değerini kullanan Tag::USAGE_COUNT_LIMIT yetkilendirme etiketine karşılık gelir.
noAuthRequired

503 etiket kimliği değerini kullanan Tag::NO_AUTH_REQUIRED yetkilendirme etiketine karşılık gelir.

userAuthType
Etiket kimliği değeri 504 olan Tag::USER_AUTH_TYPE yetkilendirme etiketine karşılık gelir.
authTimeout
505 etiket kimliği değerini kullanan Tag::AUTH_TIMEOUT yetkilendirme etiketine karşılık gelir.
allowWhileOnBody

Etiket kimliği değeri 506 olan Tag::ALLOW_WHILE_ON_BODY yetkilendirme etiketine karşılık gelir.

Kullanıcı cihazı hâlâ üzerinde taşıyorsa kimlik doğrulama zaman aşımı süresinden sonra anahtarın kullanılmasına izin verir. Cihazın kullanıcının vücudu üzerinde takılı olup olmadığını belirlerken üzerinizde olan güvenli bir sensörün olduğunu unutmayın.

trustedUserPresenceRequired

Yalnızca anahtar onay sürümü >= 3'te mevcut.

507 değerinde bir etiket kimliği kullanan Tag::TRUSTED_USER_PRESENCE_REQUIRED izin etiketine karşılık gelir.

Bu anahtarın yalnızca kullanıcının fiziksel olarak var olduğunu gösteren kanıt sunması durumunda kullanılabileceğini belirtir. Aşağıda konuyla ilgili olarak bazı örnekler verilmiştir:

  • StrongBox anahtarı için StrongBox cihazındaki bir pime bağlı bir donanım düğmesi.
  • TEE anahtarı için parmak izi kimlik doğrulaması, TEE'nin tarayıcı üzerinde özel kontrole sahip olduğu ve parmak izi eşleştirme işlemini gerçekleştirdiği sürece varlığın kanıtını sağlar.
trustedConfirmationRequired

Yalnızca anahtar doğrulama sürümünün 3 veya sonraki sürümlerinde bulunur.

508 etiket kimliği değerini kullanan Tag::TRUSTED_CONFIRMATION_REQUIRED yetkilendirme etiketine karşılık gelir.

Anahtarın yalnızca kullanıcı, onay jetonu ile imzalanacak veriler için onay verdiğinde kullanılabilir olduğunu belirtir. Kullanıcı onayı alma hakkında daha fazla bilgi için Android Korumalı Onay başlıklı makaleyi inceleyin.

Not: Bu etiket yalnızca SIGN amacını kullanan anahtarlar için geçerlidir.

unlockedDeviceRequired

Yalnızca anahtar doğrulama sürümünün 3 veya sonraki sürümlerinde bulunur.

509 etiket kimliği değerini kullanan Tag::UNLOCKED_DEVICE_REQUIRED yetkilendirme etiketine karşılık gelir.

allApplications

600 etiket kimliği değerini kullanan Tag::ALL_APPLICATIONS yetkilendirme etiketine karşılık gelir.

Bir cihazdaki tüm uygulamaların anahtar çiftine erişip erişemeyeceğini belirtir.

applicationId
Etiket kimliği değeri 601 olan Tag::APPLICATION_ID yetkilendirme etiketine karşılık gelir.
creationDateTime
701 etiket kimliği değerini kullanan Tag::CREATION_DATETIME yetkilendirme etiketine karşılık gelir.
origin

702 kimlik değerini kullanan Tag::ORIGIN yetkilendirme etiketine karşılık gelir.

rollbackResistant

Yalnızca anahtar onay sürümleri 1 ve 2'de sunun.

703 kimlik değerini kullanan Tag::ROLLBACK_RESISTANT yetkilendirme etiketine karşılık gelir.

rootOfTrust

704 etiket kimliği değerini kullanan Tag::ROOT_OF_TRUST yetkilendirme etiketine karşılık gelir.

Daha fazla bilgi için RootOfTrust veri yapısını açıklayan bölüme bakın.

osVersion

Etiket kimliği değeri 705 olan Tag::OS_VERSION yetkilendirme etiketine karşılık gelir.

Keymaster ile ilişkilendirilmiş Android işletim sistemi sürümü. Altı basamaklı tam sayı olarak belirtilir. Örneğin, sürüm 8.1.0, 080100 olarak temsil edilir.

Yalnızca Keymaster 1.0 veya sonraki sürümler bu değeri yetkilendirme listesine dahil eder.

osPatchLevel

706 etiket kimliği değerini kullanan Tag::PATCHLEVEL yetkilendirme etiketine karşılık gelir.

Keymaster'da kullanılan güvenlik yamasıyla ilişkili ay ve yıl, altı haneli bir tam sayı olarak belirtilir. Örneğin, Ağustos 2018 yaması 201808 olarak temsil edilir.

Yalnızca Keymaster 1.0 veya sonraki sürümler bu değeri yetkilendirme listesine dahil eder.

attestationApplicationId

Yalnızca anahtar onay sürümleri >= 2'de mevcut.

709 etiket kimliği değerini kullanan Tag::ATTESTATION_APPLICATION_ID Keymaster yetkilendirme etiketine karşılık gelir.

Daha fazla bilgi için AttestationApplicationId veri yapısını açıklayan bölüme bakın.

attestationIdBrand

Yalnızca 2 ve üzeri anahtar doğrulama sürümlerinde bulunur.

710 kimlik değerini kullanan Tag::ATTESTATION_ID_BRAND Keymaster etiketine karşılık gelir.

attestationIdDevice

Yalnızca 2 ve üzeri anahtar doğrulama sürümlerinde bulunur.

Etiket kimliği değeri 711 olan Tag::ATTESTATION_ID_DEVICE Keymaster etiketine karşılık gelir.

attestationIdProduct

Yalnızca 2 ve üzeri anahtar doğrulama sürümlerinde bulunur.

712 kimlik değerini kullanan Tag::ATTESTATION_ID_PRODUCT Keymaster etiketine karşılık gelir.

attestationIdSerial

Yalnızca anahtar onay sürümleri >= 2'de mevcut.

713 kimlik değerini kullanan Tag::ATTESTATION_ID_SERIAL Keymaster etiketine karşılık gelir.

attestationIdImei

Yalnızca 2 ve sonraki anahtar doğrulama sürümlerinde bulunur.

714 etiket kimliği değerini kullanan Tag::ATTESTATION_ID_IMEI yetkilendirme etiketine karşılık gelir.

attestationIdMeid

Yalnızca 2 ve üzeri anahtar doğrulama sürümlerinde bulunur.

715 kimlik değerini kullanan Tag::ATTESTATION_ID_MEID yetkilendirme etiketine karşılık gelir.

attestationIdManufacturer

Yalnızca 2 ve üzeri anahtar doğrulama sürümlerinde bulunur.

716 kimlikli bir etiket değeri kullanan Tag::ATTESTATION_ID_MANUFACTURER yetkilendirme etiketine karşılık gelir.

attestationIdModel

Yalnızca anahtar onay sürümleri >= 2'de mevcut.

717 etiket kimliği değerini kullanan Tag::ATTESTATION_ID_MODEL yetkilendirme etiketine karşılık gelir.

vendorPatchLevel

Yalnızca 3 ve üzeri anahtar doğrulama sürümlerinde bulunur.

718 kimlikli bir etiket değeri kullanan Tag::VENDOR_PATCHLEVEL izin etiketine karşılık gelir.

Bu anahtarın kullanılabilmesi için cihaza yüklenmesi gereken tedarikçi firma resmi güvenlik yaması düzeyini belirtir. Değer, tedarikçi firma güvenlik yamasının tarihini temsil eden YYYYAAGG biçiminde görünür. Örneğin, bir Android cihazda tedarikçi firmanın 1 Ağustos 2018 güvenlik yaması yüklüyken bir anahtar oluşturulduysa bu değer 20180801 olur.

bootPatchLevel

Yalnızca 3 ve sonraki anahtar doğrulama sürümlerinde bulunur.

719 etiket kimliği değerini kullanan Tag::BOOT_PATCHLEVEL izin etiketine karşılık gelir.

Bu anahtarın kullanılabilmesi için cihaza yüklenmesi gereken çekirdek görüntüsü güvenlik yaması düzeyini belirtir. Değer, sistem güvenlik yamasının tarihini temsil eden YYYYAAGG biçiminde görünür. Örneğin, 5 Ağustos 2018 güvenlik yaması yüklü bir Android cihazda anahtar oluşturulduysa bu değer 20180805 olur.

deviceUniqueAttestation

Yalnızca 4 ve sonraki anahtar doğrulama sürümlerinde bulunur.

720 değerinde bir etiket kimliği kullanan Tag::DEVICE_UNIQUE_ATTESTATION izin etiketine karşılık gelir.

attestationIdSecondImei

Yalnızca 300 veya daha büyük anahtar onay sürümlerinde sunulur.

723 kimlikli bir etiket değeri kullanan Tag::ATTESTATION_ID_SECOND_IMEI yetkilendirme etiketine karşılık gelir.

Güven Kökü

Bu değer koleksiyonu, cihazın durumuyla ilgili önemli bilgileri tanımlar.

Aşağıdaki listedeki her alan zorunludur:

verifiedBootKey

Sistem görüntüsünü doğrulayan anahtarın güvenli karması. Bu karma oluşturma işlemi için SHA-256 algoritmasını kullanmanız önerilir.

deviceLocked
Cihazın bootloader'ı kilitliyse doğru değerini alır. Bu durumda, Doğrulanmış Başlatma kontrolü etkinleştirilir ve imzasız bir cihaz resminin cihaza yüklenmesine izin verilmez. Bu özellik hakkında daha fazla bilgi için Doğrulanmış Başlatma belgelerini inceleyin.
verifiedBootState
Doğrulanmış Başlatma özelliğine göre cihazın başlatma durumu.
verifiedBootHash

Yalnızca anahtar onay sürümleri >= 3'te mevcut.

Doğrulanmış Önyükleme ile korunan tüm verilerin özeti. Doğrulanmış Başlatma'nın Android Doğrulanmış Başlatma uygulamasını kullanan cihazlarda bu değer, VBMeta yapısının veya Doğrulanmış Başlatma meta veri yapısının özetini içerir.

Bu değerin nasıl hesaplanacağı hakkında daha fazla bilgi edinmek için VBMeta Digest başlıklı makaleyi inceleyin.

VerifiedBootState

Bu veri yapısı, cihazın mevcut önyükleme durumunu sağlar. Bu durum, cihazın önyüklemesi tamamlandıktan sonra kullanıcıya ve uygulamalara sağlanan koruma düzeyini temsil eder. Bu özellik hakkında daha fazla bilgi için Doğrulanmış Başlatma belgelerinin Başlatma Durumu bölümüne bakın.

Bu veri yapısı bir liste olduğundan tam olarak aşağıdaki değerlerden birini alır:

Doğrulandı

Önyükleme yükleyiciyi, önyükleme bölümünü ve doğrulanmış tüm bölümleri içeren tam bir güven zincirini gösterir.

Cihaz bu önyükleme durumundayken verifiedBootKey, cihaz üreticisinin fabrikada cihazın ROM'una eklediği cihaza yerleştirilmiş sertifikanın karmasıdır.

Kendinden İmzalı

Cihaza yerleştirilmiş sertifikanın, cihazın başlatma bölümünü doğruladığını ve imzanın geçerli olduğunu belirtir.

Cihaz bu önyükleme durumundayken verifiedBootKey, kullanıcı tarafından yüklenen bir sertifikanın karmasıdır. Bu sertifika, kullanıcının orijinal, üretici tarafından sağlanan önyükleme bölümünün yerine cihaza eklediği önyükleme bölümünü imzalar.

Doğrulanmadı
Kullanıcının cihazı özgürce değiştirebileceğini belirtir. Bu nedenle, cihazın bütünlüğünü doğrulama
Başarısız
Cihazın doğrulamayı geçemediğini gösterir. Onay sertifikası hiçbir zaman VerifiedBootState için bu değeri kullanmamalıdır.

AttestationApplicationId

Bu veri yapısı, Android platformunun, hangi uygulamaların doğrulama kapsamında gizli anahtar materyalini kullanmasına izin verildiğine dair görüşünü yansıtır. Kimlik, yalnızca birden fazla paketin aynı UID'yi paylaşması durumunda birden fazla paket içerebilir. Sekizlik dize, aşağıdaki ASN.1 şemasına göre biçimlendirilir:

AttestationApplicationId ::= SEQUENCE {
    package_infos  SET OF AttestationPackageInfo,
    signature_digests  SET OF OCTET_STRING,
}

AttestationPackageInfo ::= SEQUENCE {
    package_name  OCTET_STRING,
    version  INTEGER,
}
paket_bilgileri
Her biri bir paketin adını ve sürüm numarasını sağlayan bir AttestationPackageInfo nesnesi grubu.
signature_digests

Uygulamanın imzalama sertifikalarının SHA-256 özet dizisi. Bir uygulamanın birden fazla imzalama anahtarı sertifika zinciri olabilir. Her biri için "yaprak" sertifikası ayrıştırılır ve signature_digests alanına yerleştirilir. Alan adı yanıltıcıdır. Çünkü sıkıştırılmış veriler, getPackageInfo() çağrısı tarafından döndürülen Signature sınıfına göre adlandırıldığı için uygulama imzaları değil, uygulamanın imzalama sertifikalarıdır. Aşağıdaki kod snippet'inde bir örnek küme gösterilmektedir:

{SHA256(PackageInfo.signature[0]), SHA256(PackageInfo.signature[1]), ...}

Kurulum bilgileri uzantı veri şeması

Temel hazırlama bilgileri uzantısının OID'si 1.3.6.1.4.1.11129.2.1.30. Uzantı, cihaz sağlama sunucusu tarafından cihaz hakkında bilinen bilgileri sağlar. Bu uzantı CDDL şemasını izler.

  {
        1 : int,   ; certificates issued
  }

Harita sürümü değiştirilmemiştir. İsteğe bağlı yeni alanlar eklenebilir.

certs_issued

Son 30 gün içinde cihaza verilen yaklaşık sertifika sayısı. Bu değer, ortalamadan birkaç kat daha büyükse olası kötüye kullanım sinyali olarak kullanılabilir.