Leo Yeh's Blog

SAS 資訊安全 (3)

基本介紹

教學目標

初步了解 SAS 解決方案中有關加密協定和數位憑證的設定。

重點概念

所謂 TLS/SSL 加密協定主要是的建立安全連線的協定,其中包括:

  1. 數位識別憑證:由可被信任的憑證頒發機構簽署數位識別憑證,以利驗證確保機密性
  2. 公開/私有金鑰加密:秘密交換對稱金鑰,像是 SSL Hankshake。
  3. 加密演算法:訊息透過對稱金鑰搭配加密演算法進行加密,以利確保通訊的安全。
  4. 訊息驗證碼:透過訊息驗證碼確保資訊的完整性。

因此我們 TLS/SSL 加密協定主要是被設計於提供網路資料隱私、資料完整性和身份驗證,其主要是使用 X.509 數位憑證和非對稱加密驗證伺服器判斷是應用程式伺服器或使用者,當訊息進行交換時就會有被攔截和被仿冒的風險,憑證頒發機構主要針對伺服器提供可被信任的公開金鑰,簡單來說,憑證頒發機構會產生包括公開金鑰且已被簽署的數位憑證。此外憑證頒發機構主要有三種類型,第一種是自行簽署的憑證 (Self-Signed Certificate),第二種是網站簽署的憑證 (Site-Signed Certificate) ,像是由 IT 部門所簽署的憑證,以及第三種是第三方簽署憑證 (Third-Party-Signed Certificate),像是 GoDaddy、Comodo、Symantec、…第三方公司所簽署的憑證等。

在 SAS 9.4 平台的架構需要針對不同元件進行 SSL 設定,分別為 SAS Web Server、SAS Web Application Server、SAS Deployment Agents 和 SAS Environment Manager ,然而每個元件皆會需要進行不同的設定,因此是件非常複雜的設定,本篇主要說明如何進行 SAS Web Server 和 SAS Web Application Server 的安全連線設定,簡單來說,就是 SAS Web Server 會有憑證和私有金鑰,而 SAS Web Application Server 會有 CA 憑證和公開金鑰,透過 HTTPS 安全連線進行資訊加密和身份識別,請注意此時 SAS Web Application Server 為 SSL 客戶端所以沒有私有金鑰,其中 CA 憑證基本上需要透過 Keytool 或 SAS Deployment Manager 自動匯入至 JKS Trust Store 中。

首先 SAS Web Server 主要是採用 Vmware 的 Pivotal Web Server (前身為 vFabric Web Server 5.2),基於 Apache 2.2 的開源網頁伺服器,主要會由部署精靈自動設定 Apache 中的 mod_proxy 模組,以利完成 SAS Web Application Server 之反向代理伺服器的設定, SAS Web Server 是由 OpenSSL 建立原生應用程式,所以不會使用 Java Keystore,其中會有憑證和私有金鑰,憑證主要是 X.509 格式其包含伺服器的公開金鑰,由 Base64 編碼 ASCII 的 PEM 格式檔案所儲存,私有金鑰主要是 RSA 格式,不被密碼所保護,由 Base64 編碼 ASCII 的 PEM 格式檔案所儲存 。但是若要針對 SAS Web Server 和 SAS Web Application Server 或 SAS Web Application Server Node 之間流量進行加密,則要進行後續手動的設定 Apache 中的 mod_ssl 模組,無法透過 SAS 部署精靈自動部署,同時 SAS 部署精靈僅不會針對自行簽署的憑證進行設定至 Trust Stores 中,SAS Web Application Server 主要是採用 Vmware 的 Pivotal tc Server,所以是採用 Java Keystore 儲存私有金鑰和伺服器憑證。部署精靈僅能設定 SAS Web Server 的單向 SSL,簡單來說就是伺服器端識別憑證以利驗證 SSL 客戶端,至於雙向 SSL ,簡單來說就是客戶端識別憑證以利進行單一登入驗證之應用,則僅能透過手動的方式進行設定。

接著當我們設定 SSL 時需要修改網頁伺服器的設定檔,其中 httpd.conf 為 Apache 主要設定檔,httpd_ssl.conf 為 SSL 安全連線設定檔,請先備份「\Web\WebServer\conf 」資料夾至新的資料夾,請保持資料夾結構一樣,以利之後還原直接複製貼上,其中主要設定檔有:

再來我們會需要修改每個應用程式設定時將會針對不同網頁應用程式伺服器修改的設定檔,server.xml 為連接器的屬性,wrapper.conf 為 JKS TrustStore 位置主要進行 SAS Web Server 識別憑證的驗證,所以建議先備份 「\Web\WebAppServer\SASServerm_n\conf」 資料夾至新的資料夾,請保持資料夾結構一樣,以利之後還原直接複製貼上,其中主要設定檔有:

最後我們會透過「SAS Management Console 工具」開啟「設定管理員」針對每個應用程式手動設定內部連線和外部連線,在此之前建議先進行中繼資料備份,以避免後續設定發生問題時快速還原,相關備份檔案會儲存至「 \Lev1\SASMeta\MetadataServer\Backups\ 」資料夾。

總結 TLS/SSL 加密協定搭配 X.509 憑證除了能夠針對網路傳輸的資料進行加密之外,更滿足網路資料隱私、資料完整性和身份驗證等需求。若已經確認要採用 HTTPS 安全連線,則建議在部署之前提供憑證,並且透過 SAS 部署精靈進行自動設定,自動設定主要會參考伺服器憑證和私有金鑰更新設定檔案,以及自動設定儲存至中繼資料中每個應用程式的內部連線和外部連線。

相關資源

⬅️ Go back