1.什么是HTTPS?
https是基于http协议的扩展,HTTP与SSL(安全套接字层)结合使用称为HTTPS(HTTP Secure,超文本传输安全协议)。当然,出于安全原因,HTTP 并未加密。
1. 使用明文进行通信,无需加密数据(内容很容易被截获)。
2. 不要验证与您通信的人的身份(容易伪装)。
3、无法确定消息的完整性(内容容易被篡改)。
HTTPS 并不是一个新的应用层协议。仅HTTP通信接口部分被SSL(SecureSocket Layer)和TLS(Transport Layer Security)协议替代。
HTTP 通常直接与TCP 通信。当您使用SSL 时,您首先与SSL 通信,然后SSL 演变为与TCP 通信。所以所谓的HTTPS其实就是HTTP包裹在SSL协议外壳里。
2.Http/Https处于ISO的应用层
在ISO7层模型中,网络从下到上进行划分。
物理层——网络电缆、集线器。
数据链路层——交换机、MAC地址。
网络层——路由器、IP协议。
传输层- TCP/UDP 协议。
会话层——.
表示层——.
应用层- FTP、Telnet、SMTP、RIP、NFS、DNS。 HTTP(s) 协议。
3.什么是SSL/TLS?
SSL 相当于HTTPS。学习https的关键是SSL内容,而SSL内容中包含了一套加密方法,所以实际学习的重点是SSL中的加密方法。
3.1.SSL
SSL:(安全套接字层),位于可靠的、面向连接的网络层协议和应用层协议之间的协议层。 SSL 通过相互身份验证、确保完整性的数字签名和确保隐私的加密来提供客户端和服务器之间的安全通信。该协议由两层组成:SSL 记录协议和SSL 握手协议。
SSL 由Netscape 开发,用于保护Web 通信。当前版本是3.0。最新版本TLS 1.0是工程任务组(IETF)基于SSL 3.0协议规范开发的新协议,是SSL 3.0的后续版本。两者之间的差异非常小,可以理解为RFC中描述的SSL 3.1。
3.2.TLS
TLS:(传输层安全),用于在两个应用程序之间提供机密性和数据完整性。该协议由两层组成:TLS 记录协议和TLS 握手协议。
4.SSL 两种基本加密方式
4.1. 对称密钥加密(共享密钥加密)
如果使用共享密钥加密,还必须将密钥发送给对方。但如何安全地传输密钥呢?当密钥通过互联网传输时,窃听通信可能会将密钥落入攻击者手中,从而破坏了加密的目的。您还需要找到一种方法来安全地存储您收到的密钥。
4.2. 非对称密钥密码术(公钥密码术)-公钥密码术
客户端在向服务器发送请求之前发送通知。
服务器收到预问候后,向客户端提供一个仅包含签名、公钥和自己的私钥的请求容器。
客户端收到容器后,使用公钥打开容器,将请求字段写入容器,并再次发送给服务器。
黑客拦截了该消息,但由于没有私钥而无法解密该信息。
服务器收到信息后,用自己的私钥愉快地读取并解析客户端发送的请求。
5.HTTPS工作流程
工作流程基本上分为三个阶段。
认证服务器。浏览器内置了受信任的CA 机构列表,并存储这些CA 机构的证书。在第一阶段,如果浏览器的可信CA机构列表中存在对服务器证书进行身份验证的CA机构,并且服务器证书中的信息与网站匹配,则服务器接受该CA机构认证并颁发的服务器证书。为您提供一本书。 (您当前访问的域名)),浏览器确定服务器是可信的,并从服务器证书中检索服务器的公钥以进行进一步处理。否则,浏览器将提示用户并根据用户的选择决定是否继续。当然,您可以管理此受信任的CA 列表,添加您想要信任的CA,并删除您不信任的CA。
协商会话密钥。客户端对服务器进行认证并获得服务器的公钥后,使用该公钥与服务器进行加密通信,并协商两个会话密钥。这些会话密钥是客户端会话密钥,用于加密从客户端发送到服务器的数据。服务器会话密钥,用于加密从服务器发送到客户端的数据。假设您可以使用服务器公钥对通信进行加密,您需要协商两个对称密钥的原因是在数据传输过程中使用对称加密可以节省计算资源。它也相对安全,因为会话密钥是随机生成的,并且每次协商的结果都不同。
加密通信。现在,客户端和服务器都拥有用于此通信的会话密钥,并且所有后续发送的HTTP 数据都由会话密钥加密。这样,网络上的其他用户就很难窃取或篡改客户端和服务器之间发送的数据,保证了数据的私密性和完整性。
6. 常用加密算法
6.1. 对称加密算法
常用的算法包括:
DES(数据加密标准):数据加密标准。它速度快,适合大量数据加密的情况。
3DES(Triple DES):在DES的基础上,使用三个不同的密钥将一份数据加密三次,使其更强。
AES(Advanced Encryption Standard):高级加密标准是下一代高速、高安全级别的加密算法标准。
1. 加密端和解密端使用相同的密钥。
2、加解密速度较快,适合长期数据使用。
3、密钥传输过程不安全且容易被破解,密钥管理繁琐。
4、加密算法:DES(数据加密标准)、3DES、AES(高级加密标准,支持128、192、256、512位密钥加密)、Blowfish。
5.加密工具:openssl、gpg(pgp工具)
6.2. 非对称加密算法
RSA:一种支持可变长度密钥的公钥算法,由RSA公司发明。需要加密的文件块的长度也是可变的。
DSA(Digital Signature Algorithm):数字签名算法,标准DSS(数字签名标准)。
ECC(椭圆曲线密码术):椭圆曲线密码术。
相比RSA,ECC有很多绝对的优势,主要体现在:
对攻击有很强的抵抗力。相同的密钥长度可以成倍地提高对攻击的抵抗力。
计算量小,处理速度快。 ECC的整体速度比RSA或DSA快得多。
它占用的存储空间很小。 ECC的密钥大小和系统参数比RSA和DSA小得多,因此它需要的存储空间显着减少。当将加密算法应用于智能卡时,这一点尤其重要。
带宽要求低。这三种密码系统在加密和解密长消息时具有相同的带宽要求,但应用于短消息时ECC带宽要求要低得多。由于其对带宽的要求较低,ECC在无线网络领域具有广泛的应用潜力。
1. 每个用户都有一对加密密钥(公钥和私钥)。
2. 公钥加密、私钥加密、公钥解密。
3、公钥传输过程不安全,容易被窃取或替换。
4、由于公钥使用的密钥长度很长,因此公钥的加密速度很慢,一般不用于加密。
5、一个用户用自己的私钥加密,另一个用户用自己的公钥解密,实现数字签名功能。
6. 公钥加密的另一个功能是实现密钥交换。
7. 加密和签名算法:RSA、ELGamal。
8. 公钥签名算法:DSA。
9.加密工具:gpg、openssl
非对称加密算法的运行速度比对称加密算法慢很多,因此如果需要加密大量数据,建议使用对称加密算法来加快加密和解密速度。
对称加密算法无法实现签名,因此签名只能是非对称算法。
对称加密算法的密钥管理是一个复杂的过程,因此密钥管理直接决定其安全性。因此,如果数据量较小,可以考虑使用非对称加密算法。
在实际操作过程中,将两种优点结合起来,使用非对称加密算法来管理对称算法的密钥,然后使用对称加密算法来加密数据。它采用各类密码算法实现加密,达到高速、安全、方便密钥管理的优点。
6.3. 单向加密(哈希算法)
哈希是信息的提取,通常要小得多且长度固定。加密强度高的哈希值必须是不可逆的。这意味着无法从哈希结果推断出原始信息的任何部分。即使输入信息的一位发生变化,哈希结果也会发生显着变化。这称为雪崩效应。此外,哈希值必须是防冲突的。这意味着不会找到具有相同哈希结果的两条消息。具有这些特征的哈希结果可以用来验证信息是否被修改。
单向哈希函数通常用于生成消息摘要和密钥加密等内容。常见的包括:
1. MD5(消息摘要算法5):RSA数据安全公司开发的一种单向哈希算法,可以从相同的明文产生相同的密文。
2. SHA(安全哈希算法):可以生成160位值,用于任意长度的数据操作。
SHA-1 和MD5 的比较
SHA-1 和MD5 都源自MD4,因此它们非常相似。同样,虽然他们的优势和其他特征相似,但也存在一些差异。
1.针对强制喂食的安全性:最重要也是最重要的区别是SHA-1摘要比MD5摘要长32位。使用暴力技术,生成摘要等于给定消息摘要的消息的难度约为MD5 的2128 次操作和SHA-1 的2160 次操作。这样,SHA-1就更能抵抗暴力攻击。
2. 针对密码分析的安全性:MD5 在设计上容易受到密码分析攻击,但SHA-1 似乎不易受到此类攻击。
3.速度:在相同的硬件上SHA-1的运行速度比MD5慢。
1.特点:雪崩效应,定长输出,不可逆。
2.其作用是保证数据的完整性。
3、加密算法:MD5(标准密钥长度128位)、SHA1(标准密钥长度160位)、MD4、CRC-32
4.加密工具:md5sum、sha1sum、openssl dgst。
5. 计算特定文件的哈希值。示例:md5sum/shalsum 文件名、openssl dgst md5/-sha1
原创文章,作者:共创,如若转载,请注明出处:https://www.sudun.com/ask/94348.html