加密incode:对明文(可读懂的信息)进行翻译,使用不同的算法对明文以代码形式(密码)实施加密。该过程的逆过程称为 解密(descode),即将该编码信息转化为明文的过程
常见的加密算法和协议:
1、对称加密
2、公钥加密(非对称加密)
3、单向加密
4、认证协议
对称加密:加密和解密使用同一个密钥,依赖于,算法和密钥,其安全性依赖于密钥而非算法
常见算法:DES、3DES、 AES、Blowfish、IDEA、Twofish、CAST5、Rc6 特性:1)加密解密使用同一密钥 2)将明文分隔成固定大小的块,逐个进行加密 缺陷:1)密钥过多 2)密钥分发非对称加密:即公钥加密,密钥对儿:私钥(仅允许个人使用)和公钥(公开给所有人获取)
公钥从私钥中提取而来(使用公钥加密的数据,只能使用与此公钥配对儿的私钥解密,反之亦然)用处:
1)身份认证:私钥拥有者用自己私钥加密的数据,只要用其公钥能解密,即可认证其身份
2)密钥交换:任何一个人计划与被通讯方通信之前,首先获取到对方的公钥,自己生成一个加密密码,用对方的公钥加密,并发给对方 3)数据加密算法:RSA、DSA 实现数字签名、ELGamal特性:1)密钥长度较大,512bit,2048bits,4096bits 2)加密解密分别使用密钥对儿中的密钥对进行 3)常用于数据签名和密钥交换单向加密:数据能加密但不能解密,用于提取数据的特征码特性:
1)定长输出:无论原来的数据是多大级别,其加密结果长度一样
2)雪崩效应: 原始数据微小改变,将会导致结果巨大变化; 3)不可逆:算法:MD5:128bits定长输出、SHA1:160bit定长输出、SHA256、 SHA384、SHA512、CRC32循环冗余校验下面说说OpenSSL如何搭建CA
Openssl是SSL的开源实现(可以免费应用程序),是一种安全机密程序,主要用于提高远程登录访问的安全性。也是目前加密算法所使用的工具之一,功能很强大。
Openssl为网络通信提供安全及数据完整性的一种安全协议,包括了主要的密码算法、常用的密钥和证书封装管理功能(CA)以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用,例如我们将会使用Openssl实现私有CA,并实现证书颁发。
openssl的组成部分: libscrypto:加密、解密库文件 libssl:ssl协议实现 openssl:多用途命令行工具,每种功能都使用专用的子命令来实现
SSL:(Secure Socket Layer)安全套接字层,通过一种机制在互联网上提供密钥传输。其主要目标是保证两个应用间通信数据的保密性和可靠性,可在服务器端和用户端同时支持的一种加密算法。目前主流版本SSLV2、SSLV3(常用)。
使用OpenSSL构建私有CA:
1、生成私钥: 2、生成自签署证书:(1)私钥用于签发证书时,向证书添加数字签名使用;
(2)证书:每个通信方导入此证书至"受信任的证书颁发机构"配置文件:/etc/pki/tls/openssl.cnf
工作目录:/etc/pki/CA/
建立私有CA思路:
1、生成私钥文件 /etc/pki/CA/private/cakey.pem(存放) # cd /etc/pki/CA # (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时才这么用,如果没有x509则为签署请求 3、提供辅助文件给节点发证书:1、节点申请证书:在证书申请的主机进行如下步骤
(1)生成私钥 (2)生成证书签署请求 注意:其中的subject信息部分,要与CA的保持一致 Common Name要使用此主机在通信真实使用名字 (3)把请求发送给CA;让CA以便发出请求 2、CA签发证书 (1)验证请求者信息 (2)签署证书 # openssl ca -in /PATH/FROM/CSR_FILE -out /PATH/TO/CRT_FILE -days N (3)把签署好的证书发还给请求者下面以http为例具体实现CA的搭建:
# cd /etc/httpd/
# ls# touch index.txt
# echo 01 > serial# mkdir ssl
# cd ssl # (umask 077;openssl genrsa -out httpd.key 1024) 生成密钥 # ll# openssl req -new -key httpd.key -out httpd.csr 证书签署请求
-->输入相关信息 -->两次回车使用空密码 # ll# openssl ca -in /etc/httpd/ssl/httpd.csr -out /etc/httpd/ssl/http.crt -days 3650 签署证书 直接签署证书
出现红色标识部分,说明 签署成功
吊销证书:
1、获取吊销证书的序列号# openssl x509 -in /PATH/FROM/CRT_FILE -serial -subject
# openssl x509 -in /etc/httpd/ssl/http.crt -serial -subject2、实现证书吊销:根据证书持有者
确保一致 (1)吊销证书 # openssl ca -revoke /PATH/FROMCRT_FILE (2)生成吊销证书的编号 echo 01 > /etc/pki/CA/crlnumber (3)更新证书吊销列表 # openssl crl -gencrl -out THISCA.crl