draft-ietf-secsh-dns-04.txt   draft-ietf-secsh-dns-05.txt 
Secure Shell Working Group J. Schlyter Secure Shell Working Group J. Schlyter
Internet-Draft Carlstedt Research & Internet-Draft OpenSSH
Expires: October 1, 2003 Technology Expires: March 5, 2004 W. Griffin
W. Griffin SPARTA
Network Associates Laboratories September 5, 2003
April 2, 2003
Using DNS to securely publish SSH key fingerprints Using DNS to Securely Publish SSH Key Fingerprints
draft-ietf-secsh-dns-04.txt draft-ietf-secsh-dns-05.txt
Status of this Memo Status of this Memo
This document is an Internet-Draft and is in full conformance with This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026. all provisions of Section 10 of RFC2026.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that other Task Force (IETF), its areas, and its working groups. Note that other
groups may also distribute working documents as Internet-Drafts. groups may also distribute working documents as Internet-Drafts.
skipping to change at page 1, line 33 skipping to change at page 1, line 31
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at http:// The list of current Internet-Drafts can be accessed at http://
www.ietf.org/ietf/1id-abstracts.txt. www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on October 1, 2003. This Internet-Draft will expire on March 5, 2004.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2003). All Rights Reserved. Copyright (C) The Internet Society (2003). All Rights Reserved.
Abstract Abstract
This document describes a method to verify SSH host keys using This document describes a method to verify SSH host keys using
DNSSEC. The document defines a new DNS resource record that contains DNSSEC. The document defines a new DNS resource record that contains
a standard SSH key fingerprint. a standard SSH key fingerprint.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. SSH Host Key Verification . . . . . . . . . . . . . . . . . 3 2. SSH Host Key Verification . . . . . . . . . . . . . . . . . 3
2.1 Method . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1 Method . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Implementation Notes . . . . . . . . . . . . . . . . . . . . 3 2.2 Implementation Notes . . . . . . . . . . . . . . . . . . . . 3
2.3 Fingerprint Matching . . . . . . . . . . . . . . . . . . . . 4 2.3 Fingerprint Matching . . . . . . . . . . . . . . . . . . . . 4
2.4 Authentication . . . . . . . . . . . . . . . . . . . . . . . 4 2.4 Authentication . . . . . . . . . . . . . . . . . . . . . . . 4
3. The SSHFP Resource Record . . . . . . . . . . . . . . . . . 4 3. The SSHFP Resource Record . . . . . . . . . . . . . . . . . 4
3.1 The SSHFP RDATA Format . . . . . . . . . . . . . . . . . . . 4 3.1 The SSHFP RDATA Format . . . . . . . . . . . . . . . . . . . 5
3.1.1 Algorithm Number Specification . . . . . . . . . . . . . . . 5 3.1.1 Algorithm Number Specification . . . . . . . . . . . . . . . 5
3.1.2 Fingerprint Type Specification . . . . . . . . . . . . . . . 5 3.1.2 Fingerprint Type Specification . . . . . . . . . . . . . . . 5
3.1.3 Fingerprint . . . . . . . . . . . . . . . . . . . . . . . . 5 3.1.3 Fingerprint . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2 Presentation Format of the SSHFP RR . . . . . . . . . . . . 6 3.2 Presentation Format of the SSHFP RR . . . . . . . . . . . . 6
4. Security Considerations . . . . . . . . . . . . . . . . . . 6 4. Security Considerations . . . . . . . . . . . . . . . . . . 6
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . 7 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . 7
Normative References . . . . . . . . . . . . . . . . . . . . 8 Normative References . . . . . . . . . . . . . . . . . . . . 8
Informational References . . . . . . . . . . . . . . . . . . 8 Informational References . . . . . . . . . . . . . . . . . . 8
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 8 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 9
A. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9 A. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9
Intellectual Property and Copyright Statements . . . . . . . 10 Intellectual Property and Copyright Statements . . . . . . . 10
1. Introduction 1. Introduction
The SSH [5] protocol provides secure remote login and other secure The SSH [6] protocol provides secure remote login and other secure
network services over an insecure network. The security of the network services over an insecure network. The security of the
connection relies on the server authenticating itself to the client. connection relies on the server authenticating itself to the client
as well as the user authenticating itself to the server.
Server authentication is normally done by presenting the fingerprint If a connection is established to a server whose public key is not
of an unknown public key to the user for verification. If the user already known to the client, a fingerprint of the key is presented to
decides the fingerprint is correct and accepts the key, the key is the user for verification. If the user decides that the fingerprint
saved locally and used for verification for all following is correct and accepts the key, the key is saved locally and used for
connections. While some security-conscious users verify the verification for all following connections. While some
fingerprint out-of-band before accepting the key, many users blindly security-conscious users verify the fingerprint out-of-band before
accepts the presented key. accepting the key, many users blindly accept the presented key.
The method described here can provide out-of-band verification by The method described here can provide out-of-band verification by
looking up a fingerprint of the server public key in the DNS [1][2] looking up a fingerprint of the server public key in the DNS [1][2]
and using DNSSEC [4] to verify the lookup. and using DNSSEC [5] to verify the lookup.
In order to distribute the fingerprint using DNS, this document In order to distribute the fingerprint using DNS, this document
defines a new DNS resource record to carry the fingerprint. defines a new DNS resource record, "SSHFP", to carry the fingerprint.
Basic understanding of the DNS system [1][2] and the DNS security Basic understanding of the DNS system [1][2] and the DNS security
extensions [4] is assumed by this document. extensions [5] is assumed by this document.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [3]. document are to be interpreted as described in RFC 2119 [3].
2. SSH Host Key Verification 2. SSH Host Key Verification
2.1 Method 2.1 Method
Upon connection to a SSH server, the SSH client MAY look up the SSHFP Upon connection to a SSH server, the SSH client MAY look up the SSHFP
resource record(s) for the host it is connecting to. If the resource record(s) for the host it is connecting to. If the
algorithm and fingerprint of the key received from the SSH server algorithm and fingerprint of the key received from the SSH server
matches the algorithm and fingerprint of one of the SSHFP resource match the algorithm and fingerprint of one of the SSHFP resource
record(s) returned from DNS, the client MAY accept the identity of record(s) returned from DNS, the client MAY accept the identity of
the server. the server.
2.2 Implementation Notes 2.2 Implementation Notes
Client implementors SHOULD provide a configurable policy used to Client implementors SHOULD provide a configurable policy used to
select the order of methods used to verify a host key. This document select the order of methods used to verify a host key. This document
defines one method: Fingerprint storage in DNS. Another method defines one method: Fingerprint storage in DNS. Another method
defined in the SSH Architecture [5] uses local files to store keys defined in the SSH Architecture [6] uses local files to store keys
for comparison. Other methods that could be defined in the future for comparison. Other methods that could be defined in the future
might include storing fingerprints in LDAP or other databases. A might include storing fingerprints in LDAP or other databases. A
configurable policy will allow administrators to determine which configurable policy will allow administrators to determine which
methods they want to use and in what order the methods should be methods they want to use and in what order the methods should be
prioritized. This will allow administrators to determine how much prioritized. This will allow administrators to determine how much
trust they want to place in the different methods. trust they want to place in the different methods.
One specific scenario for having a configurable policy is where One specific scenario for having a configurable policy is where
clients do not use fully qualified host names to connect to servers. clients do not use fully qualified host names to connect to servers.
In this scenario, the implementation SHOULD verify the host key In this scenario, the implementation SHOULD verify the host key
skipping to change at page 4, line 30 skipping to change at page 4, line 31
The public key algorithm and the SSHFP algorithm number MUST The public key algorithm and the SSHFP algorithm number MUST
match. match.
A message digest of the public key, using the message digest A message digest of the public key, using the message digest
algorithm specified in the SSHFP fingerprint type, MUST match the algorithm specified in the SSHFP fingerprint type, MUST match the
SSH FP fingerprint. SSH FP fingerprint.
2.4 Authentication 2.4 Authentication
A public key verified using this method MUST only be trusted if the A public key verified using this method MUST NOT be trusted if the
SSHFP resource record (RR) used for verification was authenticated by SSHFP resource record (RR) used for verification was not
a trusted SIG RR. authenticated by a trusted SIG RR.
Clients that do validate the DNSSEC signatures themselves SHOULD use
standard DNSSEC validation procedures.
Clients that do not validate the DNSSEC signatures themselves MUST Clients that do not validate the DNSSEC signatures themselves MUST
use a secure transport, e.g. TSIG [8], SIG(0) [9] or IPsec [7], use a secure transport, e.g. TSIG [9], SIG(0) [10] or IPsec [8],
between themselves and the entity performing the signature between themselves and the entity performing the signature
validation. validation.
3. The SSHFP Resource Record 3. The SSHFP Resource Record
The SSHFP resource record (RR) is used to store a fingerprint of a The SSHFP resource record (RR) is used to store a fingerprint of a
SSH public host key that is associated with a Domain Name System SSH public host key that is associated with a Domain Name System
(DNS) name. (DNS) name.
The RR type code for the SSHFP RR is TBA. The RR type code for the SSHFP RR is TBA.
skipping to change at page 5, line 26 skipping to change at page 5, line 31
This algorithm number octet describes the algorithm of the public This algorithm number octet describes the algorithm of the public
key. The following values are assigned: key. The following values are assigned:
Value Algorithm name Value Algorithm name
----- -------------- ----- --------------
0 reserved 0 reserved
1 RSA 1 RSA
2 DSS 2 DSS
Reserving other types requires IETF consensus. Reserving other types requires IETF consensus [4].
3.1.2 Fingerprint Type Specification 3.1.2 Fingerprint Type Specification
The fingerprint type octet describes the message-digest algorithm The fingerprint type octet describes the message-digest algorithm
used to calculate the fingerprint of the public key. The following used to calculate the fingerprint of the public key. The following
values are assigned: values are assigned:
Value Fingerprint type Value Fingerprint type
----- ---------------- ----- ----------------
0 reserved 0 reserved
1 SHA-1 1 SHA-1
Reserving other types requires IETF consensus. For interoperability Reserving other types requires IETF consensus [4].
reasons, as few fingerprint types as possible should be reserved.
The only reason to reserve additional types is to increase security.
3.1.3 Fingerprint For interoperability reasons, as few fingerprint types as possible
should be reserved. The only reason to reserve additional types is
to increase security.
3.1.3 Fingerprint
The fingerprint is calculated over the public key blob as described The fingerprint is calculated over the public key blob as described
in [6]. in [7].
The message-digest algorithm is presumed to produce an opaque octet The message-digest algorithm is presumed to produce an opaque octet
string output which is placed as-is in the RDATA fingerprint field. string output which is placed as-is in the RDATA fingerprint field.
3.2 Presentation Format of the SSHFP RR 3.2 Presentation Format of the SSHFP RR
The presentation format of the SSHFP resource record consists of two The RDATA of the presentation format of the SSHFP resource record
numbers (algorithm and fingerprint type) followed by the fingerprint consists of two numbers (algorithm and fingerprint type) followed by
itself presented in hex, e.g: the fingerprint itself presented in hex, e.g:
host.example. SSHFP 2 1 123456789abcdef67890123456789abcdef67890 host.example. SSHFP 2 1 123456789abcdef67890123456789abcdef67890
The use of mnemonics instead of numbers is not allowed.
4. Security Considerations 4. Security Considerations
Currently, the amount of trust a user can realistically place in a Currently, the amount of trust a user can realistically place in a
server key is proportional to the amount of attention paid to server key is proportional to the amount of attention paid to
verifying that the public key presented actually corresponds to the verifying that the public key presented actually corresponds to the
private key of the server. If a user accepts a key without verifying private key of the server. If a user accepts a key without verifying
the fingerprint with something learned through a secured channel, the the fingerprint with something learned through a secured channel, the
connection is vulnerable to a man-in-the-middle attack. connection is vulnerable to a man-in-the-middle attack.
The approach suggested here shifts the burden of key checking from
each user of a machine to the key checking performed by the
administrator of the DNS recursive server used to resolve the host
information. Hopefully, by reducing the number of times that keys
need to be verified by hand, each verification is performed more
completely. Furthermore, by requiring an administrator do the
checking, the result may be more reliable than placing this task in
the hands of an application user.
The overall security of using SSHFP for SSH host key verification is The overall security of using SSHFP for SSH host key verification is
dependent on detailed aspects of how verification is done in SSH dependent on the security policies of the SSH host administrator and
implementations. One such aspect is in which order fingerprints are DNS zone administrator (in transferring the fingerprint), detailed
looked up (e.g. first checking local file and then SSHFP). We note aspects of how verification is done in the SSH implementation, and in
that in addition to protecting the first-time transfer of host keys, the client's diligence in accessing the DNS in a secure manner.
SSHFP can optionally be used for stronger host key protection.
One such aspect is in which order fingerprints are looked up (e.g.
first checking local file and then SSHFP). We note that in addition
to protecting the first-time transfer of host keys, SSHFP can
optionally be used for stronger host key protection.
If SSHFP is checked first, new SSH host keys may be distributed by If SSHFP is checked first, new SSH host keys may be distributed by
replacing the corresponding SSHFP in DNS. replacing the corresponding SSHFP in DNS.
If SSH host key verification can be configured to require SSHFP, If SSH host key verification can be configured to require SSHFP,
we can implement SSH host key revocation by removing the SSH host key revocation can be implemented by removing the
corresponding SSHFP from DNS. corresponding SSHFP from DNS.
As stated in Section 2.2, we recommend that SSH implementors provide As stated in Section 2.2, we recommend that SSH implementors provide
a policy mechanism to control the order of methods used for host key a policy mechanism to control the order of methods used for host key
verification. One specific scenario for having a configurable policy verification. One specific scenario for having a configurable policy
is where clients use unqualified host names to connect to servers. In is where clients use unqualified host names to connect to servers. In
this case, we recommend that SSH implementations check the host key this case, we recommend that SSH implementations check the host key
against a local database before verifying the key via the fingerprint against a local database before verifying the key via the fingerprint
returned from DNS. This would help prevent an attacker from injecting returned from DNS. This would help prevent an attacker from injecting
a DNS search path into the local resolver and forcing the client to a DNS search path into the local resolver and forcing the client to
skipping to change at page 7, line 24 skipping to change at page 7, line 26
Another dependency is on the implementation of DNSSEC itself. As Another dependency is on the implementation of DNSSEC itself. As
stated in Section 2.4, we mandate the use of secure methods for stated in Section 2.4, we mandate the use of secure methods for
lookup and that SSHFP RRs are authenticated by trusted SIG RRs. This lookup and that SSHFP RRs are authenticated by trusted SIG RRs. This
is especially important if SSHFP is to be used as a basis for host is especially important if SSHFP is to be used as a basis for host
key rollover and/or revocation, as described above. key rollover and/or revocation, as described above.
Since DNSSEC only protects the integrity of the host key fingerprint Since DNSSEC only protects the integrity of the host key fingerprint
after it is signed by the DNS zone administrator, the fingerprint after it is signed by the DNS zone administrator, the fingerprint
must be transferred securely from the SSH host administrator to the must be transferred securely from the SSH host administrator to the
DNS zone administrator. This could be done manually between the DNS zone administrator. This could be done manually between the
administrators or automatically using secure DNS dynamic update [10] administrators or automatically using secure DNS dynamic update [11]
between the SSH server and the nameserver. We note that this is no between the SSH server and the nameserver. We note that this is no
different from other key enrollment situations, e.g. a client sending different from other key enrollment situations, e.g. a client sending
a certificate request to a certificate authority for signing. a certificate request to a certificate authority for signing.
5. IANA Considerations 5. IANA Considerations
IANA needs to allocate a RR type code for SSHFP from the standard RR IANA needs to allocate a RR type code for SSHFP from the standard RR
type space (type 44 requested). type space (type 44 requested).
IANA needs to open a new registry for the SSHFP RR type for public IANA needs to open a new registry for the SSHFP RR type for public
key algorithms. Defined types are: key algorithms. Defined types are:
0 is reserved 0 is reserved
1 is RSA 1 is RSA
2 is DSA 2 is DSA
Adding new reservations requires IETF consensus. Adding new reservations requires IETF consensus [4].
IANA needs to open a new registry for the SSHFP RR type for IANA needs to open a new registry for the SSHFP RR type for
fingerprint types. Defined types are: fingerprint types. Defined types are:
0 is reserved 0 is reserved
1 is SHA-1 1 is SHA-1
Adding new reservations requires IETF consensus. Adding new reservations requires IETF consensus [4].
Normative References Normative References
[1] Mockapetris, P., "Domain names - concepts and facilities", STD [1] Mockapetris, P., "Domain names - concepts and facilities", STD
13, RFC 1034, November 1987. 13, RFC 1034, November 1987.
[2] Mockapetris, P., "Domain names - implementation and [2] Mockapetris, P., "Domain names - implementation and
specification", STD 13, RFC 1035, November 1987. specification", STD 13, RFC 1035, November 1987.
[3] Bradner, S., "Key words for use in RFCs to Indicate Requirement [3] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997. Levels", BCP 14, RFC 2119, March 1997.
[4] Eastlake, D., "Domain Name System Security Extensions", RFC [4] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA
Considerations Section in RFCs", BCP 26, RFC 2434, October 1998.
[5] Eastlake, D., "Domain Name System Security Extensions", RFC
2535, March 1999. 2535, March 1999.
[5] Rinne, T., Ylonen, T., Kivinen, T. and S. Lehtinen, "SSH [6] Ylonen, T., Kivinen, T., Saarinen, M., Rinne, T. and S.
Protocol Architecture", draft-ietf-secsh-architecture-13 (work Lehtinen, "SSH Protocol Architecture",
in progress), September 2002. draft-ietf-secsh-architecture-14 (work in progress), July 2003.
[6] Rinne, T., Ylonen, T., Kivinen, T., Saarinen, M. and S. [7] Ylonen, T., Kivinen, T., Saarinen, M., Rinne, T. and S.
Lehtinen, "SSH Transport Layer Protocol", Lehtinen, "SSH Transport Layer Protocol",
draft-ietf-secsh-transport-15 (work in progress), September draft-ietf-secsh-transport-16 (work in progress), July 2003.
2002.
Informational References Informational References
[7] Thayer, R., Doraswamy, N. and R. Glenn, "IP Security Document [8] Thayer, R., Doraswamy, N. and R. Glenn, "IP Security Document
Roadmap", RFC 2411, November 1998. Roadmap", RFC 2411, November 1998.
[8] Vixie, P., Gudmundsson, O., Eastlake, D. and B. Wellington, [9] Vixie, P., Gudmundsson, O., Eastlake, D. and B. Wellington,
"Secret Key Transaction Authentication for DNS (TSIG)", RFC "Secret Key Transaction Authentication for DNS (TSIG)", RFC
2845, May 2000. 2845, May 2000.
[9] Eastlake, D., "DNS Request and Transaction Signatures ( [10] Eastlake, D., "DNS Request and Transaction Signatures (
SIG(0)s)", RFC 2931, September 2000. SIG(0)s)", RFC 2931, September 2000.
[10] Wellington, B., "Secure Domain Name System (DNS) Dynamic [11] Wellington, B., "Secure Domain Name System (DNS) Dynamic
Update", RFC 3007, November 2000. Update", RFC 3007, November 2000.
Authors' Addresses Authors' Addresses
Jakob Schlyter Jakob Schlyter
Carlstedt Research & Technology OpenSSH
Stora Badhusgatan 18-20 812 23rd Avenue SE
Goteborg SE-411 21 Calgary, Alberta T2G 1N8
Sweden Canada
EMail: jakob@openssh.com
URI: http://www.openssh.com/
EMail: jakob@crt.se
URI: http://www.crt.se/~jakob/
Wesley Griffin Wesley Griffin
Network Associates Laboratories SPARTA
15204 Omega Drive Suite 300 7075 Samuel Morse Drive
Rockville, MD 20850 Columbia, MD 21046
USA USA
EMail: wgriffin@tislabs.com EMail: wgriffin@sparta.com
URI: http://www.nailabs.com/ URI: http://www.sparta.com/
Appendix A. Acknowledgements Appendix A. Acknowledgements
The authors gratefully acknowledges, in no particular order, the The authors gratefully acknowledge, in no particular order, the
contributions of the following persons: contributions of the following persons:
Martin Fredriksson Martin Fredriksson
Olafur Gudmundsson Olafur Gudmundsson
Edward Lewis Edward Lewis
Bill Sommerfeld Bill Sommerfeld
 End of changes. 

This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/