Güvenli geliştirici seçenekleri

Android Uyumluluk Tanımlama Belgesi uyarınca, OEM'ler, uygulama geliştirmeyi mümkün kılacak bir yöntem sağlamalıdır. Ancak, mobil cihaz benzeri araçlardaki geliştirici seçenekleri, bu arabaları saldırıya açık hale getiriyor. Geliştiriciye erişim seçenekler artık kimliği doğrulanmış kriptografik jeton mekanizması kullanılarak OEM tarafından kontrol edilebiliyor. Bir OEM özel olarak şunları yapabilir:

  • İlk başlatmadan önce istediğiniz varsayılan kısıtlamaları ayarlayın.
  • İsterseniz geliştiricileri kripto jetonlarla güvenli bir şekilde yetkilendirin.
  • Bir geliştirici hem doğrulandıktan hem de yetkilendirildikten sonra kısıtlama değişikliklerini uygula.

Bu makalede, hata ayıklama kısıtlamasından oluşan bir referans uygulaması açıklanmaktadır. denetleyici uygulaması ve uzak jeton veren uç noktası.

Terminoloji

Terminoloji'ye ek olarak, bu makalede şu terimler kullanılmaktadır:

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

Tasarım

OEM'ler, geliştiricileri JSON Web İmzası (JWS) jetonları (RFC7515) ile yetkilendirebilir. referans uygulaması, erişim jetonları OEM'ler tarafından verilir ve kısıtlama tarafından tüketilir kumanda uygulaması. Erişim jetonları tekrarlı saldırılara ve sahte jetonlara karşı koymak için tasarlanmıştır.

Şekil 1. Tasarım

Entegrasyon ve yapılandırma

OEM'ler, ilk başlatmada istenen varsayılan kısıtlamaları belirtmelidir. Bu işlem şununla yapılır: AOSP çerçevesinde varsayılanları geçersiz kılmak için çeşitli statik kaynak yer paylaşımları.

Gözetimsiz sistem kullanıcısı için varsayılan kısıtlamalar config_defaultFirstUserRestrictions dizesi 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üler, yolcular ve konuklar için varsayılan kısıtlamalar şurada yapılandırılabilir: frameworks/base/core/res/res/xml/config_user_types.xml Bir OEM yer paylaşımı yapabilir| sırasıyla her kullanıcı türünde varsayılan kısıtlamaları ayarlamak için bu dizeleri kullanabilirsiniz. Ö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>

Referans uygulaması, AOSP'de aşağıdaki konumda sağlanır:

packages/apps/Car/DebuggingRestrictionController

Test

Google, OEM'lerin referans uygulamayla başlamasını ve buradan yola çıkarak geliştirme yapmasını önerir.

  1. Yer paylaşımlı dosyalarda istediğiniz kısıtlamaları yapılandırdıktan sonra AAOS'yi derleyin ve tanımlanan akışları doğrulamaktır. Referans uygulamayı ve JWS'nin kullanılabildiği yerel hizmeti kullanın erişim ayarlarınızı doğrulayın.
  2. Sistemi, JWS'nin etkinleştirildiği bulut hizmetinizi kullanacak şekilde yapılandırın (isteğe bağlı). Şu durumda olduğunuzu doğrulayın: arka uç hizmetinizde istenen akışı gözlemleme.