Kaan
New member
Android CAN Bus Nedir? Otomobillerde Android ile CAN Haberleşmesinin Bilimsel Analizi
[color=]Android CAN Bus Nedir? Otomobillerde Android ile CAN Haberleşmesinin Bilimsel Analizi[/color]
Bir otomobilin gösterge panelinde motor devrini, yakıt tüketimini veya motor sıcaklığını birkaç saniye içinde görebilmek bana her zaman ilginç gelmiştir. Daha da ilginç olanı, bu bilgilerin aslında aracın farklı elektronik kontrol üniteleri arasında sürekli dolaşan sayısal mesajlardan oluşmasıdır. Android işletim sistemli bir multimedya cihazı bu mesajları okuyabilir mi? Okuyabiliyorsa bunu doğrudan mı yapar, yoksa arada özel bir donanım mı gerekir? “Android CAN Bus” kavramını araştırmaya başladığımızda, aslında yalnızca bir Android uygulamasından değil; otomotiv elektroniği, gerçek zamanlı haberleşme, gömülü sistemler, veri güvenliği ve insan-makine etkileşiminin kesiştiği oldukça geniş bir alandan söz ettiğimizi görüyoruz.
Bu nedenle konuyu sadece “Android teyp CANBUS destekliyor” şeklindeki günlük otomobil forumu ifadeleriyle sınırlamamak gerekiyor. CAN'ın teknik yapısını, Android'in bu ağdaki konumunu, OBD-II ile ilişkisini, veri güvenliği sorunlarını ve gerçek dünyadaki kullanım senaryolarını birlikte incelemek daha anlamlı. Özellikle farklı araçlarda kullanılan CAN mesajlarının aynı anlama gelmediğini bilmek, internetteki birçok yanlış anlaşılmayı ortadan kaldırıyor.
[color=]CAN Bus Tam Olarak Nedir?[/color]
CAN, “Controller Area Network” ifadesinin kısaltmasıdır. Temel amacı, otomobil içerisindeki elektronik kontrol ünitelerinin (ECU) birbirleriyle güvenilir ve gerçek zamanlı biçimde haberleşmesini sağlamaktır. ISO 11898 standardı CAN'ı, dağıtık gerçek zamanlı kontrol ve çoklama amacıyla kullanılan seri haberleşme protokolü olarak tanımlar. Klasik CAN'da çerçeve başına veri alanı 8 byte'a kadar çıkabilirken CAN FD daha uzun veri alanlarına ve daha yüksek veri hızlarına izin verir.
Buradaki önemli nokta, CAN'ın klasik anlamda bir “bilgisayar ağı” gibi düşünülmemesidir. Ethernet'te olduğu gibi “bu veri şu bilgisayara gitsin” mantığından ziyade, mesajların tanımlayıcıları üzerinden önceliklendirildiği yayın tabanlı bir yapı vardır. Bir ECU veri yayınladığında, aynı CAN hattındaki diğer düğümler bu mesajı görebilir; hangi düğümün bu mesajı kullanacağı sistem tasarımına bağlıdır.
Örneğin motor kontrol ünitesi belirli bir CAN mesajında motor devri bilgisini yayınlıyor olabilir. Gösterge paneli bu mesajı kullanarak devir saatini güncellerken, başka bir kontrol ünitesi aynı bilgiyi farklı bir hesaplama için değerlendirebilir.
Bu mimarinin önemli avantajlarından biri kablolama ve haberleşme yükünün etkin yönetilmesidir. Ancak CAN'ın güvenlik açısından tasarlanma amacı başlangıçta modern internet bağlantılı araçların karşı karşıya olduğu siber tehditleri çözmek değildi. Hakemli bir incelemede Bozdal ve arkadaşları, CAN'ın yaygın kullanılmasına karşın şifreleme ve kimlik doğrulama gibi modern siber güvenlik mekanizmalarının temel protokolde bulunmamasını önemli bir zayıflık olarak değerlendiriyor.
[color=]Peki Android'in CAN Bus ile İlgisi Nerede Başlıyor?[/color]
Android'in kendisi CAN Bus değildir. Android, bir işletim sistemidir; CAN ise otomotiv haberleşme protokolüdür. Dolayısıyla “Android CANBUS” ifadesi teknik açıdan genellikle Android tabanlı bir cihazın otomobilin CAN ağıyla haberleşmesini sağlayan donanım ve yazılım bütününü ifade eder.
Burada tipik mimari kabaca şöyledir:
Araç CAN ağı → CAN transceiver/kontrolcü → arayüz veya gateway → Android sistemi → uygulama
Android cihaz doğrudan kabloyu takıp CAN mesajlarını anlamaya başlamaz. Öncelikle elektriksel CAN sinyallerini okuyabilecek uygun bir CAN arayüzüne ihtiyaç vardır. Bu arayüz, ham CAN çerçevelerini Android tarafında kullanılabilir hale getirebilir.
Örneğin Android tabanlı bir multimedya sisteminde direksiyon üzerindeki ses açma-kapama tuşuna bastığınızda, aracın CAN ağında belirli bir mesaj oluşabilir. Android cihazın CAN arayüzü bu mesajı alır, yazılım mesajı yorumlar ve Android uygulamasına “ses artırma komutu” olarak aktarır.
Benzer şekilde kapı durumu, aydınlatma, geri vites, park sensörü veya klima bilgileri gibi veriler de uygun araç protokolü biliniyorsa Android arayüzünde kullanılabilir.
Ancak burada kritik bir ayrım var: CAN mesajını görmek ile mesajın ne anlama geldiğini bilmek aynı şey değildir.
Bir veri çerçevesinin örneğin 0x123 kimlik numarası taşıması, bunun her otomobilde aynı veriyi temsil ettiği anlamına gelmez. Mesaj kimlikleri, bit konumları, ölçeklendirme katsayıları ve sinyal anlamları üreticiye, modele, model yılına ve bazen donanım seviyesine göre değişebilir.
[color=]OBD-II ile Android CAN Bus Aynı Şey mi?[/color]
Forumlarda en sık karşılaşılan karışıklıklardan biri de CAN Bus ile OBD-II'nin aynı sistem sanılmasıdır.
OBD-II öncelikle araç teşhis erişimini tanımlayan bir çerçevedir. Araçtaki OBD soketi üzerinden çeşitli teşhis verilerine ulaşılabilir. CAN ise bu iletişimin altında kullanılan protokollerden biri olabilir.
Dolayısıyla Android telefon + OBD adaptörü şeklindeki bir sistemde genellikle şu yapı vardır:
Android telefon → Bluetooth/Wi-Fi/USB → OBD arayüzü → araç teşhis ağı
2013 yılında yayımlanan hakemli bir çalışmada Yang ve arkadaşları, hibrit elektrikli araçlarda OBD-II ve Android tabanlı akıllı telefon kullanarak CAN Bus veri izleme ve teşhis sistemi geliştirmiştir. Çalışmanın amacı, araç verilerinin Android ortamında izlenmesi ve teşhis bilgilerinin kullanıcıya aktarılmasıdır.
Bu çalışma önemli çünkü Android'in otomotiv verileriyle çalışmasının yalnızca ticari multimedya cihazlarıyla sınırlı olmadığını gösteriyor. Araştırmacılar Android'i veri toplama, görüntüleme ve uzaktan izleme açısından bir kullanıcı platformu olarak değerlendirmiştir.
Günümüzde ise benzer yaklaşımlar daha gelişmiş telemetri sistemlerine dönüşebiliyor. Yakın tarihli bir çalışmada Android tabanlı uygulamanın CANable arayüzünden gelen SLCAN çerçevelerini işlediği, UDS tabanlı teşhis yanıtlarını analiz ettiği ve motor devri, araç hızı, gaz pedalı konumu, motor yükü ve sıcaklık gibi parametreleri kaydettiği raporlanmıştır.
[color=]Android CAN Bus Sistemleri Nasıl Araştırılır?[/color]
Bilimsel açıdan bakıldığında “CAN Bus çalışıyor mu?” sorusunun cevabı yalnızca ekranda bir değerin görünmesiyle verilmemelidir.
Araştırma metodolojisi birkaç aşamadan oluşabilir.
İlk aşamada fiziksel CAN hattından veri toplanır. Araç çalışırken belirli zaman aralıklarında CAN çerçeveleri kaydedilir. Daha sonra mesaj kimlikleri, frekansları, veri alanları ve değişim davranışları incelenir.
İkinci aşamada bilinen bir fiziksel olay ile CAN mesajı arasında korelasyon aranabilir. Örneğin motor devri değiştirildiğinde hangi mesajların değiştiği istatistiksel olarak incelenebilir.
Üçüncü aşamada ham verinin mühendislik değerine dönüştürülmesi gerekir. Bir CAN mesajındaki 8 bitlik alanın doğrudan “80 km/s” anlamına geldiğini varsaymak bilimsel açıdan doğru değildir. Ölçeklendirme, offset, signed/unsigned yapı ve bit sıralaması gibi parametrelerin doğrulanması gerekir.
Dördüncü aşamada sonuçların tekrarlanabilirliği değerlendirilmelidir. Aynı koşullarda tekrar tekrar yapılan ölçümlerde benzer mesaj davranışları gözleniyor mu? Farklı sürüş koşullarında sonuç değişiyor mu?
Bu yaklaşım, akademik literatürde kullanılan deneysel ve simülasyon tabanlı yöntemlerle de uyumludur. CAN güvenliği üzerine yapılan sistematik bir literatür incelemesinde araştırmaların önemli bölümünün simülasyonu doğrulama yöntemi olarak kullandığı, buna karşılık biçimsel doğrulamanın daha az ele alındığı belirtilmektedir.
[color=]Android'in CAN Ağına Doğrudan Bağlanması Neden Problemli?[/color]
Android, genel amaçlı bir işletim sistemi olarak kullanıcı arayüzü, uygulamalar, multimedya ve bağlantı özelliklerinde oldukça güçlüdür. Fakat otomobilin kritik kontrol fonksiyonları açısından mesele sadece işlem gücü değildir.
Otomotiv sistemlerinde zamanlama öngörülebilirliği kritik olabilir. Fren, motor yönetimi veya güvenlik açısından önemli bir sistemin “mesajı biraz geç işledim” demesi, sıradan bir mobil uygulamanın gecikmesinden tamamen farklı sonuçlar doğurabilir.
Sinha ve arkadaşlarının 2020 tarihli ACM çalışması tam olarak bu probleme odaklanmaktadır. Araştırmacılar Android'in CAN tabanlı otomotiv alt sistemleriyle doğrudan çalışmasının gerçek zamanlılık ve izolasyon açısından sorunlar oluşturabileceğini ele almış; Android ile güvenlik ve zamanlama açısından kritik otomotiv servisleri arasına gerçek zamanlı bir işletim sistemi katmanı yerleştiren bir mimari önermiştir. Çalışmada Android 8.1'in sanallaştırılmış bir ortamda çalıştırıldığı ve CAN erişiminin ayrı bir gerçek zamanlı sistem üzerinden filtrelenmesi tasarlanmıştır.
Bu ayrım bence konunun en önemli noktalarından biri. Android'in otomobilde kullanılması, Android'in motor kontrol ünitesinin yerine geçmesi anlamına gelmez. Daha güvenli mimari yaklaşım, Android'i kullanıcı deneyimi ve bilgi erişimi katmanında tutup kritik kontrol işlevlerini daha deterministik sistemlere bırakmaktır.
[color=]Android Teyplerde CANBUS Adaptörü Neden Kullanılıyor?[/color]
Piyasadaki Android tabanlı araç multimedya sistemlerinde “CANBUS decoder” veya benzeri isimlerle satılan modüllerin temel amacı çoğu zaman Android cihaz ile aracın elektronik mimarisi arasında bir çeviri katmanı oluşturmaktır.
Bu modül sayesinde araçtan gelen belirli sinyaller Android sisteminin anlayabileceği komutlara dönüştürülebilir.
Örneğin:
• Direksiyon kumandaları
• Kontak durumu
• Geri vites bilgisi
• Far durumu
• Kapı bilgileri
• Park sensörü bilgileri
• Orijinal araç ekranı verileri
• Ses sistemiyle ilgili bazı kontrol komutları
gibi fonksiyonlar desteklenebilir.
Ancak “CANBUS decoder var” ifadesi bütün araç fonksiyonlarının destekleneceği anlamına gelmez. Adaptörün hangi mesajları okuyabildiği, araç modeli ve kullanılan gateway mimarisi belirleyicidir.
Özellikle son yıllarda araçlarda farklı haberleşme ağlarının gateway üzerinden birbirine bağlanması bu durumu daha karmaşık hale getirmiştir. Dolayısıyla iki otomobil aynı marka olsa bile farklı model yıllarında aynı Android cihazın farklı davranması şaşırtıcı değildir.
[color=]CAN Bus Güvenliği: Android Sistemi Yeni Bir Risk Alanı mı?[/color]
Burada konunun daha ciddi bir tarafı ortaya çıkıyor.
CAN ağı başlangıçta güvenilir araç içi haberleşmeye odaklanan bir mimari olarak tasarlanmıştır. Günümüzde ise otomobiller Bluetooth, Wi-Fi, hücresel bağlantı, USB, akıllı telefon entegrasyonu ve internet servisleriyle dış dünyaya çok daha fazla bağlanıyor.
Dolayısıyla Android tabanlı bir multimedya sisteminin CAN ağına erişmesi, teorik olarak otomobilin saldırı yüzeyini de genişletebilir.
Bozdal ve arkadaşlarının kapsamlı incelemesi, CAN'ın kimlik doğrulama ve şifreleme eksikliklerinin özellikle modern bağlantılı araçlarda önemli bir güvenlik problemi oluşturduğunu vurguluyor. Araştırmacılar ayrıca geçmişte gerçekleştirilen deneysel saldırıları ve saldırılara karşı ağ segmentasyonu, şifreleme ve saldırı tespit sistemleri gibi yaklaşımları inceliyor.
Daha sonraki araştırmalar da problemin ortadan kalkmadığını gösteriyor. 2023 tarihli bir Computers & Security çalışması, CAN FD için mesaj kimlik doğrulaması ve şifreleme temelli bir güvenlik mimarisi önermiş ve CAN trafiğinin istatistiksel analizini kullanmıştır.
2024 yılında yayımlanan CANdid çalışması ise ECU'ların güvenlik mekanizmalarında kullanılan zayıf rastgelelik kaynaklarının istismar edilerek CAN üzerinden kritik ECU'lara erişimin mümkün olabileceğini deneysel olarak incelemiştir.
Bu yüzden internette “Android CANBUS ile her şeyi kontrol edebilirsin” şeklindeki ifadeler teknik açıdan fazla basitleştiricidir. Kritik otomotiv fonksiyonlarına erişim söz konusu olduğunda güvenlik, sadece yazılım özelliği değil, fiziksel ve mimari bir tasarım problemidir.
[color=]Kadınların ve Erkeklerin CAN Bus Konusuna Bakışı Gerçekten Farklı mı?[/color]
Bu bölüm özellikle dikkatli ele alınmalı. “Erkekler teknik düşünür, kadınlar duygusal düşünür” şeklindeki kesin bir ayrım bilimsel olarak savunulabilir bir yaklaşım değildir.
Hyde'ın American Psychologist'ta yayımlanan ve 46 meta-analizi değerlendiren çalışması, kadınlar ile erkeklerin psikolojik değişkenlerin büyük bölümünde birbirine düşündüğümüzden daha fazla benzediğini ortaya koyan “gender similarities hypothesis” yaklaşımını desteklemektedir.
Dolayısıyla Android CAN Bus gibi teknik bir konuyu cinsiyete göre iki ayrı zihinsel kategoriye ayırmak doğru olmaz. Buna rağmen kullanıcıların farklı öncelikleri olabileceğini tartışmak değerlidir.
Örneğin veri odaklı yaklaşan bir kullanıcı; CAN mesajlarının frekansına, gecikmesine, hata oranına, veri bütünlüğüne ve protokol yapısına yoğunlaşabilir. Bir başka kullanıcı ise aynı sistemin sürüş güvenliği, sürücünün dikkat yükü, yolcu deneyimi, erişilebilirlik veya aracın günlük kullanımını nasıl değiştirdiğine odaklanabilir.
Bu ikinci bakış açısı “kadınlara özgü” değildir; aynı şekilde ilk yaklaşım da “erkeklere özgü” değildir.
Hatta iyi bir mühendislik çalışması her iki yaklaşımı bir araya getirmelidir. Örneğin bir Android ekranının sürücüye çok fazla veri sunması teknik olarak başarılı olabilir; fakat sürücünün dikkatini dağıtıyorsa insan faktörleri açısından başarısız sayılabilir. Tersine, son derece kullanışlı bir kullanıcı arayüzü CAN mesajlarının güvenilirliği doğrulanmadan hazırlanmışsa mühendislik açısından eksik kalır.
Gerçek anlamda kapsayıcı tasarım, insanların cinsiyetlerinden hareketle varsayım yapmak yerine farklı kullanıcı deneyimlerini ölçmeyi gerektirir.
[color=]Android CAN Bus Sistemlerinde Deneyim Neden Önemli?[/color]
Bu konuda masa başında yapılan araştırma ile gerçek araç üzerinde yapılan çalışma arasında ciddi fark vardır.
Gerçek araçta ölçüm yapan bir araştırmacı, aynı mesajın motor çalışırken, kontak açıkken, araç hareket halindeyken veya farklı elektronik sistemler aktifken nasıl değiştiğini gözlemleyebilir.
Örneğin yakın tarihli bir Android tabanlı CAN telemetri çalışmasında gerçek bir Seat Ibiza 1.6 TDI üzerinden motor devri, araç hızı, gaz pedalı konumu, emme basıncı, motor yükü ve sıcaklık gibi parametrelerin izlenip kaydedildiği raporlanmıştır. Veriler zaman damgası ve ham CAN bilgileriyle saklanmış, daha sonra MATLAB ortamında analiz edilmiştir.
Bu tür çalışmaların değeri, “uygulama çalışıyor” demekten çok daha fazlasıdır. Çünkü ham verinin fiziksel dünyadaki karşılığını doğrulamaya çalışırlar.
Örneğin uygulama ekranda 2.500 rpm gösteriyorsa bunun gerçekten motorun yaklaşık 2.500 devir/dakika çalışmasıyla eşleştiği bağımsız bir ölçümle doğrulanmalıdır.
[color=]Android CAN Bus Gelecekte Nereye Gidiyor?[/color]
CAN'ın geleceğini yalnızca klasik CAN üzerinden düşünmek de yeterli değil. CAN FD, daha büyük veri alanları ve daha yüksek veri hızları sağlayarak klasik CAN'ın bazı kapasite sınırlamalarını aşmayı hedefliyor. ISO 11898-1:2015 standardı klasik CAN ile CAN FD çerçeve yapılarını birlikte tanımlamış; ISO'nun güncel kayıtlarında ise 2024 sürümünün daha yeni versiyon olarak yayımlandığı görülüyor.
Bunun Android açısından anlamı şu olabilir: araçlardaki veri miktarı ve bağlantılı servisler arttıkça, Android benzeri yüksek seviyeli işletim sistemlerinin otomotiv mimarisindeki rolü de büyüyebilir. Fakat bu büyümenin güvenlik, gerçek zamanlılık ve izolasyon sorunlarını beraberinde getirmemesi gerekiyor.
Geleceğin otomobilinde Android'in rolünü yalnızca “büyük ekranlı teyp” olarak düşünmek giderek yetersiz hale geliyor. Android; navigasyon, multimedya, telemetri, kullanıcı profilleri, bağlantılı servisler ve araç verilerinin görselleştirilmesi açısından güçlü bir platform olabilir. Buna karşılık güvenlik-kritik kontrol katmanları daha kontrollü ve deterministik mimarilerle ayrıştırılmalıdır.
[color=]Sonuç: Android CAN Bus Bir Özellikten Çok Bir Sistem Mimarisi Meselesidir[/color]
“Android CAN Bus nedir?” sorusunun en kısa teknik cevabı şudur: Android işletim sistemli bir cihazın, uygun CAN arayüzleri ve yazılım katmanları üzerinden otomobilin CAN tabanlı haberleşme sistemindeki belirli verileri okuyabilmesi veya belirli komutları aktarabilmesidir.
Fakat gerçek cevap bundan daha kapsamlıdır.
CAN; ECU'ların haberleşmesini sağlayan otomotiv odaklı bir ağ protokolüdür. Android ise bu ağın kendisi değil, onunla bir arayüz veya gateway üzerinden iletişim kurabilen yüksek seviyeli bir işletim sistemidir. OBD-II, CAN ve Android arasındaki farkların bilinmesi bu nedenle temel önem taşır.
Bilimsel literatür bize üç önemli sonuç gösteriyor: Birincisi, Android gerçek araç verilerinin izlenmesi ve teşhisinde kullanılabilecek güçlü bir platformdur. İkincisi, Android'in güvenlik-kritik otomotiv sistemlerine doğrudan ve kontrolsüz biçimde bağlanması gerçek zamanlılık ve güvenlik açısından sorun yaratabilir. Üçüncüsü, CAN'ın temel güvenlik mimarisi modern bağlantılı araçların tehdit modelini tek başına karşılamaya yetmeyebilir.
Bu nedenle konuya meraklı biri için asıl araştırma sorusu belki de “Android teyp CANBUS destekliyor mu?” değil, “Android cihaz aracın hangi CAN mesajlarına, hangi donanım üzerinden, hangi yetkilerle ve hangi güvenlik sınırları içerisinde erişebiliyor?” olmalı.
Bir başka ilginç soru da şu: Bir Android cihazın araçtan onlarca farklı parametreyi gerçek zamanlı göstermesi gerçekten daha iyi bir kullanıcı deneyimi midir, yoksa sürücüye gereğinden fazla veri sunarak insan faktörleri açısından yeni bir problem mi yaratır?
Ve belki en önemli tartışma noktası: Otomobiller giderek daha fazla yazılımla tanımlanırken, CAN Bus gibi onlarca yıllık iletişim teknolojilerinin güvenlik mimarisini yeni nesil Android tabanlı sistemlerle nasıl yeniden tasarlamak gerekiyor?
Bu soruların cevapları yalnızca otomotiv mühendislerinin değil; yazılım geliştiricilerin, siber güvenlik araştırmacılarının, insan-makine etkileşimi uzmanlarının ve gerçek kullanıcıların birlikte çalışmasını gerektiriyor. Android CAN Bus konusu bu yüzden basit bir multimedya özelliğinden çok, otomobilin mekanik bir makineden karmaşık ve bağlantılı bir siber-fiziksel sisteme dönüşümünün küçük ama oldukça önemli bir örneği olarak değerlendirilebilir.
[color=]Kaynaklar ve bilimsel çalışmalar[/color]
1. ISO 11898-1:2015, Road vehicles - Controller area network (CAN) - Part 1: Data link layer and physical signalling. ISO.
2. Bozdal, M., Samie, M., Aslam, S., & Jennions, I. (2020). Evaluation of CAN Bus Security Challenges. Sensors, 20(8), 2364.
3. Yang, Y., Chen, B., Su, L., & Qin, D. (2013). Research and Development of Hybrid Electric Vehicles CAN-Bus Data Monitor and Diagnostic System through OBD-II and Android-Based Smartphones.
4. Sinha, S., Golchin, A., Einstein, C., & West, R. (2020). A Paravirtualized Android for Next Generation Interactive Automotive Systems. ACM HotMobile.
5. Cybersecurity attacks on CAN bus based vehicles: a review and open challenges (2022). Library Hi Tech.
6. de Andrade, R. ve ark. (2023). Security architecture for automotive communication networks with CAN FD. Computers & Security, 129, 103203.
7. Hyde, J. S. (2005). The Gender Similarities Hypothesis. American Psychologist, 60(6), 581–592.
Kaynakları Metin İçinde EşleştirKaynakça Biçimini Tutarlılaştır
Kaynakları Metin İçinde Eşleştir
Kaynakça Biçimini Tutarlılaştır
Pratik Kullanım Sınırlarını Derinleştir
[color=]Android CAN Bus Nedir? Otomobillerde Android ile CAN Haberleşmesinin Bilimsel Analizi[/color]
Bir otomobilin gösterge panelinde motor devrini, yakıt tüketimini veya motor sıcaklığını birkaç saniye içinde görebilmek bana her zaman ilginç gelmiştir. Daha da ilginç olanı, bu bilgilerin aslında aracın farklı elektronik kontrol üniteleri arasında sürekli dolaşan sayısal mesajlardan oluşmasıdır. Android işletim sistemli bir multimedya cihazı bu mesajları okuyabilir mi? Okuyabiliyorsa bunu doğrudan mı yapar, yoksa arada özel bir donanım mı gerekir? “Android CAN Bus” kavramını araştırmaya başladığımızda, aslında yalnızca bir Android uygulamasından değil; otomotiv elektroniği, gerçek zamanlı haberleşme, gömülü sistemler, veri güvenliği ve insan-makine etkileşiminin kesiştiği oldukça geniş bir alandan söz ettiğimizi görüyoruz.
Bu nedenle konuyu sadece “Android teyp CANBUS destekliyor” şeklindeki günlük otomobil forumu ifadeleriyle sınırlamamak gerekiyor. CAN'ın teknik yapısını, Android'in bu ağdaki konumunu, OBD-II ile ilişkisini, veri güvenliği sorunlarını ve gerçek dünyadaki kullanım senaryolarını birlikte incelemek daha anlamlı. Özellikle farklı araçlarda kullanılan CAN mesajlarının aynı anlama gelmediğini bilmek, internetteki birçok yanlış anlaşılmayı ortadan kaldırıyor.
[color=]CAN Bus Tam Olarak Nedir?[/color]
CAN, “Controller Area Network” ifadesinin kısaltmasıdır. Temel amacı, otomobil içerisindeki elektronik kontrol ünitelerinin (ECU) birbirleriyle güvenilir ve gerçek zamanlı biçimde haberleşmesini sağlamaktır. ISO 11898 standardı CAN'ı, dağıtık gerçek zamanlı kontrol ve çoklama amacıyla kullanılan seri haberleşme protokolü olarak tanımlar. Klasik CAN'da çerçeve başına veri alanı 8 byte'a kadar çıkabilirken CAN FD daha uzun veri alanlarına ve daha yüksek veri hızlarına izin verir.
Buradaki önemli nokta, CAN'ın klasik anlamda bir “bilgisayar ağı” gibi düşünülmemesidir. Ethernet'te olduğu gibi “bu veri şu bilgisayara gitsin” mantığından ziyade, mesajların tanımlayıcıları üzerinden önceliklendirildiği yayın tabanlı bir yapı vardır. Bir ECU veri yayınladığında, aynı CAN hattındaki diğer düğümler bu mesajı görebilir; hangi düğümün bu mesajı kullanacağı sistem tasarımına bağlıdır.
Örneğin motor kontrol ünitesi belirli bir CAN mesajında motor devri bilgisini yayınlıyor olabilir. Gösterge paneli bu mesajı kullanarak devir saatini güncellerken, başka bir kontrol ünitesi aynı bilgiyi farklı bir hesaplama için değerlendirebilir.
Bu mimarinin önemli avantajlarından biri kablolama ve haberleşme yükünün etkin yönetilmesidir. Ancak CAN'ın güvenlik açısından tasarlanma amacı başlangıçta modern internet bağlantılı araçların karşı karşıya olduğu siber tehditleri çözmek değildi. Hakemli bir incelemede Bozdal ve arkadaşları, CAN'ın yaygın kullanılmasına karşın şifreleme ve kimlik doğrulama gibi modern siber güvenlik mekanizmalarının temel protokolde bulunmamasını önemli bir zayıflık olarak değerlendiriyor.
[color=]Peki Android'in CAN Bus ile İlgisi Nerede Başlıyor?[/color]
Android'in kendisi CAN Bus değildir. Android, bir işletim sistemidir; CAN ise otomotiv haberleşme protokolüdür. Dolayısıyla “Android CANBUS” ifadesi teknik açıdan genellikle Android tabanlı bir cihazın otomobilin CAN ağıyla haberleşmesini sağlayan donanım ve yazılım bütününü ifade eder.
Burada tipik mimari kabaca şöyledir:
Araç CAN ağı → CAN transceiver/kontrolcü → arayüz veya gateway → Android sistemi → uygulama
Android cihaz doğrudan kabloyu takıp CAN mesajlarını anlamaya başlamaz. Öncelikle elektriksel CAN sinyallerini okuyabilecek uygun bir CAN arayüzüne ihtiyaç vardır. Bu arayüz, ham CAN çerçevelerini Android tarafında kullanılabilir hale getirebilir.
Örneğin Android tabanlı bir multimedya sisteminde direksiyon üzerindeki ses açma-kapama tuşuna bastığınızda, aracın CAN ağında belirli bir mesaj oluşabilir. Android cihazın CAN arayüzü bu mesajı alır, yazılım mesajı yorumlar ve Android uygulamasına “ses artırma komutu” olarak aktarır.
Benzer şekilde kapı durumu, aydınlatma, geri vites, park sensörü veya klima bilgileri gibi veriler de uygun araç protokolü biliniyorsa Android arayüzünde kullanılabilir.
Ancak burada kritik bir ayrım var: CAN mesajını görmek ile mesajın ne anlama geldiğini bilmek aynı şey değildir.
Bir veri çerçevesinin örneğin 0x123 kimlik numarası taşıması, bunun her otomobilde aynı veriyi temsil ettiği anlamına gelmez. Mesaj kimlikleri, bit konumları, ölçeklendirme katsayıları ve sinyal anlamları üreticiye, modele, model yılına ve bazen donanım seviyesine göre değişebilir.
[color=]OBD-II ile Android CAN Bus Aynı Şey mi?[/color]
Forumlarda en sık karşılaşılan karışıklıklardan biri de CAN Bus ile OBD-II'nin aynı sistem sanılmasıdır.
OBD-II öncelikle araç teşhis erişimini tanımlayan bir çerçevedir. Araçtaki OBD soketi üzerinden çeşitli teşhis verilerine ulaşılabilir. CAN ise bu iletişimin altında kullanılan protokollerden biri olabilir.
Dolayısıyla Android telefon + OBD adaptörü şeklindeki bir sistemde genellikle şu yapı vardır:
Android telefon → Bluetooth/Wi-Fi/USB → OBD arayüzü → araç teşhis ağı
2013 yılında yayımlanan hakemli bir çalışmada Yang ve arkadaşları, hibrit elektrikli araçlarda OBD-II ve Android tabanlı akıllı telefon kullanarak CAN Bus veri izleme ve teşhis sistemi geliştirmiştir. Çalışmanın amacı, araç verilerinin Android ortamında izlenmesi ve teşhis bilgilerinin kullanıcıya aktarılmasıdır.
Bu çalışma önemli çünkü Android'in otomotiv verileriyle çalışmasının yalnızca ticari multimedya cihazlarıyla sınırlı olmadığını gösteriyor. Araştırmacılar Android'i veri toplama, görüntüleme ve uzaktan izleme açısından bir kullanıcı platformu olarak değerlendirmiştir.
Günümüzde ise benzer yaklaşımlar daha gelişmiş telemetri sistemlerine dönüşebiliyor. Yakın tarihli bir çalışmada Android tabanlı uygulamanın CANable arayüzünden gelen SLCAN çerçevelerini işlediği, UDS tabanlı teşhis yanıtlarını analiz ettiği ve motor devri, araç hızı, gaz pedalı konumu, motor yükü ve sıcaklık gibi parametreleri kaydettiği raporlanmıştır.
[color=]Android CAN Bus Sistemleri Nasıl Araştırılır?[/color]
Bilimsel açıdan bakıldığında “CAN Bus çalışıyor mu?” sorusunun cevabı yalnızca ekranda bir değerin görünmesiyle verilmemelidir.
Araştırma metodolojisi birkaç aşamadan oluşabilir.
İlk aşamada fiziksel CAN hattından veri toplanır. Araç çalışırken belirli zaman aralıklarında CAN çerçeveleri kaydedilir. Daha sonra mesaj kimlikleri, frekansları, veri alanları ve değişim davranışları incelenir.
İkinci aşamada bilinen bir fiziksel olay ile CAN mesajı arasında korelasyon aranabilir. Örneğin motor devri değiştirildiğinde hangi mesajların değiştiği istatistiksel olarak incelenebilir.
Üçüncü aşamada ham verinin mühendislik değerine dönüştürülmesi gerekir. Bir CAN mesajındaki 8 bitlik alanın doğrudan “80 km/s” anlamına geldiğini varsaymak bilimsel açıdan doğru değildir. Ölçeklendirme, offset, signed/unsigned yapı ve bit sıralaması gibi parametrelerin doğrulanması gerekir.
Dördüncü aşamada sonuçların tekrarlanabilirliği değerlendirilmelidir. Aynı koşullarda tekrar tekrar yapılan ölçümlerde benzer mesaj davranışları gözleniyor mu? Farklı sürüş koşullarında sonuç değişiyor mu?
Bu yaklaşım, akademik literatürde kullanılan deneysel ve simülasyon tabanlı yöntemlerle de uyumludur. CAN güvenliği üzerine yapılan sistematik bir literatür incelemesinde araştırmaların önemli bölümünün simülasyonu doğrulama yöntemi olarak kullandığı, buna karşılık biçimsel doğrulamanın daha az ele alındığı belirtilmektedir.
[color=]Android'in CAN Ağına Doğrudan Bağlanması Neden Problemli?[/color]
Android, genel amaçlı bir işletim sistemi olarak kullanıcı arayüzü, uygulamalar, multimedya ve bağlantı özelliklerinde oldukça güçlüdür. Fakat otomobilin kritik kontrol fonksiyonları açısından mesele sadece işlem gücü değildir.
Otomotiv sistemlerinde zamanlama öngörülebilirliği kritik olabilir. Fren, motor yönetimi veya güvenlik açısından önemli bir sistemin “mesajı biraz geç işledim” demesi, sıradan bir mobil uygulamanın gecikmesinden tamamen farklı sonuçlar doğurabilir.
Sinha ve arkadaşlarının 2020 tarihli ACM çalışması tam olarak bu probleme odaklanmaktadır. Araştırmacılar Android'in CAN tabanlı otomotiv alt sistemleriyle doğrudan çalışmasının gerçek zamanlılık ve izolasyon açısından sorunlar oluşturabileceğini ele almış; Android ile güvenlik ve zamanlama açısından kritik otomotiv servisleri arasına gerçek zamanlı bir işletim sistemi katmanı yerleştiren bir mimari önermiştir. Çalışmada Android 8.1'in sanallaştırılmış bir ortamda çalıştırıldığı ve CAN erişiminin ayrı bir gerçek zamanlı sistem üzerinden filtrelenmesi tasarlanmıştır.
Bu ayrım bence konunun en önemli noktalarından biri. Android'in otomobilde kullanılması, Android'in motor kontrol ünitesinin yerine geçmesi anlamına gelmez. Daha güvenli mimari yaklaşım, Android'i kullanıcı deneyimi ve bilgi erişimi katmanında tutup kritik kontrol işlevlerini daha deterministik sistemlere bırakmaktır.
[color=]Android Teyplerde CANBUS Adaptörü Neden Kullanılıyor?[/color]
Piyasadaki Android tabanlı araç multimedya sistemlerinde “CANBUS decoder” veya benzeri isimlerle satılan modüllerin temel amacı çoğu zaman Android cihaz ile aracın elektronik mimarisi arasında bir çeviri katmanı oluşturmaktır.
Bu modül sayesinde araçtan gelen belirli sinyaller Android sisteminin anlayabileceği komutlara dönüştürülebilir.
Örneğin:
• Direksiyon kumandaları
• Kontak durumu
• Geri vites bilgisi
• Far durumu
• Kapı bilgileri
• Park sensörü bilgileri
• Orijinal araç ekranı verileri
• Ses sistemiyle ilgili bazı kontrol komutları
gibi fonksiyonlar desteklenebilir.
Ancak “CANBUS decoder var” ifadesi bütün araç fonksiyonlarının destekleneceği anlamına gelmez. Adaptörün hangi mesajları okuyabildiği, araç modeli ve kullanılan gateway mimarisi belirleyicidir.
Özellikle son yıllarda araçlarda farklı haberleşme ağlarının gateway üzerinden birbirine bağlanması bu durumu daha karmaşık hale getirmiştir. Dolayısıyla iki otomobil aynı marka olsa bile farklı model yıllarında aynı Android cihazın farklı davranması şaşırtıcı değildir.
[color=]CAN Bus Güvenliği: Android Sistemi Yeni Bir Risk Alanı mı?[/color]
Burada konunun daha ciddi bir tarafı ortaya çıkıyor.
CAN ağı başlangıçta güvenilir araç içi haberleşmeye odaklanan bir mimari olarak tasarlanmıştır. Günümüzde ise otomobiller Bluetooth, Wi-Fi, hücresel bağlantı, USB, akıllı telefon entegrasyonu ve internet servisleriyle dış dünyaya çok daha fazla bağlanıyor.
Dolayısıyla Android tabanlı bir multimedya sisteminin CAN ağına erişmesi, teorik olarak otomobilin saldırı yüzeyini de genişletebilir.
Bozdal ve arkadaşlarının kapsamlı incelemesi, CAN'ın kimlik doğrulama ve şifreleme eksikliklerinin özellikle modern bağlantılı araçlarda önemli bir güvenlik problemi oluşturduğunu vurguluyor. Araştırmacılar ayrıca geçmişte gerçekleştirilen deneysel saldırıları ve saldırılara karşı ağ segmentasyonu, şifreleme ve saldırı tespit sistemleri gibi yaklaşımları inceliyor.
Daha sonraki araştırmalar da problemin ortadan kalkmadığını gösteriyor. 2023 tarihli bir Computers & Security çalışması, CAN FD için mesaj kimlik doğrulaması ve şifreleme temelli bir güvenlik mimarisi önermiş ve CAN trafiğinin istatistiksel analizini kullanmıştır.
2024 yılında yayımlanan CANdid çalışması ise ECU'ların güvenlik mekanizmalarında kullanılan zayıf rastgelelik kaynaklarının istismar edilerek CAN üzerinden kritik ECU'lara erişimin mümkün olabileceğini deneysel olarak incelemiştir.
Bu yüzden internette “Android CANBUS ile her şeyi kontrol edebilirsin” şeklindeki ifadeler teknik açıdan fazla basitleştiricidir. Kritik otomotiv fonksiyonlarına erişim söz konusu olduğunda güvenlik, sadece yazılım özelliği değil, fiziksel ve mimari bir tasarım problemidir.
[color=]Kadınların ve Erkeklerin CAN Bus Konusuna Bakışı Gerçekten Farklı mı?[/color]
Bu bölüm özellikle dikkatli ele alınmalı. “Erkekler teknik düşünür, kadınlar duygusal düşünür” şeklindeki kesin bir ayrım bilimsel olarak savunulabilir bir yaklaşım değildir.
Hyde'ın American Psychologist'ta yayımlanan ve 46 meta-analizi değerlendiren çalışması, kadınlar ile erkeklerin psikolojik değişkenlerin büyük bölümünde birbirine düşündüğümüzden daha fazla benzediğini ortaya koyan “gender similarities hypothesis” yaklaşımını desteklemektedir.
Dolayısıyla Android CAN Bus gibi teknik bir konuyu cinsiyete göre iki ayrı zihinsel kategoriye ayırmak doğru olmaz. Buna rağmen kullanıcıların farklı öncelikleri olabileceğini tartışmak değerlidir.
Örneğin veri odaklı yaklaşan bir kullanıcı; CAN mesajlarının frekansına, gecikmesine, hata oranına, veri bütünlüğüne ve protokol yapısına yoğunlaşabilir. Bir başka kullanıcı ise aynı sistemin sürüş güvenliği, sürücünün dikkat yükü, yolcu deneyimi, erişilebilirlik veya aracın günlük kullanımını nasıl değiştirdiğine odaklanabilir.
Bu ikinci bakış açısı “kadınlara özgü” değildir; aynı şekilde ilk yaklaşım da “erkeklere özgü” değildir.
Hatta iyi bir mühendislik çalışması her iki yaklaşımı bir araya getirmelidir. Örneğin bir Android ekranının sürücüye çok fazla veri sunması teknik olarak başarılı olabilir; fakat sürücünün dikkatini dağıtıyorsa insan faktörleri açısından başarısız sayılabilir. Tersine, son derece kullanışlı bir kullanıcı arayüzü CAN mesajlarının güvenilirliği doğrulanmadan hazırlanmışsa mühendislik açısından eksik kalır.
Gerçek anlamda kapsayıcı tasarım, insanların cinsiyetlerinden hareketle varsayım yapmak yerine farklı kullanıcı deneyimlerini ölçmeyi gerektirir.
[color=]Android CAN Bus Sistemlerinde Deneyim Neden Önemli?[/color]
Bu konuda masa başında yapılan araştırma ile gerçek araç üzerinde yapılan çalışma arasında ciddi fark vardır.
Gerçek araçta ölçüm yapan bir araştırmacı, aynı mesajın motor çalışırken, kontak açıkken, araç hareket halindeyken veya farklı elektronik sistemler aktifken nasıl değiştiğini gözlemleyebilir.
Örneğin yakın tarihli bir Android tabanlı CAN telemetri çalışmasında gerçek bir Seat Ibiza 1.6 TDI üzerinden motor devri, araç hızı, gaz pedalı konumu, emme basıncı, motor yükü ve sıcaklık gibi parametrelerin izlenip kaydedildiği raporlanmıştır. Veriler zaman damgası ve ham CAN bilgileriyle saklanmış, daha sonra MATLAB ortamında analiz edilmiştir.
Bu tür çalışmaların değeri, “uygulama çalışıyor” demekten çok daha fazlasıdır. Çünkü ham verinin fiziksel dünyadaki karşılığını doğrulamaya çalışırlar.
Örneğin uygulama ekranda 2.500 rpm gösteriyorsa bunun gerçekten motorun yaklaşık 2.500 devir/dakika çalışmasıyla eşleştiği bağımsız bir ölçümle doğrulanmalıdır.
[color=]Android CAN Bus Gelecekte Nereye Gidiyor?[/color]
CAN'ın geleceğini yalnızca klasik CAN üzerinden düşünmek de yeterli değil. CAN FD, daha büyük veri alanları ve daha yüksek veri hızları sağlayarak klasik CAN'ın bazı kapasite sınırlamalarını aşmayı hedefliyor. ISO 11898-1:2015 standardı klasik CAN ile CAN FD çerçeve yapılarını birlikte tanımlamış; ISO'nun güncel kayıtlarında ise 2024 sürümünün daha yeni versiyon olarak yayımlandığı görülüyor.
Bunun Android açısından anlamı şu olabilir: araçlardaki veri miktarı ve bağlantılı servisler arttıkça, Android benzeri yüksek seviyeli işletim sistemlerinin otomotiv mimarisindeki rolü de büyüyebilir. Fakat bu büyümenin güvenlik, gerçek zamanlılık ve izolasyon sorunlarını beraberinde getirmemesi gerekiyor.
Geleceğin otomobilinde Android'in rolünü yalnızca “büyük ekranlı teyp” olarak düşünmek giderek yetersiz hale geliyor. Android; navigasyon, multimedya, telemetri, kullanıcı profilleri, bağlantılı servisler ve araç verilerinin görselleştirilmesi açısından güçlü bir platform olabilir. Buna karşılık güvenlik-kritik kontrol katmanları daha kontrollü ve deterministik mimarilerle ayrıştırılmalıdır.
[color=]Sonuç: Android CAN Bus Bir Özellikten Çok Bir Sistem Mimarisi Meselesidir[/color]
“Android CAN Bus nedir?” sorusunun en kısa teknik cevabı şudur: Android işletim sistemli bir cihazın, uygun CAN arayüzleri ve yazılım katmanları üzerinden otomobilin CAN tabanlı haberleşme sistemindeki belirli verileri okuyabilmesi veya belirli komutları aktarabilmesidir.
Fakat gerçek cevap bundan daha kapsamlıdır.
CAN; ECU'ların haberleşmesini sağlayan otomotiv odaklı bir ağ protokolüdür. Android ise bu ağın kendisi değil, onunla bir arayüz veya gateway üzerinden iletişim kurabilen yüksek seviyeli bir işletim sistemidir. OBD-II, CAN ve Android arasındaki farkların bilinmesi bu nedenle temel önem taşır.
Bilimsel literatür bize üç önemli sonuç gösteriyor: Birincisi, Android gerçek araç verilerinin izlenmesi ve teşhisinde kullanılabilecek güçlü bir platformdur. İkincisi, Android'in güvenlik-kritik otomotiv sistemlerine doğrudan ve kontrolsüz biçimde bağlanması gerçek zamanlılık ve güvenlik açısından sorun yaratabilir. Üçüncüsü, CAN'ın temel güvenlik mimarisi modern bağlantılı araçların tehdit modelini tek başına karşılamaya yetmeyebilir.
Bu nedenle konuya meraklı biri için asıl araştırma sorusu belki de “Android teyp CANBUS destekliyor mu?” değil, “Android cihaz aracın hangi CAN mesajlarına, hangi donanım üzerinden, hangi yetkilerle ve hangi güvenlik sınırları içerisinde erişebiliyor?” olmalı.
Bir başka ilginç soru da şu: Bir Android cihazın araçtan onlarca farklı parametreyi gerçek zamanlı göstermesi gerçekten daha iyi bir kullanıcı deneyimi midir, yoksa sürücüye gereğinden fazla veri sunarak insan faktörleri açısından yeni bir problem mi yaratır?
Ve belki en önemli tartışma noktası: Otomobiller giderek daha fazla yazılımla tanımlanırken, CAN Bus gibi onlarca yıllık iletişim teknolojilerinin güvenlik mimarisini yeni nesil Android tabanlı sistemlerle nasıl yeniden tasarlamak gerekiyor?
Bu soruların cevapları yalnızca otomotiv mühendislerinin değil; yazılım geliştiricilerin, siber güvenlik araştırmacılarının, insan-makine etkileşimi uzmanlarının ve gerçek kullanıcıların birlikte çalışmasını gerektiriyor. Android CAN Bus konusu bu yüzden basit bir multimedya özelliğinden çok, otomobilin mekanik bir makineden karmaşık ve bağlantılı bir siber-fiziksel sisteme dönüşümünün küçük ama oldukça önemli bir örneği olarak değerlendirilebilir.
[color=]Kaynaklar ve bilimsel çalışmalar[/color]
1. ISO 11898-1:2015, Road vehicles - Controller area network (CAN) - Part 1: Data link layer and physical signalling. ISO.
2. Bozdal, M., Samie, M., Aslam, S., & Jennions, I. (2020). Evaluation of CAN Bus Security Challenges. Sensors, 20(8), 2364.
3. Yang, Y., Chen, B., Su, L., & Qin, D. (2013). Research and Development of Hybrid Electric Vehicles CAN-Bus Data Monitor and Diagnostic System through OBD-II and Android-Based Smartphones.
4. Sinha, S., Golchin, A., Einstein, C., & West, R. (2020). A Paravirtualized Android for Next Generation Interactive Automotive Systems. ACM HotMobile.
5. Cybersecurity attacks on CAN bus based vehicles: a review and open challenges (2022). Library Hi Tech.
6. de Andrade, R. ve ark. (2023). Security architecture for automotive communication networks with CAN FD. Computers & Security, 129, 103203.
7. Hyde, J. S. (2005). The Gender Similarities Hypothesis. American Psychologist, 60(6), 581–592.
Kaynakları Metin İçinde EşleştirKaynakça Biçimini Tutarlılaştır
Kaynakları Metin İçinde Eşleştir
Kaynakça Biçimini Tutarlılaştır
Pratik Kullanım Sınırlarını Derinleştir