有谁知道p7s文件的内容吗?
文件中至少有一个数字签名,我可以很容易地找到它,但是我想捕获文件中包含用私钥加密的部分,即数字签名的不可否认部分。
有人知道在哪里可以找到普通文件格式的简单副本吗?
编辑补充:
我正在处理的文件的一般格式是:
字节偏移记录类型
0 x509证书(至少程序这么说)
0版本
1 8x (信息类型)
对下一个信息的偏移量(文件长度- 4)
52 x509证书(嵌入,收集成员:根CA)
56 x509证书(嵌入,收集成员:根CA)
(1偏移) x509证书(新的主题标识符:Email)
(1偏移量+4) x509证书(嵌入式,收藏备忘录:Email )
(不同) x509证书(新的、增强的密钥用法:数字签名、不可否认的)
(varies+4) x509证书(嵌入式,集合成员:数字签名,不可否认的)
(不同) x509证书(新的证书颁发机构信息:CA电子邮件)
(varies+4) x509证书(嵌入式,收集成员:CA电子邮件)
(各种)交叉证书对信息,未知类类型
(可变)未知类类型的证书(如果需要,则用尾随零填充)
我确实知道,这个文件不包含消息摘要,也不是唯一的,除非它是证书持有者的原件(也就是说,不同的证书将产生不同的结果,但是不同的消息都有相同的p7s文件附加在它们上)。
我相信,当文件被发送到不支持电子邮件加密/解密(如gmail或yahoo)的系统时,消息摘要就会被从文件中删除。这将是我对p7s文件缺乏明确内容的解释。
除了消息摘要被从它们中删除的可能性之外,文件没有损坏。他们不会与ASN合作。普通证书文件将与ASN (cer文件)一起打开。
我编写了一个程序,从本质上讲,它是用暴力分析文件的。
我逐字节检查文件字节,并将字节复制到X509Certificate2类实例化的输入中。
无论它是否终止,我移动一个字节并再次检查。
如果检查成功,则将生成的证书添加到集合中。
最后,我将检查集合中的证书,并将带有偏移量的文件转储十六进制和格式化的ascii到报表文件中。
我所指的p7s文件与原始文件分离,显然不包含任何签名信息。当签名被发送到没有加密/解密信息能力的电子邮件地址时,这显然被剥夺了。
发布于 2014-04-11 21:12:14
P7S文件通常包含SignedData类型的编码CMS (加密消息语法)结构,这种结构在RFC5652中定义。您可以使用ASN.1编辑器方便地检查文件的确切结构和内容。
发布于 2014-11-23 03:32:08
我最近需要获取一些文件".rtf.p7s“的内容。通过使用notepad++查看它们的内容,我可以看到,在一定数量的字节之后,RTF没有加密。因此,我制作了这个小脚本,它删除了包含我不需要的密钥信息的第一个字节。
Ps -打开文件的崇高没有帮助。它以二进制方式打开文件。
<?php
$dir = __dir__;
$dh = opendir($dir);
while (false !== ($filename = readdir($dh))) {
if( strpos( $filename, ".p7s" ) !== false ) {
$files[] = $filename;
}
}
foreach($files as $file ){
$content = file_get_contents( $file );
$newcontent = substr( $content, 62 );
$newfilename = substr( $file , 0, -4 );
file_put_contents($newfilename, $newcontent);
}
?>https://stackoverflow.com/questions/23021543
复制相似问题