[Mew-dist 16264] Re: S/MIME patch
Ryutaroh Matsumoto
ryutaroh at example.com
2001年 2月 9日 (金) 00:58:23 JST
松本です。
S/MIMEのRFCを読んでみたんですが、私が作ったS/MIMEのパッチはRFCのMUSTを
ちゃんと実装していないので、今のままではMewの(正式)リリースに取り込む
のはあまり適当でないように思われます。具体的には、S/MIMEの電子署名の中
の公開鍵にはどのメールアドレスに対して公開鍵が発行されたか示す欄があり、
電子署名の検証に於いては公開鍵のアドレスとヘッダーのFrom:のアドレスが
一致するかどうか必ず検証しなければいけない(MUST)とRFCは定めています。
私が作ったパッチではこれが現在できていません。
この問題を修正する一番筋がいいやり方はopensslに電子署名を検証させると
きに引数としてFrom:のアドレスも渡して公開鍵の中のアドレスと一致するか
どうか調べさせるように、opensslを改造する(かopensslに機能追加されるの
を待つ)ことだと思います。openssl 0.96は電子署名の検証で公開鍵のアドレス
とFrom:のアドレスか一致するかどうか確かめさせる事はできません。
またS/MIMEの暗号化をopensslを使って簡単に作れないかどうか検討してみま
したが、以下に示す理由により、まじめにコードを書かないと無理そうです。
From: Kazu Yamamoto (山本和彦) <kazu at example.com>
Subject: [Mew-dist 16261] Re: S/MIME patch
Date: Thu, 8 Feb 2001 19:22:22 +0900
> From: Ryutaroh Matsumoto <ryutaroh at example.com>
> Subject: [Mew-dist 16260] Re: S/MIME patch
>
> > なんかS/MIMEの電子署名みたいに数時間のquick hackでS/MIMEの暗号化を実装
> > する方法ないですかね?ユーザーに一々他の人の公開鍵が入ったファイル名を
> > 入力させるしかないか?
>
> 公開鍵のファイル名をアドレスと同じにすれば、きっと簡単です。
S/MIMEの電子署名をどこかのファイルに保存して、暗号化するときにはその電
子署名をopensslに受信者の公開鍵として渡して暗号化する方法を取るとしま
す。
この方法は電子署名の中に電子署名の送信者(Aとする)の公開鍵だけが含まれ
ている場合は、Aの秘密鍵で解読できる暗号文をopensslは生成します。
しかし電子署名の中にはAの公開鍵の他にその公開鍵を発行した証明機関の公
開鍵も含まれることがあります(これはRFCで許されている)。そういう電子署
名を公開鍵に指定してopensslで暗号化するとAが解読できない暗号文を生成さ
れることがあります。
この問題を修正するための一つの方法は、opensslが暗号文を作る時指定した
ファイルに含まれるすべての公開鍵に対応する秘密鍵のうちどれをつかっても
解読できるような暗号文を生成するように改造することだと思います。
S/MIMEの署名/暗号化のサポートをRFCに準拠する形でopensslを使ってMewで
やろうとすると、opensslに手を入れることは避けられないように見えます。
--
松本 隆太郎
Mew-dist メーリングリストの案内