码迷,mamicode.com
首页 > 其他好文 > 详细

ssl

时间:2015-05-10 17:34:43      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:ssl

                           ssl




加密算法和协议:

对称加密:加密和解密使用同一个密钥;

依赖于:算法和密钥;

安全性依赖于密钥,而非算法

 

 

非对称加密:公钥加密

密钥对儿:私钥和公钥

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

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

 

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

用处:

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

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

数据加密:

算法:

RSA

DSA

ELGamal

特性:

1、密钥长度较大,例如512bits, 2048bits, 4096bits

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

3、常用于数据签名和密钥交换;

 

 

 

单向加密:提出数据的特征码;

特性:

1、定长输出:无论原来的数据是多大级别,其加密结果长度一样;

2、雪崩效应:原始数据微小改变,将会导致结果巨大变化;

3、不可逆:

 

算法:

MD5128bits定长输出;

SHA1160bits定长输出;

SHA256

SHA384

SHA512

 

CRC32

 

密码保存路径/etc/shadow

$#$#######$##############################################

 

用处:

1、数据完整性;

 

 

 

一次加密通信过程

发送者:

1、使用单向加密算法提取生成数据的特征码;

2、使用自己的私钥 加密 特征码附加在数据后面;

3、生成用于对称加密的临时密钥;

4、用此临时密钥  加密数据和已经使用私钥加密后的特征码;

5、使用接收方的公钥加密此临时密钥,附加在对称加密后的数据后方;

 

接收方:

1、使用自己的私钥解密加密的临时密钥;从而获得对称密钥;

2、使用对称密钥解密对称加密的 数据和私钥加密的特征码密文;从而获得数据和特征码密文;

3、使用发送方的公钥解密特征码密文,从而获得从计算生成的特征码;

4、使用与对方同样的单向加密算法计算数据的特征码,并与解密而来的进行比较;

 

 

 

数字证书:

                      签证机构:CA

注册机构:RA

证书吊销列表:CRL

 

功用:保证公钥信息安全分发;

 

openssl的组成部分:

libcrypto:加密、解密库文件;

libssl: ssl协议实现

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

 

 

加密文件(对称加密):

工具:openssl enc, gpg(注:随便输入错误openssl+错误输入能得到帮助)

算法:des, des3, aes, blowfish, twofish, idea, cast5

     

enc工具:

            man enc

      -e:对输入数据进行加密

             -salt:随机数加密

            -in:需要加密的文件

            -out:加密后输出路径

             -a:编译成ASCII码存放

# openssl enc -e -CIPHERNAME (算法名)-a -salt -in /PATH/FROM/SOMEFILE -out /PATH/TO/SOMECIPHERFILE

 

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

 

单向加密:

算法:md5, sha1

工具:openssl dgst, md5sum, sha1sum, sha224sum, sha256sum, sha384sum, sha512sum

 

# openssl dgst -CIPHERNAME(如:sha1 md5)/PATH/TO/SOMEFILE...

 

MAC: 消息认证码,单向加密的一种延伸应用,用于实现在网络通信中保证所传输的数据的完整性;

 

机制:

CBC-MAC

HMAC:使用md5sha1算法

 

生成用户密码:

# openssl passwd -1 -salt 8bits随机数

 

生成随机数:

# openssl rand -hex|-base64 NUM

 

 

 

 

 

OpenSSL(2)

 

公钥加密:

工具:gpg, openssl rsautl

 

数字签名:RSA, DSA, ELGamal

DSA: Digital(数字) Signature(签名) Algorithm(算法)

DSS: Digital Signature Standard

 

密钥交换:

公钥加密、DH

 

生成密钥对儿:

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

# openssl genrsa -out /PATH/TO/PRIVATE_KEYFILE    NUM_BITS

 

注意:在bash命令行上放在小括号中执行的命令,其实是通过打开一个子shell进程进行的;

 

#(umask 077; openssl genrsa -out /PATH/TO/PRIVATE_KEYFILE NUM_BITS)

 

从私钥中手动提取公钥:

# openssl rsa -in /PATH/FROM/PRIVATE_KEY_FILE -pubout

                                          -pubout :输出公钥信息

随机数生成器:

random, urandom

 

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

 

/dev/random:仅从熵池中返回随机数,当熵池中的随机数耗尽时,取随机数的进程将会被阻塞;

/dev/urandom:先从熵池中取随机数,当熵池中的随机耗尽时,就通过伪随机数生成器生成随机数;

 

X.509 v3数字证书的格式:

CA通过证书证实他人的公钥信息,证书上有ca的签名

获取证书的方法:

RA注册

建立私有CA

OpenSSL

OpenCA

 

使用OpenSSL构建私有CA

1、生成私钥;

2、生成自签署证书;

 

(1) 私钥用于签发证书时,向证书添加数字签名使用;

(2) 证书:每个通信方都导入此证书至“受信任的证书颁发机构”;

 

 

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

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

 

建立私有CA

信息输入错误 ctrl键删除

1、生成私钥文件: /etc/pki/CA/private/cakey.pem

 

# (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 #

 

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

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

-days N: 证书有效时长,单位为“天”;

-out:输出文件保存位置;

-x509:直接输出自签署的证书文件,通常只有构建CA时才这么用;

 

3、提供辅助文件 注:一定要创建啊!!!!
 

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

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

 

给节点发证书:

1、节点申请证书

在证书申请的主机上进行如下步骤:

(1) 生成私钥;

(2) 生成证书签署请求;

 

注意:

(a) 其中的subject信息部分,要与CA的保持一致;

(b) Common Name要使用此主机在通信真实使用名字;

 

(3) 把请求发送给CA

 

2CA签发证书

(1) 验正请求者信息

(2) 签署证书

# openssl ca -in /PATH/FROM/CSR_FILE -out /PATH/TO/CRT_FILE -days N

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

 

                            数字证书一般.crt结尾        证书请求.csr结尾

 

吊销证书:

1、获取吊销证书的序列号;

# openssl x509 -in /PATH/FROM/CRT_FILE -noout -serial -subject

 

2、实现证书吊销

(1) 吊销证书

# openssl ca -revoke /PATH/FROM/CRT_FILE

 

(2) 生成吊销证书的编号

echo 01 > /etc/pkie/CA/crlnumber

 

(3) 更新证书吊销列表

# openssl crl -gencrl -out THISCA.crl

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


ssl

标签:ssl

原文地址:http://zha0lei.blog.51cto.com/4728300/1649951

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!