openssl加密http网站过程1
服务端在配置HTTPS服务时,加上“HTTP Strict Transport Security”配置项
我们来一起说说HTTPS中间人攻击与证书校验
http://wzlinux.blog.51cto.com/8021085/1908856
公钥和私钥
私钥签名和解密,公钥加密,验证签名
1)、Message Digest commands(信息摘要算法也可以叫单向加密算法)
openssl dgst [-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1][-out filename] /path/to/somefile
openssl dgst -sha1 -out /a.cipher /a.txt
2)、Cipher commands(对称加密)
①公钥:public key,从私钥中提取产生,可公开给所有人。
②私钥:secret key,通过工具创建生成,由使用者自己留存,必须保证其私密性。
以下为DH算法的工作原理图
以下为更一般的描述:
Alice生成随机自然数a、随机大质数p和原根g;
Alice计算,计算结果为A,并把p,g,A发送给Bob;
Bob生成随机自然数b,根据Alice发过来的p,g,计算,计算结果为B;
Bob把B发送给Alice,并计算,计算结果为K;而Alice计算,计算结果也为K;
Alice和Bob以K值作为密钥进行通信。
注意:在整个密钥协商过程中,p、g、和的值是可以公开给攻击者的,而a,b,K值是不公开的。但即使攻击者知道、p和g的值,也无法计算出a,同理,攻击者无法通过、g和g的值计算出b,更不用说计算出K值(最终Alice和Bob协商好的密钥)了。这个问题就是著名的离散对数问题。
openssl enc -base64 -a -salt -in /etc/passwd -out /passwd.cipher
openssl enc -d -base64 -a -salt -in /passwd.cipher -out /passwd
3)、证书(x509格式)
openssl中有如下后缀名的文件
key格式:私有的密钥
csr格式:证书签名请求(证书请求文件),含有公钥信息,certificate signing request的缩写
crt格式:证书文件,certificate的缩写
crl格式:证书吊销列表,Certificate Revocation List的缩写
pem格式:用于导出,导入证书时候的证书的格式,有证书开头,结尾的格式
PKI:Public Key Infrastructure,是指用公钥概念和技术来实施和提供安全服务的具有普适性的安全基础设施。
一个完整的PKI系统必须具有注册机构(RC)、权威认证机构(CA)、数字证书库、密钥备份及恢复系统、证书吊销系统(CRL)、端实体(API即应用接口)等基本构成部分。
创建目录,目录放置私钥文件、请求文件、证书文件
顺序:私钥-->公钥 请求文件-->核实 发放证书
私钥文件产生:#openssl genrsa 1024(钥匙长度)>私钥文件名
请求文件产生:#openssl req -new -key 私钥文件 -out 请求文件
证书产生:openssl ca -in 请求文件 -out 证书
加密和发送过程:
1、当发送方Alice有数据要发送给Bob时,为了确保数据能够完整地发送至Bob,首先需要使用单向加密算法去计算出这段要发送的数据的特征码;
2、为了便于Bob收到数据之后可验证身份,发送方Alice使用本地私钥加密这段特征码,并将加密后的特征码附加在数据后面;
3、为了确保通信过程是保密的,发送方Alice生成一个临时的对称密钥,并使用这个对称密钥加密整段数据;
4、发送方Alice获取Bob的公钥,再使用Bob的公钥加密来加密刚才生成的临时的对称密钥,并把加密后的对称密钥附加在整段加密数据后面,而后发送给Bob。
接收和解密过程:
接收和解密的过程和解密发送的过程刚好相反。
1、接收方Bob收到数据之后,先使用自己的私钥去解密这段加密过的对称密钥(由Alice生成);
2、接收方Bob用解密得到的对称密钥去解密整段(发送方用对称密钥)加密的内容;此时接收方Bob得到Alice发送给自己的数据和加密后的特征码;
3、接收方Bob用对方Alice的公钥去解密这段特征码,如果能解密出来,则发送方的身份得到验证(没错,就是Alice发送的);
4、接收方Bob再用同样的单向加密算法去计算这段数据的特征码,与解密得到的特征码进行比较,如果相同,则数据完整性得到验证,否则说明数据有可能被篡改或被破坏。
本文转自 liqius 51CTO博客,原文链接:http://blog.51cto.com/szgb17/1942308,如需转载请自行联系原作者
openssl加密http网站过程1相关推荐
- 修改MD5加密 提高网站安全
发表文章 修改MD5加密 提高网站安全 2006-08-28 16:23:55 大 中 小 特别说明:此种改变只能用于在刚开始建站时才可,如果你中途改变的话就会出现问题. 也许提到MD5时大家都很熟, ...
- php加密 dll扩展,PHP的openssl加密扩展使用小结(推荐)
引言 互联网的发展史上,安全性一直是开发者们相当重视的一个主题,为了实现数据传输安全,我们需要保证:数据来源(非伪造请求).数据完整性(没有被人修改过).数据私密性(密文,无法直接读取)等.虽然现在已 ...
- 使用OpenSSL加密,使用Java解密,使用OpenSSL RSA公钥
抽象 在2017年,我撰写了一个由三部分组成的系列文章,内容涉及选择最佳的哈希和加密算法. 在对该系列进行研究时,我学到了很多有关哈希和加密的知识. 我学到的最重要的事情是,尽管我必须对如何使用最安全 ...
- windows下OpenSSL加密证书安装步骤与使用方法
OpenSSL加密证书一般用于签名认证,含私钥和公钥.在Linux系统中,OpenSSL一般是已经安装好了,可以直接使用.而在Windows系统中,是需要安装使用的. 最近在使用支付平台时,用到了Op ...
- Linux运维 第三阶段 (一) 网络配置及openssl加密
Linux运维 第三阶段 (一) 网络配置及openssl加密 主机接入网络:IP,netmask,gateway,hostname,DNS1,DNS2,DNS3,route,dhcp(dynamic ...
- 使用 OpenSSL 加密和解密文件
OpenSSL 是一个实用工具,它可以确保其他人员无法打开你的敏感和机密消息. 加密是对消息进行编码的一种方法,这样可以保护消息的内容免遭他人窥视.一般有两种类型: 密钥加密或对称加密 公钥加密或非对 ...
- python openssl 证书加解密过程感觉是这样
python openssl 证书加解密过程感觉是这样 第一步 生成2048 bit的PEM格式的RSA Key:Key.pem openssl genrsa -out Key.pem -f4 204 ...
- 如何使用HTTPS加密保护网站?
加密 Web 内容并不是什么新鲜事:自发布通过SSL/TLS协议来加密 Web 内容的规范以来,已经过去了近 20 年.然而,近年来,运行安全的HTTPS加密 Web 服务器已经从一种选择变成了一种安 ...
- asp+html加密最终版,ASP后门之终极伪装+在线琳法ASP加密解密网站安全 -电脑资料...
里面的原理是将换行/回车符替换成"琳"字,至于那个"输入一个-95~+95之间的数"是为了找一个手动的随机数,在解 密的过程也可以用到, 先试用了一下: 我在C ...
最新文章
- idea 启动时报 error:java 无效的源发行版
- 测量左右磁极的原片磁铁
- Redis删除副本节点
- HDU 4535 吉哥系列故事——礼尚往来
- spring-data-redis相关api
- Asp.net的HTTP请求处理过程
- Lambda学习笔记
- MongoTemplate 关于 insert 和 save 函数的区别
- 阅读《程序员修炼之道-从小工到专家》阅读笔记02
- vue 机场引导_vue2旅客引导平台
- 如何解决MySQL闪退
- 《传统相声开场小唱》
- 求斐波那契数列的三种方法
- 寒假ACM假期总结 (7)
- 哪个PDF软件好用?这几款你们知道吗?
- DHCP地址池耗尽攻击
- YouTube Video Download
- 腾讯云数据库产品介绍第四章-
- yiii2生成验证码以及刷新验证码
- 转载:自动化测试金字塔与反模式
热门文章
- MVC3.0 Razor实现Ajax数据分页
- 《ASCE1885的信息安全》の使用Crypto++的MD5算法对字符串进行哈希
- 26Java中的多态
- 如何将gitub的项目在eclipse中运行
- 新建虚拟机update时出现不能得到锁问题
- 用shp制作geoJson格式地图数据(shp convert to geoJson)
- c语言xml字符串,C语言的XML解析器
- android fastjson漏洞_【漏洞预警】Fastjson 远程代码执行漏洞(暂无PoC)
- php mysql获取新添加记录的id值_PHP获取MySql新增记录ID值的方法
- 添加右键菜单_添加“复制路径”选项到右键菜单