[ldns-users] Zone signing problem with DSA keys

Patrick Fedick fedick at denic.de
Fri Mar 14 11:45:54 UTC 2014


Hello Willem,

I've applied the patch and can confirm that it solves the problem. Thanks.

Best regards,
Patrick Fedick


Am 14.03.2014 11:24, schrieb Willem Toorop:
> Hi Patrick,
> 
> You probably already know, but your colleague Peter Koch has beaten me
> to it and has found and solved the issue.  It is committed on the
> developers branch.
> 
> http://git.nlnetlabs.nl/ldns/commit/?h=develop&id=1063b441
> 
> Thank you for finding and reporting this not so easily to pin point but
> serious bug.  Much appreciated!
> 
> -- Willem
> 
> op 12-03-14 16:16, Patrick Fedick schreef:
>> Hello,
>>
>> I have a testsuite, which basically generates DNSKEYs, signs a small zone with them and then verifies the signed zone. This is done with different algorithms, keysizes and other variations. The testsuite is written in C++ using the ldns library (ldns version 1.6.17, openssl 1.0.1e, CentOS 6.5 or Ubuntu 12.04). The code is based on ldns-keygen, ldns-signzone and ldns-verify-zone. 
>>
>> It is expected that none of these tests fail, but in practice some of them do fail with the error "Bogus DNSSEC signature for xxxxxx.      DNSKEY" or other RR.
>>
>> It seems the tests only fail when using DSA or DSA-NSEC3-SHA1 keys (I've not tested ECDSA). Keysize doesn't matter. To exclude an error in my code, I've written a small shell script, which only uses the tools ldns-keygen, ldns-signzone and ldns-verify-zone and I could reproduce the problem.
>>
>> The script is doing the following steps in a loop a 1000 times:
>>   1. Generate ZSK with "ldns-keygen -a DSA -b 1024 -r /dev/urandom test.de"
>>   2. Append DNSKEY RR to a testzone, which only consists of the SOA and two NS RR
>>   3. Sign zone with: ldns-signzone -o test.de -n  db.test.de $ZSK_KEYNAME
>>   5. Verify zone with: ldns-verify-zone db.test.de.signed
>>
>> There are no errors detected in ldns-keygen and ldns-signzone, but ldns-verify-zone randomly reports bogus signatures.
>>
>> I've also tested what happens, when using always the same key for signing. I can see that the RRSIG records change in each iteration (probably a random component), but when using a ZSK which worked before, ldns-verify-zone always succeeds and when using a ZSK which failed before, verification always fails. I believe there is something wrong in the DSA key generation, but it could also be a bug in the signing process. I'm unable to track this issue down any further.
>>
>> I have attached an archive which contains my demo script as well as a "good key" and a "bad key". The script creates a "tmp" folder in the current directory and expects the ldns-tools in the PATH and needs /bin/bash.
>>
>> It would be nice, if someone could confirm, if this is a bug in ldns (or openssl?) or if I'm doing something completely wrong.
>>
>> Best regards,
>>
>> Gruss,
>> Patrick Fedick
>>
>>
>>
>> _______________________________________________
>> 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