Linux中CA的创建,公钥私钥以及文件加密

简介:

数据加密方式有三种:

1、对称加密

2、公钥加密

3、单向加密

加密:由明文转换为密文

基于:加密算法

1、对称加密:

加密方和解密方使用同一个密钥

2、公钥加密

生成一对密钥

public key

Secret Key

公钥加密的时间比较慢

可实现密钥交换

3、单向加密:获取数据的特征码

1、定长输出

2、不可逆性

3、雪崩效应

数据传输过程中的 保密性、身份验证、完整性都得到保证的过程

发送方加密:

一段数据用单向加密的方式计算数据生成一段特征码,再用自己的私钥加密特征码放在数据的后面,再用对称加密的方式加密把生成一段密码放在数据的后面,最后再用接收方的公钥加密一次,发送出去。

接收方解密:

先用自己的私钥解密,得到对称加密方式的密码,再用发送方的公钥解密,如果能解密说明是发送方,并得到特征码,最后用相同的单向加密算法计算数据得到特征码并与之前发送的特征码作比较是否相同如果相同说明是数据完整

以上数据传输过程中的 保密性、身份验证、完整性都得了保证

CA:证书颁发机构

PKI :Public Key Infrastructure 公钥基础设施。其中最重要是CA

 

1、加密算法:

对称加密算法名称:

DES:

3DES:

AES:高级加密算法

Blowfish

2、公钥加密:

RSA,ELGamal 加密和签名

DSA :只能签名

3、单向加密

MD5 : 长度是128

SHA1:长度是160

CRC-32 是循环校验码

在linux上常用的工具:

openssl enc

openssl dgst

gpg(pgp)

md5sum

sha1sum

其中openssl:是多种加密工具,也可以作为简单的本地CA使用

openssl version 版本

openssl speed :测试加密速率

用openssl对文件加密 :

#openssl enc -des3 -salt -a -in inittab -out inittab.des3

解密:

#openssl enc -d -des3 -salt -a -in initab.des3 -out test

生成随机数的方式有两种:

1、/dev/random

2、/dev/urandom

随机数的来源

熵池

伪随机数来源于软件生成后保持在熵池的

来源于 keyboard and mouse events

block device interrupts -->保持到熵池

/dev/urandom:

来源于熵池和伪随机数生成器

用命令:#openssl rand 实现取得随机数

 

#openssl rand -base64 123

#openssl base64 编码 可以对字符串进行编码:

md5sum test 用md5为test加密

用shalsum md5 可以计算md5的校验码

shalsum test 可以计算一段文字的校验码

openssl dgst -sha1 test 也用于校验

 

在公钥加密中openssl 用于生成密钥

#openssl genrsa 2048(加密长度) > SECRT.FILE(位数)生成公钥,生成私钥,并保存

在文件中只显示私钥

而公钥就在私钥中

#openssl rsa -in FILE -pubout FILE1 提取公钥的命令

#(umask 077 openssl genrsa 22048 > SECRT.FILE)可以直接修改权限为只读

#openssl genrsa -des3 -out SECRT.FILE 1024 加密存放

加密私钥:

openssl rsa -in FILE ides3 -out FILES加密FILE文件并保存在FILES中

解密:

openssl rsa -in FILES -out FILEO 解密后文件保存在FILEO中

用openssl 生成CA

CA的内容:

1、证书的持有者的相关信息

2、CA的相关的信息

3、证书的使用方法

4、公钥

服务器与客户端之间传递公钥的过程及加密传输:

1、客户端向服务端发送请求

2、服务端向客户端发送证书

3、客户用服务的公钥解密签名验证身份,并用同样的单向加密验证校验码

如果相同,客户端生成一个密码则用服务器的公钥加密发给服务器,以后的数据传输就用这个密码加密

 

创建CA

CA放在/etc/pki/

 

编辑配置文件:

#vim /etc/pki/tls/openssl.cnf

把dir = /../../CA改成dir =/etc/pli/CA

退出

cd /etc/pki/CA/

生成自己的私钥:

#(umask 077;openssl genrsa 2048 > private/cakey.pem)

给自己发证:(即申请又发证)

#openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3656

会出现一些提示分别输入:

CN

HeNan

ZZ

magedu

tech

www.magedu.com

ca@magedu.com

CA 的工作目录:

#cd /etc/pki/CA

创建目录:

#mkdir certs crl newcerts

创建文件:

#touch index.txt serial

输入01到文件serial中

#echo 01 > serial

此时CA创建完成

向上面生成的CA申请证书

#mkdir /etc/httpd

#cd /etc/httpd

#mkdir ssl

#cd ssl/

(生成一对密钥)

#(umsak 077; openssl genrsa 1024 > httpd.key)

申请请求

#openssl req -new -key httpd.key -out httpd.csr

把生成的httpd.csr 发送到服务器上

#scp httpd.csr 172.16.35.2:/tmp

在服务器上

#openssl ca -in httpd.csr -out httd.crt

最后是服务器是否签发。

#openssl ca -revoke http.crt 吊销证书的命令。


本文转自 ZhouLS 51CTO博客,原文链接:http://blog.51cto.com/zhou123/799983


相关文章
|
存储 安全 数据库
python ras 私钥加密
【4月更文挑战第10天】
1355 2
|
NoSQL 测试技术 Go
【Golang】国密SM2公钥私钥序列化到redis中并加密解密实战_sm2反编(1)
【Golang】国密SM2公钥私钥序列化到redis中并加密解密实战_sm2反编(1)
|
安全 Linux 网络安全
Linux生成公钥和私钥 | 14
Linux生成公钥和私钥 | 14
|
算法 安全 网络安全
概念区分:对称加密、非对称加密、公钥、私钥、签名、证书
概念区分:对称加密、非对称加密、公钥、私钥、签名、证书
4223 0
|
安全 数据安全/隐私保护
在非对称加密中,公钥和私钥的生成过程是如何进行的?
【5月更文挑战第13天】在非对称加密中,公钥和私钥的生成过程是如何进行的?
1657 3
|
JSON 算法 API
【Azure API 管理】APIM 配置Validate-JWT策略,验证RS256非对称(公钥/私钥)加密的Token
【Azure API 管理】APIM 配置Validate-JWT策略,验证RS256非对称(公钥/私钥)加密的Token
499 0
|
存储 安全 算法
公钥加密在网络安全中的角色
【8月更文挑战第24天】
465 0
|
安全 数据安全/隐私保护
支付系统之微信支付08-身份认证,公钥和私钥的含义,私钥自己有的,作为唯一的控制系统,私钥加密,公钥解密是为了身份认证
支付系统之微信支付08-身份认证,公钥和私钥的含义,私钥自己有的,作为唯一的控制系统,私钥加密,公钥解密是为了身份认证
|
安全 算法 网络协议
【网络原理】——图解HTTPS如何加密(通俗简单易懂)
HTTPS加密过程,明文,密文,密钥,对称加密,非对称加密,公钥和私钥,证书加密
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
548 10