加密Raspberry Pi上的根文件系統有許多原因,從保持WiFi憑據不可變到保留專有軟體和敏感數據不被克隆。對於許多Raspberry Pi配置,只有兩個分區存在:
/ boot on / dev / mmcblk0p1
/ on / dev / mmcblk0p2因此,加密根分區是一種加密一切的方式是有意義的。
在Pi上存儲加密密鑰
越來越多的Raspberry Pi家族真棒,我們喜歡它!它是便宜的,對於嵌入式設備具有令人難以置信的計算能力,並具有非常強大的軟體開發生態系統。
然而,Raspberry Pi有一個致命的腳跟:SD卡是主要的軟體部署媒體,它可以非常容易地刪除並因此被操縱。自然的傾向是使用dm-crypt上的LUKS來加密文件系統,但是為了在許多部署單元中進行無人值守的使用,明顯的問題是:LUKS密鑰存儲在哪裡?當然這是文件系統。即使你嘗試通過各種程序性手段來模糊它,關鍵還是很容易受到攻擊。
Zymkey Raspberry Pi安全模塊

zymkey-2i-blue-arrow-white-bg-web.png1000x668 131 KB
添加Zymkey 32安全模塊有助於將LUKS密鑰鎖定在基於安全硬體的密鑰庫中。當Zymkey向特定主機Raspberry Pi進行身份驗證時,密鑰已激活(但未釋放)。主機的身份驗證是針對唯一和測量的ID,類似於具有一些附加材料的設備指紋。

zymbit安全模塊20170516.png838x842 37.2 KB
Zymkey LUKS鑰匙鎖
術語「鎖定」是指Zymkey提供一些明文數據塊被加密和簽名的通用服務。在這種情況下,當創建文件系統時,將LUKS密鑰發送到Zymkey進行鎖定(加密和簽名)。當系統引導並需要解密根文件系統時,鎖定的LUKS密鑰是「解鎖的」(簽名驗證和內容解密)並呈現給dm-crypt。如果密鑰已成功解鎖,引導過程繼續正常。以下是LUKS / dm-crypt文件系統的啟動順序,其中的密鑰由Zymkey保護:
- 內核初始化initramfs
- initramfs向Zymkey顯示鎖定的LUKS密鑰
- Zymkey驗證簽名並解密密鑰*
- 解密的密鑰被呈現給LUKS,然後根文件系統被解密
*要求Zymkey的運行狀態為「安全」或「dev_secure」
在外部磁碟或SD卡上加密RFS?
加密的根文件系統可以遷移到外部USB快閃記憶體,硬碟或SSD。現有的根文件系統可以轉換為加密卷,但轉換更複雜。將現有根文件系統遷移到外部設備如下所示:
- 創建LUKS密鑰
- 鎖定LUKS鍵
- 在外部USB設備上創建LUKS卷
- 在LUKS卷上創建一個ext4分區
- 將現有根文件系統移動到外部設備上的LUKS卷
- 引導到新的根文件系統並擦除以前的根卷
轉換SD卡上的現有根文件系統仍然需要一個至少比現有根文件系統大一點的外部設備(如USB快閃記憶體驅動器),以便存儲舊的文件系統。我們臨時引導到外部設備上的根文件系統,以提供更容易的方式來轉換和複製原始內容。這個過程看起來像這樣:
- 製作原始根文件系統的tarball並將其存儲在外部設備上
- 將原始根文件系統文件複製到外部設備,形成臨時文件系統
- 啟動到臨時文件系統。一旦啟動,臨時文件系統將:a。創建LUKS密鑰b。用zymkeyc 鎖定LUKS鍵。在原始根分區上創建一個LUKS卷d。在原始根分區e 上的LUKS卷上創建一個ext4分區。將根文件系統的tarball解壓到轉換後的分區中
利弊
遷移到外部存儲設備
優點:
1.外部設備可以容納更多的數據。
2.遷移比SD卡轉換方法更簡單快捷。
一些外部設備的數據訪問速度比SD卡要快得多。
一些外部設備(例如HDD)可以容納比SD卡更多的寫入周期。
缺點:
1.對於HDD和SSD以及非緊湊型USB快閃記憶體設備,還有額外的電源要求。
2.除了緊湊的USB快閃記憶體設備,物理空間要求也會增加。這對於Raspberry Pi Zero家族來說可能尤為重要。
轉換為現有SD卡
優點:
1.物理空間要求較少。
2.需要更少的功率。
缺點:
1.轉換比遷移到外部驅動器更複雜和耗時。
2.數據空間限制。
3.寫周期約束。
訪問速度限制。
建立您的系統
先決條件
確保您的Zymkey軟體套件已經運行和運行,並確保您的Zymkey被綁定。說明這裡10。
外部存儲設備遷移
要將根文件系統遷移到外部USB設備,可以運行以下腳本:
curl -G https://s3.amazonaws.com/zk-sw-repo/mk_encr_ext_rfs.sh | sudo bash
這個腳本是參數化的,所以如果你有特殊要求,你可以調用以下方式:
curl -G https://s3.amazonaws.com/zk-sw-repo/mk_encr_ext_rfs.sh | sudo bash -s -- -x -p -m
在沒有參數的上述調用中,默認值為:
1.位於/ dev / mmcblk0p2上的原始根文件系統
2.位於/ dev / sda1上的
新根文件系統3.新的根文件系統占用整個新設備
請注意,新的根文件系統的大小應至少比原始根分區大一點
在Pi Model 3上運行此腳本,其大小為16GB(SanDisk Ultra Class 10)的根分區,其中包含基本的Jessie安裝以及Zymkey軟體套件(〜1GB)到32GB SanDisk Cruzer Fit 1大約需要30-40分鐘。Zymkey的LED快速閃爍,直到過程完成。
SD卡轉換
要將根文件系統轉換為LUKS / dm-crypt,請運行以下腳本:
curl -G https://https://s3.amazonaws.com/zk-sw-repo/mk_encr_sd_rfs.sh | sudo bash
此腳本是參數化的,因此如果您有特殊要求(例如,根文件系統生活在/ dev / mmcblk0p4上),則可以按以下方式調用該腳本:
curl -G https://s3.amazonaws.com/zk-sw-repo/mk_encr_sd_rfs.sh | sudo bash -s -- -x -m
在沒有參數的上述調用中,默認值為:
1.位於/ dev / mmcblk0p2上的原始根文件系統
2.位於/ dev / sda上的原始根tarball的臨時根文件系統/存儲
3.臨時根文件系統占用全新的設備
此外,臨時根文件系統應至少是原始根文件系統大小的2倍。
需要注意的是,如果外部存儲設備具有帶原始根文件系統分區(例如/ dev / mmcblk0p2)的ext4格式化分區,則該腳本將使用外部存儲設備上已經存在的分區來轉換SD卡。這減少了轉換大量Pi根文件系統的時間,並允許腳本在批量生產部署中使用。
購買預先配置的系統
我們將在4月17日提供預配置的系統,整合以下內容:
- 樹莓Pi(3型或零W)
- Zymkey,綁定和鎖定
- 外部設備(USB快閃記憶體,HDD或SSD)或具有加密根文件系統的SD卡。
原文網址:https://kknews.cc/zh-tw/news/gqqjx6m.html
原文網址:https://kknews.cc/zh-tw/news/gqqjx6m.html
留言
張貼留言