数据加密类型及创建和申请CA证书
1.数据在互联网上传输必须保证以下3点特性:
私密性: 数据加密
完整性: 数据传输过程没有被人修改
身份验证: 确认对方的身份,防止中间人伪装攻击
2.私密性:数据加密应使用对称加密,特点速度快
代表算法有:DES,3DES,AES,AES192,AES256,AES512,Blowfish
3.完整性:通过单向加密算法,提取数据特征码,特点是雪崩效应,定长输出,不可逆等
代表算法有:MD5,SHA1,SHA192,SHA256,SHA384,CRC-32(检验)
4.身份验证:公/私钥加密:即为非对称加密码算法,产生密钥对,特点是速度慢
发送方用对方的公钥加密,接收方用自己的私钥解密,即保证数据的私密性
发送方用自己的私钥加密,接收方用对方的公钥解密,即保证数据的身份验证和私密性
代表算法有:RSA(加密/签名),DSA(签名)
5.数据传输过程有2种方法:
第一种:首先发送方与接收方通IKE协商生成对称的密钥,发送方或接收方按需各自生成一对非对称的公私钥,然后发送方对将要发送的数据,提取特征码,并用自己的私钥对特征码加密,即可保证数据的身份验证和私密性,再通过对称密钥对整个数据和特征码进行加密,即发送即可,接收方用协商成的对称密钥进行数据解密,用发送方的公钥对特征码进行解密校验完整性和身份验证
第二种:首先发送方随机生成一个随机数,发送方或接收方按需各自生成一对非对称的公私钥,然后发送方对将要发送的数据,提取特征码,并用自己的私钥对特征码加密,即可保证数据的身份验证和私密性,再通过刚生成的随机数对整个数据和特征码进行加密,并且通过对方的公钥将随机数加密,放在整个数据后面一起发送即可,接收方用自己私钥的进行解密,得到发送方的随机数,再进行解密数据,最后用发送方的公钥对特征码进行解密校验完整性和身份验证
6.CA:Certificate Authority,简称CA证书,即证书颁发机构
CA:证书格式有x509和pkcs12格式
x509主要包括:公钥及有效期限,证书合法拥有者,证书使用说明,CA自身的信息,CA的签名
PKI的实现方式有:TLS/SSL:也使用x509格式
OpenGPG:格式与x509相似
SSL:Secure Socket Layer,在应用层与传输层之间的半个层,叫做安全套接字层,也就是一种库
例如:http明文协议通过调用SSL库,变成https加密协议
由于SSL是一个公司开发,较不开放,而国际化标准组织就不舒服,应运产生更开放的加密机制TLS
TLS:Transport Layer Security,叫传输层安全
版本:TLSv1相当SSLv3版本
7.openssl工具:
7.1.openssl ? 查看opessl简单帮助 ;man enc 查看enc帮助
-e 加密,默认
-d 解密
enc 指定加密算法
-salt 加盐,产生随机数
-a: base64编码
对fstab文件加密:
openssl enc -des3 -salt -a -in fstab -out fstab.des3
对fstab文件解密:
openssl enc -des3 -d -salt -a -in fstab.des3 -out fstab
7.2.提取指纹信息及特征码:
md5sum fstab
sha1sum fstab
openssl dgst -md5 fstab
openssl dgst -sha1 fstab
7.3.对密码进行加密或hash,由于salt不一样,同样的密码造成加密后的结果不一样
-1代表md5加密,man sslpasswd查找帮助得知:
openssl passwd -1
openssl passwd -1
openssl passwd -1 -salt
openssl rand -base64 10
openssl rand -base64 50
openssl rand -base64 100
8.openssl创建私有CA: 要想给其他机构颁发证书,首先自己必须有证书
8.1.生成一对密钥: 密钥文件权限最好是600,man genrsa查看帮助,
以下三种方法选其一生成私钥
openssl genrsa 1024 > server.key ; chmod 600 server.key
openssl genrsa -out server.key 1024; chmod 600 server.key
(umask 077; openssl genrsa -out server.key 1024) #子shell运行,不影响父shell
提取公钥:从私钥中提取公钥
openssl rsa -in server.key -pubout
8.2.生成自签名证书
openssl req -new -x509 -key server.key -out server.crt -days 365
查看证书内容:openssl x509 -text -in server.crt
8.3:创建一个完整的私有证书过程及步骤:
cd /etc/pki/CA/
(umask 077; openssl genrsa -out private/cakey.pem 1024) #生成私钥
openssl req -new -x509 -key private/cakey.pem -out cacert.pem #用私钥创建CA证书
mkdir certs newcerts crl
touch index.txt
touch serial
echo 01 > serial
注意:通过cat /etc/pki/tls/openssl.cnf查看创建私有CA证书所需环境
9.openssl申请证书:
例如为https服务申请一个证书,简单步骤如下:
cd /etc/httpd/ssl
(umask 077; openssl genrsa -out httpd.key 2048 ) #生成私钥
openssl req -new -key httpd.key -out httpd.csr #用私钥申请证书,注意没有-x509
openssl ca -in httpd.csr -out httpd.crt -days 365 #CA颁发机构对证书签名
本文出自 “夏维柳” 博客,请务必保留此出处http://willow.blog.51cto.com/6574604/1772810
原文地址:http://willow.blog.51cto.com/6574604/1772810