Persidangan DEFCON 27. Kereta awak kereta saya. Bahagian 1

Taklimat ucapan:

Bagi kebanyakan kita, kereta adalah salah satu pembelian paling mahal yang pernah kita buat. Dalam dunia di mana segala-galanya disambungkan, adalah wajar untuk mengawal kereta kami dari jauh: dapatkan peringatan tentang tempat kami meletakkannya, semak untuk memastikan kami terlupa untuk mengunci pintu atau menghidupkan enjin dari jauh untuk memanaskan atau menyejukkan bahagian dalam. bergantung pada masa tahun.

Terdapat banyak pengeluar yang menawarkan sistem penggera pilihan yang memberikan kemudahan dan ketenangan fikiran ini. Tetapi sejauh manakah kita boleh mempercayai penyedia sistem ini untuk melindungi akses kepada kereta kita dalam domain digital? Dalam ceramah ini, Jmaxxz akan bercakap tentang apa yang dia temui apabila dia melihat ke dalam salah satu sistem ini.

Jmaxxz terkenal dengan kerjanya dengan sistem rumah pintar August Smart Lock (pembentangan di DEFCON 24 "Backdooring The Frontdoor"). Dalam beberapa tahun kebelakangan ini, tumpuannya adalah pada peranti IoT. Beliau mengambil bahagian dalam bahagian "IoT village zero day" DEFCON 24 dan DEFCON 25 dan akhirnya memutuskan bahawa sudah tiba masanya untuk meneroka produk pasaran automotif sekunder - pemula jauh (selepas ini dirujuk sebagai RS).

Persidangan DEFCON 27. Kereta awak kereta saya. Bahagian 1

Jadi, nama saya J-Max, saya adalah seorang pengaturcara mengikut profesion dan seorang penggodam melalui kerjaya. Saya terlibat dalam semua perkara yang berkaitan dengan kunci, dan sepanjang perbualan ini anda akan mendengar banyak kenyataan yang menyatakan pendapat saya semata-mata dan tidak mempunyai kaitan dengan pendapat majikan saya yang dahulu, sekarang dan akan datang. Seperti yang mungkin anda fahami, kita akan bercakap tentang kereta, iaitu tentang alat penghidup jauh dan sistem penggera. Mari kita mulakan dengan beberapa latar belakang, yang penting dalam konteks ini kerana ramai yang menganggap sistem sedemikian sebagai kemewahan yang tidak perlu.
Jadi tempat saya tinggal agak sejuk dan kawan saya menghidap penyakit yang dipanggil sindrom Raynaud. Sejuk menyebabkan kekejangan saluran darah di tangan, aliran darah ke jari berkurangan secara mendadak, dan tanda-tanda radang dingin muncul, termasuk nekrosis tisu. Slaid menunjukkan rupa ia biasanya.

Persidangan DEFCON 27. Kereta awak kereta saya. Bahagian 1

November lalu, saya masih belum memutuskan apa yang akan saya berikan kepadanya untuk Krismas. Jadi dia pulang dari lapangan terbang dalam keadaan kecewa kerana keretanya tidak pernah panas semasa dalam perjalanan pulang. Pada masa itu, saya menyedari bahawa saya akan memberinya sistem permulaan enjin jauh dan mula mencari pilihan terbaik. Ternyata pasaran permulaan jauh agak besar, dengan banyak pengeluar tidak memberikan maklumat yang mencukupi tentang produk mereka.

Mereka tidak memberitahu anda cara memasang sistem atau alat yang hendak digunakan untuk memprogram peranti. Ini adalah masalah bagi saya kerana ini adalah kereta saya, alat mula jauh saya, dan saya perlu mempunyai akses kepada alatan ini. Jadi saya mencari sedikit lagi dan menemui sebuah syarikat dari Kanada, Fortin, yang menghasilkan permulaan sedemikian dan dengan rela hati menyediakan semua dokumentasi yang diperlukan. Saya memilih produk ini dan mula mencari alat kawalan jauh yang sesuai. Hakikatnya ialah jika anda menggunakan alat kawalan jauh standard dengan pemula jauh, maka julat tindakannya akan terhad kepada julat alat kawalan jauh standard. Alat kawalan jauh selepas pasaran ditawarkan yang beroperasi dalam jarak setengah batu hingga satu setengah batu. Menurut ulasan pengguna, ini adalah aksi publisiti, kerana sebenarnya jaraknya jauh lebih pendek. Inilah masalahnya, kerana kawan saya perlu menghidupkan enjin keretanya di tempat letak kereta lapangan terbang sebaik dia turun dari pesawat, iaitu kira-kira setengah batu.

Persidangan DEFCON 27. Kereta awak kereta saya. Bahagian 1

Jadi adalah bagus jika dia boleh mengeluarkan telefonnya, membuka apl dan tekan Mula. Saya menemui produk pihak ketiga yang dipanggil MyCar yang serasi sepenuhnya dengan pemula Fortin. Ini ialah fob kunci kecil dengan kad SIM dan penerima GPS yang boleh anda letakkan di dalam kereta anda dan sambungkannya ke pemula jauh. Kemudian, menggunakan aplikasi mudah alih, anda boleh menghidupkan enjin dari jauh, membuka kunci dan sebagainya.

Persidangan DEFCON 27. Kereta awak kereta saya. Bahagian 1

Saya fikir ini bagus: sejurus selepas pesawat mendarat, rakan saya boleh menghidupkan enjin, dan apabila dia sampai ke kereta, kabin sudah menjadi panas.

Jadi mari kita bercakap sedikit tentang cara pemula jauh berfungsi. Untuk melakukan ini, anda perlu terlebih dahulu memahami bagaimana enjin kereta dimulakan. Sehingga kira-kira pertengahan tahun sembilan puluhan, penghidup kereta ialah kunci mekanikal tradisional dalam kombinasi suis kekunci. Anda terpaksa memasukkan kunci dan memutarnya untuk melengkapkan litar elektrik. Kemudian kunci berlabel "immobilizer" menjadi popular di Amerika Syarikat. Bunyinya rumit, tetapi ia hanya kunci elektronik. Jadi, anda mempunyai kunci mekanikal, yang merupakan kunci kepada kunci elektronik, yang seterusnya, adalah transponder dan mengandungi beberapa maklumat yang boleh dibaca. Dan sehingga anda membuka kunci elektronik, kereta anda tidak akan dihidupkan. Di sebelah kanan slaid anda melihat 2 kekunci: yang kiri adalah untuk immobilizer, dan yang kanan adalah untuk suis pencucuhan biasa. Ia hanya mengendalikan komponen mekanikal kunci, manakala kunci kiri membuka kunci elektronik, yang akan menghidupkan enjin kereta.

Persidangan DEFCON 27. Kereta awak kereta saya. Bahagian 1

Mengapa saya memberitahu anda tentang ini? Permulaan jauh berfungsi melalui immobilizer. Pada slaid seterusnya, anda melihat gambar rajah menyambungkan peranti Fortin EVO One kepada immobilizer - di bahagian bawah sebelah kiri anda melihat sepasang kenalan yang ditetapkan sebagai IMO. Di bahagian atas sebelah kanan gambar rajah anda melihat dua baris: BOLEH RENDAH dan BOLEH TINGGI. Ini adalah kenalan untuk menyambung ke bas CAN automotif. Sebab pemula jauh disambungkan ke bas CAN adalah untuk mengurangkan kos pemasangan kerana lebih sedikit sambungan digunakan semasa pemasangan. Jika pemula jauh boleh membaca data dari bas CAN atau menghantar arahan melalui bas CAN, ini mengurangkan masa pemasangan untuk sistem permulaan enjin jauh.

Di bahagian atas sebelah kiri gambar rajah terdapat sejumlah besar GPIO yang dikaitkan dengan mengawal atau membaca maklumat tentang mesin. Contohnya, anda mahu lampu berkelip atau hon berbunyi apabila anda menekan butang kunci. Perkara seperti ini boleh dikawal menggunakan GPIO ini. Di bahagian bawah sebelah kiri gambar rajah anda boleh melihat penyambung yang besar dan kikuk - ini ialah antara muka yang memintas kunci mekanikal. Iaitu, anda tidak perlu memasukkan dan menghidupkan kunci ke dalam penyalaan kerana antara muka ini membolehkan penyampai sistem pemula jauh berkomunikasi terus dengan kunci elektrik.

Persidangan DEFCON 27. Kereta awak kereta saya. Bahagian 1

Slaid berikut menunjukkan peringkat memasang pemula jauh. Ia terutamanya terdiri daripada menanggalkan penutup lajur stereng, memasang dan menyambung unit DS. Ia kelihatan agak menakutkan, tetapi ia mudah dilakukan.

Persidangan DEFCON 27. Kereta awak kereta saya. Bahagian 1

Alat kawalan jauh itu sendiri menyambung kepada apa yang Fortin panggil pautan data. Sistem ini menggunakan protokol pemindahan data fizikal proprietari UART - pemancar tak segerak universal yang menukar data pada kelajuan 9600 baud. Pemula jauh Fortin hanya menyambung melalui bas UART ke dua alat kawalan jauh yang anda lihat pada slaid.

Persidangan DEFCON 27. Kereta awak kereta saya. Bahagian 1

Setelah memasang DS, saya memikirkan bagaimana peranti sedemikian boleh menjejaskan keselamatan kereta. Jelas sekali, DS mesti memintas immobilizer, jadi sejauh manakah ini selamat dari segi kemungkinan kecurian atau pemintasan kawalan kereta? Ini terpakai bukan sahaja untuk penghantaran data melalui rangkaian selular, tetapi juga kepada isyarat mula jauh itu sendiri. Jadi saya mula mencari di Internet untuk maklumat pengilang mengenai protokol pemindahan data yang digunakan dan berakhir di forum di mana orang menulis bahawa Fortin enggan menyediakan protokol ini. Salah satu sebab: β€œKami tidak mengedarkan maklumat sedemikian kerana EVO bukan mainan untuk amatur, ia bertujuan untuk digunakan oleh profesional.

Persidangan DEFCON 27. Kereta awak kereta saya. Bahagian 1

Sebagai seorang profesional, saya memutuskan untuk membina mesin saya sendiri pada desktop. Saya mendapat unit sistem EVO kedua, memasang papan litar yang mewakili kereta, menambah suis untuk mensimulasikan pencucuhan, butang untuk pedal brek dan sejumlah besar LED untuk menunjukkan pelbagai keadaan.

Persidangan DEFCON 27. Kereta awak kereta saya. Bahagian 1

Dengan menggabungkan semua ini, saya menyambungkan peranti pemantauan pautan data FTI dan mula mengumpul data ini. Pada mulanya ia kelihatan seperti slaid, dan ia tidak sepenuhnya jelas apa yang berlaku di sini. Tetapi jika anda melihat dengan teliti, anda boleh mengatakan bahawa terdapat beberapa jenis struktur di sini.

Persidangan DEFCON 27. Kereta awak kereta saya. Bahagian 1

Sila ambil perhatian bahawa setiap kali saya menekan butang pada alat kawalan jauh saya, mesej yang dihantar antena ke DS saya sentiasa bermula dengan 0C dan berakhir dengan 0D. Jadi jika kita hanya membahagikan apa yang kita dapat, dengan mengandaikan 0C adalah permulaan dan 0D adalah penamat, kita akan berakhir dengan sesuatu seperti ini.

Persidangan DEFCON 27. Kereta awak kereta saya. Bahagian 1

Sudah ada beberapa jenis struktur yang jelas kelihatan di sini, jadi anda boleh mengetahui apa yang berlaku. Dengan meluangkan masa menjejaki mesej yang muncul selepas butang tertentu ditekan, saya dapat mencipta jadual arahan, yang setiap satunya sepadan dengan tindakan tertentu. Iaitu, apabila anda menekan butang pada alat kawalan jauh, antena menghantar arahan kepada modul mula jauh yang kelihatan seperti ini.

Persidangan DEFCON 27. Kereta awak kereta saya. Bahagian 1

Inilah rupa struktur pasukan biasa.

Persidangan DEFCON 27. Kereta awak kereta saya. Bahagian 1

Apabila anda menekan butang pada alat kawalan jauh, antena menghantar arahan sedemikian kepada pemula jauh. Ia dikejutkan oleh bait 0C, diikuti oleh 2 bait, yang saya fikir mewakili arah penghantaran. Ini menarik kerana UART sudah mempunyai arah isyarat, jadi saya menandai bait ini sebagai "sampah", hanya menganggapnya sebagai pemalar. Ini diikuti dengan satu bait yang menunjukkan arahan yang ingin dilaksanakan oleh pengguna. Ini mungkin mengunci pintu atau membukanya, mematikan penggera, dsb. Secara umum, semua yang anda mahu lakukan dari jauh dikaitkan dengan arahan ini. Muatan FF FF F1 ialah alamat, atau pengecam, yang mengenal pasti antena jauh dari mana mesej itu datang. Jika unit DS tidak mengenali pengecam, arahan itu diabaikan. Jika DS menerima pengecam, prosedur berbilang langkah bermula, termasuk memeriksa kehadiran kunci dalam pencucuhan, menghidupkan atau mematikan enjin, menekan pedal brek, dsb. Sebenarnya, proses ini tidak mempunyai banyak kepentingan, cuma peranti sedang mempelajari ID pada masa ini.

Pada akhir mesej terdapat bait dengan checksum dan bait yang menunjukkan akhir arahan. Sekarang setelah kita memahami cara protokol berfungsi, apakah yang boleh kita lakukan mengenainya? Saya mempunyai beberapa video mengenai topik itu. Malangnya, atas sebab tertentu video itu tanpa bunyi, jadi saya akan memberitahu anda apa yang berlaku pada skrin. Di sebelah kiri lajur stereng pada perumah panel instrumen terdapat kotak putih yang mengandungi elektronik dengan perisian tegar Particle.IO yang memahami protokol Fortin. Wayar dengan hujung biru ialah antena. Perkara ini membolehkan saya berinteraksi dengan unit penghidup jauh dari dalam kereta dan melihat apa yang berlaku pada skrin komputer riba.

Persidangan DEFCON 27. Kereta awak kereta saya. Bahagian 1

Jadi saya menghantar arahan buka kunci ke kereta tetapi ia tidak berfungsi kerana DS tidak tahu tentang antena ini. Seperti yang telah saya nyatakan, ini hanyalah UART, hartanya adalah untuk menyokong komunikasi dua hala yang dipanggil, yang mana anda boleh mendapatkan maklumat tentang status kereta dari jauh. Contohnya, jika enjin dihidupkan atau dihentikan secara fizikal, unit DS akan menghantar mesej yang sepadan kepada antena kawalan jauh. Dalam kes ini, mesej akan mengandungi alamat antena ini.

Persidangan DEFCON 27. Kereta awak kereta saya. Bahagian 1

Masalahnya ialah komunikasi dijalankan menggunakan protokol UART, dan sesiapa yang menyambung ke bas UART boleh melihat alamat di mana mesej yang diberikan dihantar, jadi firmware saya mempunyai keupayaan untuk mengklon alamat antena sedia ada, yang saya lakukan dengan arahan yang sesuai.

Persidangan DEFCON 27. Kereta awak kereta saya. Bahagian 1

Untuk menjana mesej, anda hanya perlu membuka pintu kereta. Seperti yang anda lihat, DS menghantar mesej kepada antena bahawa pintu terbuka, dan penggera segera dihidupkan.

Persidangan DEFCON 27. Kereta awak kereta saya. Bahagian 1

Untuk mematikan penggera, saya menghantar arahan "buka kunci", selepas itu bunyi penggera dimatikan dan kereta dibuka kunci. Anda perlu menerima kata-kata saya, kerana kami tidak dapat memainkan video ini dengan bunyi. Cuba kita mainkan video sekali lagi.

Persidangan DEFCON 27. Kereta awak kereta saya. Bahagian 1

Nah, bunyi itu muncul (nota penterjemah: video yang sama dengan bunyi dimainkan pada skrin). Jadi, anda melihat bagaimana saya menghantar arahan DS dan menghidupkan penggera, semuanya tanpa kunci. Sekarang mari cuba menghidupkan kereta dengan cara yang sama; untuk melakukan ini, tonton video berikut.

Biasanya, jika anda hanya menaip "start" dan cuba menghidupkan enjin, ia tidak akan berfungsi. Sebabnya ini adalah kereta transmisi manual dan sistem starter jauh mempunyai prosedur khas untuk kereta tersebut. Dalam kes ini, anda mesti menekan butang pemula jauh semasa kunci berada dalam penyalaan dan enjin sedang hidup. Lepas tu boleh keluarkan kunci, keluar kereta, tutup pintu, lepas tu DS akan matikan enjin dan kunci pintu. Ini dilakukan untuk menghalang kereta daripada bertindak balas terhadap permulaan enjin jauh semasa memandu, kerana ini berbahaya. Walau bagaimanapun, ini bukan ciri keselamatan yang lengkap. Ini agak mudah untuk dibuktikan dengan melihat unit pemula jauh EVO. Anda melihat wayar gelung kuning ini yang direka untuk berfungsi dengan transmisi manual. Jika dipotong, blok ini boleh digunakan untuk kereta dengan transmisi automatik. Reka bentuk unit ini membolehkan anda tidak menggunakan sebarang tetapan khas apabila memasang DS dalam kereta dengan jenis transmisi yang berbeza.

Persidangan DEFCON 27. Kereta awak kereta saya. Bahagian 1

Jadi sistem tidak bertindak balas kepada arahan "mula", jadi saya akan meletakkan blok ini semula pada tempatnya dan hanya memotong wayar ini untuk memutuskan sambungan. Sekarang, jika anda mengulangi arahan "mula", isyarat bunyi akan berbunyi dan penunjuk status sistem kereta akan menyala pada panel instrumen, seperti yang berlaku apabila kunci dimasukkan ke dalam kunci.

Persidangan DEFCON 27. Kereta awak kereta saya. Bahagian 1

Pada masa ini kami mempunyai kereta yang boleh kami mulakan dari jauh tanpa kunci dalam penyalaan, tetapi modul DS bukan semua yang kami perlukan. Dalam keadaan biasa, anda masih tidak akan dapat memandu jauh dengan kereta yang dihidupkan dari jauh, tetapi mari cuba juga.

Untuk melumpuhkan kunci stereng, anda perlu memasukkan kunci biasa ke dalam kunci pencucuhan, yang tidak mempunyai sebarang transponder. Seperti yang anda lihat, cukup untuk mengalihkan kunci ke kedudukan sebelum menghidupkan enjin, dan stereng Subaru Impreza mula berputar sepenuhnya dengan bebas.

Namun, jika anda tidak mempunyai sebarang kunci, maka apabila anda menekan pedal brek kereta akan terhenti. Agak mudah untuk mengatasi had ini. Anda perlu memikirkan bagaimana kereta memberitahu starter jauh bahawa brek digunakan. Anda melihat beberapa port berbilang warna di bahagian belakang perumahan modul EVO - kabel dari bas CAN akan disambungkan di sini. Cukup sekadar mengeluarkan kabel ini dari unit DS selepas kereta dihidupkan dari jauh, dan ia tidak akan bertindak balas apabila menekan pedal brek. Oleh kerana unit ini terletak di bawah penutup lajur stereng, saya memberikan arahan "mula" melalui komputer riba saya, kereta dihidupkan, saya membuka pintu, keluar dari kereta dan mengeluarkan penyambung bas CAN dari unit EVO. Seperti yang anda lihat, enjin kereta sedang hidup, tetapi kami masih tidak mempunyai sebarang kunci dalam penyalaan.

Sekarang jika anda menekan pedal brek tiada apa yang akan berlaku kerana EVO tidak tahu ia ditekan. Selepas itu, saya boleh berada di belakang roda, tekan brek, gerakkan batang gear ke kedudukan "Pandu", dan kereta mula bergerak. Semua ini dilakukan tanpa sebarang kunci.

21:40

Persidangan DEFCON 27. Kereta awak kereta saya. Bahagian 2

Beberapa iklan πŸ™‚

Terima kasih kerana tinggal bersama kami. Adakah anda suka artikel kami? Ingin melihat kandungan yang lebih menarik? Sokong kami dengan membuat pesanan atau mengesyorkan kepada rakan, cloud VPS untuk pembangun dari $4.99, analog unik pelayan peringkat permulaan, yang kami cipta untuk anda: Keseluruhan kebenaran tentang VPS (KVM) E5-2697 v3 (6 Teras) 10GB DDR4 480GB SSD 1Gbps daripada $19 atau bagaimana untuk berkongsi pelayan? (tersedia dengan RAID1 dan RAID10, sehingga 24 teras dan sehingga 40GB DDR4).

Dell R730xd 2 kali lebih murah di pusat data Equinix Tier IV di Amsterdam? Hanya disini 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV daripada $199 di Belanda! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - daripada $99! Baca tentang Bagaimana untuk membina infrastruktur corp. kelas dengan penggunaan pelayan Dell R730xd E5-2650 v4 bernilai 9000 euro untuk satu sen?

Sumber: www.habr.com

Tambah komen