Internet DRAFT - draft-groth-openpgp-attribute-extension
draft-groth-openpgp-attribute-extension
Internet Draft D. Groth
Intended status: Experimental ITUA Inc.
Expires: 15 February 2009 15 August 2008
OpenPGP Attribute Extension
draft-groth-openpgp-attribute-extension-00.txt
Status of this Memo
By submitting this Internet-Draft, each author represents that
any applicable patent or other IPR claims of which he or she is
aware have been or will be disclosed, and any of which he or she
becomes aware will be disclosed, in accordance with Section 6 of
BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
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."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html
This Internet-Draft will expire on 15 February 2009.
Abstract
A RFC was accepted extending TLS usage to include OpenPGP keys (RFC
5081) as an alternative or in addition to X.509 certificates,
however the author did not really standardise the way the
information in OpenPGP keys was to be presented and this could be
detrimental or fragment efforts to utilise OpenPGP keys in this
manner.
The author didn't touch on the issue generating confidence scores
beyond potential use of Certificate Authorities.
Groth, D. Expires 15 February 2009 [Page 1]
Internet-Draft OpenPGP Attribute Extension August 2008
Table of Contents
1. Introduction.....................................................2
2. From the Client Perspective......................................2
2.1. 6 degrees of separation in a practical sense................2
2.2. Refining Confidence Scores..................................3
2.3. Out of band fingerprint verification........................3
2.4. Commercial Services.........................................4
2.5. Retrieving Meta Information.................................4
2.6. Verification of dnsNames....................................4
3. Structure of Host Information in OpenPGP Keys....................5
3.1. New User Attribute Type -- subjectAltNames..................5
3.2. Host Names..................................................5
4. IANA Considerations..............................................5
5. Conclusions......................................................5
6. Informative References...........................................6
Acknowledgements....................................................6
Author's Addresses..................................................6
Disclaimer of Validity..............................................7
Copyright Statement.................................................7
Intellectual Property Statements....................................7
1. Introduction
This document outlines ways User Attribute fields can be used,
suitable for any OpenPGP keys being used in for a server purpose and
the information would also be in a suitable format that computers
can easily parse.
An understanding of OpenPGP (RFC 4880) is assumed by this document.
Unless otherwise specified, the character set for text is the UTF-8
(RFC 3629) encoding of Unicode (ISO 10646).
2. From the Client Perspective
2.1. 6 degrees of separation in a practical sense
The PGP web of trust is in part based on the six degrees of
separation principle: anecdotally, everyone in the world knows
everyone else through at most six other people. Henk P. Penning has
a website up that explores this very issue with OpenPGP keys,
http://pgp.cs.uu.nl/plot/ and according to his calculations most
keys have an average of just under six degrees of separation.
For the purpose of generating a tangible confidence rating that a
host controls a particular host key we will be using arbitrary
numbers. Default values of 100 points for keys marked 'I trust
ultimately', 50 points for keys marked 'I trust fully', 30 points
Groth, D. Expires 15 February 2009 [Page 2]
Internet-Draft OpenPGP Attribute Extension August 2008
for keys marked as 'I trust marginally', 0 points for keys marked 'I
don't know' and -1 point for any keys marked 'I do not trust' are
good base values although any arbitrary number should work, but may
vary based on individual circumstances.
For anyone we don't know directly, we need to calculate trust paths
between keys by decaying points from the second relationship
outwards. Again these are arbitrary values and they can be
customised based on individual needs. The general case will use a
base of 75% for ultimately trusted introduction, 50% for full
trusted introduction, 25% trust for marginal introduction, -1 for
untrustworthy and 0 for don't know.
You follow trust paths between the local key ring and the key of the
server you are intending to request information from, branching out
until you get a points value of 0 or less, or find a direct path to
the host key. In either case you no longer follow that branch any
further.
For the system to be confident about an OpenPGP key you set the
minimum points required, again this can be any arbitrary number such
as 100.
2.2. Refining Confidence Scores
The system must have the ability for more finely grained control
over individual scores. The default method in OpenPGP is too coarse,
and doesn't easily allow you to distinguish between the capabilities
of different individuals. For example you trust Bob's judgement when
verifying other people holding the right keys more than most. You
add an exception for Bob so that anything he trusts will be assigned
75 points instead of 50.
Alice on the other hand is gullible. While you trust Alice, you
don't trust the verifications she makes. An exception is made for
Alice so that anything Alice trusts will only be assigned 10 points.
In this hypothetical example, even with both Alice and Bob trusting
a key your system still wouldn't hit the 100 points needed, so you
obviously need to get out and make more friends.
2.3. Out of band fingerprint verification
Just as people already hold key signing parties to verify each
others OpenPGP user ids, variations on this would start to appear
depending on the level each party needs or wants to secure their
resources. It is a reasonable assumption that not all services need
strong protection, and it is up to both the administrators and those
making requests or connections to those services to have the right
Groth, D. Expires 15 February 2009 [Page 3]
Internet-Draft OpenPGP Attribute Extension August 2008
level of confidence that the server or service being communicated
with is really who it claims to be.
For example a bank would be at more at risk and hence worth
protecting more than a personal blog that gets 100 visitors a month.
Banks already have a relationship with their customers and it would
be easy for them to provide the fingerprint of their key(s) on
business cards and other stationary items.
This process is commonly used to verify personal keys but there is
no reason this concept couldn't be extended so people could also
sign host keys or the main organisations key which in turn is used
to sign host keys.
The worst level of confidence when connecting to another host would
be no different than using self signed X.509 certificates.
2.4. Commercial Services
It is possible to leverage existing OpenPGP web of trust meta
information to draw similar conclusions about the confidence that the
server being sent packets is the owner of the OpenPGP key used to
encrypt the request, in a similar manner people make judgements on
the confidence about the server they are connecting to with their web
browser owns the private key matching the X.509 certificate issued by
a commercial Certificate Authority.
While the focus of this draft is on individuals making their own
choices, there is nothing preventing commercial entities from
offering signing services against host keys. The standard practise is
for OpenPGP User ID(s) to be signed by multiple entities, and this
practise could be utilised by multiple commercial entities, which
would potentially increase the confidence in the key being owned by
the host you send packets to.
2.5. Retrieving Meta Information
To be able to calculate confidence scores the full host keys will
need to be retrieved from PGP key servers, this can be a timely
process and will need to be periodically re-run to ensure signatures
are still valid.
2.6. Verification of dnsNames
Before accepting such a User Attribute during use, it is a policy
decision of the client to decide which sections of the Subject
Alternative Name to consult (e.g. when connecting to
https://example.com, a web browser may receive an OpenPGP
certificate with a Subject Alternative Name UAT with two parts:
Groth, D. Expires 15 February 2009 [Page 4]
Internet-Draft OpenPGP Attribute Extension August 2008
DNS:example.com and DNS:example.net; for the browser, the second
part of the UAT is irrelevant).
3. Structure of Host Information in OpenPGP Keys
3.1. New User Attribute Type -- subjectAltNames
OpenPGP has for the longest time been mostly used for text based
communication and file encryption, so the User ID section of keys
contain a name, an email address and possibly a comment.
For computer based systems to be able to easily parse the
information present, this draft assigns a new User Attribute Packet
type as defined in RFC 4880, to be used for Subject Alternative
Names.
This section defers options to RFC 3280, section 4.2.1.7. However
this section heavily references certificate authorities and for the
purposes of OpenPGP this is interchangeable with any certifying
agent.
3.2. Host Names
At least one user attribute type must always exist and contain a
valid dnsName for any server based keys.
The client will compare the host name it connects to with all
dnsName fields present in the server key. This field can contain a
fully qualified host name or a host name with a wild card character.
Only one wild card character is allowed to exist per dnsName, so
*.example.com is valid and would match hostname.example.com and
www.example.com but would not match this.hostname.example.com.
Multiple wild card characters per host name are expressly not
allowed, *.*.example.com for example should be handled by both
server software and client software as an invalid key, and no
software should allow the creation of such dnsNames.
4. IANA Considerations
IANA needs to assign an user attribute type as set out in this draft.
5. Conclusions
Even though this draft is specifically about using OpenPGP keys for
server purposes, there is nothing special about the methods used or
the way the structure of the information in OpenPGP keys is
presented that would prevent such keys from being utilised for other
purposes.
Groth, D. Expires 15 February 2009 [Page 5]
Internet-Draft OpenPGP Attribute Extension August 2008
6. Informative References
[RFC3280] Housley, et al., " Internet X.509 Public Key
Infrastructure Certificate and Certificate Revocation List
(CRL) Profile", Network Working Group, RFC 3280, April
2002.
[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
10646", STD 63, RFC 3629, November 2003.
[RFC4880] Callas, et. al., "OpenPGP Message Format", Network Working
Group, RFC 4880, November 2007.
[RFC5081] Mavrogiannopoulos, N., "Using OpenPGP Keys for Transport
Layer Security (TLS) Authentication", Network Working
Group, RFC 5081, November 2007.
Acknowledgements
All the people have given valuable input, listed in no particular
order:
Philipp Guehring, Daniel Kahn Gillmor, Sam Johnston and Denise Khoo.
Funding for the RFC Editor function is currently provided by the
Internet Society.
Author's Addresses
Duane Groth
Internet Telephony Users Association Inc.
P.O. Box 75
Banksia NSW 2216
Australia
Email: support@e164.org
Groth, D. Expires 15 February 2009 [Page 6]
Internet-Draft OpenPGP Attribute Extension August 2008
Disclaimer of Validity
This document and the information contained herein are provided on
an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE
REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE
IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL
WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY
WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE
ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS
FOR A PARTICULAR PURPOSE.
Copyright Statement
Copyright (C) The IETF Trust (2008).
This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
retain all their rights.
Intellectual Property Statements
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed
to pertain to the implementation or use of the technology described
in this document or the extent to which any license under such
rights might or might not be available; nor does it represent that
it has made any independent effort to identify any such rights.
Information on the procedures with respect to rights in RFC
documents can be found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use
of such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository
at http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
Groth, D. Expires 15 February 2009 [Page 7]