Openssl
openSSL整个软件包大概可以分成三个主要的功能部分:
Libcrupto:密码算法库
Libssl:TLS/SSL协议库,用于实现TLS/ssl的功能
openssl应用程序: 多功能命令工具主要包括密钥生成、证书管理、格式转换、数据加密和签名、SSL测试以及其它辅助配置功能。
Openssl的基本应用
对称算法:
特点:
加密和解密使用同一个口令
加密/解密速度快
密钥传输的过程不安全,且容易被破解,密钥管理也比较麻烦。
作用:
用于大量数据的加密
openssl enc实现加密及解密
openssl enc -ciphername [-in filename] [-out filename] [-e] [-d] [-a/-base64] [-salt]
-ciphername:指定要使用加密/解密算法(常用算法:DES、、DES3、AES、Blowfish、Twofish、RC6、CAST5)
-in filename:指定要加密/解密的文件
-out filename:指定加密/解密后的结果要保存的文件
-e:加密,且默认情况下为加密
-d:对加密的文件进行解密
-a/-base64:以base64格式输出或保存到指定文件中
-salt:在密码中加入一串字符串,不指定字符串默认为随机字符串
对/etc/sysconfig/network使用DES3加密并保存至/tmp/network.cipher中
加密之前的/etc/sysconfig/network
加密之后的文件/tmp/network.cipher
例:对/tmp/network.cipher进行解密,保存至/tmp/network.clear
解密后的文件/tmp/network.clear
单项加密:
特性:
定常输出
One-Way (不可逆)
Collision-free(雪崩效应即数据发生微小的变化结果将会千差万别)
作用:
确保数据的完整性。
openssl dgst 保证数据完整性
openssl dgst [-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1] [-out filename] /path/to/file
-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1:指定要使用的加密算法
-out filename:指定将加密的文件保存到指定的文件中
/path/to/file:指定要加密的文件
例:抽取/etc/sysconfig/network的数据特征码保存至/tmp/network.dgst文件中
单向加密的延伸:
实现用户认证: openssl passwd
例:对输入的密码123456加密
非对称加密:
特点:
1.每个用户拥用一对密钥加密:公钥和私钥。
2.公钥加密,私钥解密;私钥加密,公钥解密。
3.公钥传输的过程不安全,易被窃取和替换。
4.由于公钥使用的密钥长度非常长,所以公钥加密速度非常慢,一般不使用其去加密。
作用:
1.某一个用户用其私钥加密,其他用户用其公钥解密,实现数字签名的作用。
2.公钥加密的另一个作用是实现密钥交换。
公钥加密:
常用算法:RSA、EIGamal
数字签名:
常用算法:RSA、EIGamal、DSA
例:
1.首先生成密钥对
2.查看公钥
3.对/etc/sysconfig/network文件使用公钥加密保存至/var/network.cipher
加密后的文件
4.将加密的文件/var/network.cipher解密后保存至/var/network.clear
解密后的文件
CA认证原理:
Openssl实现私有CA
所需环境:
CA服务器 :172.16.251.35/16
申请证书的客户机:172.16.254.200/16
1.自建CA
1)生成密钥对
查看公钥
2)生成自签证书
3)创建所需要的文件
4)初始化序列号为01
2.用openssl实现证书申请
在主机上生成密钥,保存至应用此证书的客户机的服务的配置文件目录下
1)在客户机创建目录/etc/httpd/ssl并切换至其目录下
2)在客户机生成密钥对
3)生成证书签署请求
3.CA签署证书
1)查看传给CA的证书申请
2)签署证书:
3)将证书传回给请求者(客户机)
证书签署成功
4.当客户请求吊销证书时,CA可以吊销证书
本文出自 “Linux之旅” 博客,请务必保留此出处http://openlinuxfly.blog.51cto.com/7120723/1373480