匯入和匯出受保護的配置 RSA 金鑰容器

2021-06-06 19:28:53 字數 3618 閱讀 1750

受保護的配置提供了在使用 rsaprotectedconfigurationprovider 時建立、刪除、匯出和匯入 rsa 金鑰容器的能力。對於將同乙個經過加密的 web.config 檔案部署到數台伺服器上的網路場,這會非常有用。在這種情況下,還必須將相同的 rsa 金鑰容器部署到這些伺服器上。為了實現此目的,需要為應用程式建立乙個 rsa 金鑰容器,將它匯出到 xml 檔案,然後在每台需要對加密的 web.config 檔案進行解密的伺服器上匯入該檔案。

在承載多個 asp.net 應用程式的單台 web 伺服器上,建立 rsa 金鑰容器也非常有用。通過為乙個客戶的每個或每組應用程式都建立乙個 rsa 金鑰容器,可以確保乙個應用程式的 rsa 金鑰容器不能用來對另乙個應用程式的 web.config 檔案進行解密,從而提高應用程式的敏感配置資訊的安全性。

若要建立 rsa 金鑰容器,請使用 asp.net iis 註冊工具 (aspnet_regiis.exe) 及–pc開關。必須為金鑰容器指定乙個名稱,該名稱標識應用程式的 web.config 檔案的configprotecteddata節中指定的rsaprotectedconfigurationprovider所使用的金鑰容器。為確保可以匯出新建立的 rsa 金鑰容器,必須包括-exp選項。

例如,下面的命令建立乙個名為 samplekeys 的 rsa 金鑰容器,該容器是可匯出的計算機級金鑰容器。

aspnet_regiis -pc "samplekeys"–exp

下面的示例演示了 web.config 檔案的configprotecteddata節。該節指定使用名為 samplekeys 的計算機級 rsa 金鑰容器的rsaprotectedconfigurationprovider

為了防止無意刪除受保護的配置節的加密和解密金鑰,解除安裝 .net framework 時不會刪除 rsa 金鑰容器。

預設情況下,rsa 金鑰容器受到所在伺服器上的 ntfs 訪問控制列表 (acl) 的嚴密保護。這樣能夠限制可以訪問加密金鑰的人員,從而增強加密資訊的安全性。

必須首先向 asp.net 應用程式的程序標識授予對該 rsa 金鑰容器的讀取訪問許可權,然後 asp.net 才能使用 rsa 金鑰容器。有關設定和確定 asp.net 應用程式標識的資訊,請參見 asp.net 模擬。

可以使用 aspnet_regiis.exe 工具及-pa開關,向 asp.net 應用程式的標識授予讀取 rsa 金鑰容器的許可權。例如,下面的命令向 windows server 2003 network service 帳戶授予對名為samplekeys 的計算機級 rsa 金鑰容器的讀取訪問許可權:

aspnet_regiis -pa "samplekeys" "nt authority\network service"

如果 rsa 金鑰容器是使用者級容器,必須以其 windows 配置檔案儲存了金鑰的使用者的身份登入,並且必須包括-pku選項以授予對該使用者級 rsa 金鑰容器的訪問許可權。有關更多資訊,請參見了解計算機級別和使用者級別的 rsa 金鑰容器。

若要使用計算機配置中指定的預設rsaprotectedconfigurationprovider,必須首先向應用程式的 windows 標識授予對名為 netframeworkconfigurationkey 的計算機金鑰容器的訪問許可權,該計算機金鑰容器是為該預設提供程式指定的金鑰容器。例如,下面的命令向 network service 帳戶授予對預設rsaprotectedconfigurationprovider所使用的 rsa 金鑰容器的訪問許可權。

aspnet_regiis -pa "netframeworkconfigurationkey" "nt authority\network service"
netframeworkconfigurationkey rsa 金鑰容器是 aspnet_regiis.exe 工具所發出的命令的預設金鑰容器。因此上述命令也可以按以下方式發出:

aspnet_regiis -pa "nt authority\network service"
若要將 rsa 金鑰容器匯出到 xml 檔案,可以使用 aspnet_regiis.exe 工具及–px開關。xml 檔案可以用作 rsa 金鑰容器的備份,也可用於在其他伺服器上匯入 rsa 金鑰容器。若要對加密資訊進行解密,rsa 金鑰容器的私鑰部分是必需的。若要在另一台伺服器上使用匯出的金鑰容器,還需匯入私鑰。通過在匯出金鑰時指定–pri選項,可以在 xml 檔案中包括私鑰。還必須指定匯出的金鑰容器是計算機級還是使用者級的。若要匯出使用者級金鑰容器,必須以其 windows 配置檔案儲存了金鑰的使用者的身份登入。若要指定使用者級金鑰,請在匯出加密金鑰資訊時包括-pku選項;否則,匯出的金鑰將來自計算機金鑰儲存區。有關計算機級和使用者級加密金鑰的更多資訊,請參見了解計算機級別和使用者級別的 rsa 金鑰容器。

例如,下面的命令將名為 samplekeys 的計算機級 rsa 金鑰容器匯出到名為 keys.xml 的檔案中幷包括了私鑰資訊。

aspnet_regiis -px "samplekeys" keys.xml -pri

出於安全原因,在將 rsa 金鑰容器匯出到某個 xml 檔案之後,請將該 xml 檔案複製到伺服器外部的乙個位置並將該 xml 檔案從伺服器中刪除。這樣能夠減少攻擊者訪問到您的 rsa 金鑰容器的機會,因而可降低攻擊者對使用該 rsa 金鑰容器加密的 web.config 檔案進行解密的能力。

可以使用 aspnet_regiis.exe 工具和–pi開關,從 xml 檔案匯入 rsa 金鑰容器。還必須指定匯入的金鑰容器是計算機級還是使用者級的金鑰容器。若要匯入使用者級金鑰容器,必須以將在其 windows 配置檔案中儲存金鑰的使用者的身份登入。若要指定使用者級金鑰,請在匯入加密金鑰資訊時包括-pku選項;否則,匯出的金鑰將匯入到計算機金鑰儲存區中。

例如,下面的命令從名為 keys.xml 的檔案中匯入名為 samplekeys 的計算機級 rsa 金鑰容器:

aspnet_regiis -pi "samplekeys" keys.xml
必須向將使用所匯入 rsa 金鑰容器的 asp.net 應用程式的標識授予對該 rsa 金鑰容器內容的讀取許可權。有關更多資訊,請參見本主題前面的。

若要刪除 rsa 金鑰容器,可以使用 aspnet_regiis.exe 工具和–pz開關。在刪除 rsa 金鑰容器之前,請確保已經將金鑰匯出到 xml 檔案中以便能夠在以後匯入,或者確保不需要解密任何用 rsa 金鑰容器加密的資訊。

在刪除某個 rsa 金鑰容器時,必須指定該金鑰容器的名稱,並將該容器標識為計算機級或使用者級。若要刪除使用者級金鑰容器,必須以其 windows 配置檔案儲存了金鑰的使用者的身份登入。

例如,下面的命令刪除名為 samplekeys 的計算機級 rsa 金鑰容器。

aspnet_regiis -pz "samplekeys"

受保護的Hyper V環境和受保護的虛擬機器

無論是企業內部還是託管在idc或雲服務商的虛擬機器,如何保障執行的環境是安全的,虛擬機器是安全的 虛擬機器檔案裡的資料以及看到的監視器畫面 成為此篇文章和大家 研究的。比如您正在執行的虛擬機器,管理員是可以通過虛擬化平台通過監視器看到您的系統並操作的,比如關機,開啟,重啟等等操作,其次如果有別有用心...

公有 私有和受保護成員的特點

公有 私有和受保護成員的特點公有 public 公有成員能被繼承,也可以被外部函式訪問。私有 private 私有成員不能被繼承,也不能被外部函式訪問。受保護 protect 受保護成員能夠被繼承,但是不能被外部函式訪問 在實現部分定義的成員預設是受保護成員 如 class a 而在實現部分的成員則...

mysql的匯入和匯出

這幾天一直在linux下操作mysql 1.匯出整個資料庫 mysqldump u 使用者名稱 p 資料庫名 匯出的檔名 2.匯出乙個表 mysqldump u 使用者名稱 p 資料庫名 表名 匯出的檔名 3.匯出乙個資料庫結構 d 沒有資料 add drop table 在每個create語句之前...