您的位置:首页 > 运维架构

数据加密,使用openssl创建CA

2012-03-06 22:57 330 查看
数据加密的方式有三种:对称加密,非对称加密(公钥加密),单向加密。

数据在传输的过程中应该保持其可靠性和完整性,下面介绍一下加密算法。

1.对称加密:加密方和解密方使用同一个密钥

比较常见的加密算法:

DES :date encyption standrad 数据加密标准

3DEC 3次DES加密

AES 高级加密标准

Blowfish

加密工具: gpg , openssl enc

2.公钥加密:加密解密使用不同密钥,公钥与私钥,必须成对出现.
加密工具:gpg ,openssl rsautl
主要算法:PSA, ELGamal,DSA.前两个可以实现加密和签名,第三个只可以名。
主要功能:加密解密,用户的身份认证。

公钥:是从私钥中提取出来
缺陷:速度非常慢
例子:Bob向Rose发信息,Bob拿自己的私钥,进行加密。 Rose 拿Bob的公钥解密,只要能解密出来, Rose 就可以认为Bob就是Bob,而不是别人冒充的。

3.单向加密:

工具:md5sum sha1sum openssl dgst
这种加密是不可逆的,用于计算一段数据的特征码。
主要功能:对数据完整性进行校验。
定长输出

例子:bob和rose通信,bob先生成一段数据,为保证数据的完整性,先用单项加密算法计算这段数据的特征码,然后为了进行身份验证,bob用自己的私钥加密这段特征码,加在整段数据的后面,同时又为了保证这段数据只有rose能看到,bob在生成一
个对称密钥,用密码加密所有数据,此时整段就是一个密文,bob再用rose的公钥加密刚才生成的密码,放在整段数据的后面,送给rose。rose收到数据后先用自己的私钥解密之得到密码,用这个密码就可以得到特征码和数据,然后用单项加密算法计算数据的特征码,和收到的特征码进行比较,若相同,即数据完整。

上面的例子中有一个核心的问题,即bob和rose要相互用到对方的公钥,那么公钥是怎么来的?这就要用到第三方机构---CA.

CA:
CA是证书颁发机构, CA里面最重要的是公钥。
PKI:Public Key Infrastructure 公钥基础设施。PKI的核心即使CA。

openssl有三部分组成:
1.libcrypto 加密解密的库文件
2.libssl 库文件,支持TLS/SSL协议
3.openssl 多用途的加密解密,功能非常强大,可以实现单向加密,公钥加密,对称加密,还可以制作本地CA.

加密:openssl enc -des3 -salt -a -in plaintext -out ciphertext.des3
参数:
enc 使用加密技术编码
-des 使用DES加密算法
-a 使用base64编码
-in 需加密dewenjian
-out 加密后输出的问件
解密:openssl enc -d -des3 -salt -a -in ciphertext.des3 -out plaintext

-d 解密

openssl rand [ -base 64 ] num 随机生成数
openssl base64 将数据编码

计算文件校验码,提取文件特征码:
md5sum FILE
sha1sum FIL E
openssl dgst -sha1 FILE

生成密钥:
openssl genrsa 1024
公钥是从私钥中提取出来的:
openssl rsa -in FILE1 -pubout -out FILE2
生成出来的私钥是不能让别人看的,但生成出来的别人却是可读的,可以使用chmod来改变权限位600,也可以使用 (umask 077;openssl genrsa 1024 > FIEL)括号表示在子shell中使用,不会对当前shell产生影响。

生成的私钥文件直接加密cunfang:
openssl genrsa -des3 -out FILE 1024

生成私钥文件后加密:
openssl rsa -in FILE1 -des3 -out FILE2
解密:
openssl rsa -in FILE2 -out FILE1

CA的组成部分:
1.证书的持有者相关信息
2.CA的相关信息
3.证书的使用方法
4.公钥

证书格式:x509

如何用openssl生成CA:
首先给自己生成一个密钥,并给自己生成一个证书:

1.cd/etc/pki
vim /etc/pki/tls/openssl.conf 将CA改为绝对路径
cd ../CA/
为CA生成一个私钥
(umask 077; openssl genrsa 1024 > private/cakey.pem)
生成签字证书:
openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3656
接下来编辑一系列信息
吊销证书:openssl ca -remove FILE

其中 vim /etc/pki/tls/openssl.conf (openssl的主配置文件,定义了CA的一些相关选项)

吊销证书:openssl ca -remove FILE
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息