Re: [DNSOP] Time to update RSAMD5 and perhaps DSA (algs 1 and 3) to MUST NOT?

2018-12-01 Thread Paul Wouters

On Sat, 1 Dec 2018, Viktor Dukhovni wrote:


The IANA DNSSEC parameter registry lists RSAMD5 (algorithm 1) as
deprecated, and refers to [RFC3110], [RFC4034] which state that
RSAMD5 is "NOT RECOMMENDED".

   
https://www.iana.org/assignments/dns-sec-alg-numbers/dns-sec-alg-numbers.xhtml#dns-sec-alg-numbers-1


And our draft is going further and says you MUST NOT implement it :)

https://tools.ietf.org/html/draft-ietf-dnsop-algorithm-update-04#section-3.1


This suggests to me that the deprecation of RSAMD5 is a stunning
success, it is gone, and perhaps it is time to say so:


I think more that it never really saw any deployment, so it seems a
little weird to claim success here. It shouldn't ever have gotten
an allocation even back then :P


   * Authoritative zones SHOULD NOT publish RSAMD5 DS RRs or
 DNSKEY records.

   * Validating resolvers MUST ignore RSAMD5 DS RRs and DNSKEY
 RRs, and MUST treat any zones with only ignored or unsupported
 DS records as "insecure".


How weak. We went for MUST NOT :)


Perhaps we could be bolder and say the same for DSA (algorithm 3),


Funny, we also have MUST NOT there :)


this too is largely gone, but there's a cluster of ~4700 ".me"
domains with DSA keys.  It is not clear that enabling those domains
to validate merits ongoing support for algorithm 3.  So we might
also add DSA to the list, encouraging resolver implementations to
drop support for both RSAMD5 and DSA.


Done, as soon as the document gets a write up and goes into IETF LC :)

ping chairs :)

Paul

___
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop


[DNSOP] Time to update RSAMD5 and perhaps DSA (algs 1 and 3) to MUST NOT?

2018-12-01 Thread Viktor Dukhovni
The IANA DNSSEC parameter registry lists RSAMD5 (algorithm 1) as
deprecated, and refers to [RFC3110], [RFC4034] which state that
RSAMD5 is "NOT RECOMMENDED".


https://www.iana.org/assignments/dns-sec-alg-numbers/dns-sec-alg-numbers.xhtml#dns-sec-alg-numbers-1

"Survey says" that RSAMD5 is not only deprecated, but is in fact
no longer used, by any of the ~9 million DNSSEC-delegated domains
I've been able to find on the public Internet:


https://lists.dns-oarc.net/pipermail/dns-operations/2018-December/018146.html

It only has the effect of breaking two domains that have only RSAMD5
in the DS RRset, but have no DNSKEY RRs.  11 domains, have working
keys for algorithms 5, 7, 8 or 13 with a DS RRset that also lists
an orphaned algorithm 1 with no RSAMD5 keys at the zone apex.  A
further 18 domains have RSAMD5 DS RRs, but are simply out of service
even sans validation.

This suggests to me that the deprecation of RSAMD5 is a stunning
success, it is gone, and perhaps it is time to say so:

* Authoritative zones SHOULD NOT publish RSAMD5 DS RRs or
  DNSKEY records.

* Validating resolvers MUST ignore RSAMD5 DS RRs and DNSKEY
  RRs, and MUST treat any zones with only ignored or unsupported
  DS records as "insecure".

Perhaps we could be bolder and say the same for DSA (algorithm 3),
this too is largely gone, but there's a cluster of ~4700 ".me"
domains with DSA keys.  It is not clear that enabling those domains
to validate merits ongoing support for algorithm 3.  So we might
also add DSA to the list, encouraging resolver implementations to
drop support for both RSAMD5 and DSA.

-- 
Viktor.

___
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop


Re: [DNSOP] Favor: Weigh in on draft-ietf-ipsecme-split-dns?

2018-12-01 Thread Paul Wouters

On Sat, 1 Dec 2018, Scott Morizot wrote:


I guess I'll speak up as someone who has been managing the DNS/DNSSEC design 
and implementation of a large
organization with a complex set of DNS requirements


Thanks for the write up! It is always good to hear actual enterprise
deployments.


We employed manual trust anchors at different phases of our implementation, but 
now have
very few in place. One is to establish trust for an internal zone for which we 
do not control the administration of
the parent zone.


So the interesting question here is, how is this one zone securely
resolved when you are connected to the network via a VPN? Or is this
zone not available for VPN users? And if this draft could make it
available, would you? Or, do your VPN users not use split-tunnel,
and connect to an inside DNS server once connected?


  This scheme seems to require both inside and outside zones are signed
  with the same key, or as Mark pointed out, both internal and external
  zones need to share their DS records and keep these in sync. As these
  are usually different organisations/groups/vendors/services, that is
  an actual management problem.


Or you can do what we did and place DS records for both the internal and 
external KSKs (using public placeholder
versions of the internal child zones just to establish the delegation point) in 
the parent zone. That establishes
chain of trust whichever version of the zone is resolved. That works whether 
the public version is just a
placeholder with nothing else of significance in it or if it is a zone where 
both the external and internal records
matter and are used by the appropriate source for the query, but differ.


That is a good solution as well. Although I would be a little worried that
a compromise of the public view could trick people into establishing the
"internal" zones in the external view to trick people into logging on
and giving out their password. But that is surely far down the list of
easy attacks to run.


I don't really have any thoughts on the draft itself


That is too bad, because I'd be very curious how you handle DNSSEC with
your VPN clients. Not many large organizations run DNSSEC on both
internal and external views. So I am curious how you handle DNSSEC
for your (split?) VPN clients. But I understand if you cannot share
more data about that in a public forum.


, but wanted to add my own real world experience with managing
DNSSEC trust. On the validation side, we also don't allow any device in the 
enterprise network, including internal
nameservers, to send or receive DNS queries to the Internet. Period. Only our 
perimeter recursive, DNS caches can do
that and those will only accept queries from authorized enterprise recursive, 
caching nameservers. And we have
protections, including different DNS blacklists, at each layer. So we have a 
lot of control over what devices
connected to our network can and cannot do and they do not have unrestricted 
ability to query Internet DNS even
through our multiple layers. We also use the cli version of dnsviz a lot to 
ensure we understand what different
points on the recursive side of our enterprise DNS infrastructure are seeing.


So I guess the interesting thing here is the device that is in
split-tunnel mode. It would not receive the protection of your
DNS infrastructure for external lookups, so if you allow BYOD
to connect to your network, it would be bypassing those DNS
security checks for non-organisation DNS queries, which would
put the BYOD under greater risk. Perhaps you do not allow
split-tunnel or BYOD for those reasons :)

Thanks for your input,

Paul

___
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop


Re: [DNSOP] Favor: Weigh in on draft-ietf-ipsecme-split-dns?

2018-12-01 Thread Scott Morizot
I guess I'll speak up as someone who has been managing the DNS/DNSSEC
design and implementation of a large organization with a complex set of DNS
requirements (operational and security-related) since we began the process
of signing our zones in 2011. We have universal DNSSEC validation in place
across our enterprise recursive layers and almost all zones, internal and
external, are DNSSEC signed. I forget the exact count without checking, but
we have 100+ 3rd level and lower internal zones. Outside public placeholder
zones required for proper delegation and chain of trust at the appropriate
level where internal/external divisions are made (typically the 3rd level)
we do not normally maintain differing versions of external/internal zones,
but we have a few explicitly defined for that purpose because there is a
legitimate requirement for differing internal/external resolution. Those
needs are always segregated into zones defined for that purpose to simplify
ongoing administration. (We never want to be in a situation where normal,
routine record updates require changes in multiple versions of a zone. That
would be an administrative nightmare.) We employed manual trust anchors at
different phases of our implementation, but now have very few in place. One
is to establish trust for an internal zone for which we do not control the
administration of the parent zone. Off the top of my head, I believe that's
the only significant one left. Maintain trust anchors was unpleasant and
always viewed as a transitional mechanism, not something we wanted to do on
a lasting basis.

On Fri, Nov 30, 2018 at 11:22 AM Paul Wouters  wrote:

> On Fri, 30 Nov 2018, Ted Lemon wrote:
> That means your public DNS zone must be signed for your internal DNS
> zone to be signed? Otherwise you cannot have this signed delegation?
> That would mean you cannot run DNSSEC internally before you run it
> externally.
>
>
Outside placing trust anchors on every device performing validation, that's
true. Establishing trust in a zone when the parent zone is insecure is a
pain. I guess DLV could still be used. I considered it at one point. I
forget why I decided not to go that route. It was too many years ago. Then
again, from the signing side, I'm hard-pressed to imagine a reason to start
signing internal zones without signing their external parents except in the
situation where you do not control the public parent zone. Normally you
want to start at the top of the hierarchy and work your way down.


> >   When you look things up in that zone outside the firewall, you get
> NXDOMAIN for everything but the SOA on the zone, which returns an old
> serial number.   Inside the firewall, they get answers, which
> > are signed, and which validate.   There's no need for a special trust
> anchor here.
>
> This scheme seems to require both inside and outside zones are signed
> with the same key, or as Mark pointed out, both internal and external
> zones need to share their DS records and keep these in sync. As these
> are usually different organisations/groups/vendors/services, that is
> an actual management problem.


Or you can do what we did and place DS records for both the internal and
external KSKs (using public placeholder versions of the internal child
zones just to establish the delegation point) in the parent zone. That
establishes chain of trust whichever version of the zone is resolved. That
works whether the public version is just a placeholder with nothing else of
significance in it or if it is a zone where both the external and internal
records matter and are used by the appropriate source for the query, but
differ.


> >   There are two ways to approach this.   One is to assume that the
> validator never checks the SOA on the zone.   This is almost certainly the
> case for nearly any use case.   In that case, you just
> > run the internal and external name servers with the same ZSK, and have a
> delegation above it.   You don't worry about zone serial numbers, because
> they don't affect validation.   When you're inside the VPN,
> > you get answers for the internal zone; when you're outside the vpn, you
> get answers for the outside.   Both validate, because the DS record(s) are
> referring to the same ZSK(s).
>
> coordinating shared ZSK's is even harder then requiring sharing DS
> records! ZSKs roll every month, and a lot of software auto-generates
> and performs the roll without any humans involved. It seems extremely
> fragile to need to coordinate ZSKs between different organisations,
> be ready for the same algorithm rollovers, etc etc.
>
>
Yes, absolutely. I wouldn't want to try to coordinate sharing signing keys
(KSK or ZSK) across different zones under any circumstance. I know some
places that do it with KSKs because the product they use supports it as
long as both versions of the zone are signed on the same device, but we
don't even sign internal and external zones in the same place. Or maintain
the master data in the same place for