OpenSSL 開源碼 伺服器 SSL 資安 憑證 安全

用Let's Encrypt免費憑證 實作OpenSSL安全網站

2016-04-14
本文將採用開源碼OpenSSL套件來實作一個安全的SSL網站,以便簽發符合資安政策的數位憑證,並說明如何透過Let's Encrypt服務來取得免費且合法的數位憑證。
密碼系統一直是確保資料傳輸安全的基石。而在電子商務的運作上,安全網站伺服器(使用HTTPS連線來連接的網站,以下簡稱SSL網站)也一直利用密碼系統來保護在網路上傳輸資料的安全性與完整性。

但隨著電腦硬體的進步,在過去被認為不可能利用暴力破解法破解的密碼演算法,也發現在強大的硬體運算能力之下,此類的密碼演算法似乎已經不是所想的那麼安全,常用的密碼演算法SHA1即被證明,只要利用適當的電腦運算即可破解。

為了因應此類潛在的威脅,知名的瀏覽器如Chrome、IE等同時宣示了相關的資安政策,如果使用相關瀏覽器去瀏覽利用SHA1演算法為加密基礎的SSL網站,就會出現如圖1所示的警告資訊,藉此提醒使用者,並督促網站管理員儘速更新SSL網站所使用的數位憑證(Certificate,利用密碼系統所產生的憑證來證明網站的身分),以提升網站的安全性。


▲圖1 當瀏覽以SHA1演算法為加密基礎的SSL網站時將會出現警告資訊。

因此,本文除了會說明數位憑證相關背景說明外,還將以開源碼中的OpenSSL套件為例,示範如何簽發符合相關資安政策的數位憑證來實作一個安全的SSL網站(以Apache網站伺服器為例)。

另一方面,在現實環境中若要申請一個數位憑證,不但手續繁雜,而且也需要相關的費用,所以這裡也將說明如何利用Let's Encrypt服務(官方網站為https://letsencrypt.org)來取得一個免費且合法的數位憑證。

什麼是SSL

隨著電子商務的興起,有越來越多的交易行為不再是透過傳統的面對面行為交易,而是隱藏在鍵盤的後面,透過電子下單的方式完成交易。在這種情況下,需要一套安全的交易機制來保障雙方的交易。

一般來說,在評估電子交易安全的機制時,通常會以C.I.A原則來評估其機制的安全性,原則說明如下:

·機密性(Confidential):在資料傳輸過程中,資料內容不能被不相關的第三者所窺視,例如在網路上購買商品的訂單資料,在傳輸到店家系統的過程中,不能被其他人偷窺到相關的訂單內容資訊,通常會加密所要傳輸的資料(即使在傳輸的中途被攔截,也無法直接看到內容),等到店家系統接收到資料時,再加以解密來還原相關資訊。

·完整性(Integrity):要保持資料在傳輸的過程中,均不能被無權限的使用者任意竄改。例如電子商務的下單,當消費者送出訂單後,此訂單的內容,除了消費者本人外,誰都不能修改此訂單的內容。如果其他人可以用某種方式,能在不經消費者本人同意的情況下竄改內容,就表示系統有完整性的安全問題。

·可用性(Available):網路資訊服務的基礎是來自於服務主機(如網站伺服器),可用性即是評估服務主機能夠正常服務的程度。簡而言之,期待服務主機能夠7×24全年無休的服務。但受限於主機的硬體或人力因素,常無法達到全年無休的目標,可用性分析就是評估主機能夠達到正常服務的最大時限。

除了上述傳統的資安原則外,由於電子商務的特性,也須考慮下列面向的問題:

·商家的真實性:商業交易最重要的基礎在於「信任」,消費者因為信任商家,所以交付財物來取得相對的貨物,而網路的商業行為最大的一個特徵是並非面對面的交易,因此對消費者而言並不容易去辨別商家的真實性,所以在電子交易中,商家需要一個具有公信力的數位憑證來證明其身分的真實性。

·來源端不可否認性:對商家而言,最頭痛的莫過於消費者出爾反爾,否認自己曾下過訂單的事實,因此也需要經相關的機制來確保消費者不能否認曾下過單的事實,此為不可否認性。

為了解決上述的相關問題,網景公司(Netscape)提出SSL(Secure Socket Layer,安全套接層協議)的解決方案,利用密碼系統的方式來解決上述的問題。使用者如果利用HTTPS來連接網站伺服器,即表示該網站伺服器支援以SSL的方式來加密來往的資料。隨著時間的演進,SSL也推出不同的版本,如表1所示。

表1 SSL各個版本比較

由於SSL是建構於密碼系統之下,因此以下繼續說明何謂密碼系統。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!