自分の S/MIME 署名が検証できないNo.04133
中尉 さん 18/10/25 14:49
 
「秀丸メール」6.87β13 の利用者です。いつもありがたく使わせていただいており
ます。

COMODO から発行された e-mail 用の電子証明書を用いて、S/MIME 形式で e-mail を
送信する際、CC や BCC に自分自身の (送信元の) e-mail address を指定すること
がよくあります。そうやって自分自身にも届いた e-mail を確認しようとすると、必
ず以下の表示が出ます。

--------
△ 検証に失敗しました。詳しくはエラーコードをgoogle検索するなどしてください。
エラーコード = C000A000
--------

「もしかして私の電子証明書が失効しているのか?」と思い失効確認をすsると、以
下の通り表示されます。

--------
  失効リストをダウンロード中...http://crl.comodoca.com/COMODORSAClientAuthen
ticationandSecureEmailCA.crl
  CRLのサイズが256キロバイトの制限をオーバーしました。
COMODO RSA Client Authentication and Secure Email CA
  有効な失効リストをWindowsの証明書ストアから取得しました。
  ○ 証明書は失効していません。CertVerifyCRLRevocation succeeded.
--------

この表示の中の「CRLのサイズが256キロバイトの制限をオーバーしました」に引っか
かって失効確認に失敗しているのかと思い、自分で所有する別の e-mail address 宛
に電子証明書つきの e-mail を送信して秀丸メールで確認すると、電子証明書自体は
有効なように見えます。

検討していただきたい点は以下の2点です。

・送信者と受信者が同一である場合は、電子証明書の検証を省略することはできませ
んでしょうか。
・もし何らかの問題によるものでしたら、修正を検討していただけると幸いです。

[ ]
RE:04133 自分の S/MIME 署名が検証できなNo.04134
秀まるお2 さん 18/10/25 18:22
 
 お手数かけてすみません。

 Comodoの証明書ですが、実は今年の9月頃に僕もテストをする必要があって、そこの

    Comodo FREE Personal Email Certificate

 ってのを取得した所でした。で、僕の所で、自分から自分に電子署名付きメールを
送って、それを検証するテストをしてみたんですが、僕の所ではエラーは出ないよう
でした。

○ このメールは改ざんされていません。
署名者: xxxxx@mitene.or.jp
署名者メールアドレス: xxxxx@mitene.or.jp
発行者: COMODO RSA Client Authentication and Secure Email CA
メールアドレスの別名: xxxxx@mitene.or.jp


○ 証明書のメールアドレスとメールの送り主は一致しています。
○ 証明書は有効期限内です。
○ 証明書パスに問題はありません。
証明書パス:
  COMODO SECURE?
    COMODO RSA Client Authentication and Secure Email CA
      xxxxx@mitene.or.jp

 みたいになりました。

 こちらはWindows10でテストしたんですが、もしかして他のWindowsだとダメな可能
性があるかもしれないです。というのは、最近、SSLなどの暗号化/電子署名関係で、
いわゆるハッシュアルゴリズムというのに、古いsha-1の方式がダメになって、sha25
6以上の新しい方式でないとダメになりました。もしもWindowsが古いと、Windows側
の暗号化ライブラリがsha256に対応してなくて、うまく解釈できない可能性がありま
す。

 WindowsXPだとたぶんもうダメかという気がしますけど、WindowsXPだったりしない
でしょうか。

 まず思ったのがその点と・・・

 もしWindowsが7とか10とかでしたら関係無いんだろうと思います。その場合は、果
たしてどうしたらいいか、改めて考えてみます。

> ・送信者と受信者が同一である場合は、電子証明書の検証を省略することはできま
>せんでしょうか。

 「全般的な設定 - 上級者向け - 暗号化/電子署名」の中にある

 □ 電子署名されたメールを表示したら自動的に検証する

 のオプションON時の動作のことかと思いますが、とりあえず、検証に失敗する問題
が解決できない場合は、ご希望の通りにすることで回避できるという気はします。

 回避策が無ければ考えてみます。

> ・もし何らかの問題によるものでしたら、修正を検討していただけると幸いです。

 「CRLのサイズが256キロバイトの制限をオーバーしました。」のエラーが出るのは、
とりあえず修正させていただきます。

 どうもCOMODOから届く失効リストのサイズが1.2メガバイトくらいあるようなので、
制限を大きくしつつ、動的にメモリを確保するような、ちゃんとした仕組みに直そう
と思います。(現状、手抜きで固定サイズのメモリを取ってロードしてる)


[ ]
RE:04133 自分の S/MIME 署名が検証できなNo.04135
秀まるお2 さん 18/10/25 18:24
 
 あと、コメント忘れましたが、通常の電子署名検証の場合は失効リストは見てない
はずだと思います。

 ただ、もしかして失効リストがうまくダウンロードできてないせいでダメかもしれ
ないので、失効リストのサイズ上限を直して、早めにβ版をアップロードしてみます。

[ ]
RE:04134 自分の S/MIME 署名が検証できなNo.04136
中尉 さん 18/10/25 21:33
 
検討ありがとうございます。

> WindowsXPだとたぶんもうダメかという気がしますけど、WindowsXPだったりしな
>いでしょうか。

情報が不充分ですみません。当方、Windows 10 Home (64-bit) です。

> 「全般的な設定 - 上級者向け - 暗号化/電子署名」の中にある
>
> □ 電子署名されたメールを表示したら自動的に検証する
>
> のオプションON時の動作のことかと思いますが、とりあえず、検証に失敗する問
>題が解決できない場合は、ご希望の通りにすることで回避できるという気はします。

はい、これが on の場合の動作です。

以上、余力がありましたらよろしくお願いします。

[ ]
RE:04136 自分の S/MIME 署名が検証できなNo.04137
秀まるお2 さん 18/10/26 09:54
 
 改めてテストしてみて、とりあえず0xC000A000のエラーが出るメールの例を作るこ
とには成功しました。

 自分から自分に送ったメールの受信ログを開いて、メール本文を適当に改変して上
書き保存し、それから検証すると、必ずこのエラーが出るようでした。つまりこのエ
ラーはメールが改変されてる時のエラーってことになるような気がします。

 何か、自分から自分宛にメールを送った時にメール本文が改変されてしまってるん
じゃないでしょうか。だとしたら、エラーが出るのが正しい動作ってことになります。

 テスト方法が1つあります。

 1.ご自身からご自身宛に電子署名付きメールを送る。
 2.送信済みフォルダにある電子署名付きメールを選択して、「編集 - 暗号の
   復号/電子署名の検証」を実行してエラーが出るかどうかテストする。

 3.もし送信済みフォルダのメールでエラーが出ないなら、そのメールの本文と
   届いたメール(エラーになるメール)のメール本文と比べてみて、何か
   違う所が無いか探してみる。

 ってことで原因が特定できるんじゃないかと思います。

 比較しても違いが無いようでしたら、送信済みメールのログ(送信ログ)と受信系
メールの受信ログを比較する手もあります。「検索 - 関連するメール - このメール
のログ」としてから「そのまま開く」とすると出てくるので、それのメール本文をコ
ピペして秀丸エディタで「ウィンドウ - 他の秀丸エディタと内容比較...」とすると
かって作戦があります。

 たとえばアンチウイルスソフトが「このメールはスキャンされてます」みたいな余
計な文面を付けるようなら、アンチウイルスソフトの設定でそういう文面を付けない
ように設定すればいいと思います。

----------------------------------------------
■秀丸メール側の対策:

 とりあえず、C000A000のエラーについてはたしかにメールの改変ってことになるは
ずなので、それについては「メールが改変されてる可能性がある」のようなメッセー
ジを表示しようと思います。

 差出人が自分のメールに限って自動での検証を省略するのはちょっと危険というか、
差出人が自分なら無条件に信用していいってことは無いような気がします。(差出人
を偽装されてる可能性があるので)

 しいて対応するとしたら、たとえばフォルダ毎の設定の「その他」ページの中に

  □ 電子署名されたメールの自動的な検証をしない

 みたいなオプションを用意して、そのフォルダのメールに限っては自動検証しない
ようにするとかってことが考えられますけど、そんなのでどうでしょうか。たぶんBc
c:ヘッダで届くようにしてるなら振り分けておられると思うので、そういう形の方が
汎用性があるような気がします。

[ ]
RE:04137 自分の S/MIME 署名が検証できなNo.04138
秀まるお2 さん 18/10/26 15:06
 
 っと書いた所でなんですが、もしかしたら失効リストのダウンロードに失敗してる
ことが関係してエラーが出てるかもしれないので、そこを直したバージョンをV6.87
β14としてアップロードしました。

 ついでに、先ほどのコメントにある、フォルダ毎設定で自動検証を抑止するオプシ
ョンも追加してしまいました。

 とりあえずこれで失効リストを正しくダウンロードしなおしてからテストしていた
だいた方がいいです。

 よろしくお願いします。

32bit版:
http://hide.maruo.co.jp/software/bin3/hmmail687b14_signed.exe

64bit版:
http://hide.maruo.co.jp/software/bin3/hmmail687b14_x64_signed.exe

[ ]
RE:04137 自分の S/MIME 署名が検証できなNo.04148
中尉 さん 18/10/27 00:45
 
恥ずかしながら…原因が分かりました。

> 3.もし送信済みフォルダのメールでエラーが出ないなら、そのメールの本文と
>   届いたメール(エラーになるメール)のメール本文と比べてみて、何か
>   違う所が無いか探してみる。
>
> ってことで原因が特定できるんじゃないかと思います。

モロに違いがありました。私以外の関係者も e-mail を読んで回答できるように Goo
gle Groups で ML を用意し、全てのやりとりはその ML を通すようにしていたので、
自分が送信した e-mail を秀丸メールで受信した際には既に ML を通り抜けて末尾に
「このメールは Google グループの…」という説明文が付与された後でした。

これは完全に Google Groups の運用方法の問題です。職場でも委員会形式のものは
こういった形でガンガン ML を作成して外部からの連絡先として利用していたので、
末尾に説明文が付いたら署名が役立たないことは当然ですね。というか、この運用で
すと、自分の電子署名に限らず誰の電子署名であっても必ず検証に失敗してしまいま
すね。

一応、Google Groups の説明文は RFC3676 に定義される「-- 」(sig dashes) から
始まるので、秀丸メールで「本文全体の検証に失敗した」→「最後の『-- 』以降の
行がなかったものとして再度検証する」という処理をしていただけると、当方の問題
は解決しそうですが…私以外にどれだけ需要があるか分からないのと、こういった2
段階処理は bug の温床になりやすいこととで、要望することが申し訳ない気もします。

いずれにせよ、色々と試していただき、ありがとうございました。また、6.87β14
によって 2MB 以上の失効情報を無事に取得できました。

[ ]
RE:04148 自分の S/MIME 署名が検証できなNo.04150
秀まるお2 さん 18/10/29 10:16
 
 メール本文が少しちがってるせいということで・・。ただ、エラーメッセージがお
かしいのでそれはどっちみちバグでした。

 というか、本文が書き換えられてる時は別のエラーコードが返ってきてたはずなん
ですが、最近のWindowsでエラーコードが変わってしまったんだと思います。その辺
修正できて良かったです。

> 一応、Google Groups の説明文は RFC3676 に定義される「-- 」(sig dashes) か
>ら始まるので、秀丸メールで「本文全体の検証に失敗した」→「最後の『-- 』以降
>の行がなかったものとして再度検証する」という処理をしていただけると、当方の
>問題は解決しそうですが

 一応、メールが改変されてるはずなのに検証してエラーが出ないとなると、それは
それで、いわゆる脆弱性の問題になってしまうので、それはあえてやらない方が正解
のように思います。

 とりあえず、フォルダ毎設定で自動検証しないようには設定可能にしたので、例え
ばgoogle groups経由で届くメールを特定フォルダに振り分けるようにしておけば、
余計なエラーメッセージは見ないで済むようになると思います。というか、そもそも
的に他のユーザーさんの所でもエラーが出てたはずなので(秀丸メール以外でもエ
ラーになってるはずなので)、google groupsに投稿する時はあえて電子署名しない
方がいいような気がします。

[ ]
RE:04150 自分の S/MIME 署名が検証できなNo.04154
中尉 さん 18/10/29 20:38
 
>> 一応、Google Groups の説明文は RFC3676 に定義される「-- 」(sig dashes) か
>ら始まるので、秀丸メールで「本文全体の検証に失敗した」→「最後の『-- 』以降
>の行がなかったものとして再度検証する」という処理をしていただけると、当方の
>問題は解決しそうですが
>
> 一応、メールが改変されてるはずなのに検証してエラーが出ないとなると、それ
>はそれで、いわゆる脆弱性の問題になってしまうので、それはあえてやらない方が
>正解のように思います。

そうなんですよね…。Google Groups の仕様上、あきらめるしかなさそうです。

細かい設定項目の追加、ありがとうございました。

[ ]