失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 加密 解密以及Openssl建立私有CA

加密 解密以及Openssl建立私有CA

时间:2024-04-02 21:21:05

相关推荐

加密 解密以及Openssl建立私有CA

一、openssl简介

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用

的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

SSL:secure socket layer 安全套接层协议 可以在internet提供秘密性的传输。

二、加密算法

加密算法的分类:对称、公钥和单向加密

1、对称加密:

加密和解密用同一个密钥,安全性依赖于密钥,而非算法。

(1)算法:

DES:Data Encryption standard,数据加密标准,56bits

3DES:DES加强版

AES:Advanced encrption standard 高级加密标准(128bits,192,256,382,512,)

可自行选择加密位数,常用算法

blowfish

twofish

tdea

rc6

casts

(2)特性

1)同一密钥

2)将明文分隔成固定大小的块,逐个进行加密

(3)缺陷

1)密钥过多

2)密钥分发

2、公钥加密:

(1)私钥和公钥

私钥:secret key,仅允许个人使用

公钥:public key,公开给所有人获取

公钥从私钥中提取而来,使用公钥加密的数据,只能使用与此公钥配对配对的私钥解密

(2)用处:

1)身份认证:私钥拥有者用自己的私钥加密的数据,只要用其公钥能解密,即可认证其身份;

2)密钥交换:与被通信方通信之前,首先获取到对方的公钥,自己生成一个加密密码,用对方的公钥加密,并发送给对方;

3)数据加密:

(3)算法:

RSA

DSA

ELGamal

(4)特性

1)密钥长度较大,512,2048

2)加密解密分别使用密钥对儿中的密钥相对进行

3)用于数据签名和密钥交换

3、单向加密:

提取数据的特征码

(1)特性

1)定长输出,无论原来数据的大小,加密长度一样

2)雪崩效应:原数据微小改变,导致结果巨大变化

3)不可逆

(2)算法:

MD5:128bit

sha1 160

sha256

sha384

sha512

(3)用处:

数据完整性

4、一次加密通信过程

发送者:

(1)提取数据特征码

(2)私钥加密特征码

(3)生成临时密钥

(4)临时密钥加密数据和加密过的特征码

(5)使用接收方公钥加密临时密钥,附加在数据后方

接收方:

(1)用私钥解密,获得临时密钥

(2)使用临时密钥解密数据和特征码

(3)用对方公钥解密特征码

(4)计算特征码,与解密的对比

三、数字证书

1、数字证书的定义:

数字证书:互联网通讯中标志通讯各方身份信息的一串数字,提供了一种在

Internet上验证通信实体身份的方式,数字证书不是数字***,而是身份认证

机构盖在数字***上的一个章或印。

它是由一个由权威机构——CA机构,又称为证书授权(Certificate Authority)

中心发行的,人们可以在网上用它来识别对方的身份。

2、数字证书的格式与用户

(1)数字证书的格式(x.509 ):

版本号(version)

序列号:(serial number):CA用于唯一标识证书

签名算法标志(signature algorithm identifier)

发行者的名称:即CA自己的名称

有效证书主体名称:证书拥有者自已的名字

证书文体公钥信息:证书拥有者自己的公钥

发行商的唯一标识

证书主体的唯一标识

扩展信息

签名:CA对此证书的数字签名

(2)证书通常有两类用途

用户证书

主机证书(httpd)

3、证书的吊销链表:

算法-->CA的名称-->本次更新时期-->下次更新日期-->用户证书序列号,吊销日期-->CA的数字签名

4、获取证书的方法:

(1)向RA注册申请

(2)建立私有CA

四、openssl加密解密:

1、openssl 的组成部分

libcrypto:加密、解密库文件

libssl:ssl协议实现

openssl:多用途命令行工具,每种功能都使用专用 的子命令来实现

2、对称加密

工具:openssl enc

算法:des,3des,aes

openssl enc -e -CIPHERNAME -a salt -in /PATH/FROM/SOMEFILE -out /PATH/TO/FILE

openssl enc -d -CIPHERNAME -a salt -in /PATH/FROM/SOMEFILE -out /PATH/TO/FILE

#cp /etc/fstab ./

#openssl enc -e -des3 -a -salt -in fstab -out fstab.des3

#openssl enc -d -des3 -a -salt -in fstab.des3 -out fstab

3、公钥加密

工具:gpg,openssl rsautl

数字签名:RSA,DSA,ELGamal

DSA:digital signature algorithm 数字签名算法

DSS:digital signature standard 数字签名标准

操作过程 :生成私钥,从私钥中提取公钥

(1)生成私钥:

openssl genrsa -out keyFILE NUM_BITS

#openssl genrsa -out testkey 2048

(umask 077;openssl genrsa -out KEY_FILE NUM_BITS)

#(umask 077;openssl genrsa -out testkey 2048)

注意:命令加(),会在子shell中运行,修改默认生成私钥权限

(2)提取公钥

#openssl rsa -in KEY_FILE -pubout

#openssl rsa -in testkey -pubout

4、单向加密

算法:md5,sha1

工具:openssl dgst,md2sum,sha1sum

openssl dgst -CIPHER /PATH/TO/SOMEFILE...

#openssl dgst -md5 fstab

#md5sum fstab

5、生成用户密码:

openssl passwd -1 -salt 8bits 随机数 -1表示以MD5加密

#openssl passwd -1 -salt 12345678

6、生成随机数

openssl rand -hex|-base64 NUM

#openssl passwd -1 -salt $(openssl rand -hex 4)

openssl

7、随机数生成器

random,urandom

熵池:保存硬件中断产生的随机数

/dev/random 仅从熵池中返回随机,当熵池耗尽,进程将被阻塞

/dev/urandom 取随机数,当熵池耗尽,让生成器生成随机数

五、构建私有CA

配置文件:/etc/pki/tls/openssl.conf

工作目录:/etc/pki/CA/

1、建立私有CA:

(1)生成私钥文件 /etc/pki/CA/private/cakey.pem

#cd /etc/pki/CA

#(umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)

(2)生成自签证书

#openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out/etc/pki/CA/cacert.pem -days 3650

-new :生成新的证书签署请求

-key 私钥文件路径,用于提取公钥

-days N:有效时长 ,天

-out:输出文件保存位置

-x509:直接输出自签署证书文件,只有构建CA时才用

(3)提供辅助文件

#cd /etc/pki/CA

#touch /etc/pki/CA/index.txt

#echo 01 >/etc/pki/CA/serial

2、给节点发证书

(1)节点申请证书

1)生成私钥

#cd /etc/httpd

#mkdir ssl

#(umask 077;openssl genrsa -out httpd.key 1024)

2)生成证书签署请求

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

注意:

a)其中subject信息部分与CA一致

b)common Name 要使用此主机在通信使用名字

3)把请求发送给CA

(2)CA签发证书

1)验正请求者信息

2)签署证书

openssl ca -in CSR_FILE -out CRT_FILE -days N

#openssl ca -in /etc/httpd/ssl/http.csr -out /etc/httpd/ssl/httpd.crt -days 3650

3)把签署好的证书发还给请求者

3、吊销证书:

(1)获取吊销证书的序列号

openssl x509 -in CRT_FILE -noout -serial -subject

#openssl x509 -in /etc/httpd/ssl/httpd.crt -noout -serial -subject

(2)实现证书吊销

1)吊销证书

#openssl ca -revoke CRT_FILE

2) 生成吊销证书编号

#echo 01 >/etc/pkie/ca/crlnumber

3)更新证书吊销列表

#openssl crl -gencrl -out SCA.crl

如果觉得《加密 解密以及Openssl建立私有CA》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。