Internet Engineering Task Force W. Krecicki Internet-Draft Internet Systems Consortium Intended status: Standards Track September 30, 2015 Expires: April 2, 2016 Stateless DNS Encryption draft-krecicki-dnsenc-00 Abstract The DNS is the last common Internet protocol that has no encryption scheme and therefore provides no privacy to the users. This document proposes an extensible mechanism providing encryption of DNS queries and responses with method for secure retrieval and verification of validity of encryption keys. It is independent of the underlying transport protocol. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on April 2, 2016. Copyright Notice Copyright (c) 2015 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) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of Krecicki Expires April 2, 2016 [Page 1] Internet-Draft Stateless DNS Encryption September 2015 the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 2. Communication process . . . . . . . . . . . . . . . . . . . . 3 3. Security Considerations . . . . . . . . . . . . . . . . . . . 3 4. References . . . . . . . . . . . . . . . . . . . . . . . . . 4 4.1. Normative References . . . . . . . . . . . . . . . . . . 4 4.2. Informative References . . . . . . . . . . . . . . . . . 4 Appendix A. Additional Stuff . . . . . . . . . . . . . . . . . . 4 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Introduction The Domain Name System protocol is specified in RFC 1034 [RFC1034] and RFC 1035" [RFC1035]. DNS messages are unencrypted and therefore prone to eavesdropping. Although it's considered only metadata, the are a lot of data that can be leaked - from simply domain names of visited sites, to eg phone numbers (RFC 3761 [RFC3761]) or e-mail addresses (draft-ietf-dane-smime-08 [I-D.ietf-dane-smime]). The DNS protocol is very lightweight - the queries are usually < 100 bytes long, the responses are usually < 1000 bytes (with DNSSEC). Existing transport encryption schemes such as TLS for TCP or DTLS for UDP give huge and unnecessary overhead both in amount of data sent and retrieved and in number of packets exchanged between client and server. In DNSENC the query is encrypted using asymmetric cryptography with a securely retrieved key, the response is encrypted using symmetric encryption using one-time key provided with query. DNSENC protocol is confined within DNS and does not requires any additional external mechanism such as external PKI/CA system. The DNSENC communication can be split into three phases: o first the client retrieves public key for server that is stored in DNS and DNSSEC signed (this key can be cached) o client creates the query, adds a random response encryption key and encrypts the query with servers public key o server decrypts the message, prepares the response and encrypts it with the key provided by client Krecicki Expires April 2, 2016 [Page 2] Internet-Draft Stateless DNS Encryption September 2015 1.1. Requirements Language 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 RFC 2119 [RFC2119]. 2. Communication process To communicate securely with server, client first needs to retrieve servers public key for assymetric encryption. This key is stored in DNSEK record for reverse DNS record IP address of DNS server, as described in RFC3152, 1033, 2317. This record MUST be DNSSEC signed. TODO alternative method - DNSEK kept by NS record Each DNSEK RR consist of priority field, key identifier, query encryption scheme (asymmetrical, eg. RSA), query key data and possible response encryption schemes. The server might provide multiple RR records, it's client responsibility to choose a RRR that has query and response encryption schemes supported by client and has highest priority. After choosin encryption scheme client generates a random response encryption key (symmetrical, eg. AES), prepares a regular DNS query with DNSEK record containing the response encryption scheme and key in ADDITIONAL section. This message is encrypted using query encryption key and packed, along with encryption key ID, in a DNSENC RR. A new query is created with query id copied from the encrypted message, empty QUESTION (TODO or put something there?), ANSWER and AUTHORITY sections and with DNSENC RR in ADDITIONAL section and sent to server. The response encryption key is stored along its identifier for decryption. After receiving the query with DNSENC RR in ADDITIONAL section the server checks if it has proper key and decrypts the message. A regular DNS response packet is created, it is encrypted using response encryption key sent by client and stored along with response encryption key ID in DNSENC RR. New response packet with query ID copied from the encrypted one is created with empty QUESTION, ANSWER (TODO?) and AUTHORITY sections and with DNSENC RR in ADDITIONAL section. This response packet is sent to the client. 3. Security Considerations The security of this protocol is based deeply on DNSSEC [RFC4033]. Protection agains downgrade attack requires wide adoption of DNSSEC. Krecicki Expires April 2, 2016 [Page 3] Internet-Draft Stateless DNS Encryption September 2015 4. References 4.1. Normative References [RFC1034] Mockapetris, P., "Domain names - concepts and facilities", STD 13, RFC 1034, DOI 10.17487/RFC1034, November 1987, . [RFC1035] Mockapetris, P., "Domain names - implementation and specification", STD 13, RFC 1035, DOI 10.17487/RFC1035, November 1987, . [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/ RFC2119, March 1997, . [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, . 4.2. Informative References [I-D.ietf-dane-smime] Hoffman, P. and J. Schlyter, "Using Secure DNS to Associate Certificates with Domain Names For S/MIME", draft-ietf-dane-smime-08 (work in progress), February 2015. [RFC3761] Faltstrom, P. and M. Mealling, "The E.164 to Uniform Resource Identifiers (URI) Dynamic Delegation Discovery System (DDDS) Application (ENUM)", RFC 3761, DOI 10.17487/ RFC3761, April 2004, . Appendix A. Additional Stuff This becomes an Appendix. Author's Address Krecicki Expires April 2, 2016 [Page 4] Internet-Draft Stateless DNS Encryption September 2015 Witold Krecicki Internet Systems Consortium Warsaw PL Phone: +48 502117580 Email: wpk@isc.org Krecicki Expires April 2, 2016 [Page 5]