SSL/TLS Alert Protocol and the Alert Codes (2024)

During SSL/TLS handshake failures, you may notice a SChannel eventbeing logged in the System event logs. A closer looks provides that there is a number associated with these failure messages. The logging mechanism is a part of the SSL/TLS Alert Protocol. These alerts are used to notify peers of the normal and error conditions. The numbers especially, play a trivial role in understanding the problem/failure within the SSL/TLS handshake. SChannel logging may have to be enabled on the windows machines to get detailed SChannel messages. Please refer the following article to do so: http://support.microsoft.com/kb/260729

Below is an example of one such event:

These warnings sometimes are very helpful in troubleshooting SSL related issues and provide important clues. However, there is not much documentation available on the description of the alert codes. These alert codes have been defined precisely in TLS/SSL RFC’s for all the existing protocol versions.

The RFC has a definition for the various alert messages encountered during SSL/TLS handshake. Below is a snippet from the above RFC describing the various alert messages:

B.2. Alert Messages enum { warning(1), fatal(2), (255) } AlertLevel; enum { close_notify(0), unexpected_message(10), bad_record_mac(20), decryption_failed_RESERVED(21), record_overflow(22), decompression_failure_RESERVED(30), handshake_failure(40), no_certificate_RESERVED(41), bad_certificate(42), unsupported_certificate(43), certificate_revoked(44), certificate_expired(45), certificate_unknown(46), illegal_parameter(47), unknown_ca(48), access_denied(49), decode_error(50), decrypt_error(51), export_restriction_RESERVED(60), protocol_version(70), insufficient_security(71), internal_error(80), inappropriate_fallback(86), user_canceled(90), no_renegotiation_RESERVED(100), missing_extension(109), unsupported_extension(110), certificate_unobtainable_RESERVED(111), unrecognized_name(112), bad_certificate_status_response(113), bad_certificate_hash_value_RESERVED(114), unknown_psk_identity(115), certificate_required(116), no_application_protocol(120), (255) } AlertDescription; struct { AlertLevel level; AlertDescription description; } Alert;

There is MSDN article which describes these messages more briefly. Here is the link: http://technet.microsoft.com/en-us/library/cc783349%28v=ws.10%29.aspx. However, the article never mentions the alert codes while explaining the messages. For simplicity, I have created a simpler table combining both the MSDN documentation and the RFC for usability. Below is the table:

Alert Code

Alert Message

Description

close_notify

Notifies the recipient that the sender will not send any more messages on this connection.

10

unexpected_message

Received an inappropriate message This alert should never be observed in communication between proper implementations. This message is always fatal.

20

bad_record_mac

Received a record with an incorrect MAC. This message is always fatal.

21

decryption_failed

Decryption of a TLSCiphertext record is decrypted in an invalid way: either it was not an even multiple of the block length or its padding values, when checked, were not correct. This message is always fatal.

22

record_overflow

Received a TLSCiphertext record which had a length more than 2^14+2048 bytes, or a record decrypted to a TLSCompressed record with more than 2^14+1024 bytes. This message is always fatal.

30

decompression_failure

Received improper input, such as data that would expand to excessive length, from the decompression function. This message is always fatal.

40

handshake_failure

Indicates that the sender was unable to negotiate an acceptable set of security parameters given the options available. This is a fatal error.

42

bad_certificate

There is a problem with the certificate, for example, a certificate is corrupt, or a certificate contains signatures that cannot be verified.

43

unsupported_certificate

Received an unsupported certificate type.

44

certificate_revoked

Received a certificate that was revoked by its signer.

45

certificate_expired

Received a certificate has expired or is not currently valid.

46

certificate_unknown

An unspecified issue took place while processing the certificate that made it unacceptable.

47

illegal_parameter

Violated security parameters, such as a field in the handshake was out of range or inconsistent with other fields. This is always fatal.

48

unknown_ca

Received a valid certificate chain or partial chain, but the certificate was not accepted because the CA certificate could not be located or could not be matched with a known, trusted CA. This message is always fatal.

49

access_denied

Received a valid certificate, but when access control was applied, the sender did not proceed with negotiation. This message is always fatal.

50

decode_error

A message could not be decoded because some field was out of the specified range or the length of the message was incorrect. This message is always fatal.

51

decrypt_error

Failed handshake cryptographic operation, including being unable to correctly verify a signature, decrypt a key exchange, or validate a finished message.

60

export_restriction

Detected a negotiation that was not in compliance with export restrictions; for example, attempting to transfer a 1024 bit ephemeral RSA key for the RSA_EXPORT handshake method. This message is always fatal.

70

protocol_version

The protocol version the client attempted to negotiate is recognized, but not supported. For example, old protocol versions might be avoided for security reasons. This message is always fatal.

71

insufficient_security

Failed negotiation specifically because the server requires ciphers more secure than those supported by the client. Returned instead of handshake_failure. This message is always fatal.

80

internal_error

An internal error unrelated to the peer or the correctness of the protocol makes it impossible to continue, such as a memory allocation failure. The error is not related to protocol. This message is always fatal.

90

user_cancelled

Cancelled handshake for a reason that is unrelated to a protocol failure. If the user cancels an operation after the handshake is complete, just closing the connection by sending a close_notify is more appropriate. This alert should be followed by a close_notify. This message is generally a warning.

100

no_renegotiation

Sent by the client in response to a hello request or sent by the server in response to a client hello after initial handshaking. Either of these would normally lead to renegotiation; when that is not appropriate, the recipient should respond with this alert; at that point, the original requester can decide whether to proceed with the connection. One case where this would be appropriate would be where a server has spawned a process to satisfy a request; the process might receive security parameters (key length, authentication, and so on) at start-up and it might be difficult to communicate changes to these parameters after that point. This message is always a warning.

255

unsupported_extension

There were few articles that I found while searching that contain additional alert codes. However, I don’t find these to be part of the RFC. Here is one: http://botan.randombit.net/doxygen/classBotan_1_1TLS_1_1Alert.html It includes additional alerts like 110, 111, 112, 113, 114, 115. You can browse the above link for further reading. Hope someone finds the above table useful. It may not help you in solving any issue but would provide useful pointers.

SSL/TLS Alert Protocol and the Alert Codes (2024)

FAQs

What are different alert codes of the TLS protocol? ›

3.4 The TLS alert protocol
AlertIDDescription
GNUTLS_A_RECORD_OVERFLOW22Record overflow
GNUTLS_A_DECOMPRESSION_FAILURE30Decompression failed
GNUTLS_A_HANDSHAKE_FAILURE40Handshake failed
GNUTLS_A_SSL3_NO_CERTIFICATE41No certificate (SSL 3.0)
29 more rows

What is the SSL alert protocol? ›

Alert Protocol

Alerts are a specific type of message that can be transmitted by the SSL record layer. Alerts consist of two parts: an AlertLevel and an AlertDescription. Both are coded as single 8-bit numbers. SSL alerts are encrypted and compressed.

What is the SSL TLS protocol? ›

TLDR: SSL/TLS encrypts communications between a client and server, primarily web browsers and web sites/applications. SSL (Secure Sockets Layer) encryption, and its more modern and secure replacement, TLS (Transport Layer Security) encryption, protect data sent over the internet or a computer network.

What's the difference between SSL and TLS? ›

SSL is technology your applications or browsers may have used to create a secure, encrypted communication channel over any network. However, SSL is an older technology that contains some security flaws. Transport Layer Security (TLS) is the upgraded version of SSL that fixes existing SSL vulnerabilities.

What does SSL stand for? ›

SSL: Secure Sockets Layer

SSL is standard technology for securing an internet connection by encrypting data sent between a website and a browser (or between two servers). It prevents hackers from seeing or stealing any information transferred, including personal or financial data.

What is TLS code? ›

Transport Layer Security, or TLS, is a widely adopted security protocol designed to facilitate privacy and data security for communications over the Internet. A primary use case of TLS is encrypting the communication between web applications and servers, such as web browsers loading a website.

What is an example of SSL protocol? ›

For example, if a webpage requires an SSL connection, the URL will change from HTTP to HTTPS, and a padlock icon will appear in the browser once the server has been authenticated. Client authentication. The handshake also allows the client to authenticate itself to the server.

Why SSL needs an alert protocol? ›

Alert Protocol

This protocol is used to convey SSL-related alerts to the peer entity. Each message in this protocol contains 2 bytes. This Alert has no impact on the connection between sender and receiver.

What is the alert protocol used for? ›

The Common Alerting Protocol (CAP) is the international standard format for emergency alerting and public warning. It has been developed by the Organization for the Advancement of Structures Information Standards and adopted by the International Telecommunication Union (ITU).

What is SSL TLS settings? ›

Configuring the machine to use SSL/TLS enables encrypted communication. Doing so helps prevent data from being intercepted, cracked, or tampered with during transmission. Flow of SSL/TLS encrypted communications. To access the machine from a user's computer, request the SSL/TLS device certificate and public key.

Why is SSL TLS required? ›

TLS/SSL certificates improve SEO

It's no secret that a secure internet is a better internet. That's why most major browsers require TLS/SSL certificates—and boost the results of websites that are secured by digital certificates. This includes all major search engines and all browser types.

How does TLS work step by step? ›

For this reason, TLS uses asymmetric cryptography for securely generating and exchanging a session key. The session key is then used for encrypting the data transmitted by one party, and for decrypting the data received at the other end. Once the session is over, the session key is discarded.

How do I know if I am using SSL or TLS? ›

Click on the ellipsis located on the top-right in the browser. Select More tools > Developer tools > Security. Look for the line "Connection...". This will describe the version of TLS or SSL used.

Do you need both SSL and TLS? ›

TLS and SSL: Both TLS (Transport Layer Security) and SSL (Secure Sockets Layer) are cryptographic protocols crucial for encrypting and securely transmitting data over the internet. TLS protocol is replacing SSL. And yes, you should choose TLS over SSL as it´s a more updated and secure version of SSL.

Can TLS be hacked? ›

One of the most common TLS security risks is the use of weak ciphers. Attackers can crack weak ciphers easily, thereby allowing them to gain access to sensitive data. Some other TLS vulnerabilities include Padding Oracle on Downgraded Legacy Encryption (POODLE), man-in-the-middle (MITM), and so on.

What is TLS protocol alert code 40? ›

A fatal alert was received from the remote endpoint. The TLS protocol defined fatal alert code is 40. A fatal alert was generated and sent to the remote endpoint. This may result in termination of the connection.

What is the TLS alert code 48? ›

The TLS protocol defined fatal alert code is 48." The error means: "Received a valid certificate chain or partial chain, but the certificate was not accepted because the CA certificate could not be located or could not be matched with a known, trusted CA.

What is TLS alert code 46? ›

Event ID 36887, A fatal alert was rceived from the remote endpoint. The TLS protocol defined fatal alert code is 46, which indicates a certificate problem.

What is TLS Alert 21? ›

TLS defines the alert protocol and alert code 21 means "Decryption failed", see: http://en.wikipedia.org/wiki/Transport_Layer_Security#Alert_protocol. Quoting wikipedia: "This record should normally not be sent during normal handshaking or application exchanges.

References

Top Articles
Uncovering The Truth: Sophie Rain's Spider-Man Leak Controversy
TikTok Star Mikayla Campinos Leaked Video and Death Controversy Explained
English Bulldog Puppies For Sale Under 1000 In Florida
Katie Pavlich Bikini Photos
Gamevault Agent
Pieology Nutrition Calculator Mobile
Toyota Campers For Sale Craigslist
Unlocking the Enigmatic Tonicamille: A Journey from Small Town to Social Media Stardom
Ncaaf Reference
Globe Position Fault Litter Robot
Crusader Kings 3 Workshop
Robert Malone é o inventor da vacina mRNA e está certo sobre vacinação de crianças #boato
Guilford County | NCpedia
Maplestar Kemono
How To Cut Eelgrass Grounded
Pac Man Deviantart
Alexander Funeral Home Gallatin Obituaries
Energy Healing Conference Utah
Geometry Review Quiz 5 Answer Key
Hobby Stores Near Me Now
Icivics The Electoral Process Answer Key
Allybearloves
Bible Gateway passage: Revelation 3 - New Living Translation
Yisd Home Access Center
Pearson Correlation Coefficient
Home
Shadbase Get Out Of Jail
Gina Wilson Angle Addition Postulate
Celina Powell Lil Meech Video: A Controversial Encounter Shakes Social Media - Video Reddit Trend
Walmart Pharmacy Near Me Open
Marquette Gas Prices
A Christmas Horse - Alison Senxation
Ou Football Brainiacs
Access a Shared Resource | Computing for Arts + Sciences
Vera Bradley Factory Outlet Sunbury Products
Pixel Combat Unblocked
Movies - EPIC Theatres
Cvs Sport Physicals
Mercedes W204 Belt Diagram
Mia Malkova Bio, Net Worth, Age & More - Magzica
'Conan Exiles' 3.0 Guide: How To Unlock Spells And Sorcery
Teenbeautyfitness
Where Can I Cash A Huntington National Bank Check
Topos De Bolos Engraçados
Sand Castle Parents Guide
Gregory (Five Nights at Freddy's)
Grand Valley State University Library Hours
Hello – Cornerstone Chapel
Stoughton Commuter Rail Schedule
Nfsd Web Portal
Selly Medaline
Latest Posts
Article information

Author: Trent Wehner

Last Updated:

Views: 6327

Rating: 4.6 / 5 (76 voted)

Reviews: 83% of readers found this page helpful

Author information

Name: Trent Wehner

Birthday: 1993-03-14

Address: 872 Kevin Squares, New Codyville, AK 01785-0416

Phone: +18698800304764

Job: Senior Farming Developer

Hobby: Paintball, Calligraphy, Hunting, Flying disc, Lapidary, Rafting, Inline skating

Introduction: My name is Trent Wehner, I am a talented, brainy, zealous, light, funny, gleaming, attractive person who loves writing and wants to share my knowledge and understanding with you.