在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
445if(ret
==fs_mgr_mntall_dev_needs_encryption
) else if (
type
== crypt_type_default
) else
211
2126,執行cryptfs.c中的cryptfs_enable_default函式if (rc
==0) else if (
tries
== 0)
217}
32357,cryptfs_enable_default是加密流程中比較重要的乙個函式,在這裡就詳細說明下,intcryptfs_enable_default
(char*
howarg
,int
no_ui)
3236
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
1552static int
prep_data_fs(void)
1553
3060
3061rc=
set_hw_device_encryption_key
(passwd
,
3062(char*)
crypt_ftr
.crypto_type_name
);
3063if (!rc
)
13),用輸入的password去拿decryptmaster key
3105decrypt_master_key
(passwd
, decrypted_master_key
, &crypt_ftr
, 0, 0);
14),用decryptmaster key建立crypto block dev(dm device)
3106create_crypto_blk_dev
(&crypt_ftr
, decrypted_master_key
, real_blkdev
, crypto_blkdev
,
3107"userdata");
15),encrypt
3122if (!rc
)
16),如果是default加密,就不會走重啟流程,是呼叫cryptfs_restart_internal(1)
3161property_set
("ro.crypto.s
tate", "encrypted");
3162release_wake_lock
(lockid
);
3163cryptfs_check_passwd
(default_password
);
3164cryptfs_restart_internal
(1);
3165return 0;
17),如果不是default加密,那麼就會重啟
3166} else {
3167sleep
(2); /* give the ui a chance to show 100% progress */
android security框架3168cryptfs_reboot
(reboot
);
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隨機選擇一種對稱加密演算法將明文和數字簽名...