首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >p7s文件的内容

p7s文件的内容
EN

Stack Overflow用户
提问于 2014-04-11 19:59:11
回答 2查看 11.7K关注 0票数 3

有谁知道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文件与原始文件分离,显然不包含任何签名信息。当签名被发送到没有加密/解密信息能力的电子邮件地址时,这显然被剥夺了。

EN

回答 2

Stack Overflow用户

发布于 2014-04-11 21:12:14

P7S文件通常包含SignedData类型的编码CMS (加密消息语法)结构,这种结构在RFC5652中定义。您可以使用ASN.1编辑器方便地检查文件的确切结构和内容。

票数 4
EN

Stack Overflow用户

发布于 2014-11-23 03:32:08

我最近需要获取一些文件".rtf.p7s“的内容。通过使用notepad++查看它们的内容,我可以看到,在一定数量的字节之后,RTF没有加密。因此,我制作了这个小脚本,它删除了包含我不需要的密钥信息的第一个字节。

Ps -打开文件的崇高没有帮助。它以二进制方式打开文件。

代码语言:javascript
复制
    <?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);
    }
    ?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23021543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档