在公有云端保護用戶數(shù)據(jù)安全

——淺談IBM Cloud 之 Hyper Protect Crypto Service

云端安全,重中之重
云計算應(yīng)該算是當(dāng)下IT圈一個比較火熱的領(lǐng)域。很多知名的云廠商所提供的品類豐富的服務(wù)和美輪美奐的UI,以及貼心的后臺的支持都讓人覺得用著非常的爽。不過,如果談到安全和保護用戶的隱私,IBM云還是走在了前列。

“什么?IBM不是被聯(lián)想收購了嗎?”,IT圈外路人甲如是說。
“IBM的服務(wù)器還是挺厲害的,怎們,你們還做云?”。IT圈內(nèi),云圈外路人乙也是一臉蒙圈。
其實,IBM不但有云,而且目前在全球的收益已經(jīng)排到了前三。詳情點擊

如今,在IaaS層,在已經(jīng)囊括了x86和以高性能著稱的Power服務(wù)器之外,最近又添加新成員,這就是z系列服務(wù)器。

image.png

正如“路人乙“同學(xué)所說,IBM作為老牌的服務(wù)器廠商,生產(chǎn)的服務(wù)器分為x,i,p,z四大產(chǎn)品序列,在價格上,x系列最便宜,z系列最貴。而且,就國內(nèi)而言,使用z的客戶,包括了四大行在內(nèi)的多家商業(yè)銀行,大家都把最核心的應(yīng)用運行在z上,足見其地位之重要。z系列主機的高度安全性,必然能夠為穩(wěn)健的IBM公有云增光添彩。

在使用公有云的時候,相信所有企業(yè)用戶,都會考慮隱私數(shù)據(jù)的安全問題,一來近年來各地的法律法規(guī)層出不窮,例如大名鼎鼎的GDPR就對使用和收集歐盟公民的個人信息有嚴(yán)格規(guī)定。這些規(guī)章一旦觸犯,對企業(yè)來說,輕則鼻青臉腫,信用受損,重則骨斷筋折,一命嗚呼。二來,如果云供應(yīng)商,監(jiān)守自盜,竊取隱私數(shù)據(jù)該如何是好?雖說目前有供應(yīng)商的書面承諾,可以檢查日志進行審計。但是畢竟有點兒事后諸葛亮的意思。


image.png

有沒有有一種服務(wù)能夠從技術(shù)上真正做到只有數(shù)據(jù)的所有者可以讀取數(shù)據(jù)內(nèi)容,其他任何人(包括云計算供應(yīng)商)都無法讀取呢?還真有,這就是依托IBM Cloud Hyper Protect Crypto Service的KYOK技術(shù)(Keep Your Own
Key)。與之相對的,是一種叫做BYOK(Bring Your Own Key)的技術(shù)。二者區(qū)別如下:

BYOK KYOK
多租戶秘鑰管理服務(wù) 單租戶秘鑰管理服務(wù)
基于FIPS140-2 Level 3 加密硬件設(shè)備 基于FIPS140-2 Level 4 加密硬件設(shè)備
HSM(加密設(shè)備)由IBM管控 用戶完全掌控HSM
供應(yīng)商承諾不會訪問秘鑰 在技術(shù)上無法訪問秘鑰

KYOK是從技術(shù)上根本解決了云供應(yīng)商對客戶數(shù)據(jù)非法訪問的問題。至于具體是如何實現(xiàn)的,請繼續(xù)向下看。

就硬件的安全性而言,z主機上的加密設(shè)備: Crypto Express 6S,達到了的 FIPS140-2,Level 4的等級,為業(yè)界最高,沒有之一。既然有FIPS140-2 level 4, 自然也會有l(wèi)evel 1,2,3,感興趣的小伙伴可以自己找一找,不同廠商的HSM設(shè)備的安全級別。對于level 2的設(shè)備,要求是對入侵的行為有事后的證據(jù),乃至于給設(shè)備貼上封條或易碎貼的做法也算是level2的范疇。

Level3,要求要高一些,需要能夠檢測到實時的入侵行為,算是事中的反饋。而level4的設(shè)備,除了具備level
2,3的能力之外,還可以在檢測到入侵行為的時候 (包括非法訪問或物理環(huán)境聚變)會自動清零設(shè)備上的秘鑰,防止秘鑰落入不法分子手中。

感受Hyper Protect Crypto Service
現(xiàn)在就讓我們來感受一下HPCS。如下圖所示,IBM 公有云上的Hyper Protect Crypto
Service主要包括以下幾類:

image.png

Hyper Protect Crypto Service

  • Hyper Protect Crypto Service(HPCS):使用加密卡,向外提供數(shù)據(jù)加密的功能。例如,我們可以創(chuàng)建HPCS實例,然后調(diào)用HPCS對VM的卷進行加密。

  • Hyper Protect Virtual Server: 簡單的說是IBM Cloud提供的一種全新虛機。它運行在z/LinuxONE 之上。依托IBM
    z強大的計算能力,性能表現(xiàn)優(yōu)異,而且底層會調(diào)用HPCS,數(shù)據(jù)天然會被加密。

  • Hyper Protect DBaaS: 依托上述Hyper Protect Virtual
    Server,提供DBaaS服務(wù),與普通的DBaaS相比,所有數(shù)據(jù)都經(jīng)過了加密,更安全。

下面這張圖清楚的反映了上述服務(wù)之間的相互依托關(guān)系。

image.png

下面,讓我們在IBM Cloud 上面做個實驗。使用HPCS,對VPC instance的boot卷進行加密。簡單的說,實驗分為以下三個步驟:

  1. 創(chuàng)建HPCS實例,并對它進行初始化
  2. 將HPCS的服務(wù)開放給VPC
  3. 創(chuàng)建VPC 實例,并調(diào)用HPCS對boot 卷進行加密。

創(chuàng)建HPCS實例的過程非常簡單,本文不做敘述。有一點需要注意,在選擇Number of crypto units的時候,有三個選項,1(single zone)2(multi-zone) 3(multi zone), 意思是,在創(chuàng)建 crypto units的時候,實際創(chuàng)建的加密功能模塊的數(shù)量。從高可用與性能角度考慮,在生產(chǎn)系統(tǒng)中推薦2或3。

HPCS創(chuàng)建完成后長這樣,由于instance 只是創(chuàng)建,還沒有初始化,所以沒有master key。圖片上顯示的Erro. 可以暫時忽略。

image.png

HPCS的初始化過程有點兒復(fù)雜。無數(shù)的身份和密碼會把人搞的頭大,所以,在真正開始之前,有必要把初始化階段所做的事情梳理一下。跟電影里看到的場景類似,發(fā)射核彈需要兩個人同時轉(zhuǎn)動鑰匙,要使用HPCS,IBM推薦多個人持有不同的密碼或密鑰分量。

image.png

涉及的角色如下:

  • 簽名秘鑰管理員(signature key admin):負(fù)責(zé)開啟初始化過程。這個角色控制著初始化過程的入口,沒有他的授權(quán),下面的操作都無從談起。另外,也可以通過這個角色知道是誰授權(quán)的操作。
  • 主密鑰分量1持有者(master key part1 owner):持有秘鑰分量1。(核彈發(fā)射鑰匙持有者1)
  • 主密鑰分量2持有者(master key part2 owner): 持有秘鑰分量2。(核彈發(fā)射鑰匙持有者2)

我們還可以有更多的秘鑰分量,這些不同的分量通過運算會生成真正的主密鑰。三個不同角色直接的關(guān)系如下圖所示。

image.png

涉及的密鑰類型有:

  • 主密鑰分量1(master key part1):核彈發(fā)射鑰匙1

  • 主密鑰分量2(master key part2):核彈發(fā)射鑰匙2

  • 主密鑰(master key):主密鑰分量1與2經(jīng)過運算生成主密鑰。

  • DEK(Data Encryption Key):對隱私數(shù)據(jù)進行加密的秘鑰。

  • 根密鑰(root key):由主密鑰生成,是用來加密DEK的秘鑰。

簡單解釋一下,為什么會有這么多的的秘鑰,對照下圖對其中的關(guān)系做一個梳理。加密的對象是隱私數(shù)據(jù)。加密隱私數(shù)據(jù)的密鑰叫做DEK(Data Encryption Key),但是DEK不應(yīng)該明文存放,否則如果從硬盤獲取了DEK,和密文,那么數(shù)據(jù)就會泄密。所以要對DEK再次加密,這就要用到root key;root key 是對DEK加密的密鑰,經(jīng)過加密的DEK存放在磁盤上就沒有問題了,經(jīng)過加密的DEK稱之為wrapped key。 Root key是由mater key 產(chǎn)生的(2.),而master key在初始化過程中由master key part運算產(chǎn)生(1.),并且僅僅存在于的crypto unit之上。

讀取加密數(shù)據(jù)的過程是這樣的:操作系統(tǒng)會把密文和經(jīng)過加密的DEK,發(fā)送給HPCS(4&5)。因為HPCS
中存儲了root key,因此它會使用root key 對加了密的DEK進行解密(3),有了明文的DEK,就可以解密密文,然后送回給系統(tǒng)了(6)。

注意,Root Key和Master Key 從來就沒有離開過 Hyper Protect Crypto unit,因此從操作系統(tǒng)的角度來看,管理員永遠不知道DEK是什么,IBM管理員也無從知道。

image.png

(下面開始講操作步驟了,技術(shù)控請繼續(xù)閱讀,非技術(shù)同仁可以到此為止了,哈哈)

實驗
好了,講了這么多,下面開始真正的操作。以下操作必須使用IBM CLI,也就是命令行工具,需要提前下載安裝。(以下過程中,對HPCS和crypto unit不做區(qū)分)

  1. 根據(jù)HPCS實例的創(chuàng)建區(qū)域,進行相應(yīng)的選擇,我所創(chuàng)建的HPCS instance位于美國Dallas,因此選擇us-south

ibmcloud target -r us-south

image.png
  1. 選擇resource group。在創(chuàng)建資源的時候,可以選擇把資源放在不同的資源組中。HPCS實例放在了default group中,因此操作如下。

ibmcloud target -g default

image.png
  1. 安裝TKE plugin。TKE(Trusted Key Entry )是對HPCS進行操作的設(shè)備。

ibmcloud plugin install tke -v 0.0.11

image.png
  1. 創(chuàng)建一個本地目錄,用于存放即將創(chuàng)建的秘鑰與簽名。創(chuàng)建環(huán)境變量CLOUDTKEFILES,在后面的操作中,CLOUDTKEFILES會被自動引用(截圖略)

mkdir "$HOME/tke"

export CLOUDTKEFILES="$HOME/tke"

  1. 確認(rèn)可用的cryptounit.

ibmcloud tke cryptounits

image.png

可以看到有兩個 cryto unit 可用,這是因為在創(chuàng)建HPCS的時候,我選擇的是選項2 multi-zone

  1. 選擇需要操作的 crypto unit. 接下來會要求選擇需要操作的crypto unit。從高可用的角度,兩個crypto unit的配置應(yīng)該完全相同,因此,兩個crypto unit都要選擇。

ibmcloud tke cryptounit-add

image.png

可以看到,兩個 crypto unit 的SELECT狀態(tài),由false 變?yōu)?true。

  1. 創(chuàng)建crypto unit的管理員和signature key。這個signature key就是上文提到的,由簽名秘鑰管理員。

ibmcloud tke sigkey-add

image.png

以后的操作,都要由signature key的持有者簽名執(zhí)行,這樣不但增加了安全性,而且可以方便追蹤和審計。

  1. 選擇上面創(chuàng)建的signature key 來執(zhí)行下面的操作。在這里使用剛剛創(chuàng)建的 sigkeyadmin。

ibmcloud tke sigkey-sel

image.png
  1. 將剛剛創(chuàng)建的管理員和密碼添加到crypto unit中,然后就可以用這個管理員(sigkeyadmin)對HPCS進行操作了。

ibmcloud tke cryptounit-admin-add

image.png
  1. 退出編輯模式(imprint mode)

ibmcloud tke cryptounit-exit-impr

image.png
  1. 創(chuàng)建master key 的第一個分量。命名為mk1,密碼自定義。

ibmcloud tke mk-add --random

image.png
  1. 創(chuàng)建master key 的第二個分量mk2。(如果需要,可以創(chuàng)建第3,4… n 個分量)

ibmcloud tke mk-add --random

image.png
  1. 現(xiàn)在,如果打開上面創(chuàng)建的目錄CLOUDTKEFILES,會發(fā)現(xiàn)前面創(chuàng)建的signature key 和 master key 的分量存放在這個目錄下,這一步就是要把master key的分量(剛剛創(chuàng)建的 mk1與mk2)寫入到crypto unit中。另外在操作過程中,需要輸入signature key,mk1與mk2的密碼。

ibmcloud tke cryptounit-mk-load

image.png
  1. commit:確認(rèn)mk1,mk2對crypto unit的寫入。

ibmcloud tke cryptounit-mk-commit

image.png
  1. crypto unit中有兩套注冊表(register),一個用來存放正在使用的秘鑰(current master key register),一個用來存放新秘鑰(new master key register)。需要把剛剛寫入的秘鑰注冊表設(shè)置為正在使用。

ibmcloud tke cryptounit-mk-setimm

image.png

現(xiàn)在讓我們回到 IBM Cloud portal(cloud.ibm.com)上,找到自己創(chuàng)建的HPCS實例,可以看到HPCS的狀態(tài)已經(jīng)變化,之前的error不見了。

image.png
  1. 創(chuàng)建好了Master Key之后,這一步需要在IBM Cloud Portal上創(chuàng)建root key,點擊上圖的 Add key,然后選擇 Create a Key, Key type 選擇 Root key,Key name 自己起名(這里為root2),然后點擊 Add Key,如下圖所示。
image.png
  1. 到此為止,HPCS的初始化過程已經(jīng)完成。現(xiàn)在需要做的是,把HPCS的服務(wù)開放給Block Storage,這樣,block storage就可以調(diào)用HPCS對磁盤進行加密了。在 cloud.ibm.com主頁,選擇 Manage 下面的Access(IAM),如圖。
image.png

然后在Authorizations頁面,選擇創(chuàng)建一條新的Authorization,點擊Create

image.png

由于本次實驗是要加密VPC的boot volume。因此在Source service中選擇 Cloud Block Storage; 如果不想限定資源組,in 后面直接默認(rèn)Account就好。Target Service 要選擇 Hyper Protect Crypto Service, 此時,Target Service Instance中就可以看到之前創(chuàng)建好的HPCS(Ryan Hyper Protect Crypto Service-vy),勾選下面的Reader,意思是需要有讀的權(quán)限。點擊Authorize,如下圖

image.png

然后就可以看到剛剛創(chuàng)建的一條Authorization。證明授權(quán)已經(jīng)成功。

image.png
  1. 最后一步了:創(chuàng)建VPC instance,并且調(diào)用HPCS為boot 盤加密。要創(chuàng)建VPC instance,需要首先創(chuàng)建VPC,在cloud.ibm.com,點擊左側(cè)的導(dǎo)航按鈕,進入導(dǎo)航。點擊 VPC Infrastructure.
image.png

在新的頁面中選擇 Create VPC for Gen 1

image.png

在新的頁面中,有兩個是必填項, VPC 的Name和 New Subnet for VPC的Name,其他選項可以自己需要填寫。在這里,VPC命名為 ryan-vpc-gen1, subnet命名為ryan-subnet。如圖

image.png
image.png

VPC創(chuàng)建完成后如下圖所示:

image.png

下面開始創(chuàng)建VPC instance,先在左側(cè)的導(dǎo)航欄選擇 Virtual server instances,然后點擊New Instance

image.png

在新的頁面中填寫選擇相應(yīng)的配置信息。在Boot volume一欄,注意到encryption顯示為 Provider managed,如下圖。

image.png

點擊右邊的修改圖標(biāo),將其修改為 Hyper Protec Crypto Service,選擇之前配置的HPCS實例,以及root key,然后Apply。如下圖,

image.png

配置完成后,點擊頁面右側(cè)的 Create virtual server instance. VPC instance 創(chuàng)建完成。
到新創(chuàng)建的VPC instance中查看boot volume信息,確認(rèn)boot volume已經(jīng)被HPCS保護,如下圖。

image.png

上面只是使用HPCS對block storage進行加密的一個例子。除了Cloud Block Storage,HPCS還可以對IBM Cloud上面的以下資源進行加密。

  • Hyper Protect DBaaS for PostgreSQL
  • Hyper Protect DBaaS for MongoDB
  • IBM Cloud Object Storage
  • IBM Cloud Block Storage for Virtual Private Cloud
  • IBM Cloud Virtual Servers for Virtual Private Cloud
  • Key Management Interoperability Protocol (KMIP) for VMware on IBM Cloud
  • HyTrust DataControl for IBM Cloud
  • IBM Cloud Kubernetes Service (IKS)
  • Red Hat OpenShift on IBM Cloud

除了IBM Cloud上面的資源,對于數(shù)據(jù)中心和其他云平臺,只要有訪問HPCS的權(quán)限,也可以使用GREP11 API對自己的計算資源進行加密。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 思考樂雅樂語文排序題訓(xùn)練6 1、依次填入下面文段橫線處的語句,銜接最恰當(dāng)?shù)囊豁検? ) 數(shù)據(jù)加密是信息安全的核心技...
    基動人心閱讀 577評論 0 0
  • 什么是庫 ? 庫就是程序代碼的集合,將N個文件組織起來,是共享程序代碼的一種方式。庫從本質(zhì)上來說是一種可執(zhí)行代碼的...
    滄海小魚兒閱讀 218評論 0 0
  • 具體可參考官方:https://support.apple.com/zh-cn/HT201548?utm_sour...
    惜小八閱讀 860評論 0 0
  • 有情有義阿德力! 阿德力企鵝大家都不陌生,那是個操蛋的家伙,創(chuàng)建這個計劃的初衷,因為我也是個操蛋的人。操蛋的人就要...
    05f2255458c1閱讀 231評論 0 0
  • 孩子今天又撒謊了!預(yù)習(xí)新課要對生字進行組詞造句,從七點到十點,完成了五個生字。告訴我:‘’爸爸,今天的生字只有五個...
    董濤_1dcd閱讀 218評論 0 0

友情鏈接更多精彩內(nèi)容