Alat manajemen jarak jauh yang nyaman menghemat banyak energi administrator sistem - dan pada saat yang sama menimbulkan risiko keamanan yang sangat besar ketika mereka tidak dapat dinonaktifkan oleh perangkat keras menggunakan jumper atau sakelar pada papan sistem. Blok Intel Management Engine 11 di platform Intel modern benar-benar berbahaya - pada awalnya tidak dapat diputuskan dan, terlebih lagi, beberapa mekanisme inisialisasi dan fungsi prosesor terikat padanya, sehingga penonaktifan yang kasar dapat dengan mudah menyebabkan sistem tidak dapat beroperasi sepenuhnya. Kerentanannya terletak pada Intel Active Management Technology (AMT) dan, dengan serangan yang berhasil, Anda dapat memperoleh kendali penuh atas sistem, seperti yang dilaporkan pada bulan Mei tahun ini. Tapi peneliti dari Positive Technologies.
Prosesor IME itu sendiri merupakan bagian dari System Hub Chip (PCH). Dengan pengecualian slot prosesor PCI Express, semua komunikasi antara sistem dan dunia luar melewati PCH, yang berarti IME memiliki akses ke hampir semua data. Sebelum versi 11, serangan terhadap vektor ini tidak mungkin terjadi: prosesor IME menggunakan arsitekturnya sendiri dengan set instruksi ARC, yang tidak banyak diketahui oleh pengembang pihak ketiga. Tetapi di versi 11, mereka memainkan lelucon buruk dengan teknologi: itu ditransfer ke arsitektur x86, dan MINIX yang dimodifikasi digunakan sebagai OS, yang berarti bahwa studi pihak ketiga tentang kode biner menjadi jauh lebih mudah: baik arsitektur dan OS didokumentasikan dengan baik. Peneliti Rusia Dmitry Sklyarov, Mark Ermolov dan Maxim Goryachy berhasil menguraikan modul yang dapat dieksekusi dari IME versi 11 dan memulai studi menyeluruh mereka.
Intel AMT diberi peringkat 9,8 dari 10 untuk kerentanan. Sayangnya, menonaktifkan IME sepenuhnya pada platform modern tidak mungkin dilakukan karena alasan di atas - subsistem terkait erat dengan inisialisasi dan startup CPU, serta manajemen daya. Tetapi Anda dapat menghapus semua elemen yang tidak diperlukan dari gambar memori flash yang berisi modul IME, meskipun sangat sulit untuk melakukannya, terutama di versi 11. Proyek me_cleaner, sebuah utilitas yang memungkinkan Anda untuk menghapus bagian umum dari gambar dan hanya menyisakan komponen penting, sedang berkembang secara aktif. Tetapi mari kita berikan perbandingan kecil: jika dalam versi IME hingga 11 (sebelum Skylake) utilitas menghapus hampir semuanya, menyisakan sekitar 90 KB kode, maka saat ini perlu untuk menyimpan sekitar 650 KB kode - dan kemudian dalam beberapa kasus sistem mungkin mati setelah setengah jam, karena blokir IME memasuki mode pemulihan.
Namun, ada beberapa kemajuan. Kelompok peneliti yang disebutkan di atas berhasil menggunakan kit pengembangan, yang disediakan oleh Intel sendiri, dan menyertakan utilitas Flash Image Tool untuk mengonfigurasi parameter IME dan flasher Alat Pemrograman Flash yang bekerja melalui pengontrol SPI terintegrasi. Intel tidak membuat program ini tersedia untuk umum, tetapi tidak sulit untuk menemukannya di Internet.
File XML yang diperoleh dengan kit ini dianalisis (berisi struktur firmware IME dan deskripsi mekanisme tali PCH). Satu bit yang disebut "reserve_hap" (HAP) tampak mencurigakan karena deskripsi "Aktifkan Platform Jaminan Tinggi (HAP)". Pencarian web mengungkapkan bahwa ini adalah nama program platform berkekuatan tinggi yang terkait dengan NSA AS. Mengaktifkan bit ini menunjukkan bahwa sistem memasuki Mode Nonaktif Alt. Blok IME tidak menanggapi perintah dan tidak menanggapi pengaruh dari sistem operasi. Ada juga sejumlah nuansa yang lebih halus yang dapat ditemukan dalam artikel di Habrahabr.ru, tetapi versi baru me_cleaner telah menerapkan dukungan untuk sebagian besar modul berbahaya tanpa menyetel bit HAP, yang menempatkan mesin IME ke status "TemporaryDisable".
Modifikasi terbaru me_cleaner hanya menyisakan modul RBE, KERNEL, SYSLIB dan BUP bahkan dalam versi ke-11 IME, tidak ada kode yang ditemukan di dalamnya yang memungkinkan Anda untuk mengaktifkan sistem IME itu sendiri. Selain itu, Anda dapat menggunakan bit HAP untuk memastikan bahwa utilitas tersebut juga dapat melakukannya. Intel telah meninjau temuan penelitian dan mengonfirmasi bahwa sejumlah pengaturan IME memang terkait dengan kebutuhan pemerintah untuk peningkatan keamanan. Pengaturan ini diperkenalkan atas permintaan pelanggan pemerintah AS dan telah menjalani validasi terbatas dan tidak secara resmi didukung oleh Intel. Perusahaan juga menyangkal pengenalan yang disebut pintu belakang ke dalam produknya.
Singkatnya, ini menyatakan yang berikut (selanjutnya, dalam teks, penceritaan kembali subyektif saya).
Diduga, perusahaan besar di seluruh dunia, termasuk Apple, Amazon, dan lainnya seperti mereka, telah memesan server kelas atas yang mahal dari SuperMicro selama bertahun-tahun. Yang terakhir adalah ** makan dari volume pesanan seperti itu, pabriknya sendiri tidak lagi mampu mengatasinya. Kemudian dia memberikan produksi sejumlah motherboard kepada subkontraktor China-nya.
Orang-orang Tionghoa yang sopan mendatangi subkontraktor yang sama ini dan memberi mereka tawaran yang tidak bisa ditolak. Seperti, ayolah, teman-teman, atas permintaan kami, atas permintaan kami, Anda juga akan memasang satu lagi chip yang tidak berdokumen ma-a-a-a-merah di motherboard Anda. Jika Anda melakukannya - kami akan memberi Anda uang tambahan, tetapi jika Anda tidak melakukannya, kami akan menangani bisnis Anda dengan berbagai cek. Akibatnya, motherboard yang "dimodifikasi" dengan cara ini dijual ke seluruh dunia, dan beberapa di antaranya juga berakhir di perusahaan besar Amerika di eselon satu, bank, dan lembaga pemerintah.
Beberapa waktu berlalu. Salah satu divisi Amazon, sebuah perusahaan tertentu bernama "Elements" menjaga keamanan solusinya di bidang pemrosesan massal streaming video. Antara lain, mereka memerintahkan audit keamanan perangkat keras dari perusahaan Kanada tertentu. Dan di sinilah chip tak berdokumen yang tersembunyi dengan terampil dan ditanamkan ke motherboard ditemukan. Yang tidak begitu mudah ditemukan. Karena, pertama, mereka sangat kecil dan berwarna abu-abu. Kedua, mereka menyamar sebagai kopling solder biasa atau kapasitor chip. Ketiga, pada revisi terakhir mereka mulai disembunyikan tepat di ketebalan textolite, sehingga hanya terlihat pada sinar-X.
Jika Anda percaya teks tersebut, maka melalui microcode tertanam, chip mata-mata melalui modul BMC secara berkala "ping" salah satu "dalang" anonimnya, dari siapa ia menerima instruksi lebih lanjut untuk bertindak. Dan bahkan musuh yang disebutkan di atas dapat mengunduh "dari mana" beberapa kode, yang kemudian disuntikkan langsung ke kernel sistem operasi yang sedang berjalan atau ke kode aplikasi.
Nah, ocehan lebih lanjut mengikuti tentang seberapa besar lubang keamanan, jenis kambing orang Cina ini, apa keberanian dan kelancangan mereka, semua kambing tidak dapat dipercaya, "sekarang kita semua akan mati" dan itu saja. Penalaran yang menarik secara teknis berakhir di sana.
Secara umum, saya orang yang sangat skeptis dalam hidup. Tanpa menyangkal kejeniusan orang Cina, beberapa momen secara pribadi bagi saya tampak tidak realistis. Ambillah begitu saja, diam-diam dari para insinyur dan manajemen, dan melakukan perubahan pada desain motherboard di tingkat pabrikan, tanpa mengganggu kinerjanya? Dan jika dengan pengetahuan manajemen, lalu bagaimana dia termotivasi untuk mengekspos semua bisnis besar tersebut pada risiko reputasi yang begitu serius? Masukkan kode Anda ke dalam sistem operasi dan aplikasi? Nah, dengan Windows, tidak apa-apa, saya siap percaya dengan derit. Tetapi di Linux, di mana Anda tidak tahu sebelumnya siapa yang membuatnya dan bagaimana? Latihan aktivitas jaringan tanpa jari? Yang, jika diinginkan, dapat dideteksi dan disaring. Belum lagi fakta bahwa admin normal tidak pernah mengekspos BMC "untuk menunjukkan pantat telanjang mereka di Internet", dan admin yang baik biasanya membuangnya ke VLAN terpisah tanpa kemampuan untuk mengakses di mana pun.
Nah, sekali lagi, baru-baru ini beberapa mata-mata mania dan paranoia berkembang di kalangan orang Amerika. Dan mereka juga memutuskan untuk bertengkar dengan China. Jadi objektivitas dan ketidakberpihakan dari artikel asli adalah pertanyaan besar. Di sisi lain, saya tidak begitu mengerti dari mana mereka mendapatkan subjek yang begitu indah. Pada tahun 2011 lalu, majalah tabloid "Ksakep" menulis tentang penanda berbahasa Mandarin yang sama pada level microcode di flash drive BMC. Artikel itu juga bernada paranoid delirium, tapi tidak ada asap tanpa api. Atau apakah itu terjadi?
Secara umum, bagikan pendapat Anda di komentar. Sangat menarik untuk mendengar Kamerad kvazimoda24 tentang kemungkinan untuk mengintegrasikan beberapa jenis sirkuit mikro mata-mata ke dalam ketebalan PCB.
Saya bukan seorang profesional di bidang keamanan informasi, bidang minat saya adalah sistem komputasi berkinerja tinggi. Saya sampai pada topik keamanan informasi secara tidak sengaja, dan inilah yang akan dibahas lebih lanjut. Saya pikir cerita fiksi ini akan lebih menjelaskan masalah yang terkait dengan perangkat keras virtualisasi daripada pernyataan fakta yang kering. Bahkan sebelum pengumuman resmi prosesor Intel baru dengan dukungan untuk virtualisasi perangkat keras (pada awal 2007), saya membayangkan menggunakan chip ini untuk membuat sistem komputasi tunggal berdasarkan beberapa server, yang akan menjadi unit komputasi tunggal dengan arsitektur SMP untuk OS dan aplikasi. Untuk melakukan ini, diperlukan untuk menulis hypervisor kompak dengan fungsionalitas non-standar, fitur utamanya bukanlah pembagian sumber daya unit komputasi tunggal antara OS yang berbeda, tetapi, sebaliknya, penyatuan sumber daya beberapa komputer menjadi satu kompleks, yang akan dikontrol oleh satu OS. Pada saat yang sama, OS tersebut bahkan tidak perlu menebak bahwa ia tidak berurusan dengan satu sistem, tetapi dengan beberapa server. Perangkat keras virtualisasi memberikan kesempatan seperti itu, meskipun awalnya tidak dimaksudkan untuk menyelesaikan masalah seperti itu. Sebenarnya, sistem di mana perangkat keras virtualisasi akan digunakan untuk komputasi kinerja tinggi belum dibuat, dan bahkan pada saat itu saya secara umum adalah pelopor dalam bidang ini. Hypervisor untuk tugas ini, tentu saja, ditulis dari awal. Pada dasarnya penting untuk menjalankan OS yang sudah ada di platform virtual sehingga dari perintah pertama OS loader semuanya akan berfungsi di lingkungan virtual. Untuk melakukan ini, kami harus memvirtualisasi model sebenarnya dan semua mode operasi prosesor dan memulai virtualisasi segera setelah menginisialisasi platform sebelum memuat OS. Karena sistem virtualisasi untuk tujuan ini ternyata non-standar dan tampak seperti modul perangkat lunak kompak yang sepenuhnya otonom (ukuran kode tidak lebih dari 40-60 Kb), bahasa tersebut entah bagaimana tidak berani menyebutnya hypervisor, dan saya mulai menggunakan istilah "hyperdriver", karena lebih akurat menyampaikan inti dari tujuan fungsional sistem. Peralatan serial dengan perangkat keras virtualisasi belum tersedia pada saat itu, namun berkat kerja sama dengan Craftway, saya memiliki akses ke sampel praproduksi prosesor dan motherboard dengan dukungan virtualisasi, yang belum dirilis secara resmi (disebut sampel, yang dengan ramah Intel berikan kepada mitra bisnis). Oleh karena itu, pekerjaan mulai mendidih pada peralatan "sampel" ini. Maket dirakit, hyperdriver ditulis, semuanya berfungsi sebagaimana mestinya. Saya harus mengatakan bahwa pada saat itu perangkat keras virtualisasi sangat "mentah", oleh karena itu berulang kali menolak untuk bekerja seperti yang tertulis dalam dokumentasi. Saya harus berurusan dengan setiap perintah perakitan, dan perintah untuk perangkat keras virtualisasi harus ditulis dalam kode mesin, sejak saat itu tidak ada kompiler yang mendukung perintah virtualisasi. Saya bangga dengan hasil yang didapat, saya merasa hampir menjadi penguasa dunia maya ... tetapi euforia saya tidak bertahan lama, hanya sebulan. Pada saat itu, saya sudah menyusun tata letak berdasarkan server dengan peralatan virtualisasi, sampel serial pertama baru saja muncul, tetapi tata letak tidak berfungsi. Saya mulai mencari tahu dan menyadari bahwa sistem saya hang saat menjalankan perintah virtualisasi perangkat keras. Kesan yang dibuat adalah bahwa keduanya tidak berfungsi sama sekali, atau bekerja entah bagaimana di luar kotak. Gantung hanya terjadi ketika perangkat keras virtualisasi berjalan dalam mode nyata, tetapi jika sistem saya dimulai dari mode terlindungi setelah OS dimuat, maka semuanya baik-baik saja. Para profesional mengetahui bahwa dalam revisi awal, perangkat keras virtualisasi Intel tidak mendukung operasi prosesor waktu nyata. Ini membutuhkan lapisan tambahan yang cukup besar untuk meniru x86 virtual. Karena hyperdriver dimulai sebelum sistem operasi dimuat, sehingga dapat sepenuhnya percaya pada konfigurasi virtual baru, sebagian kecil kode boot OS dijalankan dalam mode prosesor yang sebenarnya. Sistem mati tepat pada penangan emulasi mode-nyata di hyperdriver. Awalnya saya berpikir bahwa saya salah paham, tidak mengerti sesuatu, lupa tentang sesuatu. Saya memeriksa semuanya hingga bit terakhir dalam kode saya, saya tidak menemukan kesalahan apa pun dan mulai berbuat dosa bukan pada diri saya sendiri, tetapi pada rekan-rekan saya dari balik bukit. Hal pertama yang saya lakukan adalah mengganti prosesor, tetapi itu tidak membantu. Pada motherboard saat itu, perangkat keras virtualisasi hanya ada di BIOS, di mana ia diinisialisasi ketika server dihidupkan, jadi saya mulai membandingkan bios pada motherboard (motherboard dengan jenis yang sama dengan sampel) - semuanya cocok dengan byte dan nomor BIOS itu sendiri. Saya jatuh pingsan dan, tidak lagi tahu apa yang harus dilakukan, menerapkan pilihan terakhir - "metode poke". Apa yang tidak saya lakukan, tidak lagi berpikir, tetapi hanya menggabungkan, dan pada akhirnya saya dengan bodoh mengunduh bios dari situs web resmi Intel dan menulis ulang mereka ke motherboard, setelah itu semuanya bekerja ... Tidak ada batasan yang mengejutkan saya: nomor BIOS sama , gambar BIOS cocok dengan byte demi byte, tetapi untuk beberapa alasan motherboard serial hanya mulai berfungsi ketika saya mengunggah BIOS yang sama yang diambil dari situs web Intel ke dalamnya. Lantas, alasannya masih di motherboard? Tetapi satu-satunya perbedaan mereka adalah pada penandaannya: Assembled Canada tertulis pada sampel, dan Assembled China pada papan serial. Jelas terlihat bahwa papan dari China berisi modul perangkat lunak tambahan yang tertanam di BIOS, tetapi modul ini tidak terlihat oleh program analisis standar. Mereka, tampaknya, juga bekerja dengan perangkat keras virtualisasi dan, karenanya, dapat menyembunyikan konten BIOS yang sebenarnya. Alasan pembekuan hyperdriver saya pada papan bahasa Mandarin ini juga menjadi jelas: dua sistem perangkat lunak bekerja secara bersamaan dengan perangkat keras virtualisasi yang sama, yang tidak mengizinkan berbagi sumber daya mereka. Saya ingin berurusan dengan biografi berbahaya ini, dan tanpa berpikir dua kali tentang "bookmark", "pintu belakang", "fitur tak berdokumen", yang ada hanyalah minat akademis, dan tidak lebih. Saya harus mengatakan bahwa bersamaan dengan pengenalan perangkat keras virtualisasi, Intel secara radikal memperbarui chipset. Chipset bernomor 5000x ini masih diproduksi dengan beberapa modifikasi. Jembatan selatan dari chipset ini, 631xESB / 632xESB I / O Controller Hub, yang menghubungkan sirkuit mikro dengan bios, praktis tidak berubah sejak 2007 dan digunakan sebagai chip dasar untuk hampir semua server dalam versi dua soket. Saya mengunduh lembar data untuk jembatan selatan, membaca deskripsinya dan tercengang. Ternyata tiga chip memori flash terhubung ke jembatan selatan baru ini: yang pertama adalah BIOS standar, yang kedua didedikasikan untuk program prosesor pengontrol jaringan, dan yang ketiga ditujukan untuk unit BMC yang terintegrasi ke jembatan selatan. Unit manajemen sistem (BMC) adalah sarana kendali jarak jauh dan pemantauan fasilitas komputasi. Ini sangat diperlukan untuk ruang server yang besar, di mana tidak mungkin untuk tinggal dalam waktu lama karena kebisingan, suhu, dan angin kencang. Fakta bahwa unit BMC memiliki prosesor sendiri dan, karenanya, memori flash untuk program-programnya, tentu saja, bukanlah berita, tetapi sampai sekarang prosesor dan memori seperti itu diambil pada papan terpisah yang terhubung ke motherboard: jika Anda mau, taruh, Anda tidak mau jangan taruh itu. Sekarang Intel telah mengimplementasikan komponen-komponen ini di jembatan selatan, terlebih lagi, itu menghubungkan unit ini ke bus sistem dan tidak menggunakan saluran jaringan khusus (sebagaimana disediakan oleh standar IPMI yang menjelaskan fungsi unit BMC) untuk pengoperasian jaringan layanan, tetapi menyalurkan semua lalu lintas jaringan layanan ke jaringan utama adaptor. Kemudian saya belajar dari dokumentasi bahwa program-program pada sirkuit mikro flash dari unit BMC dienkripsi, dan modul kriptografi perangkat keras khusus, juga diintegrasikan ke dalam jembatan selatan, digunakan untuk membukanya. Unit Angkatan Laut seperti itu belum pernah saya temui sebelumnya. Bukan tidak berdasar, berikut petikan dari dokumentasi jembatan selatan ini:
- Prosesor ARC4 bekerja pada kecepatan 62,5 MHz.
- Antarmuka ke kedua port LAN Intel® 631xESB / 632xESB I / O Controller Hub memungkinkan koneksi langsung ke internet dan akses ke semua register LAN.
- Modul kriptografi, mendukung algoritma enkripsi AES dan RC4 dan algoritma otentikasi SHA1 dan MD5.
- Mekanisme aman untuk FW Teregulasi yang dapat dimuat.
- Papan server seri 5000 Intel yang baru berisi program yang tertanam dalam memori flash unit BMC dan dijalankan pada prosesor pusat, dan program ini berjalan menggunakan perangkat keras virtualisasi dari prosesor pusat.
- Gambar memori flash dari situs web resmi Intel tidak berisi modul perangkat lunak tersebut, oleh karena itu, modul perangkat lunak yang mengganggu saya di-flash secara ilegal ke motherboard selama tahap produksi.
- Memori flash unit BMC berisi modul perangkat lunak terenkripsi yang tidak dapat dirakit dan dituangkan ke dalam memori flash tanpa mengetahui kunci enkripsi, oleh karena itu, orang yang memasukkan modul perangkat lunak ilegal ini mengetahui kunci enkripsi, yaitu memiliki akses ke informasi rahasia yang sebenarnya.
![](https://i1.wp.com/xakep.ru/wp-content/uploads/post/58104/3.png)
![](https://i2.wp.com/xakep.ru/wp-content/uploads/post/58104/4.png)
Dahulu kala, ketika komputer pribadi dibeli di luar negeri dalam beberapa ratus keping, dan bukan dalam jutaan "sirkulasi", di bawah naungan salah satu departemen KGB, kantor komersial kecil diorganisir untuk "mencari pembatas buku." Sekarang kita semua mengerti betul bahwa ini adalah salah satu cara jujur \u200b\u200buntuk mengambil uang, karena pada tingkat dukungan dan organisasi itu mungkin untuk menemukan apa pun, tetapi tidak hanya tab dalam komposisi chip. Tetapi pembeli besar dari sejumlah kantor negara dan perusahaan masih tidak punya tujuan. Mereka membayar.
periklanan
Saat ini Intel bahkan tidak menyembunyikan fakta bahwa alat untuk kendali PC jarak jauh dibangun ke dalam prosesor dan chipset platform komputer modern. Active Management Technology (AMT) Intel yang sangat dipublikasikan akan membantu menyederhanakan pemeliharaan sistem jarak jauh - diagnostik dan pemulihan - tanpa campur tangan pengguna. Tetapi tidak ada yang diasuransikan bahwa hak administrator AMT juga dapat digunakan untuk tujuan jahat dan, ternyata, bukan hanya penunjuk, ada "hipotek" secara keseluruhan.Menurut publikasi pakar keamanan Damien Zammit, chipset Intel modern memiliki chip mikrokontroler Intel Management Engine (Intel ME) lokal dan terisolasi. Ini adalah solusi dengan firmware sendiri yang tidak tersedia untuk pemeriksaan oleh alat pihak ketiga dan dengan kontrol penuh atas prosesor, memori, dan sistem secara keseluruhan. Selain itu, pengontrol dapat bekerja dengan PC dimatikan, selama daya disuplai ke memori. Tentu saja, sistem operasi dan utilitas tidak akan tidur atau secara spiritual tidak mengetahui aktivitas pengontrol dan tidak akan membunyikan alarm saat bekerja dengan sistem dan data.
Kekhawatiran bahwa dengan tingkat teknis musuh yang memadai, ada bahaya melakukan modifikasi tersembunyi pada chip apa pun. Chip yang dimodifikasi akan bekerja di node kritis, dan "kuda Trojan" atau "tulang punggung perangkat keras" yang diperkenalkan tidak akan diketahui, merusak pertahanan negara pada tingkat yang paling mendasar. Untuk waktu yang lama, ancaman semacam itu tetap bersifat hipotesis, tetapi tim peneliti internasional baru-baru ini dapat menerapkannya di tingkat fisik.
Georg T. Becker dari Universitas Massachusetts, bersama dengan rekan dari Swiss dan Jerman, sebagai bagian dari bukti konsep, membuat dua versi "trojan tingkat perangkat keras" yang mengganggu (pseudo) pembuat angka acak (PRNG) di blok kriptografi prosesor Intel Ivy. Jembatan. Kunci kriptografi yang dibuat menggunakan PRNG yang dimodifikasi untuk sistem enkripsi apa pun akan mudah diprediksi.
Kehadiran tab perangkat keras sama sekali tidak ditentukan oleh tes internal yang dirancang khusus untuk ini, atau oleh pemeriksaan eksternal prosesor. Bagaimana ini bisa terjadi? Untuk menjawab pertanyaan ini, perlu kembali ke sejarah munculnya perangkat keras PRNG dan berkenalan dengan prinsip-prinsip dasar operasinya.
Saat membuat sistem kriptografi, perlu untuk menghilangkan kemungkinan pemilihan kunci yang cepat. Panjang dan tingkat ketidakpastian mereka secara langsung mempengaruhi jumlah opsi yang harus disortir oleh pihak penyerang. Panjangnya dapat diatur secara langsung, tetapi jauh lebih sulit untuk mencapai keunikan varian utama dan probabilitasnya yang setara. Untuk melakukan ini, nomor acak digunakan selama pembuatan kunci.
Saat ini, secara umum diterima bahwa karena algoritma perangkat lunak saja tidak mungkin untuk mendapatkan aliran angka yang benar-benar acak dengan distribusi kacau yang seragam di seluruh himpunan yang ditentukan. Mereka akan selalu memiliki frekuensi tinggi di beberapa bagian rentang dan tetap dapat diprediksi. Oleh karena itu, sebagian besar penghasil angka yang digunakan dalam praktik harus dianggap sebagai pseudo-random. Mereka jarang cukup dapat diandalkan secara kriptografis.
Untuk mengurangi efek prediktabilitas, generator bilangan apa pun membutuhkan sumber benih acak yang andal. Biasanya, hasil pengukuran dari beberapa proses fisik yang kacau digunakan seperti itu. Misalnya, fluktuasi intensitas getaran cahaya atau pencatatan gangguan frekuensi radio. Akan lebih mudah secara teknis untuk menggunakan elemen keacakan seperti itu (dan seluruh perangkat keras PRNG) dalam versi yang ringkas, dan idealnya membuatnya menjadi built-in.
Intel telah membangun (pseudo) generator nomor acak ke dalam chipnya sejak akhir tahun sembilan puluhan. Sebelumnya, sifat mereka analog. Nilai acak pada keluaran diperoleh karena pengaruh proses fisik yang sulit diprediksi - gangguan termal dan gangguan elektromagnetik. Generator analog relatif mudah diimplementasikan sebagai blok terpisah, tetapi sulit untuk diintegrasikan ke sirkuit baru. Karena prosesnya menjadi lebih kecil, diperlukan langkah kalibrasi yang baru dan panjang. Selain itu, penurunan tegangan suplai secara teratur memperburuk rasio signal-to-noise dalam sistem tersebut. PRNG bekerja terus-menerus dan menghabiskan banyak energi, dan kecepatan pekerjaan mereka masih jauh dari yang diinginkan. Kekurangan ini memberlakukan pembatasan pada aplikasi yang memungkinkan.
Ide generator bilangan acak (pseudo) dengan sifat serba digital tampak aneh, jika tidak masuk akal, untuk waktu yang lama. Bagaimanapun, keadaan sirkuit digital apa pun selalu sangat deterministik dan dapat diprediksi. Bagaimana cara memasukkan elemen keacakan yang diperlukan jika tidak ada komponen analog?
Upaya untuk menciptakan kekacauan yang diinginkan berdasarkan elemen digital saja telah dilakukan oleh para insinyur Intel sejak 2008 dan telah dinobatkan dengan sukses setelah beberapa tahun melakukan penelitian. Karya tersebut dipresentasikan pada 2010 di VLSI Summer Symposium di Honolulu dan membuat revolusi kecil dalam kriptografi modern. Untuk pertama kalinya, PRNG yang sepenuhnya digital, cepat, dan hemat energi telah diimplementasikan dalam prosesor tujuan umum komersial.
Judul kerja pertamanya adalah Bull Mountain. Kemudian diganti namanya menjadi Secure Key. Blok kriptografi ini terdiri dari tiga modul dasar. Yang pertama menghasilkan aliran bit acak dengan kecepatan yang relatif lambat 3 Gbps. Yang kedua mengevaluasi variansnya dan menggabungkannya ke dalam blok 256 bit, yang digunakan sebagai sumber benih acak. Setelah serangkaian prosedur matematika, aliran angka acak 128-bit dihasilkan pada kecepatan yang lebih tinggi di blok ketiga. Atas dasar mereka, dengan menggunakan instruksi RdRand baru, jika perlu, nomor acak dengan panjang yang dibutuhkan dibuat dan ditempatkan dalam register yang dirancang khusus: 16, 32 atau 64 bit, yang akhirnya ditransfer ke program yang memintanya.
Kesalahan dalam generator bilangan acak (palsu) dan modifikasinya yang berbahaya menyebabkan hilangnya kepercayaan pada produk kriptografi populer dan prosedur sertifikasi mereka.
Karena pentingnya PRNG yang luar biasa untuk sistem kriptografi apa pun, pengujian dibuat ke dalam Kunci Aman untuk memeriksa kualitas nomor acak yang dihasilkan, dan kelompok ahli terkemuka dilibatkan untuk sertifikasi. Seluruh unit memenuhi kriteria standar ANSI X9.82 dan NIST SP 800-90. Selain itu, tersertifikasi NIST FIPS 140-2 Level 2.
Hingga saat ini, sebagian besar pekerjaan pada perangkat keras Trojans hanya bersifat hipotesis. Peneliti mengusulkan desain tambahan dari sirkuit logika kecil yang harus ditambahkan dengan cara tertentu ke chip yang ada. Misalnya, Samuel Talmadge King dan rekan penulisnya mempresentasikan di LEET-08 versi trojan perangkat keras semacam itu untuk prosesor pusat yang akan memberikan kendali penuh atas sistem kepada penyerang jarak jauh. Dengan hanya mengirimkan paket UDP yang dikonfigurasi, seseorang dapat membuat perubahan apa pun pada komputer tersebut dan mendapatkan akses tak terbatas ke memorinya. Namun, rangkaian logis tambahan relatif mudah diidentifikasi dengan mikroskop, belum lagi metode khusus untuk mencari modifikasi tersebut. Kelompok Becker pergi ke arah lain:
Alih-alih menghubungkan sirkuit tambahan ke chip, kami mengimplementasikan tab level perangkat keras kami hanya dengan mengubah operasi beberapa mikrotransistor yang sudah ada di dalamnya. Setelah beberapa kali mencoba, kami dapat secara selektif mengubah polaritas dopan dan membuat modifikasi yang diinginkan pada pengoperasian seluruh unit kriptografi. Oleh karena itu, keluarga Trojan kami telah terbukti tahan terhadap sebagian besar metode deteksi, termasuk pemindaian mikroskop dan perbandingan dengan chip referensi. "
Sebagai hasil dari pekerjaan yang dilakukan, alih-alih nomor unik dengan panjang 128 bit, blok Kunci Aman ketiga mulai mengakumulasi urutan di mana hanya 32 bit yang berbeda. Kunci kriptografi yang dihasilkan atas dasar bilangan acak semu seperti itu sangat dapat diprediksi dan dapat dipecahkan dalam beberapa menit di komputer rumah biasa.
Perubahan selektif dalam konduktivitas listrik yang mendasari tab perangkat keras diterapkan dalam dua versi:
- pemrosesan digital sinyal dari Intel Secure Key;
- digunakan pada saluran samping menggunakan metode kotak Substitusi.
Metode terakhir lebih fleksibel dan dapat diterapkan dengan sedikit modifikasi pada chip lain.
Kemampuan untuk menggunakan PRNG onboard melalui instruksi RdRand pertama kali muncul di prosesor Intel Ivy Bridge. Intel telah menulis panduan terperinci untuk pemrogram. Mereka menjelaskan metode untuk implementasi optimal dari algoritme kriptografi dan memberikan tautan ke deskripsi tentang cara kerja Secure Key. Untuk waktu yang lama, upaya para pakar keamanan ditujukan untuk menemukan kerentanan di bagian perangkat lunak. Mungkin, untuk pertama kalinya, intervensi tersembunyi di tingkat perangkat keras ternyata merupakan teknologi yang jauh lebih berbahaya dan cukup memungkinkan.