SDV başlatma modu, güvenli bir ağ oluşturmak için diğer hizmet bulma aracılarına (diğer SDV VM'lerinde çalışan) bağlanmaya çalışırken bir SDV VM'sindeki SDV hizmet bulma aracısının nasıl davrandığını tanımlar. Bu, Android Doğrulanmış Başlatma'daki mevcut device state kavramına benzer.
SDV önyükleme modu, Vehicle VM Trust
Store (VVM Trust Store, vvmtruststore olarak da bilinir) sağlanırken veya güncellenirken kullanılır.
SDV Secure Mesh davranışı
Hizmet Keşfi ağı, aldığı önyükleme değerlerine bağlı olarak şu durumlardan birinde olur: Normal, Warning veya Fatal.
Müşterilere teslim edilen üretim araçlarında SDV Secure Mesh, Normal durumunda olmalıdır. Ağın Normal durumundan Warning durumuna geçmesi için teşhis müdahalesi gerekir. Üretim ortamında (örneğin, geliştirme veya hata ayıklama değil) Warning durumu yalnızca sağlama sırasında gerçekleşir.
Fatal, Android önyükleyicisinde system_ext görüntüsünün imza doğrulamasının başarısız olması gibi temel bir hatadır. SDV Secure Mesh, yalnızca kablosuz (OTA) güncelleme nedeniyle Normal sürümünden Fatal sürümüne geçiş yaparsa güncelleme kötü olarak kabul edilir ve ağ, orijinal Normal sürümüne geri döner.
Aşağıdaki bölümlerde durumlar daha ayrıntılı olarak açıklanmaktadır.
Normal
- Sistem başlatma, Hizmet Bulma açısından
SECURE. - Hizmet Bulma yalnızca güvenli bir şekilde başlatılan eşlerle bağlantı kurar. Güvenli bir şekilde başlatılan bir eş, SDV Secure Mesh'in de güvenli olduğu anlamına gelir.
Uyarı
- Bazı doğrulamalar devre dışı bırakıldığından sistem önyüklemesi tehlikeye girmiş olabilir.
- Hizmet Bulma, yalnızca devre dışı bırakılmış doğrulama kümesiyle aynı olan eşlerle bağlantı kurar. Bu sayede, SDV Secure Mesh'teki tüm eşlerin aynı güvenlik özelliklerini paylaşması sağlanır.
- Yerel hatalar veya devre dışı bırakılan özellikler nedeniyle eşler arası başlatmanın başarılı olup olmadığı doğrulanamıyor.
- Geliştirme ortamı veya durumu dışında bu durumun aşağıdaki etkileri vardır:
- Kullanıcı verileri kullanılamıyor olmalıdır. Yani, SDV Secure Mesh üzerinden iletişimle iletilmemeli veya etkilenmemelidir.
- Ağ bu durumdayken yalnızca sağlama akışları için gereken hizmetler kullanılabilir olmalıdır.
Kritik
- Sistemin başlatma aşamalarında kritik bir hata oluştu.
- Hizmet Bulma aracısının bir ağ oluşturmasını engelleyen en az bir temel arıza veya hata vardır. Yerel hizmetler, uzak hizmetlerle iletişim kuramıyor.
- Sistem başlatma, Hizmet Bulma açısından
UNSECURE.
SDV Başlatma Modu
SDV Başlatma Modu'nun iki olası değeri vardır: LOCKED ve UNLOCKED. Hizmet Bulma ağı oluşturma için LOCKED, doğrulama hatalarının kritik olduğunu, UNLOCKED ise kritik olmadığını gösterir.
| Koşul | SDV Başlatma Modu | |
|---|---|---|
UNLOCKED |
LOCKED |
|
| Yerel VVM güvenilir sertifika deposu boş | Uyarı | Kritik |
| Yerel DICE zinciri eksik | Kritik | Kritik |
| Yerel DICE zinciri doğrulama hatası | Uyarı | Kritik |
| Yerel SDV ve AVB modu eşleşmesi | Yerel SDV ve AVB modu eşleşmesi bölümündeki tabloya bakın. | |
| Uzak cihaz modu değeri karşılaştırması | Uzak cihaz modu değeri karşılaştırması bölümündeki tabloya bakın. | |
Uzaktan uds_pubs eşleşme hatası |
Uyarı | Kritik |
| Uzaktan DICE zinciri doğrulama hatası (DICE politikaları kullanılarak) | Uyarı | Kritik |
| Uzak kimlik doğrulama el sıkışması başarısız oldu | Kritik | Kritik |
Yerel SDV ve AVB Modu eşleşmesi
Aşağıdaki tabloda, AVB modu ve SDV Boot Mode'un SDV Secure Mesh davranışını nasıl etkilediği gösterilmektedir. Renkler, AVB belgelerinin Android'e özel entegrasyon bölümünde tanımlandığı gibidir.
| AVB Modu x SDV Başlatma Modu | SDV Başlatma Modu | ||
|---|---|---|---|
UNLOCKED |
LOCKED |
||
AVB LOCKED |
Yeşil | Uyarı | Normal |
| Sarı | Kritik | Kritik | |
AVB UNLOCKED |
Orange | Uyarı | Kritik |
Cihaz modu değeri
DICE zincirinde her CDI sertifikasının bir mod değeri vardır. Bu değer, yapılandırma girişine göre söz konusu katmanın güvenlik durumunu açıklar. SDV spesifikasyonu, cihazdaki tüm yazılımların güvenlik duruşunu ifade etmek için bir Cihaz Modu değeri tanımlar. Bu değer, belirli bir SDV VM'siyle (ör. Android HLOS ve Secure World) ilgili DICE zincirlerindeki tüm CDI aşamalarının mod değerinden elde edilir ve aşağıdaki numaralandırmayı kullanır:
enum DeviceMode {
NotConfigured = 0,
Recovery = 1,
Debug = 2,
Normal = 3,
}
Algoritma
Cihaz modu değerini hesaplamak için kullanılan algoritma şöyledir:
deviceModeöğesiniDeviceMode::Normalolarak belirtin.- Bir SDV sanal makinesiyle ilgili DICE zincirleri listesi olarak
diceChainListdeğerini belirtin. diceChainListiçindeki herdiceChainiçin:diceChainiçinde CDI sertifikaları listesi olarakcdiListbelirtin:cdiListiçindeki hercdiCertiçin:cdiCert.modeile eşleşenDeviceModeolarakcdiDeviceModedeğerini belirtin.deviceModedeğerinimin(deviceMode, cdiDeviceMode)olarak ayarlayın.
- Dönüş
deviceMode.
Uzak cihaz modu değeri karşılaştırması
Hizmet Bulma aracısı yalnızca aynı Cihaz Modu Değerine sahip diğer aracılarla bağlantı kurar.
Cihaz modu değeri, bir ağda farklı güvenlik özelliklerine sahip üyelerin olmasını engeller. Elde edilen ağ, tüm üyeleri arasında tek tip bir güvenlik duruşuna sahiptir.
| Cihaz modu değeri | Uzaktan | ||||
|---|---|---|---|---|---|
| Yapılandırılmadı | Hata ayıkla | Kurtarma | Normal | ||
| Yerel | Yapılandırılmadı | Kritik | Kritik | Kritik | Kritik |
| Hata ayıkla | Kritik | Uyarı | Kritik | Kritik | |
| Kurtarma | Kritik | Kritik | Uyarı | Kritik | |
| Normal | Kritik | Kritik | Kritik | Normal | |
Fabrikada temel hazırlık akışı
Bu, genel anahtar altyapısının kullanılamadığı varsayılan araç montaj hattındaki sağlama akışıdır. Bu akış, Vehicle VM (VVM) Factory Trust veya vvmfactorytrust olarak adlandırılan tek seferlik programlanabilir (OTP) bellekte depolanan 32 baytlık bir değere bağlıdır. Ayarlandığında bu değer, androidboot.sdv.vvmfactorytrust adlı bir parametre olarak çekirdeğe iletilir.
Bir ECU'daki tüm VM'ler aynı SDV önyükleme moduna ve VVM fabrika güvenine sahip olmalıdır.
İlk durum
Tüm ECU'lar başlangıçta UNLOCKED modunda SDV önyükleme modundadır. vvmtruststore üzerinde bulunan uds_certs dışındaki tüm ECU'lar boş VVM Fabrika Güvenine ve Araç VM Güven Deposu'na sahiptir. Şekil 1'de, iki ayrı ECU'ya (ECU-0 ve ECU-1) dağıtılmış üç SDV VM'sinin (VM-A, VM-B ve VM-C) bulunduğu bir örnek gösterilmektedir:
Şekil 1. Fabrika hazırlığı, ilk durum.
1. adım: sdv_provisioning_tool'u çalıştırın
Tüm ECU'lardaki tüm sanal makineleri başlatın.
Her sanal makinede sdv_provisioning_tool komutunu çalıştırın.
- Araç, yerel hizmet keşfi aracısıyla iletişim kurar ve SDV Secure Mesh'in tamamlandığını ve aracının UDS ortak anahtarlarının listesini
/vvmtruststore/uds_pubskonumuna yazdığını bildirmesini bekler. - Bu durumda araç, yeni yazılan
/vvmtruststore/uds_pubsöğesinin karma değerini alır ve bunu çıkış olarak verir.
Şekil 2. Fabrika hazırlığı, 1. adım.
2. adım: VVM Factory Trust'ı yazın
Her ECU'nun bir sanal makinesinde:
- Önceki adımda
sdv_provisioning_tooltarafından oluşturulan/vvmtruststore/uds_pubskarmasını VVM Factory Trust'a yazın. Bu yazma işleminin nasıl yapıldığı, OEM'ye veya tedarikçi firmaya özeldir ve bu spesifikasyonun kapsamı dışındadır.
Şekil 3. Fabrikada hazırlama, 2. adım.
3. adım: SDV Boot Mode locked (SDV başlatma modu kilitli) seçeneğini kullanarak yeniden başlatın.
LOCKED modunda SDV önyükleme modundaki tüm ECU'lardaki tüm VM'leri yeniden başlatın.
Hizmet Bulma aracısı, bu dosyanın karması VVM Factory Trust ile eşleştiği için uds_pubs içinde listelenen UDS ortak anahtarlarına sahip ECU'lardaki sanal makinelere güvenir.
ECU'lar birlikte sağlandığından kalıcı olarak birbirine bağlıdır ve DICE zinciri doğrulama açısından tek bir donanım parçası olarak kabul edilebilir.
Şekil 4. Fabrikada sağlama, 3. adım
Parça değiştirme akışı
Bu, yetkili bir araba tamir atölyesinde veya servisinde temel hazırlık akışıdır. Arızalı bir ECU'nun, temel hazırlığı yapılmamış yeni bir ECU ile değiştirilmesi gerekir.
Bu akış, vvmconfig içinde belirtilen kök yetkili tarafından doğrudan veya bazı ara yetkili zincirleri aracılığıyla dolaylı olarak verilen UDS sertifikalarına bağlıdır.
İlk durum
Tüm sanal makineler zaten fabrikada hazırlanmış ve LOCKED modunda SDV Boot Mode'da çalışıyor.
Şekil 5'te, ECU-0'ın arızalı olduğu ve değiştirilmesi gerektiği bir örnek gösterilmektedir:
Şekil 5. Parça değişimi, ilk durum.
1. adım: Yeni ECU'yu takın
Boş ve hazırlanmamış durumda olan yeni ECU'yu takın.
Şekil 6'da, ECU-2'ye (yedek ECU) güç verildiğinde iki ayrı SDV Secure Mesh vardır: biri Warning durumunda, diğeri ise Normal durumundadır. Her iki SDV Secure Mesh de eksik.
Şekil 6. Parça değişimi, 1. adım.
2. adım: SDV Boot Mode kilidi açıkken yeniden başlatın
UNLOCKED modunda SDV önyükleme modundaki tüm ECU'ların tüm sanal makinelerini yeniden başlatın.
Şekil 7'de VM-B ve VM-C, tamamlanmış olan Warning SDV Secure Mesh'e katılıyor.
Şekil 7. Parça değişimi, 2. adım.
3. adım: sdv_provisioning_tool'u çalıştırın
Her sanal makinede sdv_provisioning_tool komutunu çalıştırın.
Araç, yerel hizmet keşfi aracısıyla iletişim kurar ve SDV Secure Mesh'in tamamlandığını ve aracının UDS herkese açık anahtar listesini /vvmtruststore/uds_pubs konumuna yazdığını bildirmesini bekler.
Bu durumda araç, yeni yazılan /vvmtruststore/uds_pubs öğesinin karma değerini alır ve bunu çıkış olarak verir ancak bu karma değer bu akışta kullanılmaz.
Şekil 8. Parça değişimi, 3. adım.
4. adım: UDS sertifikalarını yükleyin
- Rastgele bir SDV VM'sinden
/vvmtruststore/uds_pubsçıkarın. Aynı SDV Secure Mesh'teki tüm sanal makineler için aynı olduğundan hangisini seçtiğiniz önemli değildir. /vvmtruststore/uds_pubsiçinde listelenen tüm UDS ortak anahtarları için sağlama sertifikalarını alın.- Bu adımda genellikle çıkarılan UDS ortak anahtarlarının (veya
/vvmtruststore/uds_pubsdosyasının) uzaktan sağlama sunucusuna gönderilmesi gerekir. Sunucu, ECU üretimi sırasında oluşturulan bilinen UDS ortak anahtarlarının veritabanına karşı alınan ortak anahtarları kontrol ederek önceden var olan sertifikaları alır veya yenilerini oluşturur.
- Bu adımda genellikle çıkarılan UDS ortak anahtarlarının (veya
- Her bir SDV VM'sinin
/vvmtruststore/uds_certsdeğerini yazın.
Şekil 9. Parça değişimi, 4. adım.
5. adım: SDV Boot Mode locked (SDV başlatma modu kilitli) seçeneğini kullanarak yeniden başlatın
SDV önyükleme modundaki tüm sanal makineleri LOCKED modunda yeniden başlatın.
SDV Secure Mesh tamamlanmamışsa 2. adıma geri dönün.
Şekil 10. Parça değişimi, 5. adım.