freeBuf
密评 | PDF文件中电子签章手工验签
2024-05-08 22:31:07

最近在学习密码相关知识的时候,对于PDF文件中电子签章怎么进行手工验签的过程做一个记录。题目给出一个PDF文件,通过这个文件做以下解答,有不对的地方请进行指正,附件下载地址放在最后:

问题一、请依据案例文件解析出所有证书,以插入文件形式提交证书。提示:一共6个数字证书。

问题二、请依据案例文件解析以下sha256RSA签名,并手动验证签名通过。D519E5FDAFE3F4CE97391D61DE31C15D3B31D144FF66F4045A54927E55B1119BD8D929A19C1243235C34914EB77A4CE83BC6500B54A9532B7B892D00313D5158A8D4CF27DD91B6328C1205607716914CC1217ED68A5660C7B6EDC48F53711C22A96421DAC84738D147DFE919066ACC84CBC942D7E4AF86D72BC00CC4B07F7FBFD7658B1DF5D84C9A80188D2EC3756FEC264DA9083500907CD7762CA0D1BFB1D66022586B10FFF138137ACCF18177DDC0133BA5C73F7E043D976343D592A8DAFD7F7E3974DFF3502A27DF80C0B72227280467D11BA01F7BA870950D8973FEABAFEAA3071E2ABD85E0A6FEE7FEBAF00929CDFE7EE2079D7F6B5FC6893B282B9AA6

问题三、请依据案例文件解析以下sha256RSA签名,并手动验证签名通过。

99EF7E781B7F55A6CFFC039DA8F2C0CEDD20278E4D3E7FB31F6E523A485168968DED28330E7A934E17A95C95F013BB024CDC35B7151BF20DD88B8B7A02991D1E13D655985034D469D4BF136DB2690A88AF921FDD708788169275F2AD3AD99BC1D5063E2D3ADDE21D66143082FF331D3B521F720212E5C78AFE6B0D5E8E100EF70724DF5DFBB295B8CF1DA7E6A647F0DC1F5523FC89DD2F04601F1E94DEC185FFC619352F2D5399819FA0A72C86B9A895AED48BF632C86856135837931B164A6B321C0F6A50C705B9DAE7C9D4B92D63B0A4179947988C4539F2934B4BAFEC5A19823285C42EB2BDAD2C100516A6830C93B877777A5ECF118CE42BF4C3E9E38A14801084DB6D17892E4608D65EACAA156F20545C5900105F4BBA2F82D09BCC2618DFB0919D0D909D03CD81AEC1CE40312A7BC2AE2AD45A665F28F7FA7FF9BAC593CBCFBBE833FF369F436812EEF77427EA1B0CD7DE74DA29D99BDC7ECE0D05EE059E36D4BC8457F952BE5021164EEEBF1C80106A90DD83D326BC3B907E0691EA26409BBDC7ED7BD89CCD2A2CD3FC074603A713115FEE75C9DFDC74AD4F0C75DF42876778932BAC0C7D86C966CF3B7BB13A825C8B12BE2EC46AE79AB833F73046EBE29EC3FDBF224169162F5EFE20DACFACA7F0FD4C95FB38D585A5AAE53322FBBBD2CF60337DB14EB833B0CD35F01644CF331852895718764003626693CD00FE5A

问题四、请依据案例文件解析以下sha256RSA签名,并手动验证签名通过。27F0D2713C5B5C0CE9692450C751D5389118A208E539D1E8B16DB58A9F9BD8A74C47F0CABB6D2868699D66BE17262B5B191F1A7401E242185ADEB20B7EB4A9CD4D195BCC35AE0FE7AB98BBD0D1B83E45A1AEE46142131D0BBBD6134D8960E05D746C5F68122A36BF6EA540858AAC1AA5A1A2FA4152B06CCB8A8C8616ABC4EB0332AF216ED432E19F98C6C718E0C7AFB6D53ACAE0C37F9DB89ECC4E37EF3F003F9C6C4EF1ABB214FEFD31B639986EB96CE37F8368F455FCA18F5AEC9194E0BAECF7D5D5A5F5F538B076B0196A08FA44F4EB0AD14478F43DD2E60C50F11F87553ABC5ED7FEBED97C75283CA1C7693C9135122F63E6DB81DC6D6628089F8F58296C

问题五、请依据案例文件解析PDF文件数字签名,并手动验证签名通过。

问题六、请依据案例文件解析PDF文件时间戳数字签名,并手动验证签名通过。

问题七、请依据案例文件解析PDF文件时间戳,并验证时间戳原文摘要值的一致性。提示摘要值为:68e6fc6a49e5dca5f0aa4b4a511101215d00e4bfca5a910c346cd71587e29fe3

问题八、请依据案例文件解析PDF文件签名原文,并验证PDF文件原文摘要值的一致性。提示:摘要值为:c046f7eb54839d9c6ce799e4199d763419935ea3dca4a8775b3137ed2efe3408

前置知识:

使用的工具:

010 editor

Ans.1 Editor 下载地址: https://www.sysadmins.lv/blog-en/asn1-editor-wpf-edition.aspx

在线签名验签工具: https://const.net.cn/tool

这里我使用010 editor打开pdf文档,发现内容有一大串以3082开头的hex数据,将数据拷贝出来。

注:对于一些特殊字符需要敏感,一般DER编码格式的数字证书前4位为3082。

3082324906092a864886f70d010702a082323a30823236020101310f300d06096086480165030402010500300b06092a864886f70d010701a0821027308204eb308203d3a00302010202102015044b2bcdbc749cd57c7c5e4f8efe300d06092a864886f70d01010b0500305b310b300906035504061302434e3130302e060355040a0c274368696e612046696e616e6369616c2043657274696669636174696f6e20417574686f72697479311a301806035504030c1143464341204964656e74697479204f4341301e170d3232313230363036313133325a170d3235313231373036343732355a3078310b300906035504061302434e3112301006035504080c09e5b9bfe4b89ce79c813112301006035504070c09e6b7b1e59cb3e5b882312d302b060355040a0c24e99bb6e4bfa1e68a80e69cafefbc88e6b7b1e59cb3efbc89e69c89e99990e585ace58fb83112301006035504030c09e78e8be9ab98e58d8e30820122300d06092a864886f70d01010105000382010f00........

由于数据太长,这里我就省略后面内容,各位师傅自行拷贝,直到0000000>处结束。拿到上述数据值,保存为txt文件,使用Ans.1查看器进行打开。

Ans.1

Ans.1是一种对数据进行表示、编码、传输和解码的数据格式,常见的CA证书、PEM、CER、PFX等均采用Ans.1编码。Ans.1编码由Type+Length+Value三段内容组成,即数据类型+数据长度+数据内容三个字段。

数据类型+标识符

数据类型十六进制标识
INTEGER(整数)02
BITSTRING(由任意的0和1构成的字符串)03
OCTETSTRING(由八比特值构成的字符串,类似于比特数组)04
NULL空值05
OBJECTIDENTIFIER(对象标识符,由一系列的整型序列组成)06
SEQUENCE(一个有序的类型集合) and SEQUENCE OF(一个给定类型的有序集合)10
SET(一个无序的类型集合) and SETOF(一个给定类型的无序集合)11
PrintableString(由任意的可打印字符构成的字符串)13
T61String(由八比特字符构成的字符串)14
IA5String16
UTCTime(GMT时间值)17

通过Ans.1编码格式解析数字证书

1.证书版本号

2.证书序列号

3.签名算法

4.CA机构

5.证书有效期

6.证书主体信息

7.证书公钥

8.扩展字段

问题一解答:

有了上述知识我们就可以回答问题一的内容,寻找6个证书,前面我们获取到Contents的数据,保存为txt文件,用Ans.1 editor编辑器打开。

第一个证书王高华.cer:

寻找3082开头树状结构,其中含有上述我们说到的字段

将其高亮的hex数据拷贝出来,进行base64转换,保存base64值为1.cer后,打开后找到第一个证书。

第二个证书CFCA Identity OCA.cer:

将第一个树状图隐藏后,同上方式一样获取第二证书。

第三个证书CFCA Identity CA.cer

第四个证书CFCA Identity OCA OCSP20230710.cer:

第五个证书Sectigo RSA Time Stamping Signer #4.cer:

第六个证书Sectigo RSA Time Stamping CA.cer:

问题二解答:

给定了一个签名值信息,

本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
文章目录