.NET5 Data Protection 研究

ASP.NET Core 資料保護, Data Protection, DataProtection,

引言

將應用到工作上保謢重要資料。

正式名稱為:ASP.NET Core Data Protection (資料保護)。

這一套資料保護可以支援多種不同的模用模式。可以選擇是否與 Azure Key Vault 搭配。可以選擇是否搭配憑證(Certification)。可以單獨自我保護自己的資料。也可以是主要/次要關聯性中設定保護的應用程式,其中只有主要應用程式負責管理重要的問題,而次要應用程式只具有金鑰環的唯讀觀點。只有主要應用程式可以加密保護資料,次要應用程式只能解密讀取保護資料(在這裡簡程為P/A保護模式)。此P/A保護模式為本次研究重點。

設定 ASP.NET Core 資料保護

Data Protection 二種應用模式研究

這裡只提工作上預計使用的資料保護模式,非全部的資料保護應用模式。

一、自我保護模式,可選擇搭配憑證。

Data Protection 自我保護模式

二、P/A保護模式,可選擇搭配憑證。

DataProtection 使用注意事項

1) 運作機制

  • 透過保護『加密金鑰』來保護數據。

  • 加密金鑰依選定的演算法產生。

  • 加密金鑰過期時間致少一星期。

  • 預設的過期時間為 90天,致少一星期。

  • 預設加密(encryption)的演算法為 AES_256_CBC

  • 預設驗證(validation)的演算法為 HMACSHA256

A方: 依演算規則產生『加密金鑰』。 並用『加密金鑰』加密數據產生『保護數據』。

B方: 使用A方產生的『加密金鑰』解開『保護數據』來應用。

2) 已到達過期時間

  • 若A方加密金鑰已到達過期時間,則會依規則產生新的加密金鑰。

  • 若B方加密金鑰已到達過期時間,則此加密金鑰依然有效。

3) 更換新的加密金鑰

  • 在A方金鑰庫找到合法的加密金鑰,就會使用此加密金鑰,不會因更新了新的參數就產生新的。

  • 在A方金鑰庫找到的加密金鑰若已過期或不合法,就會自動產生新的加密金鑰

  • 在A方金鑰庫找不到加密金鑰,則會自動產生新的,也就是若想提前更新加密金鑰就把現有的刪除即可。

  • 在B方金鑰庫找不到加密金鑰,則會發出例外。加密金鑰與保護資料需手動部署。

4) 以憑證保護加密金鑰

  • 保護資料的憑證必需內函私鑰。

  • 保護資料的憑證若放在憑證庫,則必需放在CurrentUser內。

  • 保護資料的憑證若放在檔案系統,則用檔案授權機制管制。

5)以憑證解開保護資料

  • 解開保護資料的憑證若沒有指定,則會自動到憑證庫Cert:CurrentUser\My的位置去找。

程式碼紀錄

Data Protection 練習程式嗎

Data Protection 練習程式嗎

請參考下面自簽憑證紀錄文章,以建立 Data Protection 用的憑證。

自簽憑證紀錄 with New-SelfSignedCertificate

Last updated