Publier
Consulter, acheter et télécharger des documents, présentations, modèles et ebooks sur Needocs (PDF, Word, Powerpoint, Excel)

Mesure de métrique de sécurité-l'intégrité

Téléchargement
Publié par : HANACHI

ا
ا و
ا
ا ة
رازو

BADJI MOKHTAR UNIVERSITY –
ANNABA



ر



UNIVERSITE BADJI MOKHTAR –

ANNABA

Faculté: Sciences de l’Ingéniorat
Département: Informatique


MEMOIRE
Présenté en vue de l’obtention du diplôme de : MASTER

Intitulé



Mesure de métrique de sécurité : l’intégrité



Domaine : Math-Informatique
Filière : Informatique
Spécialité : Réseaux et Sécurité Informatique

Par : HANACHI AHMED ABDELRAOUF

DIRECTEUR DE MEMOIRE :
Mme Nacira Ghoualmi MCA Univ.Annaba


DEVANT Le JURY
PRESIDENT: Mr Cherif Tolba MCB Univ.Annaba
Examinatrice : Mme Noudjoud Abaci MAA Univ.Annaba

Année 2011


Dédicaces
A mes chers parents, pour les sacrifices
Qu’ils ont consentis à mon égard tout au long de mes études
Et notamment durant cette dernière période de préparation.
A mon frère Chiheb et mes sœurs : Khaoula, Lina et Hiba
Elrahman pour leurs encouragements et à qui, Je souhaite
pleins de succès dans leurs études.
A M. Kouhil AbdAllah, son épouse (Ma tante) et toute
Leur famille : Yazid, Amel, Malek, Khadija, Nawri, Iméne,
AbdelHamid.
A mes proches amis : Houssem, Sihem, Sarah,
Badri, Amira, Marwa, Mohammed, Saif ElDinne, Mehdi
Mohammed (Badi) ET Narimane.
Je dédie ce travail.

Ahmed abdelraouf


Remercîment

Le plus grand remercîment revient à Dieu qui lui m’a guidé
dans le bon sens durant ma vie et qui m’a aidé à réaliser ce
modeste travail.
Je tiens à exprimer ma gratitude à :
Mme Nacira Ghoualmi maitre de conférence à l’université
Badji Mokhtar Annaba, pour avoir toujours su encadrer mon
travail, pour son aide et ses conseils qui m’ont permis
d’accomplir ce travail de façon agréable.
Je remercie Mme Noujoud Abaci maitre assistante à l’université
Badji Mokhtar Annaba, de m’avoir fait l’honneur d’accepter
d’examiner ce travail.
Je remercie Mr Cherif Tolba maitre de conférence à l’université
Badji Mokhtar Annaba, de m’avoir fait l’honneur de présider
le jury de ma soutenance.





- ه
, و '
. (% $& ! "#
$ #% & أ ا



ا

د

،

آ

. $89 ز (& و أز (4 ا 56
/ ./ $7 وأ ./ $0 % نأ
ت $& ا
ه 8 ا ا ه
, ف ( ا و . $9 > ا ' = ا <
ا '$$; ا
ا

&
4( '

$;% ة آ, ا- ه
,
.ها
$0% ت $ ا A>
!ا $9 % ه ،
$9 ا ا ه
, .
ا س $; ا '$;% و
%
"
. 8B ا ،
A ا '
، $$; ا ،
$ ا ت > $; ا ،

< ا:
ا ت
آ
Résumé
A chaque instant, le nombre des utilisateurs et les praticiens du l’internet grandissent, dans
le but de réalisées leurs besoins. Ces derniers se font par la manipulation des différents types
des données. Ces données peuvent être modifiées accidentellement ou d’une façon
intentionnelle par des utilisateurs de la même machine ou d’une machine distante.
Cette thèse présente une nouvelle approche pour l’évaluation quantitative de la sécurité des
systèmes informatiques. L’objectif de ces travaux est de définir et d’évaluer la mesure
quantitative. Cette mesure est une mesure probabiliste visant à quantifier l’intégrité des
données d’un système informatique en présence de vulnérabilités.
Mots-clés : sécurité, mesures quantitatives, évaluation, intégrité, vulnérabilité

Abstract
At each moment, the number of users and practitioners of network in grow, in order to
make their needs. These are made by manipulating different types of data. These data can be
modified accidentally or intentionally by users from the same machine or a remote machine.
This thesis presents a new approach for quantitative assessment of security systems. The
objective of this work is to define and evaluate the quantitative measurement. This measure is
probabilistic measure to quantify data integrity of a computer system for vulnerabilities.
Keywords: security, quantitative measurements, evaluation, integrity, vulnerability




Liste des figures



Liste des figures
Figure 1.1 : Les Techniques de la sécurité ........................................................................................ 7
Figure 1.2 : Les causes de vulnérabilité des systèmes d’information .......................................... 11
Figure 1.3 : Les attributs de sécurité ................................................................................................ 13
Figure 2.3 : Exemple de graphe de privilèges ................................................................................. 32
Figure 2.4 : Déploiement du graphe des privilèges en graphes d’attaque ................................... 34
Figure 2.5 : Exemple d'arbre d'attaque ............................................................................................. 36
Figure 3.1 : Méthodes d’évaluation quantitative ............................................................................ 52
Figure 3.2 : Organigramme de l’application ................................................................................... 56
Figure 3.3 : Interface Eclipse ................................................................................................... 58
Figure 3.4 : Les étapes fondamentales et intermédiaires du lecteur « JMF » ............................. 60
Figure 3.5 : Les sous classes de « TransitionEvent » .................................................................... 61
Figure 3. [6-20] : Les interfaces de l’application ........................................................................... 65
Figure 3.21 : Le changement d’empreinte du MD5 ....................................................................... 72
Figure 3.22 : Le changement d’empreinte du SHA-256 ............................................................... 72
Figure 3.23 : La comparaison entre les deux algorithmes ............................................................. 73




Liste des tableaux



Liste des tableaux
Tableau 1.1 : Les domaines relevant de la sécurité ........................................................................ 18
Tableau 2.1 : Propriétés mathématiques associées aux échelles .................................................. 23
Tableau 2.2 : La famille des normes ISO 27000 ............................................................................ 27
Tableau 2.3 : Vulnérabilités présentes dans le système ................................................................. 32
Tableau 2.4 : Classification des attaques par effort ....................................................................... 33
Tableau 3.1 : Les opérations élémentaire de l’algorithme MD5 .................................................. 46
Tableau 3.2 : Les opérations élémentaires de l’algorithme SHA256 .......................................... 50
Tableau 3.3 : comparaison entre MD5 et SHA256 ........................................................................ 51
Tableau 3.4 : Les niveaux d’erreurs de l’intégrité ................................................................... 53
Tableau 3.5 : Les méthodes de la classe « IContainer » ............................................................... 62
Tableau 3.6 : Les méthodes utiliser dans la classe « IStreamCoder » ........................................ 62




Sommaire


Sommaire
Introduction ........................................................................................................................................... 1
Chapitre 1 : La sécurité informatique ........................................................................................... 3
1.1 Introduction ..................................................................................................................................... 4
1.2 Terminologie de la sécurité informatique ................................................................................... 4
1.3 Historique ........................................................................................................................................ 5
1.4 Définition de la sécurité informatique ......................................................................................... 6
1.4.1 Définition de base ................................................................................................................. 6
1.4.2 Compléments de définition ................................................................................................. 6
1.4.3 Domaine d’élection .............................................................................................................. 6
1.5 Les objectifs de la sécurité informatique .................................................................................. 7
1.6 Les techniques de la sécurité informatique ................................................................................. 7
1.6.1 Analyse de risques ................................................................................................................ 7
1.6.2 Politique de sécurité ............................................................................................................. 8
1.6.3 Techniques de sécurisation ................................................................................................. 9
1.7 Quelles sont les clés de la sécurité de l'information? ............................................................... 9
1.8 Les domaines d'application de la sécurité informatique ......................................................... 10
1.8.1 La sécurité physique ........................................................................................................... 10
1.8.2 La sécurité de la production .............................................................................................. 10
1.8.3 Les attaques, la protection des applications et des données.......................................... 10
1.8.4 Les télécoms, la sécurité sans-fil, les accès aux données .............................................. 11
1.9 Pourquoi les systèmes sont-ils vulnérables? ............................................................. 11
1.10 Pourquoi un système ne peut être sûr à 100% ....................................................................... 12
1.11 Critères de sécurité et fonctions .............................................................................................. 12
1.11.1 Confidentialité ............................................................................................................... 14
1.11.2 Intégrité ........................................................................................................................... 14
1.11.2.1 Les conséquences lors de la perte d’intégrité ............................................. 15
1.11.3 Disponibilité.................................................................................................................... 16
1.11.4 Identification et authentification .................................................................................. 17
1.11.5 Non-répudiation ............................................................................................................. 17
1.12 Conclusion ................................................................................................................................. 19

i


Sommaire


Chapitre 2 : Evaluation de La sécurité informatique .............................................................. 20
2.1 Introduction ................................................................................................................................... 21
2.2 Sens de la mesure ......................................................................................................................... 21
2.3 Premiers besoins, premières approches : l'évaluation qualitative .......................................... 23
2.3.1 Les Critères Communs et normes ISO ............................................................................ 23
2.3.1.1 Le livre orange ....................................................................................................... 24
2.3.1.2 Les ITSEC .............................................................................................................. 25
2.3.1.3 Les Critères Communs ......................................................................................... 25
2.3.1.4 Les normes ISO ..................................................................................................... 26
2.3.2 Les méthodes d'analyses de risques ................................................................................. 28
2.3.3 Evaluation quantitatif ......................................................................................................... 29
2.3.3.1 Les mesures quantitatives ................................................................................... 30
2.4 Méthodes d'évaluation en mode opérationnel .......................................................................... 30
2.4.1 Les évaluations expérimentales ........................................................................................ 30
2.4.2 Les évaluations basées sur des modèles .......................................................................... 31
2.4.2.1 Approche du LAAS : graphe des privilèges ...................................................... 31
2.4.2.2 Modèles de scénarios : arbres et graphes d'attaque ........................................... 35
2.5 Evaluation des processus d'attaque et de protection ................................................................ 37
2.5.1 Evaluation issue de la théorie des jeux ............................................................................ 37
2.5.2 Mesures de propagation des vers ...................................................................................... 38
2.6 Conclusion..................................................................................................................................... 39
Chapitre 3 : La Conception et la réalisation .............................................................................. 41
3.1. La conception............................................................................................................................... 42
3. 1.1 La décomposition du MD5 et SHA-256 ....................................................................... 42
3.1.1.1 Définition de fonction d’hachage ...................................................................... 42
3.1.1.2 MD5 (Message Digest Algorithm) .................................................................. 43
3.1.1.3 Exemple d’application du MD5 .................................................................. 43
3.1.1.4 Mis en œuvre du MD5 ........................................................................................ 43
3.1.1.5 Pseudo-code du MD5 ............................................................................................. 43
3.1.1.6 Déroulement d’algorithme MD5 ....................................................................... 45
3.1.2. SHA256 (Secure Hash Algorithm 256) ........................................................................ 46
3.1.2.1 Exemple d’application du SHA-256 ........................................................... 46

ii


Sommaire


3.1.2.2 Mis en œuvre d’SHA-256 .................................................................................. 47
3.1.2.3 Pseudo-code du SHA-256 ..................................................................................... 47
3.1.2.4 Déroulement d’algorithme SHA-256 ................................................................ 48
3.1.3 Comparaison entre MD5 et SHA256 ............................................................................. 51
3.2 Présentation de formule de mesure du l’intégrité ..................................................................... 52
3.2.1 La formule de l’intégrité ................................................................................................ 53
3.3. La réalisation ..................................................................................................................... 54
3.3.1 Architecture de l’application ................................................................................... 55
3.3.2 Les outils employés dans l’application ........................................................................... 57
3.3.2.1 Eclipse ................................................................................................................... 58
3.3.2.2 L’API « JMF » (Java media framework) ......................................................... 59
3.3.2.3 L’API « Xuggle » ................................................................................................ 61
3.3.2.4 Gnuplot .................................................................................................................. 64
3.3.3 Les interfaces graphiques ................................................................................................. 64
3.3.4 Les courbes ......................................................................................................................... 72
3.4 Conclusion ................................................................................................................................... 73
Conclusion générale ........................................................................................................................... 75
Annexe ................................................................................................................................................. 77
Bibliographie ....................................................................................................................................... 81


iii


Introduction


Introduction
Les exigences de la sécurité de l’information au sein des organisations ont conduit à deux
changements majeurs au cours des dernières décennies. Avant l’usage généralisé
d’équipements informatiques, la sécurité de l’information était assurée par des moyens
physiques (classeurs fermés par un cadenas) ou administratifs (examen systématique des
candidats au cours de leur recrutement).
Avec l’introduction de l’ordinateur, L'augmentation du nombre de vulnérabilités présentes sur
les systèmes d'information, ont eu pour conséquence directe de rendre ces systèmes plus
exposés aux activités des pirates, le besoin d’outils automatisés pour protéger fichiers et
autres informations stockées est devenu évident. Ce besoin est accentué pour un système
accessible via un téléphone public ou un réseau de données. On donne à cette collection
d’outils conçus pour protéger des données et contrecarrer les pirates le nom de sécurité
informatique.
Les mesures de la sécurité informatique jouent un rôle très important dans la sureté du bon
fonctionnement du système informatique, nous permet d’évaluer le risque apparu dans le
système et puis choisir ou bien développer l’outil approprié de protection. Cependant les
systèmes informatiques ne sont pas sécurisés à 100%.
La vérification du l’intégrité des fichiers ou des informations stocké consiste a des outils qui
permettent d’assurer l’intégrité soit dans la machine ou lors de la transmission, le problème
qui se pose : Comment choisir les bons outils qui rendre mon système dans un état correct et
moins cassable lors de l’apparition des vulnérabilités ?
Pour répondre à cette question, notre objectif est de mesurer l’intégrité des données et de
trouver une classification pour les outils choisis dans le but de protéger notre système
informatique, selon une formule mathématique qui nous donne la probabilité du bon
fonctionnement de l’outil. Nous prenons comme exemple d’application les algorithmes de
hachages à savoir MD5 et SHA-256.
Notre mémoire est composé de trois chapitres. Le premier, nous donnons la définition de la
sécurité informatique, puis ses différentes techniques et ses domaines d’application et les
propriétés primordiales de la sécurité informatique : disponibilité, confidentialité et intégrité.

1


Introduction


Dans le second chapitre, nous étudierons la problématique de la mesure et l'évaluation dans le
cadre de la sécurité, en présentant les principales approches pour l'évaluation de la sécurité
publiées à ce jour.
Dans le troisième chapitre est composé en deux parties, la conception et la réalisation. Dans la
première, nous étudierons les algorithmes d’hachage MD5 et SHA-256. Nous aboutissons à
une décomposition de chacun aux fonctions élémentaires que nous utiliserons pour mesurer
l’intégrité des données, puis nous définirons notre formule afin de mesurer l’intégrité et leurs
différentes variables utilisées. L’autre partie de ce chapitre consiste à appliquer cette formule
sur les différentes données. Nous terminerons par le traçage des différentes courbes de notre
formule.



2

Chapitre 1
La Sécurité Informatique
Sommaire
1.1 Introduction ..................................................................................................................................... 4
1.2 Terminologie de la sécurité informatique ................................................................................... 4
1.3 Historique ........................................................................................................................................ 5
1.4 Définition de la sécurité informatique ......................................................................................... 6
1.4.1 Définition de base ................................................................................................................. 6
1.4.2 Compléments de définition ................................................................................................. 6
1.4.3 Domaine d’élection .............................................................................................................. 6
1.5 Les objectifs de la sécurité informatique .................................................................................. 7
1.6 Les techniques de la sécurité informatique ................................................................................. 7
1.6.1 Analyse de risques ................................................................................................................ 7
1.6.2 Politique de sécurité ............................................................................................................. 8
1.6.3 Techniques de sécurisation ................................................................................................. 9
1.7 Quelles sont les clés de la sécurité de l'information? ............................................................... 9
1.8 Les domaines d'application de la sécurité informatique ......................................................... 10
1.8.1 La sécurité physique ........................................................................................................... 10
1.8.2 La sécurité de la production .............................................................................................. 10
1.8.3 Les attaques, la protection des applications et des données.......................................... 10
1.8.4 Les télécoms, la sécurité sans-fil, les accès aux données .............................................. 11
1.9 Pourquoi les systèmes sont-ils vulnérables? ............................................................. 11
1.10 Pourquoi un système ne peut être sûr à 100% ....................................................................... 12
1.11 Critères de sécurité et fonctions .............................................................................................. 12
1.11.1 Confidentialité ............................................................................................................... 14
1.11.2 Intégrité ........................................................................................................................... 14
1.11.2.1 Les conséquences lors de la perte d’intégrité ............................................. 15
1.11.3 Disponibilité.................................................................................................................... 16
1.11.4 Identification et authentification .................................................................................. 17
1.11.5 Non-répudiation ............................................................................................................. 17
1.12 Conclusion ................................................................................................................................. 19

3

La Sécurité Informatique


Dans ce chapitre, nous allons donner la définition de la sécurité informatique, puis ces
différentes techniques et ces domaines d’application. Nous définissons la vulnérabilité du
système, ainsi son incertitude, en dernier lieu nous définirons les propriétés primordiales de la
sécurité informatique : disponibilité, confidentialité et intégrité. Finalement nous terminerons
par une conclusion.
1.1 Introduction
Avec le développement de l'utilisation d'Internet, de plus en plus d'entreprises ouvrent leur
système d'information à leurs partenaires ou à leurs fournisseurs, il est donc essentiel de
connaître les ressources de l'entreprise à protéger et de maîtriser le contrôle d'accès et les
droits des utilisateurs du système d'information. Il en va de même lors de l'ouverture de
l'accès de l'entreprise sur Internet.
Par ailleurs, avec le nomadisme, consistant à permettre aux personnels de se connecter au
système d'information à partir de n'importe quel endroit, les personnels sont amenés à «
transporter » une partie du système d'information hors de l'infrastructure sécurisée de
l'entreprise.
De plus, l’accès à une machine distante permis par une connexion réseau, tel le réseau
d’Internet, qui facilite le travail de cette population malveillante et permet de nouveaux types
d’attaque vis-à-vis de la sécurité des systèmes. La considérable augmentation de l’utilisation
de l’Internet a donc multiplié également les possibilités d’attaque, ainsi que les motivations
des personnes malveillantes : vol d'information, d'argent, d'identité, dénis de service ou encore
défiguration de site Web... La liste n'est pas exhaustive [1].
1.2 Terminologie de la sécurité informatique
La sécurité informatique utilise un vocabulaire bien défini que nous utilisons dans nos
chapitres :
Risque : Le risque en termes de sécurité est généralement caractérisé par l'équation
suivante :
Menace x Vulnérabilité
Risque=
Contre-mesure
Les vulnérabilités : ce sont les failles de sécurité dans un ou plusieurs systèmes. Tout
système vu dans sa globalité présente des vulnérabilités, qui peuvent être exploitables ou
non.

4

La Sécurité Informatique

Les attaques : elles représentent les moyens d'exploiter une vulnérabilité. Il peut y avoir
plusieurs attaques pour une même vulnérabilité mais toutes les vulnérabilités ne sont pas
exploitables.
Les contre-mesures : ce sont les procédures ou techniques permettant de résoudre une
vulnérabilité ou d’être contre une attaque spécifique (dans cas ou il peut exister d'autres
attaques sur la même vulnérabilité).
Les menaces : ce sont des adversaires déterminés capables de monter une attaque
exploitant une vulnérabilité, les menaces mettant en danger la sécurité du système peuvent
être aussi bien l’origine externe ou interne [2].
L’Intrusion dans un système informatique a généralement pour but la réalisation d’une
menace et est donc une attaque. Les conséquences peuvent être catastrophiques : vol,
fraude, incident diplomatique, chantage…
L’information sensible : est une information ou une connaissance qui, si elle est révélée
à des personnes mal intentionnées, peut entrainer la perte d'un avantage ou une
dégradation du niveau de sécurité.
1.3 Historique
Certaines histoires d'intrusions sont bien connues, elles ont été relayées par les médias, et font
aujourd'hui partie de la légende du piratage informatique. Quelques faits :
• En 1986, de nombreux ordinateurs du gouvernement U.S. ont été infiltrés par des
pirates Ouest Allemands enrôlés par le KGB. « Chris Stoll », l'administrateur système
qui découvrit les faits, en a tiré un livre devenu désormais un classique: « The
Coockoo's Egg » (1).
• En 1988, l'Internet Worm (ver), un programme qui s'auto- reproduisait, contamina le
système informatique académique de tout le pays.
• En 1994, un ingénieur de MCI communication a été inculpé pour avoir intercepté
60.000 numéros de cartes téléphoniques depuis un central téléphonique.
• En 1995, « Kevin Mitnick », 31 ans, a été arrêté après une longue carrière de
délinquant informatique, comprenant le vol de 20.000 numéros de cartes de crédits, en
pénétrant des ordinateurs de Pacific Bell, Digital Equipment Corporation et en
détournant pour environ 1 million de dollars d'informations volées.

(1) : Suivi d'un espion dans le dédale des Ordinateurs espionnages est un livre a été écrit en 1989 par Clifford
Stoll. Il est son compte à la première personne de la chasse pour un pirate informatique qui s'était introduit dans
un ordinateur au LBL (Lawrence Berkeley National Laboratory).

5

La Sécurité Informatique


• Un individu de 28 ans a été arrête en juin 2007 pour avoir lancé un virus ayant infecté
115000 téléphones portables.
• Un internaute a été interpellé pour avoir pénétré les sites du pentagone et de la Nasa, a
la recherche d’informations sur les ovnis.
Cependant, aussi inquiétantes que puissent être ces histoires, elles ne représentent qu'une
infime partie du problème. Accompagnant la croissance du nombre de machines
interconnectées dans Internet et la conscience dans le grand public du développement des
"Autoroutes de l'Information", le nombre d'intrusions explose littéralement. La nécessité
d’une protection efficace s’est donc naturellement imposée.
1.4 Définition de la sécurité informatique
1.4.1 Définition de base
1.4.1.1 Définition 1
La sécurité informatique c'est l'ensemble des moyens mis en œuvre pour minimiser la
vulnérabilité d'un système contre des menaces accidentelles ou intentionnelles.
1.4.1.2 Définition 2
La sécurité informatique est l'ensemble des techniques qui assurent que les ressources du
système d'information (matérielles ou logicielles) d'une organisation sont utilisées uniquement
dans le cadre où il est prévu qu'elles le soient.
1.4.1.3 Définition 3
La sécurité informatique est l'ensemble des moyens techniques, organisationnels, juridiques et
humains nécessaires et mis en place pour conserver, rétablir, et garantir la sécurité des
systèmes informatiques. Elle est intrinsèquement liée à la sécurité de l'information et des
systèmes d'information.
1.4.2 Compléments de définition
En anglais : deux termes différents :
a) Sécurité = '' Safety'' : protection de systèmes informatiques contre les accidents dus à
l'environnement, les défauts du système.
Domaine d'élection : les systèmes informatiques contrôlant des procédés temps réels et
mettant en danger des vies humaines (transports, énergies...).
b) Sécurité = « Security » : Protection des systèmes informatiques contre des actions
malveillantes intentionnelles.
1.4.3 Domaine d’élection : les systèmes informatiques réalisant des traitements sensibles ou

6

La Sécurité Informatique


comprenant des données sensibles.
1.5 Les objectifs de la sécurité informatique
La sécurité informatique a plusieurs objectifs, bien sûr liés aux types de menaces ainsi qu'aux
types de ressources, etc. Néanmoins, les points principaux sont les suivants :
• empêcher la divulgation non-autorisée de données
• empêcher la modification non-autorisée de données
• empêcher l'utilisation non-autorisée de ressources réseau ou informatiques de façon
générale
1.6 Les techniques de la sécurité informatique
Les techniques de la sécurité informatique se divisent comme suit :
• analyse de risques ;
• politique de sécurité ;
• techniques de sécurisation.


Techniques de la sécurité



A nalyse de risques
Politique de sécurité
Techniques de sécurisation
Figure 1.1 : Les techniques de la sécurité
Cette figure 1.1 englobe les différentes techniques de la sécurité.
1.6.1 Analyse de risques
Dans [3], L'analyse des risques consiste à répertorier les différents risques encourus, d'estimer
leur probabilité et enfin d'étudier leur impact.
La meilleure approche pour analyser l'impact d'une menace consiste à estimer le coût des
dommages qu'elle causerait (par exemple attaque sur un serveur ou détérioration de données
vitales pour l'entreprise).
Sur cette base, il peut être intéressant de dresser un tableau des risques et de leur potentialité,
c'est-à-dire leur probabilité de se produire, en leur affectant des niveaux échelonné selon un
barème à définir, par exemple :

7

La Sécurité Informatique


• Sans objet (ou improbable) : la menace n'a pas lieu d'être ;
• Faible : la menace a peu de chance de se produire ;
• Moyenne : la menace est réelle ;
• Haute : la menace a de grandes chances de se produire.
1.6.2 Politique de sécurité
Le besoin de politiques de sécurité pour les systèmes d’information est apparu dès les
premières études sur les problématiques de confidentialité et d’intégrité. Elles font partie
intégrante des critères d’évaluation de la sécurité, tant au niveau international dans le TCSEC
[4], qu’au niveau européen dans ITSEC [5].
La sécurité des systèmes informatiques se cantonne généralement à garantir les droits d'accès
aux données et ressources d'un système en mettant en place des mécanismes d'authentification
et de contrôle permettant d'assurer que les utilisateurs des dites ressources possèdent
uniquement les droits qui leur ont été octroyés.
Elle doit toutefois être étudiée de telle manière à ne pas empêcher les utilisateurs de
développer les usages qui leur sont nécessaires, et de faire en sorte qu'ils puissent utiliser le
système d'information en toute confiance.
C'est la raison pour laquelle nous pensons qu’il est nécessaire de définir dans un premier
temps une politique de sécurité, dont la mise en œuvre se fait selon les quatre étapes
suivantes :
1- Identifier les besoins en terme de sécurité, les risques informatiques pesant sur l'entreprise
et leurs éventuelles conséquences ;
Cette phase consiste dans un premier temps à faire l'inventaire du système d'information,
notamment pour les éléments suivants :
• Personnes et fonctions ;
• Matériels, serveurs et les services qu'ils délivrent ;
• Cartographie du réseau (plan d'adressage, topologie physique, topologie logique, etc.)
• Liste des noms de domaine de l'entreprise ;
• Infrastructure de communication (routeurs, commutateurs, etc.) ;
• Données sensibles.
2- Elaborer des règles et des procédures à mettre en œuvre dans les différents services de
l'organisation pour les risques identifiés ;
3- Surveiller et détecter les vulnérabilités du système d'information et se tenir informé des
failles sur les applications et matériels utilisés ;

8

La Sécurité Informatique


4- Définir les actions à entreprendre et les personnes à contacter en cas de détection d'une
menace ;

1.6.3 Techniques de sécurisation
Elles assurent la disponibilité (les services et les informations doivent être accessibles aux
personnes autorisées quand elles en ont besoin et dans les délais requis), l'intégrité (les
services et les informations ne peuvent être modifiés que par les personnes autorisées), et la
confidentialité (l'information est accessible uniquement à ceux qui y ont droit).
Les techniques de sécurisation d'un système incluent :
• Audit(2) de vulnérabilités, essais de pénétration ;
• Sécurité des données: chiffrement, authentification, contrôle d'accès ;
• Sécurité du réseau: pare-feu, IDS ;
• Surveillance des informations de sécurité ;
• Éducation des utilisateurs ;
• Plan de reprise des activités.
1.7 Quelles sont les clés de la sécurité de l'information ?
• Admettre que toute entreprise possède des informations sensibles à protéger.
• Faire l'inventaire des risques encourus en la matière et de leurs conséquences
(financières, juridiques...).
• Identifier les menaces potentielles.
• Constituer un réseau de fournisseurs de confiance pour ceux qui doivent partager des
informations sensibles.
• Classifier les informations en fonction des préjudices potentiels et des risques
acceptables.
• Mettre en place des moyens de protection adéquats.
• Former des personnes responsables de l'application des mesures de sécurité.
• Sensibiliser le personnel et les fournisseurs à la valeur des informations stratégiques.
• Déployer un système d'enregistrement des dysfonctionnements (même mineurs).

(2) : études des fichiers de log pour repérer des anomalies


9

La Sécurité Informatique


• Porter plainte en cas d'agression.
• Elaborer des plans de crise au cas où... (Plan de Reprise d'Activité)
• Evaluer régulièrement le dispositif mis en place (Audit).
1.8 Les domaines d'application de la sécurité informatique
L'informatique professionnelle peut être vue comme un simple outil au profit de la
performance de l'entreprise. Ainsi, l'informatique est présente dans la quasi-totalité des
secteurs (banque, assurances, industrie, services, etc.) mais se présente généralement selon
quatre domaines d'application distincts :
1.8.1 La sécurité physique
• Maîtrise de l’environnement des bâtiments et des infrastructures, la sécurité des
installations ;
• Que faire en cas d’indisponibilité des installations, comment organiser le repli des
activités ;
• Le contrôle d’accès physique, la sécurité incendie et dégâts des eaux, la gestion des
alarmes, la protection des immeubles.
1.8.2 La sécurité de la production
• Exploitation informatique et sécurité : comment mettre et suivre l’application des
procédures sécurité, comment gérer les prestations de services et les télé-interventions.
• Mouvements de données : sauvegardes, archivage, miroirs, clusters. Comment faire
face aux besoins de sécurité et à l’augmentation des volumes. Comment maîtriser
l’inflation permanente des besoins des utilisateurs.
1.8.3 Les attaques, la protection des applications et des données
• Les attaques réseaux, Internet, infrastructure, attaques sur les sites et la messagerie
(spam, phishing, etc.), les virus et les tendances des attaques réseaux.
• Les principales techniques de protection (sans fil, firewalls, adressage, DMZ, serveurs
proxy, solutions antivirus, etc.). Comment impliquer les utilisateurs dans l’élaboration
et la mise en œuvre des modes opératoires.
• Les techniques d’authentification, les mots de passe statiques et dynamiques, les accès
sécurisés, les clés USB. L’objectif SSO.

10

La
L S
éc
é ur
u i
r té I
n
I f
n or
o ma
m t
a iq
i ue
u


1.8.4 Les
e té
t l
é éc
é o
c ms
m , la sécu
c ri
r té
t
é sans-fil, les accès aux données
• Accès distants, SSL, VP
V N
P , éléments de synthèse et de co
c mpré
r h
é en
e sion : les limites
e des
e
solutions pure
r m
e en
e t tec
e h
c niques
e .
• La
L mobilité
é : Bl
B uet
e ooth, Wi-Fi, GPRS, 3G, et
e c.
c En
E jeu
e x et
e ri
r sques
e de
e la
co
c mmunica
c t
a ion san
a s fi
f l. Bo
B rn
r es
e Wi-Fi
F sau
a vage
g s
e : les
e ri
r sques
e pour
r l’e
’ n
e trep
e rise.
e
• Le
L s
e ac
a cè
c s
è Web
e : ch
c iff
f rem
e en
e t SSL et
e cer
e t
r ifi
f ca
c t
a s. Le
L s
e acc
c ès
è Web
e à la
a mes
e sag
a er
e i
r e :
pri
r nci
c pau
a x ri
r sques
e . Le
L s
e nouvel
e les
e fo
f rm
r es
e de
e la
a co
c mmunica
c t
a ion et
e les
e ri
r sques
e de
e la
a
mobilité.
1.9 Pourquoi les système
m s
e sont-ils vulnérables?
• La
L
a séc
é u
c ri
r té
é es
e t ch
c ère
r
e et
e diff
f i
f ci
c le.
e Le
L s
e organ
a isat
a ions n’o
’ nt pas
a de
e budge
g t
e pour
r ça
ç .
a
• La
L
a séc
é u
c ri
r té
é ne
e peu
e t êt
ê re
e sûre
r
e à
à 100%,
% el
e le
e es
e t mêm
ê e
e souven
e t inef
e f
f i
f cac
a e.
e
• La
L
a politique
e de
e séc
é u
c ri
r té
é est co
c mplex
e e
e et
e bas
a ée
é
e sur
r des
e juge
g m
e en
e ts humai
a ns.
• Le
L s
e orga
g n
a isat
a ions ac
a ce
c p
e ten
e t de courir le risque, la sécuri
r té
é n’es
e t pas
a une
e pri
r ori
r té.
é
• De
e nouvel
e les
e tec
e h
c nologi
g es (e
( t
e donc
c vulnér
é ab
a ilités
é )
) ém
é er
e ge
g n
e t en
e per
e m
r an
a en
e ce
c .
• Le
L s
e sys
y tèm
è es
e de
e sécu
c ri
r té
é sont fa
f i
a ts, gé
g ré
r s
é et
e co
c nfi
f guré
r s
é par
a
r des
e hommes
e .
• IlI n’ex
e iste
e pas
a d’i
’ nfr
f a
r s
a tru
r ct
c ure
r
e pour
r les
e cl
c ef
e s
f et
e au
a tre
r s
e él
é ém
é en
e ts de
e cr
c yp
y togr
g ap
a hie.
e
• L’
L ét
é at
a inter
e d
r it la
a cr
c yp
y togr
g ap
a hie
e dan
a s ce
c rt
r ai
a ns ca
c s
a (e
( x
e port
r at
a ion, par
a
r ex
e em
e ple)
e
) dan
a s
ce
c r
e t
r ai
a ns pays
y , ce
c
e qui empêc
ê h
c e
e le
e cr
c yp
y tage
e sys
y tém
é at
a ique
e au
a nivea
e u
a du sys
y tèm
è e
d’exploitation.

Figure 1.2 : Les
e ca
c uses
e de
e vulnér
é a
r bilité
t
é des
e systè
t me
m s
e d’i
’ nform
r a
m ti
t on
Cette figure 1.2 nous démontre
r
e que
e les
e sys
y tèm
è es
e sont vulnér
é a
r b
a les
e .

11

La Sécurité Informatique


1.10 Pourquoi un système ne peut être sûr à 100%
Il est impossible de garantir la sécurité totale d’un système pour les raisons suivantes :
• Les bugs(3) dans les programmes courants et les systèmes d’exploitation sont
nombreux.
• La cryptographie a ses faiblesses : les mots de passe peuvent être cassés.
• Même un système fiable peut être attaqué par des personnes abusant de leurs droits.
• Plus les mécanismes de sécurité sont stricts, moins ils sont efficaces.
• On peut s’attaquer aux systèmes de sécurité eux-mêmes.
1.11 Critères de sécurité et fonctions
La sécurité d’un système informatique est considérée comme la combinaison de trois
propriétés [6] : la confidentialité, l’intégrité, et la disponibilité de l’information.
Notons que ces trois propriétés se rapportent à l’information, et le terme d’information doit
être pris ici dans son sens le plus large, couvrant non seulement les données et les
programmes, mais aussi les flux d’information, les traitements, et la connaissance de
l’existence de données, de programmes, de traitements, de communications. Cette notion
d’information doit aller jusqu’à couvrir le système informatique lui-même, dont parfois
l’existence doit être tenue secrète (confidentialité). Pour être plus précis, il convient de
distinguer « informations » et «méta-informations», les informations correspondent à des
données identifiées alors que les méta-informations correspondent à des informations
indirectes reliées aux informations ou aux services. Bien évidemment, ce qui est méta-
information à un niveau d’abstraction donné (par exemple, une application) peut être une
information réelle à un niveau plus bas (par exemple, le système d’exploitation).
Donnons quelques exemples de méta-informations :
• l’instant de délivrance d’un service, ou de la création, modification ou destruction
d’un élément d’information,
• l’identité de la personne qui a réalisé une opération, le créateur d’un élément
d’information,
• l’auteur d’un document, l’expéditeur ou le récepteur d’un message,
• l’emplacement ou l’adresse d’un élément d’information, d’une entité ou d’un
dispositif de communication,

(3) : est un défaut de conception d'un programme informatique à l'origine d'un dysfonctionnement.

12

La Sécurité Informatique


• l’existence d’un élément d’information ou d’un service,
• l’existence d’un transfert d’information, d’un canal de communication, ou d’un
message,
• l’occurrence d’une opération,
• le niveau de sensibilité d’un élément d’information, ou d’une méta-information,
• la certitude ou le niveau de crédibilité d’un élément d’information ou d’une méta-
information, etc.
L’Assurance de la sécurité d’un système consiste à garantir la conservation d’un certain
nombre de propriétés de sécurité définissant les caractéristiques de confidentialité, d’intégrité,
et de disponibilité qui doivent être maintenues dans le système. Ceci implique d’empêcher la
réalisation d’opérations illégitimes contribuant à mettre en défaut ces propriétés, mais aussi de
garantir la possibilité de réaliser des opérations légitimes dans le système. Ces propriétés font
partie de la politique de sécurité du système. Assurer la sécurité du système, c’est donc faire
en sorte que les propriétés de sécurité soient toujours vérifiées.
À ces trois critères s’ajoutent ceux qui permettent de prouver l’identité des entités (notion
d’authentification) et ceux qui indiquent que des actions ou événements ont bien eu lieu
(notions de non-répudiation, d’imputabilité voire de traçabilité) (figure 1.3).


Confidentialité



Disponibilité

Intégrité

Les attributs de

la sécurité


Authenticité
Non- répudiation

Figure 1.3 : Les attributs de sécurité.
Cette figure 1.3 nous démontre les critères primaires et secondaires de la sécurité
informatique.


13

La Sécurité Informatique


1.11.1 Confidentialité (confidentiality)
La confidentialité peut être définie comme la propriété d’une information de ne pas être
révélée à des utilisateurs non autorisés à la connaître. Assurer la confidentialité, c’est faire en
sorte que les informations soient inaccessibles ou incompréhensibles pour des utilisateurs non
désignés comme autorisés à y accéder [7]. Ceci correspond à empêcher un utilisateur de lire
une information confidentielle qu’il n’est pas autorisé à connaître mais aussi à empêcher un
utilisateur autorisé à lire une information de la divulguer à d’autres utilisateurs non autorisés à
y accéder. Garantir la confidentialité revient à assurer que tous les canaux d’informations sont
sécurisés, c’est-à-dire que tous les chemins que peut prendre l’information pour circuler dans
le système ou vers l’extérieur sont contrôlés. Ceci entraîne des contraintes fortes et des coûts
souvent incompatibles avec les besoins réels ; dans la plupart des cas, on ne s’occupera que de
sécuriser un certain nombre de ces canaux.
La confidentialité des informations peut être mise en défaut par des fautes intentionnelles
mais aussi par des fautes accidentelles. Un exemple de divulgation d’informations par faute
accidentelle est le cas d’un utilisateur qui se trompe dans la destination du message
électronique et envoie une information sensible à tout le personnel de son entreprise alors
qu’il voulait juste l’envoyer à une personne de confiance.
1.11.2 Intégrité (integrity)
Dans [8], L’intégrité de l’information est la propriété qu’elle soit « correcte », c’est-à-dire
qu’elle reflète la réalité, tout le temps. Cela signifie que le système informatique doit
permettre les actions autorisées, forcer les actions obligatoires et empêcher les actions
malveillantes afin de garantir l’intégrité des informations stockées dans ce système. En
particulier, il doit:
• forcer la création d’une information devant être créée,
• permettre la création autorisée de l’information,
• permettre une modification autorisée de l’information,
• empêcher une modification indue de l’information, c’est-à-dire une modification par
des utilisateurs non autorisés ou une modification incorrecte par des utilisateurs
autorisés,
• faire en sorte qu’aucun utilisateur ne puisse empêcher la modification légitime de
l’information ; par exemple, empêcher la mise à jour périodique d’un compteur de
temps serait une atteinte contre l’intégrité.

14

La Sécurité Informatique


Pour assurer cette propriété, le système doit mettre en œuvre des mécanismes garantissant la
création légitime de l’information, des mécanismes vérifiant que les mises à jour effectuées
sont autorisées et valides, des mécanismes garantissant la réalisation des mises à jour devant
être effectuées ainsi qu’éventuellement des mécanismes vérifiant la correspondance entre
l’information et ce qu’elle représente.
Cette définition peut être interprétée dans un sens très général. En particulier, des opérations
non autorisées peuvent affecter aussi bien des parties physiques du système que des parties
logiques. Le premier type d’altération consiste à modifier un composant physique, par
exemple la modification d’une carte à puce par faisceau ionique. Nous nous intéressons tout
particulièrement aux altérations qui portent sur les parties logiques du système, c’est-à-dire les
programmes et les informations. Ainsi définie, l’intégrité des informations peut être mise en
défaut par des fautes intentionnelles mais aussi par des fautes accidentelles. Dans le cadre des
fautes intentionnelles, il est nécessaire d’empêcher toute altération non autorisée de
l’information. De plus, même si un utilisateur est autorisé à modifier une donnée, il faut
empêcher les abus de pouvoir, c’est-à-dire empêché que cet utilisateur, par exemple un
administrateur système, ne profite de ses droits pour altérer une information de manière
inappropriée. Dans le cadre des fautes accidentelles, on doit s’assurer que chaque programme
se comporte de manière correcte, c’est-à-dire conformément aux fonctions qu’il est censé
remplir, y compris dans ses interactions avec les autres processus. Cela revient à dire qu’il
doit être suffisamment fiable pour qu’on puisse assurer qu’il n’effectuera pas une action non
conforme au bon fonctionnement du système.
Une atteinte contre l’intégrité vise, soit à introduire de fausses informations soit, à provoquer
des erreurs en modifiant ou en détruisant l’information, pour que le service délivré par le
système produise un bénéfice pour l’attaquant, au détriment des utilisateurs autorisés. C’est
typiquement le cas des fraudes informatiques, où l’attaquant essayera de faire en sorte que les
erreurs qu’il introduit ne soient pas détectables et que les défaillances qui en résultent ne
soient pas identifiables.
1.11.2.1 Les conséquences lors de la perte d’intégrité
Dans [9], l’intégrité peut être quantifié selon une échelle de besoins de sécurité :
• Perte d'intégrité sans conséquence : Le sinistre ne risque pas de provoquer une gêne
notable dans le fonctionnement ou les capacités de l'organisme. Ex : aucune
vérification.

15

La Sécurité Informatique


• Perte d'intégrité entraînant des gênes de fonctionnement : Susceptible de provoquer
une diminution des capacités de l'organisme. Ex : vérification des données, sans
validation : des fautes d'orthographe sur une page web nuisent à l'image de marque du
laboratoire
• Perte d'intégrité entraînant des conséquences dommageables : Susceptible d'amoindrir
les capacités de l'organisme, avec des conséquences telles que des pertes financières,
sanctions administratives ou réorganisation Ex : données qui sont validées et
contrôlées par des moyens techniques ou humains.
• Perte d'intégrité entraînant des conséquences graves : Susceptible de provoquer une
modification importante dans les structures et la capacité de l'organisme comme la
révocation de dirigeants, la restructuration de l'organisme, des pertes financières. Ex :
données avec au moins deux niveaux de validation et de contrôle différents
(techniques ou humains).
1.11.3 Disponibilité (availability)
La disponibilité est la propriété d’une information d’être accessible lorsqu’un utilisateur
autorisé en a besoin. Cela signifie que le système informatique doit :
• fournir l’accès à l’information pour que les utilisateurs autorisés puissent la lire ou la
modifier.
• faire en sorte qu’aucun utilisateur ne puisse empêcher les utilisateurs autorisés
d’accéder à l’information.
La disponibilité implique l’intégrité, puisqu’il ne servirait à rien de rendre accessible une
information fausse. La disponibilité implique également des contraintes plus ou moins
précises sur le temps de réponse du système. La propriété de disponibilité s’applique aussi au
service fourni par le système informatique.
L’accès au système peut être interrompu par des fautes accidentelles : par exemple, une faute
de programmation dans une application ou bien un événement extérieur au système (par
exemple : coupure d’électricité, incendie ou tremblement de terre). Il peut également être
interrompu par des fautes intentionnelles, par exemple, un déni de service qui a pour but
d’empêcher le système de remplir le service approprié. Ces fautes correspondent à une
destruction volontaire, que ce soit du matériel, des données, des messages, des moyens de
communication, ou des processus de traitement, afin d’empêcher le système de fournir le
service attendu.

16

La Sécurité Informatique


Comme l’intégrité, la disponibilité est une propriété relative aux fautes accidentelles et
intentionnelles. Cependant, les moyens pour assurer cette propriété peuvent être différents
pour les deux classes de fautes. La disponibilité est souvent négligée dans la conception des
systèmes critiques vis-à-vis de la sécurité et quand elle est prise en compte, les fautes
intentionnelles sont généralement les seules classes de fautes prises en considération. Or du
point de vue de l’utilisateur, ce ne sont pas les fautes qui sont perçues, mais bien les
défaillances qui en résultent. Il est donc absolument nécessaire de tolérer ou de prévenir à la
fois les fautes accidentelles et les fautes intentionnelles si l’on veut assurer la disponibilité
d’un système. La disponibilité n’a pas été le souci principal de la communauté de la recherche
en sécurité, puisque l’accent était principalement mis soit sur la confidentialité dans le
domaine militaire soit sur l’intégrité dans le domaine financier.
1.11.4 Identification et authentification (identification and authentication)
Identifier l’auteur présumé d’un tableau signé est une chose, s’assurer que le tableau est
authentique en est une autre. Il en est de même en informatique où des procédures
d’identification et d’authentification peuvent être mises en œuvre pour contribuer à réaliser
des procédures de contrôle d’accès et des mesures de sécurité assurant:
• la confidentialité et l’intégrité des données: seuls les ayants droit identifiés et
authentifiés peuvent accéder aux ressources (contrôle d’accès) et les modifier s’ils sont
habiles à le faire.
• la non-répudiation et l’imputabilité : seules les entités identifiées et authentifiées ont
pu réaliser une certaine action (preuve de l’origine d’un message ou d’une transaction,
preuve de la destination d’un message…).
Un nom associé à des caractéristiques identifie une entité: individu, ordinateur, programme,
document, etc. L’identification est la reconnaissance de cette entité.
L’authentification permet de vérifier l’identité annoncée et de s’assurer du non usurpation de
l’identité d’une entité. Pour cela, l’entité devra produire une information spécifique telle que
par exemple un mot de passe (un code, un mot de passe, une empreinte biométrique, etc.).
Tous les mécanismes de contrôle d’accès logique aux ressources informatiques nécessitent de
gérer l’identification et l’authentification des entités.
1.11.5 Non-répudiation (non-repudiation)
La non-répudiation est le fait de ne pouvoir nier ou rejeter qu’un événement (action,
transaction) a eu lieu. À ce critère de sécurité sont associées les notions d’imputabilité, de
traçabilité et éventuellement d’adaptabilité.

17

La Sécurité Informatique


L’imputabilité (accountability) se définit par l’attribution d’une action (un événement) à une
entité déterminée (ressource, personne). L’imputabilité est liée à la notion de responsabilité.
Elle peut être réalisée par un ensemble de mesures garantissant l’enregistrement fiable
d’informations pertinentes par rapport à une entité et à un événement.


Exemple de la question de la part

De l’utilisateur
De fournisseur de
Domaine
Problèmes potentiels
externe
service et
d’informations
Intégrité
L'information reçue est-elle identique à
Modification accidentelle ou
l'assurance que celle émise? Mes fichiers sont-ils
intentionnelle de
l'information
corrompus? L'information est-elle
l'information
stockée ou
fiable?
hébergée ou des transactions
transmise n'est
électroniques
pas altérée
Authentification Le serveur est-il
L'utilisateur est-il
Usurpation d'identité
détermination
réellement celui
bien celui qu'il
de
qu'il dit être?
prétend être?
l'identité de
l'interlocuteur
Confidentialité
L'information n'est-elle connue que de
Détournement de
la connaissance l'émetteur et du récepteur?
l'information,
de
L'information stockée est-elle
appropriation non autorisée
l'information
accessible uniquement aux personnes
d'informations
par un
autorisées?
groupe restreint
de
personnes ou de
systèmes
Non
Le fournisseur de
L'utilisateur
Nier avoir passé une
répudiation
services peut-il
peut-il
commande
protection
faussement
faussement
électronique ou avoir effectué
contre la
prétendre qu'il n'a
prétendre
un achat
négation d'une
pas reçu ou
qu'il n'a pas
action
effectué la
effectué une
accomplie
transaction?
transaction?
Tableau 1.1 : Les domaines relevant de la sécurité
Après cette étude nous dressons le tableau 1.1 ci-dessus qui présente une synthèse des
problèmes potentiels dans les différents domaines de la sécurité informatique.


18

La Sécurité Informatique


1.12 Conclusion
Dans ce chapitre, nous avons détaillé les différentes propriétés de la sécurité qui permettent
d’assurer la sécurité d’un système. Ces propriétés sont divisées en deux classes distinctes
selon leurs mis en œuvre. L’une est la classe primaire : intégrité, confidentialité et
disponibilité. L’autre est secondaire : authenticité et non-répudiation…etc.
Ces propriétés se nomment les attributs de sureté de fonctionnement. Les attributs considérés
dépendent des applications auxquelles le système est destiné.
Les attributs précédents peuvent être mis à mal par des entraves. Une entrave à la sureté de
fonctionnement est une circonstance indésirable mais non inattendue. Elle est la cause ou le
résultat de la non-sureté de fonctionnement. Nous en distinguons trois sortes [10] :
• la défaillance : survient lorsque le service délivre dévie de la fonction du système,
• l’erreur : partie de l’état de système susceptible d’entrainer une défaillance,
• la faute : cause adjugée ou supposée de l’erreur.
Ces fautes s’enchainent pour former une chaine fondamentale en sureté de fonctionnement :
faute → erreur → défaillance → faute etc.
Pour minimiser l’impact de ces entraves sur les attributs retenus d’un système, nous disposons
de moyens. Ce sont des méthodes et des techniques permettant de conforter les utilisateurs
dans le bon accomplissement de la fonction du système. Elles peuvent être utilisées
conjointement pour le développement d’un système sur de fonctionnement. Elles sont classées
en quatre moyens :
• la prévention : empêche l’occurrence ou l’introduction de fautes,
• la tolérance : fournit un service qui remplit la fonction du système en dépit des fautes,
• l’élimination : réduit la présence (nombre, sévérité) des fautes,
• la prévision : estime la présence, la création et les conséquences des fautes.

Dans le deuxième chapitre, nous allons étudier les différentes méthodes d’évaluation de la
sécurité qui ont apparu jusqu'a maintenant.






19

Chapitre 2
Evaluation de La Sécurité
Informatique
Sommaire
2.1 Introduction ................................................................................................................................... 21
2.2 Sens de la mesure ......................................................................................................................... 21
2.3 Premiers besoins, premières approches : l'évaluation qualitative .......................................... 23
2.3.1 Les Critères Communs et normes ISO ............................................................................ 23
2.3.1.1 Le livre orange ....................................................................................................... 24
2.3.1.2 Les ITSEC .............................................................................................................. 25
2.3.1.3 Les Critères Communs ......................................................................................... 25
2.3.1.4 Les normes ISO ..................................................................................................... 26
2.3.2 Les méthodes d'analyses de risques ................................................................................. 28
2.3.3 Evaluation quantitatif ......................................................................................................... 29
2.3.3.1 Les mesures quantitatives ................................................................................... 30
2.4 Méthodes d'évaluation en mode opérationnel .......................................................................... 30
2.4.1 Les évaluations expérimentales ........................................................................................ 30
2.4.2 Les évaluations basées sur des modèles .......................................................................... 31
2.4.2.1 Approche du LAAS : graphe des privilèges ...................................................... 31
2.4.2.2 Modèles de scénarios : arbres et graphes d'attaque ........................................... 35
2.5 Evaluation des processus d'attaque et de protection ................................................................ 37
2.5.1 Evaluation issue de la théorie des jeux ............................................................................ 37
2.5.2 Mesures de propagation des vers ...................................................................................... 38
2.6 Conclusion..................................................................................................................................... 39

20

Évaluation de la Sécurité Informatique

Dans ce chapitre, nous allons étudier la problématique de la mesure et l'évaluation dans le
cadre de la sécurité et faisons un panorama de la taxonomie rencontrée dans le contexte
d'évaluation de la sécurité. Enfin, nous présentons les principales approches pour l'évaluation
de la sécurité publiées à ce jour. Notre chapitre se termine par une première introduction à
notre approche.
2.1 Introduction
La sécurité des systèmes d’information, est généralement définie comme la combinaison de
trois propriétés [11] : la confidentialité, l’intégrité et la disponibilité.
Notons que ces définitions qui se rapportent à l’information pourraient tout aussi bien se
rapporter au service fourni aux utilisateurs, comme dans les définitions liées à la sûreté de
fonctionnement [12]. Ainsi la disponibilité peut se définir de façon équivalente comme la
capacité du système informatique à être prêt à délivrer le service.
Les travaux en sûreté de fonctionnement ont conduit à développer des techniques pour estimer
ou mesurer la disponibilité, soit de façon statistique (par exemple, on dira qu’un système est
disponible 99% du temps), soit de façon probabiliste (probabilité qu’à un instant donné, le
système soit prêt à délivrer le service). De telles mesures quantitatives ne sont pas aussi
faciles à définir pour la confidentialité et l’intégrité.
Dans le premier chapitre, Nous avons indiqué que La prévision des fautes qui permet
d’estime la présence, la création et les conséquences des fautes : c’est-a-dire qu’elle a pour
objet l'identification des fautes, erreurs et modes de défaillances potentiels du système. Cette
analyse conduit à un processus d'évaluation de leur l'impact. Dans le cadre de la sécurité,
différents types d'évaluation ont été développés :
• les évaluations qualitatives ou ordinales ;
• les évaluations quantitatives ou probabilistes à base de modèles ;
• les évaluations expérimentales.
Chacun de ces types d'évaluation a pour but de produire des mesures. Dans cette partie de
chapitre 2, nous nous interrogeons sur la définition d'une mesure et sur les différents types de
mesures existants avant de présenter les trois types de mesure dans le contexte de la sécurité.
2.2 Sens de la mesure
Nous nous interrogeons sur le sens de la mesure. « Qu'est-ce qu'une mesure ? » et « Quels
types de mesures existent-ils et qu'est-ce qui les différencie ? » sont les questions que nous
abordons.

21

Évaluation de la Sécurité Informatique

Plusieurs termes peuvent être employés dans le domaine de l'évaluation. La langue française
offre deux vocables possibles : « mesure » et « métrique », alors que la langue anglaise en
possède trois : « measure », « metric » et « measurement ». Cette différence dans le nombre
de termes rend plus obscures les différences entre les notions portées par chacun.
Dans un premier temps, examinons les définitions de ces deux termes dans un dictionnaire de
la langue française [13]. Le terme « mesure » existe en tant que nom alors que celui de
métrique n'existe qu'en tant qu'adjectif. La mesure est définie comme une action permettant
d'évaluer une grandeur d'après son rapport avec une grandeur de même espèce, prise comme
unité et comme référence ; grandeur, dimension ainsi évaluée.
L'adjectif métrique est défini comme qualifiant ce qui est relatif au mètre. Le dictionnaire de
la langue française nous donne des définitions très restrictives qui et indique une utilisation
abusive du terme « métrique » dans la langue française, due à l'usage du nom « metric » dans
la langue anglaise.
Cependant, une définition mathématique de la métrique est donnée dans [14] : la métrique est
une distance entre deux entités. La plus connue des métriques est la distance d'Euclide
(distance minimale entre deux points). Une fonction f est qualifiée de métrique si, x, y, z étant
des entités :

Les auteurs dans [16] associent le terme measurement au procédé visant à acquérir les
données nécessaires à l'élaboration d'une mesure désignée par le terme anglais measure, qui
désigne le résultat final.
Nous avons noté que ces mesures, ou métriques, doivent être rattachées à une échelle pour
avoir une signification exploitable. Il existe plusieurs types d'échelle : les échelles nominales,
les échelles ordinales, les échelles de ratio et les échelles absolues. Ces échelles sont
présentées de la moins contrainte à la plus contrainte. Cependant, plus l’échelle est contrainte,
plus elle possède de propriétés et plus les mesures qui s’y réfèrent sont manipulables d’un
point de vue mathématique. L’échelle nominale est une énumération non ordonnée : on peut
imaginer par exemple classer un jeu de cartes selon les quatre couleurs (pique, cœur, carreau
et trèfle). Une telle échelle permet de classer sans autoriser aucune opération entre les classes
ainsi constituées. L'échelle de ratio apporte la propriété supplémentaire de la division. Par
exemple, le poids, l'âge ou la taille sont basés sur des échelles de ratios : l'intervalle entre les

22

Évaluation de la Sécurité Informatique

unités est constant, mais le rapport entre deux mesures a un sens. Par exemple, un poids de 10
kilogrammes est bien deux fois plus lourd qu'un poids de 5 kilogrammes. A ces quatre
échelles distinguées par [15], l'auteur de [14] ajoute l'échelle absolue, qui correspond à des
quantités sans unités telles que les probabilités. Les auteurs associent à chaque type d'échelles
une fonction mathématique (notée g) traduisant la transformation d'une mesure à une autre.
Ces propriétés sont résumées dans le tableau 2.1.

Echelle nominale
g surjective
Echelle ordinale
g strictement croissante
Echelle d’intervalle
g(x)=ax+b, a>0
Echelle de ratio
g(x)=ax, a>0
Echelle absolue
g(x)=x

Tableau 2.1 : Propriétés mathématiques associées aux échelles
Une mesure se réfère à une échelle et possède, ou non, une unité. Mais une mesure a aussi et
avant tout un objectif : quelle est la réponse que doit fournir l'évaluation ? Une réponse de
type OUI/NON peut suffire à répondre à une question telle que « mon système est-il
suffisamment protégé pour garantir ma politique de sécurité ? ». Mais une réponse plus
poussée peut être exigée. Dans le cadre de la sécurité, une évaluation peut répondre à une
question du type « Je veux respecter des seuils pour la sécurité de mon système. Quels sont
les efforts qui devront être déployés ? », soit une évaluation d'une distance à objectif.
Elle peut également répondre à une question dans le contexte inverse en évaluant les risques à
partir d'une situation donnée : « Mon système possède tels moyens de protection, quels
risques encourt-il vis-à-vis de la sécurité ? ».
De nombreux travaux ont cherché à répondre soit à l'un ou à l'autre de ces deux types de
question. Nous tentons de faire ci-dessus un historique et un panorama significatif des travaux
d'évaluation pour la sécurité. Dans le paragraphe suivant, nous commençons par les premières
approches, motivées par le besoin de sécuriser les systèmes d'informations militaires.
2.3 Premiers besoins, premières approches : l'évaluation qualitative
2.3.1 Les Critères Communs et normes ISO
Les critères d'évaluation représentent une des premières approches déterministes pour
l'évaluation de la sécurité. Ces critères permettent une évaluation ordinale d'un système. Les
premiers critères apparus sont connus sous le terme de "livre orange" présentés ci-dessous.

23

Évaluation de la Sécurité Informatique

2.3.1.1 Le livre orange
Le rapport Trusted Computer Security Evaluation Criteria [16], plus connu sous le nom de
TCSEC ou "livre orange", est devenu en 1985 une norme du département de la défense
Américaine (DoD). Ce document à longtemps été la référence en matière d'évaluation de la
sécurité des systèmes d'information. Les critères offrent une classification à sept niveaux de
sécurité, regroupés en quatre classes A, B, C, D (les niveaux sont A1, B1, B2, B3, C1, C2, D).
D est le niveau le plus faible et A1 le niveau le plus élevé. Quatre familles de critères sont
définies pour chaque niveau ; chacune traite respectivement d'une politique de sécurité : la
politique d'autorisation, de l'audit, de l'assurance et de la documentation. L'évaluation d'un
produit consiste à lui attribuer un des sept niveaux de sécurité. Cette attribution n'aboutit que
si le produit répond à tous les critères du niveau en question. La politique d'autorisation
distingue deux types de politiques, discrétionnaire(4) et obligatoire(5). Par exemple, un
utilisateur sera autorisé à manipuler une information dans le système si le droit en lecture est
positionné sur l'information pour lui (contrôle discrétionnaire) et s'il est habilité à la manipuler
(contrôle obligatoire). Un système classé D est un système ne présentant aucune
caractéristique particulière quant à la sécurité. Les critères permettent l'utilisation d'une
politique discrétionnaire pour les niveaux C1 et C2. Les critères exigent l'utilisation d'une
politique discrétionnaire et d'une politique obligatoire pour les niveaux B1, B2, et B3. Un
système A1 est fonctionnellement équivalent à un système B3 mais est caractérisé par
l'utilisation de méthodes formelles de vérification qui permettent d'assurer que les contrôles
discrétionnaires et obligatoires employés dans le système sont bien à même de protéger les
informations sensibles manipulées par le système. Une documentation détaillée et complète
est nécessaire pour démontrer que le système respecte bien les exigences de sécurité à tous les
stades de la spécification, de la conception et du codage.
Dans le livre orange, la politique obligatoire imposée est la politique de Bell-LaPadula. Cette
politique ne s'intéressant qu'au problème de confidentialité des données, elle ne permet pas de
qualifier l'intégrité et la disponibilité de celles-ci. Ce manque a donc suscité la création de
nouveaux critères dans d'autres pays. Nous citons ci-dessous l'exemple des ITSEC

(4) Dans le cas d'une politique discrétionnaire, les droits d'accès à chaque information sont manipulés librement par le
responsable de l'information (généralement, son propriétaire).
(5) Une politique obligatoire impose des règles incontournables qui s'ajoutent aux règles discrétionnaires. Elle suppose que
les utilisateurs et les objets aient été étiquetés. On dit que les objets possèdent une classification tandis que les utilisateurs
possèdent une habilitation. L'autorisation d'accès est donc basée sur une comparaison entre l'habilitation de l'utilisateur et la
classification de l'objet.

24

Évaluation de la Sécurité Informatique

(Information Technology Security Evaluation Criteria) adoptés par la Communauté
Européenne, mais d'autres pays tels que le Canada avec les CTCPEC (Canadian Trusted
Computer Product Evaluation Criteria) [17] et le Japon ont également élaboré leurs propres
critères d'évaluation. Enfin, les Critères Communs (CC) [18] sont nés de la tentative
d'harmonisation des critères canadiens (CTCPEC), européens (ITSEC) et américains
(TCSEC).
2.3.1.2 Les ITSEC
Les ITSEC sont le résultat de l'harmonisation de travaux réalisés au sein de quatre pays
européens : l'Allemagne, la France, les Pays-Bas et le Royaume-Uni [19]. La différence
essentielle que l'on peut noter entre le livre orange et les ITSEC est la distinction entre
fonctionnalité et assurance. En effet, les ITSEC définissent un certain nombre de classes de
fonctionnalité d'une part et un certain nombre de classes d'assurance d'autre part.
Une classe de fonctionnalité décrit les mécanismes qu'un système doit mettre en œuvre pour
être évalué à ce niveau de fonctionnalité. Une classe d'assurance permet, elle, de décrire
l'ensemble des justifications et preuves qu'un système doit apporter pour montrer qu'il
implémente réellement les fonctionnalités qu'il prétend assurer. Les classes d'assurance sont
au nombre de six (E1 à E6). Parmi les classes de fonctionnalité, on retrouve les classes (F-C1,
F-C2, F-B1, F-B2, F-B3) correspondant aux classes C1 à B3 définies dans les TCSEC [20].
Les ITSEC utilisent le terme cible d'évaluation (Target Of Evaluation ou TOE). Le contenu
d'une TOE comprend : une politique de sécurité, une spécification des fonctions requises
dédiées à la sécurité, une définition des mécanismes de sécurité requis et le niveau
d'évaluation visé. Les ITSEM (Information Technology Security Evaluation Manual) ont été
publiés dans leur première version en 1993. Ils décrivent une méthodologie pour mener les
évaluations relatives aux critères ITSEC [21].
2.3.1.3 Les Critères Communs
Les critères communs (CC), harmonisation des CTCPEC, des ITSEC et des TCSEC,
contiennent deux parties bien séparées comme les ITSEC : fonctionnalité et assurance. De
même que dans les ITSEC, les CC définissent une cible d’évaluation, appelée TOE, qui
désigne le système ou le produit à évaluer, et la cible de sécurité, appelée ST (Security
Target), qui contient les objectifs de sécurité d'une TOE particulière et qui spécifie les
fonctionnalités et les assurances offertes par la TOE afin de remplir ces objectifs. La cible de
sécurité pour une TOE représente la base d'entente entre évaluateurs et développeurs. Une
cible de sécurité peut contenir les exigences d'un ou de plusieurs profils de protection

25

Évaluation de la Sécurité Informatique

prédéfinis. Une des différences entre ITSEC et CC réside dans l'existence de ces profils de
protection qui avaient auparavant été introduits dans les critères fédéraux des Etats-Unis [22].
Un profil de protection définit un ensemble d'exigences de sécurité et d'objectifs,
indépendants d'une quelconque implémentation, pour une catégorie de TOE. L'intérêt des
profils de protection est double : 1) un développeur peut inclure dans une cible de sécurité un
ou plusieurs profils de protection ; 2) un client désirant utiliser un système ou un produit peut
également demander à ce que son système corresponde à un profil de protection particulier,
ceci lui évitant de donner une liste exhaustive de fonctionnalités et assurances qu'il exige du
système ou du produit. Une partie importante des CC est donc consacrée à la présentation
détaillée de profils de protection prédéfinis. Cette notion de profil de protection représente la
volonté américaine qui consiste à préférer évaluer des systèmes qui entrent dans le cadre de
profils connus. Le cas d'un système ne cadrant pas exactement avec un profil connu conduit
simplement à l'élaboration d'un nouveau profil. La tendance européenne serait plutôt de
définir systématiquement une TOE et ses exigences de sécurité et d'évaluer cette TOE sans
s'appuyer nécessairement sur des profils prédéfinis. Les CC tentent de réaliser un compromis
entre ces deux positions.
2.3.1.4 Les normes ISO
La norme ISO 17799 de sécurité a été publiée dans sa première version en 2000.
Une seconde version a été publiée en 2005. Ce document s'adresse tout d'abord aux
responsables de la sécurité et aux directions informatiques quel que soit le secteur d'activité. Il
a pour but de définir des objectifs et des recommandations à propos de la sécurité des
systèmes d'information [23]. Un premier "code de bonnes pratiques", défini par plusieurs
grandes entreprises britanniques (Shell, British Telecom, Midland Bank et Mark&Spencer),
sur la base de leur expérience, est à l'origine de cette norme. Ce premier document est publié
en 1993 par le British Standard Institute. Plusieurs versions de ce document se succèdent
jusqu'au BS 7799:1999, dont la première partie est standardisée en 2000 pour devenir ISO
17799:2000. Elle est révisée par la suite et publiée à nouveau en 2005 sous le nom d’ISO
17799:2005. Elle fournit la matière nécessaire à la bonne gestion de la sécurité au sein de
l'entreprise en abordant les thématiques suivantes [24] :
• la politique de sécurité ;
• l'organisation de la sécurité ;
• la classification et le contrôle des biens ;
• la sécurité et les ressources humaines ;

26

Évaluation de la Sécurité Informatique

• la sécurité physique ;
• la gestion des opérations et des communications ;
• les contrôles d'accès ;
• le développement et la maintenance des systèmes ;
• la gestion de la continuité d'activité ;
• la conformité et la réglementation interne et externe.
Face aux problèmes de sécurité informatique, de nombreuses entreprises cherchent à obtenir
la certification relative à cette norme : en 2005, 25% des entreprises interrogées pour le
Security Survey d'Ernst & Young [25] étaient certifiées ISO 17799 et 30% envisageaient de
l'obtenir.
Dans un nouveau système de numérotation mis en place récemment, cette norme a rejoint la
famille des normes ISO 27000 [26] (dont la première norme est présentée dans le paragraphe
suivant) en étant renommée ISO 27002.
La norme ISO 27001 est issue de la seconde partie de la norme britannique BS 7799 présentée
dans le paragraphe précédent. Sa première et unique version sort en 2005.
La norme ISO 27001 s'intéresse au Service Général du Système d'Information en permettant
des audits internes et une amélioration du système de gestion de la sécurité. En appliquant en
permanence des méthodes d'analyse de risque, incorporées dans le modèle de processus
PDCA (Planifier – Faire – Vérifier – Agir), elle permet un meilleur cadre de gestion qui rend
possible les pratiques de contrôle de la norme ISO 17799:2005.
Outre la norme ISO 27001 décrite ci-dessus et la norme 17799:2005 bientôt rebaptisée 27002,
c'est au moins quatre autres normes qui sont à l'étude. Les contenus de ces normes sont
résumés dans le tableau 2.2 :
ISO 27001
Spécifications pour les systèmes de gestion de la sécurité de l'information,
ancien BS7799-2.
ISO 27002
Actuelle référence du standard ISO 17799:2005.
ISO 27003
Futur standard offrant un guide d'implémentation d'un système de gestion de
la sécurité de l'information.
ISO 27004
Futur standard sur les mesures et métriques destinées à la gestion de la
sécurité des systèmes d'information.
ISO 27005
Futur standard sur la gestion des risques liés à la sécurité de l'information.
ISO 27006
Futur standard donnant des directives pour l'accréditation des organisations
offrant la certification des systèmes de gestion de la sécurité de l'information.

Tableau 2.2 : La famille des normes ISO 27000

27

Évaluation de la Sécurité Informatique

D’autres normes existent déjà ou sont destinées à être publiées (ISO 24760). La thématique de
chacune d'entre elles sera par la suite reprise dans un standard de la famille des ISO 27000. La
norme ISO 13335 (norme en cinq parties publiées entre 1998 et 2004) concerne la gestion de
la sécurité des technologies de l'information et de la communication. Une partie de ce
standard se retrouvera dans l'ISO 27005. La norme ISO 17021 (la première partie a été
publiée en 2006, la seconde est à paraître) contient les principes et les spécifications pour la
compétence, l'objectivité et l'impartialité des audits et des certifications des systèmes de
gestion. Cette thématique sera retrouvée dans l'ISO 27006. Enfin, la norme ISO 24760 est
encore à paraître mais sa thématique sur les techniques pour la sécurité des technologies de
l'information est déjà évoquée dans la norme ISO 27002. La norme ISO 15408 est apparue en
1996 et contient les Critères Communs que nous avons décrits précédemment. On peut
évoquer également la famille des standards ISO 9000 qui sont des normes relatives à la
qualité. Certaines abordent la qualité du logiciel, comme l'ISO 9126:2001.
2.3.2 Les méthodes d'analyses de risques
Il existe de nombreuses méthodes d'analyses de risques, et ce pour de nombreux domaines.
Outre le domaine de la sécurité des systèmes d'information que nous abordons ici, les
domaines de la santé, de l'alimentaire ou encore les domaines industriels ont recours à des
analyses de risques. Bien que ces domaines soient très variés, la démarche générale d'une
analyse de risque peut se résumer dans les trois étapes suivantes :
• Identifier les menaces auxquelles devra faire face le système ou l'organisation (quels
types d'attaquants, mais aussi quels phénomènes physiques : incendie, inondation,
intrusion…) ;
• Identifier les vulnérabilités du système ou de l'organisation face à ces menaces ;
• Estimer les conséquences qui résulteraient de la réalisation des menaces et de
l'exploitation des vulnérabilités.
On qualifie de risque un événement redouté auquel sera attribuée une fréquence de réalisation
et une conséquence [27]. Les risques sont donc évalués à partir d'une estimation de la
fréquence de réalisation des menaces et des conséquences [28].
Il existe plusieurs méthodes d'analyse de risques dédiées aux systèmes d'information.
MARION (Méthodologie d'Analyse de Risques Informatiques Orientés par Niveaux) a été
développée en 1980 par l'Assemblée Plénière des Sociétés d'Assurance Incendie et Risque
Divers. Sa dernière mise à jour date de 1998. MELISA a été développée pour la Délégation

28

Évaluation de la Sécurité Informatique

Générale de l'Armement, mais MELISA et MARION étant relativement anciennes, ces deux
méthodes ne sont plus très utilisées.
Plus récemment, d'autres méthodes ont été développées. MEHARI (Méthode Harmonisée
d'Analyse de Risques), développée par le CLUB de la Sécurité des systèmes d'Information
Français en 1995. Cette méthode a été mise à jour en février 2007. La méthode EBIOS
(Expression des Besoins et Identification des Objectifs de Sécurité), développée par la
Direction Centrale pour la Sécurité des Systèmes d'Information, a vu le jour en 1995.
Enfin, plusieurs méthodes d'analyse de risques ont été développées à l'étranger ou dans le
secteur français privé. Parmi elles, on retrouve Octave (Operationally Critical Threat, Asset,
and Vulnerability Evaluation) développée en 1999 par le Software Engineering Institute
(USA) ou encore SCORE.
Nombre de ces méthodes, comme MEHARI(6), fournissent des mesures telles que l'impact
global d'une attaque. Cependant, ces mesures, sont tantôt appelées quantitatives, tantôt
qualitatives. Dans le paragraphe suivant, nous nous interrogeons sur cette terminologie.
2.3.3 Evaluation quantitatif
Les approches d'évaluation de la sécurité par critères permettent une évaluation de la sécurité
dès la phase de conception et d'implémentation du système. Elles permettent d'inclure des
politiques de sécurité en donnant au concepteur des directives pour assurer certaines
propriétés de sécurité. Cependant, les évaluations fournies par les normes ISO et les méthodes
d'analyse de risques découlent d'un processus long ne permettant pas une évaluation régulière
et un suivi de l'évolution du niveau de sécurité du système. De plus, les mesures résultant de
ces évaluations ne permettent pas de comparer des systèmes entre eux ou le même système à
deux instants d'évaluation différents. Ces mesures ont été définies comme des mesures
qualitatives. Une mesure qualitative ne permet pas de quantifier une distance à un objectif.
Pour ces raisons, des études cherchant à étudier la quantification de la sécurité en mode
opérationnel ont vu le jour. Cependant, il faut se poser la question suivante : où se situe la
frontière entre mesure qualitative et mesure quantitative ? La frontière semble à ce jour
toujours un peu flou. En effet, dans [29], il est défini que, dans le contexte de la sûreté de
fonctionnement, une évaluation ordinale était qualifiée de qualitative et une évaluation
probabiliste de quantitative, alors que les deux types d'évaluation sont qualifiées de
quantitatives dans le contexte de la sécurité.
Cependant, les mesures issues des critères ou des normes ISO sont pourtant citées comme

(6) www.clusif.asso.fr

29

Évaluation de la Sécurité Informatique

étant des mesures qualitatives par de nombreuses approches [27, 30, 31].
Dans [32], l'auteur va même plus loin en affirmant que ce ne sont pas des mesures. La
frontière entre les notions de mesure qualitative et mesure quantitative. Associer ces notions à
des échelles de mesure, présentées au début, permet de ne pas laisser d'ambiguïté.
On peut associer, comme le fait [29] l'échelle ordinale aux mesures qualitatives. Les mesures
se référant aux échelles d'intervalles, de ratio et absolue sont donc des mesures quantitatives.
L'échelle nominale, ne permettant pas l'opération de comparaison, n'apparaît pas
suffisamment contrainte pour être prise en compte dans notre approche.
2.3.3.1 Les mesures quantitatives
On se pose la question suivante : que peut-on mesurer quantitativement lorsqu'on évalue la
sécurité ? En faisant le parallèle avec le domaine de la sûreté de fonctionnement, une quantité
qui apparaît comme étant mesurable est la durée. Les mesures de MTTF (Mean Time To
Failure en anglais) et de MTBF (Mean Time Between Failure en anglais) font partie des plus
utilisées dans le domaine de la sûreté de fonctionnement. Ces mesures sont strictement
quantitatives et basées sur une échelle absolue. Dans [33], l'auteur évoque la quantification de
l'effort de l'attaquant en mettant en parallèle la notion de temps dans le cadre de la sûreté de
fonctionnement et d'effort à fournir par l'attaquant dans le cadre de la sécurité.
Cependant, la compétence de l'attaquant représente dans ce contexte une notion importante.
L'auteur ne précise pas comment il serait possible de l'évaluer de façon quantitative. Mais des
mesures peuvent également values l'efficacité des mécanismes de protection comme par
exemple les IDS (Intrusion Detection Systems), dont plusieurs aspects peuvent êtres évalués
comme le ratio de détection ou le ratio de fausses alarmes.
2.4 Méthodes d'évaluation en mode opérationnel
Il existe dans la littérature deux types d'évaluation conduisant à des mesures quantitatives
pour la sécurité : les mesures issues de l'expérimentation et les mesures issues d'évaluations
basées sur des modèles. Dans ce paragraphe, nous présentons des travaux issus des deux
approches.
2.4.1 Les évaluations expérimentales
Les évaluations expérimentales sont basées sur des données observées. Ces données
observées peuvent être de deux natures :
• les données issues d'une expérimentation sensée reproduire le monde réel ;
• les données issues d'observations réelles.

30

Évaluation de la Sécurité Informatique

Dans [34], l'auteur a conduit une expérience sur 24 étudiants en leur proposant, en binômes,
de mener des attaques sur un système d'information. Les observations qui résultent de cette
expérience ont produit des mesures quantitatives telles que le MTTB (Mean Time To Breach),
ainsi qu'un modèle qualitatif d'évolution des connaissances de l'attaquant.
Cependant, il est à noter que l'échantillon peu important et peu homogène de l'expérience
réduit la portée de ses résultats.
La seconde technique d'évaluation expérimentale consiste à collecter des données issues
d'activités réelles. Pour être ensuite utilisables, ces données doivent être validées en triant les
données réelles des données erronées, et en considérant le manque d'exhaustivité du jeu de
données. Ces erreurs peuvent survenir d'un dysfonctionnement du mécanisme d'observation.
Cette étape est essentielle pour permettre une exploitation de ces données et une production
de résultats qui ne soient pas biaisées.
Dans le cadre de la sécurité, on peut citer les processus de collecte de données grâce aux pots
de miel. Un pot de miel est un système informatique volontairement vulnérable à une ou
plusieurs failles et connecté à un réseau tel qu'Internet de façon à être accessible aux
attaquants [30]. Un tel système n'enregistre donc aucune activité si ce n'est des tentatives
d'attaque ou des tentatives de connexion erronées et accidentelles. Dans [30], les données
analysées furent collectées pendant plus de trois ans dans le cadre du projet Leurré.com [35].
Leur analyse a permis, entre autres, de modéliser la durée des intervalles de temps entre
attaques.
Si ces travaux sont partis de données expérimentales pour obtenir un modèle valide, le
procédé inverse est également utilisé en basant l'évaluation de la sécurité sur des modèles. Ces
travaux sont présentés dans le paragraphe suivant.
2.4.2 Les évaluations basées sur des modèles
Cette section présente plusieurs approches existantes pour l'évaluation des systèmes
d'information.
2.4.2.1 Approche du LAAS : graphe des privilèges
Pour représenter les vulnérabilités présentes dans un système informatique et en évaluer les
conséquences, une méthode générale d'évaluation quantitative de la sécurité basée sur le
graphe des privilèges a été développée au LAAS [27, 36,37].
Cette approche se décompose en trois étapes :

31

Évaluation de la Sécurité Informatique

• Identification des vulnérabilités du système, représentation de ces vulnérabilités sous
la forme d’un graphe des privilèges, et définition des objectifs d’évaluation de la
sécurité à partir de ce graphe ;
• Génération automatique de scénarios d'attaque en minimisant les hypothèses
concernant les stratégies mises en œuvre pour exploiter le graphe des privilèges et
mettre en défaut des objectifs de sécurité ;
• Calcul de mesures quantitatives caractérisant la capacité des systèmes à résister à des
attaques.
L'élaboration du graphe des privilèges à partir des vulnérabilités d'un système se situe durant
la première étape de cette démarche. Un privilège se définit comme un ensemble de droits
qu'un utilisateur, ou qu'un groupe d'utilisateurs, peut posséder sur un objet. Chaque nœud du
graphe représente un ensemble de privilèges. Un arc reliant deux nœuds du graphe indique
qu'un utilisateur possédant le premier ensemble de privilèges peut acquérir le second par
exploitation d'une vulnérabilité. Les vulnérabilités exploitées peuvent êtres dues à des
faiblesses du système mais peuvent aussi représenter des mécanismes propres et nécessaires
au fonctionnement du système, et pour faciliter le travail coopératif entre les utilisateurs.

Figure 2.3 : Exemple de graphe de privilèges

1
X peut deviner le mot de passe d’Y
2
X peut installer un cheval de Troie pour Y
3
X peut exploiter une faille du mailer d’Y
4
Y est un sous-ensemble d’X
5
Y utilise un programme qu’X peut modifier
6
X peut modifier un programme "s-uid" d’Y
7
X est dans le .rhosts d’Y

Tableau 2.3 : Vulnérabilités présentes dans le système [38]

32

Évaluation de la Sécurité Informatique

La figure 2.3 présente un exemple de graphe des privilèges que l’on pourrait construire à
partir de l’observation d’un système Unix comportant plusieurs vulnérabilités.
Chaque numéro sur les arcs représente la méthode utilisée pour l’acquisition de l’ensemble de
privilèges ciblé. Des exemples de vulnérabilités correspondant à la figure 2.3, en considérant
le cas d’un système Unix, sont présentés dans le tableau 2.3 ci-dessus. Dans l’exemple de la
figure 2.3, les nœuds représentent les ensembles de privilèges relatifs à un utilisateur (A :
ensemble de privilèges de l’utilisateur A) ou à un ensemble d’utilisateurs (par exemple, un
groupe dans Unix). Les nœuds (A, B, F) représentent des privilèges d’utilisateurs et
(Xadmin,P) des privilèges de groupes d’utilisateurs. Le nœud insider représente les privilèges
minimaux dont dispose tout utilisateur du système (par exemple, le privilège de se connecter
ou de changer son mot de passe).
Dans un graphe des privilèges, on peut identifier des nœuds que nous appellerons « cible » qui
correspondent à des privilèges que l’on souhaite protéger (par exemple, les privilèges du
super-utilisateur). Ces nœuds représentent les objectifs de sécurité du système. Par ailleurs, on
peut identifier des nœuds appelés « attaquant » qui représente les privilèges d’attaquants
potentiels. Tous les chemins entre un nœud attaquant (par exemple « insider ») et un nœud
cible (par exemple « A ») sont des possibilités pour l’attaquant de mettre en défaut la politique
de sécurité du système. De tels chemins existent dans la plupart des systèmes même s’ils ne
sont pas tous facilement exploitables. Par exemple, tous les mots de passe peuvent être
devinés : certains sont faciles à trouver par des outils parce qu’ils figurent dans un
dictionnaire, alors que d’autres nécessitent plus d’effort et de temps. Ceci est vrai pour toutes
les classes de vulnérabilités : certaines sont facilement exploitables par un attaquant alors que
d’autres nécessitent beaucoup de compétence, ténacité ou chance.
Par ailleurs, une pondération des arcs a été suggérée pour représenter l'effort moyen
nécessaire pour réussir l'attaque correspondante. Pour cela, une classification qualitative sur
quatre niveaux a été proposée, comme montré dans le tableau 2.4.

Niveau 4
Attaques sophistiquées ; l'attaquant doit être près du système
Niveau 3
Attaques sophistiquées, connues théoriquement mais non recensées
Niveau 2
Attaques connues mais rarement recensées
Niveau 1
Attaques connues, fréquemment utilisées

Tableau 2.4 : Classification des attaques par effort

33

Évaluation de la Sécurité Informatique



Figure 2.4 : Déploiement du graphe des privilèges en graphes d’attaque
Comme nous l'avons vu plus haut, la seconde étape de l'approche est l'obtention de graphes
d'attaque à partir d'un graphe de privilèges. Certaines hypothèses sur le comportement d’un
attaquant potentiel sont nécessaires pour identifier les scénarios d’attaque permettant de
construire le graphe d’attaque. A titre d’illustration, la figure 2.4 donne les graphes d’attaque
obtenus à partir du graphe des privilèges de la figure 2.3 en considérant deux hypothèses
différentes du comportement de l’attaquant, notées MT (Mémoire Totale) et ML (Mémoire
Locale), respectivement. Pour cet exemple, nous rappelons que A est la cible et insider (noté
I) est l’attaquant. Avec l’hypothèse MT, à chaque étape du processus d’attaque, l’attaquant
peut choisir une attaque parmi toutes celles qu’il a identifiées durant les étapes précédentes et
qui n’ont pas abouti, c’est-à-dire qu’il essaie de tirer avantage de tous les privilèges acquis,
même ceux acquis en exploitant une vulnérabilité d’un chemin différent. Par contre, avec
l’hypothèse ML, seules les attaques réalisables avec les nouveaux privilèges acquis à partir du
nœud du graphe qu’il vient d’atteindre sont considérées. Dans l’exemple de la figure 2.4, dans
l’hypothèse ML, après avoir exploité la vulnérabilité 2, l’attaquant ne "se souvient" plus qu’il
a la possibilité d’exploiter la vulnérabilité 1. Par contre avec l’hypothèse MT, la vulnérabilité
1 sera prise en compte dans les possibilités d’attaque tentées par l’attaquant.
La troisième étape de la démarche consiste en l'obtention de mesures depuis les graphes
d'attaques. Leur transformation en chaînes de Markov permet de déduire pour un couple
(cible-attaquant) la mesure Mean Effort To Failure en considérant l'hypothèse ML ou MT, le
plus court chemin. De plus, cette mesure tient compte de l'influence des « impasses »,

34

Évaluation de la Sécurité Informatique

chemins qui ne permettent pas à l'attaquant d'arriver à ses fins. Cette approche permet
l'identification de chemins critiques dans le système. De plus, le graphe des privilèges
pouvant évoluer selon le comportement et l'utilisation du système au jour le jour, un écart lors
d'un calcul régulier de la mesure permet de mettre en évidence une baisse du niveau de
sécurité.
2.4.2.2 Modèles de scénarios : arbres et graphes d'attaque
Depuis les travaux menés au LAAS sur l'évaluation quantitative de la sécurité et la mise au
point du graphe des privilèges, d'autres travaux ont été menés pour la représentation des
processus d'attaque. Le principe reste le même : la mise en évidence des différents scénarios
qui pourraient être suivis par l’attaquant pour atteindre son objectif. Par exemple, dans
l'approche [39], chaque état du graphe ne représente pas seulement l'ensemble des privilèges
de l'attaquant mais l'ensemble de ses connaissances ainsi que l'état de son environnement.
Ainsi, il y aura changement d'état dans le graphe lorsqu'une action a lieu même si celle-ci
n'apporte pas à l'attaquant de privilèges supplémentaires. Par exemple, un balayage des accès
(port scan en anglais) peut apporter à l'attaquant de nouvelles connaissances sans lui donner
de nouveaux privilèges. Le graphe d’attaque peut s’obtenir directement à partir de l’analyse
du réseau, mais doit dans ce cas-là être réduit pour pouvoir être exploité. Des approches pour
générer et réduire ces graphes sont présentées dans [40, 41, 39, 42].
D’autres travaux se sont focalisés sur la représentation des processus d'attaque par des arbres
d'attaque [43]. Les arbres d’attaques constituent une adaptation des arbres de fautes qui sont
couramment utilisés dans le domaine de la sûreté de fonctionnement pour représenter
comment les défaillances de composants élémentaires d’un système peuvent causer une
défaillance globale du système. Contrairement aux graphes d’attaque présentés sur la figure
1.4, les arbres d’attaque ont pour racine le but de l’attaquant, représenté par un losange.
L’arbre présente ensuite les différentes façons d’arriver à ce but : une « généalogie » de
l’attaque [43]. Les rectangles de ce graphe sont les sous objectifs à atteindre avant d'arriver au
but final de l'attaquant. L'arbre d'attaque met en relief les différents moyens pour l'attaquant
d'atteindre ses objectifs.
Un exemple d’arbre d’attaque est donné dans la figure 2.5 : l’attaquant veut accéder au coffre-
fort sans avoir à le forcer, en l’ouvrant avec la combinaison.
Dans cet exemple, on voit que pour pouvoir ouvrir le coffre-fort, l'attaquant doit découvrir la
combinaison. La découverte de la combinaison devient son premier sous objectif. Pour
l'atteindre, deux possibilités s'offrent à lui : soit trouver un document contenant la

35

Évaluation de la Sécurité Informatique

combinaison, soit obtenir la combinaison de quelqu'un qui la connaît. Le choix d'une
alternative définira des sous-objectifs de niveau inférieur et ainsi de suite [44].

Figure 2.5 : Exemple d'arbre d'attaque
L'approche présentée dans [45] utilise ce formalisme. Elle produit une mesure de risque en
utilisant une méthodologie en deux étapes : 1) la première consiste en l'élaboration de l'arbre
d'attaque, chaque nœud de l'arbre représentant une vulnérabilité potentielle que l'attaquant
serait tenté d'exploiter. Un index numérique E (Exploitability) est estimé pour chaque
vulnérabilité, représentant la probabilité d'une exploitation avec succès ; 2) la seconde étape
met en évidence les dépendances entre les vulnérabilités qui apparaissent dans l'arbre
d'attaque : la vulnérabilité A dépend de la vulnérabilité B si et seulement si, quand B a été
exploitée, A devient plus facilement exploitable. Chaque index E est réévalué en tenant
compte des dépendances mises à jour dans la seconde étape. Cette étape est réitérée jusqu'à
convergence. Cette mesure représente pour chaque vulnérabilité la probabilité qu'un attaquant
l'exploite, en tenant compte des dépendances entre les vulnérabilités.
Dans [46], le système est décomposé sous forme d'un arbre jusqu'à obtenir des composants
élémentaires indépendants. Pour chacun de ces composants sont évaluées la probabilité
d'exploitation avec succès de la vulnérabilité de ce composant et la probabilité que cette
vulnérabilité soit choisie. La probabilité d'exploitation avec succès du système est donc
obtenue en remontant l'arbre établi. Une démarche similaire a été adoptée dans [47] où la
décomposition en éléments est effectuée en adoptant une analogie à la défense des châteaux
forts médiévaux.
Notons qu'un arbre d’attaque n’est pas simple à élaborer [48], car il n’y a pas de technique
automatisée pour produire formalisme, ce qui rend fastidieuse la mise au point de la mesure.

36

Évaluation de la Sécurité Informatique

2.5 Evaluation des processus d'attaque et de protection
L'approche « Time To Compromise » [49] ne modélise pas le système mais le comportement
de l'attaquant face au système. Cette approche utilise une description de trois processus
d'attaque génériques sous forme d'organigrammes de programmation. Pour chacun des
processus 1 et 2, une des conditions suivantes est vérifiée :
1) pour le processus 1, il existe au moins une vulnérabilité connue dont l'exploitation permet
d'obtenir les privilèges voulus et l'attaquant connaît au moins une attaque disponible qui
exploiterait avec succès cette vulnérabilité ; 2) pour le processus 2, il existe au moins une
vulnérabilité connue dont l'exploitation permet d'obtenir les privilèges voulus ; l'attaquant ne
connaît pas d'attaque disponible et recherche donc une attaque qui exploiterait avec succès
cette vulnérabilité. Dans le processus 3, l’attaquant cherche à identifier de façon permanente
de nouvelles vulnérabilités puis des attaques exploitant celles-ci. Les processus 1 et 2 sont
exclusifs et concernent l'exploitation des vulnérabilités déjà connues. Le processus 2 est
exécuté seulement si le processus 1 échoue et si les conditions de départ de ce processus ne
sont plus valides. Le processus 3 est en exécution permanente et parallèle aux processus 1 et
2. La mesure « Time To Compromise » résultante dépend donc de la probabilité d'occurrence
de ces processus et du temps nécessaire au succès de l'attaquant pour chacun d'entre eux.
Cette mesure nécessite de connaître le nombre de vulnérabilités présentes dans le système
étudié et donne des mesures dépendant d'un seul attaquant.
Dans [50], les auteurs n'évaluent pas le processus d'attaque mais le coût du moyen de
protection à utiliser selon l'attaque et l'attribut de sécurité mis en danger. Ces mesures sont
évaluées par un coût matériel : occupation de la bande passante en octet par seconde, en octet
à stocker, en puissance du processeur consommée, etc.
2.5.1 Evaluation issue de la théorie des jeux
Plusieurs modèles utilisent la théorie des jeux afin d'envisager les différents scénarios entre
l'attaquant et le système de défense du système d'information.
Dans [51], les auteurs proposent de prendre en considération la nécessité pour l'attaquant de
se montrer discret et de ne pas mener des attaques facilement discernables par l'administrateur
système. Une fois ce critère évalué et pris en compte, les probabilités de décision sont
calculées grâce à un raisonnement de type Minimax(7). Cette approche laisse donc supposer

(7) Algorithme mis au point en 1928 par John Von Neumann, il consiste à passer en revue toutes les possibilités pour un
nombre limité de coups et à leur assigner une valeur prenant en compte les bénéfices pour le joueur et pour son adversaire. Le
meilleur choix étant alors celui qui maximise les bénéfices du joueur tout en minimisant ceux de son adversaire.

37

Évaluation de la Sécurité Informatique

que l'attaquant à une connaissance approfondie du système, tant au niveau des vulnérabilités
que de la qualité des ripostes du système face à l'exploitation de ces vulnérabilités. Ces
aspects sont retrouvés dans [52] qui ajoutent à son modèle probabiliste la probabilité de
décision de l'attaquant : une variable contient la probabilité que l'attaquant choisisse une
action particulière.
Cette approche par la théorie des jeux est donc utilisée pour la prise de décision d'une réponse
immédiate du système comme dans [53] où le jeu considéré est un jeu dont la somme des
gains est nulle : les gains obtenus par un (ou plusieurs) des joueurs sont égaux à la somme des
pertes des autres joueurs. De plus, le modèle prend en compte un trait de caractère du
comportement de son attaquant : celui-ci peut être rationnel (conscient des risques et visant à
minimiser le coût de son attaque), ou bien irrationnel (non conscient des dangers qu'il encoure
et cherchant uniquement à réussir son attaque).
Ces approches permettent d'attribuer des points à l'attaquant ou au système en fonction des
attaques et des réponses du système, mesure basée sur une échelle d'intervalles.
2.5.2 Mesures de propagation des vers
En 1988, l'un des premiers vers, mis au point par Robert Morris, une expérience ayant
échappé au contrôle de son créateur, selon lui, contamina 6000 machines. Depuis, des
centaines de vers ont vu le jour, provoquant plus ou moins de dégâts. Le ver Melissa, apparu
en 1999, fit le tour du monde en moins de deux jours. ILOVEYOU, en 2000, infecta 45
millions de machines en un mois. Mais le record est battu en 2002, avec l'apparition du vers
Slammer qui infecta 12 000 machines dans les dix minutes suivant les premières infections
[54]. Au total, Slammer toucha 245 000 machines d'après Internet Security System et affecta
cinq des treize serveurs DNS "racines". Après lui sont apparus, pour les plus remarquables,
Blaster/Lovesan (2003, 500 000 machines infectées en quelques heures), Sasser (2004) ou
MyDoom (2004) dont les infections ont repris récemment. Les vers de la famille Netsky,
apparus en 2004, font toujours beaucoup de victimes aujourd'hui(8).
Face à cette menace, plusieurs modèles ont été mis au point pour analyser la propagation des
vers en s'inspirant des trois modèles existants pour la propagation d’épidémies décrits dans
[55] : SIS, SIR et SIRS. Le modèle SIS est un modèle qui considère une population totale
constante, une population susceptible d'être infectée et une population infectée. Ces deux
dernières évoluent dans le temps en considérant un taux d'infection et un taux de guérison


(8) www.viruslist.com

38

Évaluation de la Sécurité Informatique

fixes. Le modèle SIR prend en considération une population globale non constante pour
intégrer les cas de décès par infection, une population susceptible d'être infectée, une
population infectée et une population immunisée. Le modèle SIRS prend à la fois en
considération les cas de guérison et les cas d'immunité. Enfin, le modèle KS est dérivé des
précédents, en ajoutant un signal appelé kill signal. Ce signal consiste à prévenir une partie
des hôtes non vulnérables lorsqu'un hôte est infecté, comme un utilisateur dont le système est
infecté alarmera son entourage à propos de ce danger. Ces modèles sont évoqués dans [56,
57]. Dans [56], le modèle SIR est étendu en ajoutant un taux de perte d'immunité. Ces
modèles sont à l’origine des modèles épidémiologiques déterministes. Cependant, dans [57],
le modèle SIS est rapproché du processus markovien de naissance et de mort pour produire
une approche probabiliste. L'auteur produit ainsi des mesures telles que la probabilité de
contamination totale ou de rémission totale du système.
2.6 Conclusion
Les mesures présentées dans ce paragraphe proposent plusieurs techniques d'approche et
plusieurs points de vue. Le premier point de vue que nous pouvons adopter est le type de
mesure produite et les unités utilisées : certaines mesures ont une unité de temps comme la
mesure Time To Compromise décrite dans l'approche de [58]. De nombreuses approches ont
suivi la tendance de [59] en produisant des mesures d'effort telles que le Mean Effort to
Failure produit par le graphe des privilèges [60]. Enfin, d'autres mesures sans unité que ces
mesures d'effort existent telles que celles produites par la théorie des jeux et qui consistent en
un nombre de points gagnés ou perdus par l'attaquant ou le système. Ces mesures sont basées
sur une échelle ordinale et contiennent moins d'information.
La méthode d’évaluation quantitative de la sécurité opérationnelle a aussi été appliquée avec
succès à des systèmes d’information prenant en compte non seulement le système
informatique mais aussi l’organisation de ses utilisateurs, leurs relations hiérarchiques et leur
confiance mutuelle. Ceci a conduit à développer une méthode de description des politiques de
sécurité adaptées aux besoins des entreprises, en liaison avec une évaluation quantitative de la
sécurité des systèmes d’information correspondants. Cette méthode a été validée par une
expérimentation sur une agence bancaire, organisation réelle de taille significative [61].
Néanmoins ce type d’application n’est pas aussi facilement automatisable que pour un
système informatique.

39

Évaluation de la Sécurité Informatique

Notre approche consiste à se baser sur l’évaluation quantitatives de la sécurité, d’où la
méthode expérimentale par l’injection des fautes et qui parait sous forme d’une formule
mathématique permettant de mesurer l’intégrité de donnée. Le résultat est une probabilité
inférieure à 1 lorsque l’intégrité du fichier est touchée, que nous allons détailler dans le
chapitre suivant.























40

Chapitre 3
Conception et Réalisation
Sommaire
3.1. La conception............................................................................................................................... 42
3. 1.1 La décomposition du MD5 et SHA-256 ....................................................................... 42
3.1.1.1 Définition de fonction d’hachage ...................................................................... 42
3.1.1.2 MD5 (Message Digest Algorithm) .................................................................. 43
3.1.1.3 Exemple d’application du MD5 .................................................................. 43
3.1.1.4 Mis en œuvre du MD5 ........................................................................................ 43
3.1.1.5 Pseudo-code du MD5 ............................................................................................. 43
3.1.1.6 Déroulement d’algorithme MD5 ....................................................................... 45
3.1.2. SHA256 (Secure Hash Algorithm 256) ........................................................................ 46
3.1.2.1 Exemple d’application du SHA-256 ........................................................... 46
3.1.2.2 Mis en œuvre d’SHA-256 .................................................................................. 47
3.1.2.3 Pseudo-code du SHA-256 ..................................................................................... 47
3.1.2.4 Déroulement d’algorithme SHA-256 ................................................................ 48
3.1.3 Comparaison entre MD5 et SHA256 ............................................................................. 51
3.2 Présentation de formule de mesure du l’intégrité ..................................................................... 52
3.2.1 La formule de l’intégrité ................................................................................................ 53
3.3. La réalisation ..................................................................................................................... 54
3.3.1 Architecture de l’application ................................................................................... 55
3.3.2 Les outils employés dans l’application ........................................................................... 57
3.3.2.1 Eclipse ................................................................................................................... 58
3.3.2.2 L’API « JMF » (Java media framework) ......................................................... 59
3.3.2.3 L’API « Xuggle » ................................................................................................ 61
3.3.2.4 Gnuplot .................................................................................................................. 64
3.3.3 Les interfaces graphiques ................................................................................................. 64
3.3.4 Les courbes ......................................................................................................................... 72
3.4 Conclusion ................................................................................................................................... 73


41

La conception et la réalisation

Ce chapitre est composé de deux parties, la conception et la réalisation. Dans la première,
nous allons définir les algorithmes MD5 et SHA-256. Afin de dérouler ces algorithmes, nous
aboutissons à une décomposition de chacun aux fonctions élémentaires que nous allons
utiliser pour mesurer l’intégrité des données, puis nous allons définir notre formule dans le but
de mesurer l’intégrité et ses différentes variables utilisées.
La deuxième partie de ce chapitre, consiste à appliquer cette formule sur les différentes
données : les fichiers textes, images ou multimédias. Nous allons commencer par une
définition de notre architecture de l’application sous forme d’un organigramme et un
algorithme, les outils utilisés et les interfaces graphiques réalisées pour cette application.
Finalement nous terminerons par le traçage des différentes courbes de notre formule de
l’intégrité réalisées en « Gnuplot ».
3. 1. La conception
On rencontre bien souvent sur les pages de téléchargement des empreintes calculées grâce à
des algorithmes comme MD5. Ces « résumés » des fichiers permettent notamment de vérifier
la validité et l'intégrité des archives récupérées. Cependant, peu d'utilisateurs connaissent le
fonctionnement de ces primitives, les fonctions de hachages, qui sont très répandues. Nous
nous intéresserons principalement aux fonctions de hachages dites cryptographiques qui
touchent un vaste domaine d'applications.
3. 1.1 La décomposition du MD5 et SHA-256
Dans cette partie, nous étudions les algorithmes MD5 et SHA256 qui nous aide à appliquer
notre formule de l’intégrité que nous expliquons dans la deuxième partie.
3.1.1.1 Définition de fonction d’hachage
Une fonction de hachage est une fonction permettant d'obtenir un condensé d'un texte, c'est-à-
dire une suite de caractères assez courte représentant le texte qu'il condense.
La fonction de hachage doit être telle qu'elle associe un et un seul haché à un texte en clair.
D'autre part, il doit s'agir d'une fonction à sens unique(9) afin qu'il soit impossible de retrouver

(9) est une fonction qui peut être aisément calculée, mais qui est difficile à inverser c'est-à-dire qu'étant donnée une image, il
est difficile de lui trouver un antécédent.

42

La conception et la réalisation

le message original à partir du condensé. S'il existe un moyen de retrouver le message en clair
à partir du haché, la fonction de hachage est dit « à brèche secrète ».
Le résultat d'une fonction de hachage peut être appelé selon le contexte somme de contrôle,
empreinte, hash, résumé de message, condensé, condensat ou encore empreinte
cryptographique lorsque l'on utilise une fonction de hachage cryptographique. On l'appelait
autrefois aussi signature, mais cette terminologie est moins utilisée afin d'éviter une confusion
avec son sens juridique : le hachage est en effet aussi employé pour les signatures
numériques.
3.1.1.2 MD5 (Message Digest Algorithm)
MD5 est une fonction de hachage cryptographique qui calcule, à partir d'un fichier
numérique, son empreinte numérique (en l'occurrence une séquence de 128 bits ou 32
caractères en notation hexadécimale) avec une probabilité très forte que deux fichiers
différents donnent deux empreintes différentes.
3.1.1.3 Exemple d’application du MD5
Voici l'empreinte (appelée abusivement signature) obtenue sur une chaine :
MD5 ("Bonjour") = ebc58ab2cb4848d04ec23d83f7ddf985
En modifiant un caractère, cette empreinte change radicalement :
MD5 ("BonjouR") = ffc1aeeaa6027fa2a6f5bd099cfbdd99
3.1.1.4 Mis en œuvre du MD5
Très concrètement, la vérification de l'empreinte MD5 peut être réalisée de la façon suivante:
lors du téléchargement d'un programme, on note la série de caractères indiquée sur la page de
téléchargement. Quand ce téléchargement est terminé, on lance un utilitaire de calcul MD5,
comme par exemple HashCalc ou md5sums, qui indique entre autres la somme de contrôle
correspondant au fichier. Si les deux valeurs correspondent, on peut alors raisonnablement
considérer que le fichier n'a pas été corrompu (volontairement ou non d'ailleurs).
3.1.1.5 Pseudo-code du MD5
MD5 peut s'écrire sous cette forme en pseudo-code, que nous allons montrer si –dessous :
//Note: Toutes les variables sont sur 32 bits
//Définir r comme suit :
var entier [64] r, k
r[ 0..15] := {7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17,
22}
r[16..31] := {5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14,
20}

43

La conception et la réalisation

r[32..47] := {4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16,
23}
r[48..63] := {6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15,
21}

//MD5 utilise des sinus d'entiers pour ses constantes:
pour i de 0 à 63 faire
k[i] := floor(abs(sin(i + 1)) × 2^32)
fin pour

//Préparation des variables
var entier h0 := 0x67452301
var entier h1 := 0xEFCDAB89
var entier h2 := 0x98BADCFE
var entier h3 := 0x10325476

//Etape 1 : Préparation du message (padding)
ajouter "1" bit au message
ajouter "0" bits jusqu'à ce que la taille du message en bits soit égale à
448 (mod 512)
ajouter la taille du message codée en 64-bit little-endian au message

//Découpage en blocs de 512 bits:
pour chaque bloc de 512 bits du message

subdiviser en 16 mots de 32 bits en little-endian w[i], 0 ≤ i ≤ 15

//initialiser les valeurs de hachage:
var entier a := h0
var entier b := h1
var entier c := h2
var entier d := h3

//Etape 2 : boucle principal:
pour i de 0 à 63 faire
si 0 ≤ i ≤ 15 alors
f := (b et c) ou ((non b) et d) //F
g := i
sinon si 16 ≤ i ≤ 31 alors
f := (d et b) ou ((non d) et c) //G
g := (5×i + 1) mod 16
sinon si 32 ≤ i ≤ 47 alors
f := b xor c xor d //H
g := (3×i + 5) mod 16
sinon si 48 ≤ i ≤ 63 alors
f := c xor (b ou (non d)) //I
g := (7×i) mod 16
fin si
fin si
fin si
fin si

var entier temp := d
d := c
c := b
b := ((a + f + k[i] + w[g]) leftrotate(3) r[i]) + b
a := temp
fin pour




44

La conception et la réalisation

//ajouter le résultat au bloc précédent:
h0 := h0 + a
h1 := h1 + b
h2 := h2 + c
h3 := h3 + d
fin pour

//concaténation des valeurs d’hachage
var entier empreinte := h0 concaténer h1 concaténer h2 concaténer h3 //(en
little-endian)

3.1.1.6 Déroulement d’algorithme MD5
Après étude, nous distinguons que l’algorithme MD5 se répartie e en 2 étapes :
Etape 1 : préparation du message
MD5 travaille avec un message de taille variable et produit une empreinte de 128 bits. Le
message est divisé en blocs de 512 bits, on applique un remplissage de manière à avoir un
message dont la longueur est un multiple de 512. Le remplissage se présente comme suit :
• on ajoute un '1' à la fin du message
• on ajoute une séquence de '0' (le nombre de zéros dépend de la longueur du
remplissage nécessaire)
• on écrit la taille du message, un entier codé sur 64 bits
La taille du message est codée en Little endian. Le message a maintenant une taille en bits
multiple de 512, c'est-à-dire qu'il contient un multiple de 16 mots de 32 bits.
Etape 2 : Boucle principale
L'algorithme principal travaille avec un état sur 128 bits. Il est lui-même divisé en 4 mots de
32 bits : A, B, C et D. Ils sont initialisés au début avec des constantes suivantes :
A=0x67452301
B=0xEFCDAB89
C=0x98BADCFE
D=0x10325476

L'algorithme utilise ensuite les blocs provenant du message à hacher, ces blocs vont modifier
l'état interne. Les opérations sur un bloc se décomposent en quatre rondes (étapes), elles
mêmes subdivisées en 16 opérations similaires basées sur les fonctions non-linéaire F, G, H et
I, une addition et une rotation vers la gauche.
Nous allons décomposer l’algorithme d’hachage MD5 en fonctions élémentaires, représentées
sur le tableau 3.1 suivant :


45

La conception et la réalisation

Nom
Formule
input
output
Fonctionnement
F(x,y,z)
(x and y)
des arguments x, renvoie une
Cette opération
Or
y, z codés sur 32 valeur sur
permettent de calcule F
(not x and z)
bits
32 bits
a partir les trois
arguments x,y,z et le
traitement de faire bit a
bit .
G(x,y,z)
(x and z)
des arguments x, renvoie une
Cette opération
Or
y, z codés sur 32 valeur sur
permettent de calcule G
(y and not z)
bits
32 bits
a partir les trois
arguments x,y,z et le
traitement de faire bit a
bit .
H(x,y,z)
x xor y xor z
des arguments x, renvoie une
Cette opération
y, z codés sur 32 valeur sur
permettent de calcule H
bits
32 bits
a partir les trois
arguments x,y,z et le
traitement de faire bit a
bit .
I(x,y,z)
y
des arguments x, renvoie une
Cette opération
xor
y, z codés sur 32 valeur sur
permettent de calcule I
(x or not z)
bits
32 bits
a partir les trois
arguments x,y,z et le
traitement de faire bit a
bit .
Leftrotate(x,n)
(x<< n)
Des arguments x Renvoie un
Cette opération permet
Or
et n tel que n le
nombre sur
de décalage circulaire
(x>>> 32-n)
nombre des bits
32 bit a été
d’une valeur codée sur
de décalage
décaler n
32 bits, n bits par la
vers la gauche
fois
gauche.

Tableau 3.1 : Les opérations élémentaire de l’algorithme MD5
Ce tableau 3.1 englobe la décomposition du MD5 sous forme des fonctions élémentaires.
3.1.2. SHA256 (Secure Hash Algorithm 256)
Très proche du SHA-1 dont il est issu, SHA-256 en diffère par la longueur du résultat obtenu
mais aussi par certaines opérations, fonctions et constantes spécifiques qui amènent ce
résultat. Celles-ci sont structurées sur le même modèle que SHA-1 (prétraitement et calcul)
mais le travail s’effectue en 64 rondes avec 8 variables initialisées avec des constantes
spécifiques. Les fonctions booléennes utilisées sont différentes de SHA-1. À la fin des
64 tours les huit variables concaténées forment le résultat de 256 bits.
3.1.2.1 Exemple d’application du SHA-256
Voici l'empreinte obtenue sur une chaine :

46

La conception et la réalisation

SHA-256 ("Bonjour") =
2cb4b1431b84ec15d35ed83bb927e27e8967d75f4bcd9cc4b25c8d879ae23e18
En modifiant un caractère, cette empreinte change radicalement :
SHA-256 ("BonjouR") =
ec75b313deb712ec321fa929354c66cf647e0feaac802ef0b7473f9d35edd890
3.1.2.2 Mis en œuvre d’SHA-256
La fonction de hachage SHA-2 est mis en œuvre dans certaines applications de sécurité
largement utilisés et les protocoles, y compris les protocoles TLS et SSL, PGP, SSH, S /
MIME, et IPsec.
Applications peuvent également utiliser SHA-1 et MD5.
SHA-1 et SHA-2 sont les algorithmes de hachage sécurisé requis par la loi pour l'utilisation
dans certaines applications du gouvernement américain, y compris l'utilisation dans d'autres
algorithmes cryptographiques et les protocoles, pour la protection des informations non
classifiées sensibles. FIPS PUB 180-1 a également encouragé l'adoption et l'utilisation de
SHA-1 par des organismes privés et commerciaux. SHA-1 est à la retraite pour la plupart des
utilisations du gouvernement, le NIST déclare: «Les organismes fédéraux devraient cesser
d'utiliser SHA-1 pour ... des applications qui nécessitent une résistance collision dès que
possible, et doit utiliser les SHA-2 familles de fonctions de hachage pour ces applications à
partir de 2010 ».
3.1.2.3 Pseudo-code du SHA-256
SHA-256 peut s'écrire sous cette forme en pseudo-code, que nous allons montrer si –dessous :
//Préparation des variables
h[0..7] := 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f,
0x9b05688c, 0x1f83d9ab, 0x5be0cd19

//Initialiser la table des constantes
k[0..63] :=
0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1,
0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786,
0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,
0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b,
0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a,
0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2

//préparation du message (padding)
ajouter "1" bit au message

47

La conception et la réalisation

ajouter "0" bits jusqu'à ce que la taille du message en bits soit égale à
448 (mod 512)
ajouter la taille du message codée en 64-bit little-endian au message

// Etape 1 : Pour élargir les 6 mots de 32 bits en 64 mots de 32 bits
Pour i de 16 a 63 faire
s0 := (w[i-15] rightrotate 7) xor (w[i-15] rightrotate 18) xor (w[i-15]
rightshift 3) //sigma0
s1 := (w[i-2] rightrotate 17) xor (w[i-2] rightrotate 19) xor (w[i-2]
rightshift 10) //sigma1
w[i] := w[i-16] + s0 + w[i-7] + s1

// Initialiser les valeurs de hachage
var entier a := h0
var entier b := h1
var entier c := h2
var entier d := h3
var entier e := h4
var entier f := h5
var entier g := h6
var entier h := h7

//Etape 2 : la boucle principale
Pour i de 0 a 63 faire
s0 := (a rightrotate 2) xor (a rightrotate 13) xor (a rightrotate 22)//Sum0
maj := (a and b) xor (a and c) xor (b and c) //Maj
t2 := s0 + maj
s1 := (e rightrotate 6) xor (e rightrotate 11) xor (e rightrotate 25)//Sum1
ch := (e and f) xor ((not e) and g) //Ch
t1 := h + s1 + ch + k[i] + w[i]

h := g
g := f
f := e
e := d + t1
d := c
c := b
b := a
a := t1 + t2

Fin pour
//Ajouter les nouvelles valeurs d’hachage au enceins
h0 := h0 + a
h1 := h1 + b
h2 := h2 + c
h3 := h3 + d
h4 := h4 + e
h5 := h5 + f
h6 := h6 + g
h7 := h7 + h

Fin pour

//concaténation des valeurs d’hachage
Digest = hash = h0 concaténer h1 concaténer h2 concaténer h3 concaténer h4
concaténer h5 concaténer h6 concaténer h7

3.1.2.4 Déroulement d’algorithme SHA-256
Après étude, nous distinguons que l’algorithme SHA-256 se répartie e en 2 étapes :

48

La conception et la réalisation

Etape 1 : préparation du message
Il s'agit ici d'ajouter des informations à M pour qu'il soit d'une taille multiple de 512 bits.
Pour ce faire, l'on ajoute un bit "1" à la fin du message M, puis k zéros, où k est la plus petite
solution
non
négative
de
l'équation:
l
+
1
+
k
=
448
mod
512
On ajoute alors un bloc de 64 bits correspondant à la représentation binaire de l.
Exemples :
• M = "abc", l = 8 x 3 = 24, k = 448 - (l + 1) = 448 - (24 + 1) = 423
On ajoute "1", puis quatre cent vingt trois "0", puis 64 bits finissant par "011000"
(pour 24) à M.
On obtient alors un message complété à 512 bits.
• M quelconque tel que l = 500 bits, k = 448 - (l + 1) = 448 - (500 + 1) = -53
Comme k ne peut pas être négatif, on lui ajoute 512 en prenant en compte le modulo
de l'équation, pour obtenir k = 459
On ajoute "1", puis quatre cent cinquante neuf "0", puis 64 bits finissant par
"111110100" (pour 500) à M.
On obtient alors un message complété à 512 bits
Etape 2 : Boucle principale
L'algorithme principal travaille avec un état sur 256 bits. Il est lui-même divisé en 8 mots de
32 bits : A, B, C, D, E, F, G et H. Ils sont initialisés au début avec des constantes suivantes :
A= 0x6a09e667
B= 0xbb67ae85
C= 0x3c6ef372
D= 0xa54ff53a
E= 0x510e527f
F= 0x9b05688c
G= 0x1f83d9ab
H=0x5be0cd19

L'algorithme utilise ensuite les blocs provenant du message à hacher, ces blocs vont modifier
l'état interne. Les opérations sur un bloc se décomposent en deux rondes, la première réalise
16 opérations, par contre la deuxième ronde réalise 48 opérations, basées sur des fonctions
non-linéaire Ch, Maj, sum0, sum1, sigma0 et sigma 1, une addition et un décalage et une
rotation vers la droite.

49

La conception et la réalisation

Nous allons décomposer l’algorithme d’hachage SHA-256 en fonctions élémentaires,
représentées sur le tableau 3.2 suivant :

nom
formule
entrées
sorties
Fonctionnement
Rotr(x,n)
(x>>>n)
x : est un mot
Renvoie un
Cette opération
Or
de 32 bits
nombre sur 32 bit
permet de décalage
(x<< 32-n)
n : 0<=
a été décaler
circulaire d’une
n<=32
circulairement n
valeur codée sur 32
bits vers la droite
bits, n bits par la
droite
Shr(x,n)
(x>>>n)
x : est un mot
Renvoie un
Décalage a droite
de 32 bits
nombre sur 32 bit
de n bits et le
n : 0<=
a été décaler n
remplissage a
n<=32
bits vers la droite
gauche avec des 0
Ch(x,y,z)
(x and y)
des arguments
renvoie une valeur Cette opération
Xor
x, y, z codés
sur 32 bits
permettent de
(not x and z)
sur 32 bits
calcule Ch a partir
les trois arguments
x,y,z et le
traitement de faire
bit a bit .
Maj(x,y,z)
(x and y)
des arguments
renvoie une valeur Cette opération
xor
x, y, z codés
sur 32 bits
permettent de
(x and z)
sur 32 bits
calcule Maj a
xor
partir les trois
(y and z)
arguments x,y,z et
le traitement de
faire bit a bit .
Sum0(x)
Rotr(x, 2)
x : argument
renvoie une valeur Cette opération
[0..256]
Xor
codé sur
sur 32 bits
Sum0 permettent
Rotr(x, 13)
32bits
de calcule la
xor
somme des
Rotr(x, 22)
rotations
circulaires de
l’argument x, dont
l’intervalle [0..256]
Sum1(x)
Rotr(x, 6)
x : argument
renvoie une valeur Cette opération
[1..256]
xor
codé sur
sur 32 bits
Sum1 permettent
Rotr(x, 11)
32bits
de calcule la
xor
somme des
Rotr(x, 25)
rotations
circulaires de
l’argument x, dont
l’intervalle [1..256]
Sigma0(x)
Rotr(x, 7)
x : argument
renvoie une valeur Cette opération
Xor
codé sur
sur 32 bits
Sigma0 permettent
Rotr(x, 18)
32bits
de calcule la
xor
somme de deux

50

La conception et la réalisation

Shr(x, 3)
rotations
circulaires et un
décalage vers la
droite de
l’argument x,
Sigma1(x)
Rotr(x, 17)
x : argument
renvoie une valeur Cette opération
Xor
codé sur
sur 32 bits
Sigma1 permettent
Rotr(x, 19)
32bits
de calcule la
xor
somme de deux
Shr(x, 10)
rotations
circulaires et un
décalage vers la
droite de
l’argument x,
Tableau 3.2 : Les opérations élémentaires de l’algorithme SHA256
Ce tableau 3.2 englobe la décomposition du SHA-256 sous forme d’opérations élémentaires.
3.1.3 Comparaison entre MD5 et SHA256
Avant de commencer notre comparaison, D’abord nous allons définir le terme collision.
On terme mathématique la collision est définie ainsi :
Soit la fonction d’hachage H et X1 et X2 deux chaines de caractères différents : X1<>X2. On
parle de collision si les deux empreintes de ces deux chaines X1 et X2 sont égaux :
H(X1)=H(X2).
D’âpres les études précédentes, nous remarquons la comparaison suivante :
D’abord, L’un (MD5) génère une empreinte de 128 bits, et quant à l’autre (SHA-256) il
génère une empreinte de 256 bits, puis la résistance au collisions que le MD5 qui n’est pas
prise en charge contre les collisions car il est casser par le programme « John the ripper » en
aout 2004 par force brute , par contre le SHA-265 est incassable en ce moment. En outre, le
nombre des fonctions élémentaires de chacun de ces algorithmes, l’un possède 5 fonctions
élémentaires et l’autre 8. Enfin, une comparaison entre leurs chiffres de performance réalisée
en crypto++ V5.6.0 Benchmarks sont pour une mise en œuvre mono-thread sur un
processeur Intel Core 2, 1,83 GHz sous Windows Vista en mode 32-bit.
Fonction
Empreinte
Résistance
Les fonctions
Exemple Performance
aux collisions
élémentaires
(MB/s)
MD5
128 bits
Non
5
255
SHA-256
256 bits
Oui
8
111
Tableau 3.3 : Comparaison entre MD5 et SHA256
Ce tableau 3.3 englobe une comparaison entre MD5 et SHA-256.

51

La conception et la réalisation

3.2 Présentation de formule de mesure du l’intégrité
D’âpre une étude sur les deux algorithmes MD5 et SHA-256, nous avons commencé par une
décomposition de ces deux algorithmes en fonctions élémentaires, et les entrées et sorties de
ces fonctions, puis un déroulement de chacun de ces algorithmes, et nous terminerons par une
comparaison entre eux.
Dans la deuxième partie de la conception, nous allons détailler notre formule, pour mesurer
l’intégrité, qu’il va définir par la suite.
Dans le deuxième chapitre, nous avons défini les différentes méthodes d’évaluation de la
sécurité : les méthodes qualitatives, quantitatives expérimentales, dont le but de mesure
l’intégrité des données en s’intéressant aux méthodes quantitatives ou probabilistes, ces
dernières se basent sur deux méthodes complémentaires sont : les modèles tels que : l’arbre
des fautes, graphe d’états et diagramme de fiabilité, et les méthodes expérimentales qui se
basent sur des données observées. Ces dernières, peuvent être de deux natures : soit issues
d'une expérimentation sensée reproduire le monde réel ou d'observations réelles.
L’application de notre formule d’intégrité à l’aide d’une expérience contrôlée, injection des
fautes appliquées, que nous allons expliquer puis les utilisées dans la partie de la réalisation.


Méthodes d’évaluation quantitative

Validation

Modèles
Méthodes expérimentales

Analytiques
Expérience contrôlées
Hypothèses
Arbre des fautes
Injection des fautes
Paramètres
Graphe d’états
Observations
Diagramme de fiabilité

Opérationnelles
Simulation

Figure 3.1 : Méthodes d’évaluation quantitative
Cette figure 3.1 résume les différentes méthodes d’évaluation quantitative de la sécurité.

52

La conception et la réalisation

3.2.1 La formule de l’intégrité
L’intégrité des composants d’un système est une condition préalable à l’intégrité des données,
qui, a son tour, indique que les données n’ont pas été modifiées ou détruites de façon non
autorisée. Le système et ses composants doivent générer, traiter, conserver ou transmettre les
données de telle sorte que l’intégrité des données est préservée.
Les erreurs de l’intégrité sont au cœur de la mesure d’intégrité et comprennent généralement
l’altération, suppression, adjonction, publication et d’abonnement de données. En générale,
l’intégrité I peut être mesurée par la formule suivante [62]:
N(AC)
I=
N(AC) + m.N(IE)

Ou « N(AC) » est le nombre de traitement de données des actions par le composant système
en question c’est-a-dire après la décomposition des algorithmes de hachage en fonctions
élémentaires, nous prenons le nombre de traitement de données du MD5 est égale le nombre
des fonctions élémentaires. Ainsi pour le MD5, nous obtenons N(AC) est égal à 5, et le SHA-
256, nous obtenons N(AC) est égal à 8.
« N(IE) » est le nombre d’erreurs injectées. Notez que le système de l’intégrité des données
peut être perturbé accidentellement ou intentionnellement.
Et « m » le facteur de pondération. A l'aide de ce facteur, nous pouvons accroître ou réduire
l'importance de l’erreur lors du calcul de l’intégrité. Nous allons classifier les erreurs selon
leurs niveaux dans le tableau 3.4 suivant :
Niveau « erreur »
Pondération m [1..10]
faible
1<= m <3
Moyenne
3<= m <5
Elevé
5<= m<=10
Tableau 3.4 : Les niveaux d’erreurs de l’intégrité
Exemple d’application :
Nous distinguons deux cas peuvent se produire lors de l’application de la formule d’intégrité,
le premier cas : lorsque une seule classe d’erreur se produit, soit erreur d’ajout ou suppression

53

La conception et la réalisation

ou modification. Si nous prenons l’erreur de modification avec une pondération « Moyenne »,
où lui affecte un facteur de pondération appartenant à un intervalle [3,4].
Supposant que le nombre d’erreurs de modifications qui apparaissent égale a 10, l’erreur sera
calculée de la manière suivante :
Erreur = m(Moyenne) * N(IE) = 4*10 = 40.
Supposant que nous calculions l’intégrité I sous l’algorithme hachage MD5, le nombre de
traitement des données égale à 5, l’intégrité sera calculée de la manière suivante :
5
I= =0.111
5 + 40
Dans le cas ou plusieurs erreurs apparaissent telles que : erreurs adjonctions, modifications et
suppressions. Nous affectons à chacun leurs facteur de pondération, si l’importance de
l’erreur d’ajout est faible, nous lui donnons un facteur « m » appartient à l’intervalle [1,2], et
l’erreur de modification, avec une pondération « Moyenne », elle prend un facteur entre [3,4]
et la suppression, avec une pondération « Elevée », elle prend un facteur entre [5,10].
Supposant que le nombre d’erreurs d’adjonction qui apparait égal à 10, 5 erreurs de
modifications et 3 erreurs des suppressions, l’erreur sera calculée de la manière suivante :
Erreur =
mi*N(IE) = 2*10 + 4*5 + 6*3 =58.
Supposant que nous calculions l’intégrité I sous l’algorithme hachage MD5, le nombre de
traitement des données égale à 5, l’intégrité sera calculée de la manière suivante :
5
I= =0.0079
5 + 58
3.3. La réalisation
Dans la partie de la réalisation nous commençons par une explication de l’architecture de
l’application sous forme d’un pseudo code et un organigramme, pour mieux comprendre son
fonctionnement, puis une définition des outils de la réalisation et nous expliquerons par la

54

La conception et la réalisation

suite notre application, son interface graphique, quelques exemples de leur code source que
nous avons implémenté, finalement nous terminerons par la réalisation des courbes.
3.3.1 Architecture de l’application
Notre système est représenté sous forme de l’organigramme (figure 3.2), que nous allons
expliquer :
Au début, nous initialisons le nombre de traitement des données N(AC) selon l’algorithme de
hachage choisi, nous faisons appel a une donnée (Data), puis nous calculons leur empreinte
initiale H1.
Nous injections des erreurs sur la donnée, cette dernière sera modifiée, ensuite, nous calculons
la deuxième empreinte H2.
A partir de l’injection des erreurs, nous calculons cette fois-ci la valeur d’erreurs injectées aux
données N (IE), afin de nous aider à calculer la valeur de l’intégrité, selon la formule I.
Ainsi deux cas apparaissent, le premier lorsque l’erreur injectée égale a 0, cela veut dire que
la valeur de l’intégrité I égale a 1 donc l’intégrité du donnée (Data) est vérifier, le deuxième ,
dans le cas contraire lorsque l’erreur est supérieure à 0, cela veut dire que la valeur de
l’intégrité inferieur à 1, deux cas se font distingués, le premier lorsque les deux empreintes H1
et H2 sont égaux cela veut dire qu’in y a une collision au niveau d’algorithme d’hachage, le
deuxième lorsque ne sont pas égaux cela veut dire que l’intégrité de donnée (Data) n’est pas
vérifié.











55

La conception et la réalisation


Début


N (AC) =5

N (IE) =0
H1=MD5 (Data)


Non Oui
Injection-erreurs

(Data, N(IE))





H2=MD5 (Data)
I=N (AC)/N (AC) +m*N (IE)



Non Oui
I<1



Non Oui
H1=H2


Intégrité

vérifiée

Collision

Intégrité n’est
pas vérifiée




Fin

Figure 3.2 : Organigramme de l’application

56

La conception et la réalisation

Nous résumons notre algorithme à partir d’un organigramme traité précédemment :
Algorithme Application_MD5
//Initialisation des variables
Fichier Data // Un fichier « Data »
Entier N(AC)=5 // Le nombre des fonctions élémentaire du MD5
Entier N(IE)=0 // Le nombre des erreurs
Entier H1=MD5(Data) // L’empreinte initiale du fichier Data
//programme principale
Début
Si (Injection-erreurs (Data, N(IE)) Alors //T1
H2=MD5 (Data)
I=N (AC)/N (AC) +m*N (IE) // La formule de l’intégrité I
Si (I<1) Alors //T2
Si (H1=H2) Alors Ecrire ”Collision au niveau MD5” //T3
Sinon Ecrire ”L’intégrité du fichier Data n’est pas vérifié”
Fin Si //T3
Sinon Ecrire ”L’intégrité du fichier Data est vérifié”
Fin Si //T2
Sinon Ecrire ”L’intégrité du fichier Data est vérifié”
Fin SI //T1
Fin.
3.3.2 Les outils employés dans l’application
Dans notre étude, nous avons utilisé les outils suivants: Eclipse, API « JMF »,
API « Xuggle » et finalement « Gunplot » qui permet de tracer les courbes.



57

La conception et la réalisation

3.3.2.1 Eclipse
Eclipse est un IDE, Integrated Development Environment (EDI environnement de
développement intégré), c.-à-d. un logiciel qui simplifie la programmation en proposant un
certain nombre de raccourcis et d'aide à la programmation. Il est développé par IBM, est
gratuit et disponible pour la plupart des systèmes d'exploitation.
Au fur et à mesure que vous programmez, Eclipse compile automatiquement le code que vous
écrivez, en soulignant en rouge ou jaune les problème qu'il décèle. Il souligne en rouge les
parties du programme qui ne compilent pas, et en jaune les parties qui compilent mais peuvent
éventuellement poser problème (on dit qu'Eclipse lève un avertissement, ou warning en
anglais). Pendant l'écriture du code, cela peut sembler un peu déroutant au début, puisque tant
que la ligne de code n'est pas terminée (en gros jusqu'au point-virgule), Eclipse indique une
erreur dans le code.
Il est déconseillé de continuer d'écrire le programme quand il contient des erreurs, car Eclipse
est dans ce cas moins performant pour vous aider à écrire le programme.


Figure 3.3 : Interface Eclipse



58

La conception et la réalisation

3.3.2.2 L’API « JMF » (Java media framework)
Nous avons intégré cette API dans notre environnement java dans le but de lire les fichiers
multimédia et d’observer les modifications qui apparaissent. Nous commençons par leur
définition, puis les méthodes utilisées, dans note application.
Le JMF est une API extension à la JDK, fournie par Sun Microsystems et IBM. Elle permet
d'incorporer des données de type audio ou vidéo dans des applications Java et des applets.
Depuis la version 1.0 de JMF, nous pouvons lire divers formats vidéo dans des applications
Java. D'autres fonctionnalités sont ajoutées depuis la version 2.0 comme la capture caméra, la
sauvegarde, la transmission..etc.
JMF était dans sa version 2.1.1, avec une mise à jour qui date de Mars 2001. Elle a intégré
plusieurs améliorations au niveau RTP / RTSP et de nombreux composants ont été ajoutés.
Le JMF est considérée comme l'un des composants les plus importants de la famille Java
Media, qui comprend également Java3D, Java2D et JAI (Java Advanced Image) qui
permettent aux développeurs d'ajouter facilement et rapidement des fonctionnalités
multimédias à leurs applications, telle que le streaming vidéo, le graphisme 3D et le
traitement des images.
Nous allons étudier les différentes méthodes d’objet « Player » du « JMF» utilisées qui nous
permet de lire les fichiers multimédia.
Le « Player » est un objet dont le rôle est la lecture des données audio ou vidéo à partir de la
source de données et de leur renvoi, après traitement et à un moment précis à la carte son ou à
la carte graphique pour affichage. Ceci est similaire à un lecteur CD qui lit un CD audio et
renvoie le son au haut-parleur.
Le « Player » est l'acteur capital de l'API JMF. Il contrôle le chargement, l'acquisition des
ressources et l'exécution (démarrage, arrêt, vitesse d'exécution...) des données multimédia.
Avant d'émettre du son à la carte son ou des informations vidéo à la carte graphique, le
« Player » doit passer par six états, quatre d'entre elles sont fondamentales et les autres sont
considérées comme intermédiaires. Bref, un état intermédiaire se situe entre deux états
fondamentaux.
Vu que le « Player » effectue un traitement ou attend la disponibilité d'une ressource, nous
pouvons, en fait considérer les états intermédiaires comme des états d'attente pour passer à un
état fondamental.
On peut schématiser le passage du « Player » par ces états selon le schéma suivant :

59

La conception et la réalisation


RCE: RealizeCompleteEvent / PFCE : PrefetchCompleteEvents
Figure 3.4 : Les étapes fondamentales et intermédiaires du lecteur « JMF »
Comme le montre le schéma, certaines transitions peuvent être invoquées par des appels de
méthodes.
Voyons donc de plus près ces différents états.
Unrealized
Le « player » est instancié comme un nouveau né qui ne connait rien de son environnement et
des ressources qu'il doit réaliser. On peut obtenir cet objet à partir du gestionnaire de
document multimédia (la classe Manager).
MonPlayer player = Manager.createPlayer(URL du document);
Realizing
C'est un état intermédiaire dans lequel le « player » détermine ses ressources qu'il pourrait
partager avec d'autres « player ».
Ce sont la plupart du temps des ressources réseaux. Du fait qu'elles peuvent être partagées
entre plusieurs « players », on peut les appeler des ressources non exclusives.
Le passage à cet état est fait suite à un appel à la méthode « realize() » :
monPlayer .realize() ;
Realized
Le « player » connait à cet état le type de document multimédia qu'il doit traiter et sait quelles
ressources il doit acquérir.
De ce fait, il peut préparer le composant visuel pour l'affichage de la vidéo ainsi que le
panneau des boutons de commandes et de lecture.
Prefetching
État intermédiaire où le « player » se prépare à présenter cette fois-ci ses ressources
exclusives, c'est-à-dire celles qu'il doit être le seul à utiliser.

60

La conception et la réalisation

Le passage à cet état se fait suite à l'appel de la méthode « prefetch() » :
monPlayer.prefetch();
Prefetched
À cette étape, le « palyer » aura reçu toutes ses ressources exclusives pour traiter
convenablement le document multimédia. Il est prêt ainsi à le présenter correctement.
Started
L'appel à la méthode « start() » mène le « player » à l'état « started » entrainant ainsi
l'affichage de la vidéo à l'écran.
monPlayer.start();
Un appel à la méthode « stop() » permet de retourner à l'état « Prefetched ».
monPlayer.stop();
Quand les traitements prévus dans l'état intermédiaire seront achevés, le passage à l'état
fondamental sera automatique. Ce passage est accompagné par la création d'un objet d'une
classe héritant de « TransitionEvent » par le « player ». La figure ci-dessous présente les
différentes sous classes de « TransitionEvent » que le « player » peut instancier lors de son
passage de l'état « Unrealized » à l'état « Started ».

Figure 3.5 : Les sous classes de « TransitionEvent »

3.3.2.3 L’API « Xuggle »
Nous avons integré l’API « Xuggle » dans le but d’extraire toute les informations du fichier
mutlimedia qui concernent leurs composants tells que le type de fichier, la taille ,la duré et le
bitrate , …etc. Ces derniéres vont etre collectées dans une chaine de caractères, puis calculer
l’emprainte du fichier par MD5 ou SHA-256 et virifier son integrité des données. Nous avons
aussi utilisé cette API pour modifier et générer des erreurs sur le fichier multimedia.
Les classes utilisées sont : « IContainer » et « IStreamCoder » , que nous allons définir leurs
méthodes utilisées dans notre réalisation.


61

La
L c
on
o ce
c pt
p io
i n
o e
t l
a r
é
r ali
l s
i at
a io
i n
o

La classe IContainer :

Type
Nom de méthode
Mi
M s en
e œuvre
int
open (Da
D t
a aIn
I put input,IContainerFormat format)
Ouvrir un co
c nten
e eu
e r et le
rendre prê
r t
ê pour la lecture.
long
getDuration()
Obtenir la durée du
co
c nten
e eu
e r.
long
getFileSize()
Obtenir la
a tai
a lle du fichier
en octets de ce conteneur.
int
getBitRate()
Obtenir le débit global
calculé de
e ce
c fichier.
int
ge
g t
e Nu
N mStre
r am
a s()
(
Nombre de flux du fichier
multimed
e ia.
a
IContainer make()
Cré
r e
é r
e
r un nouveau
a objet
e
co
c nten
e eu
e r
Tablea
e u 3.5 : Les méthodes de la classe « IContainer »
La classe IStreamCoder :

Type
Nom du méthode
Mi
M s en
e œuvre
ICodec.Type
getCodecType()
Typ
y e
e de
e fi
f ch
c ier
e
r multimed
e ia
ICodec.ID
getCodecID()
Ob
O ten
e tion d’i
’ den
e tifi
f ca
c t
a eu
e r
r du
codec
IRational
getTimeBase()
Ob
O ten
e tion du tem
e ps de
e bas
a e
int
getSampleRate()
Ob
O ten
e tion du simple-rate du
fi
f ch
c ier
e
r multimed
e ia
int
getChannels()
Obtention le
e nombre
r de canaux
de ce fl
f ux au
a dio
IAudioSamples.Format
getSampleFormat()
Obtention du format du son
int
getWidth()
La lar
a ge
g u
e r
r des
e pixel
e s
int
getHeight()
La
L
a hau
a teu
e r
r des
e pixel
e s
IPixelFormat.Type
getPixelType()
Pour
r les
e fl
f ux vidéo
é , obtenir le
format de
e pixel
e en cours
d'utilisation.
IRational
getFrameRate()
Obtention du frame-rate

Tableau 3.6 : Les
e mé
m t
é h
t odes
e uti
t liser
e
r dans la cl
c as
a se
e « IStr
t e
r a
e mC
m o
C der »

62

La conception et la réalisation

Pour génerer des modifications sur les fichiers multimedias , nous avons utilisé les classe
« IMediaReader » et « IMediaWriter » qui sont une instance de la classe « IMediaCoder » du
« Xuggle ». Un « IMediaCoder » qui lit et décode les médias à partir d'un « IContainer ».
La classe « IMediaReader »
L’« IMediaReader » ouvre un conteneur médias, lit ses paquets, décode les données et envoie
ensuite des informations sur les données à tous les objets enregistrés. La principale méthode
d'intérêt est « readPacket () ». Cette dernière qui permet de décoder les paquets du
multimédia. Il fera automatiquement appel à la méthode « open () », si elle n'a pas déjà été
appelé. Et fait appel automatiquement à la méthode « close () » quand il lit une erreur à la fin
de fichier.
La méthode « readPachet() » retourne la valeur « null » s’il y a plus de paquets à lire, si non
retourner une instance « IError ». Si « IError.getType () == IError.Type.ERROR_EOF » puis
la fin du fichier est atteinte.
Exemple :
Voici un exemple d’utilisation de la classe « IMediaReader » qui permet de lire un fichier
multimédia et l’afficher sur écran en temps réel.
IMediaReader reader = ToolFactory.makeReader("myinputfile.flv");
reader.addListener(ToolFactory.makeViewer());
while(reader.readPacket() == null);

la classe « IMediaWriter »
L’« IMediaWriter » est une interface simplifiée pour la bibliothèque « Xuggler » qui ouvre un
conteneur médias, et permet aux données des médias à écrire dedans.
Les appels à « encodeAudio (int IAudioSamples) » et « encodeVideo (int, IVideoPicture) »
codent les médias en paquets et écrire ces paquets dans le conteneur spécifié.
Exemple :
Voici un exemple qui permet de convertir un fichier MP4 en FLV, grâce à la méthode
« IMediaWriter ».
IMediaReader mediaReader = ToolFactory.makeReader(« MyVideo.MP4 »);

mediaReader.setBufferedImageTypeToGenerate(BufferedImage.TYPE_3BYTE_BGR);
IMediaWriter mediaWriter = ToolFactory.makeWriter(« MyVideo.FLV »,
mediaReader);
while(reader.readPacket() == null);


63

La conception et la réalisation

3.3.2.4 Gnuplot
« Gnuplot » est un programme souple qui peut produire des représentations graphiques en
deux ou trois dimensions de fonctions numériques ou de données. Le programme fonctionne
sur tous les ordinateurs et systèmes d'exploitation principaux et peut envoyer les graphiques à
l'écran ou dans des fichiers dans de nombreux formats. « Gnuplot » utilise également l'LMA
pour ajuster les paramètres d'une fonction numériques sur des données expérimentales.
3.3.3 Les interfaces graphiques
Dans cette partie, nous allons expliquer les différentes interfaces graphiques que nous avons
implémentées en environnement java. Nous commençons par l’interface du calcule de
l’intégrité dans un fichier texte.
Cette interface est similaire aux interfaces des fichiers (image, vidéo et audio). Donc il suffit
d’expliquer celui de l’intégrité du fichier texte (figure 3.6).


64

La conception et la réalisation
1
2
4
5
3
6
8
7
9
10
11
12
13
15
14
16
17
18
19
20
21

Figure 3.6 : L’interface principale de l’application
Composant 1 : le menu « Fichier » qui englobe des sous menus sont : Ouvrir : (un fichier
texte, image, vidéo ou audio), Enregistrer, Enregistrer sous et Fermer.
Composant 2 : le menu « Edition » pour faire « copier », « couper », « coller » et effacer
toutes les informations sur les différents formulaires de l’interface graphique.
Composant 3 : le menu « Modification » qui se compose de deux sous menus sont :
« Modifications du fichier » et « Affichage du modifications ».
Le sous menu « Modification du fichier » fait appel à l’interface si dessous (figure 3.7) qui
permet de lancer les modifications sur le fichier soit en mode automatique et aléatoire, ou
d’une façon manuel :

65

La conception et la réalisation


Figure 3.7 : Le mode de perturbation (Automatique/Manuel)
Dans le cas de mesurer l’intégrité d’un fichier texte, et lorsque la modification sera effectuée
manuellement, une autre interface (figure 3.8) sera lancer, cette dernière comporte trois
boutons permettant de lancer des différentes modifications : ajouter un caractère au fichier,
modifier ou supprimer un caractère.

Figure 3.8 : les modifications dans un fichier texte
Dans le cas de mesurer l’intégrité d’un fichier image, et lorsque la modification sera effectué
manuellement, une interface graphique (figure 3.9) sera lancée, cette dernière comporte trois
actions permettent de modifier l’intégrité du l’image : ajouter une autre image sur l’image que
nous désirons mesurer son intégrité, modifier ses couleurs ou changer son extension.

Figure 3.9 : Les modifications dans un fichier image

66

La conception et la réalisation

Dans le cas de mesurer l’intégrité d’un fichier vidéo, une interface graphique (figure 3.10)
sera lancée, cette dernière comporte aussi trois actions pour modifier l’intégrité du fichier :
convertir l’extension « MP4 » vers le « FLV » et le vis versa, modifier la synchronisation
entre les images et le son de fichier et ajouter une image dans la vidéo.

Figure 3.10 : Les modifications dans un fichier multimédia (Vidéo)
Dans le cas de mesurer l’intégrité d’un fichier audio, trois actions permettent de modifier
l’intégrité du fichier : mixer un autre son au son que nous désirons mésuser son intégrité,
convertir l’extension du fichier « WAV » vers le « MP3 » et le vis versa et modifier la
synchronisation du son (figure 3.11).

Figure 3.11 : Les modifications dans un fichier multimédia (Audio)
Le menu « Affichage du modifications » lance une interface graphique qui permet d’afficher
les différentes modifications sur les composants du fichier multimédia, pour un fichier
vidéo (figure 3.12) :

67

La conception et la réalisation


Figure 3.12 : Affichage des composants modifiés de la vidéo
Par contre dans le cas d’un ficher audio, l’interface (figure 3.13) sera afficher de la manière
suivante :

Figure 3.13 : Affichage des composants modifiés d’audio

68

La conception et la réalisation

Composant 4 : A propos du l’application.
Composant 5 : nous avons le choix de choisir la langue du l’application, français ou anglais.
Composant 6 : le menu « Statistique » comportant deux sous menus : « Statistique du
fichier » et « Histogramme ». Le premier permet d’afficher les nombres d’erreurs générées
pour modifier l’intégrité ainsi la taille du fichier avant et après la modification. Cette interface
est la suivante :
Exemple d’interface (figure 3.14) qui permet de montrer une statistique des erreurs dans le
fichier texte.

Figure 3.14 : Statistiques d’erreurs du fichier
La deuxième (figure 3.15) qui permet de nous donner le script créer en « Gnuplot » de la
formule de l’intégrité pour tracer la courbe, du MD5, SHA-256 ou une comparaison entre eux.

Figure 3.15 : Script « Gnuplot » de la formule
Composant 7 : le menu « traitement » comporte quatre sous menus dans le but de choisir le
type de fichier : texte, image ou multimédia, pour mesurer leur intégrité.

69

La conception et la réalisation

Composant 8 : dans le cas de mesurer l’intégrité d’un fichier texte, avant et après la
modification, le contenu de ce fichier sera affiché dans ce formulaire.
Dans le cas d’un fichier image, avant et après la modification, image sera affiché dans une
autre interface (figure 3.16) :

Figure 3.16 : Affichage les modifications du fichier image
Dana le cas d’un fichier multimédia, le contenu sera afficher selon le lecteur « JMF » (figure
3.17) :

Figure 3.17 : Lecteur multimédia « JMF »
Composant 9 : la taille initiale du fichier (avant les modifications).
Composant 10 : le choix de l’algorithme MD5 ou SHA-256 pour effectuer le calcule
l’intégrité du fichier.
Composant 11 : l’empreinte initiale du fichier avant les modifications.
Composant 12: la taille de l’empreinte soit 128 bits de MD5 ou 256 bits pour l’SHA-256.
Composant 13 : le nombre de traitement des données N(AC) correspondant au MD5 ou
SHA-256.
Composant 14 : un bouton « Etape 1 » lance une autre interface graphique (figure 3.18) qui
nous permet de charger les pondérations des erreurs appliquées sur le fichier :

70

La conception et la réalisation


Figure 3.18 : Chargement les pondérations des erreurs
Composant 15 : la liste des pondérations chargées.
Composant 16 : la valeur de l’erreur N(IE) calculée.
Composant 17 : le bouton « Etape 2 » lance une interface (figure 3.19) qui calcule la valeur
de l’erreur en deux modes : la somme ou le produit des erreurs générées.

Figure 3.19 : Le calcule de l’erreur
Composant 18 : l’empreinte finale du fichier après les modifications.
Composant 19 : la taille du fichier après les modifications.
Composant 20 : le bouton « Etape 3 » permet de calculer la valeur de l’intégrité du fichier.
Deux cas peuvent apparaitre (figure 3.20) : soit l’intégrité du fichier est vérifié ou n’est pas
vérifié (touché).

Figure 3.20 : Boites des dialogues de vérification de l’intégrité
Composant 21 : la valeur de l’intégrité I.


71

La conception et la réalisation

3.3.4 Les courbes
D’après l’applicaton de notre formule de l’intégrité sur les differents types des donneés, nous
avons tracé les courbes qui concernent le changement de l’emprainte des algorithmes
d’hachage MD5 et SHA-256, puis une comparaison entre elles. Par l’utilisation d’outil
« gnuplot » qui permet de tracer les courbes pour les formules mathématiques, nous avons
tracé les courbes de la formule de l’intégrité I pour les algorithmes MD5 et SHA-256. Ces
courbes représentent le changement de leurs empraintes correspondantes.
Au debut nous commençons par la courbe tracée pour le changement de l’enprainte du MD5.
Si I=1 cela veut dire que l’intégrié de la donnée dans un état correct sans erreurs apparues.
Lorsque les erreurs apparaissent, nous distingons la valeur de l’intégrité qui diminue. Donc il
y a une relation de refléxion entre la valeur de l’intégrité I et la valeur de l’erreur qu’il a
représenté par la variable « x » sur une intervalle [0,100[ sur cette courbe ci-dessous (figure
3.21).

Figure 3.21 : Le changement d’empreinte du MD5
La courbe ci-dessous (figure 3.22), représente le changement de l’empreinte de l’algorithme
de hachage SHA-256.

Figure 3.22 : Le changement d’empreinte du SHA-256

72

La conception et la réalisation


Finalement (figure 3.23), nous réalisons une comparaison de changement d’emprainte entre
les deux algorithmes de hachage MD5 et SHA-256. Si nous choisissons une valeur d’erreur x,
par projection, nous déterminons les valeurs de l’intégrité I corespendantes aux algorithmes
MD5 et SHA-256. Nous remarquerons que la valeur de I du SHA-256 est strictement
supérieur à celui de MD5, pour la raison du nombre de traitement des données N(AC) est
celui du nombre des fonctions élémentaires de l’algorithme. Dans la premiere partie , nous
voyons la décomposition des algorithmes MD5 et SHA-256, et que le N(AC) du MD5 est égal
à 5 et celui de SHA-256 est égal à 8 . A partir de cette courbe, nous concluons que
l’algorithme de hachage du SHA-256 est le plus sécurisé que celui de MD5 à cause de son
nombre des fonctions élémentaires qui est strictement supérieur à celui du MD5. Pour cette
raison, ce dernier est cassable et plus vulnérable.

Figure 3.23 : La comparaison entre les deux algorithmes
Donc dans le domaine de la mesure de l’intégrité, nous allons aboutir à une clasification des
algorithmes de hachage selon leur efficasité par la valeur d’intégrité I, et qui nous aide aussi à
choisir l’algorithme hachage le plus sécurise pour assurer le bon fonctionnement du système
informatique.
3.4 Conclusion
Dans ce chapitre, nous avons étudié les algorithmes d’hachage, spécialement le MD5 et SHA-
256 et leurs mis en œuvres dans le domaine de mesure de l’intégrité des données, et nous
avons vu leurs décompositions en fonctions élémentaires, puis nous avons considéré le
nombre de ces fonctions comme un nombre de traitement des données N(AC) pour nous aider

73

La conception et la réalisation

à calculer la valeur de l’intégrité, après un certain nombres des modifications sur les différents
types des fichiers : textes, images ou multimédias.
D’après le traçage de la courbe de notre formule de l’intégrité I, nous aboutissons à une
classification des algorithmes d’hachage d’âpres la valeur de l’intégrité calculée pour chacun
de ces algorithmes. Nous concluions que l’algorithme SHA-256 est le plus sécurisé que celui
du MD5 qui rend ce dernier cassable et plus vulnérable par rapport à SHA-256.


74


Conclusion générale


Conclusion générale
Depuis quelques années, la notion de la sécurité informatique s’est de mieux en mieux définie
et les utilisateurs des ordinateurs prennent de plus en plus conscience de l’importance de se
doter de cadres visant à assurer une meilleure protection des données.
Un nombre grandissant d’utilisateurs ont eu à faire face à une perte de données, d’une
modification ou au vol d’informations. Ces utilisateurs ne se sentaient souvent pas à risque
pour toutes sortes de raisons et les événements leur ont dû coûter des sommes pouvant être
importantes.
C’est la raison pour laquelle, chaque administrateur d’un système doit d’être au courant des
vulnérabilités des logiciels qu’il utilise et de se mettre dans la peau d’un pirate afin d’essayer
de s’introduire dans son propre système. Lorsque les compétences ne sont pas suffisantes pour
mener à bien cette opération, il convient de faire réaliser une Audit par une société spécialisée
dans la sécurité informatique.
Dans le but de diminuer l’apparition des vulnérabilités et pour cette raison, la notion de
mesure de la sécurité est née, nous permettant de choisir le bon outil de protection après un
ensemble de mesures appliquées.
L’objectif recherché à travers la rédaction de ce mémoire est d’aboutir à une mesure de
l’intégrité des données, appliquée sur les algorithmes de hachage, puis les classifier selon leur
efficacité afin d’assurer le bon fonctionnement de notre système informatique.
Le domaine de la mesure de la sécurité informatique est très vaste. Mais nous pouvons
affirmer aujourd’hui que nous sommes capable de mésuser l’intégrité des données par la
formule qui a été définie dans le cadre de notre projet.
Nous avons appliqué cette formule sur les différents types de données : texte, image, vidéo et
audio, et nous aboutissons à l’idée que l’algorithme SHA-256 est plus sécurisé que celui de
MD5 d’après leurs valeurs de l’intégrité I, car le nombre des fonctions élémentaires du SHA-
256 est strictement supérieur à celui du MD5, qui rend ce dernier cassable et plus vulnérable
par rapport à SHA-256.
Ceci dit, nous pouvons l’appliquer dans de futures recherches sur les différents outils de la
sécurité (Antivirus, Firewall...etc ) et les classifier selon leur degré croissant : du sécurisé

75


Conclusion générale


jusqu’au plus vulnérable, cette classification nous donne une idée pour une future
amélioration sur ces outils vulnérables.

76


Annexe


Annexe
KGB : soit le Comité pour la Sécurité de l'État, était le nom du principal service de
renseignement de l'Union soviétique. À l'intérieur de cet État, il avait également fonction de
police politique.
MCI : MCI Communications était une société américaine de télécommunications qui a
contribué à des changements juridiques et réglementaires qui ont conduit à l'éclatement de
l'AT & T monopole de la téléphonie américaine et a marqué le secteur de la téléphonie longue
distance concurrentiel.
IDS (Système de détection d'intrusion) : Un IDS est un système qui a pour but de détecter
des intrusions sur un réseau ou une machine.
DMZ (Demilitarized Zone): En sécurité informatique, un sous-réseau isolé par un pare-feu.
GPRS (General Packet Radio Service) : est une norme pour la téléphonie mobile dérivée du
GSM permettant un débit de données plus élevé. On le qualifie souvent de 2,5G.
3G (La troisième génération) : désigne une génération de normes de téléphonie mobile. Elle
est représentée principalement par les normes Universal Mobile Telecommunications System
(UMTS) et CDMA2000, permettant des débits bien plus rapides (2Mbps prévus à maturité du
réseau) qu'avec la génération précédente, par exemple le GSM.
SSO (Single Sign-On) : est une méthode permettant à un utilisateur de ne procéder qu'à une
seule authentification pour accéder à plusieurs applications informatiques (ou sites Web
sécurisés).
SSL (Secure Sockets Layer): est un protocole de sécurisation des échanges sur Internet,
développé à l'origine par Netscape (SSL version 2 et SSL version 3).
VPN (Virtual Private Network) : Un réseau privé virtuel repose sur un protocole, appelé
protocole de tunnelisation (tunnelingen en anglais), c'est-à-dire un protocole permettant aux
données passant d'une extrémité du VPN à l'autre d'être sécurisées par des algorithmes de
cryptographie.

77


Annexe


SHA-1 (Secure Hash Algorithm) : Cet algorithme prend des messages de moins de 264 bits
de longueur et génère un condensé de 160 bits. C’est l’algorithme de hachage à sens unique le
plus populaire pour créer des signatures numériques.
TLS (Transport Layer Security) : anciennement nommé Secure Sockets Layer (SSL), est un
protocole de sécurisation des échanges sur Internet, développé à l'origine par Netscape . Il a
été renommé en Transport Layer Security (TLS) par l'IETF suite au rachat du brevet de
Netscape par l'IETF en 2001. Le groupe de travail correspondant à l'IETF a permis la création
des RFC 2246 pour le TLS et RFC 4347 pour son équivalent en mode datagramme, le DTLS.
Depuis son rapatriement par l'IETF, le protocole TLS a vécu deux révisions subséquentes :
TLSv1.1 décrite dans la RFC 4346 et publiée en 2006 et TLSv1.2, décrite par la RFC 5246 et
publiée en 2008.
PGP (Pretty Good Privacy) : est un logiciel de chiffrement et de signature de données
utilisant la cryptographie asymétrique mais également la cryptographie symétrique. Il fait
donc partie des logiciels de cryptographie hybride.
SSH (Secure Shell) : est à la fois un programme informatique et un protocole de
communication sécurisé. Le protocole de connexion impose un échange de clés de
chiffrement en début de connexion. Par la suite toutes les trames sont chiffrées. Il devient
donc impossible d'utiliser un sniffer pour voir ce que fait l'utilisateur.
S / MIME (Secure / Multipurpose Internet Mail Extensions) : est une norme pour
cryptographie et de signature numérique de courriel encapsulés en format MIME. Elle assure
l'intégrité, l'authentification, la non-répudiation et la confidentialité des données.
IPsec (Internet Protocol Security) : défini par l'IETF comme un cadre de standards ouverts
pour assurer des communications privées et protégées sur des réseaux IP, par l'utilisation des
services de sécurité cryptographiques, est un ensemble de protocoles utilisant des algorithmes
permettant le transport de données sécurisées sur un réseau IP.
FIPS PUB 180-1 (Federal Information Processing Standards Publications) : sont publiées
par NIST, après approbation par le Secrétaire au commerce conformément de la propriété
fédérale et des services administratifs et FIPS PUB 180-1 est la présente norme spécifie SHA-
1.

78


Annexe


Signature numériques : est l’un des mécanismes qui permettent d’assurer les fonctions
d’authentification et d’intégrité. Il est utilisé en particulier dans la messagerie électronique.
Pour générer une signature électronique, il faut dans un premier temps utiliser une fonction de
hachage.
Force brute : est une méthode utilisée en cryptanalyse pour trouver un mot de passe ou une
clé. Il s'agit de tester, une à une, toutes les combinaisons possibles. Cette méthode de
recherche exhaustive ne réussit que dans les cas où le mot de passe cherché est constitué de
peu de caractères. Ces programmes tentent toutes les possibilités de mot de passe dans un
ordre aléatoire afin de berner les logiciels de sécurité qui empêchent de tenter tous les mots de
passe dans l'ordre.
Crypto++ V5.6.0 Benchmarks : Tous ont été codés en C + +, compilé avec Microsoft Visual
C + + 2005 SP1 (optimisation ensemble du programme, optimiser pour la vitesse), et a couru
sur un processeur Intel Core 2 1,83 GHz sous Windows Vista en mode 32-bit.
x86/MMX/SSE2 routines en langage assembleur ont été utilisés pour l'arithmétique entière,
AES, MD5, SHA-256, SHA-512, Tiger et Whirlpool.

Algorithme
MB/s
Cycle/bit
AES/GCM (2K tables)
102
17.2
AES/GCM (64K tables)
108
16.1
AES/CCM
61
28.6
AES/EAX
61
28.8
CRC32
253
6.9
Adler32
920
1.9
MD5
255
6.8
SHA-1
153
11.4
SHA-256
111
15.8
SHA-512
99
17.7
Tiger
214
8.1
Whirlpool
57
30.5
RIPEMD-160
106
16.5
RIPEMD-320
110
15.9
RIPEMD-128
153
11.4
RIPEMD-256
158
11.1

IBM (International Business Machines) : est une société multinationale américaine présente
dans les domaines du matériel informatique, du logiciel et des services informatiques.

79


Annexe


JDK (Java Development Kit) : est l'environnement dans lequel le code Java est compilé
pour être transformé en bytecode afin que la machine virtuelle Java (JVM) puisse l'interpréter.
Les composants primaires du JDK sont une sélection d'outils de programmation, incluant :
• javac : le compilateur, qui convertit le code source en fichier .class (contenant le bytecode
Java)
• jar : l'archiveur, qui met sous forme d'un paquetage unique l'ensemble des fichiers class en
un fichier JAR,
• javadoc : le générateur de documentation, qui génère automatiquement de la
documentation à partir des commentaires du code source,
• Jdb : le débogueur,
L'environnement d'exécution Java fait également partie du JDK.
API : Dans le domaine de la programmation, ensemble de primitives permettant à un programme
d'utiliser des ressources système.
LMA (Levenberg-Marquardt Algorithm) : permet d'obtenir une solution numérique au
problème de minimisation d'une fonction, souvent non-linéaire et dépendant de plusieurs
variables.
RTP (Real-time transport protocol) : un protocole informatique de transport pour la diffusion en
temps réel (simulé) sur réseaux et Internet.
RTSP (Real Time Streaming Protocol) : est un protocole de communication destiné aux
systèmes de streaming média. Il permet de contrôler un serveur de média à distance, offrant
des fonctionnalités typiques d'un lecteur vidéo telles que « lecture » et « pause », et
permettant un accès en fonction de la position temporelle.
JAI (Java Advanced Image) : Java est une extension de la plateforme API qui fournit un
ensemble d'interfaces orientées objet que le soutien d'un simple modèle de programmation de
haut niveau qui permet aux développeurs de créer leurs propres routines de manipulation
d'images, sans les coûts supplémentaires ou des restrictions de licences, associé à un logiciel
de traitement d'images commerciales.


80


Bibliographie


Bibliographie

[1] G. Vache-Marconato, "Evaluation quantitative de la sécurité informatique : approche par
les vulnérabilités", "l'Institut National des Sciences Appliquées de Toulouse", "LAAS-
CNRS", pp 2

[2] J.P.Anderson, "Computer Security Threat Monitoring and Surveillance", "Technical
Report", " James P Anderson Co", "Fort Washington", 1980.

[3] A. Diagne, "Projet Sécurité-Groupe Analyse", "Université Paul Sabatier-Toulouse,
Master2-Système Télécommunication et Réseau Informatique", pp 3

[4] TCSEC (1985), "Trusted Computer System Evaluation Criteria", "Technical Report
DoD", "Department of Defense".

[5] ITSEC (1991), "Information Technology Security Evaluation Criteria", "Technical
report".

[6] ITSEC, "Information Technology Security Evaluation Criteria", "Office for Official
Publications of the European Communities", 1991.

[7] Y. Deswarte, et L. Mé, "La sécurité des systèmes d’information et de communication, in
Sécurité des réseaux et des systèmes répartis", (Yves Deswarte & Ludovic Mé, eds), Traité
IC2, Hermès, 2003.

[8] A. Saidane, "Conception et réalisation d’une architecture tolérant les intrusions pour des
serveurs Internet", "Doctorat de l’Institut National des Sciences Appliquées de Toulouse",
"Laboratoire d’Analyse et d’Architecture des Systèmes du CNRS", 2005, pp 15-16.

[9] J. ILLAND, "Politique de Sécurité des Systèmes d’Information (PSSI) ","Centre
nationale de la recherche scientifique", 2006, pp 6.

[10] E. ALATA, "Observation, caractérisation et modélisation de processus d’attaques sur
Internet", "thèse doctorat", "Université de Toulouse", 2007, pp 24

[11] "Critères d’évaluation de la sécurité des systèmes informatiques (ITSEC) ", "Office des
publications officielles des communautés européennes", "Luxembourg"

[12] J.-C. Laprie et al, "Guide de la sûreté de fonctionnement", "Cépaduès Éditions", 1996, pp
370.

[13] "Dictionnaire Larousse de la langue française", 2009.

[14] H.Zuse, "Software complexity", "Measures and methods", "Walter de Gruyter Editions",
1991.

[15] S. Stevens, "Measurement, Psychophysics and Utility", "Chap. 2 of Measurement:
Definitions and Theories", "in C. W. Churchman & P. Ratoosh (Eds.) ", 1959.

81


Bibliographie



[16] U.S. "Department of Defence Trusted Computer Security Evaluation criteria", 1985.

[17] "The Canadian Trusted Computer Product Evaluation Criteria", "Canadian System
Security Center", "Communication Security Establishment of Canada", 1993.

[18] "Common Criteria for Information Technology Security Evaluation", "Introduction and
General Model", 1996.

[19] "Information Technology Security Evaluation Criteria", "European Communities", 1991.

[20] "G.Vache-Marconato", "Evaluation quantitative de la sécurité informatique : approche
par les vulnérabilités", "l'Institut National des Sciences Appliquées de Toulouse", "LAAS-
CNRS", Page 19

[21] "Information Technology Security Evaluation Manual", "European Communities", 1993.

[22] "Federal Criteria for Information Technology Security", "Draft, Volume I & II, National
Institute of Standards and Technology (NIST) and National Security Agency (NSA) ", 1992.

[23] "Club de la Sécurité des Systèmes d'Information Français", "ISO17799:2000 –Une
présentation générale", "Dossier technique", 2003.

[24] "ISO/IEC 17799:2000 – Code of practice for Information Security Management".

[25] Ernst & Young, "Global Information Security Survey", 2005.

[26] "An Introduction to ISO 27001, ISO 27002....ISO 27008": http://www.27000.org

[27] M. Dacier, "Vers une évaluation quantitative de la sécurité", "Thèse de doctorat",
"Rapport LAAS", 1994.

[28] N.Abghour, "Schéma d'autorisation pour applications réparties sur Internet", "Thèse de
doctorat", "Institut National Polytechnique de Toulouse", 2004.

[29] J-C. Laprie, J. Arlat, J-P. Blanquart, A. Costes, Y. Crouzet, Y.Deswartes, J-C. Fabre, H.
Guillermain, M. Kaâniche, K. Kanoun, C. Mazet, D. Powell, C. Rabéjac, P. Thévenod,
"Guide de la sûreté de fonctionnement", 1995.

[30] E.Alata, "Observation, Caractérisation et modélisation de processus d'attaques sur
Internet", "Thèse de Doctorat", 2007.

[31] A.J. A. Wang, "Information Security Models and Metrics", "Proceedings of ACM
Southeast Conference", pp 178-184, 2005.

[32] A.Jaquith, "Security Metrics", "Replacing Fear", "Uncertainty and Doubt", "Addison-
Wesley Editions", 2007.


82


Bibliographie


[33] B. Littlewood, S. Broklehurst, N. Fenton, P. Mellor, S. Page, D. Wright, J. Dobson, J.
McDermid, D. Gollmann, "Towards Operational Measures of Computer Security", 1993.

[34] J. R. Jones, "Estimating Software Vulnerabilities", "IEEE Security and Privacy", Jul-Aug
2007, pp 28-32.

[35] E.Alata, et M.Dacier, et Y.Deswarte, et M.Kaâniche, et K.Kortchinsky, and V.Nicomette
and V.H.Pham, and F.Pouget, Leurré.com: "retour d'expérience sur plusieurs mois
d'utilisation d'un pot de miel distribué mondialement", "Symposium sur la Sécurité des
Technologies de l'Information et des Communications (SSTIC'05) ", "Rennes (France)",
2005, pp 281-292

[36] M. Dacier, Y. Deswarte & M. Kaâniche. "Quantitative assessment of operational security
: models and tools", "12th IFIP Information System Security Conference", "Greece", 1996.

[37] R. Ortalo, "Evaluation quantitative de la sécurité des systèmes d'information", "Thèse de
doctorat", "Institut National Polytechnique de Toulouse", 1998.

[38] Y. Deswarte, "Comment mesurer la sécurité informatique ?", "LAAS", "Laboratoire
d’Analyse et d’Architecture des Systèmes", "CNRS", page 8

[39] O. M. Sheyner. "Scenario graphs and attack graphs", "Thesis of School of Computer
Science", "Computer Science department", "Carnegie Mellon University", 2004.

[40] S. Jha, O. Sheyner and J. Wing, "Two formal analyses of attack graphs", "Computer
Security Foundation Workshop", 2002.

[41] L.P. Swiler, C. Phillips, D. Ellis, S. Chakerian, "Computer-Attack Graph Generation
Tool", "DARPA Information Survivability and Exposition II", 2001.

[42] S. Noel, Jajodia, "Managing attack graph complexity through visual hierarchical
aggregation", "In Proceedings of the 2004 ACM Workshopon Visualization and Data Mining
For Computer Security", 2004.

[43] G. Rice and J. Davis, "a genealogical approach to analyzing post-mortem denial of
service attacks", 2002.

[44] G. Vache Marconato, "Evaluation quantitative de la sécurité informatique : approche par
les vulnérabilités", "l'Institut National des Sciences Appliquées de Toulouse", "LAAS-
CNRS", page 27

[45] D. Balzarotti, M. Monga, S. Sicari, "Assessing the risk of using vulnerable components",
"Quality of protection – Security measurements and metrics", 2006, pp 65-77.

[46] C. Wang, W. A. Wulf, "A framework for security measurement", "Proceedings of the
National Information Systems Security Conference", "Baltimore", 1997, pp 522-533.

[47] M. Walter, C. Trinitis, "Quantifying the secirity of Composed System, Proceedings of the
Workshop on Dependability of the Distributed Systems", 2006, pp 1026-1033.

83


Bibliographie



[48] B. Schenier, "Attack trees – Modeling security threats", www.schenier.com.

[49] M.A. McQueen, W.F. Boyer, M.A. Flynn, G.A. Beitel, "Time-to-compromise Model for
cyber risk reduction estimation", "Quality of protection – Security measurements and
metrics", 2006, pp 49-64.

[50] C. Irvine, T. Levin, "Toward a Taxonomy and Costing Method for Security Services",
"15th Computer Security Applications Conference", 1999, pp 183-188.

[51] K. Sallhammar, S. J. Knapskog, B. E. Helvik, "Using Stochastic game theory to compute
the expected behavior of attackers", "Symposium on applications and the Internet
Workshops", 2005.

[52] K. Sallhammar, B. E. Helvik, S. J. Knapskog, "Towards a Stochastic Model for
Integrated Security and Dependability Evaluation", "Proceedings of the First International
Conference On Availability", "Reliability and Security (ARES'06) ", 2006.

[53] P. Liu, W Zang, "Incentive-Based Modeling and Inference of Attaker Intent",
"Objectives and Strategies", "ACM Transactions on Information and System Security
(TISSEC) ", 2005, pp 78-118.

[54] D. Moore, V. Paxson, S. Savage, C. Shannon, S. Staniford, et N. Weaver, "Inside the
Slammer worm", "Security & Privacy", "IEEE", 2003, pp 33-39.

[55] H. W. Hetcote, Three basic Epidemiological Models, Biomathematics vol. 18, pp 119-
144, Springer Berlin, 1989.

[56] J. Kim, S. Radhakrishnan, S. K. Dhall, "Measurement d Analysis of WormPropagation
on Internet Network Topology", "International Conference on Computer Communications
and Networks", 2004.

[57] H. Okamura, H.Kobayashi, T.Dohi, "Markovian Modeling and Analysis of Internet
Worm Propagation", 2005.

[58] M.A. McQueen, W.F. Boyer, M.A. Flynn, G.A. Beitel, "Time-to-compromise Model for
cyber risk reduction estimation", "Quality of protection – Security measurements and
metrics", 2006, pp 49-64.

[59] B. Littlewood, S. Broklehurst, N. Fenton, P. Mellor, S. Page, D. Wright, J. Dobson, J.
McDermid, D. Gollmann, "Towards Operational Measures of Computer Security", 1993.

[60] M. Dacier, "Vers une évaluation quantitative de la sécurité", "Thèse de doctorat", 1994.

[61] R.Oral, Y.Deswarte, "Quantitative Evaluation of Information System Security
Experimented in a Bank Organization", "International Conference on Information System
Security in the Financial Sector", Slovaquie, 1999, pp 38-47.


84


Bibliographie


[62] Reijo M. Savola, Habtamu Abie, "Development of Measurable Security for a Distributed
Messaging System", "International Journal on Advances in Security", "vol 2 no 4", 2009, pp
367-368.

85

Mesure de métrique de sécurité-l'intégrité
Publier sur Facebook Publier sur Twitter
Informations
Date : 09/08/2011
Langue : Français
Pages : 94
Consultations : 252
Commentaires : 0
Note :  
Résumé

Auteur : hanachi ahmed abdelraouf


Editeur : hanachi ahmed abdelraouf


Description : notre thèse est une application d'une formule mathématique réalisent par M.Savola et H.abie qui permet de mesurer l'intégrité des données des fichier texte, image et multimédia. le langage de programmation utilisé c'est le java environnement ECLIPS.


Tags : Mesure métrique intégrité MD5 SHA-256

Sur le même thème
Vues : 2968
La sécurité des systèmes informatiques (Théorie)
Pseudo : Kapten
Vues : 2968
Date : 01/12/2010
Pages : 31
Langue : Français
Description :
I] Qu'est ce que la sécurité d'un système? II] Pourquoi sécuriser les systèmes informatiques III] Comment et avec quoi les...
Vues : 558
Sensibilisation à la sécurité informatique
Pseudo : Readandlearn
Vues : 558
Date : 28/12/2010
Pages : 46
Langue : Français
Description :
Guide de sensibilisation à la sécurité informatique
Vues : 503
La cryptographie, un outil au service de la sécurité des systèmes d'information
Pseudo : Docenstoc
Vues : 503
Date : 06/02/2011
Pages : 52
Langue : Français
Description :
La cryptographie, un outil au service de la sécurité des systèmes d'information.
Vues : 462
Sécurité Web (introduction)
Pseudo : Web 3.0
Vues : 462
Date : 09/10/2010
Pages : 60
Langue : Français
Description :
Document sous licence CC: http://creativecommons.org/licenses/by-sa/2.0/fr/. Sécurité Web (introduction).
Vues : 374
Les dangers sur Internet en chiffres
Pseudo : Readandlearn
Vues : 374
Date : 28/12/2010
Pages : 2
Langue : Français
Description :
Les dangers sur Internet en chiffres
Vues : 297
Guide pratique de la sécurité
Pseudo : Readandlearn
Vues : 297
Date : 28/12/2010
Pages : 2
Langue : Français
Description :
Guide pratique de la sécurité
Commentaires
Aucun commentaire pour cette publication
Ajouter un commentaire
Envoyer
Pour envoyer la page de votre document, notez ici les emails destinataires de votre demande :
Séparez les emails par des virgules
Signaler un abus
Vous devez vous connecter ou vous inscrire pour noter un document.
Cliquez ici pour vous inscrire.
Vous devez vous connecter ou vous inscrire pour ajouter un commentaire.
Cliquez ici pour vous inscrire.
Vous devez vous connecter ou vous inscrire pour envoyer le document.
Cliquez ici pour vous inscrire.
Vous ne pouvez pas acheter de documents sur Needocs.
Vous pouvez vous référer aux conditions générales de vente et d'achat du portail pour connaître les modalités d'achat.