Web安全概述



互聯網剛開始是安全的,但是伴隨着黑客(Hacker)的誕生,互聯網變得越來越不安全。任何一個事情都有兩面性,黑客也有好有壞,好的黑客叫白帽子,壞的黑客叫黑帽子。與此同時,隨着Web技術發展越來越成熟,而非Web服務(如Windows操作系統)越來越少的暴露在互聯網上,現在互聯網安全主要指的是Web安全。

既然要講Web安全,首先介紹什麼是安全,安全的本質是什麼?引用《白帽子講安全》裏對安全的定義:安全問題的本質就是信任問題。舉例來說,自行車的車鎖,我們認爲是安全的,因爲我們認爲自行車鎖的製造商是不會揹着我們留有鑰匙,如果這個信任都沒有的話,那麼這個自行車就是不安全的。

在介紹完什麼是安全的本質後,我們繼續講解安全的三要素,機密性、完整性和可用性。機密性指的是要求保護數據內容不能泄露,加密是實現機密性要求的常見方法。完整性指的是保護數據內容是完整的、沒有被篡改的,實現完整性的常見方法是數字簽名。可用性要求保護資源是隨需而得,黑帽子通常通過DDos攻擊搶佔服務器的資源,導致正常用戶不能正常訪問。接下來介紹常見的加密算法和數字簽名算法。

加密算法

常見加密算法有對稱加密和非對稱加密,對稱加密指的是加密和解密用的同一個密鑰,而非對稱加密的加密過程和解密過程用的是不同密鑰,常見對稱加密有DES(Data Encryption Standard,數據加密標準)和AES,而非對稱加密有RSA。

1. 對稱加密算法

對稱加密算法我們主要介紹AES(Advanced Encryption Standard,高級加密標準),AES三個基本概念:密鑰、填充、模式。根據密鑰長度,AES又可以細分爲AES128、AES192、AES256。下面介紹AES的加密流程,首先將明文分解爲大小爲128bit小塊,然後將這些明文小塊放入AES加密器各自生成密文塊。當將明文小塊大小小於128bit時,需要對這個明文小塊進行填充操作。而AES加密器提供了CBC、ECB、CTR等5種模式。




2. 非對稱加密算法

非對稱加密算法我們主要介紹RSA算法,RSA算法基於大數分解難而使得該算法異常安全。下面我們開始描述RSA算法,首先選擇兩個充分大的質數p和q,並計算 n=pq。接下來計算m=(p-1)(q-1),最後找出兩個數e和d,使得 (e*d) mod m =1。其中e和n就是公鑰,而d和n就是私鑰。任何知道公鑰的人都可以利用公式 c = a^e mod n把原始數據加密成一個密文,私鑰的持有者可以通過公式 c^d mod n 計算原始數據a。通過計算公式我們也可以發現加密和解密的算法是不一樣的,這也是”非對稱“的由來。

3. 融合對稱加密算法和非對稱加密算法

通過對對稱加密算法和非對稱加密算法的介紹,我們知道如果A、B兩個人想要建立會話,爲了保證會話的機密性,我們需要對數據進行加密,這個密碼本只有A、B兩個人知道,而如何保證這個密碼本在傳輸的過程中被第三者竊取呢?我們可以通過非對稱加密對密碼本進行加密,即A首先呼叫B,並索要B的公鑰,然後用B的公鑰對密碼本進行加密並將密文發送給B,B收到A的消息之後,用自己的私鑰進行解密。這個過程看起來已經很完美了,但是有一個讓人意想不到的漏洞--中間人攻擊。中間人在網絡中發現A索要B的公鑰這條消息,當B將自己的公鑰發送給A時,中間人截取B的公鑰,並將自己的公鑰發送給A。接下來,A將自己的密碼本通過中間人的公鑰繼續加密發送給B,中間人截取A發出來的這條消息,用自己的私鑰進行解密,然後用B的公鑰進行加密,重新發送給B。B收到消息後並不會發現什麼異常,因爲B能用自己的私鑰進行解密。但是它們都不知道中間人已經完全掌握了它們的密碼本。

中間人攻擊是在獲取對方公鑰的時進行替換,那麼,解決這個問題的辦法就是建立一個獲取對方公鑰的可信渠道。一個簡單而有效地辦法就是建立一個所有人都信任的權威機構,有改權威機構來存儲並分發大家的公鑰。這就是我們通常所說的數字認證機構,英文是Certificate Authority,簡稱CA。任何人都可以申請把自己的公鑰放到CA上去,不過CA必須親自檢驗申請者是不是符合資格。如果A想要和B建立會話,那麼A直接從CA出獲取B的公鑰,這樣A就不用擔心拿到的公鑰是不是假的。

簽名算法

中間人既然能假扮公鑰,會不會假扮CA呢?答案是肯定的。這樣一來,CA不但需要向A保證“這個公鑰確實是B的”,還要向A證明”我確實是CA“。對應的解決方法是數字簽名算法。CA首先生存一個自己的公鑰私鑰對,然後將公鑰公之於衆。之後,CA對每條發出去的消息都用自己的私鑰加個密作爲簽名,以此證明消息的來源是真實的。接受方收到消息之後,用CA的公鑰進行解密,如果能解得開,則說明對方一定是真實的CA。因爲,這樣的消息只有私鑰持有者才能做的出來。至此爲止,加密算法和簽名算法就講解完畢,一條安全的通信線路的設計也有了一個比較完美的方案。


資源 | 乾貨 | 感悟

長按二維碼,關注“木可大大”

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