Beranda » bagaimana » Apa itu SHAttered? Serangan Tabrakan SHA-1, Dijelaskan

    Apa itu SHAttered? Serangan Tabrakan SHA-1, Dijelaskan

    Pada hari pertama 2016, Mozilla menghentikan dukungan untuk teknologi keamanan yang lemah yang disebut SHA-1 di browser web Firefox. Hampir segera, mereka membalikkan keputusan mereka, karena itu akan memotong akses ke beberapa situs web yang lebih tua. Namun pada bulan Februari 2017, ketakutan mereka akhirnya menjadi kenyataan: para peneliti memecahkan SHA-1 dengan menciptakan serangan tabrakan pertama di dunia nyata. Inilah artinya semua itu.

    Apa itu SHA-1?

    SHA di SHA-1 adalah singkatan dari Algoritma Hash Aman, dan, sederhananya, Anda bisa menganggapnya sebagai semacam masalah matematika atau metode itu mengacak data yang dimasukkan ke dalamnya. Dikembangkan oleh NSA Amerika Serikat, ini adalah komponen inti dari banyak teknologi yang digunakan untuk mengenkripsi transmisi penting di internet. Metode enkripsi umum SSL dan TLS, yang mungkin pernah Anda dengar, dapat menggunakan fungsi hash seperti SHA-1 untuk membuat sertifikat yang ditandatangani yang Anda lihat di bilah alat browser Anda.

    Kami tidak akan masuk jauh ke dalam matematika dan ilmu komputer dari salah satu fungsi SHA, tapi inilah ide dasarnya. "Hash" adalah kode unik berdasarkan input dari data apa pun. Sekalipun kecil, string acak huruf yang dimasukkan ke dalam fungsi hash seperti SHA-1 akan mengembalikan jumlah karakter yang panjang, sehingga tidak mungkin mengembalikan string karakter kembali ke data asli. Beginilah biasanya penyimpanan kata sandi bekerja. Saat Anda membuat kata sandi, input kata sandi Anda diacak dan disimpan oleh server. Sekembalinya Anda, saat Anda mengetikkan kata sandi, kata itu diacak lagi. Jika cocok dengan hash asli, input dapat diasumsikan sama, dan Anda akan diberikan akses ke data Anda.

    Fungsi hash berguna terutama karena membuatnya mudah untuk mengetahui apakah input, misalnya file atau kata sandi, telah berubah. Ketika input data bersifat rahasia, seperti kata sandi, hash hampir tidak mungkin untuk membalikkan dan memulihkan data asli (juga dikenal sebagai "kunci"). Ini sedikit berbeda dari "enkripsi", yang tujuannya adalah mengacak data untuk tujuan menguraikannya nanti, menggunakan cipher dan kunci rahasia. Hash hanya dimaksudkan untuk memastikan integritas data - untuk memastikan bahwa semuanya sama. Git, perangkat lunak kontrol versi dan distribusi untuk kode sumber terbuka, menggunakan hash SHA-1 karena alasan ini.

    Itu banyak informasi teknis, tetapi sederhananya: hash tidak sama dengan enkripsi, sejak itu ini digunakan untuk mengidentifikasi apakah suatu file telah berubah.

    Bagaimana Teknologi Ini Mempengaruhi Saya?

    Katakanlah Anda perlu mengunjungi situs web secara pribadi. Bank Anda, email Anda, bahkan akun Facebook Anda - semuanya menggunakan enkripsi untuk menjaga data yang Anda kirimkan tetap pribadi. Situs web profesional akan menyediakan enkripsi dengan memperoleh sertifikat dari otoritas tepercaya - pihak ketiga, tepercaya untuk memastikan bahwa enkripsi berada pada level, pribadi antara situs web dan pengguna, dan tidak dimata-matai oleh pihak lain mana pun. Hubungan ini dengan pihak ketiga, disebut Otoritas Sertifikat, atau CA, sangat penting, karena setiap pengguna dapat membuat sertifikat yang ditandatangani sendiri - Anda bahkan dapat melakukannya sendiri pada mesin yang menjalankan Linux dengan Open SSL. Symantec dan Digicert adalah dua perusahaan CA yang dikenal luas, misalnya.

    Mari kita jalankan melalui skenario teoretis: How-To Geek ingin tetap login di sesi pribadi pengguna dengan enkripsi, sehingga mengajukan CA seperti like Symantec dengan Permintaan Penandatanganan Sertifikat, atau CSR. Mereka menciptakan kunci publik dan kunci pribadi untuk mengenkripsi dan mendekripsi data yang dikirim melalui internet. Permintaan CSR mengirimkan kunci publik ke Symantec bersama dengan informasi tentang situs web. Symantec memeriksa kunci terhadap catatannya untuk memverifikasi bahwa data tidak diubah oleh semua pihak, karena setiap perubahan kecil dalam data membuat hash secara radikal berbeda.

    Kunci publik dan sertifikat digital ditandatangani oleh fungsi hash, karena output dari fungsi ini mudah dilihat. Kunci publik dan sertifikat dengan hash terverifikasi dari Symantec (dalam contoh kami), otoritas, meyakinkan pengguna How-To Geek bahwa kunci tersebut tidak berubah, dan tidak dikirim dari seseorang yang berbahaya.

    Karena hash mudah untuk dipantau dan tidak mungkin (beberapa orang akan mengatakan "sulit") untuk membalikkan, tanda tangan hash yang benar dan diverifikasi berarti bahwa sertifikat dan koneksi dapat dipercaya, dan data dapat disepakati untuk dikirim dienkripsi dari ujung ke ujung. . Tapi bagaimana kalau hash sebenarnya tidak unik?

    What Is a Collision Attack, dan Is It Possible di Dunia Nyata?

    Anda mungkin pernah mendengar tentang "Masalah Ulang Tahun" dalam matematika, meskipun Anda mungkin tidak tahu apa namanya. Ide dasarnya adalah bahwa jika Anda mengumpulkan sekelompok orang yang cukup besar, kemungkinannya cukup tinggi sehingga dua orang atau lebih akan memiliki hari ulang tahun yang sama. Lebih tinggi dari yang Anda harapkan, sebenarnya cukup seolah-olah itu kebetulan yang aneh. Dalam kelompok sekecil 23 orang, ada kemungkinan 50% bahwa dua akan berbagi ulang tahun.

    Ini adalah kelemahan yang melekat dalam semua hash, termasuk SHA-1. Secara teoritis, fungsi SHA harus membuat hash unik untuk setiap data yang dimasukkan ke dalamnya, tetapi ketika jumlah hash bertambah, menjadi lebih mungkin bahwa pasangan data yang berbeda dapat membuat hash yang sama. Jadi seseorang dapat membuat sertifikat yang tidak dipercaya dengan hash yang identik dengan sertifikat tepercaya. Jika mereka membuat Anda menginstal sertifikat yang tidak dipercaya itu, itu bisa menyamar sebagai tepercaya, dan mendistribusikan data berbahaya.

    Menemukan hash yang cocok dalam dua file disebut a serangan tabrakan. Setidaknya satu serangan tabrakan skala besar diketahui telah terjadi untuk hash MD5. Tetapi pada 27 Februari 2017, Google mengumumkan SHAttered, tabrakan pertama yang dibuat untuk SHA-1. Google dapat membuat file PDF yang memiliki hash SHA-1 yang sama dengan file PDF lainnya, walaupun memiliki konten yang berbeda.

    SHAttered dilakukan pada file PDF. PDF adalah format file yang relatif longgar; banyak perubahan kecil tingkat bit dapat dilakukan tanpa mencegah pembaca membukanya atau menyebabkan perbedaan yang terlihat. PDF juga sering digunakan untuk mengirimkan malware. Sementara SHAttered dapat bekerja pada jenis file lain, seperti ISO, sertifikat ditentukan dengan ketat, membuat serangan seperti itu tidak mungkin.

    Jadi seberapa mudah serangan ini dilakukan? SHAttered didasarkan pada metode yang ditemukan oleh Marc Stevens pada tahun 2012 yang membutuhkan lebih dari 2 ^ 60,3 (9,223 quintillion) operasi SHA-1 - jumlah yang mengejutkan. Namun, metode ini masih 100.000 kali lebih sedikit dari operasi yang diperlukan untuk mencapai hasil yang sama dengan brute force. Google menemukan bahwa dengan 110 kartu grafis kelas atas yang bekerja secara paralel, akan membutuhkan waktu sekitar satu tahun untuk menghasilkan tabrakan. Menyewa waktu komputasi ini dari Amazon AWS akan menelan biaya sekitar $ 110.000. Perlu diingat bahwa ketika harga turun untuk bagian-bagian komputer dan Anda bisa mendapatkan lebih banyak daya dengan lebih sedikit, serangan seperti SHAttered menjadi lebih mudah dilakukan..

    $ 110.000 mungkin tampak seperti banyak, tetapi itu berada dalam ranah keterjangkauan bagi beberapa organisasi - yang berarti para cybervillies kehidupan nyata dapat memalsukan tanda tangan dokumen digital, mengganggu cadangan dan sistem kontrol versi seperti Git dan SVN, atau membuat Linux ISO berbahaya tampak sah.

    Untungnya, ada faktor mitigasi yang mencegah serangan semacam itu. SHA-1 jarang digunakan untuk tanda tangan digital lagi. Otoritas Sertifikat tidak lagi memberikan sertifikat yang ditandatangani dengan SHA-1, dan baik Chrome maupun Firefox telah menjatuhkan dukungan untuk mereka. Distribusi Linux biasanya merilis lebih sering dari sekali per tahun, membuatnya tidak praktis bagi penyerang untuk membuat versi jahat dan kemudian menghasilkan satu padded untuk memiliki hash SHA-1 yang sama.

    Di sisi lain, beberapa serangan berdasarkan SHAttered sudah terjadi di dunia nyata. Sistem kontrol versi SVN menggunakan SHA-1 untuk membedakan file. Mengunggah dua PDF dengan hash SHA-1 yang identik ke repositori SVN akan menyebabkannya rusak.

    Bagaimana Saya Dapat Melindungi Diri Saya dari Serangan SHA-1?

    Tidak banyak yang bisa dilakukan oleh pengguna biasa. Jika Anda menggunakan checksum untuk membandingkan file, Anda harus menggunakan SHA-2 (SHA-256) atau SHA-3 daripada SHA-1 atau MD5. Demikian juga, jika Anda seorang pengembang, pastikan untuk menggunakan algoritma hashing yang lebih modern seperti SHA-2, SHA-3, atau bcrypt. Jika Anda khawatir bahwa SHAttered telah digunakan untuk memberikan dua file berbeda hash yang sama, Google telah merilis alat di situs SHAttered yang dapat memeriksa Anda.

    Kredit Gambar: Lego Firefox, Banyak Hash, Tolong Jangan Sakiti pembuat Web yang tidak dikenal, Google.