FDE之加密流程

2021-07-25 03:41:42 字數 3407 閱讀 2255

在android m版本,手機都要求預設開啟fde,在download完之後的第一次開機過程中會對手機/data分割槽進行加密。其流程大致如下:

1,*.rc檔案中,mount_all /fstab

2,/system/core/init/builtins.cpp的do_mount_all介面

在這裡會去讀取fstabl中關於/data分割槽的加密的flag,並做mount動作。

3,mount /data的返回值值fs_mgr_mntall_dev_needs_encryption

445

if(ret

==fs_mgr_mntall_dev_needs_encryption

) else if (

type

== crypt_type_default

) else

211

212

if (rc

==0) else if (

tries

== 0)

217}

6,執行cryptfs.c中的cryptfs_enable_default函式

3235

intcryptfs_enable_default

(char*

howarg

,int

no_ui)

3236

7,cryptfs_enable_default是加密流程中比較重要的乙個函式,在這裡就詳細說明下,

1),get_crypt_ftr_and_key函式,一些重要的介面都定義在cryptfs.h中

2),fs_mgr_get_crypt_info,這個在fstab中有設定

3),trigger_shutdown_framework

4),unmount all volumes

5),unmount /data

6),mount tempfs on /data

7),設定vold.encrypt_progress為0

8),pre data fs

1552

static int

prep_data_fs(void)

1553

3060

3061

rc=

set_hw_device_encryption_key

(passwd

,

3062

(char*)

crypt_ftr

.crypto_type_name

);

3063

if (!rc

)

13),用輸入的password去拿decryptmaster key

3105

decrypt_master_key

(passwd

, decrypted_master_key

, &crypt_ftr

, 0, 0);

14),用decryptmaster key建立crypto block dev(dm device)

3106

create_crypto_blk_dev

(&crypt_ftr

, decrypted_master_key

, real_blkdev

, crypto_blkdev

,

3107

"userdata");

15),encrypt

3122

if (!rc

)

16),如果是default加密,就不會走重啟流程,是呼叫cryptfs_restart_internal(1)

3161

property_set

("ro.crypto.s

tate", "encrypted");

3162

release_wake_lock

(lockid

);

3163

cryptfs_check_passwd

(default_password

);

3164

cryptfs_restart_internal

(1);

3165

return 0;

17),如果不是default加密,那麼就會重啟

3166

} else {

3167

sleep

(2); /* give the ui a chance to show 100% progress */

3168

cryptfs_reboot

(reboot

);

android security框架

fde introduction

fde之要求密碼開機流程

fde之預設密碼開機流程

預置apk簽名

fde之加密流程

adb shell 安全

DS5000神奇的FDE全磁碟加密技術

隨著儲存技術的發展,資料量與日劇增的同時,使用者對儲存資料的安全性也越來越重視。比如說盤櫃上的物理磁碟故障進行了更換,而故障物理磁碟上又有一些敏感資料,使用者擔心磁碟帶離現場後可能存在資料安全隱患,當然可以向商家購買故障盤保留服務,自已來處理。另外一種方式就是使用這種fde全磁碟加密技術,當磁碟啟用...

HTTPS加密流程

1 客戶端發起https請求首先向服務端傳送客戶端ssl tls協議版本號 支援的加密演算法種類 如 rsa加密演算法,des對稱加密演算法,sha1摘要演算法 產生隨機數等資訊 2 服務端向瀏覽器回傳 ssl tls 協議版本號 選擇一種客戶端瀏覽器支援的加密演算法和hash演算法 隨機數 服務端...

加密方案與流程

網際網路加密領域比較成熟的方案?以私鑰方a向公鑰方b傳送加密資訊為例 加密 1 生成非對稱金鑰對,申請數字證書 公鑰將會儲存在證書中 2 a通過乙個hash函式將需要傳送的明文做處理,這樣得到的值叫做摘要yy,然後再將摘要通過私鑰加密形成乙個數字簽名 3 a隨機選擇一種對稱加密演算法將明文和數字簽名...