透過網路存取資料庫主機時,若沒有經過特別保護處理,重要資料很可能被中途截取,若改用SSL安全傳輸的方式來連結資料庫,將能有效地避免在傳輸過程中發生資料外洩的事故。
很多的企業組織都會建立資料庫的服務,用來儲存企業相關的資料,在一般情況下,應用程式主機往往不會與資料庫主機放在同一台機器內,而是透過網路的方式來傳輸相關資料至資料庫主機上進行儲存,如果沒有進行特殊的處理,這些資料在網路上往往會以明碼的方式傳輸,因此可能造成資料被截取,進而洩露相關的機敏資訊。
對此,本文將介紹如何利用SSL(Secure Sockets Layer)安全傳輸的方式來存取資料庫,以避免資料在傳輸的過程當中外洩,所使用的套件如表1所示。
表1 實作時所需的套件
認識密碼系統
密碼系統可說是人類最古老的運用之一,其主要目的在於確保互相約定的雙方能在安全的前提下傳輸完整的資訊。
本文所要說明的SSL也是利用密碼系統來進行加解密的動作。密碼依照其型態,可分為對稱式(Symmetric)密碼及非對稱式(Asymmetric)密碼系統,相關說明如下。
對稱式密碼系統
對稱式密碼的使用方式是,雙方在傳輸資料之前,先行互相約定一個鑰匙(一般稱之為金鑰),而後雙方在傳輸資料時,就以此金鑰來加解密文件,如圖1所示。
|
▲圖1 對稱式密碼系統運作示意圖。 |
其傳輸過程如下所述:傳送端在傳輸資料之前,先以金鑰來加密所要傳送的資料,接著接收端在接收到資料之後,再以相同的金鑰來解開此資料。
目前常用對稱式密碼系統的演算法,包括DES(Data Encryption Standard)、IDEA(International Data Encryption Algorithm)、RC5(Ron’s Code)以及AES(Advanced Encryption Standard)。
對稱式密碼系統最大優點在於其加解密的運算速度相當快,但由於所使用的金鑰為共用,所以在傳輸資料之前必須將共用的金鑰,以安全的方法交付到傳輸的雙方。
再者,隨著約定傳輸人數的增長,所需要的金鑰也會越來越多,衍生出的相關管理問題也會越來越複雜,有鑑於如前所述的缺點,於是有了非對稱式密碼系統的產生。
非對稱式密碼系統
有別於對稱式密碼,非對稱式密碼利用兩把金鑰來加解密文件(兩者須為相互對應),其金鑰的運作方式說明如下。
Public Key(公開金鑰)
顧名思義,Public Key這把金鑰均會公開提供給所有人下載(如此即可避免對稱式密碼須傳送金鑰的問題),每把Public Key都會產生一個相對應的私鑰來完成資料加解密的流程。
Private Key(私有金鑰)
Private Key這把金鑰並不公開,必須讓個人妥善地保管,就如同現實環境中的個人私章。
接下來,說明如何以Public Key和Private Key來完成非對稱式密碼系統的應用,如圖2所示。
|
▲圖2 非對稱式密碼系統運作示意圖。 |
1. 傳送者利用公開金鑰(Public Key)來加密欲傳送的文件。
2. 接收者在接收到加密後的文件後,再以相對應的私鑰(Private Key)解開文件。
非對稱式密碼系統雖然可以解決對稱式密碼系統所面臨的困境,但其最大的問題在於運算非常緩慢,所以在實務上通常會與對稱式密碼系統交互使用。目前最常用的非對稱式密碼系統演算法是RSA。
說明過密碼系統的流程後,應該就可以了解這對於資料傳輸過程中的資料具有保護作用,但對於傳輸對象的角色認證卻無能為力(因為無法確定接收端就是正確的人),這時就有CA(Certificate Authority,憑證管理中心)的角色出現。
簡單來說,CA的角色就是公正第三方,它在進行身分認證後,即會發給CA憑證(Certificate)給伺服器,用以證明伺服器的身分。