Geliştirici Seçeneklerinin Güvenliğini Sağlama

Başına Android Uyumluluk Tanımı Belgesi , OEM uygulama gelişimini sağlamak için bir yol sağlamalıdır. Bununla birlikte, arabalarda mobil benzeri geliştirici seçenekleri sağlamak, bu arabaları saldırılara karşı savunmasız bırakır. Geliştirici seçeneklerine erişim, artık kimliği doğrulanmış bir şifreleme belirteci mekanizması kullanılarak bir OEM tarafından kapılanabilir. Spesifik olarak, bir OEM şunları yapabilir:

  • İlk önyüklemeden önce istenen varsayılan kısıtlamaları ayarlayın.
  • Tercih edilirse kripto belirteçleriyle geliştiricilere güvenli bir şekilde yetki verin.
  • Bir geliştiricinin kimliği doğrulandıktan ve yetkilendirildikten sonra kısıtlama değişikliklerini uygulayın.

Bu makalede, bir hata ayıklama kısıtlama denetleyicisi uygulaması ve bir uzak belirteç veren uç noktasından oluşan bir başvuru uygulaması anlatılmaktadır.

terminoloji

Ek olarak Terminolojisi , bu terimler bu makalede kullanılır:

  • RFC 7515'te tanımlanan JSON Web İmzası (JWS)
  • Ulusal Standartlar ve Teknoloji Enstitüsü (NIST)

Tasarım

OEM'ler, geliştiricilere JSON Web İmzası (JWS) belirteçleri (RFC7515) ile yetki verebilir. Referans uygulamasında, erişim belirteçleri OEM'ler tarafından verilir ve kısıtlama denetleyici uygulaması tarafından tüketilir. Erişim belirteçleri, tekrar saldırılarına ve sahte belirteçlere direnmek için tasarlanmıştır.

Şekil 1. Tasarım

Entegrasyon ve Yapılandırma

OEM'ler, ilk önyüklemede istenen varsayılan kısıtlamaları belirtmelidir. Bu, AOSP çerçevesindeki varsayılanları geçersiz kılmak için birkaç statik kaynak yerleşimi ile yapılır.

Başsız sistem kullanıcı için varsayılan kısıtlama ile configred edilebilir config_defaultFirstUserRestrictions dize frameworks/base/core/res/res/values/config.xml örneğin:

<!-- User restrictions set when the first user is created.
         Note: Also update appropriate overlay files. -->
    <string-array translatable="false" name="config_defaultFirstUserRestrictions">
        <item>no_debugging_features</item>
    </string-array>

Sürücülerin, yolcuların ve misafirler için varsayılan kısıtlamalar yapılandırılabilir frameworks/base/core/res/res/xml/config_user_types.xml . Bir OEM üst üste bindirebilir| bu dizeleri, sırasıyla her bir kullanıcı türü için varsayılan kısıtlamaları ayarlamak için, örneğin:

<user-types>
    <full-type name="android.os.usertype.full.SECONDARY" >
        <default-restrictions no_debugging_features="true"/>
    </full-type>
    <full-type name="android.os.usertype.full.GUEST" >
        <default-restrictions no_debugging_features="true"/>
    </full-type>
</user-types>

AOSP'de aşağıdaki konumda bir referans uygulaması sağlanır:

packages/apps/Car/DebuggingRestrictionController

Test yapmak

Google, OEM'lerin referans uygulamasıyla başlamasını ve oradan geliştirmelerini önerir.

  1. Bindirme dosyalarında istenen kısıtlamaları yapılandırdıktan sonra AAOS'u derleyin ve tanımlanan akışları doğrulayın. Erişim ayarlarınızı doğrulamak için başvuru uygulamasını ve yerel JWS özellikli hizmeti kullanın.
  2. Sistemi, JWS etkin bulut hizmetinizi kullanacak şekilde yapılandırın (isteğe bağlı). Arka uç hizmetinizde istediğiniz akışı gözlemlediğinizi doğrulayın.