電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>使用ZYMKEY加密Raspberry Pi上的根文件系統(tǒng)

使用ZYMKEY加密Raspberry Pi上的根文件系統(tǒng)

2023-06-16 | zip | 0.00 MB | 次下載 | 免費(fèi)

資料介紹

描述

為什么要加密?

對 Raspberry Pi 上的根文件系統(tǒng) (RFS) 進(jìn)行加密的原因有很多,從保持 WiFi 憑證不可變到防止專有軟件和敏感數(shù)據(jù)被克隆。對于許多 Raspberry Pi 配置,僅存在兩個分區(qū):

  • /啟動 /dev/mmcblk0p1
  • /上/dev/mmcblk0p2

因此,將根分區(qū)加密作為加密所有內(nèi)容的一種方式是有意義的。

介紹盧克斯

LUKS ( L inux Unified Key S etup ) 是 dm - crypt的流行密鑰管理設(shè)置,它是 Linux 塊設(shè)備加密的事實(shí)標(biāo)準(zhǔn)。

LUKS 為多個用戶(和服務(wù))提供了一個強(qiáng)大而靈活的機(jī)制來連接和訪問 Linux 的“ dm-crypt ”基礎(chǔ)設(shè)施。

dm-crypt是 Linux 內(nèi)核 2.6 及更高版本中的透明磁盤加密子系統(tǒng),是設(shè)備映射器基礎(chǔ)架構(gòu)的一部分,并使用來自內(nèi)核 Crypto API 的加密例程。兩者都在 IT 社區(qū)中被廣泛使用和理解。

單一萬能鑰匙的缺點(diǎn)

dm-crypt 有一個主密鑰,用于加密/解密塊內(nèi)/外的數(shù)據(jù)。為了確保長期安全并應(yīng)對不斷變化的授權(quán)用戶/服務(wù),有必要經(jīng)常更改主密鑰,并可能定期與多個用戶/服務(wù)共享它。主密鑰的每一次新迭代都需要每次都對底層數(shù)據(jù)塊進(jìn)行重新加密。在實(shí)際系統(tǒng)中,由不同的用戶/服務(wù)接觸,這是不切實(shí)際的。

分級密鑰管理

一個更實(shí)用的解決方案是進(jìn)行分層密鑰管理設(shè)置,其中為用戶/服務(wù)提供用于釋放 MasterKey 的用戶密鑰。用戶密鑰可以很容易地更改和撤銷,而無需重新加密底層數(shù)據(jù)塊。這樣一個分層密鑰管理器的管理就是 LUKS 的角色。

在這篇文章中,我們將展示如何使用 Zymkey 鎖定用戶密鑰,該用戶密鑰隨后用于解鎖主密鑰并提供對根文件系統(tǒng)的訪問。如果您想了解更多關(guān)于 LUKS 的信息,請參閱本文底部的參考資料。

?
poYBAGNy4A-AObsFAAEZdYr0sSQ767.png
?

LUKS 用戶密鑰的安全存儲

LUKS 加密 RFS 的安全效力很大程度上取決于用戶密鑰的生成方式和存儲位置。

Pi SD 卡不是安全的存儲位置

不斷壯大的 Raspberry Pi 家族很棒,我們喜歡它!它價格低廉,具有令人難以置信的嵌入式設(shè)備計算能力,并且具有非常強(qiáng)大的軟件開發(fā)生態(tài)系統(tǒng)。

然而,Raspberry Pi 有一個致命弱點(diǎn):SD 卡是主要的軟件部署媒體,它可以很容易地移除和操作。

自然傾向是使用 dm-crypt 上的 LUKS 加密文件系統(tǒng),但對于許多部署單元的無人值守使用,顯而易見的問題是:LUKS 密鑰存儲在哪里?當(dāng)然是文件系統(tǒng)。即使您嘗試通過各種程序化手段對其進(jìn)行混淆,密鑰仍然很容易受到攻擊。

使用 Zymkey 安全模塊保護(hù) LUKS 用戶密鑰。

?
pYYBAGNy4BKAf64eAADN2fzsJko198.png
?

Zymkey 提供了一種通用的“鎖定”服務(wù),通過該服務(wù)對純文本數(shù)據(jù)塊進(jìn)行加密和簽名。

當(dāng)與 LUKS 一起使用時,用戶密鑰被發(fā)送到 Zymkey 以在文件系統(tǒng)創(chuàng)建時被鎖定(加密和簽名)。當(dāng)系統(tǒng)啟動并需要解密根文件系統(tǒng)時,鎖定的 LUKS 密鑰被“解鎖”(簽名驗(yàn)證和內(nèi)容解密)并呈現(xiàn)給 dm-crypt。如果密鑰已成功解鎖,則啟動過程會正常繼續(xù)。以下是 LUKS/dm-crypt 文件系統(tǒng)的啟動順序,其中密鑰受 Zymkey 保護(hù):

  • 內(nèi)核初始化initramfs
  • initramfs 將鎖定的 LUKS 密鑰提供給 Zymkey
  • Zymkey 驗(yàn)證簽名并解密密鑰 *
  • 解密后的密鑰被提交給 LUKS,然后根文件系統(tǒng)被解密

*要求 Zymkey 操作狀態(tài)為“安全”

?
poYBAGNy4BSALBsNAAEAYZVTkAE842.png
?

Zymkey 在解鎖 LUKS 密鑰之前驗(yàn)證主機(jī)系統(tǒng)

Zymkey 的主要功能之一是根據(jù)測量特定系統(tǒng)組件的指紋為主機(jī)系統(tǒng)生成唯一身份 (ID)。此指紋識別過程用于將特定 Zymkey(信任根、密鑰存儲、加密服務(wù))、特定主機(jī)和特定 SD 卡“綁定”在一起。一旦綁定,這些組件就形成了主機(jī)系統(tǒng)的永久且不可變的 ID。

每次 Pi 啟動時,以及之后的隨機(jī)間隔,Zymkey 都會重新檢查 ID 指紋。如果任何系統(tǒng)組件更改了指紋更改并且系統(tǒng)被認(rèn)為已被破壞,則身份驗(yàn)證失敗并且所有安全服務(wù)都將關(guān)閉。

使用此 ID / 身份驗(yàn)證功能,Zymkey 可用于在無人看管的應(yīng)用程序中保護(hù) LUKS 用戶密鑰,在這些應(yīng)用程序中,可以輕松刪除和復(fù)制 SD 卡內(nèi)容。(Zymkey 還具有其他物理安全功能,也可用于鎖定/啟用安全服務(wù))

?
pYYBAGNy4BaATKcTAADjfPgKsQw816.png
?

在哪里存儲您的 LUKS 加密 RFS

LUKS 用途廣泛,可應(yīng)用于 SD 卡和外部存儲介質(zhì)。讓我們回顧一下每個選項(xiàng)的優(yōu)缺點(diǎn):

選項(xiàng) 1 - 將現(xiàn)有 SD 卡轉(zhuǎn)換為 LUKS

轉(zhuǎn)換 SD 卡上現(xiàn)有的根文件系統(tǒng)仍然需要一個外部設(shè)備(例如 USB 閃存驅(qū)動器)用作臨時引導(dǎo)根文件系統(tǒng):這為轉(zhuǎn)換和復(fù)制原始內(nèi)容提供了一種更簡單、風(fēng)險更低的方法。外部設(shè)備需要比現(xiàn)有的根文件系統(tǒng)大一點(diǎn),以便存儲舊的文件系統(tǒng)。

優(yōu)點(diǎn):

  • 更少的物理空間要求。
  • 所需的功率要少得多。

缺點(diǎn):

  • 與遷移到外部驅(qū)動器相比,轉(zhuǎn)換更加復(fù)雜和耗時。
  • 數(shù)據(jù)空間限制。
  • 寫周期約束。
  • 訪問速度限制。

工藝步驟:

  • 制作原始根文件系統(tǒng)的 tarball 并將其存儲在外部設(shè)備上
  • 將原始根文件系統(tǒng)文件復(fù)制到外部設(shè)備,形成臨時文件系統(tǒng)
  • 引導(dǎo)至臨時文件系統(tǒng)。啟動后,臨時文件系統(tǒng)將
    創(chuàng)建一個 LUKS 密鑰
    b. 用 zymkey
    c 鎖定 LUKS 鍵。在原始根分區(qū)上創(chuàng)建一個 LUKS 卷
    d. 在原始根分區(qū)的 LUKS 卷上創(chuàng)建一個 ext4 分區(qū)
    e。將根文件系統(tǒng) tarball 解壓到轉(zhuǎn)換后的分區(qū)中

選項(xiàng) 2 - 將現(xiàn)有 SD 卡遷移到外部 LUKS 存儲設(shè)備。

現(xiàn)有的根文件系統(tǒng)可以遷移到外部 LUKS 加密的 USB 閃存、硬盤或 SSD。

優(yōu)點(diǎn):

  • 外部設(shè)備可以保存更多數(shù)據(jù)。
  • 遷移比 SD 卡轉(zhuǎn)換方法更容易、更快捷。
  • 一些外部設(shè)備的數(shù)據(jù)訪問速度比 SD 卡快得多。
  • 一些外部設(shè)備(例如 HDD)可以承受比 SD 卡更多的寫入周期。

缺點(diǎn):

  • 對于 HDD 和 SSD 以及非緊湊型 USB 閃存設(shè)備,還有額外的電源要求。
  • 除了緊湊型 USB 閃存設(shè)備外,物理空間需求也隨之增加。這對于 Raspberry Pi Zero 系列來說可能尤其重要。

工藝步驟:

  • 創(chuàng)建 LUKS 密鑰
  • 鎖定 LUKS 鍵
  • 在外部 USB 設(shè)備上創(chuàng)建 LUKS 卷
  • 在 LUKS 卷上創(chuàng)建一個 ext4 分區(qū)
  • 將現(xiàn)有的根文件系統(tǒng)移動到外部設(shè)備上的 LUKS 卷
  • 引導(dǎo)到新的根文件系統(tǒng)并擦除以前的根卷

構(gòu)建你的 LUKS 加密 RFS

先決條件

確保您的 Zymkey 軟件套件已經(jīng)在運(yùn)行和運(yùn)行,并確保您的 Zymkey 已綁定。此處的說明:(入門:ZYMKEY4i 與 RASPBERRY PI )。

注意:對于帶有 eMMC 的 CM4/IO 模塊,由于默認(rèn)禁用 USB 2.0 端口,因此需要執(zhí)行額外的步驟:

  • 升級引導(dǎo)加載程序版本:2021 年 1 月 16 日
  • 設(shè)置啟動順序以允許從 USB 啟動:0xf15
  • 修改 /boot/config.txt 并在 [all] 下添加“otg_mode=1”行。如果添加,這將替換“dtoverlay=dwc2, dr_mode=host”行。

選項(xiàng) 1 - 將現(xiàn)有 SD 卡轉(zhuǎn)換為 LUKS

要將您的根文件系統(tǒng)轉(zhuǎn)換為 LUKS/dm-crypt,您需要連接一個外部 USB 磁盤(作為臨時存儲)。如前所述,這是必要的,因?yàn)椴豢赡芫偷丶用芊謪^(qū),因此在進(jìn)行轉(zhuǎn)換時需要外部磁盤作為臨時存儲和臨時根文件系統(tǒng)。外部磁盤需要至少是根分區(qū)的兩倍。接下來,運(yùn)行以下腳本:

curl -G https://s3.amazonaws.com/zk-sw-repo/mk_encr_sd_rfs.sh | sudo bash

該腳本是參數(shù)化的,因此如果您有特殊要求(例如根文件系統(tǒng)位于 /dev/mmcblk0p4 上),您可以通過以下方式調(diào)用它:

curl -G https://s3.amazonaws.com/zk-sw-repo/mk_encr_sd_rfs.sh | sudo bash -s -- -x -m

在上面沒有參數(shù)的調(diào)用中,默認(rèn)值為:

  • 位于 /dev/mmcblk0p2 的原始根文件系統(tǒng)
  • 位于 /dev/sda 上的原始根 tarball 的臨時根文件系統(tǒng)/存儲
  • 臨時根文件系統(tǒng)占用整個新設(shè)備

在新的臨時外部 USB 磁盤上首次運(yùn)行此腳本可能需要很長時間。此外,在腳本完成之前需要重新啟動兩次。

需要注意的一點(diǎn)是,如果外部存儲設(shè)備上有一個帶有原始根文件系統(tǒng)分區(qū)(例如 /dev/mmcblk0p2)的 ext4 格式化分區(qū),此腳本將使用外部存儲設(shè)備上已有的內(nèi)容來轉(zhuǎn)換 SD卡片。這減少了轉(zhuǎn)換大量 Pi 根文件系統(tǒng)的時間,并允許在大規(guī)模生產(chǎn)部署中使用該腳本。

在帶有連接 USB SSD 作為裸 Jessie “完整”版本 (~4GB) 的外部設(shè)備的 Pi3 上,此腳本的第一次運(yùn)行需要大約一個小時才能完成第一階段。第二階段大約需要 15 分鐘。

具有 Jessie“精簡版”(約 1.6GB)的同一平臺在第 1 階段大約需要 20 分鐘,在第 2 階段需要 5 分鐘。

綜上所述,使用格式化后的外接設(shè)備轉(zhuǎn)換后續(xù)單位只需 15/5 分鐘。

選項(xiàng) 2 - 將現(xiàn)有 SD 卡遷移到外部 LUKS 存儲設(shè)備。

要將根文件系統(tǒng)遷移到外部 USB 設(shè)備,可以運(yùn)行以下腳本:

curl -G https://s3.amazonaws.com/zk-sw-repo/mk_encr_ext_rfs.sh | sudo bash

該腳本是參數(shù)化的,因此如果您有特殊要求,可以通過以下方式調(diào)用:

curl -G https://s3.amazonaws.com/zk-sw-repo/mk_encr_ext_rfs.sh | sudo bash -s -- -x -p -m

在上面沒有參數(shù)的調(diào)用中,默認(rèn)值為:

  • 位于 /dev/mmcblk0p2 的原始根文件系統(tǒng)
  • 位于 /dev/sda1 的新根文件系統(tǒng)
  • 新的根文件系統(tǒng)占用了整個新設(shè)備

請注意,新的根文件系統(tǒng)至少應(yīng)該比原來的根分區(qū)大一點(diǎn)

在根分區(qū)約為 16GB(SanDisk Ultra Class 10)的 Pi Model 3 上運(yùn)行此腳本,其中包含基本 Jessie 安裝以及 Zymkey 軟件套件(~1GB)到32GB SanDisk Cruzer Fit大約需要 30-40 分鐘。Zymkey 的 LED 快速閃爍,直到該過程完成。

將 LUKS 集成到批量制造工作流程中

上面的示例旨在幫助您啟動和運(yùn)行單個和低容量的應(yīng)用程序。

如果您在開發(fā)大批量制造加密工作流程方面需要支持,請聯(lián)系我們討論我們的 OEM 工程服務(wù)。

參考


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)