情報処理安全確保支援士 - SE娘の剣 -

左門至峰による情報処理安全確保支援士試験に合格するためのサイトです。 過去問を引用しながら、試験に出る基礎知識を体系的かつ詳細に整理します。

メール暗号化

1.電子メールの暗号化技術

(1)暗号化技術にはどんなものがある?

 電子メールの暗号化に関しては、IPAのサイトに「電子メールのセキュリティ」と題して記載がある。
このサイトでは、実際の画面を含めて詳しく説明されているので、時間があるときに確認してほしい。
(旧リンク)http://www.ipa.go.jp/security/fy12/contents/smime/email_sec.html
11d7b807


メールの暗号化といえば、確かAPOP、PGP、S/MIMEだったと思います。
違いが良く分かっていませんが。

 APOPはメールを受信するときのパスワードを暗号化する仕組みで、メール本文は暗号化されない。
メールを暗号化するのは、エンドエンド(つまり、クライアントPC間)で暗号化するのがPGPとS/MIME、クライアントPCとメールサーバ(またはメールサーバ間)で暗号化するのはSMTPS(587番)やIMAPSまたはIMAP4S(993番)、POP3S(995番)などのTLSです。


図:SMTPSやIMAPSは、エンドエンドではなく、クライアントPCとメールサーバや、メールサーバ間で暗号化

過去問(R4秋SC午前2問16改)
Q.電子メール又はその通信を暗号化する三つのプロトコル(PGP、S/MIME、SMTP over TLS)について,公開鍵を用意する単位を答えよ。






A.PGPとS/MIME → メールアドレスごと
SMTP over TLS → メールサーバごと

(2)PGPとS/MIMEの特徴

 PGP(Pretty Good Privacy)とS/MIME(Secure Multipurpose Internet Mail Extensions)は、機密性(メールの暗号化)と完全性(メールの改ざん検知)、真正性(本人であること)を保つために、公開鍵暗号方式を利用したセキュリティ対策である。しかし、Windowsのかつての標準メールソフトであるOutlook Expressで利用できないなどの理由から、日本での普及は遅れていた。

(3)PGP

女性悩み



情報処理試験では午前でさえもPGPが問われていない(と思う)ので、試験でる可能性が低いと思ってみてください。

 IPAの記述がわかりやすいので、参考に。
(旧リンク)http://www.ipa.go.jp/security/fy12/contents/smime/email_sec.html

【特徴】
・メールの暗号、改ざん検知などのセキュリティを保つために使われる。
・日本での普及は遅れている。
・OutlookExpressなどでは使えない。
・専用ソフト(商用)やBecky!などで利用することが多いだろう。

【利用手順】
①ソフトのインストール
②公開鍵と、秘密鍵を作成
③公開鍵を相手に渡す。HPで公開してもよい。
④実際にメールを送受信する。
公開鍵と秘密鍵を組み合わせて送受信する。

【送り方】
通常はメーラが処理する内容であるが、試験対策というか、内容を理解するために以下の質問をします。
1.盗聴されないように送るには?
どの鍵をどのように使う?
2.改ざんがされていないことを確かめるには?
どの鍵をどのように使えばよいでしょうか?
加えて、この方式では別のセキュリティ対策になります。
それは?
A.否認防止です。

2.S/MIME

(1)S/MIMEとは

 情報処理安全確保支援士の過去問(H22SC春午前Ⅱ問19)では、S/MIME(Secure Multipurpose Internet Mail Extensions)に関して、「インターネットで電子メールを送信するとき、メッセージの本文の暗号化に共通鍵暗号方式を用い、共通鍵の受渡しには公開鍵暗号方式を用いるもの」と述べられている。ポイントは、SMTP-AUTHなどのように、認証情報だけでなく、メール本文も暗号化するということです。

(2)S/MIMEの効果

f:id:seeeko:20200818124233j:plain



でも、SMTP over TLSなどでも暗号化できますよね。

 わざわざS/MIMEを使わなくてもいいということだね。

Q.なぜ、SMTP over TLSによる暗号化では不十分で、S/MIMEが求められるのか。






A.この点は情報処理安全確保支援士の過去問(R2SC午後1問2)でも問われた。問われ方は上記とは違うが、たとえば、「メールサーバ上では、メールが暗号化されていないから(解答例)」ということが問題である。つまり、メールサーバ間の通信は暗号化されるが、メールは中継されて他社が管理しているメールサーバも通過するが、そこでは暗号化されていないのである。また、なりすましメールを判断できない。(メールアドレスの送信元偽装は簡単だからである)

では、以下の過去問を見ながら、S/MIMEによって何か実現できるかを確認します。

過去問
S/MIMEは、メールの送信者と受信者の間で公開鍵基盤(以下,PKIという)を利用して,送信者が付与した[ a ]を受信者が検証することによって,メールとして転送されるデータの完全性の確保と[ b ]の確認ができる。さらに, PKIは,S/MIMEにおいてメールとして転送されるデータの機密性を確保するためにも利用される。






この問題の正解は以下です。
a ディジタル署名
b 送信者

この問題にありますように、S/MIMEによって、次の3つが実現できます。
①データの完全性 ←ディジタル署名で確認
②送信者の確認  ←ディジタル署名(および証明書)で確認
③機密性の確保  ←暗号化によって実現

(3)S/MIMEの設定

情報セキュリティスペシャリスト試験を目指す女性SE


初歩的な質問ですいません。
メールソフト(メーラー)の設定ですが、普通はSMTPとPOPの設定をしますよね。S/MIMEを使うときは、どう設定しますか?
 通常のSMTPとPOPの設定でよい。S/MIMEは、暗号化したメール本文を、メールの添付ファイルにつけて送ることをイメージすればいいだろう。添付ファイルで送るだけであれば、通常のSMTPやPOPプロトコルで通信できることも納得できると思う。
S/MIMEの流れを図にすると、以下のようになる。
S/MIMEの流れ_情報セキュリティスペシャリスト試験

S/MIMEでメールを暗号化するときの鍵については、以下の記事に記載します。

(4)S/MIMEに関する過去問

過去問(H18SV午後2問2)にて、内容を確認する。

過去問(H18SV午後2問2)
S/MIMEは,メールの送信者と受信者の間で公開鍵基盤(以下,PKIという)を利用して,送信者が付与した[ a ]を受信者が検証することによって,メールとして転送されるデータの完全性の確保と[ b ]の確認ができる。さらに, PKIは,S/MIMEにおいてメールとして転送されるデータの機密性を確保するためにも利用される。ここで用いられる非対称暗号(RSA暗号)では,秘密鍵と公開鍵が1対1に対応している。ある秘密鍵を使用して[ c ]した情報は,[ d ]と対を成す[ e ]で復号できる。また,[ e ]を使用して暗号化した場合,[ d ]で復号できる。一般に,非対称暗号は,暗号化するデータ量が多くなると,対称暗号に比べて処理時間が長くなる。効率性の観点から,S/MIMEでは,メールの本文を対称暗号で暗号化し,この暗号化に使用した共通鍵を,非対称暗号で暗号化する。この仕組みによって,送信者が指定した受信者だけがメールを読むことができるので,データ転送の安全性が高まる。






女性笑顔



過去問の問題文って基礎を理解するのにちょうどいいですね。
基本的なことが整理されています。

上記の正解は以下である。
a ディジタル署名
b 送信者
c 暗号化
d 秘密鍵
e 公開鍵

また、IPAのサイトにS/MIMEに関する詳しい記載がある。
http://www.ipa.go.jp/security/fy12/contents/smime/email_sec.html

実際の画面キャプチャーつきなので、お勧め。ぜひご覧ください。

(5)メールを暗号化するときの鍵は何?

メールを暗号化する鍵はなんでしょう。
情報セキュリティスペシャリスト試験を目指す女性SE


目的は機密性ですよね。
受信者の公開鍵で暗号化し、それを(受信者しかもたない)受信者の秘密鍵で復号すればいいと思います。

個人的には正解をあげたいが、残念ながら不正解です。
公開鍵暗号化方式では、処理に時間がかかるので、暗号化する鍵を公開鍵暗号化方式で暗号化し、メール本文はその共通鍵で暗号化するのです。受信者には、暗号化した鍵を共通鍵を、受信者の公開鍵で暗号化して送ります。

過去問をみてみましょう。

過去問(H18SV午後2問2)
ここで用いられる非対称暗号(RSA暗号)では,秘密鍵と公開鍵が1対1に対応している。ある秘密鍵を使用して[ c ]した情報は,[ d ]と対を成す[ e ]で復号できる。また,[ e ]を使用して暗号化した場合,[ d ]で復号できる。一般に,非対称暗号は,暗号化するデータ量が多くなると,対称暗号に比べて処理時間が長くなる。効率性の観点から,  S/MMEでは,メールの本文を対称暗号で暗号化し,この暗号化に使用した共通鍵を,非対称暗号で暗号化する。この仕組みによって,送信者が指定した受信者だけがメールを読むことができるので,データ転送の安全性が高まる。






この問題の正解は以下です。
c 暗号化
d 秘密鍵
e 公開鍵

S/MIMEのメールが出来上がる様子を、次の図で確認してください。
①メール本文を、共通鍵を使って暗号化します。
②受信者の公開鍵で、共通鍵を暗号化します。これにより、共通鍵は受信者しか復号することができません。
こうやって作成された「暗号化されたメール本文」と「暗号化された共通鍵」がメールに付けられて、S/MIMEのメールが出来上がります。
S/MIMEによる暗号_情報セキュリティスペシャリスト試験
情報セキュリティスペシャリスト試験を目指す女性SE



作成した共通鍵は、受信者の公開鍵だけでなく、
自分(送信者)の公開鍵でも暗号化して添付しているとか?

 そうだね。受信者の公開鍵だけだと、受信者しか読めない。そうしないと、そのメールを自分自身がよめないからね。

◆参考URL
S/MIMEの仕組みはここが詳しい。
(旧リンク)http://www.ipa.go.jp/security/pki/072.html

過去問を解いてみましょう。

過去問(H22秋FE午前)
問41 手順に示す電子メールの送受信によって得られるセキュリティ上の効果はどれか。
 〔手順〕
(1)送信者は、電子メールの本文を共通鍵暗号方式で暗号化し(暗号文)、その共通鍵を受信者の公開鍵を用いて公開鍵暗号方式で暗号化する(共通鍵の暗号化データ)。
(2)送信者は、暗号文と共通鍵の暗号化データを電子メールで送信する。
(3)受信者は、受信した電子メールから取り出した共通鍵の暗号化データを、自分の秘密鍵を用いて公開鍵暗号方式で復号し、得た共通鍵で暗号文を復号する。
ア 送信者による電子メールの送達確認
イ 送信者のなりすましの検出
ウ 電子メールの本文の改ざんの有無の検出
エ 電子メールの本文の内容の漏えいの防止






では、アから順に、なぜ正解かなぜ不正解かを確認しましょう。
かならずご自身で考えてください。

アの「送信者による電子メールの送達確認」というのは、受信者にメールが届いたどうかを確認するという意味。メールが届いたかを「送信者」が確認することはできません。
イの「送信者のなりすましの検出」ですが、これはできるかもしれませんね。よく考えましょう。
なりすましを確認するのは受信者ですね。受信者の行動は(3)のみになります。ところが、今回使っているのは受信者の公開鍵しか使っていません。送信者の公開鍵や秘密鍵を使っていれば、複号することで、本人かの確認ができたのですが、今回はダメですね。
ウの「電子メールの本文の改ざんの有無の検出」はハッシュ値を比較するなどをしなければいけません。
今回の正解はエです。電子メールの本文を暗号化していますので、「内容の漏えいの防止」ができます。

また、この問題をよく見ればわかりますが、S/MIMEにおけるメール本文の暗号化は公開鍵方式ではありません。共通鍵です。なぜそうするかというと、時間がかかってしかたがないからです。

(6)PGPとS/MIMEの違いは

 PGPとS/MIMEの違いは、利用するソフトウェアの違い以外に、公開鍵の正当性の保証方法が異なる。

メールの暗号化技術 公開鍵の正当性を保証する方法
S/MIME CA(認証局)が署名することによって、保証される。
PGP 互いに署名しあう

S/MIMEは後ほど解説するPKIの仕組みを利用し、CA(認証局)の署名にて正当性を確認する。

PGPは「信用の輪(Web of Trust)」にて確認する。
「私が信頼する○○さんが署名している△△さんの証明書だから信頼しよう」という考え方である。「友達の友達は皆友達」ですね。
11d7b807


PGPの信頼の輪って、現実的に可能なんですか?
なんか机上の空論というか、現実性が無い気がします。
確かに、日本ではそれほど普及しているとは言いがたいね。
でも、現実的には運用されている。
例えば、互いに署名しあうサイトが存在する。それ以外には、フィンガープリントを広く配布することで、公開鍵の信頼性を高めている。フィンガープリントをメールの署名に入れるなどして広く公開しておけば、公開鍵をハッシュ化してフィンガープリントと一致するかで正当性を確認できる。

■フィンガープリント
 直訳すると「指の印刷」とでも言うのであろうか。「指紋」を意味しているのかな。
フィンガープリントとは、ハッシュ値である。
デジタル署名における署名部分と同じ。

「公開鍵」          「フィンガープリント」
AAAAAAAAAAAAAAAAAAA →     aaa

PGPにおいて公開鍵が信頼できなければ、すべてのセキュリティが崩れる。
そこで、フィンガープリントをメールの署名に入れるなどして広く公開しておけば、
公開鍵をハッシュ化し、フィンガープリントと一致することで正しさを証明できる。

(7)署名だけのメールもS/MIME?

5


銀行から署名付きのメールが来ました。これってS/MIMEですか?
メールは暗号化されていない気がしますが…
 成子ちゃんの公開鍵を銀行が入手していないから、暗号化されたS/MIMEではない。
でも、署名だけでもS/MIMEという。
こう考えればいい。
S/MIMEには①署名、②暗号、③署名と暗号の3パターンのメールを送れると。
実際、WindowsLiveメールの画面だと、「暗号化」と「デジタル署名」のボタンがそれぞれつけられている。
mail

情報処理技術者試験では、「暗号化メール」と「署名付きメール」という2つの区別をしています。H24春IP問56では、「S/MIMEを利用して暗号化したメールを送信する場合の条件のうち」、H25春IP問60では、「S/MIMEを利用して署名付きメールを送信する場合の条件のうち」という記載があります。

以下も参照いただきたい。
(旧リンク)http://www.ipa.go.jp/security/pki/072.html

(8)S/MIMEとPGPが普及しない理由

c2f058cb

メールを暗号化して送るのは面倒ですよね。
パスワードを別メールで送ったりとか。
もっといい方法はないのですか?

 最近だと、システムで自動的に暗号化し、数分後に自動でパスワードを送る仕組みがある。
S/MIMEなどを使い、お互いしか知らない鍵を用いて暗号化通信をすべきである。
IPsecも鍵が第三者に分からないようにDHの仕組みを活用しているしね。
ただ、残念ながらS/MIMEは普及していない。各人が自分の証明書を持ち、相手には自分の公開鍵証明書を持ってもらう必要があるからね。メールはオープンな仕組みが受けているから、お互いの証明書を持ち合う文化が普及するには時間がかかるかもしれない。
929c854c


でも最近、金融機関からのメールはS/MIMEなのか知りませんが、証明書がついたものが来ています。
私は金融機関に証明書を送ってませんが、暗号化通信ができているのでは?

 いや、あれは暗号化はされていない。認証だけ。
「私は本当の金融機関ですよ」ということを保証している。
dcf52feb


思うんですけど、メールにおいて、メール交換する全ての相手の公開鍵証明書を持つなんて、なんか不可能じゃないですか?
そもそも、自分の公開鍵証明書も持っていないですし。

 そうなんだ。はっきりいってS/MIMEやPGPは普及していない。
ただ、何かがきっかけで普及するかもしれない。
仕組みとしては、①個々のパソコンで管理する、②ディレクトリサーバなどのより一元管理する、方法がある。
①の場合は、パソコンで直接管理するのであるが、メーラーの設定で、メールを送るときに自動で自分で自分の公開鍵証明書を送る設定ができる。これを各人が設定しておけば、メールをやり取りする中で、自動で証明書が蓄積されていく。
②は企業内のメールの場合、社内のディレクトリサーバでアドレス帳および証明書を管理しておけばよい。広くインターネットでこの仕組みを使うのは難しいかもしれないが。

情報処理安全確保支援士試験の過去問(H22SC春午後Ⅰ問3)に以下の記述がある。

過去問(H22SC春午後Ⅰ問3)記述内容
F部長:S/MIMEは、各求人企業が「デジタル証明書」を用意するために認証サービスを年間契約することなどが必要である。コストが掛かるから難しいだろう。
Z主任:各求人企業が自社で、「デジタル証明書」を発行する方法は、採用できないのでしょうか。
F部長:①各求人企業が自社で発行したものは、当社では「デジタル証明書」として受け入れられない。
Z主任:当社で認証局システムを構築して、求人企業の各利用者分も含めて「デジタル証明書」を発行するのはどうでしょうか。
F部長:その場合、導入コストに加えて、運用コストも必要だ。
Z主任:それでは、PGPはどうでしょうか。
F部長:PGPは、自社で鍵の生成システムを用意できるとしても、クライアントPCの「電子メール」ソフトが対応していないことが多く、操作手順が複雑になるので、一般の利用者には使いにくいだろう。

私が使ってみたところの所感を。
・証明書はベリサインのものを購入した。1年間で3150円であった。これが高いか安いかの議論はあろうが、(私をふくめて)個人の人なら「もったいない」と感じるだろう。
・機密データをやりとりするには、とても便利である。解読される可能性はかなり低いし、互いに証明書をもっていれば、メーラが自動で暗号化などの処理をしてくれる。デフォルトの設定で暗号を有効にしておけば、証明書を持ち合っている人とは自動で暗号化され、そうでない人には平文で送られる。ファイルにパスワードをつけて、それを送り、パスワードを別途送るという作業に比べたら格段に楽だ。それに、ファイルにパスワードをつけても、本気を出せば解読される。
・先日、パソコンがクラッシュした。すると、証明書も秘密鍵もクラッシュしてしまう。新しい証明書を発行してもらうことになるのだが、過去の暗号化されたメールが読めない。これは痛い。

という感じで、デメリットもあり、なかなか普及しないのかもしれない。

3.SMTPSとSTARTTLS

STARTTLSは、SMTPやPOP3などで利用できる暗号化技術です。
情報セキュリティスペシャリスト試験を目指す女性SE



SMTP通信の暗号化であれば、SMTP over SSLがありますね。

 はい。どちらもTLS(SSL)による暗号化です。以下は、Thunderbirdのメール設定画面ですが、セキュリティの設定で、セキュリティ設定として、STARTTLSとSSL/TLSが選択できます。
starttls

さて、STARTTLSの特徴は、SMTP over SSL(465)やPOP3 over SSL(995)と違って、ポート番号を従来のSMTP(25)やPOP3(110)、IMAP(143)をそのまま利用できることです。
ただ、一般的にはSMTPのSTARTTLSは587番を使います。
web1



SMTP-AUTHで使うサブミッションポートですね。

 その通り。そして、通信相手と暗号化通信ができると確認した上で、ポート番号を変えずに暗号化通信を行います。過去問(H28NW午後Ⅰ問1)では、STARTTLSに関して、「接続時に平文で通信を開始して,途中で暗号化通信に切替える方式」と述べています。
これであれば、相手がSTARTTLSに対応していなければ、通常のSMTPやPOP3で通信を行うことができます。