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 olmadığı ve kök, Google kök anahtarı olmadığı sürece sertifikaya tam olarak güvenmeyin.

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

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

Cihaz donanım düzeyinde anahtar onayı destekliyorsa bu zincirdeki kök sertifika, cihazın donanım destekli anahtar deposunda güvenli bir şekilde temel hazırlığı yapılan bir doğrulama 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 sürecini 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 daha yeni sertifika zincirlerinde bulunan temel hazırlama 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, temel hazırlama bilgileri sertifika uzantısını içeren sertifikayı bulun. Bu sertifikadaki temel hazırlama bilgileri sertifika uzantısı verilerini ayıklamak için ayrıştırıcıyı kullanın.

    Daha fazla bilgi için temel hazırlama bilgileri uzantısı ile ilgili bölüme bakın.

  6. Araç setiniz için en uygun ASN.1 ayrıştırıcı kitaplığının referansını 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 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 Onaylama örneği, onaylama sertifikasının uzantı verilerini ayıklamak için Bouncy Castle'daki ASN.1 ayrıştırıcısını 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 doğrulama 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 donanım destekli anahtarın içermesini beklediğiniz değer kümesiyle 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 doğrulama zincirindeki kök sertifika bu ortak anahtarı içeriyorsa ve zincirdeki sertifikaların hiçbiri iptal edilmemişse şunları bilebilirsiniz:

  1. Anahtarınız, Google'ın güvenli olduğunu düşündüğü 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 doğrulamanı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 sayfada ortak anahtarı içermiyorsa bunun iki olası nedeni vardır:

  • Cihaz büyük olasılıkla 7.0'dan eski bir Android sürümüyle kullanıma sunulmuş ve donanım doğrulamasını desteklemiyordur. Bu durumda Android, aynı türde onay sertifikası oluşturan ancak Android kaynak koduna kodlanmış bir anahtarla imzalanan 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 dokümanlarına bakın. Google'ın, bu tür bir işlem yapan herhangi bir cihaz üreticisi

Sertifika iptal durumu listesi

Attestation anahtarları, kötüye kullanım veya saldırgan tarafından anahtarı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. Böylece, doğrulanan her sertifika için ağ isteği gerekmez. Bu URL, normal geçerli bir duruma sahip olmayan tüm 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 uygun olmalı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"
    }
  }
}

Sertifika iptal politikası

Onay, Android ekosisteminde kötüye kullanıma karşı mücadelenin ve güvenin temelini oluşturur. Cihazın dışındaki taraflara, cihazın başlatılmış durumuyla ilgili kriptografik olarak doğrulanabilir bir beyan sağlar.

Android doğrulama anahtarlarının sertifikaları, doğrulama geçerliliğinin kritik doğası nedeniyle anahtarların güvenliği ihlal edildiğinde iptal edilir. Bu bölümde, sertifikaların ne zaman iptal edileceğine dair politika ana hatlarıyla açıklanmaktadır. Bu politika zaman içinde gelişecek ve ek örnekler içerecektir.

Hangi durumlarda iptal edilebilir?

Attestation anahtarı sızıntıları yalnızca Android'de desteklenen eski tedarik mekanizmasını etkiler ve daha yeni uzak anahtar tedarik mekanizması tarafından sertifikalandırılan attestation anahtarları için geçerli değildir.

Sızdırılan sertifika anahtarlarının sertifikaları her zaman iptal edilebilir. Sızıntıları aşağıdakiler de dahil olmak üzere çeşitli şekillerde bulabilirsiniz:

  • Gerçek dünyadaki doğrulama verilerinin analizi.
  • Sosyal medyada veya herkese açık diğer sitelerde doğrulama anahtarlarının bulunması.
  • Doğrudan güvenlik araştırmacılarından gelen raporlar.

Tespit edilen onay sertifikaları, seri numaraları iptal listesine eklenerek iptal edilir. Bu işlem genellikle tespitten sonraki birkaç gün içinde gerçekleşir ancak nadiren bu süre uzayabilir. Örneğin, sızdırılan doğrulama anahtarlarının sertifikaları, iptalden etkilenen cihazlar güvenli bir şekilde yeniden hazırlanabiliyorsa genellikle ertelenir. İptalin etkisinin ölçeği de iptal zaman çizelgelerinde önemli bir faktördür.

Anahtar onayı uzantısı veri şeması

Kurulum bilgileri uzantı veri şeması