SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

エンジニアが生き残るためのテクノロジーの授業

セキュリティリスクを減らすために知っておきたい暗号のこと

エンジニアが生き残るためのテクノロジーの授業 第6回


  • X ポスト
  • このエントリーをはてなブックマークに追加

メールの暗号化はどうなっている?

メールの暗号化

 個人間のやり取りでSNSなどを使う場面が増えたとはいえ、オンラインサービスを利用する際の認証は、メールを使う方法がまだまだ一般的です。つまり、アカウントが乗っ取られると、オンラインサービスを勝手に使われてしまうリスクがあります。また、企業間でやり取りするメールを盗み見られると、競合他社に情報がわたってしまう可能性もあります。そこでメールの安全性を確保する取り組みが少しずつ進んでいます。

 アカウントの乗っ取りに対しては、パスワードの適切な管理に加えて、二段階認証や二要素認証といった対策を取る事業者が増えてきました。また、メールの盗聴についても、送受信時の暗号化が進められています。

 盗聴や改ざんなどを防ぐためには暗号化が有効ですが、SMTP、POP、IMAPはいずれもプロトコル自体に暗号化の機能を備えていません。これらのプロトコルはパスワードやメール本文が暗号化されることなく、メールサーバーとの通信が行われます。

 POPでパスワードを暗号化する方法としては、「APOP(Authenticated POP)」などが使われてきました。また、メール本文の暗号化では「S/MIME(Secure Multipurpose Internet Mail Extensions)」や「PGP(Pretty Good Privacy)」がよく知られています。事前に鍵の交換などの準備が必要ですが、メールの送信者から受信者まで一貫して暗号化通信ができるため、社内外のやり取りに多く使われています。

 ほかにも、SSLサーバー証明書を使って、「SSL/TLS」で暗号化する方法もあります。この場合、送信時の暗号化は「SMTP over SSL」、受信時の暗号化は「POP3 over SSL」と呼ばれます。事前に暗号鍵の交換などが不要なため、最初に設定すればその後は自動的に暗号化されます。

暗号化されるのはどこまで?

 暗号化される範囲には注意が必要です。SMTP over SSLで暗号化される範囲は、送信者のメールソフトから送信者のメールサーバーまでの通信です。つまり、送信者のメールサーバーから受信者のメールサーバーの間と、受信者のメールサーバーから受信者のメールソフトまでの間は暗号化されません。このため普及が進んでいませんでしたが、Gmailの常時SSL化により、その状況が変わりつつあります。利用者がGmailをWebで使っている場合は、利用者とGmail間の通信は暗号化されていますので、残りはメールサーバーが対応するだけです(図7)。

 多くのメールソフトがSMTP over SSLやPOP3 over SSLに対応しているので、メールサーバーが対応すれば、一気に普及することが予想されます。ほかにも「STARTTLS」を使って、メール送信者とメールサーバー間の通信経路を暗号化する場合もあります。

図7 メールの暗号化
図7 メールの暗号化

プロトコルの階層と暗号の関係

 上記のように、個々のプロトコル単位で暗号化が行われているため、サーバー側が対応していれば、Webサイトの閲覧はブラウザを、電子メールの送受信はメールソフトを、FTPの通信はFTPクライアントを適切に設定することで、それぞれが暗号化通信できます。逆に考えると、いずれかのソフトウェアで適切な設定が行われていないと、通信内容が暗号化されずにネットワーク上を流れます。

 利用者としては、暗号化されないプロトコルがあると安心して利用できません。企業にとっても、従業員が外出先から社内ネットワークに接続するときに通信が暗号化されていないと困ります。

 しかし、個々のプロトコルでの暗号化に任せると、暗号化されないプロトコルの存在に気づかず、平文で通信される可能性があります。ここで、下位のプロトコルで一律に暗号化されていれば、その上位にあるプロトコルはすべて暗号化されて安心です。暗号化に関するプロトコルがTCP/IPのどの階層に位置するのかを意識しておくと理解しやすいでしょう。階層ごとに有名なプロトコルをまとめたのが図8です。

図8 暗号に関するプロトコルの階層
図8 暗号に関するプロトコルの階層

 図を見ると、アプリケーション層だけでなく、トランスポート層以下で暗号化する方法が考えられます。実際に、専用線のような安全な通信回線を仮想的に実現する「VPN(Virtual Private Network)」などが使われています。

 VPNにはさまざまな種類がありますが、最もよく使われるのは「IPsec」を用いた方法です(図9)。端末にIPsec用のソフトウェアを用意し、社内システム側に設置したVPN装置を経由してアクセスする、もしくは双方にVPN装置を用意する方法などがあります。

図9 VPN(IPsec)
図9 VPN(IPsec)

 SSLを用いるVPN(SSL-VPN)の製品もあります。SSL-VPNでは端末側にVPNソフトウェアを用意する必要はありませんが、利用可能なプロトコルが限定されます。

 このように、暗号の仕組みに加えて、暗号化される範囲を正しく理解して使うことが求められています。

単行本化のお知らせ

 2016年12月17日に、この連載をベースにした新刊『エンジニアが生き残るためのテクノロジーの授業』が発売されました!

 ITとビジネスの関係、コンピュータ、ネットワーク、プログラミング、データベース、セキュリティ、人工知能など、本連載で解説した内容も含め、エンジニアなら誰もが知っておくべきテーマを一冊で学ぶことができます。

 IT業界でずっと活躍するために、本物の力を身につけよう。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
エンジニアが生き残るためのテクノロジーの授業連載記事一覧

もっと読む

この記事の著者

増井 敏克(マスイ トシカツ)

増井技術士事務所 代表。技術士(情報工学部門)、テクニカルエンジニア(ネットワーク、情報セキュリティ)、その他情報処理技術者試験に多数合格。 ITエンジニアのための実務スキル評価サービス「CodeIQ」にて、情報セキュリティやアルゴリズムに関する問題を多数出題している。 また、ビジネス数学検定1級に合格し、...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9841 2016/12/20 15:52

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング