Outlook で S/MIME

インターネットバンキングを利用している方は多いと思いますが、その操作などに対する銀行からのメールメッセージには、S/MIME (エス・マイム: Secure / Multipurpose Internet Mail Extensions)と呼ばれる形式で電子署名が付加されていることにお気づきでしょうか。署名付きのメッセージは、Outlook 2018では下図のように署名付きを示すメッセージと赤で囲んだ小さなアイコンで表示されます。

小さな署名アイコンをクリックすると、以下のように署名に使用している電子証明書の内容が表示されて、送信者の身元を確認することができます。

電子証明書を確認することで、発信人がまさしく差出人本人であることと、メッセージ本文が途中で改ざんされていないことが保証されます。最近は、通販会社や宅配会社を騙る詐欺メールが横行していますから、そういった会社にも是非このS/MIMEを使って貰いたいものですね。

S/MIMEは、電子証明書の非常に重要な利用例の1つですから、設定方法と利用方法を解説していきましょう。ここでは、Windows 10上で動作するOutlook for Office 365 (2018年9月末時点)に、JCAN証明書 (JIPDECが発行する個人用クライアント証明書)をセットアップする方法を解説します。

電子証明書のファイル

前回の記事で解説したように、電子証明書は以下のものを1つにまとめたPKCS#12 (Public-Key Cryptography Standards) というファイル形式で配布されます。ファイル名の末尾(拡張子)は特に決まっていませんが、一般的には「.pfx」(旧称:主にMicrosoft製品が使用)や、「.p12」などが使われます。含まれる秘密鍵は暗号化されており、読み込むためにはパスワードが必要です。

  • 公開鍵暗号の秘密鍵
  • 公開鍵暗号の公開鍵
  • 公開鍵に対する証明書
    • 公開鍵の持ち主(主体者)に関する情報 (氏名やメールアドレス)
    • 認証局(発行者)の名前
    • 認証局による電子署名
    • 有効期間

電子証明書の組み込み

メールソフトだけではなくブラウザなどのアプリケーションも電子証明書を使用しますから、Windowsを含む多くのOSは証明書を管理するための機能を備えています。Windows 10では「証明書マネージャ (certmgr)」がそれに当たりますが、ここではOutlookから証明書を登録する方法を順を追って説明します。まず、証明書ファイル(.pfxファイル)を手元に用意しましょう。

Outlookを起動して、「ファイル」-「オプション」を選択します。「Outlookのオプション」ウィンドウが開くので、下図の番号順にクリックしていきます。

「デジタルIDのインポート/エクスポート」ウィンドウが開いたら、証明書ファイルを選択して、そのパスワードを入力して「OK」ボタンをクリックします。下図のウインドウが開くので、「OK」ボタンをクリックします。セキュリティレベルを「高」に設定すると、秘密鍵を使用する度~署名や暗号メッセージを複合する時にパスワードが聞かれるようになりますが、かなり面倒なので専用のパソコンでは「中」のままで良いでしょう。

ここではOutlookを使って証明書の登録を行いましたが、Windows 10では「証明書マネージャ」が証明書を集中管理しています。スタート画面から「ファイル名を指定して実行」を選択して、「certmgr.msc」を入力すると証明書マネージャが起動します。登録した証明書は、「個人」-「証明書」フォルダに分類して格納されているので、その内容を確認してみましょう。

S/MIMEで証明書を使用する場合、拡張タブで「サブジェクト代替名」フィールドに表示されるメールアドレス (RFC822 Name)が重要になります。ここに記載されたアドレスとは異なるメールアドレスから送信するメールメッセージに対して、署名を付けることはできません。

Outlookの設定

上記の方法で証明書をセットアップした場合、Outlookは証明書に書かれているアドレスを持つアカウントが既にセットアップされていれば、その証明書を使用することができるように設定されます。デフォルトの状態では、メッセージの作成時に指示した場合にだけ、電子署名が付加されます。とはいえ、Outlookのデフォルト設定はかなり頻繁に変更されますし、バージョンによる違いもあるので、設定を確認しておきましょう。

証明書をセットアップした時と同様に、Outlookの「ファイル」-「オプション」から「セキュリティセンター」を開きます。「セキュリティセンターの設定」ボタンを押して、「セキュリティセンター」ウインドウを開き、左のメニューから「電子メールのセキュリティ」を選択します。

  1. ここをチェックすると、すべてのメッセージが(可能であれば)暗号化されます。暗号化できない宛先にはメッセージを送信できませんから、チェックを外しておきます
  2. ここをチェックすると、すべてのメッセージに電子署名が付加されます。S/MIMEに対応していないメールソフトで見ると、電子署名はメッセージへの「添付ファイル」となります。ポピュラーなメールソフトや、スマートフォンのメールソフトは、S/MIMEに対応していますから、必要があればチェックしておきます
  3. ここをチェックすると、電子署名自体を暗号化せずに送信します。チェックを外すと、電子署名自体を暗号化して送信しますので、受信者は予め送信者の公開鍵を入手している必要があります(と、言うことだと思います)
  4. ここをチェックすると、電子署名を付加したメールメッセージでは、受信確認要求を必ず付加します。必要に応じて、メッセージ毎に確認要求を付加することができますから、通常はチェックを外しておきます
  5. 署名や暗号化に使用する証明書が複数ある場合には、ここでどの証明書を使用するかを指定します。必要に応じて、メッセージ毎に切り替えることができます

メールメッセージへの署名と暗号化

準備作業が終わりましたので、実際に署名付きや暗号化されたメッセージを作成する手順に進みましょう。新規メッセージ画面で、オプションタブを選択すると、リボンの「アクセス許可」グループに「署名」と「暗号化」というボタンがあります。

署名ボタンをチェックしておくとメッセージに電子署名が付加され、暗号化ボタンをチェックしておくとメッセージ本体(添付を含む)の暗号化が行われます。たったこれだけ! 普通のメールを扱うのと何の変わりもありません。それでいて、成りすましは直ぐに分かりますし、送信相手以外の誰かがメッセージを覗き込んだとしても、暗号によって内容を見られることもありません。S/MIMEは国際的な規格ですので、海外とのやり取りにも何の問題もありません。

ただし、暗号化の利用には「受信者の公開鍵を持っている」ことが必要です。つまり、送信者と受信者の双方が有効な証明書を利用しており、あらかじめ公開鍵の交換を行っておくことが前提となります。もっとも、公開鍵の交換も実に簡単です。S/MIME対応のメールソフトは、署名付きのメッセージを受け取った際に、そこに含まれる証明書を自動的に記憶する機能を備えています。つまり、暗号化したメッセージをやり取りする前に、1回だけ「署名付き」のメッセージをやり取りしておけば、メールソフトが相手の公開鍵を自動的に利用してくれるので、ユーザーが公開鍵の管理を行う必要はありません。

まとめ

証明書のセットアップが少しだけ面倒だけど、操作は普通のメールと全く変わらず。セキュリティは大幅に向上するS/MIMEですが、これまでは個人宛に発行する証明書がかなり高価で、本人確認の手間もかかったため、あまり普及してきませんでした。JCAN証明書は、これまでに比べ大幅に簡単な手続きで安価に提供されるので、S/MIMEの普及に寄与できるものと期待しています。