亚洲日本免费-啊轻点灬太粗太长了三男一女-麻豆av电影在线观看-日韩一级片毛片|www.grbbt.com

OpenSSL原理及基本使用

  OpenSSL原理

  SSL:SSL是Secure Sockets Layer(安全套接層協(xié)議)的縮寫(xiě),可以在Internet上提供秘密性傳輸。Netscape(網(wǎng)景)公司在推出第一個(gè)Web瀏覽器的同時(shí),提出了SSL協(xié)議標(biāo)準(zhǔn)。其目標(biāo)是保證兩個(gè)應(yīng)用間通信的保密性和可靠性,可在服務(wù)器端和用戶(hù)端同時(shí)實(shí)現(xiàn)支持。已經(jīng)成為Internet上保密通訊的工業(yè)標(biāo)準(zhǔn)。

  SSL能使用戶(hù)/服務(wù)器應(yīng)用之間的通信不被攻擊者竊聽(tīng),并且始終對(duì)服務(wù)器進(jìn)行認(rèn)證,還可選擇對(duì)用戶(hù)進(jìn)行認(rèn)證。SSL協(xié)議要求建立在可靠的傳輸層協(xié)議(TCP)之上。SSL協(xié)議的優(yōu)勢(shì)在于它是與應(yīng)用層協(xié)議獨(dú)立無(wú)關(guān)的,高層的應(yīng)用層協(xié)議(例如:HTTP,F(xiàn)TP,TELNET等)能透明地建立于SSL協(xié)議之上。SSL協(xié)議在應(yīng)用層協(xié)議通信之前就已經(jīng)完成加密算法、通信密鑰的協(xié)商及服務(wù)器認(rèn)證工作。在此之后應(yīng)用層協(xié)議所傳送的數(shù)據(jù)都會(huì)被加密,從而保證通信的私密性。

  OpenSSL開(kāi)放式安全套接層協(xié)議:是一個(gè)強(qiáng)大的安全套接字層密碼庫(kù),囊括主要的密碼算法、常用的密鑰和證書(shū)封裝管理功能及SSL協(xié)議,并提供豐富的應(yīng)用程序供測(cè)試或其它目的使用。

  OpenSSL整個(gè)軟件包大概可以分成三個(gè)主要的功能部分:SSL協(xié)議庫(kù)、應(yīng)用程序以及密碼算法庫(kù)。OpenSSL的目錄結(jié)構(gòu)自然也是圍繞這三個(gè)功能部分進(jìn)行規(guī)劃的。

  基本功能有:主要的密碼算法(MD5、SHA、DH、BASE64等等)、常用的密鑰和證書(shū)封裝管理功能以及SSL協(xié)議,并提供了豐富的應(yīng)用程序供測(cè)試或其它目的使用。

  輔助功能:如從口令生成密鑰的API,證書(shū)簽發(fā)和管理中的配置文件機(jī)制等

  OpenSSL支持多種不同的算法

  對(duì)稱(chēng)加密:

  AES, Blowfish, Camellia, SEED, CAST-128, DES, IDEA, RC2, RC4, RC5, Triple DES, GOST 28147-89[3]

  單向加密:

  MD5, MD2, SHA-1, SHA-2, RIPEMD-160, MDC-2, GOST R 34.11-94[3]

  非對(duì)稱(chēng)加密:

  RSA, DSA, Diffie–Hellman key exchange, Elliptic curve, GOST R 34.10-2001[3]

  這些都為官方解釋?zhuān)?jiǎn)單的理解為openssl就是一個(gè)集合,這個(gè)集合里面集成了許多的加密算法,而這些加密算法的使用方式都不同,所以openssl就用自己的功能來(lái)調(diào)用它們從而達(dá)到數(shù)據(jù)加密的效果。

  OpenSSL基本使用

  OpenSSL程序包由:openssl、libcrypto、libssl三個(gè)軟件包組成

  openssl:多用途的命令行工具,各功能分別使用子命令實(shí)現(xiàn)

  libcrypto:公共加密庫(kù)(存放了各種加密算法)

  libssl:ssl協(xié)議的實(shí)現(xiàn)

  OpenSSL命令行使用方法:

  openssl command [command_options] [args]

  查看openssl版本:openssl version

   OpenSSL原理及基本使用

  可以看出當(dāng)前centos系統(tǒng)內(nèi)置版本為1.0.1e(未升級(jí)前的版本,此版本帶有漏洞,如需生產(chǎn)環(huán)境使用請(qǐng)自行下載1.0.1g版本以后的版本)

  OpenSSL實(shí)現(xiàn)對(duì)稱(chēng)加密,使用enc這個(gè)子命令,使用方法 :

  加密方法:

  openssl enc -e -算法 -a -salt -in 原文件 -out 加密后保存的文件

  解密方法:

  openssl enc -d -算法 -a -salt -in 加密文件 -out 解密后保存的文件

  -e:encrypt加密

  -d:decrypt解密

  -a:基于base64

  -salt:加“鹽”,可以理解為添加了一個(gè)隨即數(shù),每次生成的隨機(jī)數(shù)都是不同的就算使用相同      密碼結(jié)果也是不同的。

  注:加密和解密算法必須使用相同的算法,不然會(huì)導(dǎo)致解密出來(lái)的內(nèi)容為亂碼

  示例1:加密etc目錄下的passwd文件并保存到當(dāng)前目錄下

  openssl enc -e -des -a -salt -in /etc/passwd -out ./passwd.crypt

   OpenSSL原理及基本使用

  加密完后繼續(xù)編輯文件會(huì)發(fā)現(xiàn)是一堆密碼

 OpenSSL原理及基本使用   

  解密文件

  openssl enc -d -des -a -salt -in passwd.crypt -out passwd

   OpenSSL原理及基本使用

  再次打開(kāi)此文件會(huì)發(fā)文件正常使用

   OpenSSL原理及基本使用

  OpenSSL 實(shí)現(xiàn)非對(duì)稱(chēng)加密,也就是所說(shuō)的公鑰和私鑰,使用genrsa子命令,非對(duì)稱(chēng)加密是通過(guò)生成私鑰來(lái)提取公鑰因此私鑰不可以讓除當(dāng)前用戶(hù)以外的任何用戶(hù)可以查看到。

  加密方法:

  (umask 077;openssl genrsa -out 私鑰保存位置  加密長(zhǎng)度)

  這里的括號(hào)代表在子進(jìn)程中運(yùn)行因?yàn)橐薷膗mask值并且這行命令運(yùn)行完成后子shell就會(huì)退出并不會(huì)影響到當(dāng)前系統(tǒng)中的umask值,使用分號(hào)代表在同一行執(zhí)行命令

  提取公鑰

  openssl rsa -in 私鑰 -pubout

  實(shí)例2:生成私鑰文件并且提取出公鑰

  (umask 077; openssl genrsa -out crypt.key 2048)

   OpenSSL原理及基本使用

  提取公鑰:

  openssl rsa -in crypt.key -pubout > pub.key

   OpenSSL原理及基本使用

  OpenSSL實(shí)現(xiàn)單向加密一般用于校驗(yàn)文件完整性操作,常用有md5和sha1等。(文件被修改后md5值和sha值都會(huì)改變)

  加密方法:

  openssl dgst -加密算法 文件路徑

  示例3:獲取文件md5值

  openssl dgst -md5 passwd

  OpenSSL原理及基本使用

  以上加密方法都可以使用–help來(lái)獲取幫助信息也可以使用man手冊(cè)頁(yè)查看幫助信息

  openssl enc | genrsa | dgst –help或者man enc | genrsa | dgst

    文章來(lái)源:http://jyxnt.blog.51cto.com/9581167/1590235

上一篇:安卓防火墻 PS DroidWall

下一篇:用于服務(wù)器接入的防火墻網(wǎng)關(guān)的八個(gè)關(guān)鍵性功能