Windows Azure 中的加密服務(wù)和數(shù)據(jù)的云安全
概述:許多早期云用戶的云平臺(tái)都存在安全問題。我們來重溫一下 Windows Azure中的某些加密服務(wù)和提供程序,以及云中應(yīng)用程序的某些安全隱患。
Windows Azure 平臺(tái)的許多早期采用者仍對(duì)平臺(tái)安全及其加密支持存在大量疑問。在此,我將介紹 Windows Azure 平臺(tái)內(nèi)加密和相關(guān)安全的一些基本概念。詳細(xì)闡述本主題可能需要很大的篇幅,因此我只打算說明并重溫一下 Windows Azure 中的某些加密服務(wù)和提供程序。任何向 Windows Azure 的過渡也會(huì)存在一些安全隱患。
對(duì)于任何新平臺(tái)或服務(wù)交付方法,您都會(huì)面臨新的挑戰(zhàn)。另外還要提醒您,一些典型問題仍然存在,甚至您過去使用的一些相同的解決方案仍將有效。任何應(yīng)用程序工程師或設(shè)計(jì)人員都應(yīng)仔細(xì)思考本主題,因?yàn)樗c您可能存儲(chǔ)及需要保留的數(shù)據(jù)類型有關(guān)。將此方法與系統(tǒng)化方法相結(jié)合,會(huì)為您和您的客戶提供優(yōu)質(zhì)服務(wù)。
因此,為什么我會(huì)認(rèn)為開發(fā)人員社區(qū)中需要此信息呢?在過去的幾個(gè)月中,我發(fā)現(xiàn)社區(qū)站點(diǎn)中有關(guān) Azure 基本安全性的文章越來越多。Microsoft 建議將加密作為保護(hù) Azure 項(xiàng)目的應(yīng)用層數(shù)據(jù)的一部分。但是,構(gòu)建 Windows Azure 平臺(tái)的產(chǎn)品設(shè)計(jì)人員和開發(fā)人員需要正確理解加密和 .NET 安全模型。
我發(fā)現(xiàn)這么一件事:特定于加密服務(wù)和密鑰存儲(chǔ)的文章的百分比不斷增加。對(duì)于 Windows Azure Storage 服務(wù)來說,更是如此。這勾起了我的好奇心,我發(fā)現(xiàn)這是一個(gè)值得深入討論的話題。
在撰寫本文的過程中,我將大量使用加密服務(wù)提供程序 (CSP),在該程序中可實(shí)施系統(tǒng)編程接口中的加密標(biāo)準(zhǔn)、算法和函數(shù)。出于本文的目的,我將使用由 Rijndael 加密類提供的對(duì)稱加密算法。
加密基礎(chǔ)知識(shí)
Windows Azure SDK 擴(kuò)展了核心 .NET 庫,允許開發(fā)人員集成并使用由 Windows Azure 提供的服務(wù)。對(duì) CSP 的訪問并不僅限于在 Windows Azure 項(xiàng)目和服務(wù)中進(jìn)行。這意味著您的許多與加密和解密數(shù)據(jù)有關(guān)的開發(fā)將與您習(xí)慣使用的程序集保持一致。但是,基本體系結(jié)構(gòu)有一些更改,即加密數(shù)據(jù)的時(shí)間或位置及保存密鑰的位置和方式的問題。本文稍后將討論一些關(guān)鍵數(shù)據(jù)和機(jī)密數(shù)據(jù)持久性?!∧€能夠訪問 Windows Azure 中加密哈希功能的完整陣列,例如 MD5 和 SHA。以上內(nèi)容對(duì)增強(qiáng)任何系統(tǒng)的安全性(如檢測(cè)重復(fù)的數(shù)據(jù)、哈希表索引、消息簽名和密碼驗(yàn)證等)至關(guān)重要。
一致建議始終不創(chuàng)建您自己的加密算法或使用專有加密算法。.NET CSP 中提供的算法已得到證實(shí)并經(jīng)過測(cè)試,已公開很多年供備份。使用 XOR 創(chuàng)建您自己的加密過程并不相同,并且不提供相同級(jí)別的數(shù)據(jù)安全性。
第二個(gè)建議是使用 RNGCryptoServiceProvider 類生成隨機(jī)數(shù)字。這可以確保您的應(yīng)用程序生成的隨機(jī)數(shù)字始終具有極高級(jí)別的平均信息量,從而在模式上難以猜測(cè)。
以下代碼實(shí)現(xiàn)了單個(gè)靜態(tài)成員,該成員將返回隨機(jī)的 32 位 int 值且滿足加密學(xué)角度上的安全需要。通過使用 Cryptography 命名空間中提供的 RNGCryptoServiceProvider 中的字節(jié)生成器可以實(shí)現(xiàn)這一點(diǎn):
public static int GenerateRandomNumber() {
byte[] GeneratedBytes = new byte[4];
RNGCryptoServiceProvider CSP = new RNGCryptoServiceProvider();
CSP.GetBytes(GeneratedBytes);
return BitConverter.ToInt32(GeneratedBytes, 0);
}
圖 1 顯示了在 Windows Azure 平臺(tái)內(nèi)部使用 CSP 的簡(jiǎn)單示例。公開了三個(gè)公共成員,用于在任何 Windows Azure 應(yīng)用程序中使用。第一個(gè)成員接受二進(jìn)制密鑰和初始化向量 (IV) 及未加密數(shù)據(jù)的二進(jìn)制緩沖區(qū)并返回其加密的等效方法。第二個(gè)成員通過解密數(shù)據(jù)執(zhí)行相反的操作。第三個(gè)成員返回為該數(shù)據(jù)計(jì)算出的哈希值。在此請(qǐng)注意,我使用 Rijndael CSP 對(duì)提供程序進(jìn)行托管訪問。我還在二進(jìn)制緩沖區(qū)中存儲(chǔ)數(shù)據(jù)和密鑰并在完成后進(jìn)行改寫。稍后將在討論不變性時(shí)介紹本主題。 圖 1 簡(jiǎn)單加密
public static byte[] SampleEncrypt(byte[] dataBuffer,
byte[] Key, byte[] IV) {
MemoryStream InMemory = new MemoryStream();
Rijndael SymetricAlgorithm = Rijndael.Create();
SymetricAlgorithm.Key = Key;
SymetricAlgorithm.IV = IV;
CryptoStream EncryptionStream = new CryptoStream(InMemory,
SymetricAlgorithm.CreateEncryptor(), CryptoStreamMode.Write);
EncryptionStream.Write(dataBuffer, 0, dataBuffer.Length);
EncryptionStream.Close();
byte[] ReturnBuffer = InMemory.ToArray();
return ReturnBuffer;
}
這是加密數(shù)據(jù)并以字節(jié)數(shù)組形式返回加密結(jié)果的最簡(jiǎn)單示例。這不是可以在未進(jìn)行所有適當(dāng)?shù)陌踩苑治龅那闆r下在安全環(huán)境中使用的代碼,只是一個(gè)示例?!?/P>
圖 2 中的示例幾乎與圖 1 中的示例具有相同的結(jié)構(gòu)。在本例中,我基于相同的密鑰和 IV 解密數(shù)據(jù),僅將加密的字節(jié)緩沖區(qū)作為參數(shù)使用。這里唯一真正的差別就是當(dāng)創(chuàng)建加密流時(shí),我指定創(chuàng)建對(duì)稱解密器而不是先前創(chuàng)建的加密器。
圖 2 簡(jiǎn)單解密
public static byte[] SampleDecrypt(byte[] dataBuffer,
byte[] Key, byte[] IV) {
MemoryStream InMemory = new MemoryStream();
Rijndael SymetricAlgorithm = Rijndael.Create();
SymetricAlgorithm.Key = Key;
SymetricAlgorithm.IV = IV;
CryptoStream EncryptionStream = new CryptoStream(InMemory,
SymetricAlgorithm.CreateDecryptor(), CryptoStreamMode.Write);
EncryptionStream.Write(dataBuffer, 0, dataBuffer.Length);
EncryptionStream.Close();
byte[] ReturnBuffer = InMemory.ToArray();
return ReturnBuffer;
}密鑰存儲(chǔ)和持久性
同應(yīng)用程序或企業(yè)層次的任何加密策略一樣,加密和解密基礎(chǔ)結(jié)構(gòu)遠(yuǎn)未成功。實(shí)際問題在于密鑰存儲(chǔ)和密鑰持久性。由加密數(shù)據(jù)提供的數(shù)據(jù)安全僅取決于使用的密鑰,此問題比人們最初想到的要難得多。我所介紹的系統(tǒng)已經(jīng)在各處存儲(chǔ)了加密密鑰,從直接存儲(chǔ)在源代碼中到存儲(chǔ)在巧妙命名的文本文件,以及存儲(chǔ)在難以找到的目錄中的平面文件中。
考慮在云環(huán)境中存儲(chǔ)和保留密鑰的位置時(shí),密鑰持久性的重要問題浮現(xiàn)出來。某些人表示擔(dān)心通過在云中保存密鑰,您會(huì)受到來自云本身的安全威脅。也就是說,如果某人對(duì)您的數(shù)據(jù)具有物理訪問權(quán)限,默認(rèn)情況下可能不會(huì)加密磁盤中存儲(chǔ)的數(shù)據(jù)(對(duì)于 Windows Azure 也是如此)。考慮到 SQL Azure 尚未支持加密,這成為在規(guī)劃和設(shè)計(jì)解決方案時(shí)考慮的安全決策。與任何安全性實(shí)現(xiàn)一樣,必須對(duì)風(fēng)險(xiǎn)進(jìn)行度量、權(quán)衡和緩解。
但這并不意味著云平臺(tái)(通常情況下)和 Windows Azure(特別情況下)在本質(zhì)上不安全??赡転槟峁┑钠渌x項(xiàng)呢?
現(xiàn)在需要注意的是,應(yīng)用程序始終不應(yīng)將由 Windows Azure 提供的任何密鑰用作加密數(shù)據(jù)的密鑰。示例如下:由 Windows Azure 提供用于存儲(chǔ)服務(wù)的密鑰。這些密鑰被配置為可以輕松旋轉(zhuǎn),以提高安全性或防止某種原因遭到破壞。換句話說,以后可能不存在密鑰,并且可能分布極其廣泛。
在 Windows Azure Storage 服務(wù)中存儲(chǔ)您自己的密鑰庫是一個(gè)保存某些機(jī)密信息的好方法,因?yàn)槟梢允褂迷诙嘧鈶舡h(huán)境中保證安全的數(shù)據(jù)并使用您自己的存儲(chǔ)密鑰保證安全。這不同于將存儲(chǔ)密鑰用作您的加密密鑰。實(shí)際上,如同任何其他存儲(chǔ)文件一樣,可使用存儲(chǔ)服務(wù)密鑰訪問密鑰庫。實(shí)現(xiàn)非常簡(jiǎn)單。例如,假設(shè)您想將自己的密鑰庫作為簡(jiǎn)單文本文件來實(shí)現(xiàn),以保留某些機(jī)密信息。相對(duì)于隊(duì)列或表存儲(chǔ)服務(wù)而言,最好作為數(shù)據(jù)存儲(chǔ)在 blob 服務(wù) API 中。存儲(chǔ)服務(wù)的 blob 區(qū)域是二進(jìn)制音頻和圖像甚至文本文件等數(shù)據(jù)的最佳位置。服務(wù)的隊(duì)列部分著重介紹了保護(hù)不會(huì)長(zhǎng)期保留的小型數(shù)據(jù)對(duì)象的消息傳送的安全。表存儲(chǔ)系統(tǒng)非常適合于需要在特定部分保留和訪問的結(jié)構(gòu)化數(shù)據(jù)和信息,這與數(shù)據(jù)庫中的關(guān)系數(shù)據(jù)完全相同。
首先,將密鑰保存在 CSP 密鑰容器中。這是用于存儲(chǔ)公鑰的最佳選項(xiàng),不具有對(duì)該服務(wù)器的物理訪問權(quán)限,很難對(duì)該密鑰進(jìn)行檢索。對(duì)于 Windows Azure(其中,應(yīng)用程序和數(shù)據(jù)的位置很抽象),這將使查找和檢索以這種方式存儲(chǔ)的公鑰極其困難。創(chuàng)建密鑰存儲(chǔ)容器非常簡(jiǎn)單;下面是使用創(chuàng)建密鑰的 RSA 提供程序的一個(gè)示例。如果密鑰容器已存在,會(huì)自動(dòng)將其密鑰加載到該提供程序:
CspParameters CspParam = new CspParameters();
CspParam.KeyContainerName = "SampleContainerName";
RSACryptoServiceProvider RSAProvider = new
RSACryptoServiceProvider(CspParam);
此外,還提供了您可以根據(jù)需要考慮的其他選項(xiàng)。例如,您可以使用特定標(biāo)記為創(chuàng)建該容器的用戶保證密鑰的安全。可使用 CspParameters 標(biāo)記成員完成此操作:
CspParam.Flags = CspProviderFlags.UseUserProtectedKey;
現(xiàn)在,使用 Windows Azure 存儲(chǔ)密鑰創(chuàng)建一個(gè) blob API 請(qǐng)求。該請(qǐng)求本身要求使用簽名字符串和正確的請(qǐng)求標(biāo)題。正確的標(biāo)題格式為:
Authorization="[SharedKey|SharedKeyLite]
在本示例中,我希望最大程度地提高保留的機(jī)密數(shù)據(jù)的安全性,因此我將使用 SharedKey 授權(quán)方法。此標(biāo)題的簽名部分是一個(gè)基于哈希的身份驗(yàn)證代碼,由 SHA256 算法和您的存儲(chǔ)密鑰針對(duì)簽名中的數(shù)據(jù)生成。然后,此哈希被編碼為 base64 字符串。示例簽名可能如下所示:
"PUT\n\ntext/plain; charset=UTF-8\n\nx-ms-Date:Fri, 12 Sep 2009 22:33:41 GMT\nx-ms-meta-m1:v1\nx-ms-meta-m2:v2\n/exampleaccount/storageclientcontainer/keys.txt"
如前所述,然后會(huì)生成 base64 編碼哈希并將其用作標(biāo)題中的簽名。然后,只有以下人員才能訪問該密鑰文件:其應(yīng)用程序在 Windows Azure 云中的應(yīng)用程序空間中運(yùn)行并有權(quán)訪問您的存儲(chǔ)密鑰。因此,借助密鑰持久性,您既可以管理 Windows Azure 框架外部的密鑰,還可以管理云本身內(nèi)部的密鑰。
密鑰和安全威脅
至少值得簡(jiǎn)要介紹的一項(xiàng)是密鑰安全性。這與如何保留和存儲(chǔ)密鑰略有不同。密鑰本身實(shí)質(zhì)上是具有極高級(jí)別的平均信息量(也就是極高級(jí)別的隨機(jī)性)的字符串。實(shí)際上,這可能會(huì)導(dǎo)致查找系統(tǒng)中的密鑰的常見的攻擊進(jìn)程。例如,如果轉(zhuǎn)儲(chǔ)硬盤上的內(nèi)存或數(shù)據(jù)區(qū)域,則具有極高平均信息量的區(qū)域是您開始查找密鑰的最佳位置。
除了基于應(yīng)用程序的需要選擇很好的安全實(shí)踐和保護(hù)數(shù)據(jù)的安全之外,您還有其他辦法保護(hù)自身的安全嗎?首先,始終假定您解密、加密和保護(hù)數(shù)據(jù)安全所使用的過程為所有攻擊者所熟知。記住這一點(diǎn)后,確保定期交替使用您的密鑰并保證其安全。僅為必須利用這些密鑰的人員提供密鑰,并盡量減少暴露不受控制的密鑰的機(jī)會(huì)。
最后,花時(shí)間將您的安全和不安全數(shù)據(jù)流繪制成圖表。請(qǐng)看一下您的數(shù)據(jù)流往的位置和流去途徑、存儲(chǔ)機(jī)密的位置以及特別是數(shù)據(jù)跨越邊界(例如,公共網(wǎng)絡(luò)和專用網(wǎng)絡(luò))的位置。這將使您很好地了解公開數(shù)據(jù)的位置并允許您通過直接遷移風(fēng)險(xiǎn)的計(jì)劃來應(yīng)對(duì)這些風(fēng)險(xiǎn)。
曾有人問過我一個(gè)相關(guān)問題:Windows Azure 是否支持 SSL。簡(jiǎn)短的回答是“是”。Windows Azure 對(duì)于基于 Web 的服務(wù)和不支持 SSl 的應(yīng)用程序來說可能不是一個(gè)功能非常強(qiáng)大的云平臺(tái)。
使用 SQL Azure 進(jìn)行加密
SQL Server 2008 的發(fā)布引入了一個(gè)新功能:透明數(shù)據(jù)加密 (TDE)。SQL Server 第一次可以僅憑比 SQL Server 2005 中提供的有限加密稍多一點(diǎn)的工作完全加密其數(shù)據(jù)。但是,SQL Azure 存儲(chǔ)的初始版本尚不支持?jǐn)?shù)據(jù)庫級(jí)加密,盡管這是未來版本中考慮的功能。應(yīng)注意的是,SQL Azure 僅可通過端口 1433 和 TCP 連接使用;目前還無法對(duì)其他端口公開。
盡管此功能尚未集成到 Windows Azure 中,但是開發(fā)人員或設(shè)計(jì)人員應(yīng)牢記 SQL Azure 的幾個(gè)安全功能。首先,SQL Azure 支持使用表格格式數(shù)據(jù)流 (TDS)。這表示,大多數(shù)情況下,您可以像以前一樣連接數(shù)據(jù)庫并與該數(shù)據(jù)庫進(jìn)行交互。絕對(duì)值得考慮利用 ADO.NET 加密和受信任的服務(wù)器證書,特別是當(dāng)從云外部訪問您的 SQL Azure 數(shù)據(jù)庫時(shí)。
正確組合中的連接屬性 Encrypt=True 和 TrustServerCertificate = False 將確保數(shù)據(jù)傳輸?shù)陌踩圆椭乐怪虚g人攻擊。這也是連接到 SQL Azure 的要求 — 您無法連接到 SQL Azure,除非已啟用連接級(jí)別的加密。
您應(yīng)當(dāng)熟悉的 SQL Azure 的第二個(gè)安全功能是 SQL Azure 防火墻。這將是使用過本地軟件防火墻甚至是 SQL Server 安全外圍應(yīng)用工具集的人比較熟悉的工具。它使您能夠允許或阻止從各種源一直到特定 IP 地址或范圍的連接。可通過 SQL Azure 門戶管理 SQL Azure 防火墻或使用提供的存儲(chǔ)進(jìn)程(如 sp_set_firewall_rule 和 sp_delete_firewall_rule)直接在主數(shù)據(jù)庫中對(duì)其進(jìn)行管理。
與任何 SQL Server 實(shí)現(xiàn)一樣,還必須嚴(yán)格控制用戶帳戶管理。SQL Azure 中的防火墻確實(shí)是一個(gè)很好的工具,但它不應(yīng)該依賴其本身。還應(yīng)使用具有強(qiáng)密碼和使用特定權(quán)限配置的用戶帳戶來完善您的數(shù)據(jù)安全模型。
這些新工具可以使 SQL Azure 成為對(duì)基于云的應(yīng)用程序非常嚴(yán)密的安全托管平臺(tái)。如果您第一次試用此服務(wù),請(qǐng)記住,必須對(duì) SQL Azure 防火墻進(jìn)行初始化配置后,才可以進(jìn)行連接。必須首先通過 SQL Azure Web 門戶完成此操作,但是如上所述,稍后便可直接在主數(shù)據(jù)庫中進(jìn)行。
不變性和內(nèi)存資源
什么是不變性?不變性在面向?qū)ο蟮木幊讨袃H意味著在初始創(chuàng)建對(duì)象后無法修改其狀態(tài)。Microsoft .NET Framework 中的一個(gè)具體示例是字符串類。在代碼中更改了字符串的值后,只需棄用內(nèi)存中的原始字符串并創(chuàng)建一個(gè)用于存儲(chǔ)新值的新字符串對(duì)象。
為什么從安全性的角度講這很重要?只要服務(wù)器處于聯(lián)機(jī)狀態(tài)并且不重新啟動(dòng),該字符串可以始終保留在內(nèi)存中。您真的無法確定字符串將在內(nèi)存中保留多長(zhǎng)時(shí)間。這在考慮如何在代碼中存儲(chǔ)信息(例如,加密密鑰或加密和解密數(shù)據(jù)的副本)時(shí)非常重要。內(nèi)存中數(shù)據(jù)遺跡很可能留下將秘密透露給狡猾的數(shù)據(jù)盜賊的信息。
由于此不變性,強(qiáng)烈建議將此類數(shù)據(jù)存儲(chǔ)在緩沖區(qū)(如字節(jié)數(shù)組)中。這樣,當(dāng)您使用此信息完成操作后,您可以使用 0 或任何其他數(shù)據(jù)覆蓋該緩沖區(qū)來確保該數(shù)據(jù)不再位于內(nèi)存中。
由于 Windows Azure 是云環(huán)境,曾經(jīng)有人問我,是否仍需要考慮這些,這是一個(gè)很好的問題。仍需要考慮這些,在 Windows Azure 系統(tǒng)中,各個(gè)應(yīng)用程序之間相互獨(dú)立。這通常會(huì)使透露內(nèi)存中的數(shù)據(jù)變得異常簡(jiǎn)單。很難將應(yīng)用程序與云中的內(nèi)存空間相關(guān)聯(lián)。但是,我仍建議使用此方法時(shí)要格外謹(jǐn)慎并在執(zhí)行操作后進(jìn)行清理。您可能不會(huì)始終在云中運(yùn)行此段代碼,且其他漏洞可能會(huì)在將來將自身公開。不需要太擔(dān)心,保持這個(gè)習(xí)慣并堅(jiān)持按此方法執(zhí)行操作即可。
在圖 3 中,我已修改了生成隨機(jī)整數(shù)的上一示例。我在此處添加了一些錯(cuò)誤處理以確保具有在任何情況下都始終運(yùn)行的 finally 塊。我正在該塊中通過字節(jié)數(shù)組中的值執(zhí)行非常簡(jiǎn)單的迭代,使用零值覆蓋各個(gè)位置。這將覆蓋內(nèi)存中的數(shù)據(jù),因?yàn)樽止?jié)數(shù)組具有可變性。我知道該數(shù)字不再包含在歸此成員執(zhí)行的操作所有的內(nèi)存中??蓪?duì)用作項(xiàng)目(例如密鑰、初始化向量和加密或解密數(shù)據(jù))的數(shù)據(jù)緩沖區(qū)的任何字節(jié)數(shù)組執(zhí)行此操作。
圖 3 清除內(nèi)存中的數(shù)據(jù)
public static int GenerateRandomNumber() {
byte[] GeneratedBytes = null;
try {
GeneratedBytes = new byte[4];
RNGCryptoServiceProvider CSP =
new RNGCryptoServiceProvider();
CSP.GetBytes(GeneratedBytes);
return BitConverter.ToInt32(GeneratedBytes, 0);
}
finally {
for (int x = 0; x < GeneratedBytes.Length; x++) {
GeneratedBytes[x] = 0;
}
}
}
消息隊(duì)列
Windows Azure 隊(duì)列為 Microsoft 消息隊(duì)列 (MSMQ) 服務(wù)提供了一組類似的功能,這些服務(wù)對(duì)企業(yè) Windows 應(yīng)用程序通用。Windows Azure 中的此消息隊(duì)列服務(wù)以先進(jìn)先出 (FIFO) 的方式存儲(chǔ)基于文本的、大小不超過 8KB 的消息。這允許在不同的服務(wù)器(或像本示例這樣,在云中)運(yùn)行服務(wù)和應(yīng)用程序以采用安全和分發(fā)式方法進(jìn)行交互并相互之間發(fā)送可操作消息。
有 5 個(gè)允許您將消息推入到隊(duì)列、查看消息、推出消息等等的基本功能。最常提出的問題是這些消息到底有多安全?
當(dāng)前受 MSMQ 支持的許多功能在 Windows Azure 消息傳送 API 中還不受支持。然而,存在相似之處。對(duì)于 blob 數(shù)據(jù)服務(wù),消息傳送服務(wù)利用相同的 REST get 和 put 界面??稍诖a中或使用 URI 和 Web 請(qǐng)求調(diào)用編寫和讀取消息,可使用 SSL 針對(duì)不安全網(wǎng)絡(luò)中的請(qǐng)求對(duì)該調(diào)用進(jìn)行加密。這表示傳送請(qǐng)求的過程是經(jīng)過加密的。
另外,對(duì)于 Windows Azure 中的其他存儲(chǔ)服務(wù),對(duì)消息隊(duì)列的任何訪問必須利用同一存儲(chǔ)服務(wù)密鑰。只有有權(quán)訪問該密鑰的應(yīng)用程序才能查看這些隊(duì)列或向這些隊(duì)列中添加消息。這使對(duì)這些消息的其他加密操作有點(diǎn)多余,除非這些消息的主體將保留安全網(wǎng)絡(luò)或安全應(yīng)用程序空間。
總結(jié)
在目前面向服務(wù)的體系結(jié)構(gòu)和解決方案的趨勢(shì)之下,很少人會(huì)想到在云應(yīng)用程序中開展業(yè)務(wù)。多租戶環(huán)境(例如 Windows Azure)中的數(shù)據(jù)和服務(wù)的隔離是放眼于使用私有數(shù)據(jù)的人們最關(guān)注的問題之一。
與所有新平臺(tái)一樣,安全和加密功能將繼續(xù)在 Windows Azure 平臺(tái)中不斷改進(jìn)。Microsoft 花費(fèi)了巨大精力在以下方面:不僅提供安全、隔離環(huán)境,還要公開針對(duì)這些度量的公共證書所得成果。這應(yīng)該會(huì)使工程師堅(jiān)信,Microsoft 希望成為安全性和保持系統(tǒng)和應(yīng)用程序?yàn)殒i定狀態(tài)方面的親密合作伙伴。
安全,特別是加密的關(guān)鍵之處在于使您的信息和過程很難訪問。我們可以將“很難”定義為超出了任何敵方在數(shù)據(jù)或進(jìn)程的生命期內(nèi)進(jìn)入該系統(tǒng)的能力。然而,這是一種基于正在使用的應(yīng)用程序或數(shù)據(jù)的要求的相對(duì)定義。這就是我為何在這篇文章中繼續(xù)強(qiáng)調(diào)需要不斷對(duì)安全和加密要求進(jìn)行評(píng)估。這對(duì)確保可有效地使用這些工具以保護(hù)云系統(tǒng)的安全并保護(hù)數(shù)據(jù)至關(guān)重要。
評(píng)論
查看更多