基础密码学与https配置

来源:互联网 发布:淘宝的聚划算是正品吗 编辑:程序博客网 时间:2024/06/05 18:18

开始之前,我们先模拟三个人物,三个机构
三个人物分别是张先生,杨小姐,hacker
三个术语 CA机构,数字证书,数字签名

互联网有两种加密方式
1、对称加密数据
张先生给杨小姐发送一段数据
使用对称加密
即张先生发送的数据后经加密算法加密成一段密文,杨小姐接收数据后用相同的密码进行解密,
这时加密的密码和解密的密码是一致的,嗯,这种加密方式方便简单,数据传输时相当于包了一层隐藏膜,无法直接看到真实信息,
但是,我们的hacker捕获了这串密文,并用相同的密码对其进行解密,这时候真实的信息就暴露出来了,此时hacker再用相同的密码加密密文发送给杨小姐,会引发信息传递的缺失或扭曲,极其不安全

2、非对称加密
这就涉及到公钥和私钥,
公钥可以解密私钥加密的数据,私钥可以解密公钥加密的数据
但是,公钥不能解密公钥,私钥不能解密私钥
杨小姐在接收数据前,先给张先生发送一个公钥,张先生在接收公钥后,用公钥加密数据发送给杨小姐
杨小姐再用私钥解密数据,这是就能获取到真实的信息
如果hacker获取到了公钥,那么他就不能用杨小姐的公钥去解密张先生发送的信息
但是,hacker很聪明,啊不,应该说狡诈
当hacker拦截到杨小姐给的公钥后,hacker自己生成了一个公钥发送给张先生
张先生误以为他接收到的公钥是杨小姐发送给他的
所以张先生就用hacker的公钥发送信息(密文)给杨小姐
如果杨小姐直接接收到了张先生的密文,将无法用她的私钥解开密文,造成信息的缺失
或者杨小姐接收到了hacker给她的用杨公钥加密的信息,也会造成信息的扭曲

这怎么办呢?
此时就要由第三方权威作为担保人,来证明公钥的合法性
这就是CA(Certificate Authority证书授权中心
杨小姐在发送数据前,先向CA发送自己的公钥并申请CA担保,经过层层认证,例如有没有黑历史什么的
CA会回馈给杨小姐一个数字证书,这个数字证书是CA将杨小姐的公钥经过包装、标记和加密而生成的
这时,杨小姐就会发这个数字证书发送给张先生,同样,hacker也会拦截到这个证书并向张先生发送hacker的数字证书,这不是和上一个情形一样吗?别急
张先生接收到数字证书后,会向CA发送他接收到的数字证书是不是属于杨小姐的,如果属于杨小姐,张先生才使用这个数字证书加密数据
但是,你有张良计,我有过墙梯
hacker也会截取到杨小姐的数字证书,并拦截张先生加密后的密文,再自己发送数据给杨小姐
为了解决这个问题
杨先生在发送密文前,会向CA发送自己的私钥,CA同样会回馈张先生一个密码,这个密码称之为数字签名
张先生会先把数字签名和密文发送给杨小姐,
杨小姐收到后会向CA获取数字签名所属,
如果数字签名属于张先生,那么这个密文的可信度就会大大增加了
虽然说hacker也可以做移花接木的同坐,但是hacker在获取数字证书和数字签名的难度会大大增加,在一定程度上保证了信息的加密

PS:说起来好长,其实这只是毫秒级的东西,并且所有的操作都是由计算机完成的

信息的安全不是绝对的,没有说有不能解密的信息,毕竟,你用锁把信息锁上了,在用个保险柜把他进一步锁上,还是会有开锁的钥匙,我们只能保证我们的信息尽可能加密,用更加优秀的加密技术提高信息的安全性,给hacker添堵,就算最终信息泄露了,也能恶心一下hacker不是吗?


为了配置https连接
我们在开发网站时,要先给自己的网站配置数字证书
java自带一个工具,具体代码如下
keytool -genkey -alias tomcat -keyalg RSA
cmd运行即可

名词解释
keytool -- java自带的工具包
genkey -- 产生键值对
alias tomca t-- 取个别名
keyalg RSA -- 采用RSA算法加密

接下来配置tomcat,是tomcat能使用主机配的数字证书
地址如下:
E:\JavaWebTool\apache-tomcat-8.0.46-windows-x64\apache-tomcat-8.0.46\conf\service.xml
代码如下
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" keystoreFile = "数字证书文件路径" keystorePass = "密码"/>

配置成功后重启apache
进入浏览器通过相应的端口打开localhost
记住一定要是https协议
能打开就成功了
PS:一般浏览器会提示数字证书有问题,因为你的数字证书并没有得到CA的承认,但如果强行访问,还是可以的







原创粉丝点击