Skip to content

Commit ce4981f

Browse files
Merge pull request #374 from quicwg/alert_plus_close
Send a TLS alert when TLS encounters an error
2 parents e82c05b + e782069 commit ce4981f

File tree

1 file changed

+15
-78
lines changed

1 file changed

+15
-78
lines changed

draft-ietf-quic-tls.md

Lines changed: 15 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -572,6 +572,16 @@ A server MUST NOT use post-handshake client authentication (see Section 4.6.2 of
572572
{{!I-D.ietf-tls-tls13}}).
573573

574574

575+
## TLS Errors
576+
577+
Errors in the TLS connection SHOULD be signaled using TLS alerts on stream 1. A
578+
failure in the handshake MUST be treated as a QUIC connection error of type
579+
TLS_HANDSHAKE_FAILED. Once the handshake is complete, an error in the TLS
580+
connection that causes a TLS alert to be sent or received MUST be treated as a
581+
QUIC connection error of type TLS_FATAL_ALERT_GENERATED or
582+
TLS_FATAL_ALERT_RECEIVED respectively.
583+
584+
575585
# QUIC Packet Protection {#packet-protection}
576586

577587
QUIC packet protection provides authenticated encryption of packets. This
@@ -1408,86 +1418,13 @@ The portion of the QUIC error code space allocated for the crypto handshake is
14081418
for the crypto handshake:
14091419

14101420
TLS_HANDSHAKE_FAILED (0xC000001C):
1411-
: Crypto errors. Handshake failed.
1412-
1413-
TLS_MESSAGE_OUT_OF_ORDER (0xC000001D):
1414-
: Handshake message received out of order.
1415-
1416-
TLS_TOO_MANY_ENTRIES (0xC000001E):
1417-
: Handshake message contained too many entries.
1418-
1419-
TLS_INVALID_VALUE_LENGTH (0xC000001F):
1420-
: Handshake message contained an invalid value length.
1421-
1422-
TLS_MESSAGE_AFTER_HANDSHAKE_COMPLETE (0xC0000020):
1423-
: A handshake message was received after the handshake was complete.
1424-
1425-
TLS_INVALID_RECORD_TYPE (0xC0000021):
1426-
: A handshake message was received with an illegal record type.
1427-
1428-
TLS_INVALID_PARAMETER (0xC0000022):
1429-
: A handshake message was received with an illegal parameter.
1430-
1431-
TLS_INVALID_CHANNEL_ID_SIGNATURE (0xC0000034):
1432-
: An invalid channel id signature was supplied.
1433-
1434-
TLS_MESSAGE_PARAMETER_NOT_FOUND (0xC0000023):
1435-
: A handshake message was received with a mandatory parameter missing.
1436-
1437-
TLS_MESSAGE_PARAMETER_NO_OVERLAP (0xC0000024):
1438-
: A handshake message was received with a parameter that has no overlap with the
1439-
local parameter.
1440-
1441-
TLS_MESSAGE_INDEX_NOT_FOUND (0xC0000025):
1442-
: A handshake message was received that contained a parameter with too few
1443-
values.
1444-
1445-
TLS_UNSUPPORTED_PROOF_DEMAND (0xC000005E):
1446-
: A demand for an unsupported proof type was received.
1447-
1448-
TLS_INTERNAL_ERROR (0xC0000026):
1449-
: An internal error occured in handshake processing.
1450-
1451-
TLS_VERSION_NOT_SUPPORTED (0xC0000027):
1452-
: A handshake handshake message specified an unsupported version.
1453-
1454-
TLS_HANDSHAKE_STATELESS_REJECT (0xC0000048):
1455-
: A handshake handshake message resulted in a stateless reject.
1456-
1457-
TLS_NO_SUPPORT (0xC0000028):
1458-
: There was no intersection between the crypto primitives supported by the peer
1459-
and ourselves.
1460-
1461-
TLS_TOO_MANY_REJECTS (0xC0000029):
1462-
: The server rejected our client hello messages too many times.
1463-
1464-
TLS_PROOF_INVALID (0xC000002A):
1465-
: The client rejected the server's certificate chain or signature.
1466-
1467-
TLS_DUPLICATE_TAG (0xC000002B):
1468-
: A handshake message was received with a duplicate tag.
1469-
1470-
TLS_ENCRYPTION_LEVEL_INCORRECT (0xC000002C):
1471-
: A handshake message was received with the wrong encryption level (i.e. it
1472-
should have been encrypted but was not.)
1473-
1474-
TLS_SERVER_CONFIG_EXPIRED (0xC000002D):
1475-
: The server config for a server has expired.
1476-
1477-
TLS_SYMMETRIC_KEY_SETUP_FAILED (0xC0000035):
1478-
: We failed to set up the symmetric keys for a connection.
1479-
1480-
TLS_MESSAGE_WHILE_VALIDATING_CLIENT_HELLO (0xC0000036):
1481-
: A handshake message arrived, but we are still validating the previous
1482-
handshake message.
1483-
1484-
TLS_UPDATE_BEFORE_HANDSHAKE_COMPLETE (0xC0000041):
1485-
: A server config update arrived before the handshake is complete.
1486-
1487-
TLS_CLIENT_HELLO_TOO_LARGE (0xC000005A):
1488-
: ClientHello cannot fit in one packet.
1421+
: The TLS handshake failed.
14891422

1423+
TLS_FATAL_ALERT_GENERATED (0xC000001D):
1424+
: A TLS fatal alert was sent, causing the TLS connection to end prematurely.
14901425

1426+
TLS_FATAL_ALERT_RECEIVED (0xC000001E):
1427+
: A TLS fatal alert was received, causing the TLS connection to end prematurely.
14911428

14921429

14931430
# IANA Considerations

0 commit comments

Comments
 (0)