Académique Documents
Professionnel Documents
Culture Documents
D’INFORMATION
Prosit 4
1
TABLE DES MATIERES
Introduction .................................................................................................................................... 4
Contexte ...................................................................................................................................... 4
Problématique ............................................................................................................................ 4
Généralisation ............................................................................................................................. 5
Pistes de solution ........................................................................................................................ 5
Mots Clés......................................................................................................................................... 5
Recherches et Approfondissements : ............................................................................................. 6
Hachage....................................................................................................................................... 6
Qu'est-ce que le Hachage ?..................................................................................................... 6
Objectifs du Hachage .............................................................................................................. 6
Fonctions de Hachage Couramment Utilisées : ...................................................................... 7
Applications du Hachage : ....................................................................................................... 8
Techniques de Salage : ............................................................................................................ 8
Conclusion : ............................................................................................................................. 9
Langage Java ............................................................................................................................... 9
Qu'est-ce que Java ? ............................................................................................................... 9
Historique de Java : ................................................................................................................. 9
Structure d'un Programme Java :............................................................................................ 9
Variables et Types de Données ............................................................................................. 10
Opérateurs : .......................................................................................................................... 10
Structures de Contrôle : ........................................................................................................ 10
Classes et Objets : ................................................................................................................. 10
Héritage : ............................................................................................................................... 10
Interfaces : ............................................................................................................................ 10
Packages : .............................................................................................................................. 11
Gestion des Exceptions ......................................................................................................... 11
Programmation Multithread................................................................................................. 11
Entrée/Sortie (E/S) ................................................................................................................ 11
Programmation Réseau ........................................................................................................ 11
Développement d'Applications Graphiques ......................................................................... 11
2
Accès aux Bases de Données ................................................................................................ 12
Conclusion ............................................................................................................................. 12
Réalisation ................................................................................................................................. 12
Reponse à la problematique ......................................................................................................... 16
Piste des solutions......................................................................................................................... 17
Synthèse des connaissances ......................................................................................................... 17
Réferences .................................................................................................................................... 17
3
Introduction
Contexte
Problématique
4
Généralisation
Cryptographie en entreprise
Pistes de solution
Utilisation du langage Java
Utilisation du code de César
Utilisation de hachage
Mots Clés
Usurper :
Signature :
Langage C :
5
Le langage de programmation C est un langage impératif qui a été
largement utilisé dans le développement logiciel. Connu pour sa
flexibilité et son efficacité, le langage C est souvent utilisé pour des
applications système et des logiciels embarqués. Il est également
pertinent dans le contexte de la sécurité informatique, étant donné
qu'il offre un contrôle de bas niveau sur le matériel, permettant la
mise en œuvre précise de protocoles de sécurité.
Mot de passe :
Recherches et Approfondissements :
Hachage
Objectifs du Hachage :
6
Intégrité des données : Le hachage est utilisé pour vérifier si des
données ont été altérées en comparant les empreintes avant et après une
transmission ou un stockage.
Les mots de passe ne sont pas stockés en texte brut, mais plutôt
sous forme de hachage, ce qui protège les informations en cas de
violation de la sécurité.
MD5 produit une empreinte de 128 bits et était populaire, mais des
vulnérabilités aux attaques par collision ont été découvertes, ce qui
signifie qu'il est possible de trouver deux entrées différentes
produisant la même empreinte.
SHA-256 et SHA-3 :
bcrypt et scrypt :
7
spécifiquement pour stocker de manière sécurisée les mots de
passe, ces algorithmes incluent des mesures anti-brute-force et sont
plus résistants aux attaques par force brute.
Applications du Hachage :
Les mots de passe sont hachés avant d'être stockés, ce qui empêche
la récupération des mots de passe en cas de violation de la sécurité.
Les empreintes sont utilisées pour vérifier si des données ont été
altérées lors de la transmission ou du stockage.
Tables de Hachage :
Techniques de Salage :
Avantages du Salage :
Sécurité et Considérations :
8
Explication des attaques qui cherchent à trouver deux entrées
différentes produisant la même empreinte.
Utilisation Responsable :
Conclusion :
Langage Java
Historique de Java :
9
Un programme Java est composé de classes.
Chaque classe contient des méthodes et des variables.
Opérateurs :
Structures de Contrôle :
Classes et Objets :
Héritage :
Interfaces :
10
Définition et implémentation d'interfaces.
Utilisation des interfaces pour atteindre une abstraction.
Packages :
Programmation Multithread
Entrée/Sortie (E/S)
Programmation Réseau
11
Création d'interfaces utilisateur graphiques avec JavaFX ou Swing.
Conclusion
Réalisation
12
Création d'une session :
Expiration de la session :
La session a généralement une durée de validité limitée. Après
cette période, l'utilisateur doit se reconnecter.
Enregistrement de l'utilisateur :
Connexion de l'utilisateur :
13
Lorsqu'un utilisateur tente de se connecter, le mot de passe
saisi par l'utilisateur est haché à l'aide de l'algorithme de
hachage, et le résultat est comparé au haché stocké dans la base
de données. Si les hachages correspondent, l'utilisateur est
considéré comme authentifié.
14
byte[] hash = digest.digest(input.getBytes());
return hexString.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
return null;
}
Voila un test
15
Réponse à la problématique
Il est important de noter que SHA-256 est seulement l'un des nombreux
algorithmes de hachage disponibles, et le choix de l'algorithme peut
dépendre des exigences spécifiques de sécurité de votre application.
D'autres algorithmes populaires incluent MD5, SHA-1, SHA-512, etc.
Cependant, MD5 et SHA-1 sont maintenant considérés comme faibles en
raison de vulnérabilités connues, et SHA-256 est celle que nos allons
mettre en place pour des raisons de sécurité accrue.
16
Piste des solutions
Langage Java
Code césar
Algorithme de Hachage SHA-256
Réferences
https://docs.oracle.com/javase/8/docs/technotes/guides/security/crypto/CryptoSpec.html
https://www.baeldung.com/java-md5
https://www.baeldung.com/sha-256-hashing-java
17