ubuntu下安装openssl
·
ubuntu下安装openssl
sudo apt-get install openssl
sudo apt-get install libssl-dev
创建证书
$ openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf
Generating a RSA private key
...............+++++
...........................................+++++
writing new private key to 'ca.key' //这里密码是666666
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:tlx
string is too long, it needs to be no more than 2 bytes long
Country Name (2 letter code) [AU]:sb
State or Province Name (full name) [Some-State]:.
Locality Name (eg, city) []:city
Organization Name (eg, company) [Internet Widgits Pty Ltd]:tlx
Organizational Unit Name (eg, section) []:tlx
Common Name (e.g. server FQDN or YOUR name) []:tlx
Email Address []:chenjw@tailixin.cn
利用openssl.cnf文件,为CA创建一个自签名证书,这意味着此CA完全可信,其证书将作为根证书, 生成ca.key 和ca.crt, ca.key文件包含CA的私钥,而ca.crt包含公钥证书
参考:
使用openssl库进行数据加密与签名区别与作用
1. 数据加密
数据揭秘的作用是防止信息泄露。
一般来说使用RSA的加密过程如下:
(1)A(一般是服务器端,PKI系统)生成一对公私钥对,私钥A自己保存,不对外公开,公钥则公开x,通常是服务器通过某种下发证书的方式给到指定客户端;
(2)B(通常为客户端)收到A的公钥后(一般是从证书中提取),使用A给的公钥对信息加密;
(3)若A收到B通过公钥加密的信息,则可以使用私钥对数据进行解密;
因为私钥只有A拥有,也就是说A才能解密数据,那么及时在A将公钥下发的过程,或是B数据传输的过程,被黑客拦截,但黑客无法对数据进行解密,因此达到了防信息泄露的目的。
这个过程存在的风险在于,如果公钥被黑客截获后,黑客可以对数据进行篡改后或伪造数据,再利用公钥进行加密。A端收到数据后能正常解密,但并不知道数据已经被篡改了或该数据是伪造的。
2.数据签名
数据签名的作用是防止数据被篡改(或者说篡改了能被发现)
RSA数据签名的过程如下:
(1)B(一般是客户端)生成一对公私钥,私钥B自己保留(一般要求安全存储),不对外公开,公钥公开,通常随数据一块发送给对端;
(2)B使用自己的私钥对源数据的摘要加密(因为摘要是唯一且不可逆的,摘要值不变,说明数据也没变,就形成了签名,B将源数据和签名一起发送给A;
(3)A收到数据和签名后,使用同样的摘要算法进行摘要计算,并使用B给的公钥对公钥对签名值解密,若解密后的摘要值与A端计算的摘要值一致,则说明数据没被篡改;
这个过程中,如果黑客截获了数据和B发给A的公钥,以及数据签名,但由于只有使用私钥才能对数据进行签名,因此黑客没办法伪造数据和其签名值,因此能防止信息被篡改。但因为数据本身是明文,因此信息会被泄露。
那么没有既防止信息泄露又防止数据被篡改的方法呢,答案就是同时使用加密和签名,但通常使用非对称算法进行加密,资源消耗会远大于对称算法进行加密。
参考:
更多推荐
所有评论(0)