Forum Discussion
Display a warning on client browser when cipher suite mismatch
Hello,
We have a ssl profile with a very limited ciphers suite (TLS1.2, TLS1.3 and other limitations).
Is it possible to display a warning message on a browser when there is no match between browser cipher suite and our VS SSL profile cipher suite (via irule, policy, ...) ?
For example when client uses TLS 1.0, we want its browser to display a "please update your browser" or a "your cipher is not permited on our site" message.
Thank you for your help
Hello L__G_
When you use an HTTPS scheme in your browser, you are asking the browser to perform a TLS handshake before sending any HTTP traffic. If both ciphers don't match, you will receive a TLS Alert during the TLS handshake and the connection will be interrupted.
To respond with a specific message, you should send somehow an HTTP traffic response without encryption, but you cannot respond with an HTTP packet because:
1. Your TLS handshake was finished abruptly
2. In HTTP, you only respond to queries that were initiated by the client, and you didn't send any query to the server because the TLS was interrupted.So, this is technically restricted by the protocol.
- MaximPCirrusL__G_, hello.
There is an option. You can create less strong SSL profile, that supports, let's say, TLSv1, but response with a sorry page for users who use TLSv1. In that case you have to allow unwanted chiper suites, but you don't process this unsecure traffic to an application.
Example Irule below
when CLIENTSSL_HANDSHAKE { if { ( [SSL::cipher version] equals "TLSv1" ) } { set Invalid_SSL 1 } else { set Invalid_SSL 0 } } when HTTP_REQUEST { if { $Invalid_SSL == 1 } { HTTP::respond 200 content "<html><head><title>HTTP Request denied</title></head><body>Please update your browser</body></html>" return } }
Sure, filtering at app level is possible.
Great approach!
- L__G_Altostratus
Hello MaximP,
Thank you for your reply.
Unfortunatly, our Security Manager wants our profile to be TLSv1.2 or TLS 1.3.
It seems there is no solutions except a browser error.
Thank you again for your help.
Hello L__G_
When you use an HTTPS scheme in your browser, you are asking the browser to perform a TLS handshake before sending any HTTP traffic. If both ciphers don't match, you will receive a TLS Alert during the TLS handshake and the connection will be interrupted.
To respond with a specific message, you should send somehow an HTTP traffic response without encryption, but you cannot respond with an HTTP packet because:
1. Your TLS handshake was finished abruptly
2. In HTTP, you only respond to queries that were initiated by the client, and you didn't send any query to the server because the TLS was interrupted.So, this is technically restricted by the protocol.
- L__G_Altostratus
Hello Diaro_Garrido.
After my readings, I didn't have high hopes on this point. Thank you for your help.
Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com