Freigeben über


Generieren der Digest-Abfrageantwort

Nachdem eine Herausforderung vom Server empfangen wurde, erstellt der Client die Digest-Herausforderungsantwort, indem die Funktion InitializeSecurityContext (Digest) aufgerufen wird. Diese Funktion generiert einen MD5-Hash-Fingerabdruck mithilfe von Informationen über die angeforderte Ressource und Daten aus der Herausforderung und gibt ein Sicherheitstoken aus, das einen teilweisen Sicherheitskontext darstellt. Um die Authentifizierung abzuschließen, muss der Client das Token an den Server zurückgeben, auf dem die Herausforderung ausgestellt wurde.

In der folgenden Tabelle werden die Parameter der InitializeSecurityContext (Digest)-Funktion und die Werte beschrieben, die beim Erstellen einer Digest-Herausforderungsantwort angegeben werden sollen.

Parameter Beschreibung
fContextReq
Die vom Client angeforderten Sicherheitskontextattribute. Weitere Informationen finden Sie unter Digest-Herausforderungsantwort – Kontextanforderungen.
pszTargetName
HTTP: Null-terminierte Zeichenfolge, die die Ziel-URL angibt.
SASL: Null-terminierte Zeichenfolge, die das DNS/SPN angibt.
pInput
Puffer, die Informationen enthalten, die vom Digest-SSP benötigt werden. Weitere Informationen finden Sie unter Eingabepuffer für die Digest-Herausforderungsantwort.
pfContextAttr
Empfängt die Attribute, die vom zurückgegebenen Sicherheitskontext unterstützt werden. Weitere Informationen finden Sie unter Digest-Herausforderungsantwort – Kontextanforderungen.
pOutput
Adresse eines SECBUFFER_TOKEN-Typpuffers, der ein Sicherheitstoken empfängt, das an den Server zurückgesendet wird.

Digest-Herausforderungsantwort – Kontextanforderungen

Kontextanforderungen sind Flags, die Folgendes bestimmen:

  • Ob Microsoft Digest als SASL-Mechanismus oder HTTP-Authentifizierungsprotokoll fungiert.
  • Die Qualität des Schutzes, den der gemeinsame Sicherheitskontext von Client und Server bietet.

Standardmäßig funktioniert Microsoft Digest als SASL-Mechanismus.

Kontextanforderungen werden als Flags angegeben, die an den fContextReq-Parameter der InitializeSecurityContext-Funktion übergeben werden. Flags wirken sich auf die Qualität des Schutzes des Sicherheitskontexts aus, indem sie die qop-Anweisung in der Herausforderungsantwort steuern.

Standardmäßig ist die qop-Anweisung auf „auth“ festgelegt. Um eine Herausforderungsantwort zu generieren, die qop auf „auth-int“ festlegt, muss Folgendes auftreten:

  1. Die Digest-Herausforderung muss eine qop-Anweisung auf „auth-int“ festgelegt haben.

  2. Der Client muss mindestens eine der folgenden Flags angeben:

    • ISC_REQ_INTEGRITY
    • ISC_REQ_REPLAY_DETECT
    • ISC_REQ_SEQUENCE_DETECT

Nur für SASL: Generieren Sie eine Herausforderungsantwort mit der qop-Anweisung, die auf „auth-conf“ gesetzt ist, indem Sie die Flag ISC_REQ_CONFIDENTIALITY angeben. Da diese Flag für die HTTP-Authentifizierung nicht gültig ist, kann sie nicht mit der ISC_REQ_HTTP-Flag verwendet werden.

Verifizierung der Schutzqualität

Der Client muss die Flags des Sicherheitskontexts untersuchen, die im pfContextAttr-Paramter der InitializeSecurityContext-Funktion zurückgegeben werden. Der Client sollte die Herausforderungsantwort nur an den Server senden, wenn die von den Flags angegebene Schutzqualität für seine Zwecke ausreicht. Die relevanten Flags können eine beliebige Kombination aus Folgendem sein:

  • ISC_RET_INTEGRITY
  • ISC_RET_REPLAY_DETECT
  • ISC_RET_SEQUENCE_DETECT
  • ISC_RET_CONFIDENTIALITY (nur SASL-Kontexte)

Weitere Informationen zur qop-Anweisung finden Sie unter Schutzqualität und Chiffren.

Weitere Informationen zu Herausforderungsantwort-Anweisungen finden Sie unter Inhalt einer Digest-Herausforderungsantwort.