Web安全概述

2021-09-11 14:47:06 字數 2192 閱讀 7997

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

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

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

常見加密演算法有對稱加密和非對稱加密,對稱加密指的是加密和解密用的同乙個金鑰,而非對稱加密的加密過程和解密過程用的是不同金鑰,常見對稱加密有des(data encryption standard,資料加密標準)和aes,而非對稱加密有rsa。

對稱加密演算法

對稱加密演算法我們主要介紹aes(advanced encryption standard,高階加密標準),aes三個基本概念:金鑰、填充、模式。根據金鑰長度,aes又可以細分為aes128、aes192、aes256。下面介紹aes的加密流程,首先將明文分解為大小為128bit小塊,然後將這些明文小塊放入aes加密器各自生成密文塊。當將明文小塊大小小於128bit時,需要對這個明文小塊進行填充操作。而aes加密器提供了cbc、ecb、ctr等5種模式。

非對稱加密演算法

非對稱加密演算法我們主要介紹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。通過計算公式我們也可以發現加密和解密的演算法是不一樣的,這也是」非對稱「的由來。

融合對稱加密演算法和非對稱加密演算法

通過對對稱加密演算法和非對稱加密演算法的介紹,我們知道如果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。因為,這樣的訊息只有私鑰持有者才能做的出來。至此為止,加密演算法和簽名演算法就講解完畢,一條安全的通訊線路的設計也有了乙個比較完美的方案。

web程式概述 開始Web開發 概述

web程式概述 本條目試圖以點的形式總結我在過去兩年中涉及的與基本web開發有關的各種主題,並在適當時包括指向相關條目的鏈結。如果您是出於學習目的或從頭開始製作網頁而使用此部落格,則可能是開始的地方。後面將是 開始css web開發 create a basic html document 建立乙個...

Web安全閘道器概述 最佳部署方法

web安全閘道器可以顯著提高企業的整體安全狀態,但它不是乙個 部署隨即忘記 的產品,web安全閘道器的部署 配置和維護方式都會影響它提供的安全水平。在這篇技術文章中,我們將討論如何通過優化部署 配置和維護來最大限度地發揮對web安全閘道器的投資。選擇乙個web安全閘道器部署策略 為了最大限度地發揮w...

Web應用概述

www全球資訊網,由tim berners lee發明 構成 網頁包含多個物件 物件的定址 url 統一資源定位符 http協議是乙個無狀態協議 伺服器不維護任何有關客戶端過去所發請求的資訊 有狀態的協議更複雜 非永續性連線 永續性連線 ascii 人直接可讀 構成 通過在郵件頭部增加額外的行以宣告...