虛擬加密磁盤實現
1. 背景
我們知道,將數據保存到硬盤上面是很不安全的,例如如果有一個公司的核心文檔保存在員工電腦上面,雖然這個員工可以對自己的電腦進行一定的防護,例如封掉USB,禁止上網等等,但是一旦有人將硬盤拔走的話,還是比較危險的,因此這裏產生了兩種安全解決方案:
- 文檔加密系統。
- 磁盤加密系統。
這裏要講的是第二種,磁盤加密,不過這裏我們不加密硬件磁盤,我們利用一個文件虛擬出一個虛擬的磁盤,然後當應用程序往虛擬磁盤寫入內容的時候,我們就加密寫入的數據,當讀取數據的時候,我們先解密數據然後再返回。
2. 原理
整體的框架信息如下:
這裏我們實現一個虛擬的文件磁盤驅動,然後再這個驅動中實現一個加解密通過,我們讀取真實的文件內容的時候就通過這個通道來完成。這樣
- 當向磁盤中寫入數據的時候,我們通過加密通道加密寫入。
- 當從磁盤中讀取數據的時候,先通過解密通道解密數據,然後再返回給應用程序。
3. 效果
在虛擬的加密磁盤中寫入數據之後,如下:
然後我們取出文件,掛載文件到磁盤,此時的結果如下:
因此我們可以發現這個磁盤中的數據無法獲取到,如果直接通過讀取磁盤中的原始數據也是不行的,因爲數據是通過加密保存的。