自堕落な技術者の日記

基本は喰ってるか飲んでるかですが、よく趣味でカラオケ・PKI・署名・認証・プログラミング・情報セキュリティをやっています。旅好き。テレビ好きで芸能通

iOS

(小ネタ)スマホでS/MIME署名・暗号メール使うならdocomoはおやめなさい

いや〜、シルバーウィーク暇ですわ〜〜〜。iPhoneというかiOSの標準メールソフにはS/MIME署名・暗号メールの機能があって、S/MIME用証明書というメールアドレスの書かれたデジタル証明書があれば、自分が送ったメールの本文が改ざんされないようにデジタル署名で保護したり、送信先、送信者しかメールが見られないように暗号メールを送ったり、受信したりすることができます。

先月あたり、docomo iPhoneのS/MIMEメールでちょっと問題があることを知って、今日は書きそびれていたそのことをブログに書こうと思っています。

ある日、会社からS/MIME署名メールをdocomoのiPhoneに送ってみたところ、こんな感じに表示されました。
IMG_0727
最初は、会社の検閲というかフィルタリングによって、S/MIME署名メールの署名部分を削除して送っているんだろうと思って、情報システムの運用部門に問い合わせてみたんですが、特にそのようなフィルタリングはしていないとの事。さらに、いろいろ調べてくれ、auやSoftbankなどではこのような問題は発生せず、送信先がdocomoの時だけ発生する問題だとわかりました。

いろいろ、ネットで調べてみると、こんなOCNのページを見つけました。

OCNからのお知らせ:電子署名に関するよくあるお問い合わせより引用
  • Q: スマートフォンで電子署名付メールを受信するとどうなりますか?
  • A: スマートフォンで受信した場合、(...中略...) (docomoのSPモードのような)携帯電話と同じ確認方法があります。(中略)携帯電話と同じ方式でメールを受信された場合は、電子署名そのものが「削除」されます。そのため、電子署名なしの通常のメールと同じ扱いになります。
最初、OCNの電子署名削除のお知らせページを見つけたので、docomo.ne.jpのメールはOCNを使っているのだと勘違いしていたんですが、いろんな方にコメント頂き、iPhoneでdocomo.ne.jpドメインのメールを使う場合には、ケータイで使われるSPモードメールをクラウドで管理するドコモメールという仕組みで送受信するそうです。

SPモードメールやドコモメールで電子署名を削除してしまうという説明は結局見つけることができなかったのですが、iモードメールに関しては以下のような記述を見つけることができました。症状としてはiPhoneでのdocomo.ne.jpのメールの状況と同じかなと思います。

docomo: iモードメールでできることより
電子署名付きメールが受信できる
電子署名があるメールも受信できるようになりました。
注意電子署名部はiモードセンターで削除され、メール本文に「電子署名削除」が挿入されます。
お、おいおい!!!docomoのケータイメール(SPモード)のS/MIME署名・メール対応について、どこにも注記や説明はないようなのですが、多分インフラとしてOCNと同じ環境か似たものを使っていると思われ、 S/MIME署名メールが送られてくると、一律、S/MIME電子署名部分を削除してくれるのだそうです。ひどい話じゃないですか。せっかく改ざん検知機能のためにS/MIME署名メールを送っているのに、S/MIME署名を削除して、本文を書き換えて送ってくるのです。

ファイルサイズが大きいからとか、ウィルス感染のリスクがあるから、とか何か理由があれば、削除してくるのもわかりますが、大きなサイズの画像でも送ることができますし、何故かS/MIME署名(と多分S/MIME暗号メールも)その部分だけ削除して送ってくるのです。なんで、勝手にこんなことをしてくれるんですかねぇ?

せっかくのiPhone、iPadの標準メールソフトのS/MIME署名・暗号メールの機能を使いたいなら、docomoは使い物にならないので、auやSoftbankを使いなさいという事なのだろうと思います。

Androidについては、この数年ずっと良いS/MIME対応メールアプリを探しているんですが、未だ良いアプリが見つかりません。どなたか良い情報があれば教えて下さい。よろしくお願いします。

今晩はこの辺で。

(追記 2015.09.22 07:00)

OCNについて、Active Sync使って問題なく送れているとのコメントを頂きました。コメント欄ご覧ください。記事も直しております。

(追記 2015.09.22 10:00)

ブログについていろいろ、コメントやリツイートなどいただき、docomo(mopera)のメールとOCNは無関係ということがわかりました。ありがとうございます。docomoのメール(iモードメール?)は、このページで以下のような説明がありました。

電子署名付きメールが受信できる
電子署名があるメールも受信できるようになりました。
注意:電子署名部はiモードセンターで削除され、メール本文に「電子署名削除」が挿入されます。

I♡S/MIME(Mac、iPhone、Outlook 2013、Office 365のS/MIME署名暗号メールの設定与太話)

唐突ですが、私は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をオンにして、証明書を選択する。あとは設定は好みだが、私は「署名=はい」「デフォルトで暗号化=いいえ」にして使っている。
smime20
smime21
smime22

iOS標準メーラーのS/MIMEメール受信

S/MIME署名暗号メールを受信するとこのようにアイコン表示され、正しい署名がついており、暗号化されて送られてきたことがわかるようになっている。差出人の箇所をクリックすると、メールの署名暗号化の状態が表示される。シンプルなインタフェースだが、まずまずの使い勝手だと思う。例えば暗号化のみのメールを受信した場合、以下のようになる。
smime16
smime17
署名暗号化されたメールの場合には以下のようになる。
smime18
smime19

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用証明書を選択します。
smimea01_

Mac OS X標準メーラーのS/MIMEメール送信

送信画面は以下のようになる。鍵やメダル (?)のボタンを押せば、暗号化、署名ができる。
smimea05_

Mac OS X標準メーラーのS/MIMEメール受信

受信した場合の表示は非常に地味で、詳細表示をしないと署名の有無がわからないのは非常に残念。 署名メール、暗号化のみのメール、署名暗号メールを受信した場合の表示はそれぞれ以下の通り。
smimea04_
smimea03_
smimea02_

Outlook 2013 for Windows

Outlook 2013のS/MIME設定

Outlook 2013のS/MIME設定はとてもわかりにくいところにある。もう、S/MIMEなんか使わせたくないんじゃないかと思うくらいだ。メニューの「ファイル>オプション>セキュリティセンター>Outlookセキュリティセンターの詳細設定>電子メールのセキュリティ」から設定することができる。証明書が設定されていれば、以下のようになる。
smime01
規定の設定の「設定」ボタンを押すと更に詳細設定ができる。
smime02
で、これみて気づいちゃいました。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)」と。タブの「オプション>アクセス許可」なかにひっそりとあります。
smime04
これじゃ、あまりに寂しいので、リボンを右クリックして、リボンの編集機能で追加してしまいます。
smime03
ほら、メール送信ウィンドウから、すぐに署名、暗号メールが送れてしまいます。(素晴らしい)
smime05

Outlook 2013の連絡先のS/MIME証明書の登録

私の設定が間違っているだけなのかもしれないけど、Outlook 2013で署名メールを受け取ったら、自動的に証明書が連絡先に登録されるわけではなく、手作業でいちいち登録しなければならないようだ。非常に面倒臭い。(シンジラレナイ!)

送信先のS/MIME証明書ファイルを持っていないなら、S/MIME署名メッセージから取り出すことができます。Outlook 2013で署名メッセージを開き、赤いリボンをダブルクリックすると署名プロパティダイアログが表示されます。「詳細ボタン>署名者を選択>詳細の表示ボタン>証明書の表示ボタン>詳細>ファイルにコピー」でエクスポートすることができます。「も〜やる気あんのか!(Part3)」

送信相手のS/MIME証明書を登録しておくには、まず、Outlook連絡先のカードを開く必要があります。(これも非常に探しにくい。) 2通り開く方法があります。

  1. Outlookのメインウィンドウの下にある「連絡先」リンクを開き、対象の人をダブルクリックする。
  2. メインウィンドウで相手からのメールを開いている状態で、メールアドレスを右クリックし「連絡先カードを開く」を選択、「変更の保存先 Outlook 連絡先」をダブルクリック。
送り先の証明書を登録するには、上方真ん中の辺にある、「証明書」をクリックします。
smime06
先ほどダウンロードしておいた相手のS/MIME証明書をインポートして設定すると、こんな感じになります。
smime07

Outlook 2013のS/MIMEメールの受信

S/MIMEの署名だけのメール、暗号化だけのメール、署名暗号化されたメールを受信すると、メッセージの表示はそれぞれ下のようになります。
smime10
smime11
smime12
署名に問題があった場合には、ちゃんと警告も出ます。ただ、メッセージ一覧のところできになるところがあって、S/MIMEの時に赤リボンや黄色鍵が表示されるのはいいんですが、
smime08
PGP署名メールでも検証する気もないのに赤リボンが表示されるんですよね。これは如何なものかと、、、
smime09

Office 365 メール

Office 365のメールアプリでも標準プラグイン(アドオン)を使えば、ウェブアプリなのにクライアント側でS/MIMEに対応してしまう。アドオンはInternet ExplorerとFirefoxに対応しており、Chromeには対応していないようだ。

S/MIME用アドオンのインストール

画面キャプチャを撮り忘れてしまったのだが、メインウィンドウのメッセージを見る箇所で、S/MIMEメッセージの場合にリンクを辿っていけば、プラグインがダウンロードできる。"owasmime.msi"という名前のファイルだ。これをインストールしブラウザを再起動すればよい。

Office 365メールのS/MIMEメール送信

新規メールやメールの送信などで、編集ウィンドウを別ウィンドウにする。「…」のメニューがあるのでこれを開き、「メッセージオプションの表示」を選ぶと下記のダイアログが表示される。
smime13

ただ、何故かエラーができるようになってしまった。IE、FirefoxにかかわらずアドオンはWindowsキーストアの秘密鍵は読みに行こうとしているが署名ができない。また、送信先の公開鍵証明書も正しく選択できていないようだ。(前はちゃんと署名に成功した気がする。) ブラウザを再起動するなどすると復旧するかもしれない。

Office 365メールのS/MIMEメール受信

暗号メールを受信した場合には、場合によりWindowsキーストアの秘密鍵を使用する旨の確認ダイアログが出てから
smime14
別窓で暗号化メールが復号されて表示される。
smime15
アドオンの動作は私の環境ではとても不安定で、復号できたり、できなかったり、署名の赤リボンも表示されていたものが、最近全く表示されなくなってしまった。

おわりに

てなわけで、今晩はいくつかの手持ちのメーラーのS/MIME署名暗号メールの機能をみてみました。うまくいかないところもありましたが、ぼちぼち調べようとおもいます。ではでは。

関連記事

最新記事
Categories
Archives
Twitter
記事Google検索

本ブログ内をGoogle検索
Yahoo!アクセス解析
Travel Advisor
記事検索
QRコード
QRコード
  • ライブドアブログ