加密解密、Openssl、自建CA
一、三种加密方式
1.对称加密
工作机制:需要对加密和解密使用相同密钥的加密算法。密钥是控制加密及解密过程的指令。算法是一组规则,规定如何进行加密和解密。将原文分割成固定大小的数据块,对这些进行加密,前后块可能还有关联。
优点和使用范围:对称密码技术进行安全通信前需要以安全方式进行密钥交换,且它的规模复杂对称密码技术的优点在于效率高,算法简单,系统开销小,适合加密大量数据。对称密钥算法具有加密处理简单,加解密速度快,密钥较短,发展历史悠久等优点。
缺点:加密的安全性不仅取决于加密算法本身,密钥管理的安全性更是重要。因为加密和解密都使用同一个密钥,如何把密钥安全地传递到解密者手上就成了必须要解决的问题。
算法:DES(56bits),3DES, AES(128bits), Blowfish,Twofish, IDEA, RC6, CAST5, Serpent
`
2.公钥加密(非对称加密)(解决了对称加密需要传递秘钥的缺点)
工作机制:非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。
优点和使用范围:非对称加密体系不要求通信双方事先传递密钥或有任何约定就能完成保密通信,并且密钥管理方便,可实现防止假冒和抵赖,因此,更适合网络通信中的保密通信要求。
缺点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得非对称加密算法比对称加密算法慢三个数量级(1000)。
算法:RSA, EIGamal, DSA
3.单向加密(hash加密)
工作机制:不是用来加密数据的,是用来实现抽取数据摘要的技术。数据摘要是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash加密函数对消息进行作用而产生。如果消息在途中改变了,则接收者通过对收到消息的新产生的摘要与原摘要比较,就可知道消息是否被改变了。因此消息摘要保证了消息的完整性。 消息摘要采用单向Hash 函数将需加密的明文"摘要"成一串128bit的密文,这一串密文亦称为数字指纹(Finger Print),它有固定的长度,且不同的明文摘要成密文,其结果总是不同的,而同样的明文其摘要必定一致。这样这串摘要便可成为验证明文是否是"真身"的"指纹"了。
优点和使用范围:HASH函数的抗冲突性使得如果一段明文稍有变化,哪怕只更改该段落的一个字母,通过哈希算法作用后都将产生不同的值。而HASH算法的单向性使得要找到哈希值相同的两个不同的输入消息,在计算上是不可能的。所以数据的哈希值,即消息摘要,可以检验数据的完整性。
算法:MD5,SHA1,SHA512,CRC-32
二、加密(保证私密性、身份验证、数据完整性)
1.生成一段数据;
2.使用单向加密算法,抽取数据的特征码;(保证完整性)
3.使用私钥加密特征码,然后附加在数据后面;(保证身份认证)
3.使用对称加密算法,加密数据和私钥加密的特征码;(保证加密速度)
4.使用对方公钥加密对称加密的密码;(保证私密性)
三、SSL
SSL 是一个缩写,代表的是 Secure Sockets Layer。它是支持在 Internet 上进行安全通信的标准,并且将数据密码术集成到了协议之中。数据在离开您的计算机之前就已经被加密,然后只有到
达它预定的目标后才被解密。证书和密码学算法支持了这一切的运转,使用 OpenSSL,您将有机会切身体会它们。
理论上,如果加密的数据在到达目标之前被截取或窃听,那些数据是不可能被破解的。不过,由于计算机的变化一年比一年快,而且密码翻译方法有了新的发展,因此,SSL 中使用的加密协议被破解的可能性也在增大。可以将 SSL 和安全连接用于 Internet 上任何类型的协议,不管是 HTTP、POP3,还是 FTP。还可以用 SSL 来保护 Telnet 会话。虽然可以用 SSL 保护任何连接,但是不必对每一类连接都使用 SSL。如果连接传输敏感信息,则应使用 SSL。
四、Openssl
openSSL 不仅仅是 SSL。它可以实现消息摘要、文件的加密和解密、数字证书、数字
签名和随机数字。
OpenSSL是套开放源代码的SSL套件,其函式库是以C语言所写成,实作了基本的传输层资料加密功能。包含以下三部分:
1.libcryto:通用功能的加密库,众多软件要想实现加密机制直接可以调用这个库,而且调用机制也特别简单;
2.libssl:用于实现TSL/SSL的功能;(更多TSL/SSL机制可参考)
3.openssl:多功能命令工具。生成秘钥,创建数字证书,手动加密解密数据
五、数字证书
(公钥加密的重要应用)让第三方机构能够用一种比较可靠的手段,将申请者的公钥安全的分发出去的一种机制。
证书格式:x509、pkcs
x509格式:
公钥和有效期限:
持有者的个人合法身份信息:(主机名)
证书的使用方式:
CA的信息:
CA的数字签名:
补充:
CA,身份认证机构 (Certificate Authority)
数字签名,即私钥加密,公钥解密。若使用公开的公能够解密,即可确定密钥串的主人,用以完成身份认证。
通过证书可以向CA查看此公钥是否被CA认可,即为,合法公钥。
谁给CA发证:自签署证书。CA的证书内置于操作系统。
六、openssl的基本应用
1.对称加密:
算法:DES 3DES AES Blowfish Twofish RCG CAST5
工具:gpg , openssl enc
加密#openssl enc -des3 -a -salt -in /path/to/input_file -out /path/to/cipher_file 解密#openssl enc -d -des3 -a -salt -in /path/to/cipher_file -out /path/to/clear_file
例:
2.单向加密:
特性:One-Way , Collision-free
算法:md5:128bits
sha1:160bits
工具:sha1sum ,md5sum , cksum , openssl dgst
#openssl dgst [-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1] [-out filename]
例:
七、使用openssl自建CA
注:把openssl当CA使用,只能用于测试,功能小而单一;如果真的需要更大范围的CA应用,
需要使用基于openssl的openCA.
1.服务端自签CA(用openssl实现私有CA)
a.查看配置文件
vim /etc/pki/tls/openssl.conf
与ca相关的配置
b.生成秘钥对:(公钥是从私钥中按某种格式提取出来的)
cd /etc/pki/CA openssl genrsa -out private/cakey.pem 2048
为避免此种情况发生,可使用子shell
查看公钥:(man rsa)(非必要的步骤)
c.生成自签证书:(man req)
生成几个配置文件中需要的文件(这步CentOS6,可省)
2.客户端实现证书申请(另外一台主机)
私钥放服务器的配置文件中(这里以httpd为例)
生成证书请求
、
请请求传给CA签署
3.服务器端签署证书
传递给客户端
4.客户端查看证书
5.服务器端吊销证书(一般用不着)
转载于:https://blog.51cto.com/hoolee/1384763
加密解密、Openssl、自建CA相关推荐
- openssl 自建ca,颁发客户端证书
openssl 自建ca,颁发客户端证书 概念理解 数字证书: 数字证书就是互联网通讯中标志通讯各方身份信息的一串数字,提供了一种在Internet上验证通信实体身份的方式,数字证书不是数字身份证,而 ...
- 互联网协议 — TLS — 使用 OpenSSL 自建 CA 中心
目录 文章目录 目录 使用 OpenSSL 自建 CA 并签发证书 示例 Step 1. 搭建 CA 中心 Step 2. 生成 CA 的 RSA 私钥 Step 3. 生成 CA 的公钥(CA 证书 ...
- 基于OpenSSL自建CA和颁发SSL证书
关于SSL/TLS介绍见文章 SSL/TLS原理详解. 关于证书授权中心CA以及数字证书等概念,请移步 OpenSSL 与 SSL 数字证书概念贴 . openssl是一个开源程序的套件.这个套件有三 ...
- 学习笔记之加密解密,PKI,CA
1.加密解密 背景:在网络通信中为了达到安全需要,比如通信保密性,保证信息完整性和可用性,这就需要一些技术,下面就来介绍相关的技术 技术包括:加密和解密 服务(用于抵御***的服务,也即是为了上述安全 ...
- OpenSSL自建CA和签发二级CA及颁发SSL证书
自己签发CA证书再签发服务器证书的场景非常简单.把根CA证书导入到浏览器后,就可以信任由这个根CA直接签发的服务器证书. 但是实际上网站使用的证书肯定都不是由根CA直接签发的,比如 像百度这种,网站使 ...
- 利用openssl自建ca并且使apache2用自建的ca证书进行https链接(自用,,,
参考了信安实践--自建CA证书搭建https服务器 - LiBaoquan - 博客园 (cnblogs.com) 加一些关于apache的命令: sudo systemctl start apach ...
- openssl 自建CA签发证书 网站https的ssl通信
<<COMMENT X509 文件扩展名 首先我们要理解文件的扩展名代表什么.DER.PEM.CRT和CER这些扩展名经常令人困惑. 很多人错误地认为这些扩展名可以互相代替.尽管的确有时候 ...
- linux c ecb 加密解密,OpenSSL对数组加密解密的完整实现代码
本例是用C实现的对一个数组进行加密,加密到第二个数组,然后解密到另一个数组的完整实现代码. #include #include #include "openssl/evp.h" # ...
- Openssl私建CA
构建私有CA: 在确定配置为CA的服务上生成一个自签证书,并为CA提供所需要的目录及文件即可: 步骤: (1) 生成私钥: [root@centos7 ~]# (umask 077; ope ...
最新文章
- 基于自适应策略转移的深度强化学习
- flutter-webview的坑用到第三方插件的
- 机器学习的数学基础(1)--Dirichlet分布
- Dell最近的几款显示器看上去还不错的样子
- extjs插件开发上传下载文件简单案例
- cuba 平台_CUBA 7的新功能
- WinForm始终置顶并获取焦点
- 即使该链接出现到C++,用户又有多少的点击呢?由此可见
- mysql 报错1042_mysql安装中 starting sever报错1042怎么破啊??求助大佬
- Javascript 判断 object 的特定类
- UltraEdit汇编语言高亮
- Android之登录那点事
- ELK在广告系统监控中的应用 及 Elasticsearch简介
- mysql判断字符串长度 超出用省略号_divcss超出长度文字自动隐藏或用省略号表示...
- jadx工具介绍及使用
- 【RPA自动化|提升办公效率】无需代码的傻瓜式爬虫
- 十点读书:如果你不想工作了,就去这四个地方走走
- 四书《孟子》《论语》《中庸》《大学》五经《风》《雅》《颂》全文
- 八、jQuery的QQ音乐播放器
- [论文解读]Explaining Knowledge Distillation by Quantifying the Knowledge
热门文章
- python拆分excel的sheet为单文件_WPS 2019 多个sheet表拆分成独立的excel文件
- c++中运算符重载方式中你易遗漏的小细节
- GC通常的概念和算法
- mapper.xml报异常The content of elhe content of element type mapper
- Leaflet中使用Leaflet-echarts3插件实现航班航线动态模拟
- el-table中设置max-height属性使其固定表头
- Leaflet中使用leaflet-echarts插件实现Echarts的Migration迁徙图
- SpringBoot+zxing+Vue实现前端请求后台二维码图片
- DevExpress的分页Tab控件XtraTabControl控件的使用
- C#中读写Xml配置文件常用方法工具类