《http权威指南》读书笔记13
概述
最近对http很感兴趣,于是开始看《http权威指南》。别人都说这本书有点老了,而且内容太多。我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做,还告诉你为什么这么做。于是我把学到的知识点记录下来,供以后开发时参考,相信对其他人也有用。
https
1.安全的http技术需要提供下列功能:
- 服务器认证。(客户端知道它们是在与真正的而不是伪造的服务器通话)
- 客户端认证。(服务器知道它们是在与真正的而不是伪造的客户端通话)
- 完整性。(客户端和服务器的数据不会被修改)
- 加密。(客户端和服务器的对话是私密的,无需担心被窃听)
- 效率。(一个运行的足够快的算法,以便低端的客户端和服务器使用)
- 普适性。(基本上所有的客户端和服务器都支持这些协议)
- 管理的可扩展性。(在任何地方的任何人都可以立即进行安全通信)
- 适应性。(能够支持当前最知名的安全方法)
- 在社会上的可行性。(满足社会的政治文化需要)
2.https在http应用层和tcp传输层之间添加了一个ssl或tls安全层。
3.对称加密:发送端和接受端在互相对话之前,一定要有一个共享的保密密钥。
4.公开密钥加密:使用两个非对称密钥,一个用来对主机报文编码,另一个用来对主机报文解码。编码密钥是众所周知的,但只有主机才知道私有的解密密钥。
5.所有的公开密钥非对称加密系统要确保即使有人拥有了下面所有的线索,也无法计算出保密的私有密钥:
- 公开密钥(是公有的,所有人都可以获得)
- 一小片拦截下来的密文(可通过对网络的嗅探获取)
- 一条报文及与之相关的密文(对任意一段文本运行加密器就可以得到)
6.RSA:即使有了公共密钥、任意一段明文、用公共密钥对明文编码之后得到的相关密文、RSA算法本身,甚至RSA实现的源代码,破解代码找到相应的私有密钥的难度仍相当于对一个极大的数进行质因数分解的困难程度。
7.混合加密系统:由于公开密钥加密算法的计算可能会很慢,所以一般混合公开密钥加密和对称加密。先在两节点间通过便捷的公开密钥加密技术建立起安全通信,然后再用那条安全的通道产生并发送临时的随机对称密钥。
8.除了加密解密报文之外,还可以用加密系统对报文进行签名,以说明是谁编写的报文,同时证明报文未被篡改过。这种技术被称为数字签名。数字签名用的非对称加密,只有作者才知道私有密钥对报文进行加密,所有人都知道公开密钥对密文进行解密。
9.基本的数字证书包含一些纸质ID中常见的内容,比如:
- 对象的名称(人、服务器、组织等)。
- 过期时间。
- 证书发布者。
- 来自证书发布者的数字签名。
10.任何人都可以创建一个数字证书,但并不是所有人都能够获得受人尊敬的签发权,从而为证书信息担保,并用其私有密钥签发证书。
11.通过https建立一个安全web事务之后,现代的浏览器都会自动获取所连接服务器的数字证书。
12.SSL是如何与安全服务器建立连接的:
- 建立安全传输。客户端首先打开一条到web服务器端口443的连接,一旦建立了tcp连接,客户端和服务器就会初始化ssl层,对加密参数进行沟通,并交换密钥。
- 在发送已加密的http报文之前,客户端和服务器要进行一次ssl握手,它们要完成这些工作:交换协议版本号;选择一个两端都了解的密码;对两端的身份进行认证;生成临时的会话密钥,以便加密信道。
13.OpenSSL是SSL和TLS最常见的开源实现。为了使htts与代理配合工作,一种常见的技术就是htts SSL隧道协议。