1. 程式人生 > >計算機網路知識回顧----網路安全

計算機網路知識回顧----網路安全

    前面對基於TCP/IP協議的計算機網路的五層逐一進行了整理總結。 不得不說效果是很顯著的,很多以前不懂得知識可以通過該書進行自解釋。  嚐到了甜頭,幹勁自然很足。 所以今天繼續將網路安全的知識進行梳理。 這在課堂上是沒有上過的,因為本科課程限制不可能講這麼多。  但是越到後面越會發現,自學與學習的區別定界實在是很模糊。 如果不是自發的學習,被動學習後可能任然要進行自我的學習。 這大概就是自我迭代吧!

網路安全的內容:

        1.計算機網路面臨的安全性威脅和計算機網路安全的主要內容

        2.對稱金鑰密碼體制 和公鑰密碼體制的特點。

        3.數字簽名與鑑別的概念。

        4.網路層安全協議IPsec協議 和 運輸層安全協議SSL/TLS的要點

        5.系統安全的內容: 防火牆 與 入侵檢測。 

計算機網路面臨的安全性威脅:

      計算機網路上的通訊通常面臨兩種型別的威脅,即被動攻擊主動攻擊。 

       被動攻擊: 

               指攻擊者從網路上竊聽他人的通訊內容。 通常稱之為截獲,或流量分析。 攻擊者知識觀察和分析某一個協議資料單元PDU而不干擾資訊流。 

        主動攻擊

                篡改:也稱為更改報文流。

                惡意程式: 包括:

                                    計算機病毒,通過修改其它程式將自身或自身變種複製進去,以達到摧毀正常檔案的目的。

                                    計算機蠕蟲,將自身從一個節點發送到另一個節點並自動啟動執行的程式。

                                    特洛伊木馬, 執行的功能並非它所聲稱的功能,而是某種惡意的功能。

                                    邏輯炸彈, 一種當執行環境滿足特定條件執行特殊功能的程式。 

                  拒絕服務

                                 指攻擊者向因特網上的某個伺服器不停地傳送大量分組,使得因特網或伺服器無法提供正常服務。 稱之為拒絕服務Dos(Denial of Service),若攻擊者來自於成千上萬的因特網其它主機,稱之為DDos(Distributed Denial of Service). 也稱為網路頻寬攻擊,或連通性攻擊。 

         對付被動攻擊,通訊安全的目標:

                   防止析出報文內容和流量分析,通常採用各種資料加密技術。

         對付主動攻擊,通訊安全的目標:

                   防止惡意程式,通常通過防火牆和入侵檢測。

                   檢測更改報文流和拒絕服務, 通常通過加密技術和適當的鑑別技術相結合。

計算機網路安全的內容:

        1.保密性。通常採用密碼機制,如訪問控制中登陸口令的設定,安全通訊協議的設計,數字簽名的設計都離不開密碼機制。 

        2.安全協議設計,人們一直希望能設計出一種安全的計算機網路,但不幸的是網路的安全性是不可判定的。

        3.訪問控制,也叫做存取控制和接入控制。 必須對接入網路的許可權加以控制,並規定每個使用者的接入許可權。 

資料加密模型:

    一般的資料加密模型:加密金鑰,加密演算法,解密金鑰,解密演算法。金鑰通常是通過金鑰中心提供,金鑰的傳送一定要通過一個安全通道。不能與資料傳輸在同一個通道。 解密演算法是加密演算法的逆運算。 加密金鑰與解密金鑰必然具有某種相關性。  各自由密碼學的編碼密碼學,以及密碼學中的密碼分析學做出理論支撐與指導。

    20世紀70年代後期,美國的 資料加密標準DES(Data Encryption Standard) 和 公鑰密碼體制(public key crypto-system)成為近代密碼學發展史上的兩個重要里程碑。

    兩類密碼體制

          對稱金鑰密碼體制

                所謂對稱,是指 加密金鑰與解密金鑰是相同的金鑰。要做到這一點,一種是事先約定,另一種是通過信使來傳送金鑰。 

                資料加密標準DES屬於對稱金鑰密碼體制,它的保密性僅取決於對金鑰的保密,而演算法的是公開的。它的金鑰長度為為64位,有8位用作奇偶校驗,因此實際的密碼長度是56位。  因此在可允許的時間範圍內具有暴力破解的可能性,如1999年,即可在高效能運算機上平均21分鐘破解一個56位長的DES金鑰。

                之後出現的 國際資料加密演算法IDEA(International Data Encryption Algorithm),使用了128位金鑰,已經在容許的時間內是比較安全的了。  

          公鑰密碼體制

                由斯坦福大學於1976年提出。  它使用了不同的加密金鑰與解密金鑰。  它的出現主要是因為兩個方面的原因,一是由於對對稱金鑰密碼體制的金鑰分配問題;  二 是 由於對數字簽名的需求。

                在公鑰密碼體制中,加密金鑰PK(public key,即公鑰)是向公眾公開的,而解密金鑰SK(secret key,即私鑰或金鑰)則是需要保密的。加密演算法E (encrypt) 和 解密演算法 D(deencrypt)也是公開的。

                公鑰密碼體制提出不久,人們就找到了三種公鑰密碼體制。  目前最著名的時由美國三位科學家 Rivest, Shamier 和 Adleman於1976年提出並在1978年正式發表的RSA體制。 它是一種基於數論中的大數分解問題的機制。

                金鑰的產生器產生出接收者B 的一對金鑰: 加密金鑰PKb 和 解密金鑰SKb。  雖然在計算機上可以容易地產生成對的PKb 和SKb 。 但是從已知的PKb 實際上不可能推匯出SKb, 即從公鑰推算出私鑰是:“計算上不可能的”。   公鑰只可以用來加密,不能用來解密。 

數字簽名:

        數字簽名的要求:

              1.接收者必須能夠核實傳送者對報文的簽名。 稱為報文鑑別

              2. 接受者確信所收到的資料和傳送者傳送的完全一樣而沒有被篡改過。 即報文的完整性

              3. 傳送者事後不能抵賴對報文的簽名,稱為不可否認

         數字簽名的過程

              傳送方用其自身的私鑰對報文進行D運算,得到了某種不可讀的密文。(這個過程並不是進行解密)。 傳送方將經過D運算的不可讀密文傳送給接收方。 接收方問了核實簽名,可用傳送方的公鑰進行E運算即可還原出明問。  注意,任何人用傳送方的公鑰即可獲得傳送方的明文。 

               為了處理保密的問題,通常可以採用同時實現祕密通訊和數字簽名,模型如下圖:

鑑別:

      鑑別是要驗證通訊的雙方的確是自己所要通訊的物件,而不是其它的冒充者。 注意,它與授權是不同的,授權涉及到的問題是: 所進行的過程是否被允許。 

      報文鑑別

             需多報文並不需要加密但是需要數字簽名,以便讓報文的接收者能夠鑑別報文的真偽。  當我們傳送不需要加密的報文時,應當使接收者能夠用很簡單的方法鑑別報文的真偽。 

            報文摘要MD(Message Digest)時進行報文鑑別的簡單方法。 它的優點是,僅對短得多的定長報文摘要進行數字簽名要比整個長報文進行簽名簡單得多,所耗費的計算資源也要小很多。 但對鑑別報文來說,效果是一樣的。 都是不可偽造,可檢驗和不可否認的。

            報文摘要演算法時精心選擇的一種單向函式。  也就是說,一個很長的報文我們可以輕易的計算出它的檢驗和,檢驗和的長度固定,並且很短。 但是我們不可能進行逆運算,由檢驗和把原始的報文計算出來。RFC 1321 提出的報文摘要演算法MD5 已獲得廣範應用。 可任意長的報文進行運算,然後得出 128位的MD5報文摘要程式碼。  

               MD5演算法的大致過程:

                              1,把任意長的報文按模 2^64計算餘數,追加在報文後面。

                              2. 在報文和餘數間填充1-512位,使得填充後的總長度是512的整數倍。 填充首位是1,其餘都是0.  
                              3.將填充後的報文分未若干個512位資料塊,對每個資料塊分層4個128位資料塊一次送到不同的雜湊函式進行4輪計算,每一輪都該32位資料塊進行復雜的運算。  這樣MD5報文摘要就與程式碼中原來每一位都有關。

            另一種標準稱為: 安全雜湊演算法SHA(Secure hash Algorithm).  與MD5類似,但是碼長160位,更安全但是計算也要慢些。 

     實體鑑別

          實體鑑別是在系統接入的全部持續時間內對和自己通訊的對方實體只需驗證一次。 

          在這個途中,容易出現重放攻擊,以及中間人攻擊。 公鑰體制是一個比較理想的方式,但是也會由於金鑰分配的問題而產生中間人攻擊的漏洞。  詳情見書。網路安全章節。

金鑰分配:

       金鑰分配(或金鑰分發)是金鑰管理中的最大問題。 包括對稱金鑰的分配,以及公鑰的分配。

  對稱金鑰的分配:

       目前常用的金鑰分配方式是設立金鑰分配中心KDC(Key Distribution Center)。 KDC 是大家都信任的機構,它的任務就是給需進行祕密通訊的使用者臨時分配一個會話金鑰。(僅使用一次)。 

       目前最出名的金鑰分配協議是: Kerberos V5。 Kerberos 使用比DES更加安全的 先進的加密標準AES(Advanced Encryption Standard)進行加密。  Kerberos使用了兩個伺服器: 鑑別伺服器AS(Authentication Server), 票據授予伺服器TGS(Ticket-Granting Server)。

   公鑰的分配:

         在公鑰密碼體制中,公鑰也不能隨意公佈。 需要有一個值得信賴的機構來將公鑰與其對應的實體(人或者機器)進行繫結。 這樣的機構叫做認證中心CA(certification Authority)。 每個實體都有CA發來的證書(certificate), 裡面有公鑰以及擁有者的標識資訊(人名或IP地址)。 此證書被CA進行了數字簽名。 

         為了使CA具有統一的格式,ITU-T制定了X.509協議標準,用來描述證書的結構。 

網路層的安全協議:

     IPsec協議:

          是IP security 協議的縮寫。   詳情翻閱計算機網路網路安全章節。。。

運輸層的安全協議:

       比較出名的有:

          安全套接字層SSL(Secure Socket Layer)。

          運輸層安全TLS(transport layer security)。 

     SSL 協議:

            是網景公司1994年開發的安全協議。  SSL作用在端系統應用層的HTTP和運輸層之間,在TCP之上建立起一個安全通道,為通過TCP傳輸的應用層資料提供安全保障。 

             1995年,網景公司把SSL交給IETF希望能夠將SSL標準化。 於是IETF在SSL 3.0的基礎上設計了TLS協議,為所有基於TCP的網路應用提供安全資料傳輸服務。 

             當用普通不加密的瀏覽器檢視網頁時,HTTP就直接使用TCP連線,這是SSL/TLS不起作用。 當使用信用卡進行網上支付而鍵入信用卡密碼時, 就需要使用安全的瀏覽器。  這時, HTTP 就呼叫SSL/TLS對整個網頁進行加密。 這是網頁上會提示使用者,在網址欄原來現實HTTP 的地方就會變成https。 

     SSL提供的安全服務

         1.SSL伺服器鑑別。 允許使用者證實伺服器的身份。  支援SSL的客戶端通過驗證來自伺服器的證書,來鑑別伺服器的真實身份並獲得伺服器的公鑰。 

         2. SSL客戶端鑑別,SSL 的可選安全服務,允許伺服器證實客戶的身份。 

         3. 加密的SSL對話,對客戶和伺服器間傳送的所有報文進行加密,並檢測報文是否被篡改。 

    SSL的工作過程

          使用SSL為客戶提供服務的全球資訊網伺服器使用SSL 的預設埠443來取代普通全球資訊網服務的80埠。。 並且該安全網頁URL中的協議標識用https代替http。 當顧客點選該網站連結建立起TCP連線後,先進行瀏覽器和伺服器之間的握手協議,完成加密演算法的協商和會話金鑰的傳遞,然後進行安全資料傳輸。 

           其簡要過程:

                 1.協商加密演算法。 瀏覽器向伺服器傳送瀏覽器的SSL版本號和一些可選的加密演算法,伺服器從中選取自己所支援的演算法,並告知A。

                 2. 伺服器鑑別。  伺服器向瀏覽器傳送一個包含其 RSA公鑰的數字證書。 瀏覽器使用該證書的認證機構CA的公開發布的RSA公鑰對該證書進行驗證。 

                 3. 會話金鑰計算。 由瀏覽器隨機生成一個祕密數,用伺服器B 的RSA公鑰進行加密後傳送給瀏覽器。 雙方根據協商的演算法產生一個共享的對稱會話金鑰。 

                 4. 安全資料傳輸。 雙方用繪畫金鑰加密和解密傳送的資料並驗證完整性。 

系統安全:防火牆與入侵檢測

       惡意使用者或者軟體通過網路對計算機系統的入侵或攻擊已成為當今電腦保安最嚴重的威脅之一。 加密技術並不能阻止植入了“特洛伊木馬”的計算機系統通過網路向攻擊者洩露祕密資訊。 

       防火牆

              防火牆是一種訪問控制技術。 它通過嚴格控制進出網路邊界的分組,禁止任何不必要的通訊,從而減少潛在入侵的發生,儘可能降低這類安全威脅所帶來的安全風險。 

              防火牆位於因特網和內部網路之間。 因特網的這邊時防火牆的外部,內部網路這邊時防火牆的裡面。 一般把防火牆的裡面的網路稱為 “可信網路“,防火牆的外面稱為”不可信網路“。 

        防火牆技術分類

              1. 分組過濾路由器。 它根據過濾規則對進出內部網路的分組執行轉發或者丟棄。 注意該分組是雙向的,即可以限制入站規則,也可以限制出戰規則。 

               2. 應用閘道器,也稱為代理伺服器。 他在應用層通訊中扮演種報文中繼的角色。 所有進出網路的應用程式報文必須通過應用閘道器。  應用閘道器根據相應規則檢視是否合法,若合法則轉發,若不合法則丟棄。    它的缺點是,每個應用都需要一個應用閘道器(可以執行在同一臺主機上)。 其次,在應用層轉發和處理報文,處理負擔較重。 

    入侵檢測系統IDS(Intrusion Detection System)

           由於防火牆只能在侵入行為發生之前阻止可疑通訊,但是不能阻止所有的入侵行為。   IDS能夠用於檢測多種網路攻擊,包括網路對映,埠掃描,DoS攻擊,蠕蟲和病毒,系統漏洞攻擊等。 

           入侵檢測方法一般可以分為:  基於特診 的入侵檢測   和 基於異常的入侵檢測。   至今為止,大多數部署的IDS主要是基於特徵的。