Cryptology Academy · Pelajaran

Mengaudit dan Memilih Dependensi Kriptografi

Terapkan kerangka kerja untuk mengevaluasi, mengaudit, dan memelihara dependensi pustaka kriptografi.

Pelajaran 4 dari 413 langkah

Mengaudit dan Memilih Dependensi Kriptografi adalah pelajaran Cryptology Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cryptology Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cryptology Academy mencakup 4 pelajaran total.

Mengapa Pemilihan Pustaka Penting

Pustaka kriptografis yang Anda pilih merupakan salah satu keputusan keamanan yang paling berdampak dalam sebuah proyek. Bahkan pengembang yang berniat baik dapat menghasilkan sistem yang tidak aman jika menggunakan pustaka yang buruk. Sebaliknya, pustaka yang dirancang dengan baik mempersulit terjadinya kesalahan fatal. Proses pemilihan harus dilakukan secara sistematis dengan mengevaluasi rekam jejak keamanan, rancangan API, status pemeliharaan, dan kesesuaian dengan tujuan.

Tanggal dan Cakupan Audit

Salah satu pertanyaan pertama untuk setiap pustaka kriptografis adalah kapan pustaka tersebut terakhir diaudit secara independen dan apa saja yang dicakup oleh audit itu. Audit dari lima tahun lalu terhadap versi 1.0 memberikan jaminan yang lebih rendah untuk versi 3.0 yang digunakan saat ini. Carilah audit yang dilakukan oleh firma keamanan tepercaya, seperti NCC Group, Trail of Bits, Quarkslab, dan Cure53, yang mencakup fungsionalitas tertentu yang ingin Anda gunakan. Beberapa pustaka menerbitkan laporan audit secara terbuka; tidak adanya audit sama sekali merupakan faktor risiko yang signifikan.

Riwayat CVE dan Respons terhadap Perbaikan

Tinjau riwayat CVE pustaka tersebut di NVD (Basis Data Kerentanan Nasional). Perhatikan: jumlah CVE yang ada, tingkat keparahannya, kelas kerentanan yang diwakilinya, seperti kesalahan logika, kerusakan memori, atau kelemahan algoritma, serta seberapa cepat pengelola merilis perbaikan. Pustaka dengan CVE sesekali yang segera diperbaiki menunjukkan pemeliharaan yang tanggap. Pustaka dengan banyak CVE berkeparahan tinggi atau perbaikan yang lambat merupakan tanda bahaya.

Pemeliharaan Aktif dan Komunitas

Pustaka kriptografis yang tidak dipelihara berbahaya. Periksa tanggal perubahan terakhir, frekuensi rilis, dan apakah buletin keamanan ditangani. Pustaka yang perubahan terakhirnya dilakukan tiga tahun lalu mungkin memiliki kerentanan yang diketahui tetapi tidak akan pernah diperbaiki. Ukuran komunitas penting untuk keluasan peninjauan: pustaka yang digunakan secara luas menerima lebih banyak pemeriksaan dari peneliti keamanan dibandingkan proyek khusus.

Cakupan API dan Ketahanan terhadap Penyalahgunaan

Cakupan API yang lebih kecil dan lebih tegas pendiriannya lebih baik untuk keamanan. Pustaka yang menyediakan banyak pilihan algoritma dan opsi konfigurasi menciptakan peluang terjadinya kesalahan konfigurasi. Bandingkan libsodium, yang menyediakan satu fungsi untuk setiap kasus penggunaan dengan algoritma tetap, dengan OpenSSL EVP, yang mengharuskan Anda memilih sandi, mode, ukuran kunci, pengisi, dan penanganan IV secara terpisah. Semakin sulit sebuah pustaka digunakan secara keliru, semakin baik pustaka tersebut untuk proyek yang memperhatikan keamanan.

Verifikasi Implementasi Waktu-Konstan

Untuk operasi yang melibatkan data rahasia, seperti perbandingan kunci, dekripsi, dan verifikasi tanda tangan, implementasi harus menggunakan algoritma waktu-konstan yang tidak melakukan percabangan atau mengakses memori berdasarkan nilai rahasia. Pastikan dokumentasi pustaka secara eksplisit menyatakan jaminan waktu-konstan untuk operasi sensitif, atau pastikan kode sumbernya menggunakan fungsi perbandingan waktu-konstan yang disetujui. Pustaka tanpa jaminan ini rentan terhadap serangan saluran samping berbasis waktu.

Dukungan dan Kemutakhiran Algoritma

Pustaka kriptografis yang baik harus mendukung algoritma modern dan memiliki rencana untuk menghentikan penggunaan algoritma yang sudah usang. Pustaka tersebut harus menyediakan ChaCha20-Poly1305 atau AES-256-GCM untuk enkripsi, Ed25519 atau ECDSA P-256 untuk tanda tangan, X25519 untuk pertukaran kunci, dan Argon2id untuk pembuatan hash kata sandi. Pustaka yang hanya menyediakan algoritma lama, seperti DES, RC4, MD5, dan SHA-1, tidak sesuai untuk penerapan baru, terlepas dari kualitas lainnya.

Keamanan Rantai Pasokan

Evaluasilah dependensi transitif: pustaka apa saja yang menjadi dependensi pustaka kriptografis Anda, dan bagaimana tingkat keamanannya? Pustaka tanpa dependensi eksternal, seperti libsodium, memiliki risiko rantai pasokan yang minimal. Pustaka yang bergantung pada selusin paket npm, yang masing-masing memiliki dependensinya sendiri, memiliki permukaan serangan rantai pasokan yang besar. Periksa apakah pustaka tersebut menggunakan proses pembangunan yang dapat direproduksi, sehingga Anda dapat memverifikasi bahwa biner yang didistribusikan cocok dengan kode sumber.

Persyaratan Validasi FIPS 140-2/3

Industri yang diatur, seperti layanan kesehatan, keuangan, dan pemerintahan, sering kali mewajibkan modul kriptografis yang tervalidasi berdasarkan FIPS 140-2 atau 140-3. Validasi FIPS mahal dan memakan waktu, sehingga hanya sebagian pustaka yang memilikinya. OpenSSL dengan penyedia FIPS-nya, BoringCrypto yang digunakan dalam Go's crypto/tls, dan beberapa pustaka HSM telah tervalidasi berdasarkan FIPS. Jika penerapan Anda memerlukan kepatuhan FIPS, persyaratan ini secara signifikan mempersempit pilihan pustaka Anda.

Risiko Keterikatan Vendor untuk HSM dan KMS Komputasi Awan

Hardware Security Modules (HSM) dan layanan KMS komputasi awan sering kali memiliki API proprietari untuk operasi kunci. Mengikat aplikasi Anda secara erat ke AWS KMS atau vendor HSM tertentu menciptakan risiko keterikatan vendor. Evaluasilah apakah pustaka menyediakan lapisan abstraksi, seperti integrasi KMS Tink, yang memungkinkan Anda berganti penyedia. Pertimbangkan juga bahwa jika vendor HSM menghentikan dukungan atau menaikkan harga, biaya migrasi dapat menjadi sangat besar.

Prinsip Dasar

Aturan terpenting dalam memilih dependensi kriptografis adalah menggunakan pustaka terkenal yang digunakan secara luas dan mengimplementasikan standar yang telah mapan, serta tidak pernah mengimplementasikan primitif kriptografis sendiri. Seberapa pun baiknya pemahaman Anda terhadap teori, mengimplementasikan AES, RSA, operasi kurva eliptik, atau enkripsi terautentikasi dengan benar dalam kode produksi sangatlah sulit dan hampir tidak pernah sepadan dengan risikonya dibandingkan menggunakan pustaka yang telah teruji.

Evaluasi Pustaka Kriptografi

Faktor mana yang MOST penting saat mengevaluasi pustaka kriptografis untuk proyek baru?

Ringkasan Audit Dependensi Kriptografis

Daftar periksa pemilihan pustaka: periksa cakupan dan laporan audit independen terbaru, tinjau riwayat CVE serta waktu respons terhadap perbaikan, pastikan pemeliharaan aktif dan keterlibatan komunitas, utamakan cakupan API yang lebih kecil dan tahan terhadap penyalahgunaan, pastikan adanya jaminan waktu-konstan untuk operasi sensitif, pastikan dukungan terhadap algoritma modern, evaluasi dependensi rantai pasokan, periksa validasi FIPS jika diatur oleh ketentuan, pertimbangkan risiko keterikatan vendor KMS, dan selalu gunakan pustaka yang telah mapan alih-alih mengimplementasikan primitif sendiri.

Gratis untuk memulai

Belajar Cryptology Academy dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
67
Pelajaran
261

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Mengaudit dan Memilih Dependensi Kriptografi” gratis?

Ya — teks lengkap “Mengaudit dan Memilih Dependensi Kriptografi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cryptology Academy, upgrade ke CoddyKit PRO. Kursus Cryptology Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Mengaudit dan Memilih Dependensi Kriptografi”?

Terapkan kerangka kerja untuk mengevaluasi, mengaudit, dan memelihara dependensi pustaka kriptografi. Kamu berlatih Cryptology Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Cryptology Academy?

Tidak diperlukan pengalaman sebelumnya. Cryptology Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Mengaudit dan Memilih Dependensi Kriptografi” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Cryptology Academy ini?

Ya. Setiap pelajaran Cryptology Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. libsodium: Pustaka Kripto yang Tahan terhadap Penyalahgunaan
  2. API OpenSSL: Struktur Inti dan Jebakan
  3. Google Tink: Kripto Tingkat Tinggi yang Aman
  4. Mengaudit dan Memilih Dependensi Kriptografi
← Kembali ke Cryptology Academy