openssl的加密/解密等基本应用以及利用openssl实现私有CA

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

wKiom1Me9vbyjLBIAABuRuvtbU0703.jpg

wKiom1Me9wnSG8d-AAC930354Nc275.jpg



加密之后的文件/tmp/network.cipher

wKiom1Me9zvB_OEmAACoMq2S6o0282.jpg


例:对/tmp/network.cipher进行解密,保存至/tmp/network.clear


wKioL1Me9z3TRib5AACHBCTg11s624.jpg

解密后的文件/tmp/network.clear

wKiom1Me94vztjo5AAC6vb15PcU980.jpg


单项加密:


特性:


定常输出


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文件中


wKiom1Me-V-DRsFNAAE5jPzxQvk716.jpg


单向加密的延伸:


   实现用户认证: openssl passwd


   例:对输入的密码123456加密

wKioL1Me-XzwFXz3AACSJ6nwmlU524.jpg


非对称加密:


   特点:


1.每个用户拥用一对密钥加密:公钥和私钥。

2.公钥加密,私钥解密;私钥加密,公钥解密。

3.公钥传输的过程不安全,易被窃取和替换。

4.由于公钥使用的密钥长度非常长,所以公钥加密速度非常慢,一般不使用其去加密。


作用:

1.某一个用户用其私钥加密,其他用户用其公钥解密,实现数字签名的作用。

2.公钥加密的另一个作用是实现密钥交换。


公钥加密:

   常用算法:RSAEIGamal


数字签名:

   常用算法:RSAEIGamalDSA


   例:

   1.首先生成密钥对

wKiom1Me-obBoSsSAAC4_4xIH6o992.jpg

   2.查看公钥

wKioL1Me-o-BlQgMAAIx2OIOY20925.jpg

   3./etc/sysconfig/network文件使用公钥加密保存至/var/network.cipher

wKiom1Me-tjCSw-CAACMtDBQBVY202.jpg

   加密后的文件

wKioL1Me-tTzTgB_AAEL6O6l6F4148.jpg

   4.将加密的文件/var/network.cipher解密后保存至/var/network.clear

wKioL1MfAcKSvqIQAAC0HpnGIW4726.jpg

   解密后的文件

wKiom1MfAgrTLL_EAACU9DAdLc4133.jpg


CA认证原理:

wKioL1MfAh7DIKM6AAHU57j2HW8383.jpg


Openssl实现私有CA

   所需环境:


               CA服务器 :172.16.251.35/16

               申请证书的客户机:172.16.254.200/16


1.自建CA


   1)生成密钥对

wKiom1MfAojjWdg6AADma-0E_C8725.jpg

查看公钥

wKiom1MfAqaB78XKAAHrMPEoUDg710.jpg

2生成自签证书

wKioL1MfAp-BiSsLAALRIYkQ5RI544.jpg

3创建所需要的文件

wKioL1MfArmwMl8fAADSB9PXzC8194.jpg

4初始化序列号为01

wKiom1MfAvmwi1rXAABsmFJ0ULU331.jpg

2.openssl实现证书申请

在主机上生成密钥,保存至应用此证书的客户机的服务的配置文件目录下

1)在客户机创建目录/etc/httpd/ssl并切换至其目录下

wKiom1MfAw-DymNQAAByY9o05qA755.jpg


2)在客户机生成密钥对

wKiom1MfA3zBapvNAAC-ttqkz3s847.jpg


3生成证书签署请求

wKioL1MfA3eALwN7AAM9P5yO9eA020.jpg

4)将证书请求发给CA
wKioL1MfA56Tk8xKAAGxIVC_VFQ723.jpg

3.CA签署证书

1)查看传给CA的证书申请

wKiom1MfA-3Au2R4AABk1FuFCMg652.jpg

2)签署证书:

wKiom1MfBBDB6wLGAAN225JTAjc990.jpg

3将证书传回给请求者(客户机)

wKioL1MfBBzSzAOwAAHUKVzcKkA188.jpg

证书签署成功

wKiom1MfBFjQueixAADZasAsH3U099.jpg

4.当客户请求吊销证书时,CA可以吊销证书

wKiom1MfBGrBD3sQAACUo624qxI652.jpg










發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章