PE檔案數字簽名格式

2021-04-17 16:48:24 字數 1680 閱讀 4888

windows

平台pe檔案

數字簽名格式

版本 1.0 — 2023年3月31日

摘要

authenticode®是一種數字簽名格式,它是用來驗證二進位制軟體的**和完整性。authenticode是基於公開密匙加密標準(pkcs) #7 來簽名資料,並使用x.509證書來繫結經過數字簽發的二進位制程式與其軟體發布者的身份的聯絡。這份文件包含authenticode簽名的結構和技術細節。

這份文件不討論如何簽發/處理x.509證書,如何使用windows sdk工具來簽署二進位制程式,如何部署**簽名基礎設施,或者相關的windows® api函式。這方面的相關資訊可以檢視在本文件最後的「資源」章節。

本資料應用於下列作業系統:

windows server

® 2008

windows vista®

windows server 2003

windows® xp

windows 2000

這裡引用和討論的相關資源列於這份文件的結尾。

概覽overview

在pe檔案中的可信**數字簽名是pkcs #7簽名塊結構。該簽名可以保證:

·這份軟體源於某個確定的軟體發布者。

·這份軟體自從簽署以來沒有經過修改。

乙份pkcs #7簽名塊結構包含該pe檔案的雜湊值、通過軟體發布者私匙建立的簽名以及將軟體發布者的簽名密匙繫結到乙個合法實體的x.509 v3證書。乙份pkcs #7簽名塊可以包含以下可選資訊:

·關於軟體發布者的描述

·軟體發布者的鏈結

·可信**簽名的時間戳

簽名時間戳由時間戳權威機構(tsa)生成,並且保證軟體發布者所做的簽名在這個時間戳之前已經存在。這個時間戳可以延長了這個簽名的生命期,即便相關的簽名證書已經過期或者後來被廢除。

可信**簽名可以被嵌入到windows的pe檔案中,位於pe檔案的optional header data directories結構中certificate table所指向的位置。當可信**簽名被用於簽署乙個windows pe檔案時,計算檔案數字簽名雜湊值的演算法略過pe檔案結構中的特定字段。當把數字簽名嵌入檔案時,簽名過程可以修改這些字段,而不致於影響檔案的雜湊值。

圖1顯示了一幅簡單的pe檔案全域性圖,它描述了數字簽名是如何包含在pe檔案中的。它包含了嵌入的可信**數字簽名和指出那些被略過計算pe檔案雜湊值的pe結構字段。

關於pe檔案結構的細節,請參閱「microsoft portable executable and common object file format specification」(pe/coff specification)。

關於可信**數字簽名中pkcs #7部分的細節,請參閱本文件後面的abstract syntax notation version 1 (asn.1) 結構定義。

關於可信**數字簽名如何計算pe檔案雜湊值的細節,參閱本文件後面的「calculating the pe image hash」。

PE 數字簽名

英文文章,介紹了證書與簽名的關係。是翻譯後的文章。pe 數字簽名是被der編碼方式編碼的二進位制資料,資料的構成有 pkcs 7 v1.5 定義,具體請參考 pkcs 7cryptographic message syntax standard.pkcs 7 資料中包含了簽發簽名的證書以及其上級證書...

jar檔案數字簽名

給jar檔案數字簽名 1 用keytool生成金鑰 keytool genkey keystore key.keystore alias key validity 365 將在當前目錄下生成乙個key.keystore檔案,alias後接的是別名,validity後面接的是該證書有效天數,這裡365...

VC實現Word Excel檔案數字簽名

author zfive5 zhaozidong email zfive5 yahoo.com.cn 前些天工作很忙和累,加上bug,無心也不允許我上論壇,前些看到乙個給我發的短訊息,說是要實現金鑰寫到word裡,同時不能破壞word!早些時候就知道word是結構化文件,所以我的思路就是用結構化文件...