[ldns-users] validating nsec responses with drill

Kal Feher kal at securenic.net
Thu May 22 12:52:38 UTC 2014


ack. meant to send this to the list.

I’m using:
drill version 1.6.16 (ldns version 1.6.16), which is the latest package for my distro (Gentoo). I’ll compile the latest version from source and see what happens.



On 22 May 2014, at 10:33 pm, Willem Toorop <willem at nlnetlabs.nl> wrote:

> Hi Kal,
> 
> Which version of drill do you use.  My drill 1.6.17 gives trusted
> existence denied for 0.us:
> 
> $ drill -a -4 -d us -k uskey -TD 0.us
> ;; Number of trusted keys: 4
> ;; Domain: us.
> [T] us. 518400 IN DNSKEY 257 3 5 ;{id = 55408 (ksk), size = 2048b}
> us. 518400 IN DNSKEY 256 3 5 ;{id = 14358 (zsk), size = 1024b}
> us. 518400 IN DNSKEY 257 3 5 ;{id = 44323 (ksk), size = 2048b}
> us. 518400 IN DNSKEY 256 3 5 ;{id = 28350 (zsk), size = 1024b}
> [T] Existence denied: 0.us. DS
> ;; No ds record for delegation
> ;; Domain: 0.us.
> ;; No DNSKEY record found for 0.us.
> [T] Existence denied: 0.us. A
> ;;[S] self sig OK; [B] bogus; [T] trusted
> 
> 
> op 22-05-14 14:09, Kal Feher schreef:
>> Hello list,
>> I’ve been trying to get to the bottom of some odd behaviour with drill.
>> The behaviour I’m seeing appears to be limited to verifying nsec responses. When issuing the following query:
>> drill -a -4 -V 5 -d us -k uskey -TD 0.us
>> I receive the following response (trimmed for clarity):
>> 
>> ;; AUTHORITY SECTION:
>> us.     900     IN      SOA     a.cctld.us. hostmaster.neustar.biz. 2011722984 900 900 604800 86400
>> us.     900     IN      RRSIG   SOA 5 1 900 20140621111356 20140522101356 28350 US. C44LuFw7+/QekEvR
>> US.     86400   IN      NSEC    0-.us. NS SOA RRSIG NSEC DNSKEY TYPE65534 
>> us.     86400   IN      RRSIG   NSEC 5 1 86400 20140617202559 20140518200713 28350 US. SjkrioUZ4T
>> 
>> ;; Existence of data set with this name denied by NSEC
>> NSEC(3) Records to verify:
>> US.     86400   IN      NSEC    0-.us. NS SOA RRSIG NSEC DNSKEY TYPE65534 
>> With signatures:
>> correct keys:
>> us.     518400  IN      DNSKEY  257 3 5 AwEAAcPLfBcYsSxr3IQFL;{id = 44323 (ksk), size = 2048b}
>> us.     518400  IN      DNSKEY  257 3 5 AwEAAatM9tlDcd8gpSq+ ;{id = 55408 (ksk), size = 2048b}
>> us.     518400  IN      DNSKEY  256 3 5 AwEAAZxMuH84tkVwYuP;{id = 14358 (zsk), size = 1024b}
>> us.     518400  IN      DNSKEY  256 3 5 AwEAAZ6LjDKPJisyM73 ;{id = 28350 (zsk), size = 1024b}
>> [B] Error verifying denial of existence for 0.us. type A: No DNSSEC signature(s)
>> ;;[S] self sig OK; [B] bogus; [T] trusted
>> 
>> 
>> Yet when I query for another non existent label: 
>> drill -a -4 -V 5 -d us -k uskey -TD 0-000.us
>> I have succes:
>> 
>> ;; AUTHORITY SECTION:
>> us.     900     IN      SOA     a.cctld.us. hostmaster.neustar.biz. 2011722996 900 900 604800 86400
>> us.     900     IN      RRSIG   SOA 5 1 900 20140621111552 20140522101552 28350 US. CKhVuRK1BsCBZw8ydZ45CiEz7
>> US.     86400   IN      NSEC    0-.us. NS SOA RRSIG NSEC DNSKEY TYPE65534 
>> us.     86400   IN      RRSIG   NSEC 5 1 86400 20140617202559 20140518200713 28350 US. SjkrioUZ4TauR5c7OGhGXy
>> 0-00.US.        86400   IN      NSEC    0-0000AKLUJVHZ.us. NS RRSIG NSEC 
>> 0-00.US.        86400   IN      RRSIG   NSEC 5 2 86400 20140613022320 20140514021623 28350 US. Q2ixTZVctcc2pD0WgMtL7
>> 
>> NSEC(3) Records to verify:
>> 0-00.US.        86400   IN      NSEC    0-0000AKLUJVHZ.us. NS RRSIG NSEC 
>> With signatures:
>> 0-00.US.        86400   IN      RRSIG   NSEC 5 2 86400 20140613022320 20140514021623 28350 US. Q2ixTZVctcc2pD0WgMtL7
>> correct keys:
>> us.     518400  IN      DNSKEY  257 3 5 AwEAAcPLfBcYsSxr3IQFLeJraBpgwzHqd ;{id = 44323 (ksk), size = 2048b}
>> us.     518400  IN      DNSKEY  256 3 5 AwEAAZxMuH84tkVwYuPk7+QDPQuq9 ;{id = 14358 (zsk), size = 1024b}
>> us.     518400  IN      DNSKEY  256 3 5 AwEAAZ6LjDKPJisyM730QN6miz2cQCW ;{id = 28350 (zsk), size = 1024b}
>> us.     518400  IN      DNSKEY  257 3 5 AwEAAatM9tlDcd8gpSq+Wlksu;{id = 55408 (ksk), size = 2048b}
>> [T] Existence denied: 0-000.us. A
>> ;;[S] self sig OK; [B] bogus; [T] trusted
>> 
>> The signatures look fine, but for some reason they do not appear in the output for my first test above. This results in an error (RR count less than 1). Is it the case of the label (upper for NSEC, lower for its RRSIG) that is causing the issue for drill? I’ve flicked through the code going backwards from the error message but only got as far as ldns_verify() before my poor c skills failed me.
>> Am I missing an obvious DNSSEC error that I can’t see?
>> 
>> Kal 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> _______________________________________________
>> ldns-users mailing list
>> ldns-users at open.nlnetlabs.nl
>> http://open.nlnetlabs.nl/mailman/listinfo/ldns-users
>> 
> 
> _______________________________________________
> ldns-users mailing list
> ldns-users at open.nlnetlabs.nl
> http://open.nlnetlabs.nl/mailman/listinfo/ldns-users





More information about the ldns-users mailing list