It is my understanding that requests from a client browser to a webserver will initially follow the specified protocol e.g, HTTPS, and default to HTTP if not specified (Firefox Tested). On the server side it is desired to enforce a strict type HTTPS for all connections for the privacy of request headers and as a result HTTPS redirections are used. The problem is that any initial request where the client does not explicitly request HTTPS will be sent unencrypted. For example, client instructs browser with the below URL command.
google.com/search?q=unencrypted-get
google.com will redirect the client browser to use HTTPS but the initial HTTP request and GET parameters were already sent unencrypted possibly compromising the privacy of the client. Obviously there is nothing full-proof that can be done by the server to mitigate this vulnerability but:
- Could this misuse compromise the subsequent TLS security possibly through a known-plaintext
attack (KPA)? - Are there any less obvious measures that can be done to mitigate this possibly through some DNS protocol solution?
- Would it be sensible for a future client standard to always initially attempt with HTTPS as the default?