Académique Documents
Professionnel Documents
Culture Documents
s
e
a
u
P
l
a
n
i
f
i
P
l
a
n
i
f
i
P
l
a
n
i
f
i
P
l
a
n
i
f
i
/
A
u
t
o
o
r
g
a
n
i
s
c
u
r
i
t
A
u
t
h
e
n
t
i
f
i
c
a
-
t
i
o
n
O
f
f
-
l
i
n
e
O
f
f
-
l
i
n
e
O
f
f
-
l
i
n
e
O
f
f
-
l
i
n
e
T
o
l
r
a
n
c
e
i
n
t
r
u
s
i
o
n
B
o
n
n
e
B
o
n
n
e
B
o
n
n
e
C
o
n
v
e
n
a
b
l
e
G
e
s
t
i
o
n
c
o
n
f
i
a
n
c
e
C
A
C
A
C
A
C
A
,
k
v
o
i
s
i
n
s
d
u
n
s
a
u
t
V
u
l
n
r
a
b
i
l
i
t
s
C
o
m
b
i
n
a
t
e
u
r
,
d
i
s
t
r
i
b
u
t
i
o
n
C
R
L
s
,
M
a
j
.
c
l
C
A
D
i
s
t
r
i
b
u
t
i
o
n
C
R
L
s
,
M
a
j
.
c
l
C
A
D
i
s
t
r
i
b
u
t
i
o
n
C
R
L
s
,
M
a
j
.
c
l
C
A
D
i
s
t
r
i
b
u
t
i
o
n
C
R
L
s
,
A
t
t
a
q
u
e
s
S
y
b
i
l
,
M
a
j
.
c
l
C
A
R
o
b
u
s
t
e
s
s
e
N
u
d
s
m
a
l
i
c
i
e
u
x
e
t
d
f
e
c
t
u
e
u
x
B
o
n
n
e
B
o
n
n
e
B
o
n
n
e
B
o
n
n
e
C
h
a
n
g
e
m
e
n
t
s
d
e
g
r
o
u
p
e
C
e
r
t
i
f
i
c
a
t
+
C
R
L
C
e
r
t
i
f
i
c
a
t
+
C
R
L
C
e
r
t
i
f
i
c
a
t
+
C
R
L
C
e
r
t
i
f
i
c
a
t
+
C
R
L
E
x
t
e
n
s
i
b
i
l
i
t
P
a
u
v
r
e
L
i
m
i
t
e
L
i
m
i
t
e
C
o
n
v
e
n
a
b
l
e
DEUXIEME PARTIE : Prsentation et analyse des protocoles de gestion des cls dans les MANETs
58
A
K
M
P
G
P
-
A
C
O
M
P
M
O
B
I
B
C
-
K
A
p
p
l
i
c
a
b
i
l
i
t
s
e
a
u
A
u
t
o
o
r
g
a
n
i
s
A
u
t
o
o
r
g
a
n
i
s
P
l
a
n
i
f
i
/
A
u
t
o
o
r
g
a
n
i
s
M
O
B
-
a
:
P
l
a
n
i
f
i
M
O
B
-
s
o
:
A
u
t
o
o
r
g
a
n
i
s
P
l
a
n
i
f
i
/
A
u
t
o
O
r
g
a
n
i
s
c
u
r
i
t
A
u
t
h
e
n
t
i
f
i
c
a
-
t
i
o
n
O
f
f
-
l
i
n
e
O
f
f
-
l
i
n
e
O
f
f
-
l
i
n
e
O
f
f
-
l
i
n
e
/
c
o
t
c
a
n
a
l
O
f
f
-
l
i
n
e
T
o
l
r
a
n
c
e
i
n
t
r
u
s
i
o
n
C
o
n
v
e
n
a
b
l
e
/
B
o
n
n
e
L
i
m
i
t
e
L
i
m
i
t
e
/
C
o
n
v
e
n
a
b
l
e
B
o
n
n
e
B
o
n
n
e
G
e
s
t
i
o
n
c
o
n
f
i
a
n
c
e
C
A
,
k
v
o
i
s
i
n
s
d
u
n
s
a
u
t
N
u
d
s
C
A
+
N
u
d
s
c
e
r
t
i
f
i
s
C
A
M
O
B
-
a
:
C
A
O
f
f
-
l
i
n
e
M
O
B
-
s
o
:
N
u
d
s
P
K
G
V
u
l
n
r
a
b
i
l
i
t
s
C
h
a
n
g
e
m
e
n
t
s
d
e
r
g
i
o
n
,
i
s
t
r
i
b
u
t
i
o
n
C
R
L
s
,
V
o
i
s
i
n
s
d
u
n
s
a
u
t
<
k
,
M
a
j
.
c
l
C
A
N
u
d
s
c
o
m
p
r
o
m
i
s
,
d
i
s
t
r
i
b
u
t
i
o
n
C
R
L
s
N
u
d
s
c
o
m
p
r
o
m
i
s
,
g
e
s
t
i
o
n
c
o
n
f
i
a
n
c
e
d
i
s
t
r
i
b
u
e
,
d
i
s
t
r
i
b
u
t
i
o
n
C
R
L
s
,
M
a
j
.
c
l
C
A
R
v
o
c
a
t
i
o
n
,
d
l
a
i
s
d
u
s
l
a
r
e
s
t
r
i
c
t
i
o
n
s
u
r
l
e
s
c
h
a
n
g
e
s
d
e
r
r
e
n
c
e
s
d
e
s
c
u
r
i
t
,
M
a
j
.
c
l
C
A
D
i
s
t
r
i
b
u
t
i
o
n
I
R
L
s
,
M
a
j
.
c
l
P
K
G
R
o
b
u
s
t
e
s
s
e
N
u
d
s
m
a
l
i
c
i
e
u
x
e
t
d
f
e
c
t
u
e
u
x
L
i
m
i
t
e
B
o
n
n
e
L
i
m
i
t
e
B
o
n
n
e
B
o
n
n
e
C
h
a
n
g
e
m
e
n
t
s
d
e
g
r
o
u
p
e
C
e
r
t
i
f
i
c
a
t
+
C
R
L
/
a
c
c
u
s
a
t
i
o
n
s
+
t
a
i
l
l
e
r
g
i
o
n
C
e
r
t
i
f
i
c
a
t
+
C
R
L
C
e
r
t
i
f
i
c
a
t
+
C
R
L
C
e
r
t
i
f
i
c
a
t
+
C
R
L
I
R
L
E
x
t
e
n
s
i
b
i
l
i
t
L
i
m
i
t
e
P
a
u
v
r
e
L
i
m
i
t
e
L
i
m
i
t
e
C
o
n
v
e
n
a
b
l
e
DEUXIEME PARTIE : Prsentation et analyse des protocoles de gestion des cls dans les MANETs
59
5.2.2.2 Evaluation des protocoles distributifs cl symtrique
Applicabilit
SKiMPy suppose des certificats pr distribus pour ltablissement du canal scuris
servant de support de communication pour le processus de slection de la meilleure cl
[5]. S-HEAL et LKH exigent des secrets pr partags et un gestionnaire de groupe pour
la diffusion des cls de groupe [5]. Ainsi SKiMPy, S-HEAL et LKH sont appropris
aux rseaux ad hoc planifis.
Scurit
SKiMPy se base sur le certificat pour ltablissement dun canal scuris mais aussi sur
la cl de groupe qui sert de preuve de fiabilit une fois tablie. LKH aussi utilise la
possession de la cl de groupe comme preuve de fiabilit. S-HEAL prsente une lacune
lie labsence dauthentification de la source des missions en provenance du
gestionnaire de groupe.
Avec SKiMPy une fois que la cl symtrique est reue par un nud, il nexiste pas de
moyen efficace dexclure ce dernier de toute participation ultrieure. Ainsi SKiMPy
offre une tolrance lintrusion limite.
S-HEAL et LKH fournissent des mcanismes de changement de cls et de rvocation et
ainsi permettent damliorer la tolrance lintrusion dans les systmes cl
symtrique. Pour S-HEAL et LKH la gestion de la confiance est assure par le
gestionnaire de groupe. Dans SKiMPy cette tche est assure soit par une autorit off-
line soit par des nuds spciaux pour ladministration des certificats.
S-HEAL et LKH prsentent des vulnrabilits face aux nuds malicieux et la
dpendance vis--vis dun gestionnaire de groupe. Le gestionnaire de groupe reprsente
un unique point de dfaillance. La rplication du gestionnaire de groupe pour la fiabilit
est dune valeur limite pour les rseaux ad hoc. En fait cette rplication exige des
serveurs synchroniss et augmente le nombre de cibles pour les attaques de scurit. Les
nuds malicieux peuvent agir en tant que gestionnaire de groupe et entraner des
perturbations.
DEUXIEME PARTIE : Prsentation et analyse des protocoles de gestion des cls dans les MANETs
60
SKiMPy prsente des vulnrabilits face la rvocation de cls car il ne permet pas
lexclusion des nuds en possession de la cl symtrique. Les certificats sont utiliss
pour assurer lauthentification. Ainsi lautorit de certification, participe la gestion de
la confiance dans SKiMPy, et peut constituer un point de dfaillance, do lexistence
de vulnrabilits de ce protocole lies la CA.
Robustesse
S-HEAL et LKH noffrent pas de rsistance face aux nuds malicieux car ils
prsentent des vulnrabilits lies la prsence de ces derniers dans le rseau. SKiMPy
propose des mises jour priodiques de la cl de groupe pour contrer la cryptanalyse, ce
qui peut renforcer sa rsistance face aux nuds malicieux.
Un changement de groupe d larrive ou au dpart de nuds implique un
changement de la cl de groupe pour S-HEAL et LKH.
Extensibilit
De manire gnrale les protocoles distributifs cl symtrique offrent une extensibilit
convenable. Dans SKiMPy cette extensibilit est favorise, car les nuds saccordent
localement sur la meilleure cl et donc laugmentation du nombre de nuds ninflue pas
sur le fonctionnement du protocole. Pour S-HEAL les tailles des messages et le nombre
de messages de mise jour de cls sont indpendants du nombre de nuds dans le
rseau. En substance LKH reprsente une famille de protocoles qui amliorent
lextensibilit de la mthode de mise jour de cls de groupe par force brute en
organisant les cls dans une hirarchie logique. Ainsi LKH prsente une extensibilit
convenable.
Les capacits des diffrents protocoles distributifs cl symtrique sont rsumes dans
le Tableau 5.3.
DEUXIEME PARTIE : Prsentation et analyse des protocoles de gestion des cls dans les MANETs
61
Tableau 5. 3: Rsum de lvaluation des protocoles distributifs cl symtrique
S
K
i
M
P
y
S
-
H
E
A
L
L
K
H
A
p
p
l
i
c
a
b
i
l
i
t
s
e
a
u
P
l
a
n
i
f
i
P
l
a
n
i
f
i
P
l
a
n
i
f
i
c
u
r
i
t
A
u
t
h
e
n
t
i
f
i
c
a
-
t
i
o
n
C
e
r
t
i
f
i
c
a
t
s
,
p
o
s
s
e
s
s
i
o
n
d
e
c
l
N
o
n
a
d
r
e
s
s
e
P
o
s
s
e
s
s
i
o
n
d
e
c
l
T
o
l
r
a
n
c
e
i
n
t
r
u
s
i
o
n
L
i
m
i
t
e
C
o
n
v
e
n
a
b
l
e
C
o
n
v
e
n
a
b
l
e
G
e
s
t
i
o
n
d
e
l
a
c
o
n
f
i
a
n
c
e
O
f
f
-
l
i
n
e
/
N
u
d
s
s
p
c
i
a
u
x
G
e
s
t
i
o
n
n
a
i
-
r
e
d
e
g
r
o
u
p
e
G
e
s
t
i
o
n
n
a
i
r
e
d
e
g
r
o
u
p
e
V
u
l
n
r
a
b
i
l
i
t
s
R
v
o
c
a
t
i
o
n
,
M
a
j
.
P
r
i
o
d
i
q
u
e
s
d
e
c
l
s
C
A
G
e
s
t
i
o
n
n
a
i
r
e
d
e
g
r
o
u
p
e
,
a
s
s
o
c
i
a
t
i
o
n
s
n
u
d
s
>
t
G
e
s
t
i
o
n
n
a
i
r
e
d
e
g
r
o
u
p
e
R
o
b
u
s
t
e
s
s
e
N
u
d
s
m
a
l
i
c
i
e
u
x
e
t
d
f
e
c
t
u
e
u
x
C
o
n
v
e
n
a
b
l
e
P
a
u
v
r
e
P
a
u
v
r
e
C
h
a
n
g
e
-
m
e
n
t
s
d
e
g
r
o
u
p
e
N
o
n
a
d
r
e
s
s
s
C
h
a
n
g
e
-
m
e
n
t
s
d
e
c
l
s
C
h
a
n
g
e
-
m
e
n
t
s
d
e
c
l
s
E
x
t
e
n
s
i
b
i
l
i
t
C
o
n
v
e
n
a
b
l
e
C
o
n
v
e
n
a
b
l
e
C
o
n
v
e
n
a
b
l
e
DEUXIEME PARTIE : Prsentation et analyse des protocoles de gestion des cls dans les MANETs
62
Les tableaux ci-dessous donnent une aperue sur les rsultats de notre analyse en listant
les diffrents avantages et inconvnients des diffrents protocoles de gestion des cls
tudis pour les MANETs.
Tableau 5. 4 : Avantages et inconvnients des protocoles distributifs cl publique
P
r
o
t
o
c
o
l
e
s
d
i
s
t
r
i
b
u
t
i
f
s
c
l
p
u
b
l
i
q
u
e
Avantages
Inconvnients
P
D
C
A
- authentification par
certificat et CA off-
line ;
- bonne tolrance
lintrusion.
- ncessite un protocole de routage dj en
cours dexcution ;
- difficults dans le choix des paramtres n,
k et T ;
- manque de prcisions sur le processus de
gestion de la confiance ;
- vulnrabilits lies aux mises jour de la
cl prive CA ;
- lourdes charges de calcul ;
- absence de mcanisme efficace de
rvocation.
M
O
C
A
,
S
E
K
M
- authentification par
certificat et CA off-
line ;
- bonne tolrance
lintrusion ;
- amlioration de la
communication entre
client et serveur
MOCA.
U
B
I
Q
- authentification par
certificat et CA off-
line ;
- fournit une auto
organisation ;
- amliore
lextensibilit.
- difficults dans le choix du paramtre k ;
- manque de prcisions sur le processus de
gestion de la confiance ;
- vulnrabilits lies aux mises jour de la
cl prive CA ;
- vulnrabilits aux attaques Sybil ;
- lourds calculs ;
- absence de mcanisme efficace de
rvocation.
DEUXIEME PARTIE : Prsentation et analyse des protocoles de gestion des cls dans les MANETs
63
A
K
M
- authentification par
certificat et CA off-
line ;
- fournit une auto
organisation ;
- amliore la tolrance
lintrusion / UBIQ.
- manque de prcisions sur le processus de
gestion de la confiance ;
- vulnrabilits face aux changements de
rgion ;
- vulnrabilits lies aux mises jour de la
cl prive CA ;
- problme li la rvocation.
P
G
P
-
A
- fournit une entire
auto organisation.
- authentification moins fiable ;
- ncessite un protocole de routage dj en
cours dexcution ;
- accroissement du cot
communicationnel ;
- tolrance lintrusion limite ;
- problme li la rvocation.
C
O
M
P
- amliore la tolrance
lintrusion / PGP-A ;
- accrot la disponibilit
du service CA /
MOCA.
- hrite des proprits dfaillantes
dauthentification ;
- difficults dans le choix des paramtres n,
k ;
- gestion de la confiance dist. ;
- vulnrabilits lies aux mises jour de la
cl prive CA ;
- lourdes charges de calcul ;
- absence de mcanisme de rvocation.
M
O
B
- bonne tolrance
lintrusion.
- dlai d ltablissement des associations
de scurit ;
- dpendance vis--vis de la mobilit ;
- absence de mcanisme de rvocation.
DEUXIEME PARTIE : Prsentation et analyse des protocoles de gestion des cls dans les MANETs
64
I
B
C
-
K
- supprime le besoin des
certificats ;
- amliore
lextensibilit.
- Problme li lauthentification de
lidentit dun nud ;
- manque de prcisions sur le processus de
gestion de la confiance ;
- vulnrabilits lies aux mises jour de la
cl prive PKG ;
- vulnrabilits lies la distribution du
PKG ;
- hrite des faiblesses de la cryptographie
base sur lidentit.
n : nombre de nuds partageant la cl prive CA ; k : seuil du partage secret ; T : priode de
renouvellement des parts secrtes.
Tableau 5.5: Avantages et inconvnients des protocoles distributifs cl symtrique
P
r
o
t
o
c
o
l
e
s
d
i
s
t
r
i
b
u
t
i
f
s
c
l
s
y
m
t
r
i
q
u
e
Avantages Inconvnients
S
K
i
M
P
y
- authentification par
certificat et possession de
la cl de groupe ;
- prvient la cryptanalyse
de la cl de groupe.
- dlai li la mise en place de la
meilleure cl ;
- tolrance lintrusion limite ;
- vulnrabilits face la rvocation.
S
-
H
E
A
L
- mcanisme de rvocation
fourni ;
- extensibilit convenable.
- Authentification non adresse ;
- Vulnrabilits lies la dpendance
vis--vis dun gestionnaire de groupe.
L
K
H
- authentification par
possession de la cl de
groupe ;
- mcanisme de rvocation
fourni ;
- extensibilit convenable.
- Vulnrabilits lies la dpendance
vis--vis dun gestionnaire de groupe ;
DEUXIEME PARTIE : Prsentation et analyse des protocoles de gestion des cls dans les MANETs
65
Tableau 5. 6: Avantages et inconvnients des protocoles contributifs
P
r
o
t
o
c
o
l
e
s
c
o
n
t
r
i
b
u
t
i
f
s
Avantages Inconvnients
D
-
H
- offre une forme de tolrance
lintrusion.
- absence de mcanisme
dauthentification.
I
N
G
- absence de mcanisme
dauthentification ;
- dpendance vis--vis dun
systme dorganisation des
nuds ;
- manque de tolrance lintrusion ;
- pauvre extensibilit.
H
&
O
- rduit le nombre de rounds et
dexponentiations dING.
A
-
G
- prise en compte de
lauthentification.
- dpendance vis--vis dun
systme dorganisation des
nuds ;
- manque de tolrance lintrusion ;
- pauvre extensibilit ;
- augmentation du nombre de
messages et de la complexit du
calcul / H&O
Conclusion
Dans cette partie nous avons prsent une vue densemble du fonctionnement des
protocoles de gestion des cls dans les rseaux ad hoc. Nous constatons que la majorit
des protocoles proposs sont destins aux systmes cl publique. Pour les systmes
cl symtrique la littrature dcrit souvent les protocoles destins aux Wireless sensor
networks, c'est--dire les rseaux de capteurs. Les protocoles distributifs cl publique
DEUXIEME PARTIE : Prsentation et analyse des protocoles de gestion des cls dans les MANETs
66
doivent tre considrs en faisant la distinction entre ceux qui sont bass sur le certificat
et ceux bass sur lidentit.
Nous avons effectu une analyse de ces diffrents protocoles, en nous basant sur un
ensemble de critres dvaluation.
Cette analyse montre quaucun protocole nest intrinsquement suprieur aux autres.
Toutefois elle nous a permis de dresser le tableau ci-dessous, prsentant les ractions
des diffrents protocoles tudis face aux diffrents problmes quun un service idal de
gestion des cls doit traiter.
Tableau 5. 7 : Rsum de lanalyse des protocoles de gestion des cls dans les MANETs
P
r
o
t
o
c
o
l
e
s
d
e
g
e
s
t
i
o
n
d
e
s
c
l
s
d
a
n
s
l
e
s
M
A
N
E
T
s
Problmes
A
u
t
h
e
n
t
i
f
i
c
a
t
i
o
n
T
o
l
r
a
n
c
e
i
n
t
r
u
s
i
o
n
E
x
c
l
u
s
i
o
n
d
e
s
n
u
d
s
c
o
m
p
r
o
m
i
s
R
s
i
s
t
a
n
c
e
/
n
u
d
s
m
a
l
i
c
i
e
u
x
o
u
E
x
t
e
n
s
i
b
i
l
i
t
M
i
s
e
s
j
o
u
r
d
e
c
l
s
p
r
i
v
e
s
C
A
/
P
K
G
PDCA Oui Oui Non Oui Non Non
MOCA Oui Oui Non Oui Non
Non
SEKM Oui Oui Non Oui Non Non
UBIQ
Oui
Oui
Non
Oui
Oui
Non
AKM Oui Oui Non Non Non Non
PGP-A Non Non Non Oui Non NA
COMP Oui Oui Non Non Non Non
MOB Oui Oui Non Oui Non Non
IBC-K Oui Oui Non Oui Oui Non
SKiMPy Oui Non Non Oui Oui Non
DEUXIEME PARTIE : Prsentation et analyse des protocoles de gestion des cls dans les MANETs
67
S-HEAL NA Oui Oui Non Oui NA
LKH Oui Oui Oui Non Oui NA
D-H Non Oui NA Oui NA NA
ING Non Non NA Non Non NA
H&O Non Non NA Non Non NA
A-G Oui Non NA Non Non NA
Au vu de ces rsultats, il est impossible de concevoir un systme de scurit ne
comportant aucune faille. Ainsi, en guise de contribution nous proposons une solution
une des insuffisances soulignes lors de notre analyse. Nous proposons un mcanisme
de rvocation de certificats un des protocoles cl publique afin de fournir ce
dernier un moyen dexclure les nuds en cas de compromission.
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
68
Troisime partie
PROPOSITION DUN MECANISME
DE REVOCATION DE
CERTIFICATS POUR LE
PROTOCOLE UBIQ
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
69
VI. MECANISME DE REVOCATION
DE CERTIFICATS POUR LE
PROTOCOLE UBIQ
Lanalyse des protocoles de gestion des cls dans les MANETs montre que la
rvocation de cls reste un problme non rsolu pour tous les protocoles distributifs
cl publique.
Dans cette partie nous proposons un mcanisme de rvocation de certificats pour un des
protocoles bass sur PKI tudis ainsi quun ensemble de tests dont le but est de valider
cette proposition.
6.1 Rvocation des cls pour les protocoles cl publique
La rvocation de cls publiques doit tre traite au sein du rseau, car les nuds doivent
tre en mesure de vrifier immdiatement l'tat de celles-ci.
Lanalyse des protocoles de gestion des cls dans les rseaux ad hoc a montr que le
problme majeur des protocoles distributifs cl publique est la rvocation des cls. La
rvocation des cls est un des mcanismes utiliss pour adresser les menaces que la
gestion des cls doit traiter notamment :
- La compromission de la confidentialit des cls ;
- La compromission de lauthenticit des cls ;
- Lusage non autoris de cls.
6.1.1 Travaux relatifs la rvocation des cls pour les protocoles cl
publique
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
70
6.1.1.1. Mcanismes pour les protocoles bass sur le certificat
Plusieurs mcanismes bass sur PKI ont t introduits pour les MANETs, par exemple
[14, 55, 56], ou certains dentre eux utilisent des systmes seuil (k, n) pour
implmenter des CAs distribues on-line [14, 55]. Dans [14] il est suggr de rvoquer
les certificats de manire collaborative, mais aucun algorithme nest prsent. En fait le
mcanisme de rvocation dans cette solution ncessiterait des signatures seuil, ce qui
est lourd en terme de calcul.
Dans [55], un mcanisme daccusation selon lequel chaque nud observe les nuds de
son voisinage pour un comportement malicieux est brivement esquiss. En se basant
sur ces observations les nuds envoient leurs accusations signes leur voisinage m
sauts. Tous les rcepteurs vrifient les accusations et en consquence mettent jour
leurs listes daccusation. Si le nombre daccusations pour un nud est suprieur un
seuil , le certificat est rvoqu.
Dans [56], un mcanisme de rvocation de certificats est prsent pour les MANETs. Il
utilise un systme daccusation avec seuil . Lopration suppose une CA off-line qui
dlivre des certificats tous les nuds avant que ceux-ci ne rejoignent le rseau. Toutes
les accusations sont frquemment diffuses sur lensemble du rseau. Le mcanisme de
rvocation utilise un systme de pondration daccusations pour dcider si un certificat
est rvoquer. Ici, au lieu de calculer la somme des accusations, les accusations sont
pondres selon le nombre daccusations faites par un nud, le nombre daccusations
qui ont t signales contre ce nud etc. Quand un nouveau nud se connecte au
rseau, il reoit les tables daccusation en provenance de tous les nuds du rseau. Les
messages daccusation dans [56] ne sont pas scuriss en gnral et les auteurs
suggrent de vrifier les incohrences dans les tables daccusation reues, et de se fier
aux accusations en provenance dexpditeurs avec une valeur de confiance suffisante.
6.1.1.2 Mcanisme pour les protocoles bass sur lidentit
Rcemment, deux protocoles cryptographiques bass sur l'identit (Identity-Based
Cryptograghy IBC) ont t introduits pour scuriser les rseaux mobiles ad hoc [57].
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
71
Toutefois, ces protocoles ne prvoient pas de mcanismes de rvocation et de
renouvellement des cls. La rfrence [57] propose le premier mcanisme de rvocation
de cls pour les protocoles bass sur lidentit spcialement conus pour les MANETs.
6.1.2 Mcanisme de rvocation pour les protocoles bass sur lidentit
Jusquici dans tous les protocoles cryptographiques bass sur lidentit, c'est--dire les
protocoles gnraux et ceux spcialement conus pour les MANETs, la rvocation se
rfrait ladjonction dune date dexpiration la cl publique [57]. Cela nest pas
suffisant car les nuds doivent tre capables de rvoquer les cls avant quelles
nexpirent, par exemple dans le cas de la compromission dune cl ou dun
comportement malveillant.
La rfrence [57] fournit un mcanisme de rvocation auto organis dans lequel chaque
nud surveille le comportement des nuds situs lintrieur de sa gamme de
transmission et propage de manire scurise ses observations. La cl publique dun
nud est rvoque si un nombre minimum de nuds laccuse.
Le mcanisme est efficace parce quil utilise des cls pr partages pour scuriser les
messages daccusation et de rvocation. Les messages sont envoys au voisinage m
sauts au lieu du rseau en entier. Le mcanisme peut tre adapt aux protocoles de
gestion des cls bass sur PKI dans les MANETs.
Les protocoles bass sur lidentit fournissent un systme de gestion de cls efficace qui
aident dans la rduction du cot de la communication, du temps de calcul et du volume
de mmoire. La fonction principale des protocoles cryptographiques bass sur lidentit
est lutilisation de cls publiques auto authentifies, ce qui rend lusage des certificats
superflu. La cl publique
i
Q
dun nud
i
D
est pr dtermine, la cl prive
i
d
est
drive de
i
Q et dune cl secrte master secret key s
seulement connue par le KGC
(Key Generator Center),
i i
sQ d = . Le KGC gnre et distribue les cls prives durant
linitialisation de tous les nuds du rseau. Dans les protocoles cryptographiques bass
sur lidentit chaque nud du rseau est en mesure de driver la cl publique
i
Q dun
partenaire de communication
i
D dans le rseau, par exemple ) (
1 i i
ID H Q = [57]. Cela ne
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
72
ncessite aucun change de donnes. De plus toutes les paires de nuds
i
D et
j
D
dans les protocoles IBC bass sur le couplage sont en mesure de calculer une cl secrte
de paire pr partage
j i
K
,
[57] de faon non interactive comme dcrit par la formule
(4).
) , ( ) , (
, j i j i j i
d Q Q d K = =
(4)
o (.) est une fonction qui prend deux paramtres et satisfait les proprits telles que la
bilinarit, la non dgnrescence et la calculabilit. Elle est nomme bilinear mapping
[3].
Pour le calcul de la cl, chaque nud calcule (.) partir de sa propre cl prive
i
d et la
cl publique
j
Q
de lautre nud.
Les hypothses ncessaires pour le rseau et les nuds peuvent tre rsums comme
suit :
1. il existe des liens de communication bidirectionnels ;
2. il existe des systmes de surveillance dj mis en place sur les nuds ;
3. chaque nud a une identit unique ;
4. les nuds connaissent les identits de leurs voisins dun saut ainsi que la
distance pour un saut ;
5. Les nuds connaissent les identits de tous les nuds de leur voisinage m
sauts ;
6. les nuds obtiennent une paire de cls publique/prive auprs dun KGC off-
line avant de rejoindre le rseau.
6.1.2.1 Fonctionnement du mcanisme de rvocation
Le mcanisme comprend trois algorithmes [57] :
les nuds observent les nuds de leurs voisinage pour un comportement suspect
en utilisant lAlgorithme1 : Neighborhood watch ;
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
73
les nuds doivent tre capables de rvoquer leur propre cl publique en utilisant
lAlgorithme2 : Harakiri ;
les nuds sinforment les uns les autres de manire scurise propos
dobservations suspectes et gnrent chacun une liste de rvocation de cls dans
lalgorithme3 : Accusation.
Algorithme1 : Neighborhood watch
Le Neighborhood watch est un contrle local dans lequel chaque nud
i
ID
surveille son
voisinage dun saut
i
N - ensemble des nuds situs lintrieur de la gamme ou porte
de transmission du nud
i
ID
- pour un comportement suspect. Le comportement
suspect peut tre des paquets frquemment envoys ou un grand nombre de messages
envoys. Pour cette raison les nuds observent leurs voisins et vrifient si ces derniers
expdient des messages qui taient adresss dautres. Le comportement suspect peut
avoir diffrentes causes, par exemple un nud a t compromis et est maintenant
contrl par un utilisateur malicieux, ou un nud est goste et au lieu dexpdier les
messages il prfre conserver son nergie.
Pour une reprsentation facile et sans perte de la gnralit nous dnotons les voisins
dun saut de
i
ID
par
i
N
j
ID
avec { }
i
N j ,..., 1
ou
i
N
est le nombre de voisins dun
saut du nud
i
ID [57]. Lutilisateur
i
ID
stocke des valeurs daccusation
i
j i
a
,
pour
chaque
i
N
j
ID avec une date dexpiration
i
j
t et la version
i
j
v de la cl publique
courante
j
Q . Un nud
i
ID fixe ses valeurs daccusation 1
,
=
i
j i
a
si
i
ID
observe que
j
ID
se comporte de manire suspecte, autrement 0
,
=
i
j i
a . Les valeurs daccusation cres
par
i
ID partir de son Neighborhood watch peuvent tre reprsentes sous la forme
dune matrice daccusation
i
AM .
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
74
,
,
,
1 , 1 1 1
|
|
|
|
|
|
|
\
|
=
i
i
N i
i
i
N
i
i
N
i
N
i
i
i i
i
a v t ID
a v t ID
AM
avec { } { }
i
i
j i
N j a ,..., 1 et 1 , 0
,
. Chaque vecteur ligne ) (
j
i
ID r
ou
i
j
r dans
i
AM ,
correspond un voisin
i
N
j
ID . Il contient son identit, la valeur daccusation
i
j i
a
,
affecte sa cl publique
j
Q , la date dexpiration
i
j
t et la version
i
j
v
de
j
Q . Nous nous
rfrons la troisime colonne dans
i
AM comme vecteur colonne
i
i
c , qui est le vecteur
contenant toutes les accusations faites par
i
ID . Les valeurs daccusation sont mises
jour chaque fois que
i
ID observe un comportement suspect. Une fois la valeur
i
j i
a
,
fixe 1, elle nest pas remise zro tant quune nouvelle cl publique '
j
Q nest pas
reue.
Algorithme2 : Harakiri
Quand un nud
i
ID ralise que sa cl prive
i
d a t compromise, il diffuse un harakiri
message
i
hm sous le format suivant :
hopcount) , revoque" " ), v , (t , Q , d , (ID hm
i i i i i i
=
,
son voisinage m sauts not par
i
N m . Ce voisinage est constitu par lensemble
des nuds situs une distance infrieure ou gale m fois la porte de transmission du
nud
i
ID . Initialement
i
ID
fixe le hopcount m et envoie le message tous ses voisins
dun saut. Les rcepteurs
j
ID vrifient lauthenticit du harakiri en contrlant si
) , (
, j i i j
Q d K =
(5)
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
75
est vraie. Le contrle vrifie si la cl prive diffuse
i
d correspond rellement la cl
publique
i
Q . Ainsi
j
ID vrifie sil est en possession de la cl publique
i
Q et de la cl
pr partage
i j
K
,
, et si tel est le cas il utilise
i j
K
,
pour vrifier si (5) est vraie. Si
j
ID
nest pas en possession de ces cls, il calcule en premier
i
Q conformment
) ( H
1 i i i i
v t ID Q =
(6)
pour vrifier si
i
ID
et
i
Q correspondent. En cas de succs de la vrification,
j
ID drive
i j
K
,
conformment (4) et vrifie alors si (5) est vraie. Si tel est le cas, le rcepteur
j
ID met jour sa valeur daccusation
1
,
=
j
i i
a
, dcrmente le hopcount et diffuse le
message nouveau. Autrement,
i
hm est ignor. La diffusion est rpte jusqu ce que
lon ait hopcount = 0. Cela assure que tous les nuds dans le voisinage m sauts du
nud compromis
i
ID ont reu le harakiri message et ainsi sont informs concernant la
compromission dune cl.
Algorithme3 : Accusation
Dans cet algorithme chaque nud
i
ID cre sa propre liste de rvocation de cls
i
KRL
pour son voisinage m sauts. Nous dcrivons comment les listes de rvocation sont
cres (Alg.3.1), propages de manire scurise ( Alg.3.2) et comment les nuds
utilisent les listes de rvocation et les harakiri messages reus pour mettre jour leur
propre liste de rvocation (Alg.3.3) [57].
Algorithme3.1 : Cration de liste de rvocation de cls
Chaque nud
i
ID cre une liste de rvocation de cls
i
KRL sous le format suivant :
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
76
|
|
|
|
|
|
|
\
|
=
i
i
M
i
M
i
i
M
i
i
M
i
i
M
i
i
M
i
M
i
i
M
i i i i
i
a a R v t ID
a a R v t ID
KRL
, 1 ,
, 1 1 , 1 1 1 1 1
) , (
) , (
Avec { } { }
i
i
k j
M k j a ...., 1, , et - 1, , 0
,
o
i
M
est le nombre de nuds dans le
voisinage m sauts
i
N m de
i
ID incluant
i
ID
lui-mme. La valeur daccusation
i
k j
a
,
qui est gale "-" indique que
j
ID et
k
ID sont plus de m sauts lun par rapport
lautre. Ainsi chacun de ces nuds ne peut pas se prononcer sur la fiabilit de lautre.
Chaque vecteur ligne
i
j
r dans
i
KRL correspond un nud
i
N m ID
j
, o la ligne
contient les valeurs daccusation
i
k j
a
,
de tous les nuds
i
N m ID
k
contre un nud
j
ID . Chaque vecteur colonne ) (
j i
ID c
ou
i
j
c dans
i
KRL contient toutes les accusations
i
j k
a
,
portes par le nud
j
ID
contre tous les nuds
i
N m ID
k
. Lindex i
montre
que les valeurs sont celles courantes dans la liste de rvocation de
i
ID .
Le premier champ dans chaque ligne
i
j
r de
i
KRL
contient lidentit du nud
j
ID . Le
second champ contient la date dexpiration
i
j
t et la version
i
j
v de la cl publique la plus
courante
j
Q que connat
i
ID . Le troisime champ contient un indicateur
i
j
R qui,
lorsquil est fix 1, indique que le nud
i
ID
considre la cl publique
j
Q
du nud
j
ID
comme rvoque. Les champs allant de 4 la fin contiennent les valeurs
daccusation
i
i
M j
i
j
a a
, 1 ,
,...,
, ou la valeur
1
,
=
i
k j
a
indique que le nud
k
ID accuse le
nud
j
ID , sinon
0
,
=
i
k j
a
sinon. Les indicateurs de rvocation
i
j
R dans la liste de
rvocation de cls
i
KRL
de
i
ID
sont fixs, c'est--dire 1 =
i
j
R si une des quatre
conditions suivantes est vraie:
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
77
Condition 1 :
1
,
=
i
i j
a
, cela signifie que le nud
i
ID
observe lui-mme le
comportement malicieux du nud
j
ID
durant le neighborhood
watch (Alg.1). Ce qui implique que
j
ID
et
i
ID
sont des voisins
dun saut ;
Condition 2 :
i
j
t
est expire, cela signifie que la copie courante de la cl
publique
j
Q de
j
ID est expire ;
Condition 3 :
1
,
=
i
j j
a
, cela signifie que
i
ID
a reu un harakiri message
authentique
j
hm
de
j
ID ;
Condition 4 :
> =
=
i
M
k
i
k j
i
j
a A
1
,
pour tout k
tel que 0 =
i
k
R
; cela consiste
additionner toutes les valeurs daccusation
i
k j
a
,
du vecteur ligne
i
j
r
des nuds non rvoqus
k
ID
et vrifier si la somme est
suprieure . En dautres termes la cl publique
j
Q
est
rvoque si le nud
i
ID
reoit plus de
accusations partir
dun nud fiable
k
ID
contre un nud suspect
j
ID .
Si aucune des ces quatre conditions nest satisfaite, alors 0 =
i
j
R , cela signifie que
j
ID
et sa cl publique courante sont considrs comme fiables.
Algorithme 3.2 : Propagation daccusations
Dans cet algorithme les nuds propagent de manire scurise les accusations travers
le rseau. Chaque fois quun nud
i
ID met jour sa matrice daccusation
i
AM ,
puisque ayant observ un certain comportement suspect dans son neighborhood watch,
i
ID envoie un message daccusation ses voisins dun saut. De la mme manire,
chaque fois que
i
ID met jour sa liste de rvocation de cls
i
KRL , car ayant reu des
accusations partir dautres nuds,
i
ID envoie un message daccusation ses voisins.
Les messages daccusation envoys par
i
ID ont le format suivant :
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
78
)) , ( , ) , ( (
,
, i i i i
j i
K j i
am ID am ID f am =
pour tout
i
N
j
ID
o
i
i
AM am = pour des mises jour partir du neighborhood watch de
i
ID , et
i
i
KRL am = pour des mises jour de liste de rvocation causes par des messages
daccusation reus par
i
ID en provenance dautres nuds.
Optionnellement,
i
am
contient uniquement les valeurs mises jour pour rduire la
bande passante. Les messages daccusation
j i
am
,
sont scuriss en utilisant les cls pr
partages
j i
K
,
pour tout
i
N
j
ID et sont alors envoys chaque voisin dun saut
j
ID .
Les cls pr partages servent comme entre dune fonction de hachage scurise
) ( f pour authentifier le message. Aprs avoir reu
j i
am
,
, un nud voisin
j
ID vrifie le
message reu en utilisant sa cl pr partage
i j
K
,
. En cas de succs,
j
ID met jour sa
liste de rvocation de cls
j
KRL
conformment, comme expliqu dans lalgorithme 3.3.
Algorithme 3.3 : Mise jour de listes de rvocation de cls
Chaque fois quun nud
i
ID reoit un harakiri message
j
hm
partir de
j
ID , il vrifie
le message comme dcrit dans lAlg.2 et en cas de succs, le nud
i
ID fixe
1
,
=
i
j j
a
et
ainsi
1 =
i
j
R
dans sa liste de rvocation
i
KRL (voir Cond. 3 dans lAlg.3.1). Si un nud
i
ID reoit un message daccusation
i j
am
,
partir dun voisin dun saut
j
ID ,
i
ID
excute les tapes suivantes pour mettre jour sa liste de rvocation de cls
i
KRL :
Etape 1 : Vrifier si
0 =
i
j
R
, c'est--dire si
i
ID
considre le nud
j
ID comme
fiable ; si tel est le cas continuer lexcution, sinon ignorer
i j
am
,
et
arrter ;
Etape 2 : Vrifier lauthenticit de
i j
am
,
en utilisant la cl pr partage
j i
K
,
comme dcrit dans lAlg.3.2 ; en cas de succs continuer lexcution,
sinon ignorer
i j
am
,
et arrter ;
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
79
Etape 3 : Extraire le vecteur colonne
j
j
c de
j
AM ou
j
KRL
de
i j
am
,
pour mettre
jour le vecteur colonne
i
j
c dans
i
KRL , c'est--dire adopter les
valeurs daccusation du neighborhood watch de
j
ID . Notons que
i
ID
utilise uniquement les valeurs daccusation adresses aux nuds de
son propre voisinage m sauts, les autres valeurs daccusation son
ignores. Si
j
j
AM am =
arrter, sinon continuer lexcution ;
Etape 4 : Ignorer toutes les colonnes
j
k
c de
j
KRL pour :
- i k = car il sagit du propre vecteur daccusation de
i
ID ;
- j k = car dj utilis ltape 3 ;
- l k = pour tout 1 =
i
l
R avec { }
i
M l ,..., 1 car
i
ID ne fait plus
confiance au nud
l
ID ;
- r k = pour tout les
i r
am
,
dj accepts ltape 2 ;
- s k = pour tout
i
N m ID
s
, c'est--dire les nuds qui sont situs
plus de m sauts.
Sauver toutes les autres colonnes
j
k
c .
Maintenant
i
ID rpte les tapes allant de 1 4 pour tous les messages daccusation
reus
i j
am
,
. Considrons que
i
ID a sauv
k
d
vecteurs colonnes
j
k
c partir de
k
d nuds
j
ID diffrents pour le mme
k
ID dans ltape 4. Pour tout >
k
d , tant un seuil de
scurit,
i
ID excute ltape 5 ci-dessous.
Etape 5 : Utiliser tous les
k
d
vecteurs colonnes
j
k
c sauvs ltape 4 pour
mettre jour le vecteur colonne
i
k
c de
i
KRL . La mise jour est faite
en utilisant le vote majoritaire pour chaque lment du vecteur
colonne. La majorit pour chaque valeur daccusation
j
k l
a
,
avec
{ }
i
M l ,..., 1
est calcule comme suit :
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
80
{ } { }
{ } { }
<
>
=
=
=
autrement. ,
; ,..., 1 et ,..., 1 avec , 2 / , 0
; ,..., 1 et ,..., 1 avec , 2 / , 1
,
1
,
1
,
,
i
k l
k i
k
d
j
k
j
k l
k i
k
d
j
k
j
k l
i
k l
a
d j M l d a si
d j M l d a si
a
Pour la simplicit nous supposons que
i
ID a sauv
k
d
vecteurs
colonnes
i
k
c partir de
k
d
voisins
j
ID avec { }
k
d j ,..., 1 ltape 4,
avec
k
d
.
Seules les valeurs
j
k l
a
,
pour les nuds
l
ID du voisinage m sauts de
i
ID
sont considres, les autres valeurs sont ignores. Si aucune majorit ne
peut tre trouve, la valeur daccusation reste inchange. Le nud
i
ID
rpte ceci pour tous les vecteurs colonnes
i
k
c pour lesquels le nombre de
vecteurs collects
j
k
c
est strictement suprieur .
6.1.2.2 Critique du mcanisme de rvocation propos pour les protocoles bass sur
lidentit
Le mcanisme dcrit pour les protocoles bass sur lidentit prsente une efficacit due
lusage des cls pr partages, mais aussi la propagation des messages vers le
voisinage m sauts au lieu de la propagation vers le rseau entier. Cependant il ne peut
pas tre directement appliqu aux protocoles bass sur le certificat. Cela est
principalement d deux facteurs notamment :
1. lusage des cls publiques auto authentifies dans les protocoles bass sur
lidentit ;
2. lusage des cls pr partages pour scuriser les messages daccusation.
En effet dans les protocoles bass sur lidentit les cls publiques des utilisateurs et leur
identit nont pas besoin dtre lies par les certificats. Ainsi les cls publiques dans les
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
81
protocoles bass sur lidentit sont auto authentifies, ce qui nest pas le cas dans les
autres types de protocoles o lauthenticit des cls publiques ncessite dtre tablie.
Une fois cette authenticit tablie grce aux certificats numriques, il nest plus possible
de rvoquer les cls sans passer par la rvocation des certificats.
En outre le mcanisme de rvocation de cls propos pour les protocoles bass sur
lidentit suppose lexistence de cls pr partages utilises pour scuriser les messages
daccusation. Chaque paire de nuds est en mesure de calculer une cl secrte de paire
pr partage de manire non interactive comme montr par la formule (4). Lusage des
cls secrtes pr partages est surtout favoris par la possibilit de les calculer de
manire non interactive. Ceci permet de rduire la charge globale de calcul et de
communication dans le rseau.
Notons que les cls secrtes de paire peuvent aussi tre drives dans les systmes bass
sur PKI [3]. Cependant ces cls ncessitent lchange authentique des cls publiques
(utilisant les certificats de cls publiques) et ne sont pas drives de manire non
interactive. Par consquent lusage des cls secrtes pr partages prsente peu dintrt
dans les systmes bass sur PKI.
Ainsi le mcanisme dcrit pour les protocoles bass sur lidentit ncessite certaines
modifications afin de ladapter aux protocoles traditionnels bass sur le certificat.
6.2 Proposition dun mcanisme de rvocation pour le
protocole Ubiquitous Security Support (UBIQ)
Notre proposition consiste adapter la solution propose dans [57] et prsente au
paragraphe 6.1.2 lun des protocoles de gestion des cls bass sur PKI notamment
UBIQ.
Ladaptation consistera surtout :
1. fournir un mcanisme permettant la rvocation des certificats la place de la
rvocation des cls publiques ;
2. remplacer lusage des cls pr partages par celui des signatures numriques
pour assurer lauthenticit des messages daccusation.
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
82
En effet avec les systmes bass sur PKI les certificats garantissent la fiabilit des cls
publiques. Ainsi lon ne peut parler de la rvocation des cls publiques sans passer par
la rvocation des certificats. Dans un systme bas sur PKI rvoquer une cl publique
revient donc rvoquer le certificat utilis pour garantir sa fiabilit.
Dans la solution propose dans [57], lutilisation des cls pr partages est surtout
favorise par la possibilit de calculer ces dernires de faon non interactive. Ce qui ne
prsente pas dintrt avec les systmes qui ne sont pas bass sur lidentit.
6.2.1 Choix du protocole UBIQ
Notre choix de UBIQ repose surtout sur les aspects suivants :
1. problme de la rvocation avec les protocoles de gestion des cls bass sur le
certificat ;
2. problmes relatifs aux approches conventionnelles ;
3. certaines caractristiques du protocole UBIQ (Ubiquit, Robustesse).
Lanalyse des protocoles de gestion des cls a montr que le problme cit en 1.) reste
un cas non rsolu pour les protocoles cl publique, plus particulirement ceux bass
sur le certificat. Ltude des travaux relatifs la rvocation montre que la solution de
rvocation [55] propose pour le protocole UBIQ prsente des lacunes et donc jusquici
il nexiste pas de solution.
Le protocole UBIQ se fonde sur une approche diffrente de celles utilises par les
protocoles conventionnels qui prsentent certains problmes notamment ceux souligns
en 2.). En effet les approches communes, notamment centralises et hirarchiques, ne
sont pas adaptes aux rseaux mobiles de grande taille. Dans lapproche centralise, une
seule autorit de certification CA fournit les services de certification pour le rseau
entier, ainsi dans un large rseau mobile le problme li lextensibilit est vident. De
plus pour laspect scurit la CA sera expose comme tant un unique point de
dfaillance en cas de panne, de compromission ou dattaque de type DoS.
Dans une approche hirarchique le rseau entier est logiquement partitionn en
domaines o des CAs locales sont dployes. Cest aussi lapproche discute dans [14]
o des CAs collaboratives sont dployes comme point daccs pour des services de
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
83
scurit. Cette approche semble adapte un large rseau mobile. Cependant plusieurs
caractristiques des rseaux mobiles, par exemple la grande mobilit, la rendent
inefficace. De plus dans les rseaux ad hoc la CA locale peut tre multi sauts et peut
galement se dplacer. Cela cause non seulement un repartitionnement dynamique du
rseau mais galement rend plus complexe le problme de la localisation dune CA
locale. Chaque CA locale est expose comme unique point de compromission ou
dattaque de type DoS.
UBIQ distribue les fonctions dautorit de certification laide dun mcanisme de
partage secret seuil selon lequel chaque entit dtient une part secrte et des entits
multiples dans un voisinage local fournissent conjointement des services complets. Ce
qui assure lubiquit du protocole. Aussi UBIQ met jour les parts secrtes pour
accrotre la robustesse.
6.2.2 Fonctionnement du mcanisme de rvocation de certificats
propos
Les hypothses suivantes ncessaires pour le rseau et les nuds sont poses selon
celles donnes pour le mcanisme dcrit dans [57] et cites au paragraphe 6.1.2 :
1. il existe de liens de communication bidirectionnels ;
2. il existe des systmes de surveillance dj mis en place sur les nuds ;
3. chaque nud a un certificat numrique unique ;
4. les nuds connaissent la distance pour un saut ;
5. les nuds dtiennent les certificats de tous les nuds de leur voisinage m
sauts ;
Les deux premires hypothses sont ncessaires pour permettre aux nuds de surveiller
leurs voisins dun saut. Les liens bidirectionnels sont des hypothses usuelles requises
pour plusieurs protocoles MANET des couches infrieures comme AODV (Ad hoc On-
Demand Distance Vector) et autres protocoles de routage bass sur celui-ci. La
troisime hypothse est ncessaire pour identifier de manire unique le certificat dun
nud. La quatrime hypothse est requise car les nuds voisins ont besoin dtre
identifi sans ambigut avant que lon ne puisse les marqus comme suspects ou fiables
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
84
dans le mcanisme de rvocation. La cinquime hypothse est ncessaire pour permettre
aux nuds de dcider concernant les valeurs daccusation quils doivent considrer afin
de mettre jour leurs listes de rvocation.
Comme nous lavons dj soulign le mcanisme permet la rvocation des cls
publiques travers la rvocation de certificats et utilise les systmes de signature
numrique pour assurer lauthenticit des messages daccusation. Il comporte trois
algorithmes.
La diffrence avec les algorithmes dj exposs rside au niveau de :
lutilisation des listes de rvocation de certificats la place des listes de
rvocation de cls ;
lutilisation des signatures numriques la place des cls pr partages pour
scuriser les messages daccusation.
Algorithme1 : Neighborhood watch
Le Neighborhood watch est un contrle local dans lequel chaque nud
i
ID
surveille ses
voisins dun saut nots par
i
N
j
ID avec { }
i
N j ,..., 1 , o
i
N est le nombre de voisins
dun saut du nud
i
ID . Lutilisateur
i
ID stocke des valeurs daccusation
i
j i
a
,
pour
chaque nud
i
N
j
ID avec une priode de validit
i
j
vp
du certificat de celui-ci. Un
nud
i
ID fixe ses valeurs daccusation 1
,
=
i
j i
a
sil observe que
j
ID se comporte de
manire suspecte, autrement 0
,
=
i
j i
a . Les valeurs daccusation cres par
i
ID partir de
son Neighborhood watch peuvent tre reprsentes sous forme de matrice
daccusation
i
AM .
,
1 , 1 1
|
|
|
|
|
|
|
\
|
=
i
i
N i
i
i
N
i
N
i
i
i
i
a vp Cert
a vp Cert
AM
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
85
{ } { } ,..., 1 et 1 , 0 avec
, i
i
j i
N j a . Chaque vecteur ligne ) (
j
i
ID r
ou
i
j
r dans
i
AM ,
correspond un voisin
i
N
j
ID . Il contient le numro de srie du certificat
j
Cert du
nud
j
ID , sa priode de validit
i
j
vp et la valeur daccusation
i
j i
a
,
affecte
j
Cert .
Nous nous rfrons la troisime colonne dans
i
AM comme vecteur colonne
i
i
c , qui
contient toutes les accusations faites par
i
ID . Les valeurs daccusation sont mises jour
chaque fois que
i
ID observe un comportement suspect. Une fois que
i
j i
a
,
est fix, la
valeur nest pas remise zro tant quun nouveau certificat '
j
Cert contenant une
nouvelle cl publique '
j
Q nest pas reu.
Algorithme2 : Harakiri
Quand un nud
i
ID ralise que sa cl prive
i
d a t compromise, il diffuse un harakiri
message
i
hm sous le format suivant :
) sign , hopcount) , revoque" " , vp , ((Cert hm
i i i i
=
,
travers son voisinage m sauts not par
i
N m . Ce voisinage est constitu par
lensemble des nuds situs une distance infrieure ou gale m fois la porte de
transmission du nud
i
ID . Initialement
i
ID
fixe le hopcount m et envoie le message
tous ses voisins dun saut. Les rcepteurs
j
ID vrifient lauthenticit et lintgrit du
harakiri en utilisant la signature reue
i
sign . Ainsi
j
ID vrifie la signature
i
Sign avec
la cl publique
i
Q contenue dans le certificat
i
Cert .
Le contrle vrifie si le nud
i
ID est rellement le propritaire du certificat inclus dans
le harakiri message et sil a la possession de la cl prive
i
d correspondant la cl
publique
i
Q . En cas de succs de la vrification,
j
ID met jour sa valeur daccusation
1
,
=
j
i i
a
, dcrmente le hopcount et diffuse le message nouveau. Autrement,
i
hm est
ignor. La diffusion est rpte jusqu ce que lon ait hopcount = 0. Cela assure que
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
86
tous les nuds dans le voisinage m sauts du nud compromis
i
ID ont reu le harakiri
message et sont ainsi informs de la compromission dune cl.
Algorithme3 : Accusation
Cet algorithme dcrit la cration de listes de rvocation de certificats, la propagation
scurise et la mise jour de ces listes.
Algorithme3.1 : Cration de liste de rvocation de certificats
La diffrence par rapport lAlgorithme 3.1 du paragraphe 6.1.2.1 rside au niveau des
deux premires colonnes de la matrice reprsentant la liste de rvocation de certificats.
Ici la premire colonne contient les numros de srie des certificats des diffrents nuds
du voisinage m sauts au lieu de leurs identits. La deuxime colonne comporte la
priode de validit de ces certificats au lieu de la date dexpiration et de la version de la
cl publique des diffrents nuds du voisinage m sauts.
Chaque nud
i
ID cre une liste de rvocation de certificats
i
CRL selon le format
suivant :
|
|
|
|
|
|
|
\
|
=
i
i
M
i
M
i
i
M
i
i
M
i
i
M
i
M
i
i
M
i i i
i
a a R vp Cert
a a R vp Cert
CRL
, 1 ,
, 1 1 , 1 1 1 1
avec
{ } { }
i
i
k j
M j a ...., 1, k , et - 1, , 0
,
ou
i
M
est le nombre de nuds dans le
voisinage m sauts
i
N m de
i
ID , incluant
i
ID lui-mme. La valeur daccusation
=
i
k j
a
,
indique que
j
ID et
k
ID sont plus de m sauts lun par rapport lautre. Ainsi
chacun de ces nuds ne peut pas se prononcer sur la fiabilit de lautre. Chaque vecteur
ligne
i
j
r dans
i
CRL correspond un nud
i
N m ID
j
.
i
j
r contient les valeurs
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
87
daccusation
i
k j
a
,
de tous les nuds
i
N m ID
k
contre le nud
j
ID . Chaque vecteur
colonne
i
j
c dans
i
CRL contient toutes les accusations
i
j k
a
,
portes par le nud
j
ID
contre tous les nuds
i
N m ID
k
. Lindex i montre que les valeurs sont celles
courantes dans la liste de rvocation de
i
ID .
Le premier champ dans chaque ligne
i
j
r de
i
CRL
contient le numro de srie du
certificat
j
Cert
du nud
j
ID . Le second champ contient la priode de validit
i
j
vp de
j
Cert . Le troisime champ contient un indicateur
i
j
R qui, lorsquil est fix 1, indique
que le nud
i
ID
considre le certificat
j
Cert du nud
j
ID
comme rvoqu. Les champs
allant de 4 la fin
contiennent les valeurs daccusation
i
i
M j
i
j
a a
, 1 ,
,...,
, o la valeur
1
,
=
i
k j
a
indique que le nud
k
ID accuse le nud
j
ID , et
0
,
=
i
k j
a
sinon. Les
indicateurs de rvocation
i
j
R dans la liste de rvocation de certificats
i
CRL de
i
ID
sont
fixs, c'est--dire 1 =
i
j
R si une des quatre conditions suivantes est vraie :
Condition 1 :
1
,
=
i
i j
a
, cela signifie que le nud
i
ID
observe lui-mme le
comportement malicieux du nud
j
ID
durant le neighborhood
watch (Alg.1). Ce qui implique que
j
ID
et
i
ID
sont des voisins
dun saut ;
Condition 2 :
i
j
vp est expire, cela signifie que la copie courante du certificat
j
Cert
de
j
ID est expire;
Condition 3 :
1
,
=
i
j j
a
, cela signifie que
i
ID
a reu un harakiri message
authentique j
hm
de
j
ID ;
Condition 4 :
> =
=
i
M
k
i
k j
i
j
a A
1
,
pour tout k , tel que 0 =
i
k
R ; cela consiste
additionner toutes les valeurs daccusation
i
k j
a
,
du vecteur ligne
i
j
r
des nuds non rvoqus
k
ID
, et vrifier si la somme est
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
88
suprieure . En dautres termes le certificat
j
Cert
est rvoqu
si le nud
i
ID reoit plus de accusations partir dun nud
fiable
k
ID
contre un nud suspect
j
ID .
est un seuil de scurit
dtermin comme dcrit au paragraphe 6.2.3.2.
Si aucune des ces quatre conditions nest satisfaite, alors 0 =
i
j
R ; c'est--dire
j
ID et sa
cl publique courante sont considrs comme fiables.
Algorithme 3.2 : Propagation daccusations
Chaque fois quun nud
i
ID met jour sa matrice daccusation
i
AM , car ayant
observ un certain comportement suspect dans son neighborhood watch, il envoie un
message daccusation ses voisins dun saut. De manire similaire, chaque fois que
i
ID
met jour sa liste de rvocation de certificats
i
CRL , car ayant reu des accusations
partir dautres nuds, il envoie un message daccusation ses voisins. Les messages
daccusation envoys par
i
ID ont le format suivant :
) , ) , ((
, i i i j i
sign am Cert am =
pour tout
i
N
j
ID
o
i
i
AM am =
pour des mises jour partir du neighborhood watch de
i
ID , et
i
i
CRL am =
pour des mises jour de liste de rvocation causes par des messages
daccusation reus par
i
ID en provenance dautres nuds. Les messages daccusation
j i
am
,
sont scuriss en utilisant la signature
i
sign du nud
i
ID
et sont alors envoys
chaque voisin dun saut
j
ID . Aprs avoir reu
j i
am
,
, un nud voisin
j
ID vrifie le
message reu en utilisant la signature
i
sign . En cas de succs,
j
ID met jour sa liste de
rvocation de certificats
i
CRL
conformment, comme expliqu dans lalgorithme 3.3.
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
89
Algorithme 3.3 : Mise jour de listes de rvocation de certificats
La diffrence par rapport lAlgorithme 3.3 du paragraphe 6.1.2.1 se situe au niveau de
la vrification de lauthenticit des messages daccusation (Etape 2). Ici nous utilisons
la signature numrique la place de la cl pr partage pour cette vrification.
Chaque fois quun nud
i
ID reoit un harakiri message
j
hm
partir de
j
ID , il vrifie
le message comme dcrit dans lAlg.2, et en cas de succs, le nud
i
ID fixe
1
,
=
i
j j
a
et
ainsi
1 =
i
j
R
dans sa liste de rvocation
i
CRL (voir Cond. 3 dans lAlg.3.1). Si un nud
i
ID reoit un message daccusation
i j
am
,
partir dun voisin dun saut
j
ID , alors il
excute les tapes suivantes pour mettre jour sa liste de rvocation de certificats
i
CRL :
Etape 1 : Vrifier si
0 =
i
j
R
, c'est--dire si
i
ID
considre le nud
j
ID comme
fiable ; si tel est le cas continuer lexcution, sinon ignorer
i j
am
,
et
arrter ;
Etape 2 : Vrifier lauthenticit de
i j
am
,
en utilisant la signature
i
sign comme
dcrit dans lAlg.3.2 ; en cas de succs continuer lexcution, sinon
ignorer
i j
am
,
et arrter ;
Etape 3 : Extraire le vecteur colonne
j
j
c de
j
AM ou
j
CRL
de
i j
am
,
pour mettre
jour le vecteur colonne
i
j
c dans
i
CRL , c'est--dire adopter les
valeurs daccusation du neighborhood watch de
j
ID . Notons que
i
ID
utilise uniquement les valeurs daccusation adresses aux nuds de
son propre voisinage m sauts, les autres valeurs daccusation son
ignores. Si
j
j
AM am =
arrter lexcution, sinon continuer ;
Etape 4 : Ignorer toutes les colonnes
j
k
c de
j
CRL pour :
- i k = , car il sagit du propre vecteur daccusation de
i
ID ;
- j k = , car dj utilis dans ltape 3 ;
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
90
- l k = , pour tout 1 =
i
l
R avec { }
i
M l ,..., 1 car
i
ID ne fait plus
confiance aux nuds
l
ID ;
- r k = , pour tout les
i r
am
,
dj accepts ltape 2 ;
- s k = , pour tout
i
N m ID
s
, c'est--dire les nuds qui sont situs
plus de m sauts.
Sauver toutes les autres colonnes
j
k
c .
Maintenant
i
ID rpte les tapes allant de 1 4 pour tous les messages daccusation
i j
am
,
reus. Considrons que
i
ID a sauv
k
d
vecteurs colonnes
j
k
c partir de
k
d
nuds
j
ID diffrents pour le mme
k
ID ltape 4. Pour tout
>
k
d
,
i
ID excute
ltape 5.
est un seuil de scurit dtermin comme dcrit au paragraphe 6.2.3.2.
Etape 5 : Utiliser tous les
k
d
vecteurs colonnes
j
k
c sauvs ltape 4 pour
mettre jour le vecteur colonne
i
k
c de
i
CRL . La mise jour est faite
en utilisant le vote majoritaire pour chaque lment du vecteur
colonne. La majorit pour chaque valeur daccusation
j
k l
a
,
avec
{ }
i
M l ,..., 1
est calcule comme suit :
{ } { }
{ } { }
<
>
=
=
=
. autrement ,
; ,..., 1 et ,..., 1 avec , 2 / , 0
; ,..., 1 et ,..., 1 avec , 2 / , 1
,
1
,
1
,
,
i
k l
k i
k
d
j
k
j
k l
k i
k
d
j
k
j
k l
i
k l
a
d j M l d a si
d j M l d a si
a
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
91
Pour la simplicit nous avons suppos que
i
ID a sauv
k
d
vecteurs
colonnes
i
k
c partir de
k
d
voisins
j
ID avec { }
k
d j ,..., 1 ltape 4,
avec
k
d
.
Seules les valeurs
j
k l
a
,
pour les nuds
l
ID du voisinage m sauts
de
i
ID sont considres, les autres sont ignores. Si aucune majorit
ne peut tre trouve, la valeur daccusation reste inchange. Le nud
i
ID rpte ceci pour tous les vecteurs colonnes
i
k
c pour lesquels le
nombre de vecteurs collects
j
k
c est > .
6.2.3 Analyse du mcanisme de rvocation de certificats
Lanalyse consiste montrer comment notre contribution supprime ou diminue les
failles de scurit inhrentes UBIQ. Pour cela nous essayons tout dabord didentifier
les attaques qui exploitent ces failles.
6.2.3.1 Identification des attaques qui exploitent les failles de scurit inhrentes
UBIQ
Ltude des protocoles de gestion des cls a montr que UBIQ prsente certaines failles
de scurit. Ici nous identifions les attaques qui exploitent ces failles et montrons
comment notre proposition supprime ou diminue limpact de ces failles.
Le protocole UBIQ dpend dune autorit off-line pour lauthentification des
nuds. Pour paralyser le fonctionnement du protocole un adversaire peut
employer des attaques de type DoS visant empcher ou limiter l'accs
lautorit off-line ;
UBIQ se base sur une hypothse contraignante (pour chaque nud le nombre
de voisins dun saut est suprieur ou gal au seuil k) et manque de moyen
pour ajuster le seuil k en cas de variation de densit dans le rseau. Une
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
92
attaque DoS visant modifier celle-ci empchera la satisfaction de cette
hypothse ;
Le protocole dpend fortement de la coopration des nuds pour lobtention
dune signature complte dun certificat ainsi que la mise jour de parts
secrtes. Il est alors possible pour un adversaire dutiliser cette collaboration
pour mettre en uvre les attaques suivantes : Dos, coute clandestine,
usurpation, modification, et attaque physique dun lment valide afin de
mettre en pril la scurit du systme ;
Le protocole implique des charges de calcul et de communication
contraignantes pour les priphriques dun MANET do la vulnrabilit
une attaque Dos.
6.2.3.2 Analyse du mcanisme de rvocation de certificats propos
La faille de scurit selon laquelle UBIQ dpend de la coopration des nuds pour la
gestion de la scurit des cls implique des vulnrabilits qui peuvent tre adresses par
la rvocation.
En effet ces vulnrabilits peuvent conduire la compromission de la confidentialit et
de lauthenticit des cls.
Le neighborhood watch de notre mcanisme peut dtecter la compromission et
lgosme des nuds qui sont trs frquents dans lenvironnement des MANETs.
Dans notre proposition les certificats des nuds malicieux sont dabord rvoqus
localement par les voisins dun saut et ventuellement par tous les nuds du voisinage
m sauts. Ainsi les utilisateurs malveillants qui contrlent les nuds compromis sont
exclus du rseau car ils ne peuvent plus solliciter de nouveaux certificats puisque cela
ncessite lauthentification auprs de lautorit off-line.
Dautre part, les nuds gostes sont encourags participer en expdiant les messages
daccusation des autres nuds car autrement ils sont forcs renouveler frquemment
leur cl, ce qui est plus coteux.
Les nuds malicieux ne peuvent pas manipuler simplement des accusations portes
contre eux-mmes parce quils seraient dtects par le neighborhood watch et une
tentative serait empche en utilisant des votes majoritaires de lAlgorithme 3.3 pour les
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
93
accusations. Un adversaire mobile
i
ID peut se dplacer chaque fois que le nombre
daccusations portes contre lui approche . Un adversaire mobile peut aussi se
dplacer vers un nouveau voisinage situ plus de m sauts, de sorte que personne nait
une valeur daccusation pour lui. Cependant dans les deux cas ses voisins actuels dun
saut dtectent rapidement son comportement malveillant et rvoquent localement son
certificat. Avec les accusations se propageant vers tous les voisins m sauts,
ladversaire devra se dplacer plus rapidement que la propagation. Ainsi le pouvoir des
adversaires mobiles de lancer une attaque est assez limit puisquils doivent se dplacer
frquemment et assez rapidement, et ne peuvent pas demeurer sur le mme
emplacement pour une longue priode.
Les paramtres de scurit
et
\
|
=
0 0 0 0 0 0 2009 5000
0 0 0 0 0 0 2011 4000
0 0 0 0 0 0 2009 3000
2 0 0 0 0 0 2010 2000
0 0 0 0 0 0 2009 1000
1
CRL
|
|
|
|
|
\
|
=
0 0 0 0 0 2011 4000
0 0 0 0 0 2009 3000
0 0 0 0 0 2010 2000
0 0 0 0 0 2009 1000
2
CRL
|
|
|
|
|
|
|
|
\
|
=
0 0 0 0 2 2 0 2012 6000
0 0 0 0 2 0 0 2009 5000
0 0 0 0 0 0 0 2011 4000
0 0 0 0 0 0 0 2009 3000
2 2 0 0 0 0 0 2010 2000
2 0 0 0 0 0 0 2009 1000
3
CRL
|
|
|
|
|
|
|
|
\
|
=
0 0 0 0 2 2 0 2012 6000
0 0 0 0 2 0 0 2009 5000
0 0 0 0 0 0 0 2011 4000
0 0 0 0 0 0 0 2009 3000
2 2 0 0 0 0 0 2010 2000
2 0 0 0 0 0 0 2009 1000
4
CRL
|
|
|
|
|
|
\
|
=
0 0 0 0 2 0 2012 6000
0 0 0 0 0 0 2009 5000
0 0 0 0 0 0 2011 4000
0 0 0 0 0 0 2010 3000
2 0 0 0 0 0 2009 1000
5
CRL
|
|
|
|
|
\
|
=
0 0 0 0 0 2012 6000
0 0 0 0 0 2009 5000
0 0 0 0 0 2011 4000
0 0 0 0 0 2009 3000
6
CRL
Les dimensions des matrices
i
CRL
sont dtermines par le nombre de nuds dans le
voisinage m sauts de chaque nud
i
ID .
Les valeurs de la premire et de la deuxime colonne des listes de rvocation de
certificats
i
CRL reprsentent respectivement les numros de srie des certificats des
nuds du rseau et les priodes de validit de ces certificats exprimes par la dernire
anne de validit. Elles sont choisies de manire arbitraire.
A linstant initial
0
t , toutes les valeurs daccusation sont fixs 0 exceptes les valeurs
daccusation
i
k j
a
,
pour lesquelles les nuds
j
ID et
k
ID sont plus de m sauts lun par
rapport lautre. Celles-ci sont arbitrairement fixes 2. Cependant il est possible de
choisir au autre entier suprieur 2.
On considre que les messages daccusation se propagent de manire priodique avec
une priode
.
Nous proposons une srie de tests ou expriences, dont le but est de montrer le
processus permettant de maintenir les listes de rvocation de certificats jour, suite la
propagation de messages daccusation dans le rseau (expriences 1, 2 et 3).
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
100
7.1.1 Exprience 1 : Accusation du nud
5
ID
A linstant t =
0
t +
:
Le nud
5
ID envoie un message daccusation
5
am ses voisins dun saut
4
ID et
6
ID .
Dans ce message il accuse le nud
3
ID et fixe la valeur daccusation
5
5 , 3
a 1 dans sa
liste de rvocation de certificats et rvoque le certificat de ce nud , ce qui fixe la valeur
5
3
R 1.
Comme donnes dentre nous avons la liste de rvocation du nud
5
ID ainsi que celles
des nuds
4
ID et
6
ID avant mise jour.
|
|
|
|
|
|
\
|
=
0 0 0 0 2 0 2012 6000
0 0 0 0 0 0 2009 5000
0 0 0 0 0 0 2011 4000
0 1 0 0 0 1 2010 3000
2 0 0 0 0 0 2009 1000
5
CRL
|
|
|
|
|
|
|
|
\
|
=
0 0 0 0 2 2 0 2012 6000
0 0 0 0 2 0 0 2009 5000
0 0 0 0 0 0 0 2011 4000
0 0 0 0 0 0 0 2009 3000
2 2 0 0 0 0 0 2010 2000
2 0 0 0 0 0 0 2009 1000
4
CRL
|
|
|
|
|
\
|
=
0 0 0 0 0 2012 6000
0 0 0 0 0 2009 5000
0 0 0 0 0 2011 4000
0 0 0 0 0 2009 3000
6
CRL
La fonction messageCRLmisajour ( ) est appele dans le programme pour signifier la
rception dun message daccusation contenant la liste de rvocation du nud
5
ID par le
nud
4
ID .
Lappel des fonctions etape1a4 ( ) et etape1a4fin ( ) doit permettre lexcution des
tapes de lAlgorithme 3.3 ncessaires pour la mise jour de la liste de rvocation du
nud destinataire
4
ID .
- Ltape 1 de la fonction etape1a4 ( ) doit sauver le message daccusation
5
am car dans
4
CRL 0
4
5
= R ;
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
101
- Ltape 3 est excute par lappel de la fonction etape1a4fin ( ), celle-ci
doit utiliser le vecteur colonne
5
5
c de
5
CRL pour mettre jour le vecteur
colonne
4
5
c de
4
CRL .
Le rsultat attendu est la matrice suivante :
|
|
|
|
|
|
|
|
\
|
=
0 0 0 0 2 2 0 2012 6000
0 0 0 0 2 0 0 2009 5000
0 0 0 0 0 0 0 2011 4000
0 1 0 0 0 0 0 2009 3000
2 2 0 0 0 0 0 2010 2000
2 0 0 0 0 0 0 2009 1000
4
CRL
Le mme processus doit tre excut pour donner :
|
|
|
|
|
\
|
=
0 0 0 0 0 2012 6000
0 0 0 0 0 2009 5000
0 0 0 0 0 2011 4000
0 1 0 0 0 2009 3000
6
CRL
Aprs excution des fonctions nous obtenons les rsultats suivants :
Figure 7. 2 : Liste de rvocation envoye par
5
ID et reue par
4
ID et
6
ID .
Figure 7. 3 : Liste de rvocation du nud
4
ID aprs mise jour.
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
102
Figure 7. 4 : Liste de rvocation du nud
6
ID aprs mise jour.
Nous constatons que les listes de rvocation des nuds
4
ID et
6
ID ont t mises jour.
Les valeurs daccusation
4
5 , 3
a et
6
5 , 3
a sont fixes 1 respectivement dans
4
CRL et
6
CRL .
Ainsi les rsultats correspondent ceux qui taient attendus.
7.1.2 Exprience 2 : Propagation dun message daccusation
A linstant t =
0
t + 2 :
Le nud
4
ID envoie un message daccusation au nud voisin
1
ID . Ce message
concerne une mise jour de liste de rvocation de certificats et constitue la suite de la
mise jour prcdemment dcrite.
Puisque la source de cette mise jour provient dun nud qui nappartient pas au
voisinage dun saut du nud
1
ID , la mise jour du vecteur colonne
1
5
c se fera par vote
majoritaire. Pour cela la majorit pour chaque valeur daccusation doit tre calcule
comme dcrit ltape 5 de lAlgorithme 3.3. Cependant le nombre de vecteurs
colonnes sauvs pour le mme nud
5
ID est infrieur au minimum requis c'est--dire
2 1
5
= < = d . Par consquent la mise jour de la liste de rvocation du nud
1
ID ne
sera pas effectue.
7.1.3 Exprience 3 : Accusations des nuds
2
ID ,
3
ID
et
4
ID
A linstant t =
0
t + , tant un entier tel que 2 > :
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
103
Le nud
1
ID met jour sa liste de rvocation
1
CRL aprs avoir reu les messages
daccusation
4 3 2
, , am am am de ses voisins dun saut.
Nous donnons en entre la liste de rvocation du nud
1
ID avant la mise jour, ainsi
que celles des nuds
4
ID et
3
ID mises jour.
|
|
|
|
|
|
\
|
=
0 0 0 0 0 0 2009 5000
0 0 0 0 0 0 2011 4000
1 0 0 0 0 0 2009 3000
2 0 0 0 1 1 2010 2000
0 0 0 0 0 0 2009 1000
1
CRL
|
|
|
|
|
|
|
|
\
|
=
0 0 1 1 2 2 1 2012 6000
1 0 1 1 2 0 1 2009 5000
1 1 0 0 0 0 0 2011 4000
2 0 0 0 1 0 0 2009 3000
2 2 1 1 0 1 1 2010 2000
2 1 0 0 1 0 0 2009 1000
3
CRL
|
|
|
|
|
|
|
|
\
|
=
0 1 1 1 2 2 1 2012 6000
1 0 1 1 2 0 1 2009 5000
1 0 0 0 0 0 0 2011 4000
2 1 0 0 1 0 0 2009 3000
2 2 1 1 0 1 1 2010 2000
2 0 0 0 1 0 0 2009 1000
4
CRL
Dans le programme principal nous trouvons :
- lappel de la fonction messageCRLmisajour ( ) selon lAlgorithme 3.2 ;
- lappel des fonctions etape1a4 ( ), etape1a4fin ( ), MatricePourVote ( ) et
etape5 ( ) selon lAlgorithme 3.3.
La fonction messageCRLmisajour ( ) a t appele deux fois dans le programme
principal pour signifier la rception de deux messages daccusation par le nud
1
ID .
Ces messages proviennent des nuds
3
ID et
4
ID et concernent des mises jour de liste
de rvocation de certificats.
Les fonctions etape1a4 ( ), etape1a4fin ( ) et etape5 ( ) vont se charger de lexcution
des diffrentes tapes de lalgorithme 3.3 pour la mise jour de la liste de rvocation de
certificats du nud
1
ID .
Aprs excution des fonctions nous attendons les rsultats suivants :
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
104
- Ltape 1 de la fonction etape1a4 ( ) doit sauver les messages daccusation
3
am et
4
am car dans
1
CRL 0
1
3
= R et 0
1
4
= R ;
- Ltape 3 est excute par lappel de la fonction etape1a4fin ( ), celle-ci
doit utiliser les vecteurs colonnes
3
3
c de
3
CRL et
4
4
c de
4
CRL pour mettre
jour les vecteurs colonnes
1
3
c et
1
4
c respectivement de
1
CRL ;
- Ltape 4 de la fonction etape1a4 ( ) doit permettre dcarter partir de
3
CRL les vecteurs colonnes suivants :
3
1
c car 1 = = i k ;
3
2
c car 1
1
2
= R ;
3
3
c car 3 = = j k ;
3
4
c car
4
am a t accept dans ltape 2 ;
Ainsi seul le vecteur colonne
3
5
c de
3
CRL doit tre sauv. Pour des arguments
similaires seul
4
5
c doit tre sauv de
4
CRL .
Puisque le nombre de colonnes sauves pour le mme nud
5
ID est gal au
minimum requis c'est--dire 2 2
5
= = d nous continuons avec le vote
majoritaire. Pour cela nous faisons appel aux fonctions intermediaireEtape5 ( ) et
MatricePourVote ( ).
- La fonction etape5 ( ) doit utiliser les deux vecteurs colonnes
3
5
c et
4
5
c
sauvs pour
5
ID et mettre jour le vecteur colonne correspondant
1
5
c ce
qui complte la mise jour de
1
CRL .
|
|
|
|
|
|
|
|
\
|
=
0
0
1
0
2
1
3
5
c
,
|
|
|
|
|
|
|
|
\
|
=
1
0
0
1
2
0
4
5
c
,
|
|
|
|
|
|
\
|
=
0
0
1
2
0
1
5
c
La fonction doit alors donner le rsultat suivant :
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
105
|
|
|
|
|
|
\
|
=
0 1 1 0 0 0 2009 5000
0 0 0 0 0 0 2011 4000
1 0 0 0 0 0 2009 3000
2 1 1 0 1 1 2010 2000
0 0 0 0 0 0 2009 1000
1
CRL
Aprs excution des fonctions prcdemment cites nous avons les rsultats suivants :
Figure 7. 5 : Listes de rvocation reues par le nud
1
ID
La Figure 7.5 montre les listes de rvocation mises jour envoyes respectivement par
les nuds
3
ID et
4
ID au nud
1
ID .
Les valeurs daccusation fixes 1 sont issues des mises jour successives subies par
les listes de rvocation de certificats des nuds
3
ID et
4
ID .
Aprs rception des deux listes de rvocation mises jour, le nud
1
ID excute les
tapes prcdemment dcrites.
La Figure 7.6 montre respectivement les listes de rvocation venant des nuds
3
ID et
4
ID aprs rception et traitement par
1
ID .
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
106
Figure 7. 6 : Traitement des listes de rvocation reues par le nud
1
ID
1
ID fait le traitement de la liste de rvocation reue du nud
3
ID en cartant les
vecteurs colonnes suivants :
3
1
c car 1 = = i k ;
3
2
c car 1
1
2
= R ;
3
3
c car 3 = = j k ;
3
4
c car
4
am a t accept dans ltape 2 ;
1
ID fait aussi le traitement de la liste de rvocation reue du nud
4
ID et carte les
vecteurs colonnes suivants :
4
1
c car 1 = = i k ;
4
2
c car 1
1
2
= R ;
4
3
c car
3
am a t accept dans ltape 2 ;
4
4
c car 4 = = j k ;
Une colonne carte est remplace par :
|
|
|
|
|
|
|
|
\
|
5
5
5
5
5
5
. La valeur 5 remplaant les valeurs
daccusation est choisie de manire arbitraire. Cependant nous pouvions aussi choisir un
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
107
autre entier nappartenant pas lensemble { } 2 1, , 0 . Ceci dans le but de faire la
diffrence entre les vecteurs colonnes carts et ceux qui ne le sont pas.
La Figure 7.7 montre ltat des matrices accusatrices aprs rception et traitement des
mises jour de listes de rvocation.
Figure 7. 7 : Etat des matrices accusatrices
Les matrices du vote majoritaire ou matrices accusatrices restent inchanges si
aucune colonne na t sauve pour le nud correspondant.
Ici les matrices accusatrices des nuds
2
ID ,
3
ID et
4
ID restent ltat initial car
aucune colonne nest sauve pour ces nuds.
Seule la matrice accusatrice du nud
5
ID a t modifie car pour ce dernier il existe
des colonnes sauves. Cette matrice a permis deffectuer les oprations de ltape 5
de lalgorithme 3.3.
La Figure 7.8 donne le rsultat obtenu aprs mise jour de la liste de rvocation du
nud
1
ID .
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
108
Figure 7. 8 : Liste de rvocation du nud
1
ID aprs mise jour.
Le rsultat montre que des mises jour ont t effectues, car les valeurs
daccusation
1
3 , 2
a et
1
3 , 5
a du vecteur colonne
1
3
c sont maintenant fixes 1, de mme
que les valeurs
1
4 , 2
a et
1
4 , 5
a du vecteur colonne
1
4
c . Le vecteur colonne
1
5
c est rest
inchang car sa mise jour demande un vote majoritaire. Cependant aucune
majorit na pu tre trouve pour les diffrentes valeurs daccusation de
1
5
c .
Le rsultat obtenu correspond ainsi ce qui tait attendu c'est--dire:
|
|
|
|
|
|
\
|
=
0 1 1 0 0 0 2009 5000
0 0 0 0 0 0 2011 4000
1 0 0 0 0 0 2009 3000
2 1 1 0 1 1 2010 2000
0 0 0 0 0 0 2009 1000
1
CRL
7.2 Evolution de la scurit du mcanisme propos en fonction
du nombre de sauts
Le nombre de sauts m fix pour les listes de rvocation de certificats ou porte de
propagation des messages daccusation est un paramtre qui affecte la performance du
rseau. Plus le nombre m est petit, moins un message besoin dtre retransmis vers le
prochain saut. Ainsi les petites valeurs de m diminuent la charge du rseau en terme de
bande passante et despace mmoire. Cependant en prsence dadversaires mobiles dans
le rseau, les petites valeurs de m peuvent causer des problmes de scurit. Un exemple
est illustr dans le cas o un nud
i
ID veut communiquer avec un autre nud
j
ID alors
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
109
quil na aucune information de rvocation propos de ce dernier parce que celui-ci est
en dehors de son voisinage m sauts. Le nud
i
ID doit alors solliciter des informations
de rvocation auprs dun autre nud
k
ID
situ la fois dans son voisinage m sauts et
dans celui de
j
ID .
Nous jugeons que la scurit du systme peut tre renforce en ajustant le nombre m de
sorte que chaque nud ait le maximum dinformation de rvocation propos des autres
nuds sur sa liste de rvocation de certificats.
Nous disons quun nud
j
ID est contrl par le nud
i
ID si la liste de rvocation du
nud
i
ID contient des informations de rvocation propos du nud
j
ID .
Pour tudier lvolution de la scurit du mcanisme de rvocation en fonction du
nombre de sauts m fix pour les listes de rvocation de certificats, nous introduisons un
nouveau paramtre
i c
T
,
appel taux de contrle du nud
i
ID . Ce paramtre correspond
la proportion de nuds contrls par le nud
i
ID value par rapport au nombre total
de nuds dans le rseau. Il est utilis pour exprimer le nombre total de nuds pour
lesquels
i
ID stocke des information de rvocation et permet de comparer ce nombre au
nombre total de nuds prsents dans le rseau.
Nous avons ainsi :
N m T
i i c
/
,
=
(10)
avec :
i
m = nombre de nuds du voisinage m sauts du nud
i
ID ,
N = nombre total de nuds dans le rseau.
i c
T
,
permet aussi de calculer le taux de contrle moyen
cm
T
pour chaque nud dans le
rseau.
cm
T
est alors obtenu en divisant la somme des
i c
T
,
, { } N i ,..., 1 par le nombre
total de nuds dans le rseau.
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
110
=
=
=
=
+ + + =
N
i
i cm
N
i
i c cm
N c c c cm
N N m T
N T T
N T T T T
1
1
,
, 2 , 1 ,
/ ] / [
/ ] [
/ ] ... [
do
2
1
/ ) ( N m T
N
i
i cm
=
=
(11)
Le but de lexprience 4 est dtudier lvolution de la scurit du systme en fonction
du nombre m.
7.2.1 Exprience 4 : Evolution du taux de contrle moyen en fonction
du nombre de sauts
Nous reprenons le scnario prcdemment dcrit et montrons comment le taux de
contrle moyen pour chaque nud volue en fonction du nombre de sauts m fix pour
les listes de rvocation de certificats.
La Figure 7.9 montre un exemple de rseau simple constitu de six nuds.
Figure 7. 9: Exemple de rseau
Soit
m i
v
,
le voisinage m sauts du nud
i
ID
incluant
i
ID
lui-mme.
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
111
Pour m = 1
Nous avons :
{ }
4 3 2 1
, , ,
1 , 1
ID ID ID ID v = 4
1
= m
{ }
2 1
,
1 , 2
ID ID v = 2
2
= m
{ }
4 3 1
, ,
1 , 3
ID ID ID v = 3
3
= m
{ } 3
4 1 , 4
5
, ,
4 1
= = m v ID ID ID
{ } 4
5 1 , 5
6
,
5
, ,
4 3
= = m v ID ID ID ID
{ } 2
6 1 , 6
6
,
5
= = m v ID ID
% 50 2 / 1 36 / 18 36 / ) 2 4 3 3 2 4 ( / ) (
2
6 5 4 3 2 1
= = = + + + + + = + + + + + = N m m m m m m T
cm
Pour m = 2
Nous avons :
{ }
5
, , , ,
4 3 2 1
2 , 1
ID ID ID ID ID v = 5
1
= m
{ }
4
,
3
, ,
2 1
2 , 2
ID ID ID ID v = 4
2
= m
{ }
6
,
5
, , ,
2
,
4 3 1
2 , 3
ID ID ID ID ID ID v = 6
3
= m
{ } 6
4 2 , 4
6
,
5
, ,
3
,
2
,
4 1
= = m v ID ID ID ID ID ID
{ } 5
5 2 , 5
6
,
5
, , ,
1 4 3
= = m v ID ID ID ID ID
{ } 4
6 2 , 6
6
,
5
,
4
,
3
= = m v ID ID ID ID
% 33 . 83 6 / 5 36 / 30 36 / ) 4 5 6 6 4 5 ( / ) (
2
6 5 4 3 2 1
= = = + + + + + = + + + + + = N m m m m m m T
cm
Pour m = 3
Nous avons :
{ } 6
1 3 , 1
6
,
5
, ,
3
,
2
,
4 1
= = m v ID ID ID ID ID ID
{ } 5
2 3 , 2
5
, ,
3
,
2
,
4 1
= = m v ID ID ID ID ID
{ } 6
3 3 , 3
6
,
5
, ,
3
,
2
,
4 1
= = m v ID ID ID ID ID ID
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
112
{ } 6
4 3 , 4
6
,
5
, ,
3
,
2
,
4 1
= = m v ID ID ID ID ID ID
{ } 6
5 3 , 5
6
,
5
, ,
3
,
2
,
4 1
= = m v ID ID ID ID ID ID
{ } 5
6 3 , 6
6
,
5
, ,
3
,
4 1
= = m v ID ID ID ID ID
% 44 . 94 36 / 34 36 / ) 5 6 6 6 5 6 ( / ) (
2
6 5 4 3 2 1
= = + + + + + = + + + + + = N m m m m m m T
cm
Pour m = 4
Nous avons :
{ } 6
1 4 , 1
6
,
5
, ,
3
,
2
,
4 1
= = m v ID ID ID ID ID ID
{ } 6
2 4 , 2
5
, ,
3
,
2
,
4 1
= = m v ID ID ID ID ID
{ } 6
3 4 , 3
6
,
5
, ,
3
,
2
,
4 1
= = m v ID ID ID ID ID ID
{ } 6
4 4 , 4
6
,
5
, ,
3
,
2
,
4 1
= = m v ID ID ID ID ID ID
{ } 6
5 4 , 5
6
,
5
, ,
3
,
2
,
4 1
= = m v ID ID ID ID ID ID
{ } 6
6 4 , 6
6
,
5
, ,
3
,
4 1
= = m v ID ID ID ID ID
% 100 36 / 36 36 / ) 6 6 6 6 6 6 ( / ) (
2
6 5 4 3 2 1
= = + + + + + = + + + + + = N m m m m m m T
cm
Pour m > 4
Nous avons :
i
m = 6 pour tout { } 6 5, 4, 3, 2, , 1 i . Ainsi
% 100 36 / 36 36 / ) 6 6 6 6 6 6 ( / ) (
2
6 5 4 3 2 1
= = + + + + + = + + + + + = N m m m m m m T
cm
La Figure 7.10 donne lvolution du taux de contrle moyen en fonction du nombre de
sauts m fix pour les listes de rvocation de certificats.
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
113
Figure 7. 10 : Evolution du taux de contrle moyen en fonction du nombre de sauts.
Nous constatons que lorsque 4 < m , il existe encore pour les adversaires mobiles des
chances de rester non dtects car % 100 <
cm
T . Pour 4 m nous avons % 100 =
cm
T .
Ainsi partir de m = 4 les adversaires mobiles nont plus aucune chance de rester non
dtects dans le rseau puisque en moyenne chaque nud a le contrle de lensemble
des nuds du rseau.
Nous pouvons dduire de ces rsultats que le nombre m peut tre ajust pour renforcer
la scurit de notre mcanisme. Par consquent m peut tre considr comme un
paramtre de scurit.
Conclusion
Dans cette dernire partie nous avons propos un mcanisme de rvocation de certificats
en adaptant une solution dj propose pour les systmes bass sur lidentit lun des
protocoles bas sur PKI notamment UBIQ.
Le mcanisme est extensible grce ses paramtres de performance et de scurit m,
et . Plus la valeur de m est grande plus les chances des adversaires mobiles de rester
non dtects sont rduites, tandis que les petites valeurs accroissent la performance en
terme de bande passante et despace mmoire. Les paramtres de scurit et
0%
50%
100%
150%
1 2 3 4
Nombre de sauts dfini pour les listes de rvocation de
certificats
Taux de contrle moyen
TROISIEME PARTIE : Proposition dun mcanisme de rvocation de certificats pour UBIQ
114
protgent le systme contre les fausses accusations et empchent les attaques par
coalition de noeuds.
Notre mcanisme de rvocation de certificats est compltement auto organis et ainsi est
indpendant dune CA externe off-line ou distribue on-line. En outre il fournit un
moyen sr pour les nuds de rvoquer leur propre cl, et prsente des cots de
communication plus rduits en raison de la propagation des messages vers le voisinage
m sauts au lieu du rseau entier.
Nous avons fourni limplmentation de notre mcanisme de rvocation en C et propos
une srie de tests.
Les rsultats des tests montrent que les nuds du rseau peuvent maintenir leurs listes
de rvocation de certificats jour suite la propagation de messages daccusation. Ainsi
chaque nud du rseau mettra en uvre le mcanisme de rvocation en excutant
localement le programme.
Nous avons aussi expriment lvolution de la scurit du mcanisme en jouant sur le
nombre de sauts m fix pour les listes de rvocation de certificats. Les rsultats
indiquent que le nombre m peut tre considr comme un paramtre de scurit qui
protge le systme lorsque celui-ci est ajust contre les adversaires mobiles.
Ainsi nous pouvons conclure que nos expriences ont montr des rsultats positifs pour
le mcanisme de rvocation de certificats propos.
CONCLUSION GENERALE
115
Conclusion Gnrale
Dans ce manuscrit nous avons abord un des problmes majeurs lis la fourniture de
service de scurit dans les rseaux mobiles ad hoc : celui de la gestion des cls
cryptographiques.
Nous avons men une tude des protocoles de gestion des cls proposs pour les
MANETs en donnant une vue densemble sur le fonctionnement de chaque protocole
puis en proposant une analyse de ces derniers. A ce niveau nous avons vu que malgr le
nombre de protocoles proposs les problmes non rsolus sont multiples. Et parmi ces
derniers nous pouvons citer labsence dun mcanisme efficace de rvocation pour les
protocoles distributifs cl publique. Les principaux rsultats de notre travail sont les
suivants :
1. Nous avons men une analyse des principaux protocoles de gestion des cls pour
en faire ressortir les insuffisances surtout en terme de scurit Ceci nous a
permis de dgager des problmes de scurit non rsolus ce jour pour ces
diffrents protocoles, ouvrant ainsi des voies pour des tudes et ralisations
futures.
2. Dans le but dapporter une solution un des problmes soulevs, nous avons
propos un mcanisme de rvocation de certificats pour un des protocoles
CONCLUSION GENERALE
116
distributifs cl publique notamment UBIQ. La solution, qui est une adaptation
dun mcanisme existant, se base sur lutilisation des listes de rvocation de
certificats et des signatures numriques la place, respectivement, des listes de
rvocation de cls et des cls pr partages, afin de scuriser les messages
daccusation. Notre mcanisme prsente les avantages suivants:
Les nuds peuvent efficacement et de manire scurise rvoquer leurs
propres cls en cas de compromission ;
Le mcanisme de rvocation de certificats est compltement auto
organis et ainsi est indpendant dune CA externe off-line ou distribue
on-line ;
Le mcanisme de rvocation de certificats a des cots de communication
plus rduits car les messages sont propags vers le voisinage m sauts
au lieu du rseau entier.
3. Nous avons conu et ralis un programme de simulation de la solution
propose qui nous a permis de tester la validit de la solution par une srie
dexpriences. Les rsultats des tests ont confirm les fonctionnalits de la
solution propose. Ce programme a un intrt pratique car il pourrait tre intgr
dans un futur logiciel de simulation pour la scurit rseau, ce type doutil
faisant souvent dfaut dans le domaine.
Notons toutefois, que de nombreux problmes restent encore non rsolus dans le
domaine de la gestion des cls dans les MANETs. Labsence dauthentification pour les
protocoles contributifs, les vulnrabilits lies la dpendance vis--vis dun
gestionnaire de groupe pour les protocoles distributifs cl symtrique en constituent
des exemples.
Nous nous proposons comme perspectives de recherche dvaluer la scurit et la
performance du mcanisme propos. Le comportement des algorithmes peut tre tudi
davantage lors des simulations, par exemple en faisant varier les paramtres de scurit
et mais aussi le paramtre de performance m afin dtudier le compromis entre la
CONCLUSION GENERALE
117
scurit et la performance. Le dlai de propagation des messages daccusation dans le
voisinage m sauts doit aussi tre tudi en incluant le temps total allant de
lobservation dun comportement malicieux la rvocation effective dun certificat.
REFERENCES
118
Rfrences :
[1] Bouassida M. S., Scurit des communications de groupe dans les rseaux ad hoc, Ph.
D. Thesis, Universit Henri Poincar - Nancy I, 2006.
URL: http://tel.archives-ouvertes.fr/docs/00/13/47/32/PDF/manuscrit.pdf
[2] Fokine K., Key Management in Ad Hoc Networks, Linkoping Univ. (Sweden) Master's
Thesis, 2002. URL: http://www.diva-portal.org/diva/getDocument?urn_nbn_se_liu_diva-
1351-1fulltext.pdf
[3] Hoeper K., Authentication and Key Exchange in Mobile Ad Hoc Networks, Waterloo,
Canada, Thesis, 2007. URL:
http://uwspace.uwaterloo.ca/bitstream/10012/3228/1/hoeper_thesis.pdf
[4] Anjum, F., Mouchtaris, P., Security for wireless ad hoc networks, Wiley, 2007, 247 p.
[5] Gayraud V., Nuaymi L., Dupont F., Gombault S., Tharon B., La scurit dans les
rseaux sans fil ad hoc, 2003. URL:
http://actes.sstic.org/SSTIC03/Securite_des_reseaux_sans_fil_ad_hoc/SSTIC03-article-
Gayraud-Securite_des_reseaux_sans_fil_ad_hoc.pdf
[6] Menezes A. J., van Oorschot P. C., Vanstone S. A., Handbook of Applied
Cryptography, CRC Press, 1996, 816 p.
[7] Bhaskar R, Protocoles cryptographiques pour les rseaux ad hoc, Ph. D. Thesis, Ecole
Polytechnique, June 2006. URL:
http://citeseerx.ist.psu.edu/showciting;jsessionid=7DB992849060197B158D8C3D0FCD3
605?cid=875745
[8] Hegland A. M., Winjum E., Mjlsnes S. F., Rong C. , Kure . and Spilling P., A Survey
of Key Management in Ad hoc Networks, IEEE Communications Surveys & Tutorials,
Vol. 8, no. 3, 3rd quarter, 2006. URL:
http://www.comsoc.org/livepubs/surveys/public/2006/jul/pdf/hegland.pdf
[9] Shamir A., Identity-Based Cryptosystems and Signature Schemes, 1984. URL:
http://www.iseca.org/downloads/Shamir47.pdf
[10] Diffie W., and Hellman M. E., New Directions in Cryptography, IEEE Trans. Info.
Theory, vol. IT-22, no. 6, Nov. 1976, pp. 64454. URL: http://www-
ee.stanford.edu/%7Ehellman/publications/24.pdf
[11] Ingemarsson I., Tang D., and Wong C., A Conference Key Distribution System, IEEE
Trans. Info. Theory, vol. 28, no. 5, Sept. 1982, pp. 714720.
URL: http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1056542
[12] Becker K. and Wille U., Communication Complexity of Group Key Distribution,
Proc. 5th ACM Conf. Comp. and Commun. Security, 1998, pp. 16. URL:
http://www.dcc.fc.up.pt/~acm/cc/
REFERENCES
119
[13] Asokan N. and Ginzboorg P., Key Agreement in Ad Hoc Networks, Computer
Commun., vol. 23, no. 17, Nov. 2000, pp. 162737. URL:
http://asokan.org/asokan/research/index.html
[14] Zhou L. and Haas Z. J., Securing Ad Hoc Networks, IEEE Network Mag., vol. 13, no.6,
Nov./Dec. 1999, pp. 2430. URL: http://www.cs.cornell.edu/home/ldzhou/adhoc.pdf
[15] Shamir A., How to Share a Secret, Commun. ACM, vol. 22, Nov. 1979, pp. 612613.
URL: http://www.cs.tau.ac.il/~bchor/Shamir.html
[16] Desmedt Y. G., Threshold Cryptography, European Trans. Telecommun., vol. 5, no. 4,
July 1994, pp. 449457. URL: http://ww2.cs.fsu.edu/~hoang/draft/publication.html
[17] Herzberg A. et al., Proactive Secret Sharing or: How to Cope with Perpetual
Leakage, Proc. Crypto95, 1995, pp. 33952. URL: http://www.schneier.com/biblio/all-
authors-Y.html
[18] Zhu B. et al., Efficient and Robust Key Management for Large Mobile Ad Hoc
Networks, Computer Networks, vol. 48, no. 4, July 2005, pp.65782. URL:
http://www3.ntu.edu.sg/DRM/papers/Efficient%20and%20robust%20key%20managemen
t%20for%20large%20mobile%20ad%20hoc%20networks.pdf
[19] Pedersen T., Non-Interactive and Information-Theoretic Secure Verifiable Secret
Sharing, Proc. CRYPTO91, 1991, pp. 129140. URL:
http://www.cs.cornell.edu/courses/cs754/2001fa/129.PDF
[20] Yi S. and Kravets R., Key Management for Heterogeneous Ad Hoc Wireless
Networks, University of Illinois at Urbana-Champaign, 2002. URL: http://www-
sal.cs.uiuc.edu/~rhk/pubs/tr-2290-1734.pdf
[21] Yi S., and Kravets R., MOCA: MObile Certificate Authority for Wireless Ad Hoc
Networks, Report No. UIUCDCS-R-2004-2502, UILU-ENG-2004-1805, University of
Illinois at Urbana-Champaign, 2003. URL:
http://mobius.cs.uiuc.edu/publications/pki03.pdf
[22] Wu B. et al., Secure and Efficient Key Management in Mobile Ad Hoc Networks,
Proc. IPDPS05, 2005.
URL: http://www.cse.fau.edu/~jie/research/publications/Publication_files/security05.pdf
[23] Kong J. et al., Providing Robust and Ubiquitous Security Support for Mobile Ad-Hoc
Networks, Proc. 9th Intl. Conf. Network Protocols (ICNP01), 2001, pp. 25160.
URL:
http://coblitz.codeen.org:3125/citeseer.ist.psu.edu/cache/papers/cs/26747/http:zSzzSzww
w.cs.ucla.eduzSz~hluozSzresearchzSz..zSzpublicationszSzsecjournal.pdf/songwu01provi
ding.pdf
[24] Joshi D., Namuduri K., and Pendse R., Secure, Redundant, and Fully Distributed Key
Management Scheme for Mobile Ad Hoc Networks: An Analysis, EURASIP J.
Wireless Commun. and Net., vol. 5, no. 4, Sept. 2005, pp. 57989.
URL: http://www.hindawi.com/GetArticle.aspx?doi=10.1155/WCN.2005.579
REFERENCES
120
[25] Capkun S., Buttyn L., and Hubaux J. P., Self-Organized Public-Key Management for
Mobile Ad Hoc Networks, IEEE Trans. Mobile Computing, vol. 2, no.1, Jan.Mar. 2003,
pp. 113.
URL: http://www.syssec.ethz.ch/research/IEEETMC03.pdf
[26] Douceur J. R., The Sybil Attack, 1st Intl. Wksp. Peer-to-Peer Systems (IPTPS02),
2002, pp. 25160. URL: http://research.microsoft.com/~johndo/IPTPS2002.pdf
[27] Gennaro R. et al., Secure Distributed Key Generation for Discrete-Log Based
Cryptosystems, Proc. EUROCRYPT99, 1999.
URL :
http://citeseer.ist.psu.edu/cache/papers/cs/8419/http:zSzzSztheory.lcs.mit.eduzSz~stasioz
SzPaperszSzvss.pdf/secure-distributed-key-generation.pdf
[28] Zimmermann P., PGP Users Guide, Cambridge, MA: MIT Press, 1994.
[29] Yi S., and Kravets R., Composite Key Management for Ad Hoc Networks, Proc.
Mobiquitous04, 2004. URL: http://mobius.cs.uiuc.edu/publications/mobiq04.pdf
[30] Capkun S., Hubaux J. P., and Buttyn L., Mobility Helps Security in Ad Hoc Networks,
Proc. MobiHoc 03, 2003. URL: http://www.sigmobile.org/mobihoc/2003/papers/p46-
capkun.pdf
[31] Capkun S., Hubaux J. P., and Buttyn L., Mobility Helps Peer-to-Peer Security, IEEE
Trans. Mobile Comp., vol. 5, no. 1, Jan. 2006, pp. 4351.
URL: http://www.syssec.ethz.ch/research/mobility_journal.pdf
[32] Fiat A., and Shamir A., How to Prove Yourself: Practical Solutions to Identification
and Signature Problems, Proc. Crypto 86, 1987, pp. 18694.
URL:
http://citeseer.ist.psu.edu/cache/papers/cs/27589/http:zSzzSzdsns.csie.nctu.edu.twzSzrese
archzSzcryptozSzHTMLzSzPDFzSzC86zSz186.PDF/fiat87how.pdf
[33] Cha J.C., and Cheon J.H., An Identity-Based Signature from Gap DiffieHellman
Groups, Cryptology eprint Archive, Report 2002/18, 2002. URL:
http://eprint.iacr.org/2002/018.ps
[34] Waters B., Efficient Identity-Based Encryption Without Random Oracles, Proc.
Eurocrypt 2005. URL: http://eprint.iacr.org/2004/180.pdf
[35] Boneh D. and Franklin M., Identity-Based Encryption from the Weil Pairing, Proc.
Crypto 2001, 2001, pp. 21329. URL: http://crypto.stanford.edu/~dabo/papers/ibe.pdf
[36] Lynn B., Authenticated Identity-Based Encryption, Cryptology ePrint Archive, iacr
(Intl. Assn for Cryptological Research), 2002. URL: http://eprint.iacr.org/2002/072.pdf
[37] Khalili A., Katz J., and Arbaugh W. A., Towards Secure Key Distribution in Truly Ad-
Hoc Networks, Proc. IEEE Wksp. Securityand Assurance in Ad hoc Networks, 2003.
URL: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.6.2960
REFERENCES
121
[38] Puzar M. et al., SKiMPy: A Simple Key Management Protocol for MANETs in
Emergency and Rescue Operations, Proc. ESAS05, 2005.
URL: http://www.eurecom.fr/util/publidownload.fr.htm?id=1749
[39] Staddon J. et al., Self-Healing Key Distribution with Revocation, Proc. IEEE Symp.
Security and Privacy, 2002.
URL:
http://citeseer.ist.psu.edu/cache/papers/cs/29682/http:zSzzSzwww.cs.ucdavis.eduzSz~fran
klinzSz.zSz.zSzpubszSzselfheal.pdf/staddon02selfhealing.pdf
[40] Wong C.K., Gouda M., and Lam S. S., Secure Group Communications Using Key
Graphs, Proc. SIGCOMM 98, 1998. URL: http://www.ece.cmu.edu/~adrian/731-
sp04/readings/WGL-keydist.pdf
[41] Wallner D., Harder E., and Agee R., Key Management for Multicast: Issues and
Architectures, IETF RFC 2627, 1999. URL: http://www.rfc-
archive.org/getrfc.php?rfc=2627
[42] Rhee K. H., Park Y. H., and Tsudik G., An Architecture for Key Management in
Hierarchical Mobile Ad-hoc Networks, J. Commun. and Networks, vol. 6, no. 2, June
2004, pp. 15662.
URL: http://www.ics.uci.edu/~gts/paps/jcn-2004.pdf
[43] Rhee K.-H., Park Y. H., and Tsudik G., A Group Key Management Architecture for
Mobile Ad-hoc Wireless Networks, J. Inform. Sci. Eng., vol. 21, no. 2, Mar. 2005, pp.
41528.
URL: http://www.iis.sinica.edu.tw/page/jise/2005/200503_09.pdf
[44] Balenson D., McGrew D., and Sherman A., Key Management for Large Dynamic
Groups: One-Way Function Trees and Amortized Initialization, IETF Internet-Draft,
August 25, 2000, draft-irtf-smug-groupkeymgmt-oft-00.txt. URL:
http://www.tools.ietf.org/html/draft-irtf-smug-groupkeymgmt-oft-00
[45] McGrew D. A., and Sherman A. T., Key Establishment in Large Dynamic Groups
Using One-Way Function Trees, IEEE Trans. Software Eng., vol. 29, no. 5, May 2003,
pp. 44458.
URL: http://www.cs.vu.nl/~crispo/teaching/atcs/EKD/OTF.pdf
[46] Canetti R. et al., Multicast Security: A Taxonomy and Efficient Constructions, Proc.
INFOCOMM99, 1999. URL :
http://citeseer.ist.psu.edu/cache/papers/cs/4047/http:zSzzSzwww.bell-
labs.comzSzuserzSzgarayzSzmulticast.pdf/canetti99multicast.pdf
[47] Perrig A., D. Song, and J. D. Tygar, ELK, a new Protocol for Efficient Large-Group
Key Distribution, Proc. IEEE Symp. Security and Privacy, 2001.
URL:
http://citeseer.ist.psu.edu/cache/papers/cs/21979/http:zSzzSzparis.cs.berkeley.eduzSz~per
rigzSzprojectszSzelkzSzelk.pdf/perrig01elk.pdf
REFERENCES
122
[48] Rafaeli S., Mathy L., and Hutchison D., EHBT: An Efficient Protocol for Group Key
Management, LNCS, vol. 2233, 2001, pp. 15971.
URL: http://citeseer.ist.psu.edu/cache/papers/cs/22764/http:zSzzSzwww-
mice.cs.ucl.ac.ukzSzngc2001zSzpaperszSzrafaeli.pdf/rafaeli01ehbt.pdf
[49] Pietro R. D., Mancini L. V., and Jajodia S., Efficient and Secure Keys Management for
Wireless Mobile Communications, Proc. POMC 02, 2002.
URL : http://www.eyes.eu.org/publications/p06-mancini.pdf
[50] Poovendran R., and Baras J. S., An Information Theoretic Analysis of Root-Tree
Based Secure Multicast Key Distribution Schemes, LNCS, vol. 1666, 1999, pp. 624
38.
URL: http://www.ee.washington.edu/research/nsl/papers/CRYPTO-99.pdf
[51] Selcuk A., McCubbin C., and Sidhu D., Probabilistic Optimization of LKH-Based
Multicast Key Distribution Schemes, IETF Internet-Draft, Jan. 2000, draft-selcuk-
probabilistic-lkh-00.txt.
URL: http://www.securemulticast.org/draft-selcuk-probabilistic-lkh-00.txt
[52] Winjum E. et al., A Performance Evaluation of Security Schemes proposed for the
OLSR Protocol, Proc. MILCOM 05, 2005.
URL: http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1606013
[53] Wong C. K., and Lam S.S., Keystone: A Group Key Management Service, Proc. ICT,
2000.
URL:
http://citeseerx.ist.psu.edu/viewdoc/summary;jsessionid=A2A6F83805047967BA3C9389
9DC19604?cid=2133781
[54] Burmester M., and Desmedt Y., A secure and efficient conference key distribution
system, Advances in Cryptology - EUROCRYPT'94, Springer-Verlag, 1994, p. 275-286.
URL: http://www.cs.fsu.edu/~langley/Eurocrypt/Eurocrypt%20-
%20OCR%20version%20-%202003%2008%2028.pdf
[55] Luo H., Zerfos P., Kong J., Lu S. and Zhang L., Self -Securing Ad Hoc Wireless
Networks, Seventh IEEE Symposium on Computers and Communications
(ISCC02),2002
URL: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.3.6469
[56] Crpeau C. and Davis C.R., A Certificate Revocation Scheme for Wireless Ad Hoc
Networks, Proceedings of ACM Workshop on Security of Ad Hoc and Sensor Networks
(SASN '03), ACM Press, isbn 1-58113-783-4, pp.54-61, 2003.
URL: http://www.cs.mcgill.ca/~carlton/papers/revocationSF1.pdf
[57] Hoeper K. and Gong G., Key Revocation for Identity-Based Schemes in Mobile Ad
Hoc Networks, International Conference on AD-HOC Networks & Wireless (AD HOC
NOW `06, LNCS 4104, Springer Verlag, pp. 224-237, 2006.
URL: http://comsec.uwaterloo.ca/~ggong/publication/2006/IBCrevocation_hoeper_f.pdf
[58] van der Merwe J., Key Management in Mobile Ad Hoc Networks, MScEng
dissertation, in School of Electrical, Electronic and Computer Engineering, University of
KwaZulu-Natal (UKZN), South-Africa, 2005.
REFERENCES
123
URL:
http://www.ee.ukzn.ac.za/postgrad/vdirs/vdMerwe/webpage/homepage_files/thesis/vande
rMerweMScEngThesis.pdf
[59] Hu Y.-C., Johnson D. B., and Perrig A., Ariadne: A Secure OnDemand Routing
Protocol for Ad Hoc Networks, in proc. Eighth ACM International Conf. on Mobile
Computing and
Networking (Mobicom02), September 2002.
URL: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.20.4893
[60] Dahill B., Levine E., Royer E., and Shields C., A Secure Routing Protocol for Ad Hoc
Networks, University of Massachusetts, Technical Report UM-CS-2001-037, August
2001.
URL:http://citeseer.ist.psu.edu/old/694791.html
ANNEXE
124
Annexe
Code en C du mcanisme de
rvocation de certificats
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#define cert C
#define hhhhhh harakiri
#define lescertificats
#define N1 50
#define M 100
#define matrice matrice
#define AMmisajour AMmaj
#define vecteur vecteur
#define vote vote
struct certificat
{float numseriecert;
float validite;
};
struct hhhhhh
{
float mess[M];
};
struct matrice
{
float lamatrice[N1][M];
};
struct AMmisajour
{ float numserie;
float matriceAccusation[N1][M];
float signature;
};
struct vecteur
{float accuse;
float valeur;
};
struct vote
{float numserie;
float nombre;
int indicateur;
};
typedef struct certificat cert;
typedef struct hhhhhh hhhhhh;
typedef struct matrice matrice;
typedef struct AMmisajour AMmisajour;
typedef struct vecteur vecteur;
typedef struct vote vote;
int N, N11, N12, N13, auth, epsilone=2, nbsaut=2,
delta=2;
matrice monCRL, sonCRL, sonCRL1, matri, matri1,
matri2, matri3, int2000, int3000, int4000, int5000,
noeud1,noeud3,noeud4;
vecteur tab[N1];
C monvoisinage[4];
C sonvoisinage3[5];
C sonvoisinage4[5];
C moncertificat;
vote tab1[N1];
float tabmessrecu[N1];
float tabligneecartee[N1];
void initialiserLeReseau(){
C lescerts[N];
lescerts[0].numseriecert=1000;
lescerts[0].validite=2009;
lescerts[1].numseriecert=2000;
lescerts[1].validite=2010;
lescerts[2].numseriecert=3000;
lescerts[2].validite=2008;
lescerts[3].numseriecert=4000;
lescerts[3].validite=2011;
lescerts[4].numseriecert=5000;
lescerts[4].validite=2009;
lescerts[5].numseriecert=6000;
lescerts[5].validite=2010;
}
matrice creerMaMatriceAM(float numserie)
{
int i,j,k,n;
float num,val;
matrice AM;
ANNEXE
125
C tab[10];
printf( " \t \t Matrice d'accusation du noeud
identifier par %.f", numserie);
printf("\n Donner le nombre de noeud du
voisinage a un saut \t");
scanf("%d",&nbrenoeudvoisunsaut);
for(i=0; i<nbrenoeudvoisunsaut; i++)
{printf("\n donner le numero de serie de
l'element %d \t",i);
scanf("%f",&num);
printf("\n donner la validite de l'element %d \t",
i);
scanf("%f",&val);
tab[i].numseriecert = num;
tab[i].validite = val;}
for(k=0; k<nbrenoeudvoisunsaut; k++)
{
AM.lamatrice[k][0] = tab[k].numseriecert;
AM.lamatrice[k][1] = tab[k].validite;
AM.lamatrice[k][2] =0;
}
for(k=0; k<nbrenoeudvoisunsaut; k++)
{for(i=0; i<3; i++)
{printf(" \t %.f ",AM.lamatrice[k][i]);
}
printf(" \n");
}
return AM;
}
matrice maMatriceAM( matrice * AM)
{
int i,j,k;
printf(" \n donner le numero de serie du noeud
suspect");
scanf("%d",&j);
for(k=0; k<nbrenoeudvoisunsaut; k++)
{ if((*AM).lamatrice[k][0]==j)
(*AM).lamatrice[k][2]=1;}
for(k=0; k<nbrenoeudvoisunsaut; k++)
{for(i=0; i<3; i++)
{printf(" \t %.f ",(*AM).lamatrice[k][i]);
}
printf(" \n"); }
return *AM;
}
harakiri messageHarakiri(float numserie, float
hopcount)
{
float sign;
harakiri hm1;
sign=(float)rand();
hm1.mess[0] = numserie;
hm1.mess[1] = hopcount;
hm1.mess[2] = sign;
// printf("le message a envoye est %.f \t %.f \t %.f \t
",hm1.mess[0], hm1.mess[1], hm1.mess[2]);
return hm1;
}
AMmisajour messageAMmisajour(C moncert,
matrice AM)
{
AMmisajour AMmis;
int i, k;
AMmis.numserie=moncert.numseriecert;
AMmis.signature= (float)rand();
for(i=0; i<N; i++)
{for(k=0; k<3; k++)
AMmis.matriceAccusation[i][k]=AM.lamatrice[i][k];
}
return AMmis;
}
AMmisajour messageCRLmisajour(C moncert,
matrice CRL)
{
AMmisajour CRLmis;
int i, k;
CRLmis.numserie=moncert.numseriecert;
CRLmis.signature= (float)rand();
for(i=0; i<=N; i++)
{for(k=0; k<=N+3; k++)
ANNEXE
126
CRLmis.matriceAccusation[i][k]=CRL.lamatrice[i][k
];
}
i=0;
while(i<=N)
{ if(tabmessrecu[i]==0.0)
tabmessrecu[i]=moncert.numseriecert;
else
tabmessrecu[i+1]=moncert.numseriecert;
i++;
}
printf("\n");
printf(" \t \t Matrice CRL mise a jour reue");
printf("\n");
printf("\n");
for(i=0; i<=N; i++)
{for(k=0; k<=N+3; k++)
printf("%.f \t",
CRLmis.matriceAccusation[i][k]);
printf("\n");}
return CRLmis;
}
matrice intermediaireEtape5(float
numserieAccusateur, C monvoisinage[N])
{ int i,k;
matrice mma;
mma.lamatrice[0][0]=numserieAccusateur;
mma.lamatrice[1][0]=moncertificat.numseriecert;
for(i=2;i<=N+1;i++)
mma.lamatrice[i][0]=monvoisinage[i-
2].numseriecert;
for(k=1;k<=N;k++)
mma.lamatrice[0][k]=monvoisinage[k-
1].numseriecert;
for(i=1;i<=N+1;i++)
{for(k=1;k<=N;k++)
mma.lamatrice[i][k]=3;}
printf("\n");
/* for(i=0;i<=N;i++)
{for(k=0;k<=N;k++)
printf("%.f \t",mma.lamatrice[i][k]);
printf("\n");} */
return mma;
}
harakiri receptionHarakiri(harakiri hm, matrice *
maCRL2)
{ int i,a;
harakiri hm2;
printf("Le message reu est %.f \t %.f \t %.f \t
",hm.mess[0], hm.mess[1], hm.mess[2]);
if(hm.mess[1]!=0)
{//printf("\n %.f",hm.mess[1]);
hm2.mess[0]=hm.mess[0];
hm2.mess[1]=hm.mess[1]-1;
hm2.mess[2]=hm.mess[2];
for(i=0;i<=N;i++)
{if((*maCRL2).lamatrice[i][0]==hm.mess[0])
{(*maCRL2).lamatrice[i][2]=1;
(*maCRL2).lamatrice[i][i+3]=1;}
}
printf("\n Le message a envoyer est %.f \t %.f \t
%.f \t ",hm2.mess[0], hm2.mess[1], hm2.mess[2]);}
else
{ printf("Le nombre de saut voulu est atteint");
for(i=0;i<=N;i++)
{if((*maCRL2).lamatrice[i][0]==hm.mess[0])
{(*maCRL2).lamatrice[i][2]=1;
(*maCRL2).lamatrice[i][i+3]=1;}
}
}
}
return hm2;
}
matrice creerMaCRL(C moncert, C
monvoisinage[N])
{
int i,j,k,l,n,n1,n2;
float num,val;
// float AM[10][10];
C tab[10];
matrice CRL;
ANNEXE
127
printf( " \t \t Liste de revocation du noeud
identifier par %.f \n \n", moncert.numseriecert);
CRL.lamatrice[0][0]=moncert.numseriecert;
CRL.lamatrice[0][1]=moncert.validite;
for(i=1; i<=N; i++)
{
CRL.lamatrice[i][0] = monvoisinage[i-
1].numseriecert;
CRL.lamatrice[i][1] = monvoisinage[i-
1].validite;
}
for(k=4; k<=N+3; k++)
CRL.lamatrice[0][k]=0;
for(i=0; i<=N; i++)
CRL.lamatrice[i][2]=0;
for(i=1; i<=N; i++)
CRL.lamatrice[i][3]=0;
for(i=1; i<=N; i++)
{for(k=4; k<=N+3; k++)
CRL.lamatrice[i][k]=0; }
for(i=1; i<=N; i++)
CRL.lamatrice[i][i+3]=0;
return CRL;
}
matrice maCRL(C moncert, matrice * CRL)
{ int i,j,k,l,m;
//condition 1
for(i=0; i<=N; i++)
{if((*CRL).lamatrice[i][0]==
moncert.numseriecert)
{for(l=0; l<=N; l++)
{if((*CRL).lamatrice[l][i+3]==1)
(*CRL).lamatrice[l][2]=1;}}}
//condition 2
for(i=0;i<=N;i++)
{if((*CRL).lamatrice[i][1]<=2008)
(*CRL).lamatrice[i][2]=1;
}
//condition 3 (voir reception harakiri)
//condition 4
for(i=0; i<=N; i++)
{ m=0;
for(k=3; k<=N+3; k++)
{if((*CRL).lamatrice[i][k]==1)
{ m=m+1;
if(m >= delta)
(*CRL).lamatrice[i][2]=1; } }
}
for(i=0; i<=N; i++)
{if((*CRL).lamatrice[i][0]==
moncert.numseriecert)
(*CRL).lamatrice[i][2]=0;
}
return *CRL;
}
matrice etape1a4(matrice *maCRL1, AMmisajour
messageCRLmisajour1)
{ int i,k,l,an, an1, numline;
matrice matr;
//Etape1
numline=0;
for(i=0;i<N;i++)
{if(messageCRLmisajour1.numserie ==
(*maCRL1).lamatrice[i][0])
numline=i;
}
//Etape2
printf("\n");
if((*maCRL1).lamatrice[numline][2]==0)
{ //Etape3
printf("\n");
for(i=0;i<=N11;i++)
{if(messageCRLmisajour1.matriceAccusation[i][0]=
= messageCRLmisajour1.numserie)
an=i+3;}
for(k=0;k<=N11;k++)
{tab[k].accuse=messageCRLmisajour1.matriceAccus
ation[k][0];
ANNEXE
128
tab[k].valeur=messageCRLmisajour1.matriceAccusat
ion[k][an];
}
for(i=0;i<=N;i++)
{if((*maCRL1).lamatrice[i][0]==messageCRLmisajo
ur1.numserie)
an1=i+3;}
for(k=0;k<=N;k++)
{for(l=0; l<=N11; l++)
{if((*maCRL1).lamatrice[k][0]==tab[l].accuse)
(*maCRL1).lamatrice[k][an1]=tab[l].valeur;
}
}
//Etape4
//colonne k=i ecartee
for(i=0;i<=N11;i++)
{if(messageCRLmisajour1.matriceAccusation[i][0]
== moncertificat.numseriecert)
{for(l=0;l<=N11;l++)
messageCRLmisajour1.matriceAccusation[l][i+3]=5;
//5 pour colonne ecartee
}
} //juste
//colonne k=j ecartee
for(i=0;i<=N11;i++)
{
if(messageCRLmisajour1.matriceAccusation[i][0]==
messageCRLmisajour1.numserie)
{for(l=0;l<=N11;l++)
messageCRLmisajour1.matriceAccusation[l][i+3]=5;
}
} //juste
//colonne k=l ecartee
for(k=0;k<N;k++)
{if((*maCRL1).lamatrice[k][2]==1)
{for(i=0;i<=N11;i++)
{if(messageCRLmisajour1.matriceAccusation[i][0]
== (*maCRL1).lamatrice[k][0])
{for(l=0;l<=N11;l++)
messageCRLmisajour1.matriceAccusation[l][i+3]=5;
}
}
}
} //juste
//colonne k=s ecartee
/* k=1;
while(k<=N11)
{for(i=1;i<=N;i++)
{if(messageCRLmisajour1.matriceAccusation[k][0]=
=maCRL1.lamatrice[i][0])
continue;
else
{for(l=0;l<=N11;l++)
messageCRLmisajour1.matriceAccusation[l][k+3]=5;
}
}
k++;
}
*/
//colonne k=r ecartee
}
for(i=0;i<=N11;i++)
{for(k=0;k<=N11+3;k++)
matr.lamatrice[i][k]=messageCRLmisajour1.matrice
Accusation[i][k];
}
ANNEXE
129
}
return matr;
}
void MatricePourVote(matrice mat, C soncertificat)
{int i,k,l,k1,an;
for(k1=1;k1<=N+1;k1++)
{if(int2000.lamatrice[0][k1]==soncertificat.numserie
cert)
an=k1; //an est le num de colonne de
celui qui a envoy le message
}
for(i=1;i<=N11;i++)
{if(mat.lamatrice[i][0]==int2000.lamatrice[0][0]
&& (mat.lamatrice[0][i+3]!=5))
{for(k=0;k<=N11;k++)
{for(l=1;l<=N+1;l++)
{if(mat.lamatrice[k][0]==int2000.lamatrice[l][0])
int2000.lamatrice[l][an]=mat.lamatrice[k][i+3];
}
}
}
}
for(k1=1;k1<=N+1;k1++)
{if(int3000.lamatrice[0][k1]==soncertificat.numserie
cert)
an=k1;
}
for(i=1;i<=N11;i++)
{if((mat.lamatrice[i][0]==int3000.lamatrice[0][0])
&& (mat.lamatrice[0][i+3]!=5))
{for(k=0;k<=N11;k++)
{for(l=1;l<=N+1;l++)
{if(mat.lamatrice[k][0]==int3000.lamatrice[l][0])
int3000.lamatrice[l][an]=mat.lamatrice[k][i+3];
}
}
}
}
for(k1=1;k1<=N+1;k1++)
{if(int4000.lamatrice[0][k1]==soncertificat.numserie
cert)
an=k1;
}
for(i=1;i<=N11;i++)
{if((mat.lamatrice[i][0]==int4000.lamatrice[0][0])
&& (mat.lamatrice[0][i+3]!=5))
{for(k=0;k<=N11;k++)
{for(l=1;l<=N+1;l++)
{if(mat.lamatrice[k][0]==int4000.lamatrice[l][0])
int4000.lamatrice[l][an]=mat.lamatrice[k][i+3];
}
}
}
}
for(k1=1;k1<=N+1;k1++)
{if(int5000.lamatrice[0][k1]==soncertificat.numserie
cert)
an=k1;
}
for(i=1;i<=N11;i++)
{if((mat.lamatrice[i][0]==int5000.lamatrice[0][0])
&& (mat.lamatrice[0][i+3]!=5))
{for(k=0;k<=N11;k++)
{for(l=1;l<=N+1;l++)
ANNEXE
130
{if(mat.lamatrice[k][0]==int5000.lamatrice[l][0])
int5000.lamatrice[l][an]=mat.lamatrice[k][i+3];
}
}
}
}
}
matrice etape1a4fin(C soncertificat, matrice
ma1,float tableau[N1])
{int i,k,l;
for(k=0;k<=N11;k++)
{for(i=0;i<=N;i++)
{if(ma1.lamatrice[k][0]==tableau[i])
{for(l=0;l<=N11;l++)
ma1.lamatrice[l][k+3]=5;
}
}
}
printf("\n");
printf("Apres transformation la matrice du noeud
identifie par %.f devient:",
soncertificat.numseriecert);
printf("\n");
printf("\n");
for(i=0;i<=N11;i++)
{for(k=0;k<=N11+3;k++)
printf("%.f \t",ma1.lamatrice[i][k]);
printf("\n");
}
return ma1;
}
matrice etape5(matrice * maCRL1)
{int i, k, an, nb, dka;
printf("\n");
for(i=0; i<=N; i++)
{tab1[i].numserie=8;
tab1[i].nombre=8;
tab1[i].indicateur=8;
}
////////////////////
for(i=1;i<=N;i++)
{ nb=0;
for(k=1;k<N;k++)
{if(int2000.lamatrice[i][k]==1)
nb=nb+1;}
tab1[i-1].numserie=int2000.lamatrice[i][0];
tab1[i-1].nombre=nb;
for(k=1;k<N;k++)
{if(int2000.lamatrice[i][k]==2)
{ break;
tab1[i-1].indicateur=1;}
else
{continue;
if(k==N-1)
tab1[i-1].indicateur=0;
}
}
}
printf("\n");
for(k=1;k<=N;k++)
{ dka=0;
for(i=1;i<=N+1;i++)
{if(int2000.lamatrice[i][k]!=3)
dka=dka+1;}
}
for(i=0;i<N;i++)
{if((*maCRL1).lamatrice[i][0]==2000)
an=i+3;
}
for(i=0;i<N;i++)
{if((tab1[i].numserie ==
(*maCRL1).lamatrice[i][0]) && (tab1[i].nombre >
dka/2) && (dka >= epsilone) &&
(tab1[i].indicateur==0) && (dka!=0))
(*maCRL1).lamatrice[i][an]=1;
else
{if((tab1[i].numserie
==(*maCRL1).lamatrice[i][0]) && (tab1[i].nombre <
ANNEXE
131
dka/2) && (dka >= epsilone) &&
(tab1[i].indicateur==0) && (dka!=0))
(*maCRL1).lamatrice[i][an]=0;
}
}
//////////////////////////
for(i=1;i<=N;i++)
{ nb=0;
for(k=1;k<N;k++)
{if(int3000.lamatrice[i][k]==1)
nb=nb+1;}
tab1[i-1].numserie=int3000.lamatrice[i][0];
tab1[i-1].nombre=nb;
for(k=1;k<N;k++)
{if(int3000.lamatrice[i][k]==2)
{ break;
tab1[i-1].indicateur=1;}
else
{continue;
if(k==N-1)
tab1[i-1].indicateur=0;
}
}
}
for(k=1;k<=N;k++)
{ dka=0;
for(i=1;i<=N+1;i++)
{if(int3000.lamatrice[i][k]!=3)
dka=dka+1;}
}
for(i=0;i<N;i++)
{if((*maCRL1).lamatrice[i][0]==3000)
an=i+3;
}
for(i=0;i<N;i++)
{if((tab1[i].numserie ==
(*maCRL1).lamatrice[i][0]) && (tab1[i].nombre >
dka/2) && (dka >= epsilone) && (dka!=0))
(*maCRL1).lamatrice[i][an]=1;
else
{if((tab1[i].numserie
==(*maCRL1).lamatrice[i][0]) && (tab1[i].nombre <
dka/2) && (dka >= epsilone) && (dka!=0))
(*maCRL1).lamatrice[i][an]=0;
}
}
//////////////////////
for(i=1;i<=N;i++)
{ nb=0;
for(k=1;k<N;k++)
{if(int4000.lamatrice[i][k]==1)
nb=nb+1;}
tab1[i-1].numserie=int4000.lamatrice[i][0];
tab1[i-1].nombre=nb;
for(k=1;k<N;k++)
{if(int4000.lamatrice[i][k]==2)
{ break;
tab1[i-1].indicateur=1;}
else
{continue;
if(k==N-1)
tab1[i-1].indicateur=0;
}
}
}
for(k=1;k<=N;k++)
{ dka=0;
for(i=1;i<=N+1;i++)
{if(int4000.lamatrice[i][k]!=3)
dka=dka+1;}
}
for(i=0;i<N;i++)
{if((*maCRL1).lamatrice[i][0]==4000)
an=i+3;
}
for(i=0;i<N;i++)
{if((tab1[i].numserie ==
(*maCRL1).lamatrice[i][0]) && (tab1[i].nombre >
dka/2) && (dka >= epsilone) && (dka!=0))
(*maCRL1).lamatrice[i][an]=1;
else
ANNEXE
132
{if((tab1[i].numserie
==(*maCRL1).lamatrice[i][0]) && (tab1[i].nombre <
dka/2) && (dka >= epsilone) && (dka!=0))
(*maCRL1).lamatrice[i][an]=0;
}
}
///////////////////////
for(i=1;i<=N;i++)
{ nb=0;
for(k=1;k<N;k++)
{if(int5000.lamatrice[i][k]==1)
nb=nb+1;}
tab1[i-1].numserie=int5000.lamatrice[i][0];
tab1[i-1].nombre=nb;
for(k=1;k<N;k++)
{if(int5000.lamatrice[i][k]==2)
{ break;
tab1[i-1].indicateur=1;}
else
{continue;
if(k==N-1)
tab1[i-1].indicateur=0;
}
}
}
for(k=1;k<=N;k++)
{ dka=0;
for(i=1;i<=N+1;i++)
{if(int5000.lamatrice[i][k]!=3)
dka=dka+1;}
}
for(i=0;i<N;i++)
{if((*maCRL1).lamatrice[i][0]==5000)
an=i+3;
}
for(i=0;i<N;i++)
{if((tab1[i].numserie ==
(*maCRL1).lamatrice[i][0]) && (tab1[i].nombre >
dka/2) && (dka >= epsilone) && (dka!=0))
(*maCRL1).lamatrice[i][an]=1;
else
{if((tab1[i].numserie
==(*maCRL1).lamatrice[i][0]) && (tab1[i].nombre <
dka/2) && (dka >= epsilone))
(*maCRL1).lamatrice[i][an]=0;
}
}
printf(" \t \t La liste de revocation du noeud1 mise
a jour est:");
printf("\n");
printf("\n");
for(i=0;i<N;i++)
{for(k=0;k<N+3;k++)
printf("%.f \t ",(*maCRL1).lamatrice[i][k]);
printf("\n"); }
return *maCRL1;
}
int main(int argc, char *argv[])
{ C c3,c4;
AMmisajour AMmis, CRLmis, CRLmis1;
matrice mmm;
//C sonvoisinage3[4];
monvoisinage[0].numseriecert=2000;
monvoisinage[0].validite=2010;
monvoisinage[1].numseriecert=3000;
monvoisinage[1].validite=2011;
monvoisinage[2].numseriecert=4000;
monvoisinage[2].validite=2012;
monvoisinage[3].numseriecert=5000;
monvoisinage[3].validite=2010;
int i,k,l,k1,an;
// harakiri t,t1;
moncertificat.numseriecert=1000;
moncertificat.validite=2009;
//monCRL =
maCRL(moncertificat,monvoisinage);
sonvoisinage3[0].numseriecert=1000;
sonvoisinage3[0].validite=2009;
sonvoisinage3[1].numseriecert=2000;
sonvoisinage3[1].validite=2010;
ANNEXE
133
sonvoisinage3[2].numseriecert=4000;
sonvoisinage3[2].validite=2011;
sonvoisinage3[3].numseriecert=5000;
sonvoisinage3[3].validite=2009;
sonvoisinage3[4].numseriecert=6000;
sonvoisinage3[4].validite=2012;
sonvoisinage4[0].numseriecert=1000;
sonvoisinage4[0].validite=2009;
sonvoisinage4[1].numseriecert=2000;
sonvoisinage4[1].validite=2010;
sonvoisinage4[2].numseriecert=3000;
sonvoisinage4[2].validite=2009;
sonvoisinage4[3].numseriecert=5000;
sonvoisinage4[3].validite=2009;
sonvoisinage4[4].numseriecert=6000;
sonvoisinage4[4].validite=2012;
N=5;
int2000=intermediaireEtape5(2000,
monvoisinage);
int3000=intermediaireEtape5(3000,
monvoisinage);
int4000=intermediaireEtape5(4000,
monvoisinage);
int5000=intermediaireEtape5(5000,
monvoisinage);
// cas de l'article
// liste de rvocation du noeud 1
noeud1.lamatrice[0][0]=1000;
noeud1.lamatrice[0][1]=2009;
noeud1.lamatrice[0][2]=0; noeud1.lamatrice[0][3]=0;
noeud1.lamatrice[0][4]=0; noeud1.lamatrice[0][5]=0;
noeud1.lamatrice[0][6]=0; noeud1.lamatrice[0][7]=0;
noeud1.lamatrice[1][0]=2000;
noeud1.lamatrice[1][1]=2010;
noeud1.lamatrice[1][2]=1; noeud1.lamatrice[1][3]=1;
noeud1.lamatrice[1][4]=0; noeud1.lamatrice[1][5]=0;
noeud1.lamatrice[1][6]=0; noeud1.lamatrice[1][7]=2;
noeud1.lamatrice[2][0]=3000;
noeud1.lamatrice[2][1]=2009;
noeud1.lamatrice[2][2]=0; noeud1.lamatrice[2][3]=0;
noeud1.lamatrice[2][4]=0; noeud1.lamatrice[2][5]=0;
noeud1.lamatrice[2][6]=0; noeud1.lamatrice[2][7]=1;
noeud1.lamatrice[3][0]=4000;
noeud1.lamatrice[3][1]=2011;
noeud1.lamatrice[3][2]=0; noeud1.lamatrice[3][3]=0;
noeud1.lamatrice[3][4]=0; noeud1.lamatrice[3][5]=0;
noeud1.lamatrice[3][6]=0; noeud1.lamatrice[3][7]=0;
noeud1.lamatrice[4][0]=5000;
noeud1.lamatrice[4][1]=2009;
noeud1.lamatrice[4][2]=0; noeud1.lamatrice[4][3]=0;
noeud1.lamatrice[4][4]=0; noeud1.lamatrice[4][5]=0;
noeud1.lamatrice[4][6]=0; noeud1.lamatrice[4][7]=0;
// liste de rvocation du noeud 3
noeud3.lamatrice[0][0]=1000;
noeud3.lamatrice[0][1]=2009;
noeud3.lamatrice[0][2]=0; noeud3.lamatrice[0][3]=0;
noeud3.lamatrice[0][4]=1; noeud3.lamatrice[0][5]=0;
noeud3.lamatrice[0][6]=0; noeud3.lamatrice[0][7]=1;
noeud3.lamatrice[0][8]=2;
noeud3.lamatrice[1][0]=2000;
noeud3.lamatrice[1][1]=2010;
noeud3.lamatrice[1][2]=1; noeud3.lamatrice[1][3]=1;
noeud3.lamatrice[1][4]=0; noeud3.lamatrice[1][5]=1;
noeud3.lamatrice[1][6]=1; noeud3.lamatrice[1][7]=2;
noeud3.lamatrice[1][8]=2;
noeud3.lamatrice[2][0]=3000;
noeud3.lamatrice[2][1]=2009;
noeud3.lamatrice[2][2]=0; noeud3.lamatrice[2][3]=0;
noeud3.lamatrice[2][4]=1; noeud3.lamatrice[2][5]=0;
noeud3.lamatrice[2][6]=0; noeud3.lamatrice[2][7]=0;
noeud3.lamatrice[2][8]=2;
noeud3.lamatrice[3][0]=4000;
noeud3.lamatrice[3][1]=2011;
noeud3.lamatrice[3][2]=0; noeud3.lamatrice[3][3]=0;
noeud3.lamatrice[3][4]=0; noeud3.lamatrice[3][5]=0;
noeud3.lamatrice[3][6]=0; noeud3.lamatrice[3][7]=1;
noeud3.lamatrice[3][8]=1;
noeud3.lamatrice[4][0]=5000;
noeud3.lamatrice[4][1]=2009;
noeud3.lamatrice[4][2]=1; noeud3.lamatrice[4][3]=0;
noeud3.lamatrice[4][4]=2; noeud3.lamatrice[4][5]=1;
ANNEXE
134
noeud3.lamatrice[4][6]=1; noeud3.lamatrice[4][7]=0;
noeud3.lamatrice[4][8]=1;
noeud3.lamatrice[5][0]=6000;
noeud3.lamatrice[5][1]=2012;
noeud3.lamatrice[5][2]=1; noeud3.lamatrice[5][3]=2;
noeud3.lamatrice[5][4]=2; noeud3.lamatrice[5][5]=1;
noeud3.lamatrice[5][6]=1; noeud3.lamatrice[5][7]=0;
noeud3.lamatrice[5][8]=0;
// liste de rvocation du noeud 4
noeud4.lamatrice[0][0]=1000;
noeud4.lamatrice[0][1]=2009;
noeud4.lamatrice[0][2]=0; noeud4.lamatrice[0][3]=0;
noeud4.lamatrice[0][4]=1; noeud4.lamatrice[0][5]=0;
noeud4.lamatrice[0][6]=0; noeud4.lamatrice[0][7]=0;
noeud4.lamatrice[0][8]=2;
noeud4.lamatrice[1][0]=2000;
noeud4.lamatrice[1][1]=2010;
noeud4.lamatrice[1][2]=1; noeud4.lamatrice[1][3]=1;
noeud4.lamatrice[1][4]=0; noeud4.lamatrice[1][5]=1;
noeud4.lamatrice[1][6]=1; noeud4.lamatrice[1][7]=2;
noeud4.lamatrice[1][8]=2;
noeud4.lamatrice[2][0]=3000;
noeud4.lamatrice[2][1]=2009;
noeud4.lamatrice[2][2]=0; noeud4.lamatrice[2][3]=0;
noeud4.lamatrice[2][4]=1; noeud4.lamatrice[2][5]=0;
noeud4.lamatrice[2][6]=0; noeud4.lamatrice[2][7]=1;
noeud4.lamatrice[2][8]=2;
noeud4.lamatrice[3][0]=4000;
noeud4.lamatrice[3][1]=2011;
noeud4.lamatrice[3][2]=0; noeud4.lamatrice[3][3]=0;
noeud4.lamatrice[3][4]=0; noeud4.lamatrice[3][5]=0;
noeud4.lamatrice[3][6]=0; noeud4.lamatrice[3][7]=0;
noeud4.lamatrice[3][8]=1;
noeud4.lamatrice[4][0]=5000;
noeud4.lamatrice[4][1]=2009;
noeud4.lamatrice[4][2]=1; noeud4.lamatrice[4][3]=0;
noeud4.lamatrice[4][4]=2; noeud4.lamatrice[4][5]=1;
noeud4.lamatrice[4][6]=1; noeud4.lamatrice[4][7]=0;
noeud4.lamatrice[4][8]=1;
noeud4.lamatrice[5][0]=6000;
noeud4.lamatrice[5][1]=2012;
noeud4.lamatrice[5][2]=1; noeud4.lamatrice[5][3]=2;
noeud4.lamatrice[5][4]=2; noeud4.lamatrice[5][5]=1;
noeud4.lamatrice[5][6]=1; noeud4.lamatrice[5][7]=1;
noeud4.lamatrice[5][8]=0;
c3.numseriecert=3000;
c3.validite=2009;
c4.numseriecert=4000;
c4.validite=2011;
N11=5;
printf("\t \t Liste de revocation du noeud1");
printf("\n");
printf("\n");
for(i=0;i<N;i++)
{for(k=0;k<N+3;k++)
printf(" %.f \t", noeud1.lamatrice[i][k]);
printf("\n");}
//sonCRL = maCRL(c2,sonvoisinage3);
CRLmis= messageCRLmisajour(c3,noeud3);
printf("\n");
matri = etape1a4(&noeud1, CRLmis);
printf("\n");
CRLmis1=messageCRLmisajour(c4,noeud4);
printf("\n");
matri1 = etape1a4(&noeud1, CRLmis1);
// sonCRL1= maCRL(c4,sonvoisinage3);
printf("\n");
matri2=etape1a4fin(c3,matri, tabmessrecu);
printf("\n");
matri3=etape1a4fin(c4,matri1,tabmessrecu);
printf("\n");
printf("Les matrices du vote majoritaire");
printf("\n");
MatricePourVote(matri2, c3);
printf("\n");
MatricePourVote(matri3, c4);
printf("\n");
for(i=0;i<=N;i++)
{for(k=0;k<N;k++)
printf("%.f \t",int2000.lamatrice[i][k]);
ANNEXE
135
printf("\n");}
printf("\n");
for(i=0;i<=N;i++)
{for(k=0;k<N;k++)
printf("%.f \t",int3000.lamatrice[i][k]);
printf("\n");}
printf("\n");
for(i=0;i<=N;i++)
{for(k=0;k<N;k++)
printf("%.f \t",int4000.lamatrice[i][k]);
printf("\n");}
printf("\n");
for(i=0;i<=N;i++)
{for(k=0;k<N;k++)
printf("%.f \t",int5000.lamatrice[i][k]);
printf("\n");}
mmm = etape5(&noeud1);
getch();
return 0;
}