PKI相關概念及OpenSSL

隨着互聯網的高速普及和發展,已經完全成爲咱們生活中不可缺乏的一部分,它不只提高了咱們的工做效率,還成爲人與人溝通必不可少的橋樑。衆所周知,互聯網這把雙刃劍有時候也會給咱們帶來一些麻煩,而這些麻煩可大可小,在數據爲王的今天,面對各類安全隱患咱們應該如何應對呢?
算法

###############################################
數據庫

1、數據傳輸過程當中的安全隱患vim

2、如何解決數據傳輸過程當中的安全性安全

3、https保證數據安全傳輸bash

4、OpenSSL簡介服務器

5、openssl實現私有CA網絡

6、OpenSSH服務 ###############################################ssh


1、數據傳輸過程當中的安全隱患tcp

機密性ide

使用ftp、http、smtp、telnet這些協議進行傳輸的數據是明文,任何人監聽便可截獲數據,如圖:

完整性

數據傳輸過程當中別人篡改,如圖:

身份驗證

監聽者假裝PAUL身份與KEBO通訊,如圖:


2、如何解決數據傳輸過程當中的安全性

機密性

使用一種轉換規則將明文轉換爲密文傳輸,接收方使用一樣規則轉換將密文轉換爲明文,如圖:

轉換算法:密鑰(就算對方知道轉換算法,不知道祕鑰依然沒法還原plaintext)

對稱加密:加解密同一個密匙,算法計算速度快,安全性徹底依賴於密匙,

   缺點:通訊對象不少的狀況下,沒法有效的對密鑰進行管理。

   優勢:算法計算速度快。

常見類型有:

   DES        Data Encrption Standard 56bit(計算機暴力破解)

   3DES      三次DES(當然能夠解決一部分現有問題)

   AES        高級加密標準    128bit 密鑰

   AES192    AES256    AES512    越長速度越慢,安全性越高

   Blowfish

   大小相同的數據庫(再進行加密)

完整性

發送方提取元數據特徵碼,而且附加在元數據後面,接收方接收到數據以後進行一樣的操做提取特徵碼,對比兩個特徵是否一致,來判斷傳輸過程當中元數據是否被修改如圖:

單向加密算法的特色:

   一、輸入同樣,輸出必然相同

   二、雪崩效應:輸入的微小改變,將會引發結果的巨大改變

   三、定長輸出:不管原始數據多大,結果大小都是相同的(定長輸出)

   四、不可逆:沒法根據特徵碼還原源數據

常見類型有:

   MD4

   MD5

   SHA1

   SHA192    SHA256    SHA384    輸出長度

   CRC-32循環冗餘校驗碼校驗用的,輸入不同,有可能輸出同樣

身份驗證

   非對稱加密算法中,發送方用本身的私鑰加密數據,能夠實現身份驗證,如圖:

非對稱加密算法的特色

   一、公鑰來自於私,鑰公鑰加密私鑰解密。

   二、拿別人公鑰成功解密可證實這我的的身份,由於只有加密者的公鑰能夠解密。

   三、發送方用本身的私鑰加密數據,能夠實現身份驗證

   缺點:公鑰加密算法不多用來加密數據,速度太慢,一般用來實現身份認證。

   優勢:有效解決的對密鑰管理的問題。

證書頒發機構如何簽署證書

首先CA對證書申請者的姓名、地址、公鑰等相關數據提取特徵碼,以後CA用本身的私鑰對這段特徵碼進行加密,這段加密的特徵碼又稱數字簽名,申請者數據和CA的數據簽名共同組成證書。


證書如何確保公鑰的可靠性:

       一、接收方有CA的證書,所以能夠獲得可靠的CA公鑰。

       二、接收方使用CA公鑰解密發送方證書中的特徵碼。

       三、若是能夠機密,則能夠確認此證書確實是CA簽署的(信任具備傳遞性)。

       四、接收方對證書中數據部分提取特徵碼,對比與機密特徵碼是否一致。

       五、若是一致則說明姓名、地址、公鑰等信息徹底可靠。

機密性+完整性+身份驗證

PAUL收到數據,用對稱祕鑰機密實現機密性,用KOBE公鑰機密特徵碼實現其身份驗證,對元數據從新提取特徵碼,對比機密解密出來的特徵碼是否一致實現完整性。

註釋:以上全部內容稱爲PKI,目前流行的TLS/SSL均使用 x509證書格式。

          PKI的第二種實現叫作OpenGPG,也是一種證書管理機制。


3、https保證數據安全傳輸

Secure Socket Layer

    它是https得以實現的一個基礎,它自己只是一個庫,應用層和傳輸層之間,當應用層(http)數據到達傳輸層(tcp)以前,調用SSL加密數據,今後http搖身一變成爲https,smtp成爲smtps,衆多明文協議均可以經過調用SSL實現密文傳輸,可是https和http仍然是兩種徹底不一樣的協調,雖然他們上層的功能是同樣的。

https通訊過程


4、OpenSSL簡介

爲網絡通訊提供安全及數據完整性的一種安全協議,囊括了主要的密碼算法、經常使用的密鑰和證書封裝管理功能以及SSL協議,並提供了豐富的應用程序供測試或其它目的使用,OpenSSL是SSL的開源實現。

文件結構

libcrpto    通用加密庫

libssl         TLS/SSL的實現

                基於會話的、實現了身份認證、數據機密性和會話完整性的TLS/SSL庫

opensll     多用途命令行工具

                實現私有證書頒發機

加解密數據

提取文件特徵碼

生成用戶的密碼串

生成隨機數


5、openssl實現私有CA

建立CA

一、修改配置文件vim /etc/pki/tls/openssl.cnf 如圖:

二、生成一對密鑰(公鑰是從私鑰中提取的)

三、生成自簽證書

三、準備目錄

mkdir certs newcerts crl
touch index.txt
touch serial
echo 01 > serial

客戶端證書頒發請求

每一種應用都有本身的證書,剛纔的祕鑰是CA用的,此處用同一臺機器模擬客戶端,如圖:

CA簽署證書

一、簽署此證書後傳送給客戶端

查看數據庫是否簽署成功


6、OpenSSH服務

openssh是telnet的開源密文實現,telnet爲TCP/23號端口,ssh爲TCP/22號端口,OpenSSH即便軟件,又是協議,常見版本有sshv一、sshv1,因v1沒法有效拒絕中間人***,因此目前v2版較爲常見。

ssh --> telnet如何實現認證加密

一、基於口令的認證(登陸普通用戶,再su到root)

二、基於祕鑰的認證

配置文件

    客戶端     ssh       /etc/ssh/ssh_config

    服務器    sshd     /etc/ssh/sshd_config

基於口令的認證

遠程登陸

以非登錄的方式執行遠程主機命令

基於祕鑰的認證

一、生成一對密鑰

命令默認建立路徑和文件

二、使用ssh-copy-id 工具公鑰傳輸至服務器端某用戶的家目錄下的.ssh/authorized_keys文件中,再次登陸無需密碼。

三、使用scp手動完成複製公鑰至目標主機操做,在沒有ssh-copy-id命令狀況下使用,如圖:

總結:

   一、密碼應該常常換;切足夠複雜

   二、使用非默認端口

   三、限制登陸客戶地址

   四、禁止管理員直接登陸

   五、使用基於祕鑰的認證

   六、僅容許有限用戶登錄

   七、禁止使用版本1

相關文章
相關標籤/搜索