《HTTPS权威指南》读后感 @阿狸不歌

     2016年即将逝去,在新的一年到来之际,在网络领域有那么几件颇有影响的事要发生:

《HTTPS权威指南》读后感 @阿狸不歌_第1张图片
封面

      1、2017年1月1日,苹果将对Apple Store里所有应用启用一项名为ATS的重要安全功能(App Transport Security,应用程序安全传输,简称 ATS),在启用 ATS 之后,它会强制开发者的应用通过 HTTPS(而不是 HTTP)连接网络服务。这是今年苹果全球开发者大会上发布的一项“新规”。这意味着如果你开发的苹果App没有采用HTTPS,将会被"下课"。

       2、Google宣布,计划从2017年1月1日起,Chrome 56 将给不安全网站进行标记,比如含密码或信用卡信息传输的HTTP页面。Chrome会把不使用 HTTPS 协议的网站和页面标记为不安全(Not secure),在其后的版本中,Chrome 浏览器会逐渐增加安全风险提示的醒目程度。如果网站坚持不使用 HTTPS,或者 HTTPS 协议损坏,那么地址栏就会出现一个带有叹号的红色三角标识。想想看,如果你的网站有那么醒目的一个不安全标示,那会多囧啊?

       如果不熟悉HTTPS怎么办?网上资料良莠不齐,英文资料又看起来费劲。不用慌,给大家推荐一本书,那就是图灵社区出的《HTTPS权威指南:在服务器和Web应用上部署SSL/TLS和PKI》。这本书是国内引进出版的第一本关于HTTPS的专著,其原著《Bulletproof SSL and TLS: Understanding and Deploying SSL/TLS and PKI to Secure Servers and Web Applications》在亚马逊上的得分是满分(有截图为证!!!)


《HTTPS权威指南》读后感 @阿狸不歌_第2张图片

所以以图灵的翻译质量加上亚马逊的评分保证,你完全可以信赖此书(好像打广告啊!^_^)

       打完广告,言归正传,讲讲读这本书的心得(或者说该如何读这本书):如果你是被苹果的ATS逼着要上马HTTPS的,那你其实大可不必从头读起,直接从第11章往下扫,照着第11章(OpenSSL)的内容走一遍,你就已经可以生成自己的私有自签名证书了,这意味这你已经可以在开发环境里玩一玩加密传输数据了(参考第12章:使用OpenSSL进行测试)。但是,苹果是不会认你这个自签名证书的,所以在生产环境里你还得搞一个正儿八经的机构签发的证书(参考第3章:公钥基础设施),有花钱和不花钱的,花钱的就不说了(一般来说,价格越贵越¥¥牛掰¥¥),不花钱的可以上[Let's Encrypt]、[FreeSSL]、[StartSSL]上去申请,过程也还算比较简单的,照着这些网站提供的教程来一遍(和第11章的过程是比较像的)就差不多了。拿到证书后,根据你自己网站的技术架构进行配置即可,书中从13~16章依次介绍了Apache、Tomcat、IIS、Nginx的配置方式,我想这对绝大多数人而言已经足够用了。

       等你把ATS的事情搞定,心里一定松了一口气,App不会被下架了。而当你的Chrome浏览器网址前方有一个绿色的可信标志时,就说明你的站点HTTPS加密已经初步告成,至少从表面上看起来算是一个合格的加密网站了。但是光有个HTTPS标示就真的表示你的网站安全么?那可未必,所以要有认真的精神的话,就得回过头来搞清楚什么是HTTPS了(这货比HTTP多了一个S,有那么复杂吗?),第一章、第二章回顾了一下网络的七层协议和密码学基础知识,已经熟悉的人可以略过,不熟悉的人可能要补补课,但是补课的话第一章的知识可能又不够,这时候大图灵的书又派上用场了,《图解HTTP》通俗易懂、《HTTP权威指南》内容详尽,读完这两本,足够你搞清楚什么是HTTP了。密码学的知识比较高深,不要怕,大图灵也有一本《图解密码技术》,此书虽然不足以让你成为密码学高手,也可以让你入个门了,不要自卑,这个世界上的密码学高手并不多,绝大部分人都只是理论的使用者而已。

       第4章很有趣,介绍的东西简单些说就是各种bug以及bug带来的各种灾难,对这些历史感兴趣的可以进一步参考《网络战:信息空间攻防历史、案例与未来》和《网络安全:输不起的互联网战争》。总的来说就是告诉你:不加密就是灾难、加密也未必可靠(崩溃!!!)。我们通常会说加密被绕过,而不是被攻击。这句话意味着使用的基元都很坚实,但软件体系不牢固。许多失败的加密案例都可以参照下面的简单规则避免:(1) 使用完善的协议,不要自己设计;(2) 使用高级库,避免直接操作加密;(3) 使用完备的基元,辅以足够强壮的密钥长度。 第5章讲的是浏览器的安全问题,有心要搞事的或者要防范别人搞事的请参考大图灵新出的《黑客攻防技术宝典:浏览器实战篇》。第6、7章介绍了为什么bug会层出不穷(因为软件是人编的),有心者请进一步参考搞事指南《精通Metasploit渗透测试》、以及图灵黑客系列丛书:《黑客攻防技术宝典:Web实战篇》、《黑客攻防技术宝典:iOS实战篇》、《黑客攻防技术宝典:系统实战篇》、《黑客达人迷》。更进一步,如果程序没有bug(或者你没有能力发现bug),也还有别的办法,这方面图灵也提供了一个系列——《社会工程:安全体系中的人性漏洞》、《社会工程2:解读肢体语言》、《社会工程3:防范钓鱼欺诈》。总而言之:你要是搞不定软件,那么你就去搞定人!(借用《三体:死神永生》里的台词:黑,真XX的黑!)当然,反过来也是一样的:你不仅要防止你的程序出bug,也要防范你的人出bug。

       第8、9、10章涉及到高级HTTPS部署的细节,实际上HTTPS并不是简单到拿到一个证书,往网站上一放就完事了的,真正在实操层面还有很多方方面面的细节决定着你的网站的安全性,比如是否对网站进行了全站HTTPS加密、cookie的内容是否安全、遇到DDOS攻击该怎么办等等方面。要想光靠这一本书搞定网站的安全肯定是不现实的,但是,我们首先要了解哪些地方会有什么样的危险,遇到特定的问题要怎么做。

      总之,这本《HTTPS权威指南:在服务器和Web应用上部署SSL/TLS和PKI》无论是对于要急于上线HTTPS的开发者、还是要在安全领域有所作为的黑白灰客都是一本必备之书,值得一买!

------------------------------------------------------------------------

你可能感兴趣的:(《HTTPS权威指南》读后感 @阿狸不歌)