Échange et authentification principaux cryptographiques classiques


  Share  
|

Supposez le souhait de Alice et de Bob pour communiquer. S'ils partagent une clef commune, ils peuvent employer un cryptosystem classique. Mais comment conviennent-ils sur une clef commune ? Si Alice envoie un à Bob, la veille l'oreille indiscrète le verra et pourra lire le trafic entre eux.

Pour éviter ce problème d'amorçage, les protocoles classiques se fondent sur un tiers de confiance, Cathy. Alice et Cathy partagent une clef secrète (différente) secrète de clef, et de part a de Bob et de Cathy. Le but est de fournir une clef secrète qu'Alice et Bob partagent. Le protocole simple suivant fournit un point de départ.

  1. Alice - > Cathy : {demande de clef de session au}kAlice de Bob

  2. Cathy - > Alice : {}kAlice de ksession || {}kBob de ksession

  3. Alice - > Bob : {}kBob de ksession

Bob maintenant déchiffre le message et emploie le ksession pour communiquer avec Alice.

Ce protocole particulier sert de base à beaucoup plus de protocoles sophistiqués. Cependant, Bob ne sait pas à qui il parle. Supposez qu'Alice envoie à Bob un message (tel que "dépôt $500 dans le compte bancaire de Dan aujourd'hui") chiffré sous le ksession. Si la veille enregistre le deuxième message dans l'échange ci-dessus, et le message chiffrait sous le ksession, elle peut envoyer à Bob le message {le}kBob de ksession a suivi du message chiffré sous le ksession. Bob ne saura pas qui l'envoie.

En évitant des problèmes de ce type rejouez l'attaque ajoute la complexité considérable. Les protocoles principaux d'échange ajoutent typiquement, à un minimum, une certaine sorte d'authentification et la défense contre rejouent l'attaque. Un des plus connue de tels protocoles est le protocole de Needham-Schroeder.

  1. Alice - > Cathy : {Alice || Bob || rand1}

  2. Cathy - > Alice : {Alice || Bob || rand1 || ksession || {Alice || kAlice de kBob de ksession}}

  3. Alice - > Bob : {Alice || kBob de ksession}

  4. Bob - > Alice : ksession {rand2}

  5. Alice - > Bob : {}ksession rand2 1

Dans ce protocole, rand1 et rand2 sont deux nombres produits au hasard, sauf qu'ils ne peuvent pas répéter entre différents échanges de protocole. Ces nombres s'appellent les nonces. (si Alice commence le protocole à nouveau, son rand1 dans le premier échange n'aura pas été employé là avant.) La base pour la sécurité de ce protocole est qu'Alice et Bob font confiance à Cathy.

Quand Bob reçoit le troisième message et le déchiffre, il voit que le message appelle Alice. Puisqu'il pourrait déchiffrer le message, le message a été chiffré en utilisant une clef qu'il partage seulement avec Cathy. Puisqu'il fait confiance à Cathy pour ne pas avoir partagé le kBob principal avec n'importe qui d'autre, le message doit avoir été chiffré par Cathy. Ceci signifie que Cathy garantit qu'elle a produit du ksession ainsi Bob pourrait communiquer avec Alice. Ainsi Bob espère que Cathy a envoyé le message à Alice, et qu'Alice lui a faite suivre lui.

Cependant, si la veille enregistrait le message, elle pourrait l'avoir rejoué à Bob. Du fait le cas, la veille n'aurait pas su la clef de session, ainsi Bob se mettent à vérifier que son destinataire inconnu la sait. Il envoie un message aléatoire chiffré par ksession à Alice. Si la veille arrête le message, elle ne saura pas quoi retourner ; si elle envoie n'importe quoi, la chance d'elle choisissant aléatoirement un message qui est correct est très bas et Bob détectera essayé pour rejouer. Mais si Alice lance en effet la communication, quand elle reçoit le message elle peut le déchiffrer (parce qu'elle sait le ksession), s'appliquer une certaine fonction fixe aux données aléatoires (ici, la décrémenter par 1), et chiffrer le résultat et le renvoyer à Bob. Alors Bob sera sûr qu'il parle à Alice.

Alice doit se convaincre qu'elle parle à Bob, également. Quand elle reçoit le deuxième message de Cathy, elle le déchiffre et vérifie qu'Alice, Bob, et rand1 sont présents. Ceci lui indique que Cathy a envoyé le deuxième message (parce qu'il a été chiffré avec le kAlice, que seulement elle et Cathy savent) et que c'était une réponse au premier message (parce que rand1 est dans les premiers et deuxièmes messages). Elle obtient la clef de session et fait suivre au repos Bob. Elle sait que seulement Bob a le ksession, parce que seulement elle et Bob peuvent lire les messages contenant cette clef. Ainsi quand elle reçoit des messages chiffrés avec cette clef, elle sera sûre qu'elle parle à Bob.

Le protocole de Needham-Schroeder suppose que toutes les clefs cryptographiques sont bloquées. Dans la pratique, des clefs de session seront produites pseudorandomly. Selon l'algorithme utilisé, il peut être possible de prévoir de telles clefs. Denning et Sacco ont supposé que la veille pourrait obtenir une clef de session et ont renversé le protocole. Supposez que le protocole ci-dessus a eu lieu. Puis :

  1. La Veille - > Bob : {Alice || kBob de ksession}

  2. Bob - > Alice : ksession {rand3} [ arrêté par Eve ]

  3. La Veille - > Bob : {}ksession rand3 1

Maintenant Bob pense qu'il parle à Alice. Il parle vraiment à la veille.

Denning et Sacco suggèrent en utilisant des horodateurs pour permettre à Bob de détecter ceci pour rejouer. L'application de leur méthode au protocole de Needham-Schroeder rapporte

  1. Alice - > Cathy : {Alice || Bob || rand1}

  2. Cathy - > Alice : {Alice || Bob || rand1 || ksession || {Alice || T || kAlice de kBob de ksession}}

  3. Alice - > Bob : {Alice || T || kBob de ksession}

  4. Bob - > Alice : ksession {rand2}

  5. Alice - > Bob : {}ksession rand2 1

là où T est un horodateur. Quand Bob reçoit le message dans l'étape 3, il la rejette si l'horodateur est trop vieux (trop vieux étant déterminé à partir du système en service). Cette modification exige les horloges synchronisées. Denning et Sacco notent qu'un principal avec une horloge lente est vulnérable à une attaque de rejouer. Une partie avec une horloge rapide est également vulnérable, et simplement le rajustement de l'horloge n'élimine pas la vulnérabilité.

Le protocole d'Otway-Rees corrige ces problèmes en évitant l'utilisation des horodateurs.

  1. Alice - > Bob : numérique || Alice || Bob || {rand1 || numérique || Alice || }kAlice de Bob

  2. Bob - > Cathy : numérique || Alice || Bob, || {rand1 || numérique || Alice || }kAlice de Bob || {rand2 || numérique || Alice || }kBob de Bob

  3. Cathy - > Bob : numérique || {rand1 || }kAlice de ksession || {rand2 || kBob de ksession}

  4. Bob - > Alice : numérique || {rand1 || }kAlice de ksession

Le but du nombre entier numérique est d'associer tous les messages à un échange particulier. Encore, considérez les éléments du protocole.

Quand Alice reçoit le quatrième message de Bob, elle vérifie que le numérique est conforme au numérique dans le premier message qu'elle a envoyé à Bob. Si oui, elle sait que ce fait partie de l'échange. Elle espère également que Cathy a produit de la clef de session parce que seulement Cathy et Alice savent le kAlice, et le nombre aléatoire rand1 est conforme à ce qu'Alice a mis dans la partie chiffrée du message. Combinant ces facteurs, Alice est maintenant convaincue qu'elle parle à Bob.

Quand Bob reçoit le message de Cathy, il détermine que le numérique correspond à celui qu'il a reçu de Alice et envoyé à Cathy. Il déchiffre que partie du message chiffré avec sa clef, et vérifie qu'est rand2 ce qu'il a envoyé. Il sait alors que Cathy a envoyé la réponse, et qu'il s'applique à l'échange avec Alice.

Puisqu'aucun horodateur n'est employé, la synchronisation des horloges de système est non pertinente. Supposez maintenant que la veille a acquis une vieille clef de session et le message dans 3.

Elle fait suivre à ce message Alice. De Alice rejets immédiatement il si elle n'a aucun échange principal continu avec Bob. Si elle , et numérique n'assortit pas, elle rejette le message de la veille. La seule veille de manière pourrait personnifier Bob est si elle acquérait le ksession pour un échange continu, enregistrait le troisième message, et renvoyait la partie appropriée à Alice avant que Bob pourrait faire ainsi. Du fait le cas, cependant, la veille pourrait simplement écouter le trafic, et les aucuns rejouent soyez impliqué.

c'est un article supplémentaire par Bill Kuriko


Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions