Fungsi fisik yang tidak dapat dipertanggungjawabkan: perlindungan untuk elektronik terhadap penyalinan ilegal


Sumber: Ekonomi palsu online : elektronik konsumen, sebuah laporan yang dibuat oleh CSC pada tahun 2017

Selama 10 tahun terakhir, jumlah barang palsu di dunia meningkat dua kali lipat. Data ini telah diterbitkan dalam Tinjauan Hak Kekayaan Intelektual Akhir Tahun terbaru oleh Departemen Keamanan Dalam Negeri AS pada tahun 2016 (tahun terbaru dilacak). Banyak pemalsuan berasal dari Cina (56%), Hong Kong (36%) dan Singapura (2%). Para produsen barang asli menderita kerugian serius, beberapa di antaranya terjadi di pasar elektronik.

Banyak produk modern mengandung komponen elektronik: pakaian, sepatu, jam tangan, perhiasan, mobil.
Tahun lalu, kerugian langsung dari penyalinan ilegal elektronik konsumen dan komponen elektronik dalam komposisi barang lain sekitar $ 0,5 triliun.

Bagaimana cara mengatasi masalah ini?

Masalah ini dapat diselesaikan dengan berbagai metode untuk melindungi elektronik digital dari penyalinan ilegal, modifikasi dan rekayasa terbalik: enkripsi perangkat keras (AES, RSA, dll.), Hashing (misalnya, SHA-256, MD-5), pengenalan digital tanda air dan sidik jari dalam deskripsi desain, kebingungan leksikal dan fungsional, verifikasi formal, dan lainnya.

Pada artikel ini, kita akan berbicara tentang salah satu metode perlindungan yang paling hemat biaya dalam hal biaya perangkat keras - fungsi fisik yang tidak dapat diklarifikasi (PUF).

Kerugian dari sebagian besar metode yang disebutkan di atas adalah biaya perangkat keras yang signifikan dan, sebagai akibatnya, konsumsi daya yang tinggi.

Dengan munculnya konsep Internet of Things (IoT), persyaratan untuk area yang ditempati oleh perangkat digital pada chip sirkuit terintegrasi, serta untuk konsumsi daya, menjadi lebih ketat karena ukuran perangkat menurun secara dramatis dari tahun ke tahun.

Fungsi fisik yang tidak dapat diklarifikasi (PUF)


Salah satu cara untuk mengidentifikasi dan mengotentikasi perangkat digital adalah fungsi fisik yang tidak dapat diklarifikasi, yang jauh lebih ekonomis untuk diterapkan daripada metode perlindungan di atas.

Apa itu PUF? Sulit menemukan dua benda yang benar-benar identik di antara benda-benda material di sekitar kita. Bahkan dalam produksi massal, setiap objek memiliki keunikan karena ketidakakuratan dan kecelakaan. Fitur-fitur ini dari setiap objek individu dapat didaftarkan dan digunakan sebagai pengidentifikasi unik, semacam "sidik jari."

Contoh yang baik adalah optik PUF . Ambil selembar gelas yang meleleh, tambahkan gelembung udara ke dalamnya, dinginkan massa ini dan potong menjadi batang yang sama. Peluang untuk mendapatkan dua batang yang benar-benar identik dapat diabaikan; gelembung udara di dalam akan didistribusikan secara tidak merata. Kami dapat memperbaiki perbedaan-perbedaan ini dengan mengirimkan sinar laser ke bar (permintaan), dan menerima di pola interferensi yang unik dari balok radiasi setelah pembiasan (respons). Sebagai hasilnya, kami memperoleh fungsi fisik yang tidak dapat diklarifikasi yang akan menentukan ketergantungan respon pada permintaan input. Tentu saja, fungsi ini bukan analitik, sehingga pemilik sah objek maupun penyerang tidak dapat menemukannya terlebih dahulu. Anda hanya dapat menguji sejumlah produk dan membuat tabel nilai input dan output, yang akan berfungsi sebagai kriteria untuk menentukan keaslian objek.

PUF untuk perlindungan elektronik didasarkan pada penggunaan variasi proses manufaktur selama pembuatan sirkuit terpadu: misalnya, nilai akurat untuk tegangan ambang batas, keterlambatan propagasi sinyal, frekuensi operasi komponen, dll. Dalam proses desain standar, insinyur desain elektronik berusaha mengurangi dampak variasi pada produk akhir. Untuk PUF, sebaliknya, fenomena yang tidak terkendali ini digunakan untuk mengekstraksi keacakan dan keunikan perangkat digital.

Sebenarnya, PUF mirip dengan implementasi perangkat keras dari fungsi hash, satu-satunya perbedaan adalah bahwa keunikan nilai output PUF didasarkan pada keunikan sirkuit terintegrasi tertentu, dan bukan pada algoritma matematika.

Argumen input PUF (permintaan) disebut sebagai tantangan (CH), dan nilai outputnya adalah response ยฎ. Dengan cara ini, untuk beberapa sirkuit terintegrasi - ICk, serangkaian tantangan - {CH 0 , ..., CH N-1 } - akan dipetakan secara unik ke set respon {R 0 , ..., R N-1 } dengan PUF :

Ri=PUF(CHi)



Sepasang pasangan tantangan-respons (CRP) {(CH 0 , R0), ..., (CH N-1 , R N-1 )} secara unik menandai ICk sirkuit terintegrasi dan tidak dapat disalin bahkan untuk deskripsi desain yang benar-benar identik ( lihat diagram di bawah).


Keunikan antar-chip dan per-chip dari sirkuit terpadu (IC)

Seperti yang ditunjukkan dalam diagram, ketika menerapkan deskripsi desain yang identik dari PUF pada sirkuit terintegrasi yang berbeda, respons (R i ) terhadap tantangan yang sama (CH i ) akan menjadi unik (berbeda satu sama lain) untuk setiap salinan. Fenomena ini disebut keunikan antar-chip, yaitu kemampuan untuk membedakan sirkuit terintegrasi satu sama lain menggunakan PUF. Ketika menggunakan realisasi identik PUF pada satu chip untuk mengidentifikasi, misalnya, berbagai komponen kekayaan intelektual (IP), fenomena keunikan per-chip diamati. Karena realisasi PUF di dalam sebuah chip berbeda setidaknya dalam pengaturan timbal baliknya, keunikan per-chip atau tanda tangan unik-chip, biasanya, lebih menonjol daripada inter-chip.

Implementasi PUF yang ada dan penggunaannya


Saat ini, ada banyak implementasi PUF berdasarkan:

  1. Keterlambatan propagasi sinyal . Menggunakan nilai biner dari tantangan, konfigurasi jalur simetris diatur, di mana beberapa salinan dari satu sinyal didistribusikan. Tanggapan PUF adalah hasil dari membandingkan penundaan sinyal propagasi.
  2. Frekuensi komponen . Dasar dari PUF ini adalah perbandingan pasangan komponen yang identik dengan frekuensi yang unik. Tantangan adalah semua jenis pasangan indeks dari berbagai komponen, dan jawabannya adalah hasil dari membandingkan frekuensi pekerjaan mereka.
  3. Status memori . Sebagai hasil dari penyalaan dan / atau pengaturan ulang keadaan perangkat penyimpanan statis (SRAM), nilai awalnya disimpan di masing-masing elemen memori (0 atau 1) adalah unik dan acak. Tantangan untuk PUF ini adalah power on / off, dan responsnya adalah keadaan yang diamati dari masing-masing elemen memori yang secara unik menjadi ciri sirkuit terintegrasi tempat PUF diimplementasikan.
  4. Sensor Gambar CMOS . Setiap gambar yang dibuat dengan bantuan matriks fotosensitif (Sensor Gambar) memiliki komponen noise konstan yang mencirikan keunikan dari matriks yang diterapkan. Prinsip operasi PUF ini mirip dengan PUF berdasarkan perbandingan frekuensi dengan satu-satunya perbedaan adalah perbandingan dibuat sesuai dengan nilai-nilai tegangan ambang batas dari masing-masing elemen matriks.
  5. Tegangan ambang batas transistor . Jenis PUF ini hanya dapat diimplementasikan sebagai analog karena seorang insinyur memiliki akses ke nilai tegangan ambang batas dalam kasus ini. Dasar untuk PUF ini, seperti PUF berdasarkan frekuensi, adalah perbandingan karakteristik beberapa transistor yang digunakan dalam rangkaian terintegrasi.
  6. Cermin saat ini . Kelas PUF ini didasarkan pada implementasi berbagai mirror saat ini. Nilai tegangan pada node array ini secara unik menandai rangkaian terintegrasi. Tantangannya, dalam hal ini, adalah jumlah kolom dan baris elemen, yang nilai tegangannya ingin Anda bandingkan. Dengan demikian, responsnya adalah hasil dari membandingkan perbedaan tegangan pada sepasang node dengan nilai ambang batas.
  7. Tekanan eksternal pada layar ponsel cerdas . Dalam implementasi ini, tantangan PUF adalah aksi pengguna yang menggesekkan jari pada layar sesuai dengan pola tertentu (seperti kunci grafis di smartphone). Berdasarkan nilai tekanan pengguna pada layar ponsel cerdas, nilai respons unik dihitung yang menjadi ciri pengguna dan ponsel cerdas sehingga dapat digunakan untuk otentikasi.
  8. Struktur kertas . Implementasi PUF ini didasarkan pada keunikan struktur kertas karena variasi selama proses pembuatan. Dengan demikian, media kertas tertentu dapat digunakan sebagai sumber kunci kriptografi yang unik.

Seperti yang ditunjukkan di atas, ada berbagai jenis PUF yang dapat diimplementasikan pada perangkat digital dan menggunakan teknologi lain (optik, magnetik, kertas, dll.).

Implementasi komersial pertama PUF pada tahun 2008 adalah pengidentifikasi frekuensi radio yang diproduksi oleh Perusahaan Verayo. Juga, saat ini, banyak produsen FPGA - misalnya, Xilinx dan Altera (Intel) - menggunakan PUF sebagai pengidentifikasi FPGA yang tidak dikloning.

Karena PUF digunakan sebagai primitif kriptografi (generator angka acak, pengidentifikasi unik, fungsi hash perangkat keras), banyak produsen tidak mengungkapkan penggunaan PUF untuk merahasiakan detail implementasi protokol keamanan mereka dari penyusup.

Contoh memori berbasis PUF (SRAM)


Sebagai contoh PUF, kami akan menggunakan implementasi PUF berdasarkan memori menggunakan Xilinx Spartan 3E FPGA, yang merupakan bagian dari papan pengembangan Digilent Nexys-2. Emulasi elemen memori diimplementasikan sebagai elemen bistable, dan daya hidup / mati dimodelkan dengan memprogram ulang FPGA menggunakan file konfigurasi yang sama.

Gambar di bawah ini menunjukkan pengidentifikasi dua FPGA identik, yang diperoleh sebagai hasil pemrograman mereka dengan file bit yang sama. Warna hitam menunjukkan โ€œelemen memoriโ€ yang mempertahankan nilai 0 sebagai hasil dari 100 pemrograman ulang, warna putih menunjukkan nilai 1. Nuansa abu-abu adalah mereka yang mengubah nilai dari peluncuran ke peluncuran. Dengan demikian, semakin hitam dalam warna "elemen", semakin banyak nilai 0 yang dihasilkan sebagai hasil pemrograman ulang.


Pengidentifikasi 64-bit dari dua FPGA identik

Seperti yang terlihat dari gambar, metode "kartu memori" berbeda secara signifikan: jarak Hamming untuk pengidentifikasi 64-bit adalah sekitar 20. Oleh karena itu, kemungkinan bahwa pengidentifikasi akan sama pada FPGA yang berbeda cukup kecil, kurang dari 0,01. "Kartu memori" yang disebutkan di atas dapat digunakan dalam dua cara: untuk mengidentifikasi FPGA dan sebagai sumber keacakan karena kehadiran unsur-unsur yang tidak permanen.

Identifikasi yang dapat diandalkan akan membutuhkan penggunaan kode koreksi kesalahan (ECC) untuk menstabilkan "kartu memori" yang diamati. Dalam artikel ini, kami menggunakan metode pemilihan mayoritas . Untuk mengimplementasikan generator angka acak, sebaliknya, membutuhkan "reproduksi" dari keacakan "elemen memori" yang nilainya tidak stabil. Untuk tujuan ini, kami menggunakan analisis tanda tangan sebagai algoritma kompresi data kerugian. Algoritma hashing standar (misalnya, SHA-256) juga dapat digunakan jika kendala biaya perangkat keras tidak terlalu ketat.

Masalah dan prospek yang ada untuk PUF


Terlepas dari kebaruan relatif konsep ini, tahun ini istilah PUF merayakan ulang tahun ke-17.
Selama waktu ini, komunitas ilmiah telah berhasil mempelajari masalah dan kemungkinan aplikasi PUF.

Salah satu masalah utama, yang ditunjukkan oleh contoh PUF berdasarkan memori, adalah ketidakstabilan dari beberapa nilai, yang, pada gilirannya, memaksa seorang insinyur untuk menggunakan kode koreksi kesalahan dan arsitektur PUF yang lebih andal.

Di sisi lain, stabilitas yang sangat tinggi menempatkan PUF pada risiko serangan kriptografi menggunakan metode pembelajaran mesin, yaitu konstruksinya cukup akurat - lebih dari 95% - model matematika PUF, yang awalnya (hingga 2010) dianggap mustahil dalam komunitas ilmiah.
Namun demikian, penggunaan PUF dalam aplikasi komersial modern sebagai primitif kriptografi membuktikan janji penelitian dalam bidang ini dalam mencari arsitektur PUF baru, serta meningkatkan karakteristik implementasi yang ada.

Source: https://habr.com/ru/post/id446304/


All Articles