Unicode Issue Pdf 同时添加数字签名

Unicode Issue Pdf while adding digital signature

我有关于使用来自智能卡的数字签名证书签署 PDF 文件的问题 所有签名都没有 unicode 的外观如下 [![所有签名][1]][1]

当我 select 签名时,它也像下面这样没有 unicode

签署文件后还是一样,

请注意,证书颁发者名称是阿拉伯语,请问如何解决 非常感谢。

问题出在证书中阿拉伯名称的编码方式。


在相关证书中,阿拉伯文字的名称包含在 subjectAltName 扩展名中,并且编码为 TeletexString:

032F   75:         SEQUENCE {
    <06 03>
0331    3:           OBJECT IDENTIFIER subjectAltName (2 5 29 17)
         :             (X.509 extension)
    <04 6E>
0336   6E:           OCTET STRING, encapsulates {
    <30 6C>
0338   6C:             SEQUENCE {
    <A4 4A>
033A   4A:               [4] {
    <30 48>
033C   48:                 SEQUENCE {
    <31 46>
033E   46:                   SET {
    <30 44>
0340   44:                     SEQUENCE {
    <06 03>
0342    3:                       OBJECT IDENTIFIER commonName (2 5 4 3)
         :                         (X.520 DN component)
    <14 3D>
0347   3D:                       TeletexString
         :                   'Ù.Ø­Ù.د اÙ.بدراÙ.Ù. عبداÙ.عزÙ.ز اÙ'
         :                   '.بدراÙ.Ù.'
         :                       }
         :                     }
         :                   }
         :                 }
    <81 1E>
0386   1E:               [1] 'XXX.XXXXXXXXXXXXXXXX@XXXXX.XXX'
         :               }
         :             }
         :           }

(由于 OP 在他的屏幕截图中编辑了电子邮件地址,我在这里也做了同样的事情。)

A TeletexString (= T61String) 输入 ASN.1

denotes an arbtrary string of T.61 characters. T.61 is an eight-bit extension to the ASCII character set. Special "escape" sequences specify the interpretation of subsequent character values as, for example, Japanese; the initial interpretation is Latin. The character set includes non-printing control characters. The T61String type allows only the Latin and Japanese character interepretations, and implementors' agreements for directory names exclude control characters [NIST92]. A T61String value can have any length, including zero. This type is a string type.

(A Layman's Guide to a Subset of ASN.1, BER, and DER)

因此,虽然 T.61 确实 一般允许阿拉伯文字,但它在 ASN.1 TeletexString (= T61String) 类型中的使用 不。

(您可以在 ISO/IEC 8824-1 in combination with the ISO International Register of Coded Character Sets to be used with Escape Sequences 中找到允许字符的确切定义。)

像往常一样,一些应用程序有一个 TeletexString 实现,它完全覆盖指定的扩展,而一些应用程序有覆盖更多的实现,直到整个 T.61 字符集。

Adobe Reader 尤其是前者,至少它没有覆盖你的 subjectAltName 中的阿拉伯文字。另一方面,Microsoft Windows 的证书查看器属于后者,特别是它确实涵盖了您的 subjectAltName.

也就是说,根据 RFC 5280,在这种情况下使用 TeletexString 无论如何都是有问题的:

Implementations may encounter certificates and CRLs with names encoded using TeletexString, BMPString, or UniversalString, but support for these is OPTIONAL.

因此,您实际上可以很高兴您的证书完全被接受,因为 Adob​​e 也可以选择不再支持 TeletexString 并因此拒绝您的证书...


为了让您的 subjectAltName 中的阿拉伯文字得到更普遍的接受(通过符合 RFC 的软件),您应该尝试说服您的证书颁发机构重新颁发证书,但使用 UTF8String对于阿拉伯文字而不是 TeletexString。但是,可能存在一些已损坏的遗留应用程序,这些应用程序会因经过更正的证书而出现故障...