Re: [dane] use case for naming convention in the DNS for sign/encrypt functionality

Paul Hoffman <> Fri, 05 December 2014 22:19 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 5A89B1A6F7D for <>; Fri, 5 Dec 2014 14:19:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -3.647
X-Spam-Status: No, score=-3.647 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_MISMATCH_COM=0.553, RCVD_IN_DNSWL_MED=-2.3] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id djAjs_zheR71 for <>; Fri, 5 Dec 2014 14:19:03 -0800 (PST)
Received: from (Hoffman.Proper.COM []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id A52AE1A6F68 for <>; Fri, 5 Dec 2014 14:19:03 -0800 (PST)
Received: from [] ( [] (may be forged)) (authenticated bits=0) by (8.14.9/8.14.7) with ESMTP id sB5MIxIw080548 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 5 Dec 2014 15:19:02 -0700 (MST) (envelope-from
X-Authentication-Warning: Host [] (may be forged) claimed to be []
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 8.1 \(1993\))
From: Paul Hoffman <>
In-Reply-To: <>
Date: Sat, 6 Dec 2014 06:18:58 +0800
Content-Transfer-Encoding: quoted-printable
Message-Id: <>
References: <> <> <>
To: "Rose, Scott W." <>
X-Mailer: Apple Mail (2.1993)
Cc: dane WG list <>
Subject: Re: [dane] use case for naming convention in the DNS for sign/encrypt functionality
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DNS-based Authentication of Named Entities <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Fri, 05 Dec 2014 22:19:05 -0000

On Dec 5, 2014, at 11:22 PM, Rose, Scott W. <> wrote:
> On Dec 4, 2014, at 12:06 PM, Paul Wouters 🔓 <> wrote:
>> On Thu, 4 Dec 2014, Rose, Scott wrote:
>>> A varient of that could be an enterprise using a local trust anchor (CU 2) for digital signature certs in a wildcard SMIMEA (to cover all domain users), and generating encryption certs and using CU=3 since clients won't be able to perform full PKIX validation to the local trust anchor if they don't have it stored locally.  In a way, the encryption certs could be views as opportunistic S/MIME.  So you have:
>>> *  IN SMIMEA  2 0 1 <blob of local TA>
>>> and for each user that is allowed to accept encrypted mail:
>>> <user>  IN SMIMEA 3 0 0 <blob of local TA (or self) signed cert>
>> What does an SMIMEA DNS record signify?
>> I thought it meant "you can verify signatures on received email" and
>> "you can send encrypted email using this encryption key".
>> I do not think it can mean "this user is allowed to accept encrypted
>> email". Whether or not to encrypt is a local policy of the sender. If
>> and only if the sender wants to encrypt it, it will look for the
>> appropriate encryption key.
> It would be up to the org's policy about who can accept encrypted mail, and it wouldn't necessarily be signaled by DANE, just if a client discovers a cert that it can use to send encrypted mail, it could use it.

This is a good point, and one that became clearer in the second draft of draft-osterweil-dane-ent-email-reqs: not all requirements need to be met by DANE. A separate set of DNS records could be used to say "I don't care how you got that encryption key for that user: don't send encrypted to them because they will never get it".

>> I would envision an organisation to either allow individual encryption
>> keys, or a global encryption key. If you use a global encryption key,
>> you might still want to have individual signatures of people within
>> the organisation. So I can see that as a use case.
>> That use case _could_ also be solved by having two keys:
>> <user>  IN SMIMEA 2 0 1 <blob of local TA (or self) signed cert>
>> <user>  IN SMIMEA 2 0 1 <blob of local TA (or self) signed cert>
> True, I admit there are several ways to publish the RR's

This is one of the dangers of giving a use case that includes proposed on-the-wire solutions. :-)

>> Where one has the signing EKU set and one has the encryption EKU set.
>> This is much more straight forward and prevents situations where the EKU
>> and the DNS _prefix disagree and eliminates a lot of corner cases.
>>> The draft will have to have some text to specify when a client should not rely on the keyUsage field in the cert
>> It should always rely on it for CU=1 and CU=2. And CU=3 should clearly
>> not be used if there is domain policy covering an individual.
> I was thinking this too, but it isn't in the explicit in the text right now.  The problem I see is when an org decides to use CU 3 and doesn't bother to include a keyUsage or EKU.   If that isn't the case and can be prevented with best common practices, then that is ideal.

This is a topic that came up in the interim meeting that I think is critical for this WG: are the keyUsage and extendedKeyUsage fields in a cert received in an SMIMEA response:
- always paid attention to
- never paid attention to (the key usage will be determined in other ways)
- something squishy in between?

This also ties to the question of the interaction of SMIMEA records with certs received in other ways. If we have rules for keyUsage and extendedKeyUsage that are *different* based on where you got the cert, we can be sure that this will be mis-implemented, and possibly for good policy reasons.

>>> , and what to do if the field is not present in the cert at all.
>> I would say PKIX validation determined an SMIME certificate without
>> signing EKU cannot be used to verify signatures. An SMIME certificate
>> without encryption EKU cannot be be used for sending encrypted email.
>> (and if encryption is mandatory according to local policy, no email
>> should be sent in the clear either)
>>> A lot of this can be done without the naming convention, but it allows more flexibility and allows for easier management for some usage scenarios.
>> In my experience with X.509 and IKE and various EKU's and interop, many
>> vendors come up with many different EKU's related to the policy of
>> authentication and encryption. I'd really prefer not to see a zillion
>> _prefixes and a new RFC whenever a vendor comes up with a new EKU.
> I wasn't aware of that - yes that is a problem and a good argument against having DANE signal/confuse things.  

Yes, but. Having _prefixes for SMIMEA for SMIME actions (signing and encrypting) might be useful. We need to make it clearer that SMIMEA is a way to get a user's S/MIME credentials; an org that wants to distribute certs for other reasons would need to use a different RRtype. (And this would help deal with the problem of case sensitivity as well...)

--Paul Hoffman