previous up next contents
Previous: 3 Les préalables. Up: Identification dans les systèmes Next: 5 Login (UNIX)   Contents

Subsections

4 L'identification.

4.1 La certification en général

Ces techniques peuvent alors être utilisées pour résoudre les problèmes suivants dans un échange entre deux entités A et B :

On voit que le problème 1 est un problème privé entre A et B, tandis que les problèmes 2 et 3 consistent à accumuler des évidences qui permettront à une troisième partie d'arbitrer le conflit.

4.2 Une logique de l'identification

Nous intéressant plus particulièrement à l'identification, il s'agit donc pour nous de décrire des protocoles, c'est à dire des échanges de messages, à la fin desquels on puisse obtenir la certitude de ce que quelque chose (présumé désagréable) ne se produira pas, ou bien de ce que quelque chose (présumé désirable) se produira.

On est donc dans un cas où l'attitude "empiriste" est très certainement mauvaise, et doit être remplacée par une solide méthode de preuve (cf. la réponse [43] de D.A. Simovici à la critique de son livre "Mathematical Foundation of Computer Science" parue dans IEEE- Computer [16]). Et cela d'autant plus que les protocoles d'identification fonctionnent en détournant les algorithmes de chiffrement de leur objet initial : la confidentialité, pour en inférer un certain nombre de prédicats [32].

Une formalisation des problèmes d'identification a été proposée par Burrows-Abadi-Needham [8]. Les prédicats élémentaires du formalisme B.A.N. sont listés dans la Table 1. On peut constater que le prédicat : "l'entité E a dit cela, dans une session ou une autre, et y croyait à cette époque" est clairement distinct du prédicat : "l'entité E vient de dire cela, immédiatement, et tient cela pour vrai, dans la session actuelle".


Table: Les prédicats de Burrows-Abadi-Needham.
énoncé signification
$ \mathrm{admet}\left( P ,  X \right) $ P est fondé à agir en tenant X pour vrai.
$ \mathrm{connait}\left( P ,  X \right) $ P a reçu un message contenant X (et il est sûr de ne pas en être l'émetteur... )
$ \mathrm{dixit}\left( P ,  X \right) $ P a envoyé (maintenant ou dans le passé) un message contenant X
  et $ \mathrm{admet}\left( P ,  X \right) $ était vrai à ce moment là
$ \mathrm{jauge}\left( S ,  X \right) $ S a juridiction sur X (son jugement sur la validité de X doit être tenu pour correct)
$ \mathrm{recent}\left( X \right) $ la formule X n'a jamais été utilisée dans le passé
$ \mathrm{sec}\left( k ,  P ,  Q \right) $ k est une clef secrète entre P et Q.
$ \mathrm{pub}\left( k ,  Q \right) $ k est la clef publique de Q, sa clef privée étant notée $ k^{-1} $


On fait alors les hypothèses suivantes sur la technique de codage : un message ne peut être déchiffré sans la clef, une clef ne peut être inférée des messages, les cryptogrammes (=message chiffré) sont vérifiables, et un cryptogramme vérifiable ne peut être fabriqué sans qu'on en connaisse la clef. Il devient alors raisonnable d'adopter un certain nombre de règles d'inférence, qui sont résumées dans la Table 2. Il convient alors qu'un protocole d'identification entre les entités P et Q aboutisse à :

$\displaystyle \mathrm{admet}\left( P ,  \mathrm{admet}\left( Q ,  \mathrm{sec...
...rm{admet}\left( P ,  \mathrm{sec}\left( k ,  P ,  Q \right) \right) \right) $

c'est à dire soit logiquement correct, avant que l'on se pose quelqu'autre question à son sujet.


Table: Règles d'inférence en logique B.A.N.
hypothèse conclusion
$ \mathrm{admet}\left( P ,  \mathrm{sec}\left( k ,  Q ,  P \right) \right) $ et $ \mathrm{connait}\left( P ,  X_{k} \right) $ $ \mathrm{admet}\left( P ,  \mathrm{dixit}\left( Q ,  X \right) \right) $
$ \mathrm{admet}\left( P ,  \mathrm{pub}\left( k ,  Q \right) \right) $ et $ \mathrm{connait}\left( P ,  X_{k^{-1}} \right) $ $ \mathrm{admet}\left( P ,  \mathrm{dixit}\left( Q ,  X \right) \right) $
$ \mathrm{admet}\left( P ,  \mathrm{recent}\left( X \right)   \mathrm{et}  \mathrm{dixit}\left( Q ,  X \right) \right) $ $ \mathrm{admet}\left( P ,  \mathrm{admet}\left( Q ,  X \right) \right) $
$ \mathrm{admet}\left( P ,  \mathrm{jauge}\left( Q ,  X \right)   \mathrm{et}  \mathrm{admet}\left( Q ,  X \right) \right) $ $ \mathrm{admet}\left( P ,  \mathrm{admet}\left( Q ,  X \right) \right) $
$ \mathrm{connait}\left( P ,  \left\{ X,  Y\right\} \right) $ $ \mathrm{connait}\left( P ,  X \right) $
$ \mathrm{admet}\left( P ,  \mathrm{sec}\left( k ,  Q ,  P \right) \right) $ et $ \mathrm{connait}\left( P ,  X_{k} \right) $ $ \mathrm{connait}\left( P ,  X \right) $
$ \mathrm{connait}\left( P ,  \left\{ X,  Y\right\} \right) $ et $ \mathrm{admet}\left( P ,  \mathrm{recent}\left( X \right) \right) $ $ \mathrm{admet}\left( P ,  \mathrm{recent}\left( Y \right) \right) $


4.3 La grille de comparaison

Dans les paragraphes suivants, nous allons décrire plusieurs protocoles en nous efforçant de leur appliquer la même grille de lecture, afin de permettre des comparaisons. Nos rubriques sont :


previous up next contents
Previous: 3 Les préalables. Up: Identification dans les systèmes Next: 5 Login (UNIX)   Contents


douillet@ensait.fr
2002-01-05