Protokol Akses Hash

Protokol Digest Access yang ditentukan oleh RFC 2617 diimplementasikan oleh penyedia dukungan keamanan (SSP) Microsoft Digest. Implementasi terdiri dari satu set fungsi konteks keamanan Microsoft Security Support Provider Interface (SSPI) yang dipanggil aplikasi klien/server ke:

Autentikasi Akses Hash berlangsung dalam transaksi permintaan/respons yang dipasangkan, dengan permintaan yang berasal dari klien dan respons yang berasal dari server. Autentikasi Digest Access yang berhasil memerlukan dua pasangan permintaan/respons.

Ketika Digest SSP digunakan untuk autentikasi HTTP, tidak ada koneksi yang dipertahankan antara pasangan permintaan/respons pertama dan kedua. Dengan kata lain, server tidak menunggu permintaan kedua setelah mengirim respons pertama.

Ilustrasi berikut menunjukkan langkah-langkah yang diambil pada jalur HTTP oleh klien dan server untuk menyelesaikan autentikasi menggunakan Digest SSP. Mekanisme SASL menggunakan autentikasi bersama, sehingga data autentikasi dikirim kembali pada panggilan server ASC akhir ke klien yang memverifikasi bahwa klien berkomunikasi dengan server yang benar.

protokol akses hash

Proses dimulai dengan klien yang meminta sumber daya yang dilindungi akses dari server dengan mengirim Permintaan HTTP 1.

Server menerima Permintaan HTTP 1 dan menentukan bahwa sumber daya memerlukan informasi autentikasi yang tidak disertakan dalam permintaan. Server menghasilkan tantangan untuk klien sebagai berikut:

  1. Server mendapatkan kredensialnya dengan memanggil fungsi AcquireCredentialsHandle .
  2. Server menghasilkan tantangan Digest dengan memanggil fungsi AcceptSecurityContext (Umum).
  3. Server mengirimkan header WWW-Authenticate sebagai responsnya terhadap permintaan klien (ditampilkan sebagai Respons HTTP 1). Header berisi tantangan Digest dan arahan buram yang berisi referensi ke konteks keamanan parsial yang ditetapkan untuk klien. Header dikirim dengan kode status 401 yang menunjukkan bahwa permintaan klien menghasilkan kesalahan akses yang tidak sah. Untuk informasi selengkapnya tentang tantangan Hash, lihat Konten Tantangan Hash dan Menghasilkan Tantangan Hash.
  4. Klien menerima Respons HTTP 1, mengekstrak tantangan Digest yang dikirim oleh server, dan menghasilkan respons tantangan Digest sebagai berikut:
    1. Kredensial pengguna diperoleh baik dengan memanggil fungsi AcquireCredentialsHandle atau dengan secara interaktif meminta kredensial kepada pengguna.
    2. Informasi tantangan dan kredensial diteruskan ke fungsi InitializeSecurityContext (Umum), yang menghasilkan respons tantangan Digest.
  5. Klien mengirim header Otorisasi yang berisi respons tantangan ke server (ditampilkan sebagai Permintaan HTTP 2). Untuk informasi selengkapnya tentang respons tantangan Hash, lihat Konten Respons Tantangan Hash dan Menghasilkan Respons Tantangan Hash.
  6. Server menerima Permintaan HTTP 2, mengekstrak respons tantangan yang dikirim oleh klien, dan mengautentikasi informasi dengan memanggil fungsi AcceptSecurityContext (Umum). Untuk detail tentang proses autentikasi, lihat Autentikasi Awal menggunakan Microsoft Digest.
  7. Server mengirim Respons HTTP 2 kembali ke klien sebagai respons kedua dan terakhir yang diperlukan oleh protokol Digest Access. Jika autentikasi berhasil, respons ini berisi sumber daya yang diminta.

Isi Respons Tantangan Hash