Algoritma SHA-1 berbahaya dihapus dari perpustakaan SSH


Kompleksitas serangan terhadap SHA-1. Harga didasarkan pada perhitungan harga sewa satu GTX 1060 pada $ 35 / bulan.

Jauh lebih lambat dari yang lainnya, tetapi para pengembang perpustakaan untuk SSH akhirnya memutuskan untuk menonaktifkan fungsi crypto SHA-1 yang sudah usang secara default. Hari ini, pemilihan kunci otentikasi server SHA-1, yaitu konflik dengan awalan yang dipilih, pada cluster GPU sewaan akan menelan biaya $ 45 ribu , seperti ditunjukkan dalam tabel di atas. Ini membuat serangan dapat diakses tidak hanya untuk layanan intelijen negara, tetapi juga untuk klien komersial.

Menonaktifkan SHA-1 secara default diumumkan secara bersamaan oleh pengembang OpenSSH openSSH ( catatan rilis ) dan perpustakaan libssh ( perubahan kode ).

Secure Hash Algorithm (SHA) dikembangkan oleh NSA bekerja sama dengan NIST. Versi pertama SHA-0 diperkenalkan pada tahun 1993, tetapi NSA segera mengingat versi ini, mengutip kesalahan yang mereka temukan yang tidak pernah diungkapkan.

Versi tetap dari NSA diterbitkan pada tahun 1995, itu disebut SHA-1.

Fungsi hash kriptografis SHA-1 (Secure Hash Algorithm 1) menghasilkan string 160-bit yang disebut hash digest. Secara teoritis, intisari harus unik untuk setiap file, pesan, atau input lain untuk fungsi. Sebagai nilai input, SHA-1 menerima pesan tidak lebih dari2641bit, mis. sekitar 2 exabytes.

Jelas bahwa rentang nilai cerna lebih kecil dari kisaran nilai input. Namun dalam praktiknya, digest collision seharusnya tidak layak, mengingat kemampuan kinerja sumber daya komputasi yang ada. Sayangnya, SHA-1 tidak lagi memenuhi kriteria ini.

Pada 2017, karyawan di Google dan Pusat Matematika dan Ilmu Komputer di Amsterdam memperkenalkan cara pertama untuk menghasilkan tabrakan untuk SHA-1 .

Mereka menerbitkan bukti: dua dokumen PDF dengan konten yang berbeda tetapi tanda tangan digital yang sama SHA-1.


  $ls -l sha*.pdf 
  -rw-r--r--@ 1 amichal  staff  422435 Feb 23 10:01 shattered-1.pdf
  -rw-r--r--@ 1 amichal  staff  422435 Feb 23 10:14 shattered-2.pdf
  $shasum -a 1 sha*.pdf
  38762cf7f55934b34d179ae6a4c80cadccbb7f0a  shattered-1.pdf
  38762cf7f55934b34d179ae6a4c80cadccbb7f0a  shattered-2.pdf



Di situs web shattered.it , Anda dapat memeriksa file apa saja untuk disertakan dalam ruang kemungkinan tabrakan. Artinya, apakah mungkin untuk mengambil set data lain (file) dengan hash yang sama. Vektor serangan jelas: penyerang dapat mengganti file "baik" dengan salinannya dengan bookmark, makro jahat atau pengunduh trojan. Dan file "buruk" ini akan memiliki hash atau tanda tangan digital yang sama.

Dalam beberapa tahun terakhir, banyak program dan layanan telah berhenti menggunakan SHA-1 setelah peneliti menunjukkan cara praktis untuk memalsukan tanda tangan digital menggunakan SHA-1. Pendapat para ahli dengan suara bulat adalah bahwa algoritma ini sekarang tidak aman di hampir semua konteks keamanan.

Google telah lama menyatakan ketidakpercayaannya terhadap SHA-1, terutama karena menggunakan fitur ini untuk menandatangani sertifikat TLS. Kembali pada tahun 2014, tim pengembangan Chrome mengumumkan penghapusan SHA-1 secara bertahap.

Pada 2017, para peneliti menggunakan infrastruktur Google untuk melakukan perhitungan dan memeriksa perhitungan teoretis tentang seberapa banyak pencarian tabrakan akan dilakukan. Pengembang mengatakan ini adalah salah satu komputasi terbesar yang pernah dilakukan oleh Google. Sebanyak sembilan trilyun perhitungan SHA-1 dilakukan (9.223.372.036.854.775.808), yang membutuhkan 6.500 tahun prosesor pada fase pertama dan 110 tahun GPU pada fase kedua serangan.

Blok pesan dengan hash SHA-1 yang sama


Pada 2019, peneliti Gaetan Laurent dan Thomas Peyrin mendemonstrasikan serangan untuk menemukan konflik dengan awalan yang dipilih, yang secara praktis masuk akal untuk memilih kunci enkripsi PGP / GnuPG tertentu. Akhirnya, pada Januari 2020, penulis berhasil mengoptimalkan serangan dengan urutan besar dan mengurangi biaya teoretisnya menjadi harga yang dapat diterima secara komersial (lihat tabel di atas dan pdf ). Untuk menunjukkan, mereka membuat sepasang kunci PGP / GnuPG berbeda dengan sertifikat SHA-1 yang sama.

Sebagai pertahanan terhadap serangan menemukan tabrakan SHA-1, disarankan untuk beralih ke fungsi hash kriptografis yang lebih baik SHA-256 dan SHA-3.

Pengembang OpenSSH yang menulis dalam catatan untuk rilis terbaru mengutip studi ini dari Januari 2020: “Sekarang Anda dapat melakukan serangan dengan awalan yang dipilih menggunakan algoritma SHA-1 dengan harga kurang dari 50 ribu dolar AS. Untuk alasan ini, dalam waktu dekat kami akan menonaktifkan algoritma penandatanganan kunci publik ssh-rsa default. Sayangnya, algoritma ini masih banyak digunakan. Meskipun ada alternatif yang lebih baik, ia telah lama menjadi satu-satunya algoritma tanda tangan kunci publik yang ditentukan oleh SSH RFC asli. "

Di antara alternatif terbaik, pengembang OpenSSH memanggil algoritma RFC8332 RSA SHA-2 (didukung dari OpenSSH 7.2 dan sudah digunakan secara default jika server dan klien mendukungnya), ssh-ed25519 (didukung dari 6.5) dan RFC5656 ECDSA (dari versi 5.7) .

Untuk memverifikasi bahwa server menggunakan algoritme SHA-1 yang lemah saat membuat kunci publik untuk otentikasi, coba sambungkan setelah menghapus algoritma ssh-rsa dari daftar yang diizinkan dalam ssh (1) :

ssh -oHostKeyAlgorithms=-ssh-rsa user@host

Jika verifikasi gagal dan jenis kunci lainnya tidak tersedia, maka perangkat lunak server harus diperbarui.

Dalam versi OpenSSH yang akan datang, opsi UpdateHostKeys akan diaktifkan secara default, di mana klien akan secara otomatis beralih ke algoritma terbaik. Itu dapat diaktifkan secara manual.

Rupanya, penutupan total SHA-1 akan memakan banyak waktu. Gaetan Laurent dari Institut Nasional untuk Penelitian dalam Ilmu Komputer dan Otomasi (Prancis), salah satu penulis studi Januari, tidak mengharapkan pengembang OpenSSH untuk melakukan ini dengan cepat: “Ketika mereka benar-benar menonaktifkan SHA-1, tidak mungkin untuk terhubung dari versi baru OpenSSH ke perangkat dengan perangkat lama. Server SSH, - menulisdia. - Mungkin, sebelum ini mereka akan mengambil serangkaian langkah bertahap (dengan peringatan keras). Di sisi lain, dalam sistem tertanam dengan SSH yang belum diperbarui selama bertahun-tahun, mungkin ada banyak masalah keamanan, jadi mungkin tidak terlalu buruk untuk mengganggu pekerjaan mereka ... Pokoknya, saya cukup senang dengan langkah ini, ini persis apa yang ingin kita capai :-) ”.

Setelah OpenSSH dan libssh mengumumkan rencana untuk menonaktifkan SHA-1, daftar pengguna SHA-1 menjadi lebih pendek, tetapi tidak menghilang. Fitur ini masih didukung dalam versi terbaru perpustakaan OpenSSL, yang digunakan oleh banyak situs web dan layanan Internet untuk mengimplementasikan HTTPS dan protokol enkripsi lainnya. Versi terbaru dari kompiler GNU Collection, dirilis awal bulan ini, ditandatangani secara digital dengan hash SHA-1.

Linus Torvaldskatabahwa dalam repositori Git tabrakan hash tidak menimbulkan risiko keamanan. Dia menjelaskan bahwa ada perbedaan besar antara menggunakan hash kriptografi untuk tanda tangan digital dalam sistem enkripsi dan untuk menghasilkan "identifikasi konten" dalam sistem seperti Git. Ketika semua data berada dalam domain publik, maka serangan nyata hampir tidak mungkin. Para penulis karya ilmiah memberikan contoh serangan terhadap dokumen dengan awalan yang sama. Serangan ini berhasil karena awalan itu sendiri "ditutup" di dalam dokumen, seperti gumpalan. Jika kita memiliki sumber terbuka di repositori, maka ini adalah masalah yang sama sekali berbeda. Hampir tidak mungkin membuat awalan seperti itu dari kode sumber (hanya dari blob). Dengan kata lain, untuk membuat awalan yang identik dan kemudian menghasilkan cabang kode dengan hash SHA-1 yang sama, Anda harus menyuntikkan beberapa data acak ke dalam kode, yang akan segera diperhatikan. Kata Linusbahwa ada tempat-tempat di mana Anda dapat menyembunyikan data, tetapigit fscksudah menangkap trik seperti itu. Namun, Linus memiliki rencana untuk menjauh dari menggunakan SHA-1 sehingga tidak ada seorang pun yang harus mengubah repositori mereka.

All Articles