Saturday, March 31, 2007
About digital signature
當我們用API把digital signature抓出來之後,怎樣證明這個檔案真的由此issuer所發行?
通常為了保證這個檔案真的是由issuer所發出,會請第三者保證這個issuer無誤。
但是怎麼確定這個第三者是公正的?那就會請到第三者的第三者...然後再請第三者的第三者第三者....
如此循環下去,稱為Certificate chain,最後一定會遇到一個root,就稱為root certificate。
這樣的作法會遇到一個問題,那就是有可能certification被revoke了。
所以再使用API作驗證的時候,通常會作 revokation checking。
API驗證的作法可以參考:
http://msdn2.microsoft.com/en-us/library/aa388208.aspx
另外,Platform SDK也有tool可以作驗證,不想寫驗證程式的話或許可以利用(?!)
http://msdn2.microsoft.com/en-us/library/aa387764.aspx
這個工具也可以拿來sign程式,只不過要先拿到certificate就是了...
另外要確定一個檔案是否安全的方法就是透過Windows Catalog Database
Windows記錄了通過微軟認證的安全file或是driver,並且把它們儲存在catalog database。
所以經由catalog database我們也可以得知一個程式是否可以被trust。
只是我覺得這個 catalog database似乎永遠太小....要hit還滿難的....
要使用catalog database可以參考CryptCAT* API family.
流程就是先算檔案的hash value,然後依照此hash value找尋catalog file。
只要找到catalog file,就可以獲得許多的資訊。
Labels:
Programming
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment