
虞卫东
这是一本专业的HTTPS书籍,全面讲解了HTTPS领域的相关知识,内容包括密码学、OpenSSL命令行、证书、TLS协议、HTTPS网站性能优化、HTTPS网站优秀实践、大型网站HTTPS架构设计等。
一本比较全面的https书。第一次接触https,这本书写的全且详细,但是整本书下来也只能记住和理解百分之十的内容。。还有不少知识点没有理解,比如握手协议中的多个子协议,wireshark抓取网页中分析详细ttl ssl过程等。之后遇到不会的再来翻阅吧。
就前端的视角可以深度看下前面三章的内容 可以很好的理解https的协议 加密算法和如何解决http的问题 后面的可看可不看
泛泛而谈,讲讲概念,讲讲工具的使用,浮于表面,既有时效性,又容易过时。知其然而不知其所以然,价值不大。
对https的讲解非常全面细致,推荐!
HTTTPS个人总结: (1) 非对称加密两把秘钥,一个公钥一个私钥,公钥随便下发给客户端,公钥没办法反推私钥 加密是有数据公式的,公私钥互推用的是超大数的因式分解,目前的数学难题 (2) 对称加密 两边交换秘钥,用同一个秘钥加解密,算法是矩阵运算和矩阵逆运算 通过主密钥生成密钥流,对密文做分块,每一块使用一个秘钥,并且跟前一块的加密结果做运算 (3) 签名 MAC算法,类似于md5用的是哈希算法,并不需要从签名反推加密数据,两边用同一个秘钥相同算法运算,确保消息没被篡改 (4) 证书链 非对称加密结果,用公钥加密需要用私钥解密,根证书以及二级证书的私钥不泄露就行 (5) TLS协议 先经过三次握手,然后TLS握手通过非对称算法交换对称密钥,两边通过对称密钥通信 对称加密的内容可以是任何应用层协议的内容,可以加密HTTP协议也可以加密各种私有协议
引入爱丽丝,鲍勃,马洛里解释HTTPs,他们是被广泛地代入密码学和物理学领域的通用角色。 1. 初步交流 如果爱丽丝想要给鲍勃发送一段信息,她会把信息绑在信鸽的腿上然后送往鲍勃那里。鲍勃收到了信息,也阅读了信息,非常完美。 「但如果马洛里拦截了爱丽丝的鸽子并且篡改了信息呢?鲍勃就没有办法去知道爱丽丝发出的信息在传递过程中遭到了修改。」 这就是HTTP如何运作的。 2. 隐蔽的密码 那么如果爱丽丝和鲍勃都非常的机智。他们一致认同使用一种隐蔽的密码来书写他们的信息。他们会将信息中的每个字母按照字母表中的顺序前移三位。比如,D→A,E→B,F→C。如此一来,原文为 “secret message” 的信息就变成了 “pbzobq jbppxdb” 。 那现在如果马洛里再截获了信鸽,她既不能做出有意义的修改同时也不会知道信息的内容,因为她不知道隐蔽的密码到底是什么。然而鲍勃却可以很容易反转密码,依靠 A → D, B → E, C → F 之类的规则破译信息的内容。加密后的信息 “pbzobq jbppxdb” 会被破解还原为 “secret message” 。 这就是「对称密匙加密」,因为如果你知道如何加密一段信息那么你同样可以解密这段信息。 3. 如何决定密钥? 如果除了发信者和收信者之外没有人知道使用的是什么密匙,对称密匙加密是非常安全的。在凯撒加密中,密匙就是每个字母变到加密字母需要移动多少位的偏移量。我之前的距离中,使用的偏移量是 3 ,但是也可以用 4 或者 12 。 问题是如果爱丽丝和鲍勃在开始用信鸽传信之前没有碰过头,他们没有一个安全的方式来确立密匙。如果他们自己来在信中传递密匙,马洛里就会截获信息并发现密匙。这就使得马洛里可以在爱丽丝和鲍勃开始加密他们的信息之前或之后,阅读到他们信息的内容并按照她的意愿来篡改信息。 这是一个中间人攻击「Man-in-the-Middle Attack」的典型例子,避免这个问题的唯一方法就是收发信的两方一起修改他们的编码系统。 4. 通过信鸽传递盒子 所以爱丽丝和鲍勃就想出了一个更好的系统。当鲍勃想要给爱丽丝发送信息时,他会按照如下的步骤来进行: 「鲍勃向爱丽丝送一只没有携带任何信息的鸽子。 爱丽丝给鲍勃送回鸽子,并且这只鸽子带有一个有开着的锁的盒子,爱丽丝保管着锁的钥匙。 鲍勃把信放进盒子中,把锁锁上然后把盒子送给爱丽丝。 爱丽丝收到盒子,用钥匙打开然后阅读信息。」 这样马洛里就不能通过截获鸽子来篡改信息了,因为她没有打开盒子的钥匙。当爱丽丝要给鲍勃发送消息的时候同样按照上述的流程。 爱丽丝和鲍勃所使用的流程通常被称为「非对称密钥加密」。之所以称之为非对称,是因为即使是你把信息编码(锁上盒子)也不能破译信息(打开锁住的盒子)。 在术语中,盒子被称为公匙「Public Key」而用来打开盒子的钥匙被称为私匙「Secret Key」。 5. 如何信任盒子 但是会发现还是存在问题。当鲍勃收到盒子时他如何能确定这个盒子来自爱丽丝而不是马洛里截获了鸽子然后换了一个她有钥匙能打开的盒子呢? 爱丽丝决定签名标记一下盒子,这样鲍勃收到盒子的时候就可以检查签名来确定是爱丽丝送出的盒子了。 那么鲍勃如何打一开始就能识别出爱丽丝的签名呢?这是个好问题。爱丽丝和鲍勃也确实有这个问题,所以他们决定让泰德代替爱丽丝来标记这个盒子。 那么谁是泰德呢?泰德很有名的,是一个值得信任的家伙。他会给任何人签名并且所有人都信任他只会给合法的人签名标记盒子。 如果泰德可以确认索要签名的人是爱丽丝,他就会在爱丽丝的盒子上签名。因此马洛里就不可能搞到一个有着泰德代表爱丽丝签了名的盒子,因为鲍勃知道泰德只会给他确认过的人签名,从而识破马洛里的诡计。 泰德的角色在术语中被称为认证机构「CA 机构」。而你阅读此文时所用的浏览器打包存有许多认证机构的签名。 所以当你首次接入一个网站的时候你可以信任来自这个站点的盒子因为你信任泰德而泰德会告诉你盒子是合法的。
沒全看完就上战场了!今天已经完美部署https,并运用HSTS进行软跳转. 总结一下: 1. 作者乐此不彼的介绍Certbot-auto,经本人测试和网搜证实Certbot-auto已死,大家不要浪费时间。只能用Certbot手动申请!作者没有写,但也很简单,不过要装snap,不同系列安装方法不一样! 2. HSTS:只要在ngnix加一段头部代码就行!效果非常顺滑! 3.“密码学”是一门大学科!以前一直用MD5,看完才知道是MD5是不安全的! 感谢作者介绍的let’s sencrypt .
整体来说是见过的讲的最好的一本书,作者应该是做网站出身的,我本人是做嵌入式的,不熟悉php ,我们用C+mbedtls,不过算法都是相通的。里边的基础知识对我帮助很大,受益匪浅,里边的命令我都照着做了一遍,挺好。
内容翔实、通俗易懂,但有几处说法不一,总体来说,本书适合对计算机网络有初步了解的读者阅读,可作为深入理解https协议的进阶读物。
很多地方细节表述不清楚,很多地方又过于啰嗦