Windows PPKG预配文件签名与加密格式/规范技术咨询
PPKG签名与加密实现细则
签名相关规范
- 核心算法:使用RSA PKCS#7 v1.5 签名标准,哈希摘要算法默认采用SHA256,低版本Windows配置设计器(WCD)兼容SHA1作为备选
- 数据处理范围:签名计算覆盖PPKG文件从头部到签名块起始位置的全部字节,最终生成的PKCS#7格式签名块直接追加在原未签名PPKG文件的末尾
- 证书要求:签名所用X.509证书必须配置代码签名增强型密钥用法(EKU,对应OID:1.3.6.1.5.5.7.3.3),签名块需内嵌完整证书链供系统验签时校验信任关系
加密相关规范
- 核心算法:采用AES-256-CBC 对称算法加密PPKG有效载荷,AES会话密钥通过RSA-OAEP填充方式,使用加密目标证书的公钥加密后存储
- 数据结构:加密后的PPKG按顺序分为三个部分:固定文件头 → 元数据块(存储加密后的AES密钥、CBC模式IV向量、加密证书指纹) → AES加密后的载荷段
- 证书要求:加密所用X.509证书需配置密钥加密或数据加密增强型密钥用法
C#实现提示
- 签名功能可直接使用.NET内置的
System.Security.Cryptography.Pkcs.SignedCms类完成PKCS#7签名的生成与封装 - 加密功能可通过
System.Security.Cryptography.Aes类实现载荷加密,配合System.Security.Cryptography.RSA类的EncryptOaep()方法完成会话密钥的非对称加密
内容的提问来源于stack exchange,提问作者C Robinson
相关产品推荐
相关产品推荐

