java-信息安全(七)-基于非对称加密,对称加密等理解HTTPS

概述

java-信息安全(一)-BASE64,MD5,SHA,HMAC

java-信息安全(二)-对称加密算法DES,3DES,AES,Blowfish,RC2,RC4

java-信息安全(四)-数据签名、数字证书

java-信息安全(五)-非对称加密算法RSA

如果想要理解好https,请尽量了解好以上信息等。

参看文章:

http://www.ruanyifeng.com/blog/2014/09/illustration-ssl.html

https://cattail.me/tech/2015/11/30/how-https-works.html

http://www.cnblogs.com/binyue/p/4500578.html

基本概念

  HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。

  Https是一种基于SSL/TLS的Http协议,所有的http数据都是在SSL/TLS协议封装之上传输的。

  Https协议在Http协议的基础上,添加了SSL/TLS握手以及数据加密传输,也属于应用层协议。

  ——>HTTP协议运行在TCP之上,所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份。

  ——>HTTPS是运行在SSL/TLS之上的HTTP协议,SSL/TLS运行在TCP之上。所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。

  TLS/SSL中使用了非对称加密,对称加密以及HASH算法

图例【基于RSA模型】

第一步

  浏览器给出协议版本号、一个客户端生成的随机数(Client random),以及客户端支持的一套加密规则发送给网站服务器。

第二步

  服务器从中选出一组加密算法与HASH算法,并将自己的身份信息以证书的形式发回给浏览器、以及一个服务器生成的随机数(Server random)。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息。

第三步

  浏览器确认数字证书有效,然后生成一个新的随机数(Premaster secret),并使用数字证书中的公钥,加密这个随机数,发给服务器。

  获得网站证书之后浏览器要做以下工作:

    a) 验证证书的合法性(颁发证书的机构是否合法,证书中包含的网站地址是否与正在访问的地址一致等),如果证书受信任,则浏览器栏里面会显示一个小锁头,否则会给出证书不受信的提示。

    b) 如果证书受信任,或者是用户接受了不受信的证书,浏览器会生成一串随机数的密码,并用证书中提供的公钥加密。

    c) 使用约定好的HASH计算握手消息,并使用生成的随机数对消息进行加密,最后将之前生成的所有信息发送给网站。

第四步

  服务器使用自己的私钥,获取浏览器发来的随机数(即Premaster secret)。

  网站接收浏览器发来的数据之后要做以下的操作:

    a) 使用自己的私钥将信息解密取出密码,使用密码解密浏览器发来的握手消息,并验证HASH是否与浏览器发来的一致。

    b) 使用密码加密一段握手消息,发送给浏览器。

第五步

  浏览器和服务器根据约定的加密方法,使用前面的三个随机数,生成"对话密钥"(session key),用来加密接下来的整个对话过程。

HTTPS一般使用的加密与HASH算法

  非对称加密算法:RSA,DSA/DSS

  对称加密算法:AES,RC4,3DES

  HASH算法:MD5,SHA1,SHA256

时间: 2024-10-13 02:29:31

java-信息安全(七)-基于非对称加密,对称加密等理解HTTPS的相关文章

单向加密 对称加密 非对称加密

单向加密: 单向加密又称为不可逆加密算法,在加密过程中不使用密钥,明文由系统加密处理成密文,密文无法解密.一般适合于验证,在验证过程中,重新输入明文,并经过同样的加密算法处理,得到相同的密文并被系统重新认证.广泛使用于口令加密. 一:base64 常见于邮件.http加密,截取http信息,你就会发现登录操作的用户名.密码字段通过BASE64加密的. 主要就是BASE64Encoder.BASE64Decoder两个类 BASE加密后产生的字节位数是8的倍数,如果不够位数以=符号填充 二:md5

Asp.Net 常用工具类之加密——对称加密DES算法(2)

又到周末,下午博客园看了两篇文章,关于老跳和老赵的程序员生涯,不禁感叹漫漫程序路,何去何从兮! 转眼毕业的第三个年头,去过苏州,跑过上海,从一开始的凌云壮志,去年背起行囊默默回到了长沙准备买房,也想有个家(毕竟年级不小了),有盼头的工作前景. 看到老赵和老跳两位前辈的故事,真实且现实,同时也有一丢丢的小迷茫,敢问路在何方! 感叹一会儿,生命不止,Code不止,继续入坑! 昨天分享了一下非对称加密RSA算法,今天给朋友们分享一下对称加密DES算法案例. 加解密过程: 1.生成加密密钥key,密码越

SpringCloud-分布式配置中心【加密-对称加密】

??前面我们介绍了SpringCloud的分布式配置中心,我们将项目中的配置信息保存在git或者码云的仓库中,但是这样一些敏感信息就暴露出来了,比如数据库连接的账号密码等信息,这时我们最好能够对这些信息进行加密处理. 案例代码:https://github.com/q279583842q/springcloud-e-book 对称加密 一.对称加密介绍 ??对称加密是最快速.最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key).

https 结合使用 对称加密和非对称加密

(一)对称加密(Symmetric Cryptography) ---共享密钥加密 对称加密是最快速.最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key),这种方法在密码学中叫做对称加密算法.对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中.对称加密通常使用的是相对较小的密钥,一般小于256 bit.因为密钥越大,加密越强,但加密与解密的过程越慢.如果你只用1 bit来做这个密钥,那黑客们可以先试着用

[svc]对称加密/非对称加密细枝末节-如何做到数据传输的authentication/data integrity/confidentiality(私密)

对称/非对称/混合加密的冷知识 数据在互联网上传输,要考虑安全性. 讲到安全,要从三方面考虑: 1.authentication 每一个IP包的认证,确保合法源的数据 2.data integrity 验证数据完整性,保证在传输过程中没有被人为改动 3.confidentiality (私密性)数据包的加密 下面谈谈如何对数据加密. 于是有了非对称加密 对称加密 对称加密算法---使用一把密匙来对信息提供安全的保护.只有一个密匙,即用来加密,也用来解密 特点: - 1.速度快 - 2.密文紧凑

非对称加密和对称加密的区别

在了解对称加密和非对称加密的区别之前我们先了解一下它们的定义: 对称加密(Symmetric Cryptography),又称私钥加密 对称加密是最快速.最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key),这种方法在密码学中叫做对称加密算法.对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中.对称加密通常使用的是相对较小的密钥,一般小于256 bit.因为密钥越大,加密越强,但加密与解密的过程越慢.如

【安全加密技术】--对称加密

转载请注明出处:http://blog.csdn.net/sk719887916/article/details/46822663 上篇了解了<非对称加密>后 今天我来继续了解下加密技术中对称加密. 对称加密 对称加密是最传统的加密方式,比上非对称加密,缺少安全性,但是它依旧是用的比较多的加密方法. 对称加密采用单密钥加密方式,不论是加密还是解密都是用同一个密钥,即"一把钥匙开一把锁".对称加密的好处在于操作简单.管理方便.速度快.它的缺点在于密钥在 网络传输中容易被窃听,

对称加密DES和TripleDES

一.  对称加密 对称加密,是一种比较传统的加密方式,其加密运算.解密运算使用的是同样的密钥,信息的发送者和信息的接收者在进行信息的传输与处理时,必须共同持有该密码(称为对称密码).因此,通信双方都必须获得这把钥匙,并保持钥匙的秘密. 单钥密码系统的安全性依赖于以下两个因素: 第一.加密算法必须是足够强的,仅仅基于密文本身去解密信息在实践上是不可能的. 第二.加密方法的安全性依赖于密钥的秘密性,而不是算法的秘密性,因此,我们没有必要确保算法的秘密性(事实上,现实中使用的很多单钥密码系统的算法都是

对称加密与非对称加密

(一)对称加密(Symmetric Cryptography) 对称加密是最快速.最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key).对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中. 对称加密通常使用的是相对较小的密钥,一般小于256 bit.因为密钥越大,加密越强,但加密与解密的过程越慢.如果你只用1 bit来做这个密钥,那黑客们可以先试着用0来解密,不行的话就再用1解:但如果你的密钥有1 MB