公共語言執行庫中的程式集 05程式集安全注意事項

2021-09-06 03:35:44 字數 1576 閱讀 3641

在您生成程式集時,您可以指定該程式集執行所需的一組許可權。是否將特定的許可權授予程式集是基於證據的。

使用證據有兩種截然不同的方式:

通過在將執行程式集的計算機上設定安全策略

,您可以授予一些可選的許可權。如果您希望**可以處理所有潛在的安全異常,可以執行以下操作之一:

說明:安全性是乙個較為複雜的領域,您將要做出很多選擇。有關更多資訊,請參見安全性的基礎概念

。可以用兩種不同但相互補充的方式對程式集進行簽名:使用強名稱,或是使用.net framework 1.0 和1.1 版中的檔案簽名工具(signcode.exe) 以及

.net framework 更高版本中的簽名工具(signtool.exe)。使用強名稱對程式集進行簽名將向包含程式集清單的檔案新增公鑰加密。強名稱簽名幫助驗證名稱的唯一性,避免名稱欺騙,並在解析引用時向呼叫方提供某標識。

但是,任何信任級別都不會與乙個強名稱關聯,這樣簽名工具(signtool.exe) 就變得十分重要。簽名工具要求發行者向第三方證書頒發機構證實其標識並獲取證書,然後此證書將嵌入到您的檔案中,並且管理員能夠使用該證書來決定是否相信這些**的真實性。

您可以將強名稱和使用簽名工具(signtool.exe) 建立的數字簽名一起提供給程式集,或者您可以單獨使用其中之一。簽名工具一次只能對乙個檔案進行簽名。對於多檔案程式集,您可以對包含程式集清單的檔案進行簽名。強名稱儲存在包含程式集清單的檔案中,但簽名工具(signtool.exe) 建立的簽名儲存在該程式集清單所在的可移植可執行(pe) 檔案中保留的槽中。當您已經具有依賴於簽名工具(signtool.exe) 生成的簽名的信任層次結構或者當您的策略只使用金鑰部分並且不檢查信任鏈時,就可以使用通過簽名工具(signtool.exe) 對程式集進行的簽名(帶或不帶強名稱)。

說明:在乙個程式集上同時使用強名稱和簽名工具簽名時,必須首先分配強名稱。

公共語言執行庫還將執行雜湊驗證;程式集清單包含構成該程式集的所有檔案的列表,包括當生成清單時存在的每一檔案的雜湊。在載入每一檔案時,其內容被雜湊化並與清單中儲存的雜湊值進行比較。如果兩個雜湊值不匹配,則無法載入該程式集。

因為強名稱和使用簽名工具(signtool.exe) 進行簽名確保了完整性,因此您可以將**訪問安全策略建立在這兩種形式的程式集證據的基礎上。強名稱和使用簽名工具(signtool.exe) 進行簽名通過數字簽名和證書來確保完整性。上面提到的所有技術(雜湊驗證、強名稱和使用簽名工具(signtool.exe) 進行簽名)共同作用,可以確保程式集沒有做過任何方式的改動。

簽名工具是乙個命令列工具,用於對檔案進行數字簽名,驗證檔案或時間戳檔案中的簽名。

sn [-quiet][option [parameter(s)]]

引數(略)備註

簽名工具要求本地計算機上安裝了capicom 2.0

可再發行程式。

簽名工具的verify 命令確定簽名證書是否由受信任的頒發機構頒發、是否已撤消了簽名證書,以及簽名證書對於特定策略是否有效(此項可選)。

執行成功時,簽名工具返回退出**0;執行失敗時,簽名工具返回退出**1;執行完畢並給出警告時,簽名證書返回退出**2。

示例此命令演示如何使用最佳證書自動對檔案進行簽名。

signtool sign /a myfile.exe

公共語言執行庫中的程式集 02程式集內容

通常,靜態程式集可能由以下四個元素組成 只有程式集清單是必需的,型別或資源向程式集提供任何有意義的功能。程式集中的這些元素有兩種劃分方法。可以將所有元素放在單個物理檔案中。或將乙個元素包含在幾個檔案中。這些檔案可能是編譯 的模組 netmodule 資源 例如 bmp 或.jpg 檔案 或應用程式所...

公共語言執行庫中的程式集 04強命名的程式集

強命名是由程式集的標識加上公鑰和數字簽名組成的。其中,程式集的標識包括簡單文字名稱 版本號和區域性資訊 如果提供的話 強命名是使用相應的私鑰,通過程式集檔案 包含程式集清單的檔案,構成該程式集的所有檔案的名稱和雜湊 生成的。microsoft visual studio net 和windows s...

公共語言執行庫中的程式集 04強命名的程式集

強命名是由程式集的標識加上公鑰和數字簽名組成的。其中,程式集的標識包括簡單文字名稱 版本號和區域性資訊 如果提供的話 強命名是使用相應的私鑰,通過程式集檔案 包含程式集清單的檔案,構成該程式集的所有檔案的名稱和雜湊 生成的。microsoft visual studio net 和windows s...