2017-09-28 20 views
1

私はRFC 3161タイムスタンプサーバーをテストしています.Foxit Reader、Xolido Sign Desktop、Adobe Acrobat Pro DCを使用してPDFのタイムスタンプを作成しています。私はFoxit ReaderとXolidoでタイムスタンプをOKにすることができますが、Adobe Acrobatは "Error durante la firma。El nombre TSA no coincide"を返します。これは "Signature error、TSA name is not"のようなものです。私は検索し、アドビの設定でTSAのサーバー名はあなたが欲しい、私は証明書の件名、ちょうど一般的な名前などをテストしているサーバーはタイムスタンプ応答でTSA名として証明書の件名を返しますが、 OK。私はAdobeがそれを言う理由を知りませんし、FoxitとXolidoは大丈夫です。Adob​​e Acrobatのタイムスタンプエラー

I added a FoxitReader Screen after validate the timestamp.

のFoxit Readerのダイアログが言う「有効な署名を。TimestampTestによって署名された。それが署名後に文書が変更されなかった。署名が文書のタイムスタンプで、セキュア時間から等」

PDF timestamp example with Foxit Reader

+0

TSA署名者証明書または接続保護証明書に問題があると想定します。分析するサンプルを共有してください。 – mkl

+0

まあ、私はあなたが望むサンプルの種類がわかりません。私はKeyStoreExplorerとPFX Certificate Generatorで多くの証明書を生成しています。私はいくつかのTSA証明書をダウンロードし、鉱山と比較し、いくつかのフィールドを更新しましたが、すべてが同じです。私はExtendedKeyUsage = "Timestamping"(クリティカル)、KeyUsage = "デジタル署名、否認防止"(クリティカル)、基本制約= "サブジェクトはCAではない、パス長制約:なし"、オーソリティキーIDとサブジェクトキーID – RobertGG

+0

私は他のTSA証明書(例えばhttp://timestamp.wosign.com)と同じように{CN、O、C}を持っています。たぶん私のサーバーに問題があり、証明書ではありませんが、なぜfoxitリーダーがうまくいくのか分かりません。 – RobertGG

答えて

1

まあ、私は最終的に問題を解決しました。私はOpenSSLを使って同じ "tsa name mismatch"エラーを発見し、それを見たOpenSSLソースコードを読むと、タイムスタンプトークンのTSA名と証明書サブジェクトのローカル比較でした。私のサーバーはBouncyCastleを使用していて、TSA名がGeneralNameオブジェクトであるため、「標準のもの」のためにX500の件名からTSANameを作成するとSubjectのRDNが取り消されます(たとえば、C = Foo、O = SomeOrgなど) X500Nameオブジェクトではありません。

件名を逆にして、トークンTSA名を作成すると、OpensslとAdobeの両方がOKを確認します。私が今持っているサーバーで

tsTokenGen.setTSA(new GeneralName(reverseX500Name(new X500Name(tsuName)))); 

public static X500Name reverseX500Name(final X500Name name) { 
    RDN[] orig = name.getRDNs(); 
    int n = orig.length; 
    RDN[] _new = new RDN[n]; 
    for (int i = 0; i < n; i++) { 
     _new[i] = orig[n - 1 - i]; 
    } 
    return new X500Name(_new); 
} 

のOpenSSL同等の誤差がINT_TS_RESP_VERIFY_TOKENであり、それはts_rsp_verify.cライン459(OpenSSLのバージョンにライン相対)でデ・エラーを投げることができます。

関連する問題