RFC 7817
Updated Transport Layer Security (TLS) Server Identity Check Procedure for Email-Related Protocols
Updated Transport Layer Security (TLS) Server Identity Check Procedure for Email-Related Protocols โจ
Okay bestie, let's get into RFC 7817 ๐. It's a Standards Track doc from the Internet Engineering Task Force (IETF), written by A. Melnikov of Isode Ltd ๐. It's dated March 2016, and its ISSN is 2070-1721 ๐ฆ. It updates RFCs 2595, 3207, 3501, and 5804. Its header has no Obsoletes entry, so it's not replacing whole RFCs, just specific parts of them ๐.
Abstract
Okay so this doc explains how TLS server identity verification works for SMTP Submission, IMAP, POP, and ManageSieve clients ๐ฌ. It replaces Section 2.4 (Server Identity Check) of RFC 2595 and updates Section 4.1 (Processing After the STARTTLS Command) of RFC 3207, Section 11.1 (STARTTLS Security Considerations) of RFC 3501, and Section 2.2.1 (Server Identity Check) of RFC 5804 ๐ธ.
Status of This Memo
Heads up: this is an Internet Standards Track document ๐.
This doc is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG). For more on Internet Standards, check out Section 2 of RFC 5741 ๐ง.
Info about the current status of this document, any errata, and how to send feedback is at http://www.rfc-editor.org/info/rfc7817 ๐.
Copyright Notice
Copyright (c) 2016 IETF Trust and the persons identified as the document authors. All rights reserved ๐.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as in effect on the date of publication. Please read these carefully, because they spell out your rights and restrictions for this document ๐. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come without warranty, as described in the Simplified BSD License ๐.
Table of Contents
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Conventions Used in This Document . . . . . . . . . . . . . . 3
3. Email Server Certificate Verification Rules . . . . . . . . . 3
4. Compliance Checklist for Certification Authorities . . . . . 5
4.1. Notes on Handling of Delegated Email Services by
Certification Authorities . . . . . . . . . . . . . . . . 5
5. Compliance Checklist for Mail Service Providers and
Certificate Signing Request Generation Tools . . . . . . . . 6
5.1. Notes on Hosting Multiple Domains . . . . . . . . . . . . 7
6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 8
7. Operational Considerations . . . . . . . . . . . . . . . . . 9
8. Security Considerations . . . . . . . . . . . . . . . . . . . 9
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 9
9.1. Normative References . . . . . . . . . . . . . . . . . . 9
9.2. Informative References . . . . . . . . . . . . . . . . . 11
Appendix A. Changes to RFCs 2595, 3207, 3501, and 5804 . . . . . 12
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 13
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 13
1. Introduction
Okay so the TLS rules for SMTP Submission, IMAP, POP, and ManageSieve clients are described in [RFC3207], [RFC3501], [RFC2595], and [RFC5804], respectively ๐ . The thing is, each doc describes slightly different rules for server certificate identity verification (or doesn't define any rules at all) ๐. In reality, email client and server developers implement a bunch of these protocols at the same time, so it would be good to have modern, consistent rules for verifying email server identities using TLS โจ.
This document describes the updated TLS server identity verification procedure for SMTP Submission [RFC6409] [RFC3207], IMAP [RFC3501], POP [RFC1939], and ManageSieve [RFC5804] clients ๐ฆ. Section 3 of this document replaces Section 2.4 of [RFC2595].
Note that this document doesn't apply to use of TLS in MTA-to-MTA SMTP ๐ โโ๏ธ.
This document gives you a consistent TLS server identity verification procedure across multiple email-related protocols ๐. This should make it easier for Certification Authorities (CAs) and ISPs to deploy TLS for email use, and it would enable email client developers to write more secure code ๐ฅ.
2. Conventions Used in This Document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119] ๐.
Here are the terms and concepts used throughout the doc ๐:
- reference identifier: One of the domain names that the email client (an SMTP, IMAP, POP3, or ManageSieve client) associates with the target email server. For some identifier types, the identifier also includes an application service type. Reference identifiers are used for performing name checks on server certificates. (This term is formally defined in [RFC6125].)
CN-ID, DNS-ID, SRV-ID, and URI-ID are identifier types (see [RFC6125] for details). For convenience, here are their short definitions from [RFC6125] ๐ง:
- CN-ID: A Relative Distinguished Name (RDN) in the certificate subject field that contains one and only one attribute-type-and-value pair of type Common Name (CN), where the value matches the overall form of a domain name (informally, dot-separated, letter-digit-hyphen labels).
- DNS-ID: A
subjectAltNameentry of typedNSName. - SRV-ID: A
subjectAltNameentry of typeotherNamewhose name form isSRVName. - URI-ID: A
subjectAltNameentry of typeuniformResourceIdentifierwhose value includes both (i) a "scheme" and (ii) a "host" component (or its equivalent) that matches the "reg-name" rule (where the quoted terms represent the associated [RFC5234] productions from [RFC3986]).
3. Email Server Certificate Verification Rules
Okay, this is the main event ๐. During a TLS negotiation, an email client (i.e., an SMTP, IMAP, POP3, or ManageSieve client) MUST check its understanding of the server identity (client's reference identifiers) against the server's identity as presented in the server Certificate message, in order to prevent man-in-the-middle attacks ๐ก๏ธ. This check is only performed after the server certificate passes certification path validation as described in Section 6 of [RFC5280]. Matching is performed according to the rules specified in Section 6 of [RFC6125], including the relative order of matching of different identifier types, "certificate pinning", and the procedure on failure to match. The following inputs are used by the verification procedure used in [RFC6125]:
- For DNS-ID and CN-ID identifier types, the client MUST use one or more of the following as "reference identifiers": (a) the domain portion of the user's email address, (b) the hostname it used to open the connection (without CNAME canonicalization). The client MAY also use (c) a value securely derived from (a) or (b), such as using "secure" DNSSEC [RFC4033] [RFC4034] [RFC4035] validated lookup ๐.
- When using the email service discovery procedure specified in [RFC6186], the client MUST also use the domain portion of the user's email address as another "reference identifier" to compare against an SRV-ID identifier in the server certificate ๐ฆ.
The rules and guidelines defined in [RFC6125] apply to an email server certificate, with the following supplemental rules ๐ธ:
- Support for the DNS-ID identifier type (
subjectAltNameofdNSNametype [RFC5280]) is REQUIRED in email client software implementations. - Support for the SRV-ID identifier type (
subjectAltNameofSRVNametype [RFC4985]) is REQUIRED for email client software implementations that support [RFC6186]. A list of SRV-ID types for email services is specified in [RFC6186]. For the ManageSieve protocol, the service name "sieve" is used ๐ง. - A URI-ID identifier type (
subjectAltNameofuniformResourceIdentifiertype [RFC5280]) MUST NOT be used by clients for server verification, as URI-IDs were not historically used for email ๐ โโ๏ธ. - For backward compatibility with deployed software, a CN-ID identifier type (CN attribute from the subject name, see [RFC6125]) MAY be used for server identity verification ๐.
- Email protocols allow use of certain wildcards in identifiers presented by email servers. The "*" wildcard character MAY be used as the left-most name component of a DNS-ID or CN-ID in the certificate. For example, a DNS-ID of
"*.example.com"would match"a.example.com","foo.example.com", etc., but would not match"example.com". Note that the wildcard character MUST NOT be used as a fragment of the left-most name component (e.g.,"*oo.example.com","f*o.example.com", or"foo*.example.com") ๐.
4. Compliance Checklist for Certification Authorities โจ
Okay CAs, this part is for you ๐:
- CAs MUST support issuance of server certificates with a DNS-ID identifier type (
subjectAltNameofdNSNametype [RFC5280]). (Note that some DNS-IDs may refer to domain portions of email addresses, so they might not have corresponding A/AAAA DNS records ๐.) - CAs MUST support issuance of server certificates with an SRV-ID identifier type (
subjectAltNameofSRVNametype [RFC4985]) for each type of email service. See Section 4.1 for more discussion on what this means for CAs ๐ . - For backward compatibility with a deployed client base, CAs MUST support issuance of server certificates with a CN-ID identifier type (CN attribute from the subject name, see [RFC6125]) ๐ฆ.
- CAs MAY allow "*" (wildcard) as the left-most name component of a DNS-ID or CN-ID in server certificates they issue ๐ธ.
4.1. Notes on Handling of Delegated Email Services by Certification Authorities ๐
okay bestie, this part is about what happens when an email hosting company runs your mail for you. ๐ธ [RFC6186] gives email clients an easy way to autoconfigure themselves, and it also lets organizations delegate their email service to a hosting provider. So say a client connects to "imap.hosting.example.net" ๐ฌ to read mail for alice@example.org. That server has to be allowed to serve email for example.org, and the client needs to know that. โจ
Without SRV-IDs, the client's TLS check would fail to match the certificate against the expected domain, and users of compliant clients would be stuck manually confirming exceptions ๐ญ. One fix is for the TLS certificate for "imap.hosting.example.net" to carry SRV-ID(s) (or a DNS-ID) for the "example.org" domain. ๐ฆ
There's also a second route: DNS Service Record (SRV) lookups protected by DNSSEC. But that depends on DNSSEC being used everywhere and on DNSSEC-aware APIs being available, so this document doesn't cover it. A future update might fix that. ๐ฎ
A CA that gets a Certificate Signing Request with multiple unrelated DNS-IDs and/or SRV-IDs (say "example.org" and "example.com" together) has to verify that whoever sent the request is authorized to provide email service for all of those domains. ๐
Issuing a certificate with an SRV-ID (or a DNS-ID for the domain part of email addresses) means the CA can verify that the requester is authorized to run email service for those SRV-IDs/DNS-IDs. ๐ง So CAs that can't verify that authorization, whether for a particular domain or in general, MUST NOT include those email SRV-IDs/DNS-IDs in the certificates they issue. ๐ซ This document doesn't say exactly how to do the checking, but here are a few special case recommendations.
A CA that's willing to sign a certificate with a particular DNS-ID SHOULD also be willing to sign one with one or more of the email SRV-IDs for that same domain. Why? Because an SRV-ID gives more restricted access to a domain's email service, while a DNS-ID lets you use any service on that domain. ๐
A CA that also provides DNS service for a domain can use that DNS information to validate SRV-IDs/DNS-IDs for the domain. ๐
A CA that is also a Mail Service Provider for a hosted domain can use that knowledge to validate SRV-IDs/DNS-IDs for the domain. ๐
5. Compliance Checklist for Mail Service Providers and Certificate Signing Request Generation Tools ๐
Okay, this is the checklist for Mail Service Providers and Certificate Signing Request generation tools. ๐
- Mail Service Providers and CSR tools MUST include the DNS-ID identifier type in Certificate Signing Requests for the host name(s) where the email server(s) are running. They SHOULD include the DNS-ID identifier type in CSRs for the domain portion of served email addresses. ๐
- They MUST include the SRV-ID identifier type for each type of email service in CSRs if the email services they provide are discoverable using DNS SRV as specified in [RFC6186]. โจ
- They SHOULD include the CN-ID identifier type for the host name where the email server(s) is running in CSRs for backward compatibility with deployed email clients. ๐ฆ (Note: a certificate can only include a single CN-ID, so if a mail service runs on multiple hosts, either each host uses a different certificate with its own CN-ID, a single certificate with multiple DNS-IDs, or a single certificate with a wildcard in a CN-ID can be used. ๐งฉ)
- They MAY include "*" (wildcard) as the left-most name component of a DNS-ID or CN-ID in CSRs. ๐ธ
5.1. Notes on Hosting Multiple Domains ๐
A server that hosts multiple domains needs to do one of the following (or some combination of them): ๐
- Use DNS SRV records to redirect each hosted email service to a fixed domain, deploy TLS certificate(s) for that single domain, and tell users to configure their clients with appropriate pinning (unless the SRV records can always be obtained via DNSSEC). Some email clients come with preloaded lists of pinned certificates for popular domains, which can avoid the need for manual confirmation. ๐
- Use a single TLS certificate that includes a complete list of all the domains it serves. ๐
- Serve each domain on its own IP/port, using separate TLS certificates on each IP/port. ๐
- Use the Server Name Indication (SNI) TLS extension [RFC6066] to select the right certificate to return during TLS negotiation. Each domain has its own TLS certificate in this case. ๐
Each of these choices has scaling disadvantages when the list of domains changes. ๐ตโ๐ซ Using DNS SRV without an SRV-ID requires manual confirmation from users. Preloading pinned certificates avoids that, but the info can get stale quickly, or you'd need a new mechanism for distributing preloaded pinned certificates. ๐ With a single certificate (the second choice), adding a domain means issuing a new CSR with the complete list of domains and passing it to a CA to generate a new certificate. ๐ A separate IP/port avoids regenerating the certificate but takes more transport layer resources. ๐ฅ๏ธ And using TLS SNI requires every email client to support it. ๐ฑ
Lots of Mail Service Providers host hundreds and even thousands of domains. This document, along with its predecessors RFCs 2595, 3207, 3501, and 5804, doesn't address the scaling issues caused by using TLS in multi-tenanted environments. ๐ข More work is needed here, possibly using DNSSEC or something like PKIX over Secure HTTP (POSH) [RFC7711]. ๐ญ
6. Examples ๐ง
Consider an IMAP-accessible email server that supports both IMAP and IMAP-over-TLS (IMAPS) at the host "mail.example.net", serving email addresses of the form "user@example.net". ๐ง A certificate for this service needs to include DNS-IDs of "example.net" (because it's the domain portion of the emails) and "mail.example.net" (what a user enters manually if not using [RFC6186]). It might also include a CN-ID of "mail.example.net" for backward compatibility with deployed infrastructure. ๐
Now take the IMAP server from the previous paragraph, which is also discoverable via DNS SRV lookups in the domain "example.net" (using the DNS SRV records "_imap._tcp.example.net" and "_imaps._tcp.example.net"). On top of the DNS-ID/CN-ID identity types above, its certificate also needs SRV-IDs of "_imap.example.net" (when STARTTLS is used on the IMAP port) and "_imaps.example.net" (when TLS is used on the IMAPS port). ๐ฏ See [RFC6186] for more details. (Fun fact: unlike DNS SRV, SRV-IDs have no "_tcp" component. ๐ค)
Next, the IMAP server from the first paragraph runs on a host also known as "mycompany.example.com". ๐ข On top of the DNS-ID identity types above, its certificate also needs a DNS-ID of "mycompany.example.com" (what a user enters manually if not using [RFC6186]). It might also include a CN-ID of "mycompany.example.com" instead of "mail.example.net" for backward compatibility with deployed infrastructure. ๐ (This is so because a certificate can only include a single CN-ID.)
Consider an SMTP Submission server at the host "submit.example.net", serving email addresses of the form "user@example.net" and discoverable via DNS SRV lookups in the domain "example.net" (using the DNS SRV record "_submission._tcp.example.net"). ๐ค A certificate for this service needs SRV-IDs of "_submission.example.net" (see [RFC6186]) along with DNS-IDs of "example.net" and "submit.example.net". It might also include a CN-ID of "submit.example.net" for backward compatibility with deployed infrastructure. ๐
Last one: a host "mail.example.net" serves email addresses of the form "user@example.net" and is discoverable via DNS SRV lookups in the domain "example.net". It runs SMTP Submission, IMAPS, POP3S (POP3-over-TLS), and ManageSieve services. ๐ Each server can use its own service-specific certificate (see the examples above). Or they can all share a single certificate that includes SRV-IDs of "_submission.example.net", "_imaps.example.net", "_pop3s.example.net", and "_sieve.example.net", along with DNS-IDs of "example.net" and "mail.example.net". It might also include a CN-ID of "mail.example.net" for backward compatibility with deployed infrastructure. ๐ฅณ
7. Operational Considerations โ๏ธ
Section 5 covers operational considerations (in particular, use of DNS SRV for autoconfiguration) related to generating TLS certificates for email servers so email clients can verify them successfully. ๐ซ Section 5.1 also talks about operational considerations for hosting multiple domains. ๐ง
8. Security Considerations ๐
๐จ Security matters here, bestie! Please read this part carefully. ๐จ
The goal of this document is to improve interoperability, and therefore security, of email clients that access email servers over TLS-protected email protocols. It does this by specifying a consistent set of rules that email service providers, email client writers, and CAs can use when creating server certificates. ๐ก๏ธ
The TLS server identity check for email relies on trustworthy DNS hostnames when constructing "reference identifiers" that get checked against an email server certificate. ๐ต๏ธ Those trustworthy names are either entered manually (for example, if they're advertised on a Mail Service Provider's website), explicitly confirmed by the user (e.g., if they're the target of a DNS SRV lookup), or derived using a secure third party service (e.g., DNSSEC-protected SRV records that are verified by the client or a trusted local resolver). ๐ Future work in this area might benefit from integration with DNS-Based Authentication of Named Entities (DANE) [RFC6698], but that's not covered by this document. ๐
9. References ๐
9.1. Normative References
okay bestie, these are the must-reads ๐โจ if you want to actually build this stuff, you need every single one of these in your back pocket ๐
[RFC1939] Myers, J. and M. Rose, "Post Office Protocol - Version 3",
STD 53, RFC 1939, DOI 10.17487/RFC1939, May 1996,
<http://www.rfc-editor.org/info/rfc1939>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>.
[RFC3207] Hoffman, P., "SMTP Service Extension for Secure SMTP over
Transport Layer Security", RFC 3207, DOI 10.17487/RFC3207,
February 2002, <http://www.rfc-editor.org/info/rfc3207>.
[RFC3501] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION
4rev1", RFC 3501, DOI 10.17487/RFC3501, March 2003,
<http://www.rfc-editor.org/info/rfc3501>.
[RFC4985] Santesson, S., "Internet X.509 Public Key Infrastructure
Subject Alternative Name for Expression of Service Name",
RFC 4985, DOI 10.17487/RFC4985, August 2007,
<http://www.rfc-editor.org/info/rfc4985>.
[RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S.,
Housley, R., and W. Polk, "Internet X.509 Public Key
Infrastructure Certificate and Certificate Revocation List
(CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008,
<http://www.rfc-editor.org/info/rfc5280>.
[RFC5804] Melnikov, A., Ed. and T. Martin, "A Protocol for Remotely
Managing Sieve Scripts", RFC 5804, DOI 10.17487/RFC5804,
July 2010, <http://www.rfc-editor.org/info/rfc5804>.
[RFC6066] Eastlake 3rd, D., "Transport Layer Security (TLS)
Extensions: Extension Definitions", RFC 6066,
DOI 10.17487/RFC6066, January 2011,
<http://www.rfc-editor.org/info/rfc6066>.
[RFC6125] Saint-Andre, P. and J. Hodges, "Representation and
Verification of Domain-Based Application Service Identity
within Internet Public Key Infrastructure Using X.509
(PKIX) Certificates in the Context of Transport Layer
Security (TLS)", RFC 6125, DOI 10.17487/RFC6125, March
2011, <http://www.rfc-editor.org/info/rfc6125>.
[RFC6186] Daboo, C., "Use of SRV Records for Locating Email
Submission/Access Services", RFC 6186,
DOI 10.17487/RFC6186, March 2011,
<http://www.rfc-editor.org/info/rfc6186>.
[RFC6409] Gellens, R. and J. Klensin, "Message Submission for Mail",
STD 72, RFC 6409, DOI 10.17487/RFC6409, November 2011,
<http://www.rfc-editor.org/info/rfc6409>.
9.2. Informative References
these ones are the helpful background reads ๐ธ not strictly required, but they make the whole picture click
[RFC2595] Newman, C., "Using TLS with IMAP, POP3 and ACAP",
RFC 2595, DOI 10.17487/RFC2595, June 1999,
<http://www.rfc-editor.org/info/rfc2595>.
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifier (URI): Generic Syntax", STD 66,
RFC 3986, DOI 10.17487/RFC3986, January 2005,
<http://www.rfc-editor.org/info/rfc3986>.
[RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S.
Rose, "DNS Security Introduction and Requirements",
RFC 4033, DOI 10.17487/RFC4033, March 2005,
<http://www.rfc-editor.org/info/rfc4033>.
[RFC4034] Arends, R., Austein, R., Larson, M., Massey, D., and S.
Rose, "Resource Records for the DNS Security Extensions",
RFC 4034, DOI 10.17487/RFC4034, March 2005,
<http://www.rfc-editor.org/info/rfc4034>.
[RFC4035] Arends, R., Austein, R., Larson, M., Massey, D., and S.
Rose, "Protocol Modifications for the DNS Security
Extensions", RFC 4035, DOI 10.17487/RFC4035, March 2005,
<http://www.rfc-editor.org/info/rfc4035>.
[RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
Specifications: ABNF", STD 68, RFC 5234,
DOI 10.17487/RFC5234, January 2008,
<http://www.rfc-editor.org/info/rfc5234>.
[RFC6698] Hoffman, P. and J. Schlyter, "The DNS-Based Authentication
of Named Entities (DANE) Transport Layer Security (TLS)
Protocol: TLSA", RFC 6698, DOI 10.17487/RFC6698, August
2012, <http://www.rfc-editor.org/info/rfc6698>.
[RFC7711] Miller, M. and P. Saint-Andre, "PKIX over Secure HTTP
(POSH)", RFC 7711, DOI 10.17487/RFC7711, November 2015,
<http://www.rfc-editor.org/info/rfc7711>.
Appendix A. Changes to RFCs 2595, 3207, 3501, and 5804 ๐ฆ
okay this appendix is the editing receipts, bestie ๐งพ it tells you exactly which old paragraphs got swapped out for the new ones
This section lists the detailed changes that this document applies to RFCs 2595, 3207, 3501, and 5804.
First up, the entire Section 2.4 of RFC 2595 gets replaced with this text:
During the TLS negotiation, the client checks its understanding of the
server identity against the provided server's identity as specified in
Section 3 of [RFC7817].
Next, the 3rd paragraph (and its subparagraphs) in Section 11.1 of RFC 3501 gets replaced with this:
During the TLS negotiation, the IMAP client checks its understanding of
the server identity against the provided server's identity as specified
in Section 3 of [RFC7817].
Then the 3rd paragraph (and its subparagraphs) in Section 4.1 of RFC 3207 gets the same treatment:
During the TLS negotiation, the Submission client checks its
understanding of the server identity against the provided server's
identity as specified in Section 3 of [RFC7817].
Last but not least, Sections 2.2.1 and 2.2.1.1 of RFC 5804 get replaced with this text. This one is extra juicy because it covers IP addresses too ๐
During the TLS negotiation, the ManageSieve client checks its
understanding of the server identity against the server's identity as
specified in Section 3 of [RFC7817]. When the reference identity is an
IP address, the iPAddress subjectAltName SHOULD be used by the client
for comparison. The comparison is performed as described in Section
2.2.1.2 of RFC 5804.
Acknowledgements ๐ซถ
Thank you to Chris Newman, Viktor Dukhovni, Sean Turner, Russ Housley, Alessandro Vesely, Harald Alvestrand, and John Levine for comments on this document. ๐
the editor copied a LOT of text from RFCs 2595 and 6125, so the hard work of those editors deserves a standing ovation ๐๐
Author's Address ๐
Alexey Melnikov
Isode Ltd
14 Castle Mews
Hampton, Middlesex TW12 2NP
United Kingdom
EMail: Alexey.Melnikov@isode.com
๐ฆ where this page comes from
- ietf: rfc7817 2016-03
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms