| 关键词: 加密 密钥 算法 公钥 对称 协议 数据 服务器 安全 SSL |
1.Https是什么 https是基于http协议的一个扩展,与SSL(安全套接层)组合使用的HTTP被称为HTTPS(HTTP Secure,超文本传输安全协议),https盛行的原因是什么呢?当然是因为安全原因啦,http是不加密的,HTTP缺点: 1.通信使用明文不对数据进行加密(内容容易被窃听); 2.不验证通信方身份(容易伪装); 3.无法确定报文完整性(内容易被篡改); HTTPS 并非是应用层的一种新协议。只是HTTP通信接口部分用 SSL(SecureSocket Layer)和 TLS(Transport Layer Security)协议代替而已; 通常,HTTP 直接和 TCP 通信。当使用 SSL 时,则演变成先和 SSL 通信,再由 SSL和 TCP 通信了。简言之,所谓 HTTPS,其实就是身披 SSL 协议这层外壳的HTTP; ![]() 2.Http/Https处于ISO的应用层 ISO7层模型,网络由下往上分为: 物理层-- 网线,集线器hub; 数据链路层-- 交换机,mac地址; 网络层-- 路由器,IP协议; 传输层-- TCP/UDP协议; 会话层-- … 表示层-- … 应用层-- FTP、Telnet、SMTP、RIP、NFS、DNS。 HTTP(s)协议; 3.SSL/TLS是什么? SSL就是Https中的s,学习https的关键就在于SSL的内容,而ssl的内容又包含一系列的加密方法的内容,所以实际上学习的重点其实是SSL下面的加密方法; 3.1.SSL SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议; SSL是Netscape开发的专门用户保护Web通讯的,目前版本为3.0。最新版本的TLS 1.0是IETF(工程任务组)制定的一种新的协议,它建立在SSL 3.0协议规范之上,是SSL 3.0的后续版本。两者差别极小,可以理解为SSL 3.1,它是写入了RFC的; 3.2.TLS TLS:(Transport Layer Security,传输层安全协议),用于两个应用程序之间提供保密性和数据完整性。该协议由两层组成:TLS记录协议和TLS握手协议; 4.SSL俩种基本的加密方法 4.1.对称密钥加密(共享密钥加密) 以共享密钥方式加密时必须将密钥也发给对方。可究竟怎样才能安全地转交?在互联网上转发密钥时,如果通信被监听那么密钥就可会落入攻击者之手,同时也就失去了加密的意义。另外还得设法安全地保管接收到的密钥。 4.2.非对称密钥加密(公开密钥加密) - Public-key cryptography Client向Server发送请求前的通知; Server收到前置招呼后,向Client提供一个带有签名,有公钥,并且只有自己有私钥的请求容器; Client收到容器后用公钥打开,然后往容器内写入请求字段,再次发送给Server; Hacker拦截到消息,但是没有私钥,无法破解信息; Server收到信息,用自己私钥开开心心的阅读解析Client发来的请求; 5.Https的工作流程 ![]() 可以看到工作流程,基本分为三个阶段: 认证服务器。浏览器内置一个受信任的CA机构列表,并保存了这些CA机构的证书。第一阶段服务器会提供经CA机构认证颁发的服务器证书,如果认证该服务器证书的CA机构,存在于浏览器的受信任CA机构列表中,并且服务器证书中的信息与当前正在访问的网站(域名等)一致,那么浏览器就认为服务端是可信的,并从服务器证书中取得服务器公钥,用于后续流程。否则,浏览器将提示用户,根据用户的选择,决定是否继续。当然,我们可以管理这个受信任CA机构列表,添加我们想要信任的CA机构,或者移除我们不信任的CA机构。 协商会话密钥。客户端在认证完服务器,获得服务器的公钥之后,利用该公钥与服务器进行加密通信,协商出两个会话密钥,分别是用于加密客户端往服务端发送数据的客户端会话密钥,用于加密服务端往客户端发送数据的服务端会话密钥。在已有服务器公钥,可以加密通讯的前提下,还要协商两个对称密钥的原因,是因为非对称加密相对复杂度更高,在数据传输过程中,使用对称加密,可以节省计算资源。另外,会话密钥是随机生成,每次协商都会有不一样的结果,所以安全性也比较高。 加密通讯。此时客户端服务器双方都有了本次通讯的会话密钥,之后传输的所有Http数据,都通过会话密钥加密。这样网路上的其它用户,将很难窃取和篡改客户端和服务端之间传输的数据,从而保证了数据的私密性和完整性。 6.常见加密算法 6.1.对称加密算法 常用的算法包括: DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合。 3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。 AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高; 1、加密方和解密方使用同一个密钥。 2、加密解密的速度比较快,适合数据比较长时的使用。 3、密钥传输的过程不安全,且容易被破解,密钥管理也比较麻烦。 4、加密算法:DES(Data Encryption Standard)、3DES、AES(Advanced Encryption Standard,支持128、192、256、512位密钥的加密)、Blowfish。 5、加密工具:openssl、gpg(pgp工具) 6.2.非对称加密算法 RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的; DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准); ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学。 ECC和RSA相比,在许多方面都有对绝对的优势,主要体现在以下方面: 抗攻击性强。相同的密钥长度,其抗攻击性要强很多倍。 计算量小,处理速度快。ECC总的速度比RSA、DSA要快得多。 存储空间占用小。ECC的密钥尺寸和系统参数与RSA、DSA相比要小得多,意味着它所占的存贮空间要小得多。这对于加密算法在IC卡上的应用具有特别重要的意义。 带宽要求低。当对长消息进行加解密时,三类密码系统有相同的带宽要求,但应用于短消息时ECC带宽要求却低得多。带宽要求低使ECC在无线网络领域具有广泛的应用前景。 1、每个用户拥用一对密钥加密:公钥和私钥。 2、公钥加密,私钥解密;私钥加密,公钥解密。 3、公钥传输的过程不安全,易被窃取和替换。 4、由于公钥使用的密钥长度非常长,所以公钥加密速度非常慢,一般不使用其去加密。 5、某一个用户用其私钥加密,其他用户用其公钥解密,实现数字签名的作用。 6、公钥加密的另一个作用是实现密钥交换。 7、加密和签名算法:RSA、ELGamal。 8、公钥签名算法:DSA。 9、加密工具:gpg、openssl 由于非对称加密算法的运行速度比对称加密算法的速度慢很多,当我们需要加密大量的数据时,建议采用对称加密算法,提高加解密速度。 对称加密算法不能实现签名,因此签名只能非对称算法。 由于对称加密算法的密钥管理是一个复杂的过程,密钥的管理直接决定着他的安全性,因此当数据量很小时,我们可以考虑采用非对称加密算法。 在实际的操作过程中,我们通常采用的方式是:采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据,这样我们就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理密钥的优点。 6.3.单向加密(散列算法) 散列是信息的提炼,通常其长度要比信息小得多,且为一个固定长度。加密性强的散列一定是不可逆的,这就意味着通过散列结果,无法推出任何部分的原始信息。任何输入信息的变化,哪怕仅一位,都将导致散列结果的明显变化,这称之为雪崩效应。散列还应该是防冲突的,即找不出具有相同散列结果的两条信息。具有这些特性的散列结果就可以用于验证信息是否被修改。 单向散列函数一般用于产生消息摘要,密钥加密等,常见的有: 1、MD5(Message Digest Algorithm 5):是RSA数据安全公司开发的一种单向散列算法,非可逆,相同的明文产生相同的密文。 2、SHA(Secure Hash Algorithm):可以对任意长度的数据运算生成一个160位的数值; SHA-1与MD5的比较 因为二者均由MD4导出,SHA-1和MD5彼此很相似。相应的,他们的强度和其他特性也是相似,但还有以下几点不同: 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、计算某个文件的hash值,例如:md5sum/shalsum FileName,openssl dgst –md5/-sha1 ![]() |
| 本文出处: https://www.toutiao.com/a6754978974213865991/ |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|