Network Working Group William A. Nace(NSA)
Internet Draft James E. Zmuda(SPYRUS)
expires in six months November 16th, 1997
PPP EAP DSS Public Key Authentication Protocol
<draft-ietf-pppext-eapdss-00.txt>
Status of this Memo
This document is a submission to the Point-to-Point Protocol
Extensions Working Group of the Internet Engineering Task Force
(IETF). Comments should be submitted to the ietf-ppp@merit.edu
mailing list.
Distribution of this memo is unlimited.
This document is an Internet-Draft. 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 not appropriate to use Internet-
Drafts as reference material or to cite them other than as 'work
in progress.'
To learn the current status of any Internet-Draft, please check
the '1id-abstracts.txt' listing contained in the Internet-Drafts
Shadow Directories on ds.internic.net (US East Coast),
nic.nordu.net (Europe), ftp.isi.edu (US West Coast), or
munnari.oz.au (Pacific Rim).
Abstract
The Point-to-Point Protocol (PPP) [1] provides a standard method
for transporting multi-protocol datagrams over point-to-point
links
PPP also defines an extensible Link Control Protocol, which
allows negotiation of an Authentication Protocol for
authentication of its peer before allowing Network Layer
protocols to transmit over the link.
PPP Extensible Authentication Protocol (EAP) [2] provides for a
Nace & Zmuda Expires in six months [Page 1]
DRAFT PPP EAP DSS Public Key Authentication ProtocolNovember 1997
number of authentication mechanisms. This document specifies
yet another authentication mechanism that may be used within the
EAP framework. This document defines the DSS Public Key
Authentication Protocol within PPP EAP.
1. Introduction
In order to establish communications over a point-to- point link,
each end of the PPP link must first send LCP packets to configure the
data link during Link Establishment phase. After the link has been
established, PPP provides for an optional Authentication phase before
proceeding to the Network- Layer Protocol phase.
By default, authentication is not mandatory. If authentication of
the link is desired, an implementation MUST specify the
Authentication-Protocol Configuration Option during Link Establish-
ment phase.
PPP Extensible Authentication Protocol (EAP) [2] allows for a number
of authentication protocols including DSS Public Key Authentication
Protocol.
This document defines the PPP EAP DSS Public Key Authentication Pro-
tocol. The Link Establishment and Authentication phases, and the
Authentication-Protocol Configuration Option are defined in The
Point-to-Point Protocol (PPP) [1]. The Extensible Authentication
protocol is defined in PPP Extensible Authentication Protocol (EAP)
[2].
1.1. Specification of Requirements
In this document, several words are used to signify the requirements
of the specification. These words are often capitalized.
MUST This word, or the adjective required, means that the
definition is an absolute requirement of the specifi-
cation.
MUST NOT This phrase means that the definition is an absolute
prohibition of the specification.
SHOULD This word, or the adjective recommended, means that
there may exist valid reasons in particular cir-
cumstances to ignore this item, but the full implica-
tions must be understood and carefully weighed before
choosing a different course.
Nace & Zmuda Expires in six months [Page 2]
DRAFT PPP EAP DSS Public Key Authentication ProtocolNovember 1997
MAY This word, or the adjective optional, means that this
item is one of an allowed set of alternatives. An
implementation which does not include this option MUST
be prepared to interoperate with another implementa-
tion which does include the option.
1.2. Terminology
This document frequently uses the following terms:
authenticator The end of the link requiring the authentication. The
authenticator specifies use of DSS Authentication in
the EAP-Request during Authentication phase.
certificate A certificate consists of the binding together of one
or more public key values and an identity. This bind-
ing is effected through a digital signature which is
computed over the data containing both the public key
and the identity. This signature is applied by a
"certification authority" who is recognized as issuing
this certificate on behalf of the entity identified in
the certificate. In this manner a recipient of this
certificate can determine the recognized public key of
the particular entity identified in the certificate.
This requires the recipient to, either directly or
indirectly, trust the authority who has issued this
certificate.
certification authority (CA)
An authority trusted by one or more users to create
and assign certificates. [3].
digital signature
In the DSS, a digital signature is produced by per-
forming the DSA signing operation with a private key
on the SHA-1 Hash value computed over the original
data to be signed. The verification of this digital
signature requires the verifier to obtain the original
message, and the signature value, and the proper pub-
lic key value that is associated with the signer (see
certificates below). The verifier then also computes
the SHA-1 Hash of the message data, and then perform a
computation whose inputs include this hash value, the
public key, and the signature value. If the output of
this computation matches a particular part of the sig-
nature value produced by the signer, then the signa-
ture is verified.
Nace & Zmuda Expires in six months [Page 3]
DRAFT PPP EAP DSS Public Key Authentication ProtocolNovember 1997
DSA Digital Signature Algorithm
DSS Digital Signature Standard
DSS key pair A pair of keys, one of which, the private key, can be
used to produce a "signature". The other, or public,
key can be used only to verify that a digital signa-
ture has been produced by the private key it is asso-
ciated with, when acting on a particular piece of
data. Under the DSA these two keys do not form an
encryption/decryption pair, however.
distinguished name
A unique heirarchical name. Used in the certificate's
"subject" field to denote the entity associated with
the public key value(s) in the certificate[2]. Also
used in the certificate's "issuer" field to denote the
entity that issued this certificate.
peer The other end of the point-to-point link; the end
which is being authenticated by the authenticator.
private key That key of a key pair which is known only by that
user [3].
public key That key of a key pair which is publicly known [3].
SHA-1 Secure Hash Algorithm revision one.
2. PPP EAP DSS Public Key Authentication
The PPP Extensible Authentication Protocol is a general protocol for
PPP authentication which supports multiple authentication mechanisms.
EAP MAY be negotiated at Link Control Phase. EAP MAY then be used to
select the DSS Public Key Authentication mechanisms at the Authenti-
cation Phase.
The DSS Public Key Authentication Protocol is a challenge- response
protocol based on unilateral two pass authentication as described in
NIST FIPS PUB 196 "Standard for Public Key Cryptographic Entity
Authentication Mechanisms" [4]. The authenticator issues a challenge
in the form of a Request packet. The peer MUST formulate a Response
packet based on information in the Request packet as well as informa-
tion only the peer knows (the peer's private key). The peer MUST
also provide in its response a reference (i.e. the subject Dis-
tinguished Name in the Certificate) to its own certificate (the cer-
tificate containing the peer's public key), as well as proof that it
Nace & Zmuda Expires in six months [Page 4]
DRAFT PPP EAP DSS Public Key Authentication ProtocolNovember 1997
knows the corresponding private key. The peer's certificate is
assumed to have been obtained through other means. One such means is
the use of the Certificate Exchange Protocol. The Certificate
Exchange Protocol is defined as an extension to the PPP protocol
suite. It is suggested as occurring during a new phase in between
Link Control and Authentication. The Certificate Exchange Protocol is
defined in [5].
In detail, the steps in EAP DSS are:
1. After the Link Establishment phase is complete and
Extensible Authentication Protocol is negotiated, the
authenticator sends a Request packet to authenticate
the peer. The Request packet has a type field speci-
fying DSS Public Key Authentication plus some random
data produced by the authenticator.
2. The peer sends a Response packet in reply to the
Request. The response contains the digital signature
computed by the peer over the concatenation of the
challenge, the timestamp, and the peer's distinguished
name.
3. Based on information contained in the Response packet,
the authenticator ends the authentication phase with
either a Success packet or a Failure packet. These
packets are defined in PPP Extensible Authentication
Protocol (EAP) [2].
3. PPP EAP DSS Public Key Authentication Packet Format
DSS Unilateral authentication is performed using a derivative of the
FIPS PUB 196 mechanism as defined below. The FIPS PUB 196 verifier
corresponds to the EAP authenticator, while the claimant has a simi-
lar relation to the EAP authenticatee.
In keeping with FIPS PUB 196 notation, the authenticator is identi-
fied as "B"; the authenticatee as "A". Two packets are exchanged in
order to perform the authentication, first from B to A, and then from
A to B.
Both the EAP Response and Request packets for the DSS Unilateral Type
have the following format:
Nace & Zmuda Expires in six months [Page 5]
DRAFT PPP EAP DSS Public Key Authentication ProtocolNovember 1997
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Code | Identifier | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Type Data ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3.0-1 - The PPP EAP packet format
Code
1 (Request)
2 (Response)
Identifier
The identifier field is one octet and aids in matching
responses with requests. The identifier field MUST be
changed on each Request packet containing a different
RanA value.
Length
The Length field is two octets and indicates the length
of the EAP Request and Response packets including the
Code, Identifier, Length, Type, and Type Data fields.
Octets in the packet outside the range of the Length
field should be treated as Data Link Layer padding and
should be ignored on reception.
Type
The Type field in the Request will carry the value 10
(DSS Unilateral). The Type field in the Response SHOULD
carry the value 10 unless the peer wishes to send a Nak
Type to indicate that it is incapable of handling DSS
Unilateral authentication.
Type Data
Here the EAP DSS Unilateral Request and Response packets
diverge. In the Request case, the Type Data contains the
FIPS PUB 196 Token BA1, while the Response contains both
the DName in A's certificate and TokenAB, concatenated in
that order.
The contents of the FIPS 196 Unilateral Public Key authentication
tokens are defined in ASN.1 as follows in FIPS 196: [Note: This does
Nace & Zmuda Expires in six months [Page 6]
DRAFT PPP EAP DSS Public Key Authentication ProtocolNovember 1997
NOT imply that we will use ASN.1 to represent the contents of TokenBA
or TokenAB in the EAP DSS Request and Response packets. This is
rather just a list of the information found in the EAP DSS packets.]
Token BA1 is profiled from FIPS PUB 196 Appendix A as:
TokenBA ::= SEQUENCE {
ranB RandomNumber,
timestampB TimeStamp
}
TokenAB is then profiled as:
TokenABU ::= SEQUENCE {
ranA RandomNumber, -- unused
entityA EntityName,
certA Certificate, -- from X.509 -- unused
signature SigDataABU
}
SigDataABU ::= SIGNATURE SEQUENCE {
ranA RandomNumber, -- unused
ranB RandomNumber, -- as sent in TokenBA
entityA EntityName
}
RandomNumber ::= INTEGER
EntityName is a CHOICE and for this specification, the Name CHOICE is
the only one acceptable. EmailName may not be used.
The following sections define the format of the request and response.
3.1. EAP DSS Public Key Request Packet
The DSS Unilateral Request packet Type Data field contains the data
from the FIPS PUB 196 Token BA1.
This information is formatted in a length-value format. No explicit
type field is necessary because all fields are required and are in a
determinate order. In this one case the last element includes a
length field also, even though its length can be determined from the
overall length. This allows for easy expansion in this case. The EAP
DSS Request packet has the following overall format:
Nace & Zmuda Expires in six months [Page 7]
DRAFT PPP EAP DSS Public Key Authentication ProtocolNovember 1997
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Code | Identifier | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | timeStampLen | timeStamp... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ...timeStamp | ranB Length | ranB... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ...ranB... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ...ranB...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3.0-2 - EAP DSS Request Packet format
Code
1 (Request)
Identifier
The Identifier field is one octet and serves the same
purpose as the TokenID field in FIPS PUB 196, namely
disambiguating between multiple outstanding Requests and
Responses. Handling of the Identifier field with respect
to time-outs, new Requests, and duplicate Responses is as
specified in EAP.
Length
The Length field is two octets and indicates the length
of the EAP Request and Response packets including the
Code, Identifier, Length, Type, timeStampLen, timeStamp,
ranB Length, and ranB fields. Octets in the packet out-
side the range of the Length field should be treated as
Data Link Layer padding and should be ignored on recep-
tion.
Type
The Type field in the Request will carry the value 10
(DSS Unilateral).
timeStampLen
The Length of the timeStamp field in bytes is specified
here. A single byte is used to represent this length.
Nace & Zmuda Expires in six months [Page 8]
DRAFT PPP EAP DSS Public Key Authentication ProtocolNovember 1997
For the current version this value is 4.
timestampB
This value is a monotonically increasing (aside from wra-
paround) four byte integer in network byte order (Big
Endian).
ranB Length
The Length of the ranB field in bytes is specified here.
A single byte is used to represent this length. For the
Fortezza version this value is 20.
ranB
The value of the random challenge from the initiator to
the responder. This value cannot exceed 255 bytes in
length. For the Fortezza version the length of this
field is 20 bytes.
3.2. EAP DSS Public Key Response Packet
The DSS Unilateral Response packet Type Data field contains the data
from the FIPS PUB 196 Token AB1.
This information is formatted in a length-value format. No explicit
type field is necessary because all fields are required and are in a
determinate order. The last element does not include a length field
because its length can be determined from the overall length. The
EAP DSS Response packet has the following overall format:
Nace & Zmuda Expires in six months [Page 9]
DRAFT PPP EAP DSS Public Key Authentication ProtocolNovember 1997
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Code | Identifier | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Signature Len | Signature... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ...Signature... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| . |
.
.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ...Signature... | Dname... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ...DName... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ...DName...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3.0-3 - EAP DSS Response Packet format
Code
2 (Response)
Identifier
The identifier field is one octet and MUST match the
Identifier field from the corresponding request.
Length
The Length field is two octets and indicates the length
of the EAP Request and Response packets including the
Code, Identifier, Length, Type, Signature Length, Signa-
ture, and DName fields. Octets in the packet outside the
range of the Length field should be treated as Data Link
Layer padding and should be ignored on reception.
Type
The Type field in the Response SHOULD carry the value 10
unless the peer wishes to send a Nak Type to indicate
that it is incapable of handling DSS Unilateral authenti-
cation.
Nace & Zmuda Expires in six months [Page 10]
DRAFT PPP EAP DSS Public Key Authentication ProtocolNovember 1997
Signature Len
The Length of the Signature field in bytes is specified
here. A single byte is used to represent this length. For
DSS, this value is 40.
Signature
The value of the Signature produced by the peer (in FIPS
196 terms entity A). The peer signs the concatenation of
the random challenge sent to it in the EAP DSS Request,
the timestamp sent to it, and its own entity name from
the certificate whose public key corresponds to the
private key used in forming the signature. The entity
name is the DER-encoded form of the Distinguished Name
contained in the subject field of the certificate. The
signature is computed as described under "digital signa-
ture" in section 1.2. This value cannot exceed 255 bytes
in length.
DName
The DER-encoded form of the subject field in the X.509
certificate whose public key corresponds to the private
key used by the entity to produce the signature value.
4. PPP EAP DSS Public Key Authentication Processing
If TokenAB is successfully verified by B and B is willing to operate
a PPP link with A then B shall transmit an EAP Success packet. Oth-
erwise, B may transmit an EAP Failure packet, and shall in all cases
transmit an LCP Terminate-Request.
Figure 4.0-1 depicts the operation of the EAP Unilateral authentica-
tion protocol with DSS. In this and the following figures depicting
PDU exchanges, the curly braces ({, }) denote items in Length-Value
representation.
Nace & Zmuda Expires in six months [Page 11]
DRAFT PPP EAP DSS Public Key Authentication ProtocolNovember 1997
Side: B A
Authenticator Authenticatee
EAP Request (ID1, DSS Unilateral, {ranB, timestampB }) =>
<= EAPResponse(ID1,DSSUnilateral,
{SIGNA({ranB, timeStampB, entityA}), entityA)
EAP Success Packet( ID2) =>
Figure 4.0-1 DSS Unilateral Authentication processing
Security Considerations
This memo defines a method for using EAP to perform Strong authenti-
cation of a peer using the DSS signature algorithm.
References:
[1] Simpson, W. A., 'The Point to Point Protocol
(PPP)', July 1994, RFC 1661.
[2] Blunk, L. J. & Vollbrecht, J. R., 'PPP Extensible
Authentication Protocol (EAP)', June 1996, work in
progress.
[3] CCITT Recommendation X.509, 'The Directory -
Authentication Framework', 1988.
[4] Federal Information Processing Standards Publication, FIPS Pub 196,
'Entity Authentication using Public Key Cryptography',
February 18, 1997.
[5] Zmuda, J., 'The PPP Certificate Exchange Protocol',
July 1997, work in progress.
Acknowledgements:
This work is based largely on EAP. The authors would like to thank
John Vollbrecht of Merit specifically for his help in understanding
the intention of the EAP Internet Draft. The authors would also like
to thank Paul Amaranth of Oakland University for his EAP implementa-
tion. Thanks also are due to Bill Whelan of Network Express for his
Internet Draft showing a worked example of the use of EAP for public
Nace & Zmuda Expires in six months [Page 12]
DRAFT PPP EAP DSS Public Key Authentication ProtocolNovember 1997
key based authentication. Also both Peter Yee and Russ Housley pro-
vided helpful comments on earlier versions of this Memo. And thanks
finally to Bill Simpson for the standard PPP spec boilerplate from
which we have borrowed heavily.
Chair's Address:
The working group can be contacted via the current
chair:
Karl Fox
Ascend Communications, Inc.
Email: karl@ascend.com
Author's Address:
Questions about this memo can also be directed to:
DIRNSA
Attn: X22 (W. Nace)
9800 Savage Road
Fort Meade, MD 20755-6000
USA
Phone: +1 410 859-4464
Email: WANace@missi.ncsc.mil
James E. Zmuda
SPYRUS
2460 N. First Street
Suite 100
San Jose, CA 95131-1023
USA
Phone: +1 408 432-8180
Email: jzmuda@spyrus.com
Nace & Zmuda Expires in six months [Page 13]