Po drátě 6: Řešení úlohy č. 6

Heslo prý máme hledat v doméně quest.podrate.cz. Nuže dobrá, pojďme se podívat, třeba pomocí dig quest.podrate.cz any, co je uvnitř:

quest.podrate.cz.  IN RRSIG   DNSKEY 5 3 86400 20130101000000 20120114160119 15238 quest.podrate.cz. [...]
quest.podrate.cz.  IN RRSIG   DNSKEY 5 3 86400 20130101000000 20120114160119 24285 quest.podrate.cz. [...]
quest.podrate.cz.  IN DNSKEY  257 3 5 AwEAAaW+wkuG8r84om/AZGwFsT541gvcRq8wSFDDvaleScGqtlcj4Fs7 [...]
quest.podrate.cz.  IN DNSKEY  256 3 5 AwEAAd0q6y4P2uKURfGYMpfsD9TJmOTL3Zv8OoE9OIFd8Zlu3sxlr0pI [...]
quest.podrate.cz.  IN RRSIG   NSEC 5 3 86400 20130101000000 20120114160119 24285 quest.podrate.cz. [...]
quest.podrate.cz.  IN NSEC    aldebaran.quest.podrate.cz. NS SOA RRSIG NSEC DNSKEY
quest.podrate.cz.  IN RRSIG   NS 5 3 86400 20130101000000 20120114160119 24285 quest.podrate.cz. [...]
quest.podrate.cz.  IN NS      ns.ucw.cz.
quest.podrate.cz.  IN RRSIG   SOA 5 3 86400 20130101000000 20120114160119 24285 quest.podrate.cz. [...]
quest.podrate.cz.  IN SOA     jabberwock.ucw.cz. admin.ucw.cz. 2012011401 28800 7200 1209600 86400

Tedy doména zabezpečená DNSSECem. Podepsaná korektně, řetěz důvěry sahá až ke kořenovým nameserverům (to se mimochodem snadno zkontroluje nástrojem drill z projektu ldns).

Zajímavý ovšem je záznam NSEC. Ten se používá k dokazování neexistence jmen, a to tak, že pro každou "díru" mezi po sobě jdoucími záznamy existuje podepsaný záznam NSEC, který obsahuje jméno těsně před dírou a těsně za dírou.

Následováním NSECů si tedy můžeme pohodlně vyjmenovat všechny záznamy v doméně. A není potřeba dělat to ručně, opět nám poslouží ldns, tentokrát programem ldns-walk:

aldebaran.quest.podrate.cz. TXT RRSIG NSEC 
bearberry.quest.podrate.cz. TXT RRSIG NSEC 
cinka.quest.podrate.cz. TXT RRSIG NSEC 
dromedar.quest.podrate.cz. TXT RRSIG NSEC 
eroplan.quest.podrate.cz. TXT RRSIG NSEC 
friteza.quest.podrate.cz. TXT RRSIG NSEC 
hromotluk.quest.podrate.cz. TXT RRSIG NSEC 
ibisek.quest.podrate.cz. TXT RRSIG NSEC 
jezibaba.quest.podrate.cz. TXT RRSIG NSEC 
kalisnik.quest.podrate.cz. TXT RRSIG NSEC 
localhost.quest.podrate.cz. A TXT RRSIG NSEC 
mnoukal.quest.podrate.cz. TXT RRSIG NSEC 
nornik.quest.podrate.cz. TXT RRSIG NSEC 
orobinec.quest.podrate.cz. TXT RRSIG NSEC 
polinko.quest.podrate.cz. TXT RRSIG NSEC 
querulant.quest.podrate.cz. TXT RRSIG NSEC 
rarasek.quest.podrate.cz. TXT RRSIG NSEC 
sycek.quest.podrate.cz. TXT RRSIG NSEC 
tetrev.quest.podrate.cz. TXT RRSIG NSEC 
ukulele.quest.podrate.cz. TXT RRSIG NSEC 
vratiprst.quest.podrate.cz. TXT RRSIG NSEC 
warszawa.quest.podrate.cz. TXT RRSIG NSEC 
xindl.quest.podrate.cz. TXT RRSIG NSEC 
yard.quest.podrate.cz. TXT RRSIG NSEC 
zhuverilost.quest.podrate.cz. TXT RRSIG NSEC 

Dobře, ale 25 hesel k jedné úloze nedává smysl (a kdo je všechna zkoušel poslat robůtkovi, na toho jsme po zásluze zlostně vrčeli). Není něco v těch TXT?. Většina obsahuje:

aldebaran.quest.podrate.cz.  IN TXT  "Zde heslo neni"

Jen jeden je jiný:

sycek.quest.podrate.cz.  IN TXT  "Heslo je svratouch"

Vida :)

Zajímavosti

Někteří správci nemají rádi, když si někdo může vypsat obsah jejich domény (moc je nechápeme, protože DNS stejně dotazy nešifruje a odpověď může cacheovat libovolný DNS server po světě). Proto se původní DNSSEC moc neujal a pomohlo mu až RFC 5155, které definuje nový způsob prokazování neexistence (NSEC3), tuto vlastnost nemající.

Jak se při soutěži ukázalo, zpracování podepsaných záznamů je v nejednom programu ošklivě bugovité. Kdo jste na nějakou chybu narazili, nezapomeňte ji nahlásit :)

Úlohu vytvořil Medvěd, když se chtěl DNSSEC konečně naučit používat. Jeho podpora se ostatně objeví i v nové verzi Name Server Configuratoru a DNS Sleutha.

Re: Po drátě 6: Řešení úlohy č. 6 misof (25. 1. 2012 - 12:10) Sbalit(3)
Je nejaky dovod preco chybalo meno na g? :)
Re: Po drátě 6: Řešení úlohy č. 6 Martin Mares (org) (25. 1. 2012 - 12:15) Sbalit(2)
> Je nejaky dovod preco chybalo meno na g? :)

Ano, je, ale ne moc zajimavy -- moje nepozornost :)

Re: Po drátě 6: Řešení úlohy č. 6 panacekcz (25. 1. 2012 - 18:25) Sbalit(1)
Přitom gg.quest.podrate.cz by bylo dobré místo na vedlejší úlohu.
Re: Po drátě 6: Řešení úlohy č. 6 andrej (25. 1. 2012 - 15:35) Sbalit(2)
moj dig zobrazoval ine info
#dig -v
DiG 9.3.6-P1-RedHat-9.3.6-16.P1.el5_7.1

cygwin na windows boxe dig neobsahuje,
takze som na tejto ulohe skoncil.

len pre zaujimavost, aky dig ste pouzivali vy?
Re: Po drátě 6: Řešení úlohy č. 6 Michal Kubeček (25. 1. 2012 - 16:00) Sbalit(1)
On Wed, Jan 25, 2012 at 03:35:46PM +0100, andrej wrote:
> len pre zaujimavost, aky dig ste pouzivali vy?

host :-)

Re: Po drátě 6: Řešení úlohy č. 6 jakub (25. 1. 2012 - 18:15) Sbalit(1)
Mě hned, když jsem viděl DNSSEC napadlo, že se z něho nějak dá vytáhnout obsah celé zóny a tím jsem se dostal k DNSSEC Walkeru, kterej posloužil dobře :-)
Re: Po drátě 6: Řešení úlohy č. 6 luky.timko (25. 1. 2012 - 21:23) Sbalit(2)
Mne prikaz 'dig quest.podrate.cz any' i 'host -t ANY quest.podrate.cz' vyhodil
'ERROR: ID mismatch: expected ID xxxx, got yyyy', pouzivam DiG 9.7.3, packety ale chodily spravne, takze jsem je vycetl pomoci wiresharku (pri volani techto prikazu).
Re: Po drátě 6: Řešení úlohy č. 6 Martin Mares (org) (25. 1. 2012 - 21:32) Sbalit(1)
> Mne prikaz 'dig quest.podrate.cz any' i 'host -t ANY quest.podrate.cz' vyhodil
> 'ERROR: ID mismatch: expected ID xxxx, got yyyy', pouzivam DiG 9.7.3,

To je věru zajímavé, mně stejná verze 9.7.3 dáva správné výsledky.