CSP dan Proses Kriptografi

Fungsi CryptoAPI menggunakan penyedia layanan kriptografi (CSP) untuk melakukan enkripsi dan dekripsi, dan untuk menyediakan penyimpanan dan keamanan utama. CSP ini adalah modul independen. Idealnya, CSP ditulis untuk independen dari aplikasi tertentu, sehingga aplikasi apa pun akan berjalan dengan berbagai CSP. Namun, pada kenyataannya, beberapa aplikasi memiliki persyaratan khusus yang memerlukan Penyedia Solusi Cloud yang disesuaikan. Ini dibandingkan dengan model GDI Windows. CSP dianalogikan dengan driver perangkat grafis.

Kualitas perlindungan untuk kunci dalam sistem adalah parameter desain dari Penyedia Solusi Cloud dan bukan sistem secara keseluruhan. Ini memungkinkan aplikasi untuk berjalan dalam berbagai konteks keamanan tanpa modifikasi.

Aplikasi akses yang dimiliki ke internal kriptografi dibatasi dengan hati-hati. Ini memfasilitasi pengembangan aplikasi yang aman dan portabel.

Tiga aturan desain berikut berlaku:

  • Aplikasi tidak dapat langsung mengakses materi kunci. Karena semua bahan kunci dihasilkan dalam Penyedia Solusi Cloud dan digunakan oleh aplikasi melalui handel buram, tidak ada risiko aplikasi atau DLL terkait baik menyatukan bahan kunci atau memilih bahan kunci dari sumber acak yang buruk.
  • Aplikasi tidak dapat menentukan detail operasi kriptografi. Antarmuka Penyedia Solusi Cloud memungkinkan aplikasi untuk memilih algoritma enkripsi atau tanda tangan, tetapi implementasi setiap operasi kriptografi dilakukan oleh Penyedia Solusi Cloud.
  • Aplikasi tidak menangani kredensial pengguna atau data autentikasi pengguna lainnya. Autentikasi pengguna dilakukan oleh Penyedia Solusi Cloud; oleh karena itu, CSP di masa depan dengan kemampuan autentikasi tingkat lanjut, seperti input biometrik, akan berfungsi tanpa perlu mengubah model autentikasi aplikasi.

Minimal, Penyedia Solusi Cloud terdiri dari pustaka tautan dinamis (DLL) dan file tanda tangan. File tanda tangan diperlukan untuk memastikan bahwa CryptoAPI mengenali Penyedia Solusi Cloud. CryptoAPI memvalidasi tanda tangan ini secara berkala untuk memastikan bahwa setiap perusakan dengan Penyedia Solusi Cloud terdeteksi.

Beberapa CSP dapat menerapkan sebagian kecil fungsionalitasnya dalam layanan yang dipisahkan alamat yang disebut melalui RPC lokal atau dalam perangkat keras yang disebut melalui driver perangkat sistem. Mengisolasi operasi kriptografi status kunci global dan pusat dalam layanan yang dipisahkan alamat atau dalam perangkat keras menjaga kunci dan operasi tetap aman dari perubahan dalam ruang data aplikasi.

Tidak bijaksan bagi aplikasi untuk memanfaatkan atribut khusus untuk Penyedia Solusi Cloud tertentu. Misalnya, Penyedia Kriptografi Dasar Microsoft (disediakan dengan CryptoAPI) mendukung kunci sesi 40-bit dan kunci publik 512-bit. Aplikasi yang memanipulasi kunci ini harus menghindari asumsi tentang jumlah memori yang diperlukan untuk menyimpan kunci ini karena aplikasi cenderung gagal jika Penyedia Solusi Cloud yang berbeda digunakan. Aplikasi yang ditulis dengan baik harus bekerja dengan berbagai CSP.

Untuk detail tentang jenis penyedia kriptografi dan CSP yang telah ditentukan sebelumnya yang dapat digunakan dengan CryptoAPI, lihat Jenis Penyedia Kriptografi dan Penyedia Layanan Kriptografi Microsoft.