iOS5が日本時間2011年10月12日2:00にダウンロードできるようになったそうで、私は夜待ってたんですが待ち切れずに寝てしまい、朝を迎えてしまいました。ツイッター上ではアップデートしたという方、Error 3200が出てアップデートできないという方、悲喜こもごものレポートが上がっています。
ようやく私も昼ごろアップデートできました。ある方は「TLにiOS5のS/MIME対応について何も流れてない」と心配されており、私も検索してちょっと心配になってみたりしたんですが、まぁ、早速試してみるべ〜〜〜と。と、いうかiOS5のアップデートで「ほとんど、そこ」にしか喰い付いてないという話もあります。というわけで、iPhone iOS5からサポートされるようになったS/MIME署名暗号メール機能についてのレポートです。
Outlook, Outlook Express, Thunderbird, Becky!, Mac OS X Mailなど 最近のメジャーなメーラーではデフォルトで S/MIME署名暗号メールに対応していて、 S/MIME対応の証明書と鍵さえあれば、 自分のメールを途中で改ざんされないように署名したり、 知り合いにムフフと秘密のメールを送ることができます。 iPhone iOS5になって初めてS/MIME対応になり どんな感じなのか見てみました。
とりあえず、どこ設定すんだ?
すでに自分のメールアドレス用に使えるクライアント証明書というかS/MIME用証明書をを持っていたので、そんなのがあると仮定して話を進めます。無い方はどこかの証明書発行サービスから買うとか、適当な認証用の(メールアドレスの入っている)証明書をゲットするとかしないといけません。
とりあえず、Google大先生に聞いてみると「GEMINI Securityのブログがあるぞよ」と仰るので斜め読みしてみると、ざっくり以下の手順でS/MIMEのメール設定ができるようです。
- (1) iPhone iOS5 で「設定」アイコンを開く
- (2) 項目「メール/連絡先/カレンダー」を開く
- (3) S/MIME用に使える証明書(と鍵)がインストールされているメールアドレスに 対応するアカウントを開く
- (4) 項目「詳細」を開く
- (5) すると最下部に「S/MIME」の項目があるので「オン」にする
![]()
- (6) 送信時には必ずS/MIME署名メールにしたい場合には「署名」の項目を選び、 署名を「オン」にし使用する署名に使用する証明書(と鍵)を選択します。
![]()
例えば証明書の詳細を見てみるとこんな感じ、、、
![]()
ここで証明書は自分のメールアドレス用のもの、即ちiPhoneの証明書の詳細表示でコモンネームかサブジェクト代替名のメールアドレスに自分のメールアドレスが記載されているものでなければなりません。(そのような証明書をとりあえずタダで入手できる方法についてはグーグル大先生で調べるか、私の知り合いの人はこっそり聞いてください。)- (7) 同様に、送信時には可能ならば必ずS/MIME暗号メールにしたい場合には「暗号」の項目を選び、暗号を「オン」にし復号時に使用する証明書(と鍵)を選択
(普通の人は署名用と暗号用の証明書は同じ人が多いです)- (8) アカウント設定に戻り右上の「完了」ボタンを押せば設定は終わり
さてと、軽ーくS/MIME署名メールを送ってみますか
とりあえず、S/MIMEのための設定は終わっているので、フツーにメール送ってみることにします。受け取り側は、Outlook Expressなんですが、問題なくS/MIME署名メールとして有効なものが受信できました。
次に外部(Outlook)から暗号のみのメール、署名暗号メールをiPhone iOS5で受けてみます
まずは暗号だけのメール。南京錠のアイコンが差出人名につくことで暗号化されていることがわかるようです。
差出人をクリックするとこんな感じに「暗号化済み」と表示されます。
次に署名暗号メールを受信してみます。
差出人名にチェックと南京錠のアイコンが表示されます。
これにより署名暗号メールであることがわかります。
同様に差出人の詳細を見てみると、
有効な署名メールだと青で無効な署名メールだと赤になるんだと
思います。(後述)
さて次に暗号メールを送信してみましょう
すでに誰かからS/MIME署名メールを受け取ったことがあれば
おそらくそのS/MIME署名書は自動的に(見るすべはありませんが)
keychain に登録されるようです。
証明書が自動登録済である人にメールを送ってみようとします。
宛先名が青になり、この場合には問題なく署名暗号メールが
送られます。
次に、まだ証明書を持っていないであろう人に
署名暗号メールを送ってみようとしましょう。
宛先名が赤になり南京錠がかかってない状態になります。
この状態のときには「証明書を持っていないので
暗号メールを送れませんよ」という意味のようです。
残念なことにiOS5の「住所録」は従来のものと全く変わらず、 住所録に送信したい相手のS/MIMEがあるかどうかを知るすべが ありません。
あと、普通の人は場合によっては署名をつけたり、暗号化したり、 動的に切り替えるのが普通で、Outlook Expressなども そのような署名と暗号を切り替えるトグルボタンが メール送信にはついていますが、 iPhoneには一切それはありません。 共通の設定にさかのぼって署名をするか、暗号化するか 決めないといけません。 これは何とも厄介な仕様だなぁ、、、、と思います。
おわりに
以上、iOS5のS/MIME署名暗号メール機能がとてもうれしかったので レポートしてみました。 ただ、実用で使うにはトグルボタンが無いので かなり苦しいかなぁという印象です。 次回は、iOS5が出すメールの中身や、S/MIME(=PKCS#7) 署名データ、暗号化データの構造なんかをマニアックに のぞいてみたいと思います。
今日は、中央線やら丸ノ内線の事故でえらい目にあって 疲れちゃったので、この辺で、、、、おやすみなさい Zzzz....
参考リンク
- @IT: 【特集】S/MIMEでセキュアな電子メール環境をつくる!〜実は危ない電子メール、安全性を実現するS/MIMEの詳細解説〜
- GEMINI Security Blog: Sending and Receiving S/MIME Encrypted Email on iOS 5 (Beta)
- Secure-Mail - S/MIME署名暗号対応 iPhone メールアプリなんだそう。iOS5じゃなくても使えちゃうんだろうからすごいっすね。
謝辞
S/MIMEのテストを自分一人でやるのはいろいろ面倒だったので、 送り相手をうちのチームの平井堅に似た人にお願いしてしまいました。 ありがとね。この場を借りてお礼しまふ。


