Kriptografi

Artikel ini memberikan gambaran umum tentang fitur kriptografi yang tersedia untuk aplikasi WinUI. Untuk informasi terperinci tentang tugas tertentu, lihat tabel di akhir artikel ini.

Terminologi

Terminologi berikut umumnya digunakan dalam kriptografi dan infrastruktur kunci publik (PKI).

Istilah Deskripsi
Enkripsi Proses transformasi data dengan menggunakan algoritma dan kunci kriptografi. Data yang diubah hanya dapat dipulihkan dengan menggunakan algoritma yang sama dan kunci yang sama (simetris) atau terkait (publik).
Dekripsi Proses mengembalikan data terenkripsi ke bentuk aslinya.
Teks biasa Awalnya mengacu pada pesan teks yang tidak terenkripsi. Saat ini mengacu pada data yang tidak terenkripsi.
Ciphertext Awalnya dirujuk ke pesan teks yang dienkripsi, dan karenanya tidak dapat dibaca. Saat ini mengacu pada data terenkripsi apa pun.
Hashing (proses enkripsi data menjadi kode unik) Proses konversi data berpanjang variabel menjadi nilai dengan panjang tetap, yang biasanya lebih kecil. Dengan membandingkan hash, Anda dapat memperoleh jaminan yang wajar bahwa dua data atau lebih sama.
Signature Hash terenkripsi data digital biasanya digunakan untuk mengautentikasi pengirim data atau memverifikasi bahwa data tidak dirusak selama transmisi.
Algoritma Prosedur langkah demi langkah untuk mengenkripsi data.
Kunci Nomor acak atau pseudorandom yang digunakan sebagai input ke algoritma kriptografi untuk mengenkripsi dan mendekripsi data.
Kriptografi Kunci Simetris Kriptografi di mana enkripsi dan dekripsi menggunakan kunci yang sama. Ini juga dikenal sebagai kriptografi kunci rahasia.
Kriptografi Kunci Asimetris Kriptografi di mana enkripsi dan dekripsi menggunakan kunci yang berbeda tetapi terkait secara matematis. Ini juga disebut kriptografi kunci publik.
Pengkodean Proses pengodean pesan digital, termasuk sertifikat, untuk transportasi di seluruh jaringan.
Penyedia Algoritma DLL yang mengimplementasikan algoritma kriptografi.
Penyedia Penyimpanan Kunci Kontainer untuk menyimpan bahan kunci. Saat ini, kunci dapat disimpan dalam perangkat lunak, kartu pintar, atau modul platform tepercaya (TPM).
Sertifikat X.509. Dokumen digital, biasanya dikeluarkan oleh otoritas sertifikasi, untuk memverifikasi identitas individu, sistem, atau entitas kepada pihak lain yang tertarik.

 

Namespaces

Namespace berikut tersedia untuk digunakan di aplikasi.

Windows.Security.Cryptography

Berisi kelas CryptographicBuffer dan metode statis yang memungkinkan Anda untuk:

  • Mengonversi data ke dan dari string
  • Mengonversi data dari dan ke byte array
  • Mengodekan pesan untuk transportasi jaringan
  • Mendekripsi pesan setelah transmisi

Windows.Security.Cryptography.Certificates

Berisi kelas, antarmuka, dan jenis enumerasi yang memungkinkan Anda untuk:

  • Membuat permintaan sertifikat
  • Menginstal respons sertifikat
  • Mengimpor sertifikat dalam file PFX
  • Tentukan dan dapatkan properti permintaan sertifikat

Windows.Security.Cryptography.Core

Berisi kelas dan jenis enumerasi yang memungkinkan Anda untuk:

  • Mengenkripsi dan mendekripsi data
  • Data hash
  • Menandatangani data dan memverifikasi tanda tangan
  • Membuat, mengimpor, dan mengekspor kunci
  • Bekerja dengan penyedia algoritma kunci asimetris
  • Bekerja dengan penyedia algoritma kunci simetris
  • Bekerja dengan penyedia algoritma hash
  • Bekerja dengan penyedia algoritma kode autentikasi mesin (MAC)
  • Bekerja dengan penyedia algoritma derivasi utama

Windows.Security.Cryptography.DataProtection

Berisi kelas yang memungkinkan Anda untuk:

  • Mengenkripsi dan mendekripsi data statis secara asinkron
  • Mengenkripsi dan mendekripsi aliran data secara asinkron

Kemampuan aplikasi Kripto dan PKI

Antarmuka pemrograman aplikasi yang disederhanakan yang tersedia untuk aplikasi memungkinkan kemampuan infrastruktur kriptografi dan kunci publik (PKI) berikut.

Dukungan kriptografi

Anda dapat melakukan tugas kriptografi berikut. Untuk informasi selengkapnya, lihat namespace Windows.Security.Cryptography.Core.

  • Membuat kunci simetris
  • Melakukan enkripsi simetris
  • Membuat kunci asimetris
  • Melakukan enkripsi asimetris
  • Mendapatkan kunci berbasis kata sandi
  • Membuat kode autentikasi pesan (MAC)
  • Konten yang di-hash
  • Menandatangani konten secara digital

SDK juga menyediakan antarmuka yang disederhanakan untuk perlindungan data berbasis kata sandi. Anda dapat menggunakan ini untuk melakukan tugas berikut. Untuk informasi selengkapnya, lihat namespace Layanan Windows.Security.Cryptography.DataProtection .

  • Perlindungan data statis secara asinkron
  • Perlindungan asinkron aliran data

Dukungan pengodean

Aplikasi dapat mengodekan data kriptografi untuk transmisi di seluruh jaringan dan mendekode data yang diterima dari sumber jaringan. Untuk informasi selengkapnya, lihat metode statis yang tersedia di namespace Windows.Security.Cryptography .

Dukungan PKI

Aplikasi dapat melakukan tugas PKI berikut. Untuk informasi selengkapnya, lihat namespace Windows.Security.Cryptography.Certificates.

  • Membuat sertifikat
  • Membuat sertifikat yang ditandatangani sendiri
  • Menginstal respons sertifikat
  • Mengimpor sertifikat dalam format PFX
  • Menggunakan sertifikat dan kunci kartu pintar (set kemampuan sharedUserCertificates)
  • Menggunakan sertifikat dari penyimpanan MY untuk pengguna (set kemampuan sharedUserCertificates)

Selain itu, Anda dapat menggunakan manifes untuk melakukan tindakan berikut:

  • Tentukan sertifikat akar tepercaya per aplikasi
  • Tentukan sertifikat tepercaya per rekan aplikasi
  • Secara eksplisit menonaktifkan pewarisan dari kepercayaan sistem
  • Tentukan kriteria pemilihan sertifikat
    • Sertifikat perangkat keras saja
    • Sertifikat yang terhubung melalui daftar penerbit tertentu
    • Secara otomatis memilih sertifikat dari penyimpanan aplikasi

Artikel yang terperinci

Artikel berikut ini memberikan detail selengkapnya tentang skenario keamanan:

Topik Deskripsi
Sertifikat Artikel ini membahas penggunaan sertifikat di aplikasi WinUI. Sertifikat digital digunakan dalam kriptografi kunci publik untuk mengikat kunci publik ke seseorang, komputer, atau organisasi. Identitas terikat paling sering digunakan untuk mengautentikasi satu entitas ke entitas lain. Misalnya, sertifikat sering digunakan untuk mengautentikasi server web kepada pengguna dan pengguna ke server web. Anda dapat membuat permintaan sertifikat dan menginstal atau mengimpor sertifikat yang dikeluarkan. Anda juga dapat mendaftarkan sertifikat dalam hierarki sertifikat.
Kunci kriptografi Artikel ini menunjukkan cara menggunakan fungsi derivasi kunci standar untuk mendapatkan kunci dan cara mengenkripsi konten menggunakan kunci simetris dan asimetris.
Perlindungan data Artikel ini menjelaskan cara menggunakan kelas DataProtectionProvider di namespace Layanan Windows.Security.Cryptography.DataProtection untuk mengenkripsi dan mendekripsi data digital di aplikasi WinUI.
MAC, hash, dan tanda tangan Artikel ini membahas bagaimana kode autentikasi pesan (MAC), hash, dan tanda tangan dapat digunakan di aplikasi WinUI untuk mendeteksi perubahan pesan.
Pembatasan ekspor pada kriptografi Gunakan info ini untuk menentukan apakah aplikasi Anda menggunakan kriptografi dengan cara yang mungkin mencegahnya tercantum di Microsoft Store.
Tugas kriptografi umum Artikel ini menyediakan contoh kode untuk tugas kriptografi WinUI umum, seperti membuat angka acak, membandingkan buffer, mengonversi antara string dan data biner, menyalin ke dan dari array byte, dan mengodekan dan mendekode data.