The running of SSL/TLS
SSL/TLS is a protocol that provides server identity verification (for instance a web server like MyCrypNet, in that case we speak about https because the protocol to access a web server is called http ). This identity verification works with a certificate sent from the server.
Here is the protocol step by step (technical terms are present in the graphs):
- The client software asks the server its identity.
- The server sends a certificate signed by the certification authority trusted by both the client software and the server to the client software.
- The client software checks if the signature belongs to the certification authority it trusts.
- It sends a request to this certification authority to check if it ensures that the certificate is still valid.
- The client software and the server agree on a session key that will encrypt informations during a limited period (this time passed, another session key will take the place, the details for MyCrypNet are explained in the graphs about the session key).
- The client software and the server can communicate in a secure way.
The HSTS extension
The HSTS extension is a http protocol extension (the protocol that loads webpages) reinforcing the SSL/TLS use.
This extension forces the browser to load secure versions of a webpage and all the ressources this page holds (that is to say https versions) in a domain (the base address of a website) that implements it.
If the wanted webpage does not have any secure version, it is not loaded on the browser.
Once the browser accesses a website implementing this extension it keeps in memory that the next webpages wanted on that website must be secured. It can check it even before sending the first request to the website.
A HSTS extension is valid for a limited period and the browser must check at the end of this time if the website always uses this extension to start another period.
Domains (base address of a website) can be preloaded in a database available in your browser. That way the browser knows even before sending the first request of its history to a webpage that it must be secure otherwise it does not load it.
This base is available here: HSTS Preload
The session key exchange between the client software and the server is done with the Diffie-Helman protocol that creates a symmetrical session key without exchanging secret elements (please refer to this article for another informations source on that subject).
MyCrypNet uses HSTS. The HSTS validity period is 6 months.
- SSL/TLS: https://en.wikipedia.org/wiki/Transport_Layer_Security
- HSTS: https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security
- Diffie-Helman: https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange
- Preloading for MyCrypNet: https://hstspreload.org/?domain=mycrypnet.io
- Preloading for Limawi: https://hstspreload.org/?domain=limawi.io