Root-of-Trust untuk IoT dan Tren Keamanan IoT lainnya

Topik keamanan informasi menjadi semakin relevan setiap tahun. Pusat keamanan informasi berada di tempat pertama di peringkat dan kedua di jumlah pelanggan. Namun, bahan-bahan tersebut terutama dikhususkan untuk berbagai jaringan, web, cloud dan teknologi lainnya yang secara tradisional dipertimbangkan dalam konteks keamanan. Dan hampir tidak berlaku untuk aplikasi embedded, terutama dengan sumber daya terbatas. Sementara jumlah yang terakhir lebih dari sekedar urutan besarnya. Pada artikel ini, kita akan melihat beberapa fitur dan tren dalam keamanan Internet dari hal-hal yang berasal dari model pengembangan dan distribusi.


Pengembangan untuk aplikasi yang tertanam selalu membawa fitur-fitur tertentu, apalagi, sehingga kebanyakan programmer "biasa" bahkan tidak memikirkannya, dan konsep QA dan proses pengujian dalam banyak kasus secara fundamental berbeda dari apa yang umumnya dipahami.

Salah satu topik favorit dan dibahas secara berkala di saluran IT besar di Telegram Embedded Group adalah “mengapa tidak ada yang mengerti pengembang tertanam dan membayar sangat sedikit? (dengan latar belakang programmer "biasa") ":) Sistem

tertanam adalah sistem yang akan bekerja dengan dibangun langsung ke perangkat yang dikontrolnya. Beberapa foto untuk kejelasan:



Gambar kiri diambil dari artikel Wikipedia tentang sistem tertanam, adalah contoh dari sistem kompleks besar. Di sebelah kanan adalah foto dari ulasan rumah pintar Redmond, semuanya jauh lebih sederhana dan lebih ringkas di sini, bahkan seluruh perangkat dibuat pada satu chip dengan ikatan minimal. Penting bahwa kedua perangkat berfungsi sebagai perangkat yang lengkap (komputer papan tunggal masih membutuhkan kasing dan beberapa periferal).

Sebagai aturan, perusahaan pembuat menghasilkan perangkat jadi, yang utamanya mencakup perangkat keras, dan perangkat lunak, sebagai suatu peraturan, dibundel dan hanya berfungsi pada perangkat keras ini. Hampir tidak ada yang akan memiliki ide untuk membeli smartphone "telanjang" tanpa perangkat lunak, dan kemudian menginstal pada OS dan aplikasi yang diperlukan, semuanya harus bekerja di luar kotak. Akibatnya, pengembang sering melakukan seluruh spektrum tugas untuk pengembangan perangkat, baik perangkat lunak maupun perangkat keras.

Fitur lain dari pengembangan untuk embedded system adalah bahwa mereka hampir selalu memiliki sumber daya yang jauh lebih sedikit, baik dalam daya komputasi dan memori, saluran data, serta konsumsi. Sebagian besar teknologi yang akrab bagi banyak orang tidak mungkin berjalan pada sistem seperti itu, bahkan OS tidak ada di mana-mana. Penting untuk masuk ke sumber daya yang tersedia dan sering kali menghemat secara signifikan. Ini juga memengaruhi keamanan - banyak standar dari Big World tidak didukung atau didukung oleh pembatasan.

C masih merupakan bahasa yang paling banyak digunakan untuk mengembangkan sistem embedded. Ini memiliki sejumlah kekurangan dalam bekerja dengan memori yang secara langsung memengaruhi keamanan. Untuk mengatasinya, Rust dikembangkan , itu mendapatkan popularitas (di tempat pertama dari bahasa favorit Andapada StackOverflow selama beberapa tahun, menyalip bahkan Python dan Kotlin, terutama yang populer akhir-akhir ini), tetapi masih jauh dari pemimpin dalam penerapan yang tertanam karena sistem dan perpustakaan yang didukung. Bahasa tingkat yang lebih tinggi jarang untuk sistem embedded dan cenderung tetap begitu cepat.

Fitur penting dari pengembangan sistem embedded adalah keterbatasan kemampuan perangkat keras platform dan SDK yang dipasok oleh pabrikan. Tidak mungkin atau sangat mahal untuk mengimplementasikan banyak teknologi sendiri dari awal untuk satu proyek. Oleh karena itu, sangat penting bahwa pabrikan chip mendukung teknologi keamanan canggih. Sampai saat ini, begitu banyak perhatian diberikan untuk ini. Misalnya, jika perangkat keras AES muncul cukup lama di hampir semua orang, maka banyak orang masih tidak tahu bagaimana mendukung TLS / DTLS. Pertanyaannya adalah bagaimana mencapai ini. Baru-baru ini saya menulis tentang Nordic Zephyr SDK baru yang menyelesaikan masalah ini dengan mengintegrasikan dengan proyek besar yang didukung oleh Linux Foundation. Ini adalah satu pendekatan. Di bawah ini kami akan mempertimbangkan yang lain.

Sebagai bagian dari pertimbangan keamanan sistem tertanam, perlu untuk mencatat sekelompok aplikasi yang termasuk dalam persyaratan standar keselamatan fungsional: obat-obatan, otomotif, peralatan kereta api, otomasi industri. Ini adalah aplikasi yang secara langsung mempengaruhi kehidupan dan kesehatan seseorang, serta untuk sistem yang tidak dapat dihentikan (misalnya, reaktor nuklir). Di sini semuanya diatur dengan jelas pada semua tahap pengembangan dan potensi kegagalan serta dampaknya pada pengoperasian sistem secara keseluruhan dipertimbangkan. Pengembangan dilakukan pada solusi perangkat keras dan perangkat lunak khusus, yang di masa depan juga perlu disertifikasi. Hasilnya, ternyata panjang dan mahal. Karena itu, mereka yang memulai pembangunan tidak memikirkannya jika tidak ada standar yang mengikat.

Kami merekomendasikan serangkaian artikel tentang keamanan fungsional untuk ditinjau .

Selain masalah pengembangan, penting untuk memperhatikan kondisi operasi sistem.

Sebagai aturan, perusahaan besar, produsen layanan cloud peduli dengan keamanan layanan mereka karena sejumlah alasan:

  • Mereka terlibat dalam pengembangan dan dukungan fungsi layanan secara langsung
  • Mereka memiliki kontak yang lebih dekat antara pengembang dan insinyur pendukung.
  • Peralatan ini langsung dapat diakses oleh para insinyur, bahkan jika di awan
  • Saluran transmisi data yang luas dan kemampuan komputasi yang tinggi dari peralatan memungkinkan penggunaan sistem pemantauan dan deteksi aktivitas abnormal

Perangkat Internet segala sesuatu bekerja dengan cara yang persis berlawanan:

  • Sebagai aturan, mereka adalah milik pelanggan akhir, dan insinyur pelanggan akhir, kompetensi, yang dalam banyak kasus lebih rendah karena alasan obyektif, terlibat dalam konfigurasi dan dukungan.
  • Sumber daya masing-masing perangkat terbatas, baik dalam hal kinerja maupun transfer data. Akibatnya, sistem untuk memantau dan mendeteksi aktivitas abnormal praktis tidak mungkin dalam kasus ini.

Untuk kejelasan, saya akan memberikan tabel perbandingan. Segera buat reservasi bahwa:

  • Ada banyak pilihan pengiriman perangkat lunak dan dukungan. Hanya kelompok umum yang diberikan untuk tujuan ilustrasi.
  • Jumlah perangkat Internet hal-hal sulit untuk diperkirakan secara akurat, karena semua orang memahami sesuatu yang berbeda di bawahnya, dan juga tidak ada statistik yang baik pada mereka.

Server dan solusi cloud (SaaS dan sejenisnya)Perangkat pengguna (PC, smartphone, dll.)Internet untuk segala
Siapa yang berkembang?penyedia solusi--
/ ?
/?
,
()( )
(Amazon, Google)2019 : ~266 K, ~1.379

Akibatnya, situasi secara berkala terjadi bahwa perangkat diretas, dan tidak ada yang diketahui tentang ini karena alasan obyektif. Sayangnya, situasi ini tidak biasa dan dapat berlangsung berbulan-bulan, dan kadang-kadang selama bertahun-tahun.

Retasan sistem embedded paling terkenal dalam beberapa tahun terakhir:

  • Mirai botnet pada 2016, bekerja terutama pada camcorder. Menurut berbagai perkiraan, jumlah perangkat yang terinfeksi melebihi 380 ribu . Penggantinya Satori pada tahun 2018 telah menangkap 700 ribu perangkat, dengan fokus utama pada penambang cryptocurrency.
  • KRACK mencapai Wi-Fi WPA2 pada tahun 2017 (hampir semua perangkat Wi-Fi dalam 15 tahun terakhir) dan pewarisnya Kr00k , dengan lebih dari satu miliar perangkat pada tahun 2019.
  • Pada tahun 2018, Bleedingbit memukul chip Texas Instruments BLE. Secara resmi, hanya beberapa model titik akses yang menggunakan keluarga CC26xx yang terpengaruh, dan masalahnya sendiri terpecahkan di versi stack yang baru. Namun, dalam hal ini, tidak diperhitungkan bahwa chip ini digunakan dalam jumlah perangkat yang jauh lebih besar (produsen BLE terbesar kedua di dunia, 16% dari 3,9 miliar untuk 2018).

Sebagian besar produsen perangkat keras merilis tambalan untuk perangkat mereka. Namun, koreksi ini masih harus diterapkan pada perangkat itu sendiri, yang sulit atau dalam beberapa kasus tidak mungkin untuk perangkat Internet hal. Akibatnya, sebagian besar perangkat tetap rentan. Dan mereka mungkin tidak pernah belajar tentang ini karena kurangnya kontrol dan perhatian pada masalah ini.

Oleh karena itu, perlu untuk menggunakan pendekatan yang berbeda secara fundamental untuk mencegah kerentanan dan menghilangkan konsekuensi untuk perangkat Internet. Keamanan harus terletak pada platform itu sendiri dari tahap desainnya dan dilakukan pada semua tahap pengembangan dan pengoperasian perangkat akhir, tetapi pada saat yang sama menjadi sederhana dan murah untuk implementasi massa (setidaknya berkenaan dengan keamanan fungsional dan TEE dari prosesor yang kuat).

ARM pada tahun 2017 berbicara tentang keamanan sistem embedded yang didasarkan pada CryptoCell dan Cortex-M33, namun, sampel serial chip pada M33 hanya muncul tahun lalu. Teknologi yang disajikan disebut Platform Security Architecture (PSA).


Inti dari gagasan itu adalah untuk memisahkan bagian-bagian penting dari sistem (kunci, hak, firmware) dari komponen yang berpotensi dapat diretas, baik perangkat keras maupun perangkat lunak, untuk sistem di mana implementasi penuh TEE tidak mungkin atau sulit. Teknologi ini terutama berfokus pada Cortex-M, tetapi kompatibel dengan semua keluarga Cortex-A / -R / -M.



Pada dasarnya pertimbangkan 4 tahap perlindungan perangkat dari Internet hal. Pertimbangkan mereka secara berurutan saat mereka muncul selama pengoperasian perangkat.

Boot Aman
  • Diverifikasi bahwa firmware asli, belum diubah, dan tidak dapat diturunkan.

Pembaruan firmware aman melalui udara (Secure FOTA)
  • Hanya pembaruan terotentikasi dan terverifikasi yang dapat diunduh.
  • ( )

API
  • , .
  • «» API.


  • (MITM)

Untuk melindungi perangkat, diusulkan untuk mengidentifikasi / memverifikasi data yang tiba di setiap tahap. Konsep ini didasarkan pada gagasan tentang akar kepercayaan (Root-of-Trust, RoT). Intinya adalah bahwa pengidentifikasi (kunci) tertentu dijahit ke dalam perangkat dan prosedur perangkat keras sedang berlangsung untuk memverifikasi bahwa kunci tersebut unik untuk platform saat ini dan kode yang dapat dieksekusi. Di masa depan, semua perpustakaan penting menggunakan RoT untuk pekerjaan mereka sendiri.


Biasanya, ini terjadi dalam 3 tahap utama:

  1. Memberikan kepercayaan: penyertaan Root-of-Trust pada tahap produksi dalam struktur chip.
    Pengidentifikasi chip yang tidak berubah dan akar perangkat keras kepercayaan memberikan keamanan dasar dan identifikasi unik perangkat.
  2. :
    ,
  3. :
    , 2 .

Solusi paling umum di pasaran adalah ARZ's TrustZone. Sudah banyak yang ditulis tentang implementasinya di Habré, karena teknologinya sendiri sudah diperkenalkan sejak lama. Yang paling jelas menurut saya dirangkum dalam salah satu publikasi terbaru .

Dalam konteks artikel ini, perlu dicatat bahwa TrustZone sebelumnya adalah hak istimewa prosesor berkinerja tinggi dari keluarga Cortex-A. Dan selama setahun terakhir, hampir semua produsen sistem nirkabel berbasis kristal telah merilis solusi berbasis -Cortex , yang paling populer adalah Cortex-M33 .

Berbicara tentang keamanan informasi, ada baiknya mengingat sistem kriteria umum(Kriteria Umum), diadopsi secara internasional dan sebagai standar nasional. Ini memungkinkan Anda untuk menentukan tingkat kepercayaan Level Evaluasi Evaluasi (EAL) dari 1 hingga 7 (EAL1 - EAL7), angka yang lebih tinggi menunjukkan tingkat keamanan yang lebih tinggi. Untuk memahami, sebagian besar sistem operasi Windows memiliki tingkat EAL4 atau EAL4 + , LInux / Unix, EAL5 pada dasarnya memiliki kartu pintar (perbankan, transportasi, termasuk tanpa kontak), EAL6 memungkinkan Anda untuk menggunakan solusi dalam situasi berisiko tinggi, EAL7 dalam situasi risiko ekstrem, misalnya, untuk jaringan searah (data dioda).

Pada bulan April tahun ini, Cortex-M33 dan M35P disertifikasi untuk EAL6 +. Ini adalah level yang sangat tinggi yang memungkinkan Anda menerapkan solusi dalam situasi berisiko tinggi.

ARM TrustZone Cryptocell di Cortex-M33 / M23 baru menyediakan penyimpanan kunci yang aman (termasuk satu dengan pengidentifikasi perangkat keras yang unik), pengecekan firmware, baik selama pengunduhan dan pembaruan melalui udara, akselerasi enkripsi perangkat keras AES, SHA, ChaCha, ECC, di termasuk dengan DMA (sebagai hasilnya, semua data dalam Flash dan RAM dapat dienkripsi), generator angka acak (TRNG, PRNG).


Sangat menarik untuk dicatat bahwa CryptoCell memungkinkan Anda untuk memiliki beberapa akar kepercayaan untuk berbagai tugas (misalnya, menanamkan RoT tambahan untuk pelanggan yang ingin mengintegrasikan solusi massal dari pasar ke dalam sistem TI tertutupnya, misalnya, bank tanpa terikat dengan RoT utama dari produsen), serta debugging aman (Secure Debug) dengan hak otorisasi.

300 seri CryptoCell ditargetkan khusus untuk perangkat Internet of Things berdaya rendah. Konsumsi M33 baru sekitar 20-40% lebih rendah daripada M4, mengingat hilangnya konsumsi energi untuk pekerjaan TrustZone sebesar 20%, kami memiliki tingkat konsumsi yang sama atau lebih rendah dari sekarang. Sebagai hasilnya, kita dapat mengatakan bahwa keamanan perangkat keras telah mencapai segmen anggaran paling besar dengan Cortex-M33 / M23 dan dalam waktu dekat jumlah produk yang didasarkan pada mereka hanya akan meningkat.

Alternatif TrustZone termasuk OpenTitan yang disponsori oleh Google. Namun, itu belum tersebar luas dan berfokus pada aplikasi lain selain perangkat akhir dari Internet hal.

Perlu dicatat bahwa implementasi perangkat keras dari akar kepercayaan bukanlah obat mujarab dan juga dapat diretas. Contohnya adalah kisah terbaru dengan Intel . Penting untuk menyebutkan bahwa dalam hal ini kesalahan ditemukan dalam ROM dan satu kunci digunakan untuk semua generasi chipset, oleh karena itu dapat direproduksi. Dan bahkan implementasi seperti itu sangat menyulitkan hack.

Pertimbangkan 5 tahapan evolusi implementasi Root-of-Trust dalam modul komunikasi seluler uBlox , yang dikembangkan bersama dengan Grup Kudelski. Ini menarik dari sudut pandang tugas, karena solusi mereka berbeda secara signifikan dari pendekatan perusahaan lain. Modul seluler Cat-M Nb-IoT / LTE termasuk dalam kelas transisi antara generasi ke-4 dan ke-5 LTE dan ditujukan untuk jaringan LPWAN berdaya rendah. Dalam kebanyakan kasus, perangkat harus bekerja selama bertahun-tahun tanpa campur tangan manusia. Solusi modern memungkinkan Anda bekerja 7-10 tahun dengan satu baterai (baterai). Usia rata-rata perangkat sering mencapai 15 tahun. Selama waktu ini, persyaratan keamanan dapat berubah secara signifikan, ancaman baru akan muncul. Perangkat harus bekerja secara stabil tanpa campur tangan manusia selama masa pakai. Oleh karena itu, perlu untuk melindungi perangkat tersebut dengan mempertimbangkan durasi dan sifat pekerjaan mereka.


Seperti yang Anda lihat pada struktur, dengan setiap generasi berikutnya, akar kepercayaan mengubah posisinya. Ini adalah titik kunci yang mempengaruhi keamanan solusi secara keseluruhan.

Opsi 1 dan 3 dianggap tidak dapat diandalkan menurut uBlox / Kudelski karena implementasi perangkat lunak RoT dan peretasan yang paling mungkin. Termasuk dalam kasus membuat akar kepercayaan pada eSIM eksternal (eUICC), yang menyediakan perlindungan yang cukup untuk aplikasi perbankan EAL4 entry-level (kunci dalam eUICC tidak dapat dibaca atau diubah sehingga tidak terlihat dari luar). Namun, pendekatan ini membawa serta kelemahan dan potensi kerentanan yang timbul dari kenyataan bahwa komunikasi dengan komponen eksternal dapat diinterupsi dan berpotensi mendistorsi, kompleksitas interaksi pada tahap awal inisialisasi sistem (verifikasi bootloader), sertamekanisme pemrograman yang rumit karena sumber daya chip yang terbatas di UICC. Selain itu, modul eksternal dapat diganti atau dihapus dari sistem (hanya dengan mengganti kartu SIM) dan dengan demikian meninggalkan seluruh sistem tanpa akar kepercayaan.

Oleh karena itu, jalur pengembangan selanjutnya adalah mengintegrasikan akar kepercayaan pada area terlindungi chip. Pendekatan ini konsisten dengan Komposisi ARM TrustZone CryptoCell.

Versi dengan implementasi Root-of-Trust dalam OS yang aman adalah yang paling umum di pasaran dan menyediakan tingkat keamanan yang cukup untuk sebagian besar tugas. Solusi paling umum di pasar adalah ARM TrustZone (tentang hal itu di atas), tetapi tanpa CryptoCell, yang menyimpan kunci di area yang dilindungi.

Solusi dengan perlindungan terintegrasi di dalam chipset, yang praktis tidak ada akses dari luar, memiliki perlindungan terbesar. Solusi saat ini menggunakan elemen keamanan bawaan (Elemen Aman), disertifikasi sesuai dengan tingkat EAL5 + . Ini memungkinkan sertifikasi Kriteria Umum untuk seluruh perangkat secara keseluruhan, dan juga memungkinkan Anda untuk menempatkan fungsi kartu SIM dan profil Operator Jaringan Seluler (MNO) di dalam perangkat. Ini sesuai dengan tingkat keamanan saat ini.

Generasi berikutnya dari chipset uBlox sedang dikembangkan, di mana Secure Element akan diintegrasikan ke dalam silikon chipset modem itu sendiri. Ini semakin mengurangi permukaan serangan dan meningkatkan keamanan ke tingkat tertinggi. Ini akan diimplementasikan melalui iUICC(Integrated Universal Integrated Circuit Card) - generasi berikutnya dari UICC, di mana seluruh kode dan pengenal SIM akan ditempatkan di dalam sistem pada sebuah chip, standar belum selesai.

Temuan:

  • Semakin banyak produsen komponen elektronik mengembangkan dan memproduksi perangkat dengan mempertimbangkan keamanan, mulai dari tahap awal pengembangan.
  • Perusahaan Endpoint mendapatkan alat manajemen keamanan langsung dari kotak. Menarik ahli pada tahap pengembangan alat memungkinkan Anda untuk menghindari kesalahan, serta secara signifikan mengurangi biaya solusi secara keseluruhan.
  • Tag harga untuk solusi baru seringkali dekat dengan solusi saat ini, tetapi memberikan tingkat perlindungan yang berbeda secara fundamental, yang juga sangat menyederhanakan transisi
  • Semakin banyak perangkat yang menyediakan tingkat keamanan baru hanya masalah waktu.
  • Dalam solusi elemen aman baru, UICC ditransfer di dalam chip chip untuk meningkatkan keamanan dan menghambat serangan
  • Solusi modern memberikan tingkat keamanan hingga EAL6 + yang cukup untuk digunakan dalam situasi berisiko tinggi.
  • Solusi tingkat EAL7 sedang dikembangkan, namun, mereka menggunakan teknologi tanpa standar yang akhirnya disetujui, oleh karena itu istilah untuk ketersediaan pasar mereka tidak ditentukan.

All Articles