码农阿甘 2013-04-18
本文环境 RedHat 5.8
本文主要内容:加密算法、CA介绍和配置等、web利用CA认证构建https安全传输
1、在互联网上数据额传输有两种:明文传输和加密传输。明文传输的协议有:ftp、http、smtp、telnet。但是为了数据的完整性和安全性,所以后来引用了加密等相关手段来保证数据的安全和完整性。
2、数据的机密性:
为了保证我们传输的数据不让第三方看到,所以我们采用加密来保证数据的机密性,让数据加密以后传输出去~然后让接收方利用相关的解密工具来对其收到的加密密文解密成明文,然后查看,这样就保证了数据的机密性。
常用的加密算法:
①、提取数据的特征码:利用数据的所有特性提取出一段特征码,然后利用这个特征码是否改变来保证数据的完整性,这种算法有以下几个特征:
输入一样,输出必须相同。
雪崩效应:输入的微小改变,将会引起结果的巨大改变
定长输出:无论原始数据是多大,结果大小都相同的。
加密过程不可逆,无法根据特征码还原原来的数据。
②、协商生成密码:密钥交换
密钥交换的算法:
AB:p-大素数,g-生成数
A:x 、B:y
A:g^x%p—>B
B:g^y%p-->A
A: (g^y%p)^x=g^yx%p
B: (g^x%p)^y=g^xy%p
这个结果就是密钥!
③、公钥解密算法:非对称的加密算法
密钥对:公钥publickey私钥scritekey,公钥是来自于私钥的
发送方用自己的私钥加密数据,可以实现身份验证
发送方用对方的公钥加密数据,可以保证数据的机密性
公钥加密算法很少利用加密数据,速度太慢,主要用于身份验证的。
④、对称加密算法:DES加密、3DES、AES高级加密标准、AES128(密码长度)、AES256、Blowfish。
单向加密:MD4、MD5(128)、SHA1(160)、SHA192、SHA384(输出长度)、CRC-32(循环冗余校验码)
⑤、公钥加密:身份认证(数字签名)、数据加密、密钥交换
公钥加密算法:RSA:既可以加密也可以签名、DSA:只能签名
对称加密的工具:openssl、gpg
3、PKI:Public Key Infrastructure
PKI定义了CA和其他的信息。
CA:证书颁发机构,Certificate Authority,既证书权威机构,是PKI的核心。CA中包含了证书吊销列表,数字证书有不同的格式,目前最流行的格式是X509的格式。
x509的证书格式包含:公钥及其有效期限、证书的合法拥有者、证书如何使用、CA的信息、使用CA签名的校验码
4、openssl:SSL的开源实现。
openssl软件组成:
libcrpto:通用加密库
libssl:TLS/SSl的实现,基于会话的,实现了身份认证、、数据机密性和会话完整性的TLS/SSL库
openssl:多用途命令行工具,可以实现私有证书颁发机构。
②、openssl常用的子命令
③、openssl实现私有CA:先生成一对密钥,然后生成自签证书。
5、CA配置文件:/etc/pki/tls/openssl.cnf