Table des matières
0 billet(s) pour février 2026
Gérer ses mots de passe
Source : https://www.geekarea.fr/wordpress/?p=226
Voici un petit article hors contexte.
Est ce que vos mots de passe sont sécurisés ? Le grand jeu à la mode pour les pirates c’est de péter la sécurité d’un site populaire et d’en sortir les mots de passe pour les rendre public. Ce petit jeu à juste pour principe d’annoncer aux gens que leurs informations ne sont pas sécurisées.
Qu’est ce qu’un bon mot de passe ?
Avant tout, c’est un mot de passe qu’on est capable de retrouver ! C’est bête à dire, mais sans ça, on est fermé dehors.
Pour la suite, vous l’avez tous déjà lu : 8 caractères minimum (10 c’est mieux) parmi lesquels on doit avoir de l’alpha-numérique, majuscules et minuscules mélangées, ET des caractères spéciaux (#*%$}…).
Combien de compte avez vous sur internet ou plus généralement sur des systèmes d’information ?
Un compte mail, voir deux, un compte Google, un compte Facebook, un eBay, un Twitter, 83 comptes sur des sites marchants, 3 comptes sur des forums, encore un autre compte mail, 5 comptes sur des blogs…
Bref, on a tous une quantité de compte importante et comme l’authentification généralisée n’est que peu développée, il faut gérer et retenir toutes ces informations. Le but du jeu, c’est de dire “si le site trucmuch se fait piraté, je veux pas avoir à changer tous mes mots de passe”. Il faut donc un mot de passe différent pour chaque compte.
Comment gérer tous ces mots de passe ?
Il y a deux méthodes.
La première consiste à tout stocker dans un endroits sécurisé. Il existe des gestionnaires de mots de passe comme le logiciel Keepass (Logiciel Libre) qui consiste a mettre dans une base cryptée les mots de passe que vous lui donnerez ou qu’il générera. Le tout sera protégé par un mot de passe général. L’inconvénient majeur est que vous n’avez pas toujours accès à cet outil et à votre base au moment ou vous avez besoin d’un mot de passe. La deuxième méthode, qui est la raison de cet article, consiste à calculer ses mots de passe à chaque fois. En gros, on a une formule qu’on applique pour chaque compte afin de retrouver le mot de passe. Une seule formule est à mémoriser pour gérer un nombre indéfini de mot de passe. Prenons un exemple : Les données en entrée seront : Utilisateur : Fred
On veut gérer deux comptes, un eBay et un Facebook.
Je compose la formule de Fred et l’applique sur son compte Facebook :
- Je prend les 5 premiers caractères du domaine ou je m’inscris, je complète par 0 si j’ai moins de 5 caractères ⇒ faceb
- Je remplace chaque voyelles par un caractère spécial choisie dans l’ordre parmi la liste “@)$*&” (celle la est à apprendre par cœur) ⇒ f@c)b
- Je remplace la 1er et la dernière lettre par des majuscules ⇒ F@c)B
- J’ajoute une suite de caractère conditionnée, retenue par un moyen mnémotechnique. Si c’est un site marchand “c1sM”, sinon pas de pub merci “p2pM” ⇒ F@c)Bp2pM
- Je termine par le nombre de lettre que j’ai dans mon nom d’utilisateur et je prend que l’unité si je dépasse les 10 ⇒ F@c)Bp2pM4
J’ai un mot de passe fort sur 10 caractères, il est unique (je ne l’utilise pas ailleurs), et je peux m’en souvenir en le calculant. Cette même formule pour mon compte eBay donne @b)$0c1sM4. C’est un petit peu compliqué au début, mais on prend vite des automatismes de calcul,vous retiendrez même par cœur les mots de passe les plus utilisés.
Gérer les CPUs sous GNU/Linux
Voir
Notes
Outils :
- lscpu
- chcpu
- cpufreq-info
- CoreCtrl
- turbostat
- cpupower
- powertop
- rdmsr / wrmsr (msr-tools)
- kvm-ok / check-bios-nx (cpu-checker)
Notions :
- Systèmes multi-processeurs (NUMA SMP)
- Systèmes multi-cœurs (SMP)
- Systèmes multi-threads (SMT)
Params Kernel :
- nr_cpus
Infos nombre de cores threads CPU
Nombre de threads
grep ^processor /proc/cpuinfo
Nous avons une valeurs par thread. C'est donc la derniere valeur +1 qui donne le nombre de threads (si un seul CPU physique)
Nombre de cores
grep '^cpu cores' /proc/cpuinfo
Toutes les valeurs sont identiques si un seul CPU physique
CPUFrequtils
Voir aussi : intel_p-state
Gérer la fréquence cpu
service cpufrequtils stop
#!/bin/sh -e # # rc.local echo "conservative" >/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor echo "conservative" >/sys/devices/system/cpu/cpu1/cpufreq/scaling_governor echo "conservative" >/sys/devices/system/cpu/cpu2/cpufreq/scaling_governor #echo "conservative" >/sys/devices/system/cpu/cpu3/cpufreq/scaling_governor # echo "performance" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor exit 0
Fichier à exécuter en root pour changer le gouverneur. Choix possible selon la configuration du noyau : conservative, ondemand, powersave, performance.
Avec cpufrequtils : (en root)
cp /usr/share/doc/cpufrequtils/examples/cpufrequtils.sample /etc/default/cpufrequtils cpufreq-set -c 0 -d 2100000 -u 3300000 service cpufrequtils reload
- c : numéro processeur
- d : freq min
- u : freq max
- f : freq exact voulu
Notes cpufreq
Voir :
grep MHz /proc/cpuinfo
apt-get install linux-cpupower
cpupower
$ cpupower frequency-info -g
analyzing CPU 0:
available cpufreq governors: Not Available
$ cpupower frequency-info
analyzing CPU 0:
no or unknown cpufreq driver is active on this CPU
CPUs which run at the same hardware frequency: Not Available
CPUs which need to have their frequency coordinated by software: Not Available
maximum transition latency: Cannot determine or is not supported.
hardware limits: Not Available
available cpufreq governors: Not Available
Unable to determine current Policy
current CPU frequency: Unable to call hardware
current CPU frequency: Unable to call to kernel
boost state support:
Supported: yes
Active: yes
If you have Turbo Boost enabled in the UEFI/BIOS, you can turn boost on (1) or off (0) by running
echo 1 > /sys/devices/system/cpu/cpufreq/boost
Limite d'utilisation du CPU en %
# cat /sys/devices/system/cpu/intel_pstate/max_perf_pct 100
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Exemble de “gorvernors” possible
- performance
- powersave
- userspace
- ondemand
- conservative
cpufreq-set -r -u 2.24Ghz #cpufreq-set --cpu 0 --governor conservative cpufreq-set -r -g performance cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors echo "performance" |tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor #echo "3900000" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
/etc/default/grub
CMDLINE_LINUX_DEFAULT="quiet splash intel_pstate=disable processor.ignore_ppc=1"
update-grub
Pour remplacer intel_pstate par acpi-cpufreq
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_driver
La liste des drivers ici :
ls -1 /lib/modules/`uname -r`/kernel/drivers/cpufreq/
BIOS frequency limitation
Source : https://wiki.archlinux.org/index.php/CPU_frequency_scaling
cat /sys/devices/system/cpu/cpu0/cpufreq/bios_limit
For trying this temporarily change the value in /sys/module/processor/parameters/ignore_ppc from 0 to 1.
echo 1 > /sys/module/processor/parameters/ignore_ppc
For setting it permanent refer to Kernel modules or just read on. Add processor.ignore_ppc=1 to your kernel boot line or create
/etc/modprobe.d/ignore_ppc.conf
# If the frequency of your machine gets wrongly limited by BIOS, this should help options processor ignore_ppc=1
Avec cpulimit
sudo apt-get install cpulimit
http://www.linuxscrew.com/2012/07/03/limit-cpu-usage-of-linux-process/
Perf
perf
apt-get install linux-base linux-tools
Voir :
# Disable SMP echo off > /sys/devices/system/cpu/smt/control # Disable THP echo "never" > /sys/kernel/mm/transparent_hugepage/enabled # Disable turbo boost echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo
commande perf
Voir :
Nombre de core / CPU
/usr/bin/nproc (coreutils)
getconf _NPROCESSORS_ONLN
Notes
service cpufrequtils stop
echo “performance” > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
noatime
Swap config
Blacklist module
irqbalance
/proc/interrupts cat /proc/irq/3/smp_affinity
cpupower
Hotplug
http://www.linux-kvm.org/page/CPUHotPlug
- switch to the monitor
- type
cpu_set <n+1> online - A new cpu should appear on /sys/devices/system/cpu
- bring it online by writting 1 to the “online” file inside that directory on guest
- Try adding as many cpus as possible, and make sure we at least do not crash.
Monitoring
Kernel
Real-time kernel ?
http://www.tldp.org/LDP/solrhe/Securing-Optimizing-Linux-RH-Edition-v1.3/chap7sec80.html
https://wiki.archlinux.org/index.php/maximizing_performance
https://tweaked.io/guide/kernel/
http://www.brendangregg.com/blog/2015-03-03/performance-tuning-linux-instances-on-ec2.html
https://oracle-base.com/articles/linux/configuring-huge-pages-for-oracle-on-linux-64
Autres
root# dmidecode|grep HTT HTT (Hyper-Threading Technology) HTT (Hyper-Threading Technology) root# egrep 'siblings|cpu cores' /proc/cpuinfo | head -2 siblings : 2 cpu cores : 1 root# grep '^flags\b' /proc/cpuinfo | tail -1 flags : fpu de tsc msr pae mce cx8 apic sep mca cmov pat clflush acpi mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good nopl nonstop_tsc pni pclmulqdq est ssse3 cx16 sse4_1 sse4_2 popcnt aes f16c rdrand hypervisor lahf_lm ida arat epb pln pts dts fsgsbase erms root# dmidecode |grep Count # tests that HTT is available *and* enabled Core Count: 1 Thread Count: 2 Core Count: 1 Thread Count: 2
Source : https://www.oracle.com/docs/tech/ovm-performance.pdf
Générer un mot de passe
Un bon mot de passe contient : majuscule, minuscule, trait d'union, nombre premier, haïku, hiéroglyphe, symbole astrologique, et le sang d'une vierge.
Keepassx / Keepass propose un générateur de mot de passe.
Générer un mot de passe vous-même : Gérer ses mots de passe
Sinon :
dd if=/dev/random bs=1 count=75 2>/dev/null | base64
ou
cat /dev/urandom |tr -dc A-Za-z0-9 |head -c10
Pour un code décimal
echo $RANDOM$RANDOM
Aléatoirement A ou B
r=(A B) echo ${r[RANDOM%2]}
Avec pwgen
pwgen -Bs1 16 pwgen -y1 16
Avec OpenSSL
openssl rand -hex 10 openssl rand -base64 16 | sed -e "y/\\/+/\$_/" -e "s/=//g" openssl rand 300 |perl -pe 's/[^[:ascii:]]|[[:space:]]|\"//g' |tr -d "'\{}\n"
Avec apg
apg -q -a 0 -n 1 -m 12 -M NCL apg -a 1 -m 32 -n 1 -M NCL
Avec GPG
gpg --gen-random --armor 0 24
Avec Ansible \ community.general.random
Générer une emprunte (hash) de mdp
Hash md5
mkpasswd --hash=md5 $PASS
Hash SHA-512 ($6$ defaut GNU/Linux /etc/shadow)
mkpasswd --method=sha-512
openssl passwd -6 -salt MySaltPlop openssl passwd -6 <(echo 'P@ssw0rd')
$ man crypt
ID | Method
─────────────────────────────────────────────────────────
1 | MD5
2a | Blowfish (not in mainline glibc; added in some
| Linux distributions)
5 | SHA-256 (since glibc 2.7)
6 | SHA-512 (since glibc 2.7)
Autres
/usr/sbin/rngd -f --fill-watermark=0 -x pkcs11 -x nist
Entropie /dev/urandom
The Linux kernel facilitates random number generation through two devices: /dev/random and /dev/urandom with different properties:
/dev/randomshould be suitable for uses that need very high quality randomness such as one-time pad or key generation. When the entropy pool is empty, reads from /dev/random will block until additional environmental noise is gathered“ (random(4))./dev/urandomwill not block, but the quality of its randomness may be lower.
The kernel maintains an entropy pool for these devices. The entropy pool is fed by entropy sources of the system, typically coming from the keyboard, the mouse, and some other device drivers or IRQs. Entropy from the entropy pool is consumed in the generation of random data (i.e. through reads from /dev/random and /dev/urandom).
Voir :
Voir aussi : haveged, rng-tools, rngd, crng
rng-tools The rng-tools and haveged supports the “jitter” entropy source, which uses small CPU timing variances to provide some entropy.
Voir one-rng
Hardware :
- OneRNG
- FST-01 (Flying Stone Tiny ZERO-ONE)
- Infinite Noise TRNG
Check the available entropy
cat /proc/sys/kernel/random/entropy_avail
rngd - rng-tools
Sur RedHat
yum install rng-tools systemctl enable --now rngd
# systemctl status rngd
● rngd.service - Hardware RNG Entropy Gatherer Daemon
Loaded: loaded (/usr/lib/systemd/system/rngd.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2024-01-11 11:37:01 CET; 3 weeks 5 days ago
Main PID: 1170 (rngd)
Tasks: 2 (limit: 48756)
Memory: 3.3M
CGroup: /system.slice/rngd.service
└─1170 /usr/sbin/rngd -f --fill-watermark=0 -x pkcs11 -x nist -x qrypt -D daemon:daemon
Non-preferred method: seed randomness source from non-blocking source
source : https://access.redhat.com/solutions/19866
NOTE: This method is potentially insecure. This method should only be used when no other source of entropy can be supplied, and software cannot be changed to use an alternative source besides /dev/random
You can see the entropy value using the following command: Raw
cat /proc/sys/kernel/random/entropy_avail
Now, start the rngd daemon using following command and monitor the entropy on the system: Raw
rngd -r /dev/urandom -o /dev/random watch -n 1 cat /proc/sys/kernel/random/entropy_avail
NOTE: Seeding /dev/random with data derived from /dev/urandom plays a trick on the system - the entropy_avail reported will increase, but the real entropy is actually decreasing. A software-only random number generator like rngd is not a proper substitute for a good hardware random number generator. Do not use rngd in this fashion unless you understand and accept this difference.
Autres
Voir
- /dev/hwrng
- /sys/class/misc/hw_random
- /sys/class/misc/hw_random/rng_available
- /sys/class/misc/hw_random/rng_curren
If you run the following, you will may see that available entropy is very low (< 128) and thus reading from /dev/random is likely to block. Raw
while sleep 1; do cat /proc/sys/kernel/random/entropy_avail ; done
You can set this temporarily to 1024 (default is 64) Raw
echo 1024 > /proc/sys/kernel/random/read_wakeup_threshold
Test
An entropy source can be tested for (FIPS-compliant) randomness using the rng-tools or rng-utils.
rngtest -c 1000 </dev/random
TRNG
scdrand
Pb boot
[ 1.616819] random: fast init done [ 2.299314] random: crng init done
Kernel boot parameter
random.trust_cpu=on
Voir https://daniel-lange.com/archives/152-hello-buster.html
Infinite Noise TRNG
Voir :
apt-get install infnoise
# #infnoise --raw --debug > /dev/null # infnoise --debug --no-output Generated 1048576 bits. OK to use data. Estimated entropy per bit: 0.875409, estimated K: 1.834528 num1s:50.805635%, even misfires:0.232630%, odd misfires:0.162635% Generated 2097152 bits. OK to use data. Estimated entropy per bit: 0.871953, estimated K: 1.830139 num1s:51.022205%, even misfires:0.206471%, odd misfires:0.139980% Generated 3145728 bits. OK to use data. Estimated entropy per bit: 0.872259, estimated K: 1.830528 num1s:50.800612%, even misfires:0.197788%, odd misfires:0.170402%
# systemctl status infnoise
● infnoise.service - Wayward Geek InfNoise TRNG driver
Loaded: loaded (/lib/systemd/system/infnoise.service; enabled; preset: enabled)
Active: active (running) since Mon 2023-07-24 20:23:18 CEST; 2min 46s ago
Docs: man:infnoise.service(8)
Process: 43156 ExecStart=/usr/sbin/infnoise --dev-random --daemon --pidfile /var/run/infnoise.pid (code=exited, status=0/SUCCESS)
Main PID: 43157 (infnoise)
Tasks: 1 (limit: 8733)
Memory: 588.0K
CPU: 69ms
CGroup: /system.slice/infnoise.service
└─43157 /usr/sbin/infnoise --dev-random --daemon --pidfile /var/run/infnoise.pid
Jul 24 20:23:18 vivobela systemd[1]: Starting infnoise.service - Wayward Geek InfNoise TRNG driver...
Jul 24 20:23:18 vivobela systemd[1]: Started infnoise.service - Wayward Geek InfNoise TRNG driver.
systemctl status dev-infnoise.device
Généralités Cryptologie Cryptographie
Types de chiffrement
Types
Voir aussi :
- Chiffrement homomorphe - FHE (Fully Homomorphic Encryption)
Bonnes pratiques
Toujours encrypt-then-sign Voir Chiffrement authentifié (AE)
Chiffrez d’abord les données à l’aide d’une clé symétrique, puis calculez une signature MAC HMAC ou asymétrique sur les données chiffrées.
Si chiffrement en mode bloque bannir les modes :
- ECB (Dictionnaire de codes / Electronic Code Book)
- CBC (Enchaînement des blocs / Cipher Block Chaining)
Voir https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation
Ne pas publier de version clair et chiffrée des mêmes données
Si besoin changer systématiquement la clef et envoyer la clef chiffrée et signée
Voir : https://fr.wikipedia.org/wiki/Cryptanalyse_diff%C3%A9rentielle
Vulnérabilités
Algo obsolètes
ne plus utiliser DES, RC4, MD5 et une taille de clé ECDH >= 256 bits ou DH >= 2048
Si protocole TLSv1.2 ⇒ désactiver les algorithmes utilisant le mode CBC.
Post quantique
** WARNING: connection is not using a post-quantum key exchange algorithm. ** This session may be vulnerable to "store now, decrypt later" attacks. ** The server may need to be upgraded. See https://openssh.com/pq.html
Fusion dossiers
Fusion de dossier
Suprimer les fichiers doublon avec fdupes (voir aussi jdupes)
fdupes -rndN OpsMilori OpsMilori2
Pour fussioner
rsync -ax --remove-source-files --ignore-existing OpsMilori2/ OpsMilori/
Pour supprimer les dossiers vides
find OpsMilori OpsMilori2 -type d -empty -delete
