暗号化メールの復号・電子署名検証で気にNo.08956
Iranoan さん 21/12/09 02:38
 
秀まるおさんこんにちは Iranoan です
暗号化メールの復号・電子署名検証で気になる動作があります

1.ダイアログ・ボックスが繰り返し表示される
「暗号化/電子署名」の設定において
・暗号化メールを表示したら、自動的に復号する
・電子署名されたメールを表示したら、自動的に検証する
だけが ON の時、Thunderbird 等で作成された PGP/MIME で暗号化、電子署名両方が
施されたメールを選択すると、次の動作を繰り返します
・パスフレーズ入力ダイアログ・ボックスが表示されるのでパスフレーズを入力して
 [OK]
・新しいウィンドウで復号結果を表示する
一度複合されたら止めるべきでは?
署名ファイルが添付ファイルのように別ファイルの形式になっていると起きるようです

2.PGP/MIME, S/MIME の両方において、暗号化、電子署名両方が施されたメールを選
択すると復号はされるのですが、電子署名の検証結果が表示されません
ヘルプに
> 復号に成功した場合でも詳細情報を必ず表示する
> <snip>
> 一方、電子署名されていた場合にその署名を確認したい場合にはここをONにしてお
>かないといけません。
とあるので、仕様だと思うのですが、
・電子署名されたメールを表示したら、自動的に検証する
を ON にしていれば表示したほうが自然な気がします

3.Gpg4win 3.1.16 を使用しているのですが、検証結果が文字化けします

[ ]
RE:08956 暗号化メールの復号・電子署名検No.08960
秀まるお2 さん 21/12/09 11:27
 
 テストして状況理解できたと思いますが、果たしてどう解決したらいいのか、ちょ
っと難しいです。

 元々僕が考えていたのは、例えば暗号化されたメールの場合であれば、復号する時
のパスフレーズの入力の時の、

    □復号に成功したら暗号化メールはゴミ箱に移動する

 をONにして、復号元のメールは削除してしまう前提にしてたのかなぁと思います。
なぜかというと、ヘルプの中の「暗号化メールを表示したら、自動的に復号する」に
ついての説明に、

      ここのオプションをONにしておくと、一度復号したメールであっても、
      暗号化された方のメールを選択すれば何度でもパスフレーズのダイアロ
      グボックスが出てしまいます。そうならないようにするためには、復号
      する時に、「復号に成功したら暗号化メールはゴミ箱に移動する」オプ
      ションを使ってください

 と書いてあるからです。なので、復号に成功したら元メールは削除する前提で使っ
てほしいと思ってたようです。

 今回のケースは暗号化だけじゃなくて「暗号化+電子署名」なので、復号元のメー
ルもちゃんと取っておきたいということになるのやら?。そうすると、現状いい解決
策が無いです。

 例えば復号に成功したら、復号元メールにも「X-Memo: decrypted」か「X-TuruKam
e-Decrypt: decrypted」を付加して、それが付いてたらもう自動では復号しないよう
にするって手もあります。そういう作戦とかどうでしょうか。

 何かいい案があったら教えて欲しいです。

> 3.Gpg4win 3.1.16 を使用しているのですが、検証結果が文字化けします

 これも今確認できました。結果文字列がutf-8になってるようです。最近のWindows
10のせいかGnuPGのせいか分かりませんが、utf-8かどうか自動判定して化けないよう
に修正させていただきます。

[ ]
RE:08960 暗号化メールの復号・電子署名検No.08962
Iranoan さん 21/12/09 15:02
 
秀まるおさん今日は Iranoan です
>     □復号に成功したら暗号化メールはゴミ箱に移動する
<snip>
>       ここのオプションをONにしておくと、一度復号したメールであっても、
>       暗号化された方のメールを選択すれば何度でもパスフレーズのダイアロ
>       グボックスが出てしまいます。そうならないようにするためには、復号
>       する時に、「復号に成功したら暗号化メールはゴミ箱に移動する」オプ
>       ションを使ってください
こちらは読み落としていました
すいません

>  今回のケースは暗号化だけじゃなくて「暗号化+電子署名」なので、復号元の
>メールもちゃんと取っておきたいということになるのやら?
それも有りますが、暗号化は人に知られたくないために行うわけですから、暗号化し
たまま保存しておきたい人もいるのではないか? と思った次第です

>  例えば復号に成功したら、復号元メールにも「X-Memo: decrypted」か「X-TuruK
>ame-Decrypt: decrypted」を付加して、それが付いてたらもう自動では復号しない
>ようにするって手もあります。そういう作戦とかどうでしょうか。
これだと2回目からはいつも復号・検証を手動で行う必要があり不便でしょうね
>  何かいい案があったら教えて欲しいです。
単純に複合結果の新しいウィンドウを開いた時に、その場限りのウィンドウのみに有
効なフラグを立てておき、このフラグが立っているウィンドウでは再度の復号・検証
しないようには出来ないでしょうか?

> > 3.Gpg4win 3.1.16 を使用しているのですが、検証結果が文字化けします
>
>  これも今確認できました。結果文字列がutf-8になってるようです。最近のWindo
>ws10のせいかGnuPGのせいか分かりませんが、utf-8かどうか自動判定して化けない
>ように修正させていただきます。
よろしくお願いします

あと
> 2.PGP/MIME, S/MIME の両方において、暗号化、電子署名両方が施されたメールを
>選択すると復号はされるのですが、電子署名の検証結果が表示されません
件はどうでしょう? 1.の動作が決まらないと話が進まないでしょうか?


ぶっちゃけると、Python でメール送信ルーチンを書いていてたまたま見つけたこと
なので、多くの人が使いやすい動作になるなら、個人的にはどのような仕様になって
も構いません

[ ]
RE:08962 暗号化メールの復号・電子署名検No.08964
秀まるお2 さん 21/12/09 16:17
 
 とりあえず、gpgから返ってくる文字列がutf-8かと思いきや、

gpg: 2021/12/09 11:03:21 東京(標準時) に施された署名

 みたいな行があって、その中の「東京(標準時)」の部分だけShift-JISになってる
ようで、それで自動変換できなくなりました。困りました。それで無理矢理ですが、
utf-8に変換する処理で、変換に失敗した文字かあれば、それはそのまま通すってい
う特殊な処理を入れてみたら、一応化けずに出てくるようでした。

 とりあえず「東京(標準時)」は大丈夫みたいです。

 そういう対応だけさせていただきます。

 gpg.exeを起動するコンソールのコードページを437とかに変更できれば英語で応答
が返ってくるようですが、やり方分かりませんでした。コマンドプロンプトだと「ch
cp 437」で切り替わりますけども。

> それも有りますが、暗号化は人に知られたくないために行うわけですから、暗号化
>したまま保存しておきたい人もいるのではないか? と思った次第です

 暗号化したまま保存しておきたい人は、復号の時に「一時的に表示する」を選択す
るかと思います。その場合はメールを選択する度にパスフレーズの問い合わせが出て
しまいます。

 それはそれでユーザーさんがそういう選択をしたことになるので、それがいやなら
「現在フォルダに保存&復号に成功したメールはゴミ箱に移動」としてもらえばいい
んじゃないかという気がします。

 一応、選択肢はあるんですが、どっちもいやって言われると、じゃぁどういう案が
あるのやら?。という話なります。

> 単純に複合結果の新しいウィンドウを開いた時に、その場限りのウィンドウのみに
>有効なフラグを立てておき、このフラグが立っているウィンドウでは再度の復号・
>検証しないようには出来ないでしょうか?

 すみませんが意味よく分からずです。

 僕の書いた、「decrypted」のメモをセットするとかと同じじゃないかという気が
しますが、そうじゃないのやら?

> > 2.PGP/MIME, S/MIME の両方において、暗号化、電子署名両方が施されたメール
>を選択すると復号はされるのですが、電子署名の検証結果が表示されません
> 件はどうでしょう? 1.の動作が決まらないと話が進まないでしょうか?

 実はテストしたことは無いですが、復号に成功はするけども署名の検証でミスがあ
るってケースについてはgpg.exeの終了コードがエラーになるはずなので、それでち
ゃんと、結果を表示できるんじゃなかいと思います。

 復号に失敗した場合と電子署名の検証でエラーのケースでは、ちゃんとエラーを表
示できてると思います。

 または、これまたユーザー様の選択して、「復号に成功した場合でも詳細情報を必
ず表示する」をONにしてもらえれば(というかそこは標準でONなおであえてOFFにし
なければ)結果が必ず表示されます。それで普通の人は大丈夫じゃないかと思います。

> ぶっちゃけると、Python でメール送信ルーチンを書いていてたまたま見つけたこ
>となので、多くの人が使いやすい動作になるなら、個人的にはどのような仕様にな
>っても構いません

 ってことでしたら、とりあえずそのままにしたいと思います。

 文字化けするバグ修正だけはなんとか対応できたと思います。

[ ]
RE:08964 暗号化メールの復号・電子署名検No.08968
Iranoan さん 21/12/09 18:43
 
秀まるおさん今日は Iranoan です
> > ぶっちゃけると、Python でメール送信ルーチンを書いていてたまたま見つけた
>ことなので、多くの人が使いやすい動作になるなら、個人的にはどのような仕様に
>なっても構いません
>
>  ってことでしたら、とりあえずそのままにしたいと思います。
>
>  文字化けするバグ修正だけはなんとか対応できたと思います。
わかりました
バグ・フィックスありがとうございました

[ ]