.NET5 Data Protection 研究
ASP.NET Core 資料保護, Data Protection, DataProtection,
引言
將應用到工作上保謢重要資料。
正式名稱為:ASP.NET Core Data Protection (資料保護)。
這一套資料保護可以支援多種不同的模用模式。可以選擇是否與 Azure Key Vault 搭配。可以選擇是否搭配憑證(Certification)。可以單獨自我保護自己的資料。也可以是主要/次要關聯性中設定保護的應用程式,其中只有主要應用程式負責管理重要的問題,而次要應用程式只具有金鑰環的唯讀觀點。只有主要應用程式可以加密保護資料,次要應用程式只能解密讀取保護資料(在這裡簡程為P/A保護模式)。此P/A保護模式為本次研究重點。
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 用的憑證。
自簽憑證紀錄 with New-SelfSignedCertificateLast updated