唐突ですが、私はS/MIME暗号メールが大好きだ。PGPが大嫌いなのに対してS/MIMEが大好きだ。何故ならばデジタル証明書が大好きだからだ。さらにはデータフォーマットがCMSやPKCS#7でありこれも大好物だからだ。S/MIMEは多くのメーラーで標準サポートされており奇妙なプラグインやソフトウェアを入れなくても、証明書さえあればすぐに使えるところが素晴らしい。こんな私に対して、最近首をつっこんでしまったインシデントレスポンスの世界ではPGPを強要される。標準でサポートするメーラーなど一つも無いのにもかかわらずだ。酷すぎる。 私にとある紳士がgmail.comアドレス用にパブリックなS/MIME用証明書を発行してくださった。(ありがたや、ありがたや) 本当は、Androidで良いS/MIME対応のメーラーを調べるために発行してもらったのだけど、幾つかみてみたものの結局ロクなメーラーは無かった。
最近、S/MIMEネタから遠ざかっていたが、今日からゴールデンウィークでもあり暇だし(本当はクソでかい宿題があるのだが全くやる気がおきず)、幾つか設定してみたS/MIMEメーラーについて紹介がてら徒然なるままに書いてみたいと思う。
注意:以下に書いたことは私の無知から間違っていることもあるかもしれないので、その時はいろんな方法で教えてください m(_ _)m
iOS 8.3 標準メーラー
前にも紹介しているがiOSの標準のメーラーはS/MIMEに対応しており、かなりしっかり作ってあり、AppleはPKIやSSLやS/MIMEに前向きで「良い会社だなぁ」と思う。
iOSで、S/MIMEを使えるようにするには、まずPKCS#12形式のS/MIME用証明書(と鍵)、必要な中間証明書などを、まずメールでiOSのデバイスに添付ファイルで送ってやる。添付ファイルを開くと、プロファイル設定の画面が出るので、これに従うとこれらがインストールされる。
iOS標準メーラーのS/MIME設定
次にメールアカウントでS/MIMEの設定をする。「設定>メール/連絡先/カレンダー>(S/MIMEを使うアカウント)>アカウント>詳細>S/MIME」で、S/MIMEをオンにして、証明書を選択する。あとは設定は好みだが、私は「署名=はい」「デフォルトで暗号化=いいえ」にして使っている。
iOS標準メーラーのS/MIMEメール受信
S/MIME署名暗号メールを受信するとこのようにアイコン表示され、正しい署名がついており、暗号化されて送られてきたことがわかるようになっている。差出人の箇所をクリックすると、メールの署名暗号化の状態が表示される。シンプルなインタフェースだが、まずまずの使い勝手だと思う。例えば暗号化のみのメールを受信した場合、以下のようになる。
署名暗号化されたメールの場合には以下のようになる。
iOS標準メーラーのS/MIMEメール送信
送信時は、先ほど設定した通り、全てのメールに対してS/MIME署名が付与されてしまい、メッセージ毎に署名の有無を切り替えられず、少し面倒だ。相手に暗号化してメールを送ろうとしたが、なぜかうまくいかなかった。前はできていたような気がするのだけど、、、
Mac OS X標準メーラー
Mac OS Xの標準メーラーもまたプラグイン不要でS/MIMEに対応している。 キーチェインに自分のメールアドレス用のS/MIME証明書(と鍵)、相手のS/MIME証明書を登録しておけば、送信時に署名や暗号化ができるようになる。
Mac OS X標準メーラーのS/MIME設定
アプリ「キーチェーンアクセス」を起動し、自分のS/MIME用証明書と鍵をインポートします。次に、標準メーラーを起動し、「環境設定」メニュー>「アカウント」タブを選び、なぜか「TLS証明書」の箇所で、登録した自分のS/MIME用証明書を選択します。
Mac OS X標準メーラーのS/MIMEメール送信
送信画面は以下のようになる。鍵やメダル (?)のボタンを押せば、暗号化、署名ができる。
Mac OS X標準メーラーのS/MIMEメール受信
受信した場合の表示は非常に地味で、詳細表示をしないと署名の有無がわからないのは非常に残念。
署名メール、暗号化のみのメール、署名暗号メールを受信した場合の表示はそれぞれ以下の通り。
Outlook 2013 for Windows
Outlook 2013のS/MIME設定
Outlook 2013のS/MIME設定はとてもわかりにくいところにある。もう、S/MIMEなんか使わせたくないんじゃないかと思うくらいだ。メニューの「ファイル>オプション>セキュリティセンター>Outlookセキュリティセンターの詳細設定>電子メールのセキュリティ」から設定することができる。証明書が設定されていれば、以下のようになる。
規定の設定の「設定」ボタンを押すと更に詳細設定ができる。
で、これみて気づいちゃいました。Outlook 2013 署名と暗号化のアルゴリズム設定が、まともになったんですよ。前は、Thunderbirdぐらいだけのもんだったんですけどね。署名のハッシュアルゴリズムはSHA1、SHA256、SHA384、SHA512、暗号化アルゴリズムはRC2 64bit、RC2 128bit、3DES、AES 128bit、AES 192bit、AES 256bitから選べます。すごいですよねぇ。さすがにDESはもう無くなりましたが、RC2はまだあるんですねぇ。古いメーラーとの互換性を気にするならSHA1、3DESのチョイスで、新しくて良いならSHA256、AES 128bitあたりがいいんじゃないですかね。
Outlook 2013のS/MIMEメール送信
Outlook 2013では、返信しようとするとき、メインウィンドウの中の右側に返信ウィンドウが表示されますが、あのままだとS/MIME使えないんですよ。も〜やる気あんのか?っていう。「ポップアウト」ボタンで別ウィンドウにしてから設定します。で、ポップアップしたとしてもですねぇ、署名、暗号化がとても探しにくい位置にあるんですよ。「も〜やる気あんのか!(Part2)」と。タブの「オプション>アクセス許可」なかにひっそりとあります。
これじゃ、あまりに寂しいので、リボンを右クリックして、リボンの編集機能で追加してしまいます。
ほら、メール送信ウィンドウから、すぐに署名、暗号メールが送れてしまいます。(素晴らしい)
Outlook 2013の連絡先のS/MIME証明書の登録
私の設定が間違っているだけなのかもしれないけど、Outlook 2013で署名メールを受け取ったら、自動的に証明書が連絡先に登録されるわけではなく、手作業でいちいち登録しなければならないようだ。非常に面倒臭い。(シンジラレナイ!)
送信先のS/MIME証明書ファイルを持っていないなら、S/MIME署名メッセージから取り出すことができます。Outlook 2013で署名メッセージを開き、赤いリボンをダブルクリックすると署名プロパティダイアログが表示されます。「詳細ボタン>署名者を選択>詳細の表示ボタン>証明書の表示ボタン>詳細>ファイルにコピー」でエクスポートすることができます。「も〜やる気あんのか!(Part3)」
送信相手のS/MIME証明書を登録しておくには、まず、Outlook連絡先のカードを開く必要があります。(これも非常に探しにくい。) 2通り開く方法があります。
- Outlookのメインウィンドウの下にある「連絡先」リンクを開き、対象の人をダブルクリックする。
- メインウィンドウで相手からのメールを開いている状態で、メールアドレスを右クリックし「連絡先カードを開く」を選択、「変更の保存先 Outlook 連絡先」をダブルクリック。
先ほどダウンロードしておいた相手のS/MIME証明書をインポートして設定すると、こんな感じになります。
Outlook 2013のS/MIMEメールの受信
S/MIMEの署名だけのメール、暗号化だけのメール、署名暗号化されたメールを受信すると、メッセージの表示はそれぞれ下のようになります。署名に問題があった場合には、ちゃんと警告も出ます。ただ、メッセージ一覧のところできになるところがあって、S/MIMEの時に赤リボンや黄色鍵が表示されるのはいいんですが、
PGP署名メールでも検証する気もないのに赤リボンが表示されるんですよね。これは如何なものかと、、、
Office 365 メール
Office 365のメールアプリでも標準プラグイン(アドオン)を使えば、ウェブアプリなのにクライアント側でS/MIMEに対応してしまう。アドオンはInternet ExplorerとFirefoxに対応しており、Chromeには対応していないようだ。
S/MIME用アドオンのインストール
画面キャプチャを撮り忘れてしまったのだが、メインウィンドウのメッセージを見る箇所で、S/MIMEメッセージの場合にリンクを辿っていけば、プラグインがダウンロードできる。"owasmime.msi"という名前のファイルだ。これをインストールしブラウザを再起動すればよい。
Office 365メールのS/MIMEメール送信
新規メールやメールの送信などで、編集ウィンドウを別ウィンドウにする。「…」のメニューがあるのでこれを開き、「メッセージオプションの表示」を選ぶと下記のダイアログが表示される。
ただ、何故かエラーができるようになってしまった。IE、FirefoxにかかわらずアドオンはWindowsキーストアの秘密鍵は読みに行こうとしているが署名ができない。また、送信先の公開鍵証明書も正しく選択できていないようだ。(前はちゃんと署名に成功した気がする。) ブラウザを再起動するなどすると復旧するかもしれない。
Office 365メールのS/MIMEメール受信
暗号メールを受信した場合には、場合によりWindowsキーストアの秘密鍵を使用する旨の確認ダイアログが出てから
別窓で暗号化メールが復号されて表示される。
アドオンの動作は私の環境ではとても不安定で、復号できたり、できなかったり、署名の赤リボンも表示されていたものが、最近全く表示されなくなってしまった。
おわりに
てなわけで、今晩はいくつかの手持ちのメーラーのS/MIME署名暗号メールの機能をみてみました。うまくいかないところもありましたが、ぼちぼち調べようとおもいます。ではでは。