--- layout: post title: "Notes on HSTS" date: 2019-04-08 comments: true tags: hsts, security, privacy --- I was recently looking into enabling HSTS sitewide on a medium sized site, and went through a reading spree of specifications involved. These are my notes. ## What is HSTS HTTP Strict Transport Secrity is a mechanism for sites to signal that they would only be serving a secure transport (read: TLS) to serve content from these domains. It is defined in [RFC6797](https://tools.ietf.org/html/rfc6797). ### Threats mitigated 1. Passive network attackers Threats from people sniffing your network passivly, like someone else on a public coffee shop wifi you are currently using. The best attack I can think of is [FireSheep](https://en.wikipedia.org/wiki/Firesheep). Firesheep is mitigated by never sending session tokens in a clear transport. HSTS helps browsers to force the transport to be secure and fail if someone is trying to downgrade the connection to mount a firesheep style attach. 2. Active network attackers Threats from people inside the network, someone who has access to how you get on the internet (someone who got access to your ISP or the wifi router etc). An attack example is [sslstrip](https://moxie.org/software/sslstrip/). sslstrip fools the client into beliving a secure transport doesnot exist for a particular domain, thus forcing it to send sensitve data over cleartext. HSTS will be able to detect this and prevent connecting to the site. 3. Deployment and management errors