mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-29 13:38:26 +00:00
Add dnssec-signzone tests with unsupported alg
dnssec-signzone should sign a zonefile that contains a DNSKEY record with an unsupported algorithm.
This commit is contained in:
parent
b04842c057
commit
6d976b37c1
@ -55,6 +55,10 @@ rm -f ./ns3/dnskey-nsec3-unknown.example.db
|
|||||||
rm -f ./ns3/dnskey-nsec3-unknown.example.db.tmp
|
rm -f ./ns3/dnskey-nsec3-unknown.example.db.tmp
|
||||||
rm -f ./ns3/dnskey-unknown.example.db
|
rm -f ./ns3/dnskey-unknown.example.db
|
||||||
rm -f ./ns3/dnskey-unknown.example.db.tmp
|
rm -f ./ns3/dnskey-unknown.example.db.tmp
|
||||||
|
rm -f ./ns3/dnskey-unsupported.example.db
|
||||||
|
rm -f ./ns3/dnskey-unsupported.example.db.tmp
|
||||||
|
rm -f ./ns3/dnskey-unsupported-2.example.db
|
||||||
|
rm -f ./ns3/dnskey-unsupported-2.example.db.tmp
|
||||||
rm -f ./ns3/dynamic.example.db ./ns3/dynamic.example.db.signed.jnl
|
rm -f ./ns3/dynamic.example.db ./ns3/dynamic.example.db.signed.jnl
|
||||||
rm -f ./ns3/expired.example.db ./ns3/update-nsec3.example.db
|
rm -f ./ns3/expired.example.db ./ns3/update-nsec3.example.db
|
||||||
rm -f ./ns3/expiring.example.db ./ns3/nosign.example.db
|
rm -f ./ns3/expiring.example.db ./ns3/nosign.example.db
|
||||||
|
@ -97,6 +97,9 @@ ns.optout-unknown A 10.53.0.3
|
|||||||
dnskey-unknown NS ns.dnskey-unknown
|
dnskey-unknown NS ns.dnskey-unknown
|
||||||
ns.dnskey-unknown A 10.53.0.3
|
ns.dnskey-unknown A 10.53.0.3
|
||||||
|
|
||||||
|
dnskey-unsupported NS ns.dnskey-unsupported
|
||||||
|
ns.dnskey-unsupported A 10.53.0.3
|
||||||
|
|
||||||
dnskey-nsec3-unknown NS ns.dnskey-nsec3-unknown
|
dnskey-nsec3-unknown NS ns.dnskey-nsec3-unknown
|
||||||
ns.dnskey-nsec3-unknown A 10.53.0.3
|
ns.dnskey-nsec3-unknown A 10.53.0.3
|
||||||
|
|
||||||
@ -111,7 +114,7 @@ ns.rsasha256 A 10.53.0.3
|
|||||||
rsasha512 NS ns.rsasha512
|
rsasha512 NS ns.rsasha512
|
||||||
ns.rsasha512 A 10.53.0.3
|
ns.rsasha512 A 10.53.0.3
|
||||||
|
|
||||||
kskonly NS ns.kskonly
|
kskonly NS ns.kskonly
|
||||||
ns.kskonly A 10.53.0.3
|
ns.kskonly A 10.53.0.3
|
||||||
|
|
||||||
update-nsec3 NS ns.update-nsec3
|
update-nsec3 NS ns.update-nsec3
|
||||||
|
@ -0,0 +1,27 @@
|
|||||||
|
; Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||||
|
;
|
||||||
|
; This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
; License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
; file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
;
|
||||||
|
; See the COPYRIGHT file distributed with this work for additional
|
||||||
|
; information regarding copyright ownership.
|
||||||
|
|
||||||
|
$TTL 300 ; 5 minutes
|
||||||
|
@ IN SOA mname1. . (
|
||||||
|
2000042407 ; serial
|
||||||
|
20 ; refresh (20 seconds)
|
||||||
|
20 ; retry (20 seconds)
|
||||||
|
1814400 ; expire (3 weeks)
|
||||||
|
3600 ; minimum (1 hour)
|
||||||
|
)
|
||||||
|
NS ns
|
||||||
|
ns A 10.53.0.3
|
||||||
|
|
||||||
|
a A 10.0.0.1
|
||||||
|
b A 10.0.0.2
|
||||||
|
d A 10.0.0.4
|
||||||
|
z A 10.0.0.26
|
||||||
|
a.a.a.a A 10.0.0.3
|
||||||
|
*.e A 10.0.0.6
|
||||||
|
child NS ns2.example.
|
27
bin/tests/system/dnssec/ns3/dnskey-unsupported.example.db.in
Normal file
27
bin/tests/system/dnssec/ns3/dnskey-unsupported.example.db.in
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
; Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||||
|
;
|
||||||
|
; This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
; License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
; file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
;
|
||||||
|
; See the COPYRIGHT file distributed with this work for additional
|
||||||
|
; information regarding copyright ownership.
|
||||||
|
|
||||||
|
$TTL 300 ; 5 minutes
|
||||||
|
@ IN SOA mname1. . (
|
||||||
|
2000042407 ; serial
|
||||||
|
20 ; refresh (20 seconds)
|
||||||
|
20 ; retry (20 seconds)
|
||||||
|
1814400 ; expire (3 weeks)
|
||||||
|
3600 ; minimum (1 hour)
|
||||||
|
)
|
||||||
|
NS ns
|
||||||
|
ns A 10.53.0.3
|
||||||
|
|
||||||
|
a A 10.0.0.1
|
||||||
|
b A 10.0.0.2
|
||||||
|
d A 10.0.0.4
|
||||||
|
z A 10.0.0.26
|
||||||
|
a.a.a.a A 10.0.0.3
|
||||||
|
*.e A 10.0.0.6
|
||||||
|
child NS ns2.example.
|
1
bin/tests/system/dnssec/ns3/dsa.key
Normal file
1
bin/tests/system/dnssec/ns3/dsa.key
Normal file
@ -0,0 +1 @@
|
|||||||
|
dnskey-unsupported-2.example. IN DNSKEY 257 3 3 BJ0eV4dQC0pihdFXiVdlXjPDkzbv4fC+opEvK0RaDU7LLwFXPAi6DOc6tm7vcSr5Tgdnpoal3S4WqHuVw6I1pzy5mPPIZ3OpLSY/QeOyGc2QRAZtOXxiGxERHRjyAk7emlgGscM0Vty2oJVYRgTPX0lTwKX/V2H+mjEgp7u3tyG3cj5XBUQ8J0KUoqkrn1ZKrizH27aWiDaBUvqxJUcotaDhnydkNtcHoQIedm2b4qbyTQsdRkddJiSWxpveEcj3AMdt2PjU6Q4rgSWOc5ylPnW/O+GqqCEAkalGSF7ud0Nl3FVVR9iGwV/73FHzpBLawfkcHaODFmKRjzGqok8giKCih2vdNsxlx7gdJWJIPYYx/ZqNGc2ewzuAnnleJpZdXFo8uL3HYk6Pl51sSkfVUmcn/SM+ ;{id = 38688 (ksk), size = 768b}
|
@ -151,6 +151,16 @@ zone "dnskey-unknown.example" {
|
|||||||
file "dnskey-unknown.example.db.signed";
|
file "dnskey-unknown.example.db.signed";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
zone "dnskey-unsupported.example" {
|
||||||
|
type master;
|
||||||
|
file "dnskey-unsupported.example.db.signed";
|
||||||
|
};
|
||||||
|
|
||||||
|
zone "dnskey-unsupported-2.example" {
|
||||||
|
type master;
|
||||||
|
file "dnskey-unsupported-2.example.db.signed";
|
||||||
|
};
|
||||||
|
|
||||||
zone "dnskey-nsec3-unknown.example" {
|
zone "dnskey-nsec3-unknown.example" {
|
||||||
type master;
|
type master;
|
||||||
nsec3-test-zone yes;
|
nsec3-test-zone yes;
|
||||||
|
@ -196,7 +196,7 @@ cat "$infile" "$keyname.key" > "$zonefile"
|
|||||||
"$SIGNER" -P -3 - -U -A -o "$zone" "$zonefile" > /dev/null 2>&1
|
"$SIGNER" -P -3 - -U -A -o "$zone" "$zonefile" > /dev/null 2>&1
|
||||||
|
|
||||||
#
|
#
|
||||||
# A zone with a unknown DNSKEY algorithm.
|
# A zone that is signed with an unknown DNSKEY algorithm.
|
||||||
# Algorithm 7 is replaced by 100 in the zone and dsset.
|
# Algorithm 7 is replaced by 100 in the zone and dsset.
|
||||||
#
|
#
|
||||||
zone=dnskey-unknown.example.
|
zone=dnskey-unknown.example.
|
||||||
@ -214,6 +214,41 @@ awk '$4 == "DNSKEY" { $7 = 100; print } $4 == "RRSIG" { $6 = 100; print } { prin
|
|||||||
DSFILE="dsset-$(echo ${zone} |sed -e "s/\\.$//g")$TP"
|
DSFILE="dsset-$(echo ${zone} |sed -e "s/\\.$//g")$TP"
|
||||||
$DSFROMKEY -A -f ${zonefile}.signed "$zone" > "$DSFILE"
|
$DSFROMKEY -A -f ${zonefile}.signed "$zone" > "$DSFILE"
|
||||||
|
|
||||||
|
#
|
||||||
|
# A zone that is signed with an unsupported DNSKEY algorithm (3).
|
||||||
|
# Algorithm 7 is replaced by 3 in the zone and dsset.
|
||||||
|
#
|
||||||
|
zone=dnskey-unsupported.example.
|
||||||
|
infile=dnskey-unsupported.example.db.in
|
||||||
|
zonefile=dnskey-unsupported.example.db
|
||||||
|
|
||||||
|
keyname=$("$KEYGEN" -q -a "$DEFAULT_ALGORITHM" -b "$DEFAULT_BITS" -n zone "$zone")
|
||||||
|
|
||||||
|
cat "$infile" "$keyname.key" > "$zonefile"
|
||||||
|
|
||||||
|
"$SIGNER" -P -3 - -o "$zone" -O full -f ${zonefile}.tmp "$zonefile" > /dev/null 2>&1
|
||||||
|
|
||||||
|
awk '$4 == "DNSKEY" { $7 = 3; print } $4 == "RRSIG" { $6 = 3; print } { print }' ${zonefile}.tmp > ${zonefile}.signed
|
||||||
|
|
||||||
|
DSFILE="dsset-$(echo ${zone} |sed -e "s/\\.$//g")$TP"
|
||||||
|
$DSFROMKEY -A -f ${zonefile}.signed "$zone" > "$DSFILE"
|
||||||
|
|
||||||
|
#
|
||||||
|
# A zone with a published unsupported DNSKEY algorithm (DSA).
|
||||||
|
# Different from above because this key is not intended for signing.
|
||||||
|
#
|
||||||
|
zone=dnskey-unsupported-2.example.
|
||||||
|
infile=dnskey-unsupported-2.example.db.in
|
||||||
|
zonefile=dnskey-unsupported-2.example.db
|
||||||
|
|
||||||
|
ksk=$("$KEYGEN" -f KSK -q -a "$DEFAULT_ALGORITHM" -b "$DEFAULT_BITS" -n zone "$zone")
|
||||||
|
zsk=$("$KEYGEN" -q -a "$DEFAULT_ALGORITHM" -b "$DEFAULT_BITS" -n zone "$zone")
|
||||||
|
|
||||||
|
cat "$infile" "$ksk.key" "$zsk.key" dsa.key > "$zonefile"
|
||||||
|
|
||||||
|
# "$SIGNER" -P -3 - -o "$zone" -f ${zonefile}.signed "$zonefile" > /dev/null 2>&1
|
||||||
|
"$SIGNER" -P -3 - -o "$zone" -f ${zonefile}.signed "$zonefile"
|
||||||
|
|
||||||
#
|
#
|
||||||
# A zone with a unknown DNSKEY algorithm + unknown NSEC3 hash algorithm (-U).
|
# A zone with a unknown DNSKEY algorithm + unknown NSEC3 hash algorithm (-U).
|
||||||
# Algorithm 7 is replaced by 100 in the zone and dsset.
|
# Algorithm 7 is replaced by 100 in the zone and dsset.
|
||||||
|
@ -3393,6 +3393,26 @@ n=$((n+1))
|
|||||||
test "$ret" -eq 0 || echo_i "failed"
|
test "$ret" -eq 0 || echo_i "failed"
|
||||||
status=$((status+ret))
|
status=$((status+ret))
|
||||||
|
|
||||||
|
echo_i "checking that unsupported DNSKEY algorithm validates as insecure ($n)"
|
||||||
|
ret=0
|
||||||
|
dig_with_opts +noauth +noadd +nodnssec +adflag @10.53.0.3 dnskey-unsupported.example A > dig.out.ns3.test$n
|
||||||
|
dig_with_opts +noauth +noadd +nodnssec +adflag @10.53.0.4 dnskey-unsupported.example A > dig.out.ns4.test$n
|
||||||
|
grep "status: NOERROR," dig.out.ns3.test$n > /dev/null || ret=1
|
||||||
|
grep "status: NOERROR," dig.out.ns4.test$n > /dev/null || ret=1
|
||||||
|
grep "flags:.*ad.*QUERY" dig.out.ns4.test$n > /dev/null && ret=1
|
||||||
|
n=$((n+1))
|
||||||
|
test "$ret" -eq 0 || echo_i "failed"
|
||||||
|
status=$((status+ret))
|
||||||
|
|
||||||
|
echo_i "checking that unsupported DNSKEY algorithm is in DNSKEY RRset ($n)"
|
||||||
|
ret=0
|
||||||
|
dig_with_opts +noauth +noadd +nodnssec +adflag @10.53.0.3 dnskey-unsupported-2.example DNSKEY > dig.out.test$n
|
||||||
|
grep "status: NOERROR," dig.out.test$n > /dev/null || ret=1
|
||||||
|
grep "dnskey-unsupported-2\.example\..*IN.*DNSKEY.*257 3 3" dig.out.test$n > /dev/null || ret=1
|
||||||
|
n=$((n+1))
|
||||||
|
test "$ret" -eq 0 || echo_i "failed"
|
||||||
|
status=$((status+ret))
|
||||||
|
|
||||||
echo_i "check that a lone non matching CDNSKEY record is rejected ($n)"
|
echo_i "check that a lone non matching CDNSKEY record is rejected ($n)"
|
||||||
ret=0
|
ret=0
|
||||||
(
|
(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user