2008-10-21 10 views
5

Je travaille actuellement avec SChannel pour un serveur asynchrone (IOCP) et la plupart des choses fonctionnent bien, mais j'ai un problème avec la renégociation. En particulier, lorsque l'homologue A envoie un homologue B à une demande de renégociation et que l'homologue B répond avec une alerte TLS1 NO RENEGOTIATION, comment l'homologue A continue-t-il? Il me semble avoir un contexte invalide au moment où je reçois la réponse SEC_I_NO_RENEGOTIATION et cela me empêche d'être en mesure de continuer à utiliser le flux ...Traiter avec SEC_I_RENEGOTIATE et TLS1_ALERT_NO_RENEGOTIATION dans SChannel

Mise à jour Je l'ai fait un peu plus de tests et il n » t semble être un contexte invalide, mais je reçois SEC_E_ENCRYPT_FAILURE du prochain appel à crypter ...

Une demande de renégocier est-elle réellement refusable? Ou est NO RENEGOTIATION alerte simplement un message d'erreur informatif qui signifie maintenant que la connexion est inutile? Si oui, pourquoi est-il commenté comme étant un «avertissement» plutôt qu'une «erreur»? Nan; le RFC TLS (5246) indique clairement que sa place au pair de décider si nous pouvons continuer après une alerte sans renégociation ...

Mise à jour Il ne fait aucune différence si j'envoie l'alerte TLS en utilisant ApplyControlToken()or if I send it using EncryptMessage() avec SECQOP_WRAP_OOB_DATA ...

+1

(. Pour la postérité) Il semble que les gens de l'équipe Chrome [le même problème] (http://code.google.com/p/chromium/issues/detail? id = 36835) et ils sont liés à ce problème. –

+0

Je préfèrerais qu'ils aient trouvé une solution;) –

Répondre

0

Cela peut vous aider: Code Project: SSLSocket.

+0

On dirait que c'est juste un simple wrapper autour du code exemple de la plate-forme sdk. :( –

1

Un HOTFIX a été émis il y a un certain temps pour le matériel Intel AMT. Essentiellement, le certificat racine a été stocké comme un hachage SHA-1 au lieu de mettre en cache le certificat entier. SSPI transmet tous les certificats SAUF la racine, en espérant que la racine possède ce certificat pour la vérification de la chaîne de confiance. Lorsque la racine complète n'existait pas, SSPI forçait une renégociation.

Le correctif met à jour schannel sur les systèmes Win 2003 avec Intel AMT installé.

Vérifiez cette KB: http://support.microsoft.com/kb/942841

+0

Pourtant la situation que je décris est à la fois sur Vista et Windows 7 et n'inclut en aucun cas les trucs Intel AMT ... Je ne vois pas comment cela est pertinent, mais peut-être que je ne comprends pas? –

+0

Non, vous n'avez pas mentionné cela, vous avez raison, ce n'est pas pertinent pour votre situation, peut-être que cela aidera quelqu'un d'autre. –

Questions connexes