rfc8902xml2.original.xml | rfc8902.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="US-ASCII"?> | <?xml version='1.0' encoding='UTF-8'?> | |||
<!-- this is version 5 of this xml2rfc template --> | ||||
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ | ||||
<!ENTITY rfc2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
.2119.xml"> | ||||
<!ENTITY rfc2223 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
.2223.xml"> | ||||
<!ENTITY rfc2578 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
.2578.xml"> | ||||
<!ENTITY rfc2579 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
.2579.xml"> | ||||
<!ENTITY rfc2580 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
.2580.xml"> | ||||
<!ENTITY rfc2629 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
.2629.xml"> | ||||
<!ENTITY rfc3410 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
.3410.xml"> | ||||
<!ENTITY rfc4181 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
.4181.xml"> | ||||
]> | ||||
<?rfc toc="yes"?> | ||||
<?rfc symrefs="yes"?> | ||||
<?rfc compact="yes"?> | ||||
<?rfc subcompact="no"?> | ||||
<?rfc strict="no"?> | ||||
<?rfc rfcedstyle="yes"?> | ||||
<?rfc comments="yes"?> | ||||
<?rfc inline="yes"?> | ||||
<!--<rfc category="std" docName="draft-v2-tls-cert-ETSI-IEEE.txt" ipr="trust2009 | ||||
02">--> | ||||
<!--<rfc category="info" docName="draft-v2-tls-cert-ETSI-IEEE.txt" ipr="trust200 | ||||
902">--> | ||||
<rfc category="exp" docName="draft-msahli-ise-ieee1609-07" ipr="trust200902"> | ||||
<front> | ||||
<!--<title abbrev="IEEE and IETF Certificate Types for TLS">Transport Lay | ||||
er Security (TLS) Authentication using ETSI TS 103 097 and IEEE 1609.2 certifica | ||||
tes</title>--> | ||||
<title abbrev="IEEE and ETSI Certificate Types for TLS"> TLS Authenticati | ||||
on using ITS certificate</title> | ||||
<author fullname="Mounira Msahli" initials="M.M" role="editor" surname=" | ||||
Msahli"> | ||||
<organization> Telecom Paris</organization> | ||||
<address> | ||||
<postal> | ||||
<street/> | ||||
<city/> | ||||
<code/> | ||||
<country> France</country> | ||||
</postal> | ||||
<email> mounira.msahli@telecom-paris.fr</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="Nancy Cam-Winget" initials="N.C" role="editor" surname= | ||||
"Cam-Winget"> | ||||
<organization> Cisco</organization> | ||||
<address> | ||||
<postal> | ||||
<street/> | ||||
<city/> | ||||
<code/> | ||||
<country> USA </country> | ||||
</postal> | ||||
<email>ncamwing@cisco.com</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="William Whyte" initials="W.W" role="editor" surname="Wh | ||||
yte"> | ||||
<organization> Qualcomm</organization> | ||||
<address> | ||||
<postal> | ||||
<street/> | ||||
<city/> | ||||
<code/> | ||||
<country> USA </country> | ||||
</postal> | ||||
<email>wwhyte@qti.qualcomm.com</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="Ahmed Serhrouchni " initials="A.S" surname="Serhrouchni"> | ||||
<organization>Telecom Paris </organization> | ||||
<address> | ||||
<postal> | ||||
<street/> | ||||
<city/> | ||||
<code/> | ||||
<country> France </country> | ||||
</postal> | ||||
<email>ahmed.serhrouchni@telecom-paris.fr</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="Houda Labiod" initials="H.L" surname="Labiod"> | ||||
<organization>Telecom Paris </organization> | ||||
<address> | ||||
<postal> | ||||
<street/> | ||||
<city/> | ||||
<code/> | ||||
<country> France </country> | ||||
</postal> | ||||
<email>houda.labiod@telecom-paris.fr</email> | ||||
</address> | ||||
</author> | ||||
<date/> | ||||
<workgroup/> | ||||
<abstract> | ||||
<t> | ||||
The IEEE and ETSI have specified a type of end-entity certificates. This docum | ||||
ent defines an experimental change to TLS to support IEEE/ETSI certificate types | ||||
to authenticate TLS entities. </t> | ||||
</abstract> | ||||
</front> | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
<middle> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" number="8902" category="exp" | |||
docName="draft-msahli-ise-ieee1609-07" ipr="trust200902" | ||||
obsoletes="" updates="" submissionType="independent" xml:lang="en" | ||||
tocInclude="true" symRefs="true" sortRefs="true" version="3" > | ||||
<section title="Introduction"> | <front> | |||
<t>The TLS protocol [RFC8446] allows the use of X.509 certificates and Raw Pub | <title abbrev="IEEE and ETSI Certificate Types for TLS"> TLS Authentication | |||
lic Key to authenticate servers and clients. This document describes an experime | Using Intelligent Transport System (ITS) Certificates</title> | |||
ntal extension following the procedures laid out by [RFC7250] to support use of | <seriesInfo name="RFC" value="8902"/> | |||
the certificate format specified by the IEEE in [IEEE1609.2] and profiled by | <author fullname="Mounira Msahli" initials="M" role="editor" surname="Msahli | |||
the European Telecommunications Standards Institute (ETSI) in [TS103097]. These | "> | |||
standards specify secure communications in vehicular environments. These certifi | <organization> Telecom Paris</organization> | |||
cates are referred to in this document as Intelligent Transportation Systems (IT | <address> | |||
S) Certificates.</t> | <postal> | |||
<street/> | ||||
<city/> | ||||
<code/> | ||||
<country>France</country> | ||||
</postal> | ||||
<email> mounira.msahli@telecom-paris.fr</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="Nancy Cam-Winget" initials="N" role="editor" surname="Cam- | ||||
Winget"> | ||||
<organization> Cisco</organization> | ||||
<address> | ||||
<postal> | ||||
<street/> | ||||
<city/> | ||||
<code/> | ||||
<country>United States of America</country> | ||||
</postal> | ||||
<email>ncamwing@cisco.com</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="William Whyte" initials="W" role="editor" surname="Whyte"> | ||||
<organization> Qualcomm</organization> | ||||
<address> | ||||
<postal> | ||||
<street/> | ||||
<city/> | ||||
<code/> | ||||
<country>United States of America</country> | ||||
</postal> | ||||
<email>wwhyte@qti.qualcomm.com</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="Ahmed Serhrouchni " initials="A" surname="Serhrouchni"> | ||||
<organization>Telecom Paris </organization> | ||||
<address> | ||||
<postal> | ||||
<street/> | ||||
<city/> | ||||
<code/> | ||||
<country>France </country> | ||||
</postal> | ||||
<email>ahmed.serhrouchni@telecom-paris.fr</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="Houda Labiod" initials="H" surname="Labiod"> | ||||
<organization>Telecom Paris </organization> | ||||
<address> | ||||
<postal> | ||||
<street/> | ||||
<city/> | ||||
<code/> | ||||
<country>France </country> | ||||
</postal> | ||||
<email>houda.labiod@telecom-paris.fr</email> | ||||
</address> | ||||
</author> | ||||
<date month="September" year="2020"/> | ||||
<workgroup/> | ||||
<t>The certificate types are optimized for bandwidth and processing time to s | <keyword>TLS</keyword> | |||
upport delay-sensitive applications, and also to provide both authentication and | <keyword>Intelligent Transport System (ITS) Certificates</keyword> | |||
authorization information to enable fast access control decisions | <keyword>IEEE</keyword> | |||
in ad hoc networks such as are found in Intelligent Transportation Systems (I | <keyword>ETSI</keyword> | |||
TS). The standards specify different types of certificate to support a full Publ | ||||
ic Key Infrastructure (PKI) | ||||
specification; the certificates to be used in this context are end-entity cert | ||||
ificates, i.e. certificates that have the IEEE 1609.2 appPermissions field prese | ||||
nt.</t> | ||||
<t> Use of ITS certificates is becoming widespread in the ITS setting. ITS comm | <abstract> | |||
unications in practice make heavy use of 10 MHz channels with a typical throughp | <t> | |||
ut of 6 Mbps. (The 802.11OCB modulation that gives | ||||
this throughput is not the one that gives the highest throughput, but it prov | ||||
ides for a robust signal over a range up to 300-500 m, which is the "sweet spot" | ||||
communications range for ITS operations like | ||||
collision avoidance). The compact nature of ITS certificates as opposed to X. | ||||
509 certificates makes them appropriate for this setting. </t> | ||||
<t>The ITS certificates are also suited to the M2M ad hoc network setting, becau | The IEEE and ETSI have specified a type of end-entity certificate. This docume | |||
se their direct encoding of permissions (see Security Considerations, section 7. | nt defines an experimental change to TLS to support IEEE/ETSI certificate types | |||
4) allows a receiver to make an immediate accept/deny decision about an incoming | to authenticate TLS entities. </t> | |||
message | </abstract> | |||
without having to refer to a remote identity and access management server. The E | </front> | |||
U has committed to the use of ITS certificates in Cooperative Intelligent Transp | <middle> | |||
ortation Systems deployments. A multi-year project developed a certificate polic | <section numbered="true" toc="default"> | |||
y for the use | <name>Introduction</name> | |||
of ITS certificates, including a specification of how different root certificate | <t>The TLS protocol <xref target="RFC8446"/> allows the use of X.509 | |||
s can be trusted across the system (hosted at https://ec.europa.eu/transport/the | certificates and raw public keys to authenticate servers and | |||
mes/its/c-its_en, direct link at https://ec.europa.eu/transport/sites/transport/ | clients. This document describes an experimental extension following the | |||
files/c-its_certificate_policy_release_1.pdf).</t> | procedures laid out by <xref target="RFC7250"/> to support use of the cert | |||
ificate | ||||
format specified by the IEEE in <xref target="IEEE1609.2"/> and profiled b | ||||
y the | ||||
European Telecommunications Standards Institute (ETSI) in <xref | ||||
target="TS103097"/>. These standards specify secure communications in | ||||
vehicular environments. These certificates are referred to in this | ||||
document as Intelligent Transport Systems (ITS) Certificates.</t> | ||||
<t>The certificate types are optimized for bandwidth and processing time | ||||
to support delay-sensitive applications and also to provide both | ||||
authentication and authorization information to enable fast access | ||||
control decisions in ad hoc networks found in Intelligent | ||||
Transport Systems (ITS). The standards specify different types of | ||||
certificates to support a full Public Key Infrastructure (PKI) | ||||
specification; the certificates to be used in this context are | ||||
end-entity certificates, i.e., certificates that have the IEEE 1609.2 | ||||
appPermissions field present.</t> | ||||
<t> The EU has committed funding for the first five years of operation of the to | <t>Use of ITS certificates is becoming widespread in the ITS | |||
p-level Trust List Manager entity, enabling organizations such as motor vehicle | setting. ITS communications, in practice, make heavy use of 10 MHz | |||
OEMs and national road authorities to create root CAs and have them trusted. In | channels with a typical throughput of 6 Mbps. (The 802.11OCB modulation | |||
the US, the US Department of Transportation (USDOT) published a proposed regulat | that gives this throughput is not the one that gives the highest | |||
ion, which as of late 2019, is active though not rapidly progressing, which woul | throughput, but it provides for a robust signal over a range up to | |||
d require all light vehicles in the US to implement V2X communications including | 300-500 m, which is the "sweet spot" communications range for ITS | |||
the use of ITS certificates (available from https://www.federalregister.gov/doc | operations like collision avoidance). The compact nature of ITS | |||
uments/2017/01/12/2016-31059/federal-motor-vehicle-safety-standards-v2v-communic | certificates as opposed to X.509 certificates makes them appropriate for | |||
ations). As of 2019, ITS deployments across the US, Europe and | this setting. </t> | |||
Australia were using ITS certificates. Volkswagen have committed to deploying V2 | <t>The ITS certificates are also suited to the machine-to-machine (M2M) | |||
X using ITS certificates. New York, Tampa and Wyoming are deploying traffic mana | ad hoc network setting because their direct encoding of permissions (see | |||
gement systems using ITS certificates. GM deployed V2X in their Cadillac CTSes u | <xref target="ITS-permissions"/>) allows a receiver to make an immediate | |||
sing ITS certificates.</t> | accept/deny decision about an incoming message without having to refer | |||
to a remote identity and access management server. The EU has committed | ||||
to the use of ITS certificates in Cooperative Intelligent Transport | ||||
Systems deployments. A multi-year project developed a certificate policy | ||||
for the use of ITS certificates, including a specification of how | ||||
different root certificates can be trusted across the system (hosted at | ||||
<<eref | ||||
target="https://ec.europa.eu/transport/themes/its/c-its_en"/>>, | ||||
direct link at <<eref | ||||
target="https://ec.europa.eu/transport/sites/transport/files/c-its_certifi | ||||
cate_policy_release_1.pdf"/>>).</t> | ||||
<t> ITS certificates are also used in a number of standards that build on top of | <t> The EU has committed funding for the first five years of operation | |||
the foundational IEEE and ETSI standards, particularly the SAE J2945/x series o | of the top-level Trust List Manager entity, enabling organizations such | |||
f standards for applications and ISO 21177, which builds a framework for exchang | as motor vehicle original equipment manufacturers (OEMs) and national | |||
ing multiple authentication tokens on top of the TLS variant specified in this d | road authorities to create root certificate authorities (CAs) and have | |||
ocument. | them trusted. In the US, the US Department of Transportation (USDOT) | |||
published a proposed regulation, active as of late 2019 though not | ||||
rapidly progressing, requiring all light vehicles in the US to implement | ||||
vehicle-to-everything (V2X) communications, including the use of ITS | ||||
certificates (available at <<eref | ||||
target="https://www.federalregister.gov/documents/2017/01/12/2016-31059/fe | ||||
deral-motor-vehicle-safety-standards-v2v-communications"/>>). As | ||||
of 2019, ITS deployments across the US, Europe, and Australia were using | ||||
ITS certificates. Volkswagen has committed to deploying V2X using ITS | ||||
certificates. New York, Tampa, and Wyoming are deploying traffic | ||||
management systems using ITS certificates. GM deployed V2X in the | ||||
Cadillac CTS, using ITS certificates.</t> | ||||
<t> ITS certificates are also used in a number of standards that build | ||||
on top of the foundational IEEE and ETSI standards, particularly the | ||||
Society of Automobile Engineers (SAE) J2945/x series of standards for | ||||
applications and ISO 21177 <xref target="ISO21177"/>, which builds a frame | ||||
work for exchanging | ||||
multiple authentication tokens on top of the TLS variant specified in | ||||
this document. | ||||
</t> | </t> | |||
<section numbered="true" toc="default"> | ||||
<name>Experiment Overview</name> | ||||
<section title="Experiment Overview"> | <t>This document describes an experimental extension to the TLS | |||
security model. It uses a form of certificate that has not previously | ||||
<t>This document describes an experimental extension to the TLS security model. | been used in the Internet. Systems using this Experimental approach | |||
It uses a form of certificate that has not previously been used in the Internet | are segregated from systems using standard TLS by the use of a new | |||
. Systems using this Experimental approach are segregated from system using sta | certificate type value, reserved through IANA (see <xref | |||
ndard TLS by the use of a new | target="IANA"/>). An implementation of TLS that is not involved in | |||
Certificate Type value, reserved through IANA (see Section 9). An implementa | the Experiment will not recognize this new certificate type and will | |||
tion of TLS that is not involved in the Experiment will not recognise this new C | not participate in the experiment; TLS sessions will either negotiate | |||
ertificate Type and will not participate in the experiment: TLS sessions will ei | the use of existing X.509 certificates or fail to be established. </t> | |||
ther negotiate | <t>This extension has been encouraged by stakeholders in the | |||
the use of existing X.509 certificates or fail to be established. </t> | Cooperative ITS community in order to support ITS use-case | |||
deployment, and it is anticipated that its use will be widespread. </t> | ||||
<t>This extension has been encouraged by stakeholders in the Cooperative ITS c | </section> | |||
ommunity in order to support the ITS use cases deployment and it is anticipated | ||||
that its use will be widespread. </t> | ||||
</section> | ||||
</section> | ||||
<section title="Requirements Terminology"> | </section> | |||
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL | <section numbered="true" toc="default"> | |||
NOT", | <name>Requirements Terminology</name> | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", | ||||
and "OPTIONAL" in this document | ||||
are to be interpreted as described in BCP 14 [RFC2119] <xref targ | ||||
et="RFC8174"/> when, and only when, they appear in all | ||||
capitals, as shown here. </t> | ||||
</section> | ||||
<section title="Extension Overview"> | <t> | |||
The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU | ||||
IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | ||||
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14> | ||||
RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | ||||
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | ||||
be interpreted as | ||||
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | ||||
when, and only when, they appear in all capitals, as shown here. | ||||
</t> | ||||
<t> The TLS extension "client_certificate_type" and "server_certificate_ | </section> | |||
type" [RFC7250] are used to negotiate the type of Certificate messages used in T | <section numbered="true" toc="default"> | |||
LS to authenticate the server and, optionally, the client. Using separate extens | <name>Extension Overview</name> | |||
ion allows for mixed deployments where client and server can use certificates of | <t> The TLS extensions "client_certificate_type" and | |||
different types. It is expected that ITS | "server_certificate_type" <xref target="RFC7250"/> are used to negotiate | |||
the type of Certificate messages used in TLS to authenticate the server | ||||
and, optionally, the client. Using separate extensions allows for mixed | ||||
deployments where the client and server can use certificates of different | ||||
types. It is expected that ITS | ||||
deployments will see both peers using ITS certificates due to the homogeneity o f the ecosystem, but there is no barrier at a technical level that prevents mixe d certificate usage. This document defines a new certificate type, 1609Dot2, for usage with | deployments will see both peers using ITS certificates due to the homogeneity o f the ecosystem, but there is no barrier at a technical level that prevents mixe d certificate usage. This document defines a new certificate type, 1609Dot2, for usage with | |||
TLS 1.3. The updated CertificateType enumeration and corresponding addition to t he CertificateEntry structure are shown below. CertificateType values are sent i n the "server_certificate_type" and "client_certificate_type" extension, and the CertificateEntry | TLS 1.3. The updated CertificateType enumeration and corresponding addition to t he CertificateEntry structure are shown below. CertificateType values are sent i n the "server_certificate_type" and "client_certificate_type" extensions, and th e CertificateEntry | |||
structures are included in the certificate chain sent in the Certificate messag e. | structures are included in the certificate chain sent in the Certificate messag e. | |||
In case of TLS 1.3, the "client_certificate_type " SHALL contain a list o | In the case of TLS 1.3, the "client_certificate_type" <bcp14>SHALL</bcp14 | |||
f supported certificate types proposed by the client as provided in the figure b | > contain a list of supported certificate types proposed by the client as provid | |||
elow: | ed in the figure below: | |||
<figure> | ||||
<artwork> | ||||
</t> | ||||
<sourcecode> | ||||
/* Managed by IANA */ | /* Managed by IANA */ | |||
enum { | enum { | |||
X509(0), | X509(0), | |||
RawPublicKey(2), | RawPublicKey(2), | |||
1609Dot2(3), | 1609Dot2(3), | |||
(255) | (255) | |||
} CertificateType; | } CertificateType; | |||
struct { | struct { | |||
select (certificate_type) { | select (certificate_type) { | |||
/* certificate type defined in this document.*/ | /* certificate type defined in this document.*/ | |||
case 1609Dot2: | case 1609Dot2: | |||
opaque cert_data<1..2^24-1>; | opaque cert_data<1..2^24-1>; | |||
/* RawPublicKey defined in RFC 7250*/ | /* RawPublicKey defined in RFC 7250*/ | |||
case RawPublicKey: | case RawPublicKey: | |||
opaque ASN.1_subjectPublicKeyInfo<1..2^24-1>; | opaque ASN.1_subjectPublicKeyInfo<1..2^24-1>; | |||
/* X.509 certificate defined in RFC 5246*/ | /* X.509 certificate defined in RFC 8446*/ | |||
case X.509: | case X.509: | |||
opaque cert_data<1..2^24-1>; | opaque cert_data<1..2^24-1>; | |||
}; | }; | |||
Extension extensions<0..2^16-1>; | Extension extensions<0..2^16-1>; | |||
} CertificateEntry; | } CertificateEntry; | |||
</artwork> | </sourcecode> | |||
</figure></t> | ||||
<t> As per [RFC7250], the server processes the received [endpoint]_certificate_ | ||||
type extension(s) and selects one of the offered certificate types, returning th | ||||
e negotiated value in its EncryptedExtensions (TLS 1.3) message. Note | ||||
that there is no requirement for the negotiated value to be the same in client_c | ||||
ertificate_type and server_certificate_type extensions sent in the same message. | ||||
</t> | ||||
</section> | ||||
<section title="TLS Client and Server Handshake"> | ||||
<t> Figure 1 shows the handshake message flow for a full TLS 1.3 handshak | ||||
e negotiating both certificate types. | ||||
<figure anchor="msg_flow" title="Message Flow with certificate ty | ||||
pe extension for Full TLS 1.3 Handshake"> | ||||
<artwork> | ||||
<t> As per <xref target="RFC7250"/>, the server processes the received | ||||
[endpoint]_certificate_type extension(s) and selects one of the offered | ||||
certificate types, returning the negotiated value in its | ||||
EncryptedExtensions (TLS 1.3) message. Note that there is no requirement | ||||
for the negotiated value to be the same in client_certificate_type and | ||||
server_certificate_type extensions sent in the same message.</t> | ||||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>TLS Client and Server Handshake</name> | ||||
<t><xref target="msg_flow"/> shows the handshake message flow for a full T | ||||
LS 1.3 handshake negotiating both certificate types. | ||||
</t> | ||||
<figure anchor="msg_flow"> | ||||
<name>Message Flow with Certificate Type Extension for Full TLS 1.3 Hand | ||||
shake</name> | ||||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
Client Server | Client Server | |||
Key ^ ClientHello | Key ^ ClientHello | |||
Exch | + server_certificate_type* | Exch | + server_certificate_type* | |||
| + client_certificate_type* | | + client_certificate_type* | |||
| + key_share* | | + key_share* | |||
v + signature_algorithms* --------> | v + signature_algorithms* --------> | |||
ServerHello ^ Key | ServerHello ^ Key | |||
+ key_share* v Exch | + key_share* v Exch | |||
{EncryptedExtensions} ^ Server | {EncryptedExtensions} ^ Server | |||
{+ server_certificate_type*}| Params | {+ server_certificate_type*}| Params | |||
{+ client_certificate_type*}| | {+ client_certificate_type*}| | |||
{CertificateRequest*} v | {CertificateRequest*} v | |||
{Certificate*} ^ | {Certificate*} ^ | |||
{CertificateVerify*} | Auth | {CertificateVerify*} | Auth | |||
{Finished} v | {Finished} v | |||
<------- [Application Data*] | <------- [Application Data*] | |||
^ {Certificate*} | ^ {Certificate*} | |||
Auth | {CertificateVerify*} | Auth | {CertificateVerify*} | |||
v {Finished} --------> | v {Finished} --------> | |||
[Application Data] <-------> [Application Data] | [Application Data] <-------> [Application Data] | |||
+ Indicates noteworthy extensions sent in the | + Indicates noteworthy extensions sent in the | |||
previously noted message. | previously noted message. | |||
* Indicates optional or situation-dependent | * Indicates optional or situation-dependent | |||
messages/extensions that are not always sent. | messages/extensions that are not always sent. | |||
{} Indicates messages protected using keys | {} Indicates messages protected using keys | |||
derived from a [sender]_handshake_traffic_secret. | derived from a [sender]_handshake_traffic_secret. | |||
[] Indicates messages protected using keys | [] Indicates messages protected using keys | |||
derived from [sender]_application_traffic_secret_N. | derived from [sender]_application_traffic_secret_N. | |||
]]></artwork> | ||||
</figure> | ||||
<t> In the case of TLS 1.3, in order to negotiate the support of ITS | ||||
certificate-based authentication, clients and servers include the | ||||
extension of type "client_certificate_type" and | ||||
"server_certificate_type" in the extended Client Hello and | ||||
"EncryptedExtensions".</t> | ||||
<section numbered="true" toc="default"> | ||||
<name>Client Hello</name> | ||||
<t>In order to indicate the support of ITS certificates, a client | ||||
<bcp14>MUST</bcp14> include an extension of type | ||||
"client_certificate_type" or "server_certificate_type" in the extended | ||||
Client Hello message as described in <xref target="RFC8446" | ||||
sectionFormat="of" section="4.1.2"/> (TLS 1.3).</t> | ||||
</artwork> | <t>For TLS 1.3, the rules for when the Client Certificate and | |||
</figure></t> | CertificateVerify messages appear are as follows: | |||
<t> In the case of TLS 1.3, in order to negotiate the support of ITS certific | ||||
ate-based authentication, clients and servers include the extension of type "cli | ||||
ent_certificate_type" | ||||
and "server_certificate_type" in the extended Client Hello and "EncryptedExte | ||||
nsions".</t> | ||||
<section title="Client Hello"> | ||||
<t>In order to indicate the support of ITS certificates, | ||||
a client MUST include an extension of type "client_certif | ||||
icate_type" or "server_certificate_type" in the extended | ||||
Client Hello message as described in | ||||
Section 4.1.2 of TLS 1.3 <xref target="RFC8446"/>.</t> | ||||
<t>For both TLS 1.3, the rules for when the Client Certificate and CertificateV | ||||
erify messages appear are as follows: | ||||
<list style="symbolSSi"> | ||||
<t> - The client's Certificate message is present if and only if the | ||||
server sent a CertificateRequest message.</t> | ||||
<t> - The client's CertificateVerify message is present if and only i | ||||
f the client's Certificate message is present and contains a non-empty certifica | ||||
te_list.</t> | ||||
</list> | ||||
</t> | ||||
<t> For maximum compatibility, all implementations SHOULD be prepared to handle | ||||
"potentially" extraneous certificates and arbitrary orderings from any TLS versi | ||||
on, with the exception of the end-entity certificate which MUST be first. </t> | ||||
</section> | ||||
<section title="Server Hello"> | ||||
<t> When the server receives the Client Hello containing the client_certificate | ||||
_type extension and/or the server_certificate_type extension, the following scen | ||||
arios are possible: | ||||
<list style="symbolSSi"> | ||||
<t> - If both client and server indicate support for the ITS certific | ||||
ate type, the server MAY select the first (most preferred) certificate type from | ||||
the client's list that is supported by both peers </t> | ||||
<t> - The server does not support any of the proposed certificate typ | ||||
es and terminates the session with a fatal alert of type "unsupported_certificat | ||||
e".</t> | ||||
<t> - The server supports the certificate types specified in this document. I | ||||
n this case, it MAY respond with a certificate of this type. It MAY also include | ||||
the client_certificate_type extension in Encrypted Extension. | ||||
Then, the server requests a certificate from the client ( via the CertificateR | ||||
equest message ) </t> | ||||
</list> | ||||
</t> | ||||
<t>The certificates in the TLS client or server certificate chain MAY be sent as | ||||
part of the handshake, or MAY be sent obtained from an online repository, or mi | ||||
ght already be known to and cached at the endpoint. | ||||
If the handshake does not contain all the certificates in the chain, and the end | ||||
point cannot access the repository, and the endpoint does not already know the c | ||||
ertificates from the chain, then it SHALL reject the | ||||
other endpoint’s certificate and close the connection. Protocols to suppor | ||||
t retrieving certificates from a repository are specified in ETSI<xref target="E | ||||
TSI102941"/>.</t> | ||||
</section> | ||||
</section> | ||||
<section title="Certificate Verification"> | ||||
<!--<t>#Are there trust anchors, pre-loaded lists, standard verification | ||||
policies, TOFU approaches, or other regimes for validating these | ||||
certificates? "best practices" for certificate validation: pki memo, | ||||
scoopf (Lamia :P), PRESERVE... #</t>--> | ||||
<t>Verification of an ITS certificates or certificate chain is described in se | ||||
ction 5.1 of <xref target=" IEEE1609.2"/>. In the case of TLS 1.3 and when the c | ||||
ertificate_type is 1609.2, the | ||||
CertificateVerify contents and processing are different than for the Certific | ||||
ateVerify message specified for other values of certificate_type in [RFC8446]. I | ||||
n this case, the CertificateVerify message contains a Canonical Octet Encoding R | ||||
ules <xref target="ITU-TX.696"/> | ||||
-encoded IEEE1609Dot2Data of type signed as specified in [IEEE1609.2], [IEEE1 | ||||
609.2b], where: | ||||
<list style="symbolSSi"> | ||||
<t> Payload contains an extDataHash containing the SHA-256 hash of the data th | ||||
e signature is calculated over. This is identical to the data that the signature | ||||
is calculated over it in standard TLS, which is reproduced below for clarity.</ | ||||
t> | ||||
<t> Provider Service Identifier (Psid) indicates the application activity th | ||||
at the certificate is authorizing.</t> | ||||
<t> generationTime is the time at which the data structure was generated.</t> | ||||
<t>PduFunctionalType (as specified in [IEEE1609.2b]) is present and is set equ | ||||
al to tlsHandshake (1).</t> | ||||
</list> | ||||
All other fields in the headerInfo are omitted. The certificate appPermission | ||||
s field SHALL be present and SHALL | ||||
permit (as defined in [IEEE1609.2]) signing of PDUs with the PSID indicated | ||||
in the HeaderInfo of the SignedData. If the application | ||||
specification for that PSID requires Service Specific Permissions (SSP) for s | ||||
igning a pduFunctionalType of tlsHandshake, this SSP SHALL | ||||
also be present. For more details on the use of PSID and SSP, see [IEEE1609.2 | ||||
] clauses 5.1.1 and 5.2.3.3.3. All other fields in the headerInfo are omitted.</ | ||||
t> | ||||
<t>The certificate appPermissions field SHALL be present and SHALL permit (a | ||||
s defined in IEEE 1609.2) signing of PDUs with the PSID indicated | ||||
in the HeaderInfo of the SignedData. If the application specification for tha | ||||
t PSID requires Service Specific Permissions (SSP) for signing a pduFunctionalTy | ||||
pe of tlsHandshake, this SSP SHALL also be present.</t> | ||||
<t>The signature and verification are carried out as specified in [IEEE1609.2] | ||||
.</t> | ||||
<t> The input to the hash process is identical to the message input for TLS 1 | </t> | |||
.3, as specified in [RFC8446] section 4.4.3, consisting of pad, context string, | <ul spacing="normal"> | |||
separator and content, where content is Transcript-Hash(Handshake Context, Certi | <li>The client's Certificate message is present if and only if | |||
ficate). </t> | the server sent a CertificateRequest message.</li> | |||
<li>The client's CertificateVerify message is present if and only if t | ||||
he client's Certificate message is present and contains a non-empty certificate_ | ||||
list.</li> | ||||
</ul> | ||||
<t> For maximum compatibility, all implementations | ||||
<bcp14>SHOULD</bcp14> be prepared to handle "potentially" extraneous | ||||
certificates and arbitrary orderings from any TLS version, with the | ||||
exception of the end-entity certificate, which <bcp14>MUST</bcp14> be | ||||
first. </t> | ||||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>Server Hello</name> | ||||
<t> When the server receives the Client Hello containing the client_cert | ||||
ificate_type extension and/or the server_certificate_type extension, the followi | ||||
ng scenarios are possible: | ||||
</section> | </t> | |||
<ul spacing="normal"> | ||||
<li>If both the client and server indicate support for the ITS | ||||
certificate type, the server <bcp14>MAY</bcp14> select the first | ||||
(most preferred) certificate type from the client's list that is | ||||
supported by both peers.</li> | ||||
<li>The server does not support any of the proposed certificate | ||||
types and terminates the session with a fatal alert of type | ||||
"unsupported_certificate".</li> | ||||
<li>The server supports the certificate types specified in this | ||||
document. In this case, it <bcp14>MAY</bcp14> respond with a | ||||
certificate of this type. It <bcp14>MAY</bcp14> also include the | ||||
client_certificate_type extension in Encrypted Extension. Then, the | ||||
server requests a certificate from the client (via the | ||||
CertificateRequest message).</li> | ||||
</ul> | ||||
<section title="Examples"> | <t>The certificates in the TLS client or server certificate chain | |||
<bcp14>MAY</bcp14> be sent as part of the handshake, | ||||
<bcp14>MAY</bcp14> be obtained from an online repository, or | ||||
might already be known to and cached at the endpoint. If the | ||||
handshake does not contain all the certificates in the chain, and the | ||||
endpoint cannot access the repository and does not already know the | ||||
certificates from the chain, then it <bcp14>SHALL</bcp14> reject the | ||||
other endpoint's certificate and close the connection. Protocols to | ||||
support retrieving certificates from a repository are specified in | ||||
ETSI <xref target="TS102941" format="default"/>.</t> | ||||
</section> | ||||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>Certificate Verification</name> | ||||
<t>Some of message-exchange examples are illustrated in Figures 2 and 3. | <t>Verification of an ITS certificate or certificate chain is described in | |||
</t> | section 5.1 of <xref target="IEEE1609.2" format="default"/>. In the case of | |||
TLS 1.3, and when the certificate_type is 1609.2, the CertificateVerify | ||||
contents and processing are different than for the CertificateVerify message | ||||
specified for other values of certificate_type in <xref | ||||
target="RFC8446"/>. In this case, the CertificateVerify message contains an | ||||
Ieee1609Dot2Data encoded with Canonical Octet Encoding Rules (OER) | ||||
<xref target="ITU-TX.696" format="default"/> | ||||
of type signed as specified in <xref target="IEEE1609.2"/> and <xref | ||||
target="IEEE1609.2b"/>, where: | ||||
<section title="TLS Server and TLS Client use the ITS Certificate"> | </t> | |||
<t>This section shows an example where the TLS client as well as the TLS server | <ul spacing="normal"> | |||
use ITS certificates. In consequence, both the | <li>payload contains an extDataHash containing the SHA-256 hash of | |||
server and the client populate the client_certificate_type and server_certificat | the data that the signature is calculated over. This is identical to the | |||
e_type extension with the IEEE 1609 Dot 2 type as mentioned in figure 2. | data that the signature is calculated over in standard TLS, which | |||
is reproduced below for clarity.</li> | ||||
<li>headerInfo.psid indicates the application | ||||
activity that the certificate is authorizing.</li> | ||||
<li>headerInfo.generationTime is the time at which the data structure wa | ||||
s generated.</li> | ||||
<li>headerInfo.pduFunctionalType (as specified in <xref target="IEEE1609 | ||||
.2b"/>) | ||||
is present and is set equal to tlsHandshake (1).</li> | ||||
</ul> | ||||
<t> | ||||
<figure anchor="msg_fltw" title="TLS Client and TLS Server use the ITS ce | All other fields in the headerInfo are omitted. The certificate | |||
rtificate"> | appPermissions field <bcp14>SHALL</bcp14> be present and | |||
<bcp14>SHALL</bcp14> permit (as defined in <xref target="IEEE1609.2"/>) | ||||
signing of PDUs with the PSID indicated in the HeaderInfo of the | ||||
SignedData. If the application specification for that PSID requires Service | ||||
Specific Permissions (SSP) for signing a pduFunctionalType of tlsHandshake, | ||||
this SSP <bcp14>SHALL</bcp14> also be present. For more details on the use | ||||
of PSID and SSP, see <xref target="IEEE1609.2"/>, clauses 5.1.1 and | ||||
5.2.3.3.3. All other fields in the headerInfo are omitted.</t> | ||||
<t>The certificate appPermissions field <bcp14>SHALL</bcp14> be present an | ||||
d <bcp14>SHALL</bcp14> | ||||
permit (as defined in <xref target="IEEE1609.2"/>) signing of PDUs with th | ||||
e PSID | ||||
indicated in the HeaderInfo of the SignedData. If the application | ||||
specification for that PSID requires Service Specific Permissions (SSP) | ||||
for signing a pduFunctionalType of tlsHandshake, this SSP <bcp14>SHALL</bc | ||||
p14> also be | ||||
present.</t> | ||||
<t>The signature and verification are carried out as specified in <xref ta | ||||
rget="IEEE1609.2"/>.</t> | ||||
<t> The input to the hash process is identical to the message input for | ||||
TLS 1.3, as specified in <xref target="RFC8446" sectionFormat="of" | ||||
section="4.4.3"/>, consisting of pad, context string, separator, and | ||||
content, where content is Transcript-Hash(Handshake Context, | ||||
Certificate).</t> | ||||
<artwork> | </section> | |||
<section numbered="true" toc="default"> | ||||
<name>Examples</name> | ||||
<t>Some of the message-exchange examples are illustrated in Figures | ||||
<xref target="msg_fltw" format="counter"/> and <xref | ||||
target="msg_fluw" format="counter"/>.</t> | ||||
<section numbered="true" toc="default"> | ||||
<name>TLS Server and TLS Client Use the ITS Certificate</name> | ||||
<t>This section shows an example where the TLS client as well as the TLS | ||||
server use ITS certificates. In consequence, both the | ||||
server and the client populate the client_certificate_type and | ||||
server_certificate_type extension with the IEEE 1609 Dot 2 type as mentioned | ||||
in <xref target="msg_fltw"/>. | ||||
</t> | ||||
<figure anchor="msg_fltw"> | ||||
<name>TLS Client and TLS Server Use the ITS Certificate</name> | ||||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
Client Server | Client Server | |||
ClientHello, | ClientHello, | |||
client_certificate_type=1609Dot2, | client_certificate_type=1609Dot2, | |||
server_certificate_type=1609Dot2, --------> ServerHello, | server_certificate_type=1609Dot2, --------> ServerHello, | |||
{EncryptedExtensions} | {EncryptedExtensions} | |||
{client_certificate_type=1609Dot2} | {client_certificate_type=1609Dot2} | |||
{server_certificate_type=1609Dot2} | {server_certificate_type=1609Dot2} | |||
{CertificateRequest} | {CertificateRequest} | |||
{Certificate} | {Certificate} | |||
{CertificateVerify} | {CertificateVerify} | |||
{Finished} | {Finished} | |||
{Certificate} <------- [Application Data] | {Certificate} <------- [Application Data] | |||
{CertificateVerify} | {CertificateVerify} | |||
{Finished} --------> | {Finished} --------> | |||
[Application Data] <-------> [Application Data] | [Application Data] <-------> [Application Data] | |||
]]></artwork> | ||||
</artwork> | </figure> | |||
</figure></t> | </section> | |||
</section> | <section numbered="true" toc="default"> | |||
<section title="TLS Client uses the ITS certificate and TLS Server uses the X.50 | <name>TLS Client Uses the ITS Certificate and TLS Server Uses the X.509 | |||
9 certificate"> | Certificate</name> | |||
<t> This example shows the TLS authentication, where the TLS client | ||||
<t> This example shows the TLS authentication, where the TLS Client popul | populates the server_certificate_type extension with the X.509 | |||
ates the | certificate and raw public key type as presented in <xref | |||
server_certificate_type extension with the X.509 certificate and Raw | target="msg_fluw"/>. The client indicates its ability to receive and | |||
Public Key type as presented in figure 3. The client indicates its ability to | validate an X.509 certificate from the server. The server chooses the | |||
receive and to validate an X.509 certificate | X.509 certificate to make its authentication with the client. This is | |||
from the server. The server chooses the X.509 certificate to make its authent | applicable in the case of a raw public key supported by the server. | |||
ication with the Client. This is applicable in case of Raw Public Key supported | ||||
by the server. | ||||
<figure anchor="msg_fluw" title="TLS Client uses the ITS certific | </t> | |||
ate and TLS Server uses the X.509 certificate"> | <figure anchor="msg_fluw"> | |||
<artwork> | <name>TLS Client Uses the ITS Certificate and TLS Server Uses the X.50 | |||
9 Certificate</name> | ||||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
Client Server | Client Server | |||
ClientHello, | ClientHello, | |||
client_certificate_type=(1609Dot2), | client_certificate_type=(1609Dot2), | |||
server_certificate_type=(1609Dot2, | server_certificate_type=(1609Dot2, | |||
X509,RawPublicKey), -----------> ServerHello, | X509,RawPublicKey), -----------> ServerHello, | |||
{EncryptedExtensions} | {EncryptedExtensions} | |||
{client_certificate_type=1609Dot2} | {client_certificate_type=1609Dot2} | |||
{server_certificate_type=X509} | {server_certificate_type=X509} | |||
{CertificateRequest} | {CertificateRequest} | |||
{Certificate} | {Certificate} | |||
{CertificateVerify} | {CertificateVerify} | |||
{Finished} | {Finished} | |||
<--------- [Application Data] | <--------- [Application Data] | |||
{Finished} ---------> | {Finished} ---------> | |||
[Application Data] <--------> [Application Data] | [Application Data] <--------> [Application Data] | |||
]]></artwork> | ||||
</artwork> | </figure> | |||
</figure></t> | </section> | |||
</section> | </section> | |||
</section> | <section numbered="true" toc="default"> | |||
<name>Security Considerations</name> | ||||
<section title="Security Considerations"> | <t>This section provides an overview of the basic security | |||
<t>This section provides an overview of the basic security considerations which | considerations that need to be taken into account before implementing | |||
need to be taken into account before | the necessary security mechanisms. The security considerations described | |||
implementing the necessary security mechanisms. The security considerations desc | throughout <xref target="RFC8446" format="default"/> apply here as | |||
ribed throughout <xref target="RFC8446"/> apply here as well.</t> | well.</t> | |||
<section title="Securely Obtaining Certificates from an Online Repository"> | <section numbered="true" toc="default"> | |||
<name>Securely Obtaining Certificates from an Online Repository</name> | ||||
<t>In particular, the certificates used to establish a secure connection MAY be | <t>In particular, the certificates used to establish a secure connection | |||
obtained from an online repository. An online repository may be used to obtain t | <bcp14>MAY</bcp14> be obtained from an online repository. An online repository | |||
he CA certificates in the chain of either participant in the secure session. | may be used to obtain the CA certificates in the chain of either participant in | |||
ETSI TS 102 941 <xref target="ETSI102941"/> provides a mechanism that can be use | the secure session. | |||
d to securely obtain ITS certificates.</t> | ETSI TS 102 941 <xref target="TS102941" format="default"/> provides a mechanism | |||
that can be used to securely obtain ITS certificates.</t> | ||||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Expiry of Certificates"> | <name>Expiry of Certificates</name> | |||
<t>Conventions around certificate lifetime differ between ITS | ||||
<t>Conventions around certificate lifetime differ between ITS certificates and X | certificates and X.509 certificates, and in particular, ITS | |||
.509 certificates, and in particular ITS certificates may be relatively short-li | certificates may be relatively short lived compared with typical X.509 | |||
ved compared with typical X.509 certificates. A party to a TLS session that acce | certificates. A party to a TLS session that accepts ITS certificates | |||
pts ITS | <bcp14>MUST</bcp14> check the expiry time in the received ITS | |||
certificates MUST check the expiry time in the received ITS certificate and SHOU | certificate and <bcp14>SHOULD</bcp14> terminate a session when the | |||
LD terminate a session when the certificate received in the handshake expires. < | certificate received in the handshake expires. </t> | |||
/t> | </section> | |||
<section numbered="true" toc="default"> | ||||
</section> | <name>Algorithms and Cryptographic Strength</name> | |||
<t> All ITS certificates use public-key cryptographic algorithms with | ||||
<section title="Algorithms and Cryptographic Strength"> | an estimated strength on the order of 128 bits or more, specifically, | |||
Elliptic Curve Cryptography (ECC) based on curves with keys of length | ||||
<t> All ITS certificates use public-key cryptographic algorithms with an estimat | 256 bits or longer. An implementation of the techniques specified in | |||
ed strength on the order | this document <bcp14>SHOULD</bcp14> require that if X.509 certificates | |||
of 128 bits or more, specifically, Elliptic Curve Cryptography (ECC) based on cu | are used by one of the parties to the session, those certificates are | |||
rves with keys of length 256 bits or longer. An implementation of the techniques | associated with cryptographic algorithms with (pre-quantum-computer) | |||
specified in this document | strength of at least 128 bits.</t> | |||
SHOULD require that if X.509 certificates are used by one of the parties to the | </section> | |||
session, those certificates are associated with cryptographic algorithms with (p | <section anchor="ITS-permissions" numbered="true" toc="default"> | |||
re-quantum-computer) strength of at least 128 bits.</t> | <name>Interpreting ITS Certificate Permissions</name> | |||
<t> ITS certificates in TLS express the certificate holders | ||||
</section> | permissions using two fields: a PSID, also known as an ITS Application | |||
Identifier (ITS-AID), which identifies a broad set of application | ||||
<section title="Interpreting ITS Certificate Permissions"> | activities that provide a context for the certificate holder's | |||
permissions, and a Service Specific Permissions (SSP) field associated | ||||
<t> ITS certificates in TLS express the certificate holders permissions using tw | with that PSID, which identifies which specific application activities | |||
o fields: a PSID, also known as an ITS Application Identifier (ITS-AID), which i | the certificate holder is entitled to carry out within the broad set | |||
dentifies a broad set of application activities which provide a context for | of activities identified by that PSID. For example, SAE <xref | |||
the certificate holder's permissions, and a Service Specific Permissions (SSP) f | target="SAEJ29453" format="default"/> uses PSID 0204099 to indicate | |||
ield associated with that PSID, which identifies which specific application acti | activities around reporting weather and managing weather response | |||
vities the certificate holder is entitled to carry out within the broad set of a | activities, and an SSP that states whether the certificate holder is a | |||
ctivities identified by that PSID. | Weather Data Management System (WDMS, i.e., a central road manager), | |||
For example, SAE <xref target="SAEJ29453"/> uses PSID 0204099 to indicate activ | an ordinary vehicle, or a vehicle belonging to a managed road | |||
ities around reporting weather and managing weather response activities, and an | maintenance fleet. For more information about PSIDs, see <xref | |||
SSP that states whether the certificate holder is a Weather Data Management Syst | target="IEEE1609.12" format="default"/>, and for more information about | |||
em | the development of SSPs, see <xref target="SAEJ29455" | |||
(WDMS, i.e. a central road manager), an ordinary vehicle, or a vehicle belongin | format="default"/>.</t> | |||
g to a managed road maintenance fleet. For more information about PSIDs, see <xr | </section> | |||
ef target="IEEE16092"/> and for more information about the development of SSPs, | <section numbered="true" toc="default"> | |||
see <xref target="SAEJ29455"/></t> | <name>Psid and Pdufunctionaltype in CertificateVerify</name> | |||
</section> | ||||
<section title="Psid and Pdufunctionaltype in CertificateVerify"> | ||||
<t> The CertificateVerify message for TLS 1.3 is an Ieee1609Dot2Data of type sig | ||||
ned, signed using an ITS certificate. This certificate may include multiple PSID | ||||
s. When a CertificateVerify message of this form is used, the HeaderInfo within | ||||
the Ieee1609Dot2Data MUST have the pduFunctionalType field present and set to tl | ||||
sHandshake. The background to this | ||||
requirement is as follows. A ITS certificate may (depending on the definition of | ||||
the application associated with its PSID(s)) be used to directly sign messages, | ||||
or to sign TLS CertificateVerify messages, or both. To prevent the possibility | ||||
that a signature generated in one | ||||
context could be replayed in a different context i.e., that a message signature | ||||
could be replayed as a CertificateVerify, or vice versa, the pduFunctionalType | ||||
field provides a statement of intent by the signer as to the intended use of the | ||||
signed message. If | ||||
the pduFunctionalType field is absent, the message is a directly signed message | ||||
for the application and MUST NOT be interpreted as a CertificateVerify.</t> | ||||
<t> Note that each PSID is owned by an owning organization that has sole rights | ||||
to define activities associated with that PSID. If an application specifier wish | ||||
es to expand activities associated with an existing PSID (for example, to includ | ||||
e activities over a secure session such as | ||||
specified in this document), that application specifier must negotiate with the | ||||
PSID owner to have that functionality added to the official specification of act | ||||
ivities associated with that PSID.</t> | ||||
</section> | ||||
</section> | ||||
<section title="Privacy Considerations"> | ||||
<t>For privacy considerations in a vehicular environment the ITS certificate is | ||||
used for many reasons: | ||||
<list style="symbolsi"> | ||||
<t>In order to address the risk of a personal data leakag | ||||
e, messages exchanged for V2V communications are signed using ITS pseudonym cert | ||||
ificates</t> | ||||
<t>The purpose of these certificates is to provide privac | ||||
y and minimize the exchange of private data</t> | ||||
</list> | ||||
</t> | ||||
</section> | ||||
<section title="IANA Considerations"> | ||||
<t>IANA maintains the "Transport Layer Security (TLS) Extensions" registr | <t> The CertificateVerify message for TLS 1.3 is an Ieee1609Dot2Data | |||
y with a subregistry called "TLS Certificate Types".</t> | of type signed, where the signature contained in this Ieee1609Dot2Data | |||
was generated using an ITS certificate. This certificate may | ||||
include multiple PSIDs. When a CertificateVerify message of this form | ||||
is used, the HeaderInfo within the Ieee1609Dot2Data | ||||
<bcp14>MUST</bcp14> have the pduFunctionalType field present and set | ||||
to tlsHandshake. The background to this requirement is as follows: an | ||||
ITS certificate may (depending on the definition of the application | ||||
associated with its PSID(s)) be used to directly sign messages or to | ||||
sign TLS CertificateVerify messages, or both. To prevent the | ||||
possibility that a signature generated in one context could be | ||||
replayed in a different context, i.e., that a message signature could | ||||
be replayed as a CertificateVerify, or vice versa, the | ||||
pduFunctionalType field provides a statement of intent by the signer | ||||
as to the intended use of the signed message. If the pduFunctionalType | ||||
field is absent, the message is a directly signed message for the | ||||
application and <bcp14>MUST NOT</bcp14> be interpreted as a | ||||
CertificateVerify.</t> | ||||
<t> Note that each PSID is owned by an owning organization that has | ||||
sole rights to define activities associated with that PSID. If an | ||||
application specifier wishes to expand activities associated with an | ||||
existing PSID (for example, to include activities over a secure | ||||
session such as specified in this document), that application | ||||
specifier must negotiate with the PSID owner to have that | ||||
functionality added to the official specification of activities | ||||
associated with that PSID.</t> | ||||
</section> | ||||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>Privacy Considerations</name> | ||||
<t>For privacy considerations in a vehicular environment, the ITS | ||||
certificate is used for many reasons: | ||||
</t> | ||||
<ul spacing="normal"> | ||||
<li>In order to address the risk of a personal data leakage, messages | ||||
exchanged for vehicle-to-vehicle (V2V) communications are signed using I | ||||
TS pseudonym | ||||
certificates.</li> | ||||
<li>The purpose of these certificates is to provide privacy and | ||||
minimize the exchange of private data.</li> | ||||
</ul> | ||||
</section> | ||||
<section anchor="IANA" numbered="true" toc="default"> | ||||
<name>IANA Considerations</name> | ||||
<t>IANA maintains the "Transport Layer Security (TLS) Extensions" | ||||
registry with a subregistry called "TLS Certificate Types".</t> | ||||
<t>Value 3 was previously assigned for "1609Dot2” and included a | ||||
reference to draft-tls-certieee1609. IANA has updated this | ||||
entry to reference this RFC.</t> | ||||
<t>IANA has previously assigned an entry (value 3) for "1609Dot2" with referen | ||||
ce set to draft-tls-certieee1609. IANA is requested to update | ||||
that entry to reference the RFC number of this document when it is published. | ||||
</t> | ||||
<!--<t>IANA is also asked to register two new values in the "TLS ClientCertif | ||||
icateType | ||||
Identifiers Registry", as follows: | ||||
<list style="symbols"> | ||||
<t>TBD</t> | ||||
<t>TBD</t> | ||||
</list></t>--> | ||||
</section> | </section> | |||
<section anchor="ack" title="Acknowledgements"> | </middle> | |||
<back> | ||||
<t>The authors wish to thank Adrian Farrel , Eric Rescola , Russ Housley, Ilar | <references> | |||
i Liusvaara and Benjamin Kaduk for their feedback and suggestions on improving t | <name>Normative References</name> | |||
his document. | ||||
Thanks are due to Sean Turner for his valuable and detailed comments. Special | ||||
thanks to Panos Kampanakis, Jasja Tijink and Bill Lattin | ||||
for their guidance and support of the draft.</t> | ||||
</section> | ||||
</middle> | ||||
<back> | ||||
<references title="Normative References"> | ||||
<reference anchor="TS103097"> | ||||
<front> | ||||
<title> | ||||
ETSI TS 103 097 : Intelligent Transport | ||||
Systems (ITS); Security; Security header and cert | ||||
ificate formats</title> | ||||
<author surname="ETSI"/> | ||||
<date year=""/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="ETSI102941"> | ||||
<front> | ||||
<title> | ||||
ETSI TS 102 941 : Intelligent Transport Systems ( | ||||
ITS); Security; Trust and Privacy Management </title> | ||||
<author surname="ETSI"/> | ||||
<date year="2018"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="IEEE1609.2"> | ||||
<front> | ||||
<title>IEEE Standard for Wireless Access in | ||||
Vehicular Environments - Security Services for Ap | ||||
plications and | ||||
Management Messages</title> | ||||
<author surname="IEEE"/> | ||||
<date year="2016"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="IEEE1609.2b"> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119. | |||
<front> | xml"/> | |||
<title> IEEE Standard for Wireless Access in Vehi | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8446. | |||
cular Environments--Security Services for Applications and Management Messages - | xml"/> | |||
Amendment 2--PDU Functional Types and Encryption Key Management </title> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174. | |||
<author surname="IEEE"/> | xml"/> | |||
<date year="2019"/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7250. | |||
</front> | xml"/> | |||
</reference> | ||||
<reference anchor="RFC2119"> | <reference anchor="TS103097"> | |||
<front> | <front> | |||
<title>Key words for use in RFCs to Indicate | <title>Intelligent Transport Systems (ITS); Security; Security | |||
Requirement Levels</title> | header and certificate formats</title> | |||
<author initials="S." surname="Bradner"/> | <author> | |||
<date month="March" year="1997"/> | <organization>ETSI | |||
</front> | </organization> | |||
</reference> | </author> | |||
<date>2017</date> | ||||
</front> | ||||
<refcontent>ETSI TS 103 097</refcontent> | ||||
</reference> | ||||
<reference anchor="RFC8446"> | <reference anchor="TS102941"> | |||
<front> | <front> | |||
<title>The Transport Layer Security | <title> | |||
(TLS) Protocol Version 1.3</title> | Intelligent Transport Systems (ITS); Security; Trust and | |||
<author initials="E." surname="Rescorla"/> | Privacy Management </title> | |||
<date month="August" year="2018"/> | <author> | |||
</front> | <organization>ETSI</organization> | |||
</reference> | </author> | |||
<date year="2018"/> | ||||
</front> | ||||
<refcontent>ETSI TS 102 941</refcontent> | ||||
</reference> | ||||
<reference anchor="RFC8174"> | <reference anchor="IEEE1609.2"> | |||
<front> | <front> | |||
<title>Ambiguity of Uppercase vs Lowercase in RFC | <title>IEEE Standard for Wireless Access in Vehicular Environments -- | |||
2119 Key Words</title> | Security Services for Applications and Management Messages</title> | |||
<author initials="B." surname="Leiba"/> | <author> | |||
<date month="May" year="2017"/> | <organization>IEEE</organization> | |||
</front> | </author> | |||
</reference> | <date month="March" year="2016"/> | |||
</front> | ||||
<seriesInfo name="DOI" value="10.1109/IEEESTD.2016.7426684"/> | ||||
<refcontent>IEEE Standard 1609.2-2016</refcontent> | ||||
</reference> | ||||
<reference anchor="RFC7250"> | <reference anchor="IEEE1609.2b"> | |||
<front> | <front> | |||
<title> Using Raw Public Keys in Transport Layer | <title> | |||
Security (TLS) | IEEE Standard for Wireless Access in Vehicular Environments--Security Services | |||
and Datagram Transport Layer Security (DTLS)</title> | for Applications and Management Messages - Amendment 2--PDU Functional Types | |||
<author initials="P." surname="Wouters"/> | and Encryption Key Management | |||
<author initials="H." surname="Tschofenig"/> | </title> | |||
<author initials="S." surname="Weiler"/> | <author> | |||
<author initials="T." surname=" Kivinen"/> | <organization>IEEE</organization> | |||
<date month="June" year="2014"/> | </author> | |||
</front> | <date month="June" year="2019"/> | |||
</reference> | </front> | |||
<refcontent>IEEE 1609.2b-2019</refcontent> | ||||
</reference> | ||||
<reference anchor="ITU-TX.696"> | <reference anchor="ITU-TX.696"> | |||
<front> | <front> | |||
<title> Procedures for the operation of object id | <title>Information technology - ASN.1 encoding rules: Specification | |||
entifier registration authorities: General procedures and top arcs of the intern | of Octet Encoding Rules (OER) | |||
ational object identifier tree </title> | </title> | |||
<author initials="INTERNATIONAL STANDARD ISO " surname=""/> | <author> | |||
<date month="July" year="2011"/> | <organization>ITU-T</organization> | |||
</front> | </author> | |||
</reference> | <date month="August" year="2015"/> | |||
</front> | ||||
<refcontent>Recommendation ITU-T X.696</refcontent> | ||||
</reference> | ||||
<reference anchor="IEEE16092"> | <reference anchor="IEEE1609.12"> | |||
<front> | <front> | |||
<title> IEEE Standard for Wireless Access in Vehi | <title>IEEE Standard for Wireless Access in Vehicular Environments | |||
cular Environments Identifier Allocations </title> | (WAVE) - Identifier Allocations</title> | |||
<author initials="IEEE " surname=""/> | <author> | |||
<date month="December" year="2016"/> | <organization>IEEE</organization> | |||
</front> | </author> | |||
</reference> | <date month="December" year="2016"/> | |||
</front> | ||||
<refcontent>IEEE 1609.12-2016</refcontent> | ||||
</reference> | ||||
<reference anchor="ISO21177"> | <reference anchor="ISO21177"> | |||
<front> | <front> | |||
<title> Intelligent transport systems -- ITS stat | <title>Intelligent transport systems - ITS station security services | |||
ion security services for secure session establishment and authentication betwee | for secure session establishment and authentication between trusted dev | |||
n trusted devices </title> | ices</title> | |||
<author initials="INTERNATIONAL STANDARD ISO " surname=""/> | <author> | |||
<date month="" year=""/> | <organization>ISO</organization> | |||
</front> | </author> | |||
</reference> | <date month="08" year="2019"/> | |||
</front> | ||||
<refcontent>ISO/TS 21177:2019</refcontent> | ||||
</reference> | ||||
<reference anchor="SAEJ29453"> | <reference anchor="SAEJ29453"> | |||
<front> | <front> | |||
<title> Requirements for V2I Weather Applications | <title>Requirements for V2I Weather Applications</title> | |||
</title> | <author> | |||
<author initials=" SAE " surname=""/> | <organization>SAE | |||
<date month="" year=""/> | </organization> | |||
</front> | </author> | |||
</reference> | <date month="06" year="2017"/> | |||
</front> | ||||
<refcontent>J2945/3</refcontent> | ||||
</reference> | ||||
<reference anchor="SAEJ29455"> | <reference anchor="SAEJ29455"> | |||
<front> | <front> | |||
<title> Service Specific Permissions and Security | <title>Service Specific Permissions and Security Guidelines for Connec | |||
Guidelines for Connected Vehicle Applications </title> | ted Vehicle Applications</title> | |||
<author initials=" SAE " surname=""/> | <author> | |||
<date month="" year=""/> | <organization>SAE</organization> | |||
</front> | </author> | |||
</reference> | <date month="02" year="2020"/> | |||
</front> | ||||
<refcontent>J2945/5_202002</refcontent> | ||||
</reference> | ||||
</references> | ||||
<section anchor="ack" numbered="false" toc="default"> | ||||
<name>Acknowledgements</name> | ||||
<t>The authors wish to thank <contact fullname="Adrian Farrel"/>, | ||||
<contact fullname="Eric Rescola"/>, <contact fullname="Russ Housley"/>, | ||||
<contact fullname="Ilari Liusvaara"/>, and <contact fullname="Benjamin | ||||
Kaduk"/> for their feedback and suggestions on improving this document. | ||||
Thanks are due to <contact fullname="Sean Turner"/> for his valuable and d | ||||
etailed | ||||
comments. Special thanks to <contact fullname="Panos Kampanakis"/>, | ||||
<contact fullname="Jasja Tijink"/>, and <contact fullname="Bill | ||||
Lattin"/> for their guidance and support of the document.</t> | ||||
</section> | ||||
</references> | </back> | |||
</back> | </rfc> | |||
</rfc> | ||||
End of changes. 58 change blocks. | ||||
691 lines changed or deleted | 642 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |