Global Sources
電子工程專輯
 
電子工程專輯 > 嵌入式技術
 
 
嵌入式技術  

嵌入式系統的網路連接安全策略

上網時間: 2003年01月28日     打印版  Bookmark and Share  字型大小:  

關鍵字:network  網路  Internet  網際網路  embedded system 

一般而言,網際網路安全是指保障資料在網路中安全傳輸的整套服務。一些在網路中傳輸的資訊,如金融和法律文檔具有很強的保密性,不同的產品和應用具有不同的安全性需求。

網際網路的安全服務很大程度上決定於服務供應商的可信任度。當節點A需要將信用卡號發送至節點B時,穩妥的方法是驗證節點B的真實身份。這時,節點A必須信任節點B,或信任為節點B身份進行擔保的第三方。網際網路安全的核心就在於推進不同網路節點之間的信任關係。當然,這絕不是盲目信任。例如,節點A可獲準請求節點B的特定服務,但不允許請求其它服務,具體能獲得的服務取決於節點B對節點A的信任度。圖1:信任度等級金字塔結構。

在規定整套網際網路安全服務之前,每種產品都必須明確可能存在的安全威脅,並對網路中其它節點所用的安全協議進行評估(大多數HTTP伺服器支援SSL協議)。

圖1顯示了信任等級的金字塔結構。信任金字塔的最底層是完整性,完整性可確保兩個網路節點之間的消息流不受到干擾。完整性得到保障的網路通訊訊息通道可防止第三方的惡意資訊影響節點間的正常通訊,或改變資訊流的正常順序,以及插入額外消息或在消息流中刪除消息。

完整性還包括鑒權。透過鑒權可以確定某個節點是否真的名副其實,如果節點A的身份得不到證實,那麼就不能設立通訊。交易的不可否認性與鑒權密切相關,它能確保發送方無法否認成功傳送的數位簽名資訊。

保密性可以保證消息的發送方和預期的接收方是唯一能在某個時間內對消息流內容進行解密的兩個網路實體,可以保護通訊訊息通道免遭被動攻擊,如資料包偵聽。實現保密性需要採用加密技術,而保密性的最高保護形式是對節點A與B之間傳輸的所有資訊進行加密。

信任金字塔的最高層是授權。一旦網路客戶的身份得到驗證,將獲準在伺服器上請求各種服務,如Telnet或FTP,但每個網路客戶在伺服器上獲得的授予權利不一定相同。初始授權一般歸屬於系統管理員,而網路協定可以提供基本架構以設立用戶身份標識,並在網路節點之間傳送授權。

上面概述了網際網路安全性的範圍,下面將描述安全網際網路訊息通道的基本構件模組。這些構件模組包括:

1. 加密和解密;2. 數位簽名;3. 消息摘要(message digest);4. 公共密鑰架構;5. 證書。

加密和數位簽名圖2:對稱加密方法。

網路通訊加密可實現保密的資訊傳輸,本文主要介紹兩類加密演算法。第一類,也是最基本的一類是對稱加密。對稱加密最常用的加密方法是採用資料加密標準(DES),對稱加密方法的概念非常簡單,如圖2所示。

採用對稱加密方法時,節點B發送加密消息至節點A,原始資料均為明文,而加密後的資料則為密文。加密的過程中採用某些共享的保密資料(也稱為密鑰)將明文轉換為密文,再將密文轉換為明文。密鑰是加密和解密算法都必須採用的一段資料。

採用對稱加密方法的一個簡單實例就是ROT13。ROT13在加密過程中使ASCII文本的每個字符程式碼加13,而在解密過程中則使每個字符程式碼減13。加密後的取值受限於字母表的字母範圍,例如A轉換為N,P轉換為C。

為了採用對稱加密,節點B和節點A不僅需要對採用的算法達成一致,而且還必須對密鑰達成一致,這也是對稱加密的一個缺點。如果為確保安全通訊,節點B和節點A必須預先了解算法和密鑰,那麼如何設立一個安全的通訊訊息通道呢?這是一個經典的先有雞還是先有蛋的問題。這?有兩種解決方案:

在安全通訊訊息通道設立之前,節點B將密鑰(可能還包括算法)發送至節點A。該解決方案一個明顯的缺點是任何對資料包進行偵聽的人都可以獲得密鑰,因而能解密隨後所發送的任何消息。另一種方法是,密鑰(可能還包括算法)以另一種不同方式發送,這種發送過程可能要涉及到硬體設備、單獨的網路協定或作為密鑰的密鑰口令,但不能以不安全的方式分發。

密鑰分配是安全系統的一個基本問題。Whitfield Diffie和Martin Hellman在《New Directions in Cryptographyformation Theory》一文中提出了一些改進的方法。這些想法後來被稱為公共密鑰加密方法。本文將研究不對稱加密方法,而公共密鑰加密就是基於不對稱加密方法。不對稱加密方法具有兩套截然不同的密鑰,一套用於加密而另一套用於解密。發送方採用加密密鑰對消息加密,接收方則採用解密密鑰對消息解密。

公共密鑰加密方法進一步提高了網路的安全性。假定加密密鑰是公開的,但解密密鑰(私人密鑰)則為保密的,該密鑰只有接收方知道。消息發送方(節點B)採用公共密鑰對消息內容加密,接收方(節點A)則採用私人密鑰對消息解密。由於只有節點A知道其私人密鑰,因此可以確保節點A是唯一能對消息解密的節點。公共密鑰加密方法如圖3所示。圖3:採用公共密鑰的不對稱加密方法。

某些不對稱加密演算法也可逆向工作(最常用的是RSA)。在可逆算法中,私人或公共密鑰都適用於加密,而另一密鑰則用於解密。可逆算法適用於驗證身份,假定節點B希望向節點A證明身份,節點B可利用私人密鑰對一些眾所周知的資料(節點A事先已了解這些資料)進行加密,並將資料傳送給節點A。節點A利用節點B的公共密鑰對資料解密和比較。如果資料匹配,則顯示節點B通過了身份驗證,因為只有節點B才能發送原始資訊。

數位簽名也可基於可逆算法來實現。在這種情形下,節點B將採用私人密鑰對資料加密並傳送至節點A。之後,節點B不能否認向節點A發送了資料,因為只有節點B才能利用其私人密鑰對資料加密。採用公共密鑰加密的工作原理如圖4所示。

不對稱加密方法本身在安全方面與對稱加密方法相似,不對稱加密方法只是為密鑰發送提出了一種更可行的模型。決定加密方法優劣的最主要因素是密鑰的長度以及解密密鑰的難易程度。只要時間和資金充足,任何加密方法都是可以被解密。能滿足下述條件的加密方法通常認為是安全的:


1. 對加密方法解密所需的時間超過加密資料的有效存在期;


2. 解密加密方法的成本超過加密資料的自身價值。

與對稱加密方法相較,不對稱加密方法的主要缺點是加密所需的處理時間較長。例如,在網際網路上應用最廣泛的RSA加密演算法就需要對兩個非常大的質數之積進行因式分解。對稱加密方法的處理速率一般比不對稱加密方法高一個數量級,因而降低處理器的負載。

因此,安全協議(如SSL/TLS)提供了密鑰安全交換的機制,一般密鑰通常採用公共密鑰加密策略傳送。在上述示例中,節點B產生密鑰並利用節點A的公共密鑰進行加密,然後再傳送給節點A。由於只有節點A能解密該資訊,因此在整個線路上發送該密鑰並不會降低密鑰的安全性。一旦節點A收到該消息,就可採用更快的密鑰方法(如DES)進行通訊。

消息摘要圖4:採用公共密鑰的數位簽名。

消息摘要是將任意長度的位序列和密鑰作為輸入,輸出固定長度位序列的一種算法。輸出序列代表了輸入序列的內容,而且算法可保證消息的完整性。輸入位的改變直接導致輸出改變。當輸入與只被發送方和接收方所知的密鑰相結合時,消息摘要還可驗證身份。最常用的兩種消息摘要算法是消息摘要5(MD5)和安全散列算法1(SHA-1)。由於SHA-1通常採用的密鑰長度較長,因此安全性高於MD5。

摘要算法可用來運算消息載荷的消息驗證程式碼(MAC),MAC可作為安全校驗和。只需以共享密鑰和消息載荷為輸入序列,即可採用上述任意一種摘要算法運算MAC。MAC不僅能為抵禦網路主動攻擊(如篡改或偽造消息包)提供保護,而且當未採用加密時還可用來保障完整性(而非身份)。像SSL/TLS這些協議則採用了以上兩種MAC算法(MD5和SHA-1),這樣當一種算法失效時,仍然能採用另一種算法保護消息。

MAC還適用於數位簽名。假定發送方和接收方在MAC運算中共享同一密鑰,發送方可採用MAC對消息載荷加密,而接收方同樣可採用共享密鑰運算MAC。只有當兩者的MAC值匹配,發送方才能發送這條消息。

公共密鑰和證書

公共密鑰加密策略推動了三類網路安全服務的發展:加密和解密、數位簽名和密鑰交換。本文不涉及密鑰管理問題,而主要討論以下問題:

1. 誰產生了這些密鑰對?2. 這些密鑰對儲存在何處?3. 怎樣確認密鑰產生者的身份?

第一個問題很容易回答,可由身份明確的電腦產生密鑰。例如,網路瀏覽器和一些電子郵件程式就包含產生這些密鑰對的軟體。這些密鑰儲存在本地電腦上,一經產生即可公佈公共密鑰。像SSL/TLS這些協議還包含一些規定網路節點如何傳送公共密鑰的條款。圖5:具有SSL/TLS的協議棧。

公共密鑰加密方法並不特別安全,如果任何電腦都能產生密鑰對,那麼根本就不能進行身份驗證。一些不良用戶可輕易地產生密鑰對,因而假冒第三方進行通訊。

上面的身份驗證問題可由認證機構(CA)解決。產生密鑰對時,將公共密鑰提交給CA。認證機構負責驗證提交密鑰對的個人或組織的身份和證明。驗證的等級從只驗證姓名和電子郵件地址到透過信用卡或信用報告驗證提交者的身份。

一旦CA驗證了提交者的身份,就會發給認證證書。在網路交易中,由證書設立單方或雙方的身份來設立一種信任關係。證書可由CA以數位方式進行簽發。這樣,如果CA值得信任,那麼就該相信CA頒發的證書,並信任經過認證過的公共密鑰。數位證書具有很多種形式,本文主要介紹的網際網路安全協議中常採用的X.509。X.509屬於ITU規格,此類證書通常包含:


1. 提交者公共密鑰;2. 發佈證書(CA)的機構名稱;3. 證書的有效期限;4. 數位簽名算法;

5. 認證機構的數位簽名。

SSL和TLS協議

在1995年,Netscape公司開發了安全套接層協議(SSL)並首先應用於Navigator產品中。網際網路工程任務組(IETF)接受了該協議並最終發佈了RFC 2246協議。SSL和TLS這兩個網路協定非常相似,只是一些加密演算法和MAC算法略有不同。本文將重點研究該協議,為簡化起見,將兩者統稱為TLS。TLS包含如下內容:


1. 算法協商;2. 加密和解密;3. 透過MAC的消息驗證;4. 密鑰交換;5. 數位簽名。

如圖5所示,TLS必須位於某些可靠連接協議的上層,而可靠連接實際上就是指TCP。那些通常直接執行於TCP之上的高層協議,如HTTP和SMTP也可執行於TLS之上。目前已經提出了將TLS與telnet、FTP、Kerberos及其它協議一起使用的網際網路草案。

TLS工具套件一般用來精確地模擬套接字編程介面,具有套接字特徵的API可以簡化高層協議(如HTTP)的編程實現。

實際上,TLS採用了兩種策略來保障協議安全。第一種採用不同的埠進行安全的資料傳輸,這時高層協議必須偵聽常規埠以及用來傳輸網路消息的安全埠。第二種策略在高層協議的常用埠必須區分常規傳輸流和安全傳輸流。HTTP協議採用第二種策略,當URL以https://開頭時,就將在客戶端(網路瀏覽器)和HTTP伺服器之間設立安全訊息通道。

TLS連接的會話的發起者總是客戶端。一個基於RSA加密演算法的TLS會話設立過程如下(見圖6,其它的加密演算法與該方法相似):

第1步,客戶端透過發送‘hello’消息設立TLS連接。該消息包含協議版本號(SSL為3.0,TLS為3.1)、客戶端支援的加密方法、MAC和壓縮規則。客戶端還發送一串用以產生主秘(master secret)的隨機數;

第2步,伺服器發送支援的TLS版本號,並選擇第1步中提出的一種加密方法?MAC。伺服器也將發送一串用以產生主秘的隨機數;

第3步,伺服器發送包含伺服器公共密鑰的認證;圖7:TLS記錄層格式。

第4步,伺服器通知客戶端可以開始產生密鑰。如前所述,不對稱加密的運算量高於對稱加密,這就是為什麼像SSL/TLS和IPSec這樣的協議會對應用資料採用對稱加密的原因;

第5步,客戶端產生預主秘(premaster secret),這是另一串隨機數。預主秘採用伺服器的公共密鑰進行加密,並在第5步中發送至伺服器。這時伺服器和客戶端都產生主秘,主秘是專門為客戶端和伺服器加密提供密鑰並被客戶端和伺服器用來運算MAC的一串資料。主秘是根據客戶端和伺服器上的隨機數和預主秘產生,並且不在線路上傳輸。一旦運算出主秘,就可進行安全通訊。

第6步,客戶端通知伺服器:所有從客戶端發出的傳輸流將採用得到認可的加密序列和獨立產生的密鑰資訊進行加密;

第7步,客戶端通知伺服器,客戶端已完成了最初的握手連接。第7步的完成消息通過了加密;

第8步,允許伺服器通知客戶端,所有從伺服器發出的傳輸流將進行加密;

第9步,伺服器發送‘加密已完成’的消息到客戶端,這顯示伺服器完成了最初的握手連接;

在第10和第11步中,加密的應用層傳輸流將在客戶端和伺服器之間傳輸。這時,客戶端或伺服器都可以請求結束連接。如果出現這種情形,客戶端或伺服器將發送一條明確的提醒資訊。

圖7顯示了相對簡單的TLS消息格式。可能的TLS消息格式有以下四種類型:握手、提醒、更改加密規格和應用資料。

線路上的每次傳輸均可拆分成一系列單個或多個TLS記錄,TLS記錄的格式如圖8所示。

目前,TLS具有幾種公開原始碼的商用解決方案。RSA圖8:TLS記錄格式。 Security、Certicom和SPYRUS均推出了商用C語言實現方案。其中最常用的公開原始碼的C語言版本是OpenSSL,目前還存在其它一些版本。為實現與Apache網路伺服器集,公開原始碼的版本通常都做了適當修改。

HTTP協議

HTTP協議具有兩種安全驗證方法:基本驗證和摘要驗證。在這兩種方法中,在客戶端透過用戶名?密碼對驗證自己的身份之前,伺服器均可拒絕服務請求。作為HTTP客戶端,網路瀏覽器可顯示一個對話框,以便用戶輸入用戶名?密碼對,然後將該請求再次提交給伺服器。

基本驗證在線路上不對用戶名?密碼對進行加密,儘管線路在其Base64編碼系統中對用戶名?密碼對進行了編碼。在摘要驗證中,當伺服器拒絕服務請求時,伺服器將向客戶端提供一個隨機數,此隨機數是一段一次性使用的資料,一旦客戶端獲得了用戶名?密碼對,即對用戶名、密鑰、隨機數、HTTP方法和請求的URL執行Hash處理,而只把Hash值返回給伺服器。這樣,密鑰將永遠不會以明文的形式發出。儘管摘要驗證已經在多年之前就定義了,但直到現在才逐漸得到廣泛應用。

全文資訊請查詢:www.eetasia.com

作者:Steve Kapp


技術長


EMRT諮詢公司


Email: skapp@emrt.com





投票數:   加入我的最愛
我來評論 - 嵌入式系統的網路連接安全策略
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首