Bagikan melalui


Menyimpan Kunci Sesi

Catatan

Bagian ini mengasumsikan bahwa pengguna memiliki sekumpulan pasangan kunci publik/privat. Instruksi dan contoh untuk membuat pasangan kunci dapat ditemukan di Contoh Program C: Membuat Kontainer Kunci dan Membuat Kunci.

 

Untuk menyimpan kunci sesi

  1. Buat BLOB kunci sederhana dengan menggunakan fungsi CryptExportKey. Ini akan mentransfer kunci sesi dari CSP ke ruang memori aplikasi. Tentukan bahwa kunci publik exchange digunakan untuk menandatangani BLOB kunci.
  2. Simpan BLOB kunci yang ditandatangani ke disk. Diasumsikan bahwa semua disk tidak aman.
  3. Ketika kunci diperlukan, baca BLOB kunci dari disk.
  4. Impor blob kunci kembali ke CSP dengan menggunakan fungsi CryptImportKey.

Untuk contoh membuat kunci sesi dan mengekspor kunci tersebut ke BLOB kunci sederhana yang dapat ditulis ke file disk, lihat Contoh Program C: Mengekspor Kunci Sesi.

Prosedur ini hanya menyediakan keamanan minimal. Jika kunci sesi tersimpan akan digunakan untuk mengenkripsi data di kemudian hari, prosedur sebelumnya tidak memberikan keamanan yang memadai.

Untuk memberikan keamanan yang lebih besar, tanda tangani BLOB kunci dengan kunci privat pertukaran sebelum disimpan ke disk. Ketika BLOB kunci kemudian dibaca dari disk, tanda tangannya dapat divalidasi untuk memastikan bahwa BLOB kunci utuh.

Jika BLOB kunci tidak ditandatangani, siapa pun yang memiliki akses ke disk atau media lain tempat kunci disimpan dapat membuat kunci sesi baru.

Kunci sesi baru dapat dienkripsi dengan kunci pertukaran kunci publik pengguna asli, dan kunci baru ini dapat diganti dengan kunci aslinya. Jika pengguna tanpa sadar menggunakan kunci sesi pengganti untuk mengenkripsi file dan pesan, individu yang membuat kunci pengganti dapat dengan mudah mendekripsinya.

Tanda tangan digital dibahas secara rinci dalam Hash dan Tanda Tangan Digital.