Forum Discussion
Beinhard_8950
Nimbostratus
Sep 02, 2010Strict Transport Security
Hi,
I have a question, dows anyone implemented Strict Transport Security (STS/HSTS).
I have seen many guides to implement this on servers and so on but if you use a ADC then it would be implemented there i quess.
So if someone have done this or have an idea, please give your thoughts about this.
Regards,
Adam
7 Replies
- JRahm
Admin
Most of the controls for STS seem to occur on the client end. Implementing looks to be a fairly simple iRule, inserting a header with appropriate options for your policy and limiting access to non-ssl resources on the client-side. The problem is going to be handling non-compliant browsers. I know Chrome supports it already and FF4 will have it, but what about IE and the others? That's a large chunk of site visitors, so you would need a mechanism (simple HTTP::respond with "Please use browser X, Y, Z" would work) to inform the users. It's always tricky to enforce adoption without losing users. - Beinhard_8950
Nimbostratus
Hi, thanks for the answer.
Regarding that you will loose users that don´t have STS compatible browser isnt¨t true i think.
If you don´t have a UA that support STS then you don´t have this security feature.
So have anyone tryed to use a irule for this or another thoughts of STS and f5? - JRahm
Admin
Not saying you will lose users, just noting it's a consideration. I haven't heard anything on STS specific to F5. I'm going to write a tech tip on it that will be released later this month. Any other questions you have or implementation ideas? I'll try to work them in. - L4L7_53191
Nimbostratus
This is really interesting, thanks for posting. The good news is that you can accomplish most all of this by simply forcing every request through an SSL enabled virtual server. You can force any non-https request to that VS address back over to the SSL enabled VS. Also, stream profiles can rewrite non-https references for you on the fly.
I'm not saying that this is a superfluous concept at all, but it seems that with an ADC you can actually enforce much of this behavior so you're ahead of the game before you've even started. As far as inserting the header, I agree that this looks totally possible.
-Matt - Hamish
Cirrocumulus
Mmm... The one advantage you still don't get is the possible leaking of information on the HTTP connection still... There's no way to work around that except to just drop connection attempts to port 80 (Which then goes full circle).
BUT at the end of the day, it's all still IMNSHO mostly an attempt to make apps with bugs or design faults in them 'work properly'... if the app DID work properly, there would be no need for the port 80 traffic, and no need for STS either (How many times have you seen anything like STS for IPSec for an extreme example?)
The part about making cert errors fatal and not allowing you to click around them however is a good one... That would help for some 'stolen' sites, DNS corruptions etc..
Maybe it's time to step back and look at security properly on the Internet... Rather than trying to patch protocols that weren't intended to be used in this way... (As good as they are, there's almost always a way to break them when inserting security. Sadly that's probably not going to happen, because developers will always look for a way to have the security broken to make it easier for the user or to make their app actually work around a bug they left in it... Which generally means less secure).
Sorry... It's monday and I'm feeling cynical...
H - JRahm
Admin
Posted By L4L7 on 09/12/2010 08:42 PM
This is really interesting, thanks for posting. The good news is that you can accomplish most all of this by simply forcing every request through an SSL enabled virtual server. You can force any non-https request to that VS address back over to the SSL enabled VS. Also, stream profiles can rewrite non-https references for you on the fly.
I'm not saying that this is a superfluous concept at all, but it seems that with an ADC you can actually enforce much of this behavior so you're ahead of the game before you've even started. As far as inserting the header, I agree that this looks totally possible.
-Matt
This assumes all traffic goes through an F5 BIG-IP. Yes, we can do that, but not all appliances can. Maybe this std is to protect users who deploy "the other guy?" Just a little early Monday humor, folks, no need for flames... - JRahm
Admin
Forgot to post back that I actually did write the article: http://devcentral.f5.com/Tutorials/TechTips/tabid/63/articleType/ArticleView/articleId/1084416/Implementing-HTTP-Strict-Transport-Security-in-iRules.aspx Click Here
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
DevCentral Quicklinks
* 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
Discover DevCentral Connects