Site icon Mr. 沙先生

Windows 2012 R2 實作 EFS 檔案系統加密

在最近資安意識漸漸抬頭,很多系統都要求必須加密,這對於系統人員來說是好事,不管是管理還是客戶需求,都是一件學習的好機會

 

 

在微軟的 Windows 內建就提供 EFS 檔案加密

EFS 為 Encrypting File System 的縮寫,是 NTFS 3.0 後所推出的功能,利用對稱金鑰對文件進行加密期利用原理為 一把私鑰、一把公鑰

 

 

EFS 加密流程圖

 

 

在使用 EFS 時有一些需知是必須注意的

1. 僅有 NTFS 格式的磁碟區才可加密,若將加密檔案移至 FAT32 即會解密(但必須要有金鑰)

2. 標示為「系統」屬性的檔案及 systemroot 無法被加密

3. FEK 金鑰憑證必須妥善保存或備份,一旦移失就很難救回

4. 雖有一些recovery軟體可使用,但僅能找回 block 還未被覆寫的金鑰檔案,若是必須救援,請停止任何寫入的動作。

5. 預設金鑰存在 User Profile

6. 若將加密檔案複製到別台電腦,憑證會一併複製給該台電腦使用者

 

 

 

此次範例是因為某個客戶希望資料庫的 mdf 、ldf 要進行檔案加密

 

必須注意一點 在進行 EFS 要先了解到僅是檔案系統加密,並無法針對資料庫內容進行加密,也就是資料庫的資料還是可以透過特定權限取得,只是無法被帶走,若要正確的執行資料庫加密,可以參考 MSSQL 的 TDS 加密。

 

 

 

加密 SQL 資料庫設定

 

setp.1 首先先建立 EFS 的使用者;efssunnet,這個使用者是 EFS for service file 使用。

 

 

 

setp.2 使用 efssunnet 這個使用者登入,並且將需要加密的檔案進行加密

master.mdf 右鍵內容→ 一般選單的「進階」→ 勾選「加密內容,保護資料」→ 「確定」

 

 

 

setp.3 加密後你可以看到 檔案或資料夾 為綠色,並皆可於上圖的【詳細資料】找到這個檔案可存取的使用者、憑證

 

在setp3已經把檔案加密完成了!

 

 

setp.4 由於 mdf 會由 SQL 服務來開啟,所以SQL服務也需要有此使用者權限,否則服務就會啟動失敗

「系統管理工具」→ 「服務」→ 右鍵內容「SQL Server(執行個體名稱)」→ 「登入」→ 「這個帳戶」

※SQL 有許多服務,我這邊僅挑選我需要使用者SQL主服務來登入

 

 

setp.5 重啟服務,必須要可以正常啟動。如果無法啟動請檢查 mdf、ldf 擁有 efssunnet 權限

否則就會出現以下的錯誤

在啟動期間,開啟檔案 ‘C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\master.mdf’ 以取得組態資訊時發生錯誤 5(存取被拒。)。這可能是無效的啟動選項所造成的錯誤。請確認您的啟動選項,並在必要時更正或移除它們。

 

 

 

 

管理

有經過 EFS 加密的電腦必須更加注意的去管理,避免射後不理導致日後遺失憑證 或 format disk 後資料打不開的窘境

 

在 Windows 內建有 UI 可以進行備份憑證

在「控制台」→ 「使用者帳戶」→ 「管理您檔案加密憑證」

你可以選擇新增一個新的憑證 或是使用現有憑證來進行備份

 

若是你有新增憑證需要更新,也可以在此更新已加密過檔案的憑證。

 

 

 

 

 

到 User Profile 查看目前擁有的憑證狀況

執行certmgr.msc → 「個人」→ 「憑證」

 

一個憑證的使用期限為 100年,非常夠用

 

 

 

 

 

 

 

 

 

 

 

Exit mobile version