Algoritma kriptografi yang rusak atau berisiko

Kategori OWASP: MASVS-CRYPTO: Kriptografi

Ringkasan

Meskipun kriptografi digunakan secara luas untuk melindungi kerahasiaan dan integritas data, risiko signifikan muncul saat developer secara tidak sengaja menerapkan algoritma kriptografi yang lemah atau sudah usang. Kerentanan ini berasal dari kelemahan bawaan dalam algoritma ini, yang dapat dieksploitasi oleh pihak berniat jahat yang memiliki daya komputasi atau pengetahuan yang diperlukan. Konsekuensi dari eksploitasi tersebut bisa sangat berat, yang berpotensi menyebabkan akses tidak sah, pelanggaran data, dan manipulasi informasi sensitif.

Dampak

Data sensitif dapat terekspos, dimodifikasi, atau dipalsukan. Algoritma kriptografi yang rusak atau berisiko dapat menyebabkan kerentanan dan dapat disalahgunakan untuk mendekripsi informasi sensitif, memalsukan data, atau meniru identitas entitas yang sah. Dampak dari eksploitasi kerentanan tersebut dapat berkisar dari pelanggaran data dan kerugian finansial hingga kerusakan reputasi dan hilangnya kepercayaan pengguna.

Risiko: Fungsi hash kriptografi yang lemah atau rusak

Penggunaan fungsi hash kriptografi yang lemah atau rusak (seperti MD5 atau SHA1) menimbulkan risiko signifikan terhadap keamanan dan integritas data. Fungsi hash dirancang untuk membuat sidik jari (hash) data input yang unik dan panjangnya tetap, sehingga berguna untuk berbagai tujuan, termasuk verifikasi integritas data, penyimpanan sandi, dan tanda tangan digital. Namun, jika fungsi hash yang lemah atau disusupi digunakan, beberapa kerentanan dapat muncul:

  • Serangan Tabrakan (Collision Attacks): Fungsi hash yang lemah rentan terhadap serangan tabrakan, di mana penyerang menemukan dua input berbeda yang menghasilkan nilai hash yang sama. Hal ini dapat memungkinkan mereka mengganti data berbahaya dengan data yang sah tanpa terdeteksi, sehingga membahayakan integritas data.
  • Pelanggaran Data: Jika sandi di-hash dengan algoritma yang lemah, pelanggaran sistem yang berhasil dapat menyebabkan kredensial pengguna terekspos. Penyerang kemudian dapat menggunakan tabel pelangi atau teknik lain untuk memecahkan sandi, sehingga mendapatkan akses tidak sah ke akun.
  • Penyangkalan Tanda Tangan Digital: Fungsi hash yang lemah yang digunakan dalam tanda tangan digital dapat dieksploitasi untuk membuat tanda tangan palsu, sehingga sulit untuk menentukan keaslian dan integritas dokumen atau pesan.

Mitigasi

Untuk memitigasi risiko ini, sangat penting untuk menggunakan fungsi hash kriptografi yang kuat dan telah diperiksa dengan baik seperti SHA-2 atau SHA-3, dan terus memperbaruinya saat kerentanan baru ditemukan. Selain itu, menerapkan praktik keamanan seperti memberi garam pada sandi dan menggunakan algoritma hashing khusus sandi seperti bcrypt atau Argon2 dapat lebih meningkatkan perlindungan data.


Risiko: Fungsi enkripsi kriptografi yang lemah atau rusak

Penggunaan fungsi enkripsi kriptografi yang lemah atau rusak (seperti DES atau RC4) menimbulkan risiko berat terhadap kerahasiaan data sensitif. Enkripsi dirancang untuk melindungi informasi dengan mengubahnya menjadi format yang tidak dapat dibaca, tetapi jika algoritma enkripsi memiliki kekurangan, perlindungan ini dapat dilewati:

  • Kebocoran Data: Algoritma enkripsi yang lemah rentan terhadap berbagai serangan, termasuk serangan brute force, serangan teks biasa yang diketahui, dan teknik kriptoanalisis. Jika berhasil, serangan ini dapat mengekspos data yang dienkripsi, sehingga memungkinkan akses tidak sah ke informasi sensitif seperti detail pribadi, catatan keuangan, atau data bisnis rahasia.
  • Manipulasi dan Pemalsuan Data: Meskipun penyerang tidak dapat mendekripsi data sepenuhnya, mereka mungkin masih dapat memanipulasinya tanpa terdeteksi jika algoritma enkripsi lemah. Hal ini dapat menyebabkan modifikasi data tanpa izin, yang berpotensi mengakibatkan penipuan, pernyataan tidak benar, atau aktivitas berbahaya lainnya.

Mitigasi

Menggunakan algoritma kriptografi yang kuat dalam fungsi enkripsi

Untuk mengurangi risiko ini, sangat penting untuk menggunakan algoritma kriptografi yang kuat dan telah diuji dengan baik, serta mengikuti praktik terbaik untuk pengelolaan kunci dan penerapan enkripsi. Mengupdate algoritma enkripsi secara rutin dan terus mendapatkan informasi tentang ancaman baru juga penting untuk menjaga keamanan data yang andal.

Beberapa algoritma default yang direkomendasikan untuk digunakan:

  • Enkripsi simetris:
    • AES-128/AES-256 dengan mode GCM
    • Chacha20
  • Enkripsi asimetris:
    • RSA-2048/RSA-4096 dengan padding OAEP

Gunakan primitif aman dari library kriptografi untuk mengurangi potensi kesalahan umum

Meskipun memilih algoritma enkripsi yang tepat sangat penting, untuk benar-benar meminimalkan kerentanan keamanan, pertimbangkan untuk menggunakan library kriptografi yang menawarkan API yang disederhanakan dan menekankan konfigurasi default yang aman. Pendekatan ini tidak hanya memperkuat keamanan aplikasi Anda, tetapi juga secara signifikan mengurangi kemungkinan munculnya kerentanan melalui kesalahan coding. Misalnya, Tink menyederhanakan pilihan enkripsi dengan menawarkan dua opsi berbeda: enkripsi AEAD dan Hybrid, sehingga memudahkan developer membuat keputusan keamanan yang tepat.


Risiko: Fungsi tanda tangan kriptografi yang lemah atau rusak

Penggunaan fungsi tanda tangan kriptografi yang lemah atau rusak (seperti RSA-PKCS#1 v1.5, atau yang didasarkan pada fungsi hash yang lemah) menimbulkan risiko berat terhadap integritas data dan komunikasi. Tanda tangan digital dirancang untuk memberikan autentikasi, anti-penyangkalan, dan integritas data, sehingga memastikan bahwa pesan atau dokumen berasal dari pengirim tertentu dan tidak dirusak. Namun, jika algoritma tanda tangan yang mendasarinya cacat, jaminan ini dapat terganggu:

  • Memalsukan tanda tangan: Algoritma tanda tangan yang lemah dapat rentan terhadap serangan yang memungkinkan pihak tidak bertanggung jawab membuat tanda tangan palsu. Artinya, mereka dapat meniru identitas entitas yang sah, memalsukan dokumen, atau memanipulasi pesan tanpa terdeteksi.
  • Penyangkalan tanda tangan: Jika algoritma tanda tangan rusak, penanda tangan mungkin dapat secara keliru mengklaim bahwa mereka tidak menandatangani dokumen, sehingga merusak prinsip penyangkalan dan menimbulkan tantangan hukum dan logistik.
  • Manipulasi dan pemalsuan data: Dalam skenario saat tanda tangan digunakan untuk melindungi integritas data, algoritma yang lemah dapat memungkinkan penyerang mengubah data tanpa membatalkan tanda tangan, sehingga menyebabkan pemalsuan yang tidak terdeteksi dan potensi kebocoran informasi penting.

Mitigasi

Menggunakan algoritma tanda tangan kriptografi yang kuat

Untuk mengurangi risiko ini, sangat penting untuk menggunakan algoritma tanda tangan kriptografi yang kuat dan telah diperiksa dengan baik:

  • RSA-2048/RSA-4096 dengan padding PSS
  • Elliptic Curve Digital Signature Algorithm (ECDSA) dengan kurva aman

Gunakan primitif aman dari library kriptografi untuk mengurangi potensi kesalahan umum

Memilih algoritma tanda tangan yang tepat sangat penting, tetapi untuk benar-benar meminimalkan kerentanan keamanan, pertimbangkan pustaka kriptografi yang memberikan jaminan keamanan yang kuat secara default. Misalnya, Tink menyederhanakan pilihan tanda tangan dengan menawarkan ECDSA dengan kurva aman sebagai opsi defaultnya, semuanya dalam API yang mudah dan komprehensif. Pendekatan ini tidak hanya meningkatkan keamanan, tetapi juga menyederhanakan pengembangan dengan menghilangkan kebutuhan akan konfigurasi atau pengambilan keputusan yang rumit.


Referensi