Outils pour utilisateurs

Outils du site


blog

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 :

  1. 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
  2. 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
  3. Je remplace la 1er et la dernière lettre par des majuscules ⇒ F@c)B
  4. 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
  5. 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.

2025/03/24 15:06

Gérer les CPUs sous GNU/Linux

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
  1. c : numéro processeur
  2. d : freq min
  3. u : freq max
  4. 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

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=4b715d24f4f14731c7b553cbb8604fe865cb8d3c

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

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

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

2025/03/24 15:06

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/random should 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/urandom will 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

Voir https://en.wikipedia.org/wiki/FIPS_140-2

TRNG
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
2025/03/24 15:06

Généralités Cryptologie Cryptographie

Types de chiffrement

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
2025/03/24 15:06

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
2025/03/24 15:06
blog.txt · Dernière modification : de 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki