電子發(fā)燒友App

硬聲App

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(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)

資料介紹

描述

為什么要加密?

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

  • /啟動(dòng) /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 為多個(gè)用戶(和服務(wù))提供了一個(gè)強(qiáng)大而靈活的機(jī)制來(lái)連接和訪問(wèn) Linux 的“ dm-crypt ”基礎(chǔ)設(shè)施。

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

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

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

分級(jí)密鑰管理

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

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

?
poYBAGNy4A-AObsFAAEZdYr0sSQ767.png
?

LUKS 用戶密鑰的安全存儲(chǔ)

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

Pi SD 卡不是安全的存儲(chǔ)位置

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

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

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

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

?
pYYBAGNy4BKAf64eAADN2fzsJko198.png
?

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

當(dāng)與 LUKS 一起使用時(shí),用戶密鑰被發(fā)送到 Zymkey 以在文件系統(tǒng)創(chuàng)建時(shí)被鎖定(加密和簽名)。當(dāng)系統(tǒng)啟動(dòng)并需要解密根文件系統(tǒng)時(shí),鎖定的 LUKS 密鑰被“解鎖”(簽名驗(yàn)證和內(nèi)容解密)并呈現(xiàn)給 dm-crypt。如果密鑰已成功解鎖,則啟動(dòng)過(guò)程會(huì)正常繼續(xù)。以下是 LUKS/dm-crypt 文件系統(tǒng)的啟動(dò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ù)測(cè)量特定系統(tǒng)組件的指紋為主機(jī)系統(tǒng)生成唯一身份 (ID)。此指紋識(shí)別過(guò)程用于將特定 Zymkey(信任根、密鑰存儲(chǔ)、加密服務(wù))、特定主機(jī)和特定 SD 卡“綁定”在一起。一旦綁定,這些組件就形成了主機(jī)系統(tǒng)的永久且不可變的 ID。

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

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

?
pYYBAGNy4BaATKcTAADjfPgKsQw816.png
?

在哪里存儲(chǔ)您的 LUKS 加密 RFS

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

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

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

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

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

缺點(diǎn):

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

工藝步驟:

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

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

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

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

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

缺點(diǎn):

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

工藝步驟:

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

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

先決條件

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

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

  • 升級(jí)引導(dǎo)加載程序版本:2021 年 1 月 16 日
  • 設(shè)置啟動(dòng)順序以允許從 USB 啟動(dòng):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,您需要連接一個(gè)外部 USB 磁盤(作為臨時(shí)存儲(chǔ))。如前所述,這是必要的,因?yàn)椴豢赡芫偷丶用芊謪^(qū),因此在進(jìn)行轉(zhuǎn)換時(shí)需要外部磁盤作為臨時(shí)存儲(chǔ)和臨時(shí)根文件系統(tǒng)。外部磁盤需要至少是根分區(qū)的兩倍。接下來(lái),運(yùn)行以下腳本:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

請(qǐng)注意,新的根文件系統(tǒng)至少應(yīng)該比原來(lái)的根分區(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 快速閃爍,直到該過(guò)程完成。

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

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

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

參考


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

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  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è)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(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ū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
  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é)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)