加密

對大多數組織來說,資料是最重要且無可取代的資產。 在多層式安全性策略中,加密是最後且最強的一道防線。

Contoso Shipping 知道當資料離開資料中心並儲存於可能被駭或遭竊的行動裝置時,加密是保護資料的唯一方法。

什麼是加密?

加密是一個使未經授權的檢視者無法讀取及使用資料的程序。 若要使用或讀取加密資料,必須使用祕密金鑰進行「解密」。 有兩種最上層的加密類型:對稱式非對稱式

對稱式加密使用相同的金鑰來加密及解密資料。 假設有一個傳統型密碼管理員應用程式。 您輸入您的密碼之後,便會使用您自己的個人金鑰進行加密 (您的金鑰通常衍生自您的主密碼)。 需擷取資料時,要使用相同的金鑰來解密資料。

非對稱式加密使用一組公開金鑰和私密金鑰。 這兩個金鑰皆可加密,但單一金鑰無法將它自己的加密資料解密。 您必須同時具備兩個金鑰才能進行解密。 非對稱式加密會用在像是傳輸層安全性 (TLS) (用於 HTTPS) 和資料簽署等項目。

對稱式和非對稱式加密均會在妥善保護您的資料方面發揮作用。 加密通常會從下列兩種方式著手:

  1. 待用加密
  2. 傳輸中加密

待用加密

待用資料是儲存在實體媒體上的資料。 這可能是儲存在伺服器磁碟上的資料、儲存在資料庫中的資料,或是儲存在儲存體帳戶中的資料。 無論儲存機制為何,待用資料加密可確保在沒有用來解密之金鑰及祕密的情況下,皆無法讀取儲存的資料。 如果攻擊者取得具有加密資料的硬碟,但無法存取加密金鑰,攻擊者就難以輕易洩露資料。

受到加密的實際資料,其內容、使用狀況及對組織的重要性皆不相同。 這可能是企業的關鍵財務資訊、由企業開發的智慧財產權、企業儲存的客戶或員工個人資料,甚至是用於加密資料本身的金鑰及祕密。

下圖顯示已加密的客戶資料在資料庫中可能看起來的樣子。

此圖顯示待用加密範例。 該資料會以加密形式儲存於儲存體,且只能透過金鑰存取。

傳輸中加密

傳輸中資料是正在從一個位置移動到另一個位置的資料,例如透過網際網路或是私人網路。 安全傳輸可以由數個不同的階層來處理。 您可以先在應用程式層上將資料加密,再透過網路傳送資料。 HTTPS 是應用程式層級的傳輸中加密範例。

您也可以在網路層級上設定安全的通道 (例如虛擬私人網路 ( VPN)),然後在兩個系統之間傳送資料。

對傳輸中的資料進行加密可以保護資料不受外部觀察者威脅,並提供在傳輸資料同時降低公開風險的機制。

下圖顯示此程序。 如圖所示,透過網路傳送的客戶資料會經過加密。 只有接收者才有可將資料解密成可用格式的祕密金鑰。

此圖顯示傳輸中加密範例。 資料會先加密再傳輸。 資料抵達目的地之後會接著解密。

Azure 上的加密

讓我們看看 Azure 可讓您跨服務加密資料的一些方式。

代表已加密之儲存體的影像

加密原始儲存體

待用資料的 Azure 儲存體服務加密可協助您保護資料安全,以符合組織的安全性和合規性承諾。 使用此功能時,Azure 儲存體平台會先自動加密資料,再將資料保存到 Azure 受控磁碟、Azure Blob 儲存體、Azure 檔案儲存體或 Azure 佇列儲存體,然後在擷取資料之前將資料解密。 對使用服務的應用程式而言,儲存體服務加密中的加密、待用加密、解密及金鑰管理作業是透明的。

代表已加密之虛擬機器的影像

將虛擬機器磁碟加密

儲存體服務加密可為寫入至實體磁碟的資料提供低階加密保護,但您如何保護虛擬機器的虛擬硬碟 (VHD)? 如果惡意攻擊者取得您 Azure 訂用帳戶的存取權,並取得您虛擬機器的 VHD,您該如何確保他們無法存取已儲存的資料?

Azure 磁碟加密是協助您加密 Windows 和 Linux IaaS 虛擬機器磁碟的功能。 Azure 磁碟加密利用 Windows 的業界標準 BitLocker 功能和 Linux 的 dm-crypt 功能,為 OS 和資料磁碟提供磁碟區加密。 此解決方案與 Azure Key Vault 整合,協助您控制及管理磁碟加密金鑰與祕密 (並且您可以使用受控服務識別來存取金鑰保存庫)。

對於 Contoso Shipping 來說,使用 VM 是他們移至雲端的首要動作之一。 將所有 VHD 加密是非常簡單且低影響的方式,這樣能確保您會盡其所能來保護您公司的資料。

代表已加密之資料庫的影像

加密資料庫

透明資料加密 (TDE) 可協助 Azure SQL Database 和 Azure 資料倉儲抵禦惡意活動的威脅。 它會對資料庫、相關聯的備份和待用的交易記錄檔執行即時加密和解密,而不需變更應用程式。 依預設會為所有新部署的 Azure SQL Database 啟用 TDE。

TDE 會使用稱為資料庫加密金鑰的對稱金鑰來加密整個資料庫的儲存體。 根據預設,Azure 會為每個邏輯 SQL Server 執行個體提供唯一的加密金鑰,並處理所有詳細資料。 儲存於 Azure Key Vault 的金鑰也支援「攜帶您自己的金鑰」(BYOK) (如下所示)。

因為預設會啟用 TDE,您能確信 Contoso Shipping 已針對儲存於公司資料庫的資料提供適當的保護。

代表已加密祕密的影像

加密祕密

我們已了解加密服務全部都會使用金鑰來加密和解密資料,但是我們如何確保金鑰本身也是安全的? 公司也可能擁有需要安全儲存的密碼、連接字串,或其他敏感性資訊片段。 在 Azure 中,可以使用 Azure Key Vault 來保護我們的祕密。

Azure Key Vault 是用來儲存應用程式祕密的集中式雲端服務。 Key Vault 會在單一中央位置保存應用程式的祕密,並提供安全存取、權限控制和存取記錄功能,協助您控管應用程式的祕密。 它適用於各種案例:

  • 祕密管理。 您可以使用 Key Vault,安全地儲存權杖、密碼、憑證、「應用程式開發介面」(API) 金鑰和其他祕密,並嚴密控制其存取。
  • 金鑰管理。 您也可以使用 Key Vault 作為金鑰管理解決方案。 Key Vault 可讓您更輕鬆地建立和控制用來加密資料的加密金鑰。
  • 憑證管理。 Key Vault 可讓您更輕鬆地針對您的 Azure 和內部連線的資源佈建、管理及部署公用和私人「安全通訊端層/傳輸層安全性」(SSL/TLS) 憑證。
  • 儲存由硬體安全模組 (HSM) 所支援的祕密。 祕密和金鑰可受到軟體的保護,或受到由 FIPS 140-2 Level 2 驗證的 HSM 保護。

使用 Key Vault 的主要優點包括:

  • 集中式應用程式祕密。 集中儲存應用程式祕密,可讓您控制它們的發佈,並降低可能不小心洩露祕密的機會。
  • 安全地儲存秘密和金鑰。 Azure 會使用業界標準演算法、金鑰長度和 HSM,而存取需要適當的驗證和授權。
  • 監視存取和使用。 使用 Key Vault,您可以監視和控制公司祕密的存取。
  • 已簡化應用程式祕密的管理。 Key Vault 可讓您更輕鬆地註冊和更新來自公開憑證授權單位 (CA) 的憑證。 您也可以在區域內相應增加和複寫內容,並使用標準的憑證管理工具。
  • 與其他 Azure 服務整合。 您可以將 Key Vault 與儲存體帳戶、容器登錄、事件中樞和許多其他 Azure 服務整合。

由於 Azure AD 身分識別可獲得授與使用 Azure Key Vault 祕密的存取權,因此,啟用受控服務識別的應用程式可自動且順暢地取得其所需的祕密。

摘要

您可能已經知道,加密通常是保護來自攻擊者攻擊的最後一條防線,而且在保護您系統的多層式方法中是重要的一環。 Azure 提供內建的功能和服務來加密和保護資料,避免任何意外的公開。 對於 Microsoft 而言,保護儲存在 Azure 服務內的客戶資料至關重要,並且應包含在任何設計內。 基本的服務 (例如 Azure 儲存體、Azure 虛擬機器、Azure SQL Database 和 Azure Key Vault) 可透過加密協助保護您的環境。