2008-10-21 13 views
5

Ich bin mit SChannel im Moment für eine Asynchron (IOCP) basierte Server arbeiten, und ich habe die meisten Dinge arbeiten gut bekommen, aber ich habe ein Problem mit Neuverhandlung hat. Insbesondere, wenn Peer A Peer B sendet, antwortet eine Anfrage zum Neuaushandeln und Peer B antwortet mit einem TLS1 NO RENEGOTIATION Alert. Wie geht Peer A weiter? Ich scheine einen ungültigen Kontext an dem Punkt, wo ich die SEC_I_NO_RENEGOTIATION Antwort erhalten, und dies hindert mich daran, in der Lage, auch weiterhin den Stream verwenden ...Umgang mit SEC_I_RENEGOTIATE und TLS1_ALERT_NO_RENEGOTIATION in SChannel

aktualisierte Ich habe einige Tests gemacht und es doesn‘ t scheint ein ungültiger Kontext zu sein, aber ich bekomme SEC_E_ENCRYPT_FAILURE aus dem nächsten Anruf zu verschlüsseln ...

Ist eine Anfrage neu verhandeln tatsächlich ablehnbar? Oder ist NO RENEGOTIATION Alarm einfach eine informative Fehlermeldung, die jetzt bedeutet, dass die Verbindung nutzlos ist? Wenn ja, warum wird es als "Warnung" und nicht als "Fehler" bezeichnet? Nee; die TLS RFC (5246) stellt klar, dass sein bis zu dem Peer-entscheiden, ob wir nach einer Neuverhandlung Alarm weiter ...

aktualisiert Es macht keinen Unterschied, ob ich die TLS-Benachrichtigung ApplyControlToken()or if I send it using EncryptMessage() senden mit SECQOP_WRAP_OOB_DATA ...

+1

(. Für die Nachwelt) Es scheint, die Menschen auf dem Chromium-Team [haben das gleiche Problem] (http://code.google.com/p/chromium/issues/detail? id = 36835) und sie verlinken auf dieses Problem. –

+0

Ich hätte lieber, sie hätten eine Lösung gefunden;) –

Antwort

0

Vielleicht hilft Ihnen dies: Code Project: SSLSocket.

+0

Sieht aus wie es ist nur ein einfacher Wrapper rund um die Plattform sdk Beispielcode. :( –

1

Vor einiger Zeit wurde ein Hotfix für Intel AMT-basierte Hardware herausgegeben. Im Wesentlichen wurde das Stammzertifikat als SHA-1-Hash gespeichert, anstatt das gesamte Zertifikat zwischenzuspeichern. SSPI übergibt alle Zertifikate außer dem Stamm und erwartet, dass der Stamm dieses Zertifikat für die Vertrauenskettenüberprüfung hat. Als die vollständige Root nicht vorhanden war, erzwang SSPI eine Neuverhandlung.

Der Hotfix aktualisiert Schannel auf Win 2003-Systemen mit Intel AMT installiert.

Schauen Sie sich diese KB: http://support.microsoft.com/kb/942841

+0

Aber die Situation, die ich beschreibe, ist auf Vista und Windows 7 und enthält in keiner Weise Intel AMT Sachen ... Ich sehe nicht, wie das relevant ist, aber dann verstehe ich vielleicht einfach nicht? –

+0

Nein, du hast es versäumt, das zu erwähnen, du hast recht, es ist nicht relevant für deine Situation, vielleicht hilft es jemand anderem. –