Microsoft.Net中的數(shù)字簽名技術

對于 Internet 應用程序的開發(fā)人員和用戶而言,惡意的代碼、被篡改的代碼和來自未知站點或作者的代碼對代碼的安全都會造成不小的威脅。對此我們可以使用數(shù)字簽名的方法來保證安全。

數(shù)字簽名是用于識別和提供關于代碼發(fā)行者的詳細資料的工業(yè)標準,對 Internet 稱為“收縮包裝”。使用私匙/公匙技術驗證和簽名代碼。在代碼運行之前,驗證其數(shù)字簽名,確保該代碼的來源是已知的并且經(jīng)過驗證,并且自簽名后該代碼未被更改過。給文件簽名首先要獲得軟件發(fā)行證書。為此,必須向證書頒發(fā)機構提出請求。步驟如下:

1、 獲得軟件發(fā)行證書

第一步:開始菜單->運行,輸入cmd.exe。打開windows 2000的命令提示符環(huán)境窗口。

第二步:輸入CD C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin,進入該目錄,用dir命令你可以看到signcode.exe、makecert.exe和cert2spc.exe程序。注意:以上路徑根據(jù)你機器Microsoft.Net的安裝路徑不同而異。

第三步:創(chuàng)建用于數(shù)字簽名的公鑰和私鑰對,并將其存儲在證書文件中。輸入makecert -sk WHX -n "CN=WHX COMPANY" c:\testWHX.cer。就會在你的C:生成testWHX.cer文件。

說明:參數(shù)-n指定主題的證書名稱。此名稱必須符合 X.500 標準。最簡單的方法是在雙引號中指定此名稱,并加上前綴 CN=;例如,"CN=myName"。注意這里的CN必須大寫。-sk指定主題的密鑰容器位置,該位置包含私鑰。如果密鑰容器不存在,系統(tǒng)將創(chuàng)建一個。輸入makecert -?可以查看其他參數(shù)的用法。

第四步:創(chuàng)建發(fā)行者證書 (SPC)。注意,發(fā)行者證書測試工具通過一個或多個 X.509 證書創(chuàng)建發(fā)行者證書 (SPC)。Cert2spc.exe 僅用于測試目的。可以從證書頒發(fā)機構(如 VeriSign 或 Thawte)獲得有效的 SPC。輸入命令:cert2spc c:\testWHX.cer c:\testWHX.spc,在C:盤生成證書文件。至此,你已經(jīng)擁有了僅用于測試的軟件證書。其實,我們開發(fā)的程序或ActiveX控件只要僅用于企業(yè)內(nèi)部,完全可以用這種辦法作數(shù)字簽名,使你的控件可以在瀏覽器里自動下載,而不必去專門的證書辦法機構獲得證書。

Microsoft.Net中的數(shù)字簽名技術

2、 創(chuàng)建CAB文件

CAB文件是一種WINDOWS的標準壓縮格式文件,在網(wǎng)頁上發(fā)布ActiveX的時候經(jīng)常使用該壓縮格式對文件進行包裝,目的是使文件便于在Internet上傳輸。創(chuàng)建CAB文件的方法有很多,可以在Microsoft visual studio .Net 2003中“創(chuàng)建CAB項目“,也可以用WINDOWS自帶的iexpress.exe(c:\windows\system32目錄下),甚至還有其他的壓縮工具。

3、 簽署文件

在上面打開的dos窗口里,輸入如下命令:signcode /spc c:\testWHX.spc /k WHX c:\whx.cab

至此,已經(jīng)對成功對whx.cab文件簽名??梢圆榭次募膶傩?,查看數(shù)字簽名。