1. 程式人生 > >加解密技術,以及私有CA的搭建

加解密技術,以及私有CA的搭建

加密、解密、openssl

一、前言

進入21世紀,人們的生活已經嚴重依賴於互聯網,衣、食、住、行,互聯網已經滲透到生活的第一個角落,這也給某些不良網民們提供了一個絕佳的環境去竊取我們的信息,讓我們的信息不再安全。為了應對這些hacker和script boys,我們的白帽們也一直在努力,從沒松懈過。

因為我還距白帽的能力有些差距,所以這裏就簡單介紹一下互聯網的加密、解密方式、openssl的基本應用及CA的實現過程。

二、加密方式

1、對稱加密
加密和解密使用同一密鑰:具體使用的算法;

DES:通用加密標準,56bits密鑰

3DES(triple):

AES:高級加密標準,128Bbits,196、256...
特性:

1)、加密方、解密方使用同一個口令

2)、將原文分割成固定大小的塊,對這些塊逐個進行加密
缺陷:
1)、加解密使用同一個密鑰
2)、密鑰分發困難

在加密數據時,由於逐字符加密速度實在是太慢了,所以就選擇了對其按塊進行加密,而且在加密時通常把第一個塊加密以後,再把第二個塊加密,將第一個塊加密後的結果與第二個塊加密之後的結果做異或運算,然後再做為第二個塊的輸出,前後塊形成了塊鏈。所以如果想要看第一塊的內容,必須拿到前一個塊做異或運算,才能得到結果。

對於一些大的購物網站來說,它需要保存每個用戶的密鑰,這就造成了一定的麻煩。而且在數據傳輸的過程中是很容易被竊取並篡改,然後進行字典攻擊,無法保證用戶身份認證和數據的完整性的。

2、公鑰加密

公鑰加密會在本地生成一對密鑰對兒:公鑰和私鑰。公鑰任何人都可以擁有,但私鑰只有自己擁有

公鑰:從私鑰中提取生成,公開給所有人
私鑰:通過加密工具創建,使用者自己保留

公鑰加密的特性和用途
特性:
通過公鑰加密的數據只能夠使用對應私鑰解密,反之亦然

用途:
1)數字簽名:讓接受放確認發送方的身份
身份認證:發送方使用自己的私鑰加密一個文件的特征碼給接收方--》
接收方使用發送方的公鑰能夠解密確認文件為發送方發送
2)密鑰交換:發送方使用接受放的公鑰加密加密一個對稱加密的機密發送給接收方,而後接收方使用私鑰進行解密得到對稱加密密碼使

公鑰證書,通常簡稱為證書,是一種數字簽名的聲明,它將公鑰的值綁定到持有對應私鑰的個人、設備或服務的標識。證書的主要好處之一是主機不必再為單個使用者維護一套密碼,這些單個使用者進行訪問的先決條件是需要通過身份驗證。相反,主機只需在證書頒發者中建立信任。大多數普通用途的證書基於 X.509 v3 證書標準。

所以,對於服務器而言,在與用戶進行交互的過程中,需要時直接管用戶要其公鑰就可以了,只有其對應的私鑰才能解密,再也不需要記錄那麽多的密鑰了。在密鑰交換的過程中,依然存在密鑰被截取、偽造。

另外,就算法本身的實現來講,公鑰加密技術比對稱加密技術的速度慢上差不多3個數量級,一個數量級就是10倍,所以3個數量級不是30倍,而是1000倍。因此,在加密數據時是很少用到公鑰去加密的。同樣的,私鑰加密也會很慢。

公鑰加密算法:

DSA:只能夠簽名,不可以加解密
RSA:既能夠簽名,又可以加解密
EIGamal

3、單向加密

單向加密是提取數據的特征碼,保證了數據的完整性

特性:

1)、one-way:單向的

2)、定長輸出、雪崩效應
功能

驗證數據完整性

就好比我們在互聯網上下載東西一樣,好多網站都會提供一個MD5碼,我們把下載下來的數據做一個MD5運算就會得到一個特征碼,只要這個特征碼與網站提供的一樣,那麽就說明這個數據沒有被修改過,那如果二都不一致,那肯定就是被修改過了的。這也就是傳說中的單向性和雪崩效應,微小的改變會導致結果的巨大變化。

一些單向加密算法:

MD5:128bits

sha1:160bits

sha512:512bits

三、加密方式詳解

如上述三種加密方式而言,單單使用哪一種都不能保證數據的完整性和身份認證。尤其在當今互聯網上的信息傳輸一定得保證私密性、身份認證和數據完整性。

下面用一張圖來詳解一下當今互聯網加密、解密的流程:

Bob傳送數據給Alice

技術分享圖片
解釋:

加密過程:

1)、使用單向加密技術提取數據指紋,生成一個特征碼。

2)、用Bob的私鑰對生成的特征碼進行加密。因只有Bob有對應私 鑰,確認身份認證。(註意私鑰一般只會用於加密數據特征)

3)、使用對稱加密技術對數據和特征碼進行加密

4)、用Alice的公鑰對上一步使用對稱加密的數據和數據特征碼 進行加密

解密過程:

1)、使用Alice的私鑰先解密對稱加密密碼。(密鑰交換)

2)、用得到的對稱加密密碼去解密被加密了的數據和特征碼。

3)、使用BOB的公鑰解密特性碼,得到在Bob發送數據的特征碼,並確認了數據的來源可靠性(身份認證)
4)、Alice使用相同的單向加密算法提取數據指紋和之前的指紋進行比較。(數據完整性)

存在問題:

雖然用了這麽多步加密算法去加密整個過程,但在數據的傳輸過程中還是存在漏洞的。因為Bob和Alice的公鑰依然會在網上傳輸,所以這兩個公鑰仍然有可能被竊取、掉包。這個過程還是不完美的,這就需要一個權威的第三方認證機構CA來給他們發證。

加解密技術,以及私有CA的搭建