Un bon mot de passe est un mot de passe qui ne peut pas être trouvé à l'aide d'un dictionnaire.
Exercice : Entraînez-vous à trouver une dizaine de mots de passe complexes :
1m,1^^at1C$! (un matin, un lapin a tué un chasseur !)
L_@pt_V_an_MenGen (L'appétit vient en mangeant.)
VnÉ/p@100/cI (Venez souper à sans-souci.)
PdM_n@ArT!lP (Pluie du matin n'arrête pas pèlerin.)
Aprè5l4plu13l3b34u73mp5 (Après la pluie le beau temps.)
If@lMpB1JgL@V (Il faut attendre la mort pour bien juger la vie.)
Un bon mot de passe se doit d'être changé souvent (même si cela peut paraître gênant).
Un mot de passe est loin d'être infaillible. Pour vérifier cela, on peut utiliser le logiciel John the Ripper.
Exercice : Installez john the ripper. Entrez un utilisateur toto avec le mot de passe toto. Entrez un utilisateur normal avec le mot de passe fruit. Pour votre compte, utilisez un mot de passe complexe comme vous l’avez appris dans ce chapitre. Montrer le résultat après avoir exécuté john the ripper pendant dix minutes :
Récupération de la dernière version du programme et installation :
vanvincq@Debian-Laptop:~$ wget http://www.openwall.com/john/g/john-1.7.9.tar.gz vanvincq@Debian-Laptop:~$ tar xfz john-1.7.9.tar.gz; cd john-1.7.9/src vanvincq@Debian-Laptop:~/john-1.7.9/src$ make linux-x86-64 ln -sf x86-64.h arch.h make ../run/john ../run/unshadow ../run/unafs ../run/unique \ JOHN_OBJS="DES_fmt.o DES_std.o DES_bs.o DES_bs_b.o BSDI_fmt.o MD5_fmt.o MD5_std.o BF_fmt.o BF_std.o AFS_fmt.o LM_fmt.o trip_fmt.o dummy.o batch.o bench.o charset.o common.o compiler.o config.o cracker.o crc32.o external.o formats.o getopt.o idle.o inc.o john.o list.o loader.o logger.o math.o memory.o misc.o options.o params.o path.o recovery.o rpp.o rules.o signals.o single.o status.o tty.o wordlist.o unshadow.o unafs.o unique.o c3_fmt.o x86-64.o" \ CFLAGS="-c -Wall -O2 -fomit-frame-pointer -DHAVE_CRYPT" \ LDFLAGS="-s -lcrypt" make[1]: entrant dans le répertoire « /home/vanvincq/john-1.7.9/src » gcc -c -Wall -O2 -fomit-frame-pointer -DHAVE_CRYPT -funroll-loops DES_fmt.c gcc -c -Wall -O2 -fomit-frame-pointer -DHAVE_CRYPT -funroll-loops DES_std.c gcc -c -Wall -O2 -fomit-frame-pointer -DHAVE_CRYPT -funroll-loops DES_bs.c [...] gcc -c -Wall -O2 -fomit-frame-pointer -DHAVE_CRYPT -funroll-loops unshadow.c gcc -c -Wall -O2 -fomit-frame-pointer -DHAVE_CRYPT -funroll-loops unafs.c gcc -c -Wall -O2 -fomit-frame-pointer -DHAVE_CRYPT -funroll-loops unique.c gcc -c -Wall -O2 -fomit-frame-pointer -DHAVE_CRYPT -funroll-loops c3_fmt.c gcc -c x86-64.S gcc DES_fmt.o DES_std.o DES_bs.o DES_bs_b.o BSDI_fmt.o MD5_fmt.o MD5_std.o BF_fmt.o BF_std.o AFS_fmt.o LM_fmt.o trip_fmt.o dummy.o batch.o bench.o charset.o common.o compiler.o config.o cracker.o crc32.o external.o formats.o getopt.o idle.o inc.o john.o list.o loader.o logger.o math.o memory.o misc.o options.o params.o path.o recovery.o rpp.o rules.o signals.o single.o status.o tty.o wordlist.o unshadow.o unafs.o unique.o c3_fmt.o x86-64.o -s -lcrypt -o ../run/john rm -f ../run/unshadow ln -s john ../run/unshadow rm -f ../run/unafs ln -s john ../run/unafs rm -f ../run/unique ln -s john ../run/unique make[1]: quittant le répertoire « /home/vanvincq/john-1.7.9/src » vanvincq@Debian-Laptop:~/john-1.7.9/src$ cd ../run
vanvincq@Debian-Laptop:~$ sudo adduser toto Ajout de l'utilisateur « toto » ... Ajout du nouveau groupe « toto » (1001) ... Ajout du nouvel utilisateur « toto » (1001) avec le groupe « toto » ... Création du répertoire personnel « /home/toto »... Copie des fichiers depuis « /etc/skel »... Entrez le nouveau mot de passe UNIX : Retapez le nouveau mot de passe UNIX : passwd : le mot de passe a été mis à jour avec succès Modification des informations relatives à l'utilisateur toto Entrez la nouvelle valeur ou « Entrée » pour conserver la valeur proposée Nom complet []: toto N° de bureau []: Téléphone professionnel []: Téléphone personnel []: Autre []: Cette information est-elle correcte ? [O/n]O vanvincq@Debian-Laptop:~$ sudo adduser normal Ajout de l'utilisateur « normal » ... Ajout du nouveau groupe « normal » (1002) ... Ajout du nouvel utilisateur « normal » (1002) avec le groupe « normal » ... Création du répertoire personnel « /home/normal »... Copie des fichiers depuis « /etc/skel »... Entrez le nouveau mot de passe UNIX : Retapez le nouveau mot de passe UNIX : passwd : le mot de passe a été mis à jour avec succès Modification des informations relatives à l'utilisateur normal Entrez la nouvelle valeur ou « Entrée » pour conserver la valeur proposée Nom complet []: fruit N° de bureau []: Téléphone professionnel []: Téléphone personnel []: Autre []: Cette information est-elle correcte ? [O/n]O
Récupération des mots de passe cryptés et lancement de utilisation de John :
vanvincq@Debian-Laptop:~$ sudo unshadow /etc/passwd /etc/shadow > mypasswd vanvincq@Debian-Laptop:~/john-1.7.9/run$ ./john ~/mypasswd Loaded 3 password hashes with 3 different salts (generic crypt(3) [?/64]) fruit (normal) toto (toto) guesses: 2 time: 0:00:09:17 58% (2) c/s: 177 trying: Rancid! - Angelo! Use the "--show" option to display all of the cracked passwords reliably Session aborted
vanvincq@Debian-Laptop:~/john-1.7.9/run$ ./john --show ~/mypasswd
toto:toto:1001:1001:toto,,,:/home/toto:/bin/bash
normal:fruit:1002:1002:fruit,,,:/home/normal:/bin/bash
2 password hashes cracked, 1 left
Après un bon 10min d'exécution (9min 17s exactement), rien n'a été trouvé pour mon propre mot de passe.
Pour éviter de perdre toutes ses données, il existe plusieurs systèmes de sauvegardes.
le système RAID, qui repose sur des capacités matérielles,
la synchronisation, à la portée de tout un chacun ou presque,
le robot de sauvegarde, réservé d’avantage aux entreprises qu’aux particuliers.
Le RAID (Redundant Array of Independent Disks) désigne les techniques permettant de répartir des données sur plusieurs disques durs afin d'améliorer soit la tolérance aux pannes, soit la sécurité, soit les performances de l'ensemble, ou une répartition de tout cela. Ce système est en général disponible sur les serveurs et gage de la continuité de service ainsi que de la disposition égale des données en cas de défaillance matérielle.
La synchronisation locale ou distante vous assure l’intégrité de vos données et la réplication de celles-ci. Sous les systèmes GNU/Linux, la commande rsync peut parfaitement satisfaire la synchronisation en l'automatisant à l'aide d'une crontab par exemple.
Exercice : installez rsync et essayez de sauvegarder un répertoire de test de votre ordinateur vers le serveur. Créez ensuite une tâche dans la crontab qui exécute la sauvegarde toutes les dix minutes :
vanvincq@Debian-Laptop:~/Bureau/CP2L/JournalDeBord$ crontab -e
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
*/10 * * * * rsync -avz --delete -e "ssh -p 5108" ~/dossier cva@86.64.63.108:/home/auditeur/cva/public_html/dossier
AMANDA (Advanced Maryland Automatic Network Disk Archiver) est un logiciel libre de sauvegardes informatiques. Il est utilisé pour sauvegarder via le réseau un ensemble de postes clients et de serveurs (Unix, Linux, et Windows via Samba ou Cygwin). Il a été initialement développé à l'université américaine du Maryland, sous licence BSD. (Wikipédia).
"Cryptographie" n.f. Procédé (signes conventionnels, modification de l’ordre, de la disposition des signes, remplacement des signes...) permettant de rendre un message inintelligible, de protéger des données.
En terme de chiffrement, il existe deux grandes familles qui se divisent entre le symétrique et l’asymétrique. Toujours est-il que l’une et l’autre sont complémentaires.
Exemple de chiffrement par rotation des lettres :
vanvincq@Debian-Laptop:~/Bureau/CP2L/JournalDeBord$ echo "je vais bien maman" | tr a-z n-za-m wr invf ovra znzna vanvincq@Debian-Laptop:~/Bureau/CP2L/JournalDeBord$ echo "wr invf ovra znzna" | tr n-za-m a-z je vais bien maman
Pour aller plus loin :
Il réside dans une clef unique connue de tous les participants. Si l’un d’eux laisse échapper la clef de chiffrement, la confidentialité devient nulle.
Pour ce qui est du chiffrement asymétrique, la chose est un peu plus complexe. Chaque personne doit posséder une clef publique et une clef secrète. La première est prévue pour être dévoilée à tout un chacun, quant à la deuxième, elle doit être jalousement conservée dans un endroit sûr.
La première, publique, servira à chiffrer ou à vérifier une signature, la seconde, privée, servira à déchiffrer et à signer des données.
Exercice : installez gnupg et accessoirement kgpg. Récupérez la clef publique 0xFFAD5F7A puis envoyez un message signé et un message chiffré.
Pour l'exercice, j'ai utilisé seahorse pour générer ma clef et l'add-on enigmail pour signer et chiffrer mes courriels. Plus de détail concernant la génération de clefs sont disponible ici.
Pour bénéficier de la signature et le chiffrement des courriels, il faut disposer de l'outil gnupg. Il permet de créer une paire de clef (publique et privée). La clef publique se doit d’être partagée avec vos interlocuteurs alors que la clef privée se doit d'être secrétement gardée. C’est elle qui vous permettra d’affirmer avec force que vous êtes bien qui vous prétendez être.
Exercice : dressez la liste des protocoles que vous pensez suffisants en décrivant le contexte de votre réseau :