精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

磁盤eCryptfs加密測試用例

麥辣雞腿堡 ? 來源:OPPO內核工匠 ? 作者:m0rgan ? 2023-11-29 11:27 ? 次閱讀

eCryptfs詳解

本章節我們先用簡單用例驗證eCryptfs加密效果特點,使大家對方案有個整體感性認識,同時也會提供一個C版本用例作參考。其次對測試結果進行初步分析,接著詳細分析eCryptfs方案架構原理和核心機制,最后對關鍵業務流程代碼進行簡單梳理。

測試環境使用Ubuntu20.04虛擬機,因Ubuntu系統默認打開eCryptfs內核配置(CONFIG_ECRYPT_FS=y),只需apt安裝用戶態工具ecryptfs-utils即可。

4.1、測試用例

下圖是一個腳本基礎測試用例。先創建test目錄和文件hello,之后使用 mount -t ecryptfs方式對test目錄進行加密,為避免命令行交互,將所有加密參數(passwd、cipher、key size等)通過命令行-o傳遞。加密后在test目錄創建新文件hello_encrypted。最后umount取消目錄加密。

圖片

圖片

從第一個測試用例可以觀察到的現象/特性有:

1、執行mount,寫入hello_encrypted文件內容后可以正確訪問,但umount后則為密文。說明eCryptfs作為堆疊加密文件系統,是通過mount/unmount操作來開關使能的。功能打開時,用戶讀寫操作是感知不到數據加解密過程的,即透明加密。

2、hello文件內容在mount前寫入,在mount前后都能正確訪問(用例只測了讀操作,實際寫也可以)。說明eCryptfs支持非加密文件和加密文件在一個目錄內混合存儲,并能正確訪問(實際操作強烈不建議,見下個用例)。

3、對于加密文件hello_encrypted,明文狀態下長度為16 Bytes,加密狀態下為12KB,變化比較明顯。

如果對上述測試用例稍加改動,調整mount -t ecryptfs參數,如改變passwd,取消no_sig_cache=y配置,打開文件名加密參數即ecryptfs_enable_filename_crypto=y,測試效果如下圖:

圖片

從第二個改動后的用例可以觀察到的現象/特性有 :

4、ecryptfs支持文件名加密。因為文件名加密密鑰FNEK未在參數中指定,mount helper會提示/默認使用文件內容加密密鑰(即圖中fnek_sig和fs_sig相同,需說明的是加密密鑰并非參數中的passwd,后續架構和密鑰管理章節會說明)。

5、雖然ecryptfs_passthrough特性仍打開,即允許加密和非加密文件共存,但與上一個用例效果不同。啟動文件名加密并mount后,未加密文件hello無法在test中顯示,umount后又可正常訪問。兩個用例中passthrough特性在不同參數下表現不同,因此實際應用中,強烈不建議加密和非加密文件在一個目錄混存。

圖片

圖片

另外補充一個現象/特性:

6、umount后,即加密的test目錄是可以直接傳輸/拷貝到其他主機/網絡進行存儲備份的。其他用戶使用時,只需用相同參數重新mount即可正確訪問。

關于用例中mount -t ecryptfs命令的相關參數匯總如下,詳情可參考man ecryptfs手冊及ecryptfs-utils源碼。部分參數和意義會在架構分析和密鑰管理章節進一步說明。

圖片

需要說明的是,上述腳本用例的功能基本都可以用ecryptfs-utils提供接口API實現。下面是作者實現的一個C用例的部分代碼參考。因為C程序需引用ecryptfs.h頭文件并使用相關API函數,需要安裝libecryptfs-dev軟件包,并在編譯時指定-lecryptfs鏈接對應庫文件。

C用例中需要注意的是,mount操作前必須進行ecryptfs_add_passphrase_key_to_keyring,即將passphrase轉換成對應的key(實際為FEKEK,見后續分析),并注冊到內核keyring,同時返回一個key_sig給用戶后續使用。

圖片

4.2、結果分析

從上節測試結果中,匯總相關測試項以及eCryptfs效果特性如下表,需要說明的有兩點:

圖片

一是對test目錄重復mount且每次使用不同密鑰的效果。從下圖用例看,對應passwd mount后生成的文件,只能在該mount context中正確訪問。這個用例僅為簡單說明,在參數變化情況下,例如文件名加密,情況可能更復雜和不確定,因此也不建議使用。圖片

二是文件加密后大小變化問題,這個原因在于eCryptfs的方案本身設計。

文檔《eCryptfs v0.1 Design Document》和2007年論文《eCryptfs: a Stacked Cryptographic
Filesystem》。從中可看出加密文件格式會多增加一個header信息(預留一個page)。對于文件內容則是按頁分塊加密。為了綜合性能考慮,故使文件大小做到page對齊,最小12KB。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 測試
    +關注

    關注

    8

    文章

    5174

    瀏覽量

    126488
  • Linux
    +關注

    關注

    87

    文章

    11232

    瀏覽量

    208949
  • 磁盤
    +關注

    關注

    1

    文章

    367

    瀏覽量

    25180
收藏 人收藏

    評論

    相關推薦

    基于UML的生成場景測試用研究

    使用UML生成場景測試用,有利于測試者設計測試用。使用UML的類圖、狀態圖和順序圖來說明DHCP實例的場景
    發表于 03-31 09:49 ?15次下載

    手機硬件測試用

    手機硬件測試用 1.RF 測試 2.BB測試 3.Audio 測試 4.EMC測試
    發表于 04-28 16:59 ?56次下載

    基于跨平臺系統中測試用復用的解決方法

    在軟件開發過程中,測試做為一種保障產品質量的有效手段,被越來越多的人所重視。測試通常需要依據若干已經設計好的測試用逐步展開,使用測試用
    發表于 11-14 15:55 ?10次下載
    基于跨平臺系統中<b class='flag-5'>測試用</b><b class='flag-5'>例</b>復用的解決方法

    基于DSEA的弱變異測試用集生成方法

    為解決基于集合進化算法(SEA)的弱變異測試用集生成過程中個體規模固定和執行開銷大的問題,提出一種基于動態集合進化算法( DSEA)的弱變異測試用集生成方法。以
    發表于 11-28 16:11 ?0次下載

    基于二分K-means的測試用集約簡方法

    測試用集約簡是軟件測試中的重要研究問題之一,目的是以盡量少的測試用達到測試目標。為此,提出一
    發表于 03-12 15:06 ?0次下載
    基于二分K-means的<b class='flag-5'>測試用</b><b class='flag-5'>例</b>集約簡方法

    數據測試:輸入數據的設計方法和測試用設計方法

    測試用的設計是測試設計的重要內容,關于測試用的設計方法,當前不少出版的測試書和發表的
    的頭像 發表于 06-29 10:22 ?2899次閱讀

    詳談Web測試中的界面測試用設計

    詳談Web測試中的界面測試用設計
    的頭像 發表于 06-29 10:48 ?2083次閱讀

    數據測試:代替測試用的檢查表

    前幾年在大連出差的時候,幫一個項目做測試,順便寫下這個檢查表,這個檢查表對測試的初學者積累經驗比較有用,實際對于有經驗的測試人員尤其對于測試業務管理信息系統,基本上大量的
    的頭像 發表于 06-29 10:50 ?2687次閱讀

    測試用的管理 介紹測試用的幾種管理方法

    摘要 隨著軟件系統規模的持續增大,業務復雜度的持續增加,軟件測試的復雜度也隨之越來越大。而軟件測試工作復雜度的直接體現,就是測試用編寫、維護、執行和管理,所以編寫易讀、易維護和易管理
    的頭像 發表于 11-26 15:13 ?6657次閱讀
    <b class='flag-5'>測試用</b><b class='flag-5'>例</b>的管理 介紹<b class='flag-5'>測試用</b><b class='flag-5'>例</b>的幾種管理方法

    測試用質量的重要性

    在進行測試時,通常會花很多精力選擇“正確”的測試工具。這其實只是為了實現次要目標。當然,一個適合開發環境、項目和流程的工具是重要的。然而,對于良好測試而言,最重要的是測試用
    的頭像 發表于 09-03 15:13 ?837次閱讀
    <b class='flag-5'>測試用</b><b class='flag-5'>例</b>質量的重要性

    篇 | 單元測試用復用到集成測試?Testlet Library來助力!(上)

    作者:fox小編:吃不飽作為一名測試工程師,在做MiL測試時,編寫測試用的效率影響整個測試項目的進度,如何有效提升編寫
    的頭像 發表于 11-04 10:14 ?826次閱讀
    用<b class='flag-5'>例</b>篇 | 單元<b class='flag-5'>測試用</b><b class='flag-5'>例</b>復用到集成<b class='flag-5'>測試</b>?Testlet Library來助力!(上)

    FDE磁盤加密技術是什么

    磁盤加密技術 如上節所述,Disk Encryption磁盤加密,目標是保護數據at Rest狀態下的機密性,加密對象是整個
    的頭像 發表于 11-29 10:54 ?1259次閱讀
    FDE<b class='flag-5'>磁盤</b><b class='flag-5'>加密</b>技術是什么

    eCryptfs整體架構和核心加解密機制介紹

    ,使用passphrase模式(如上述測試用)時不需要。ecryptfs-utils可作為用戶態輔助工具或C接口編程參考。 應用程序發起系統調用時先經過VFS,判斷目錄類型為eCryptfs
    的頭像 發表于 11-29 11:43 ?833次閱讀
    <b class='flag-5'>eCryptfs</b>整體架構和核心加解密機制介紹

    Linux內核安全eCryptfs密鑰管理

    ecryptfs-utils源碼,分別介紹這兩個KEY的生成過程。 1、用戶passphrase_passwd 到 FEKEK的轉換 從C測試用中看到,opt參數只有key_sig信息,并不指定FEKEK。且
    的頭像 發表于 11-29 11:46 ?682次閱讀
    Linux內核安全<b class='flag-5'>eCryptfs</b>密鑰管理

    端到端測試用怎么寫

    編寫端到端測試用是確保軟件系統從頭到尾能夠正常工作的關鍵步驟。以下是一個詳細的指南,介紹如何編寫端到端測試用: 一、理解端到端測試 端到
    的頭像 發表于 09-20 10:29 ?344次閱讀