Bu sayfada araç tabanlı bağlama şifreleme çekirdek özelliklerinin nasıl etkinleştirileceği açıklanmaktadır.
Genel Bakış
Araç bağlama tohumlama özelliğinin temel amacı, Araç İçi Bilgi ve Eğlence (IVI) sistemindeki verileri araçtan çıkarılmaya karşı koruyarak kullanıcının gizliliğini daha da korumaktır. Bu, depolama şifreleme anahtarlarının başka bir Elektronik Kontrol Birimi'ne (ECU) bağlanmasıyla yapılır; böylece IVI çıkarılıp başka bir araca yerleştirilirse (veya bir test tezgahında çalıştırılırsa), IVI'daki şifrelenmiş kullanıcı verilerinin şifresi çözülemez.
Dosya şifreleme anahtarlarını bağlamak için Vold, araca özel bir tohumu anahtar şifreleme anahtarı türetmeyle karıştırır, böylece anahtarlar benzersiz olur ve fiziksel olarak araca bağlanır. Tohum, STORAGE_ENCRYPTION_BINDING_SEED
OEM tarafından yeni bir Araç Donanımı Soyutlama Katmanı (VHAL) özelliği olarak kullanıma sunulan bir bayt dizisidir. Bu özelliğin izinleri, yalnızca ayrıcalıklı sistem arka plan programları tarafından sorgulanabilecek şekilde sınırlandırılmıştır.
Mimari diyagramı
Bu şekil araca bağlı entegrasyonun mimarisini göstermektedir:
Şekil 1. Araca bağlı mimari.
Araç tabanlı bağlamayı etkinleştir
Depolama şifrelemesinin araca bağlanması açıkça etkinleştirilmelidir ve fabrika ayarlarına sıfırlama yapılmadan açılıp kapatılamaz. Bu, bir Over-the-Air (OTA) güncellemesinin, cihazı da silmeden bu özelliği etkinleştiremeyeceği anlamına gelir. Bir OEM, cihazı fabrika ayarlarına da sıfırlarsa, yükseltme sonrasında bu özelliği etkinleştirmeyi seçebilir. Örneğin, bir servis ziyaretinde.
Bu özellik, satıcı tarafından sağlanan araç HAL'sindeki STORAGE_ENCRYPTION_BINDING_SEED
özelliği desteklenerek etkinleştirilir. Bu özellik, 16 bayt uzunluğunda bir bayt dizisi tutar ve IVI'dan ayrı bir ECU'da kalıcı olması beklenir. Bu özellik başlangıçta, onu Kriptografik Olarak Güvenli Rastgele Sayı Oluşturucu (CSRNG) kullanarak üreten Android Automotive OS (AAOS) tarafından ayarlanır. AAOS daha sonra özelliği sonraki önyüklemelerde okur.
VHAL'in STORAGE_ENCRYPTION_BINDING_SEED
değerini nasıl sakladığı satıcıya özeldir. Tohumun korunmasına yönelik genel önerilerimiz var:
- ( Tavsiye edilir ) Tohum, araçta fiziksel olarak iyi korunan bir ECU tarafından depolanır. Aksi takdirde hem IVI'nın hem de ECU'nun araçtan çıkarılması önemsizdir.
- ( Önerilen ) IVI ve ECU, ECU'dan tohuma yönelik sahtekarlık taleplerini önlemek amacıyla tohum değişimi için karşılıklı olarak kimlik doğrulaması yapmalıdır.
- ( Önerilen ) Tohum, CAN veriyolu koklamasına karşı koruma sağlamak için güvenli bir kanal kullanılarak iletilmelidir.
Ayrıca, init.target.rc
satıcısının mount_all --late
öncesinde late-fs
üzerinde olduğundan emin olmak için aşağıdakileri ekleyin:
# feed vehicle binding seed to vold exec_start vold_seed_binding
Araç HAL'ı hal now
yerine early_hal
başlatılmalıdır. /data
bölümü henüz bağlanmadığından herhangi bir persist.*
sistem özelliğine early-hal
erişilemez.
Araç tabanlı bağlamayı yapılandırma
ECU çekirdeği eşleşmezse cihaz kurtarma işlemine yeniden başlar ve kullanıcıdan /data
bölümünü silmesini veya yeniden denemesini ister.
Veri istemi ve silme davranışı, builtins.cpp dosyasında değiştirilebilir:
-
prompt_and_wipe_data
wipe_data
olarak değiştirin. Cihaz herhangi bir uyarı olmadan siler ve ardından yeniden başlatılır. - Bilgi istemi mesajı, Recovery.cpp dosyasında bulunur.
Şekil 2. Bilgi istemi mesajı.
Araç bazlı bağlamayı test edin
Deneme testi
packages/services/Car/cpp/security/vehicle_binding_util/tests
dosyasında bir deneme testi sağlanmaktadır.
Bu deneme testini çalıştırmak için:
attest libvehicle_binding_util_test
Entegrasyon testi
packages/services/Car/cpp/security/vehicle_binding_util/tests
içinde bir test testi sağlanır.
Bu entegrasyon testini çalıştırmak için:
atest vehicle_binding_integration_test