Je suis Charlie

Autres trucs

Accueil

Seulement les RFC

Seulement les fiches de lecture

Mon livre « Cyberstructure »

Ève

Problème DNSSEC au Libéria

Première rédaction de cet article le 13 juin 2024
Dernière mise à jour le 16 juin 2024


Le 12 juin, une panne (partielle ?) a touché le TLD .lr. Il s'agit d'un problème DNSSEC (qui a fait l'objet d'un retex détaillé par le gestionnaire technique.

L'alerte a été donné sur la liste de l'OARC. Au matin du 13 juin, on constate :

Les sondes RIPE Atlas sont d'accord pour dire que ça marche mais pas parfaitement :

% blaeu-resolve --requested 200 --type SOA --displayvalidation lr
[ (Authentic Data flag)  rip.psg.com. hostmaster.psg.com. 1718251170 345600 3600 2592000 14400] : 88 occurrences 
[rip.psg.com. hostmaster.psg.com. 1718251170 345600 3600 2592000 14400] : 85 occurrences 
[ERROR: SERVFAIL] : 13 occurrences 
[ERROR: NXDOMAIN] : 11 occurrences 
[ (Authentic Data flag)  rip.psg.com. hostmaster.psg.com. 1718225894 345600 3600 2592000 14400] : 1 occurrences 
[] : 1 occurrences 
Test #73322645 done at 2024-06-13T07:39:43Z
  

L'explication technique est probablement la suivante : en interrogeant tous les serveurs faisant autorité pour .lr, avec la requête lr/DNSKEY, on voit que certains envoient deux signatures (ayant le même identificateur de clé, 29984) :

lr.			86400 IN DNSKEY	257 3 8 (
				AwEAAbdBaOsz0xNn+L+8+GopcC0w9NneWhKl9GJyCR5d …
				) ; KSK; alg = RSASHA256 ; key id = 29984
lr.			86400 IN DNSKEY	256 3 8 (
				AwEAAci9weuAQKBbKsqkOYnm1H0C5a7ZX/8xoQDmNp8Y …
				) ; ZSK; alg = RSASHA256 ; key id = 42940
lr.			86400 IN RRSIG DNSKEY 8 1 86400 (
				20240626012025 20240611235025 29984 lr.
				YeZQ3KiSsDQD3jizNHXnTUYxRtzJwXl0aoctrgqDqajW …
lr.			86400 IN RRSIG DNSKEY 8 1 86400 (
				20240626205813 20240612192813 29984 lr.
				lDt9P1RZtcs+/SDilJZ6tNRsZr+F5EdisfmsNw7E62+1 …
  

Cela ne se voit pas à l'œil nu mais une des deux signatures est invalide (cf. les rapports de DNSviz et Zonemaster). Les résolveurs qui réussissent sont ceux qui sont tombés sur le serveur faisant autorité qui ne servait que la bonne signature, ou bien testaient les deux signatures (d'où l'importance de tester plus qu'une signature, malgré KeyTrap). Notez que, malgré cette différence des réponses, tous les serveurs faisant autorité ont le même numéro de série :

% check-soa lr
fork.sth.dnsnode.net.
	77.72.229.254: OK: 1718251170
	2a01:3f0:0:306::53: OK: 1718251170
ns-lr.afrinic.net.
	196.216.168.61: OK: 1718251170
	2001:43f8:120::61: OK: 1718251170
rip.psg.com.
	2001:418:1::39: OK: 1718251170
	147.28.0.39: OK: 1718251170
  

La commande pour interroger tous les serveurs est :

% for server in 77.72.229.254 2a01:3f0:0:306::53 2001:43f8:120::61 196.216.168.61 2001:418:1::39 147.28.0.39; do
  echo $server
  dig +dnssec @$server lr DNSKEY
done  > lr.txt
  

Comme elle est faite depuis un seul point de mesure (mon bureau), elle a ses limites, notamment, elle ne détectera pas les différences entre instances d'un même nuage anycast.

Y avait-il collision des identificateurs de clé comme en Russie en début d'année ? Comme vu plus loin, le problème était autre. Un indice : le Liban, qui a le même gestionnaire technique, avait le même problème.

Bref, les explications techniques complètes figurent dans cet article très détaillé ; une attaque par déni de service a déclenché une bogue assez bizarre dans le signeur, Knot.

Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)

Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)