Web Analytics Made Easy - StatCounter

工業大学生ももやまのうさぎ塾

うさぎでもわかるをモットーに大学レベルの数学・情報科目をわかりやすく解説! 数式が読み込まれない場合は1回再読み込みしてみてください。

基本情報対策 うさぎでもわかるセキュリティ 後編

こんにちは、ももやまです。

私自身も頭に定着させるために、基本情報でも出てくる「セキュリティ」分野について2回にわけてまとめたものを記事にしました。今回は後編です。

前編をまだ見ていない人は、前編もこちらからぜひご覧ください。

 

具体的には、

  • ファイアウォールなどのネットワークに対するセキュリティ対策
  • 暗号化技術
  • デジタル署名

についてまとめています。

また、前回と同じように記事の最後に復習として、記事に該当する部分の基本情報の過去問を10問用意しています。復習にぜひチャレンジしてみてください。

 

 

前回も書きましたが、2020年春の試験から、午後問題の「セキュリティ」の配点が12点から20点に上昇したため、基本情報におけるセキュリティ分野の重要性がさらにUPしており、より合否を分ける分野となりました。

なので、確実に頭にいれていきましょう!

 

1.ネットワークに対するセキュリティ対策

残念ながら日本には不審者がたくさんいます。日本以外ではもっと危険な人物がいるかもしれません。

そんな不審者たちが自分の家に自由に出入りできたら非常に怖いですよね。

 

そこで、我々がとる対策の例の1つに、自分の家に鍵をかけます。鍵をかけることで、不審者が自由に出入りできなくなります。

(たまに鍵を開けようとしてくる非常にやばい人たちもいますが……)

 

ネットワークの世界もリアルの世界と同じように危険がいっぱいです。

その中で、何も対策せずに組織内の内部ネットワークを使ったらどうなるでしょうか。

 

すぐ悪い人が不正アクセスをしてくるに違いありません。

そこで、組織内の内部ネットワークに悪さをされないための対策が必要となってきます。

そんな対策の具体例をみていきましょう。

(1) ファイアウォール (Firewall)

現実世界では、自分の家に鍵をかけることで不審者が入るのを防ぎます。

ネットワークの世界も同じように、世界とつながっているインターネットと内部ネットワークを区切るための壁を用意します。この壁のことをファイアウォールと呼びます。

 

ファイアウォールを設置することにより、外からの不正なアクセスを防ぐことができます。

 

ちなみにファイアウォール (Firewall) には防火扉という意味があり、「外からの不正アクセスを火災だとみなし、内部が火事にならないように守る」という意味で使われています。

 

ファイアウォールは機能の一種なので、様々な実現方法があります。

主な実現方法についていくつか紹介していきましょう。

(i) パケットフィルタリング

パケットフィルタリングは、すべてのパケット*1を通すのではなく、予め決めておいたパケットだけを通す仕組みです。イメージとしてはふるい*2です。

みなさんがおいているルーターの役目の1つです。

 

f:id:momoyama1192:20200311110234g:plain

具体的には、パケットのヘッダ情報にかかれている送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号などを元に通過するか拒否するかを設定します。

パケットフィルタリングを行うことで、特定のサービス*3のみの通信を行えるので、内部ネットワークの安全性が増します。

(ii) アプリケーションゲートウェイ

アプリケーションゲートウェイは、内部ネットワークとインターネットの間に、通信をを中継するサーバー(プロキシサーバー)を設置することで、内部ネットワークとインターネットを切り離す仕組みです。

 

f:id:momoyama1192:20200311110110g:plain

インターネットにいる外の不審者から内部ネットワークを隠すことができるので、内部ネットワークが不正アクセスの標的になることを防ぐことができます。

(iii) WAF (Web Application Firewall)

WAFは、Webサーバー、Webアプリケーションに特化したファイアウォールです。

SQLインジェクション*4クロスサイトスクリプティング*5の攻撃を防御します。

 

具体的には、アプリケーションゲートウェイでは行わない通信データの中身のチェックを行うことでWebサーバーなどを守ります。

(iv) IDS (Intrusion Detection System)

サーバやネットワークの外部との通信を監視し、不正侵入や攻撃を検知するシステムをIDSと呼びます。

IDSには、ネットワーク上に設置するNIDS (Network Intrusion Detection System) と各コンピュータ上に設置するHIDS (Host Instrusion Detection System) の2つにわかれます。

(2) DMZ (DeMilitarized Zone)

インターネットと内部ネットワークの両方から隔離された中間的な領域のことをDMZ(非武装地帯)と呼びます。

インターネットに公開するWebサーバー、公開用メールサーバー、DNSサーバーなどは、外部からのアクセスを許可しているため、不正アクセスにあう危険性が高いです。

 

そこで、インターネットと内部ネットワークの両方からファイアウォールで隔離された領域(DMZ)に、Webサーバーなどの外部からのアクセスを許可するサーバーをおきます。

f:id:momoyama1192:20200311110115g:plain

 

このようにすることで、DMZにあるWebサーバーやメールサーバーが不正アクセスにあっても、内部ネットワークへの被害を防止することができます。

(3) ペネトレーションテスト

様々な手法を用いて内部ネットワークに攻撃し、セキュリティ上の脆弱性やセキュリティ設定に問題がないかを確かめるテストのことをペネトレーションテストと呼びます。

避難訓練や模擬戦みたいなものです。

 

実際にペネトレーションテストを行い、どこに脆弱性(セキュリティホール)があるのか、どこまで攻撃を食い止めることができるのかなどを確認することはセキュリティ対策として重要なことなのです。

 

2.暗号化技術

インターネットでは、様々なネットワーク同士がつながっており、データを送り合います。

しかし、ただ単にデータを送り合う場合、送っているデータの中身が簡単に見れてしまいます。万が一送っているデータの中に「パスワード」や「機密情報」のような第3者見られたらやばいデータがあったら大変まずいことになりますね。

 

そこで、どうすれば第3者に見られることなくデータを送ることができるのかを考えてみましょう。

(1) ネットワーク上の危険

まずは、ネットワーク同士でデータを送り合うときに、どんな危険があるのかを見ていきましょう。

(i) 盗聴

データの送信途中で、データの中身を第3者に盗み見されてしまう危険性です。

 

特に「パスワード」や「機密情報」などは盗聴されたら大変なことになりますね。

(ii) 改ざん

データの送信途中で、データの中身を第3者に書き換えられてしまう危険性です。

 

「100万円で取引しましょう」というのが第3者により「10万円で取引しましょう」と勝手に書き換えられたら大変なことになります。

(iii) なりすまし

第3者が別人になりすまし、データを送受信できてしまう危険性です。

 

「明日会いましょう」と言ってきた相手が実は全然違う相手だった… なんてことがあったらとても怖いです。

(2) どうやって危険から守るの?

「そんな危険の多いネットワークなんて危険だ! 使わないほうがいい!」と思うかもしれません。しかし、ネットワークを通じたデータの送受信は(手紙や郵便などに比べて)圧倒的に早くデータを送れるという大きなメリットがあります。

 

では、どうすればネットワーク通信を安全に使えるでしょうか。

方法はいろいろ考えられますが、

  1. 通信経路を第3者に見られないようにする
  2. 通信経路はそのままで、第3者がデータの中身を見てもわからないようにする

などが考えられます。しかし、1の方法では大規模なネットワークを改修するなどの必要があるのであまり現実的ではありません。

なので、実際には通信経路はそのままで、第3者にデータを見られても何が書かれているかわからないように2の方法が使われます。

(3) 暗号・暗号化とは

見ただけでは何が書かれているか全くわからないようなメッセージ(やデータ)を暗号と呼びます。

暗号が解読できるのは、データをやり取りする関係者だけです。具体的には、関係者だけわかるルールでメッセージを読めなく(暗号化)したり元のメッセージに戻したり(復元)します。

 

具体的に暗号の例を1つ見てみましょう。

f:id:momoyama1192:20200311110119g:plain

例えば、データを送るAさんがBさんに「かわいいすき」というメッセージを送るとします。

 

しかし、このままではAさんからBさんに送るメッセージがだだ漏れになってしまいます。

そこで、送信者のAさんと受信者のBさんは、「1文字後ろにずらした」暗号でメッセージを送ることにしました。

(受信者のBさんは逆に「1文字前にずらす」ことで元の文章に戻すことができます。)

 

送信者、受信者以外は「1文字後ろにずらした」ことを知らないので第3者に送っている途中を見られても「???」となり、データが盗まれる心配がなくなります。

(4) 2つの暗号方式

まず、「盗聴」を防ぐ技術である共通鍵暗号方式と公開鍵暗号方式について、それぞれの違いを踏まえながら説明していきたいと思います。

(i) 共通鍵暗号方式(秘密鍵暗号方式)

共通鍵暗号方式は、元のデータ(平文と呼びます)を暗号化したデータ(暗号文と呼びます)するために必要な鍵と、暗号化したデータを元のデータに戻す鍵が共通な暗号形式です。

リアルの世界にある鍵と似ていますね*6。 

f:id:momoyama1192:20200311110124g:plain

送信の流れとしては、まず送信者がデータを秘密鍵を使って暗号化してから送ります。

次に、データの受信者はそのままだと暗号化されてて読めないので、暗号化されたデータを同じ秘密鍵を使って復元したら無事送信完了です。

 

共通鍵暗号方式では、暗号化する鍵と、元に戻す鍵が同じなので、鍵が盗まれないように秘密にしておく必要があります。(秘密にしておく必要がある鍵なので、秘密鍵と呼ばれます。)

 

代表的な共通鍵暗号方式には、DES (Data Encryption Standard), AES (Advanced Encryption Standard) があります*7

(ii) 公開鍵暗号方式

しかし、共通鍵暗号方式ではもとに戻す鍵を事前にデータを送受信する人すべてに確実かつ安全に(盗まれないように)届ける必要があります。

10人くらいかつ組織内とかであれば別に問題はありませんが、これがあちこちにいる10,000人に配るとなれば現実的ではなくなっちゃいます。

 

そこで使われるのが公開鍵暗号方式です。

f:id:momoyama1192:20200311110128g:plain

公開鍵暗号方式では、データを暗号化する鍵をばらまいちゃいます。鍵をばらまくので、事前に鍵を渡す必要はありません

この鍵のことを公開鍵と呼びます。公開鍵の特徴は、暗号化はできても復号はできず、一方通行の鍵となっているところです。そのため、鍵を公開しても全く問題がないのです!

誰でも鍵を閉めることはできても、開けるのは本人以外はできないというところはリアル世界にある南京錠と似ていますね

 

復号する鍵はデータを受信する人本人しか知らない専用の秘密鍵を使います。

秘密鍵は自分以外の人は知らないので、安全にデータを送受信できます。

 

送信の流れとしては、まず送信者が、あらかじめ受信者側が一般に公開している公開鍵で暗号化を行います。

次に、データの受信者は、暗号化されたデータを自分だけの秘密鍵を使うことで復元ができ、安全に送信が完了します。

 

メリットばっかりの公開鍵暗号方式ですが、デメリットとして暗号化・復号に時間がかかる点があります。

 

代表的な公開鍵暗号方式には、桁数の多い数字を素因数分解することが大変難しいことを利用しているRSAがあります。

 

共通鍵暗号方式・公開鍵暗号方式の比較

両者ともデータの「盗聴」を防ぐ技術

共通鍵暗号方式

  • 暗号化と復号に同じ秘密鍵を用いる
  • 秘密鍵が盗まれないように注意する必要あり
  • データの暗号化・復号の速度は早め
  • 小規模向き
  • 代表的アルゴリズム:DES, AES

公開鍵暗号方式

  • 暗号化の鍵は事前に公開、復号鍵は自分自身だけのもので公開しない
  • 受信者の公開鍵で暗号化し、受信者の秘密鍵で復号
  • データの暗号化・復号の速度は遅め
  • 大規模向き
  • 代表的アルゴリズム:RSA
    (桁数の多い素因数分解が困難なことを利用したアルゴリズム)

(5) デジタル署名

3つの脅威の中で主に「改ざん」を防止するために用いられている技術がデジタル署名です。

(i) デジタル署名のイメージ

まずはデジタル署名のイメージについて説明したいと思います。

 

先程、公開鍵暗号方式では、公開鍵を使って暗号化し、ペアとなる秘密鍵を使って復号すると説明しましたね。

この逆パターン、つまり秘密鍵を使って暗号化し、ペアとなる公開鍵を使って復号することを考えてみましょう。

 

f:id:momoyama1192:20200311110133g:plain

秘密鍵は公開していないので、自分だけしか持っていません。さらに、秘密鍵で暗号化した後はデータ自体が読めないため、復号するまで誰もデータを書き換えることはできません。

そのため、自分が持っている秘密鍵で暗号化を行い、次に送信者が公開している公開鍵で元通り復号することができれば本当に送信者であることを証明することができますね*8

 

これがデジタル署名の大まかな仕組みです!

 

なお、厳密に説明すると「受信者の秘密鍵で暗号化し、受信者が公開している公開鍵で復号することでデジタル署名が作れる」というのは正しくありません。

(ですが基本情報などの試験では、受信者の秘密鍵で暗号化し、受信者が公開している公開鍵で復号することがデジタル証明の仕組みだと過去問で出題されています……。)

 

正しくない詳細の理由については、terapotanさんの下の記事にかかれているため、そちらをご覧ください。

terapotan.hatenablog.jp

(ii) 実際のデジタル署名の仕組み

実際には、本文全体は暗号化せず、メッセージダイジェストと呼ばれる短い要約データを元に復元できないように作成、暗号化ハッシュ化と呼ばれます)し、受信者が送られてきたデータを同じようにハッシュ化し、全く同じ結果になるかどうか確認することで、本人であるかを確認しています。

(iii) 応用例

デジタル署名は、データの他にもOS、ソフトウェア、ドライバなどが改造されてないかも確認することができます。こうしたデジタル署名を応用した技術にPCの起動時に署名を確認し、マルウェアが実行させるのを防ぐセキュアブートがあります。

 

なお、つぎに説明する認証局と併用することで、デジタル署名で「なりすまし」を防ぐこともできます。

(6) 認証局 (CA)

先ほど説明した公開鍵暗号形式では、公開鍵を誰にでも公開しているため、第3者が偽物の公開鍵を公開する可能性がありますね。

 

これだと、3つの危険のうちの1つである「なりすまし」を完全に防ぐことができません。

そこで、信用できる第3者が「本当に本人の公開鍵ですよ」というのを証明する認証局 (CA・Certificate Authority)が考えらえました。

 

また、認証局に認証された公開鍵を用いて、公開鍵暗号方式で安全に通信を行う仕組みのことを公開鍵基盤(PKI・Public Key Infrastructure)と呼びます。

 

もし、公開鍵基盤がなかった場合、公開鍵暗号やデジタル署名など公開鍵を使っている様々な暗号技術が脅かされてしまう可能性があります。

 

 

暗号化のまとめ

データの送信時に発生する「盗聴」・「改ざん」・「なりすまし」の3つの危険を防ぐために暗号化を行う。

共通鍵暗号方式・公開鍵暗号方式 →  「盗聴」を防ぐ

デジタル署名 →「改ざん」を防ぐ

認証局 (CA) → 「なりすまし」を防ぐ

 

(7) その他暗号化技術

(i) SSL・TLS

インターネット上で個人情報、パスワードなどを暗号化して送信するプロトコルのことをSSL(Secure Sockets Layer)といいます。

また、SSLを標準化したTLS(Transport Layer Security)という技術もあり、SSL/TLSとまとめて呼ばれることもあります。

(ii) HTTPS

HTTPSは、SSLの暗号化技術をHTTPに実装したものを表します。

たまにURLが「http://」からではなく、「https://」から始まっているサイトがありますね。

URLが「https://」から始まるサイトは、SSLの暗号化技術により、「個人情報やパスワード」などが暗号化されて通信されるので、より安全にやり取りすることができます。

(iii) VPN

VPNは、暗号化の技術を利用して、インターネットを仮想的な内部ネットワークとして利用する技術です。

VPNを利用することで、たとえ公衆Wi-Fiのような危険なネットワークからでもあたかも(セキュリティが守られているであろう)組織内ネットワークにいるかのようにアクセスできます。

 

余談ですが、中国では、GoogleやTwitterを含む海外の多くのサイトがアクセスできないため*9、VPNを用いて「中国外の仮想的なネットワーク」につなぐことにより、アクセス制限を回避することが行われています。

 

3.練習問題

では、今回説明した部分がちゃんと頭に入っているかを、実際に基本情報の午前問題を10問ほど解くことで確認していきましょう。

練習1

公開鍵暗号方式に関する記述として,適切なものはどれか。

[平成22年春期 問42]

ア:AESなどの暗号方式がある。
イ:RSAや楕円(だえん)曲線暗号などの暗号方式がある。
ウ:暗号化鍵と復号鍵が同一である。
エ:共通鍵の配送が必要である。

解答1

解答:イ

残りの選択肢はすべて共通鍵暗号方式の説明です。

共通鍵暗号方式の1つに、桁数の多い数の素因数分解が難しいことを利用したRSAはたまに基本情報に出てくるので頭にいれておきましょう。

練習2

IDSの機能はどれか。

[基本情報平成30年秋期 問42]

ア:PCにインストールされているソフトウェア製品が最新のバージョンであるかどうかを確認する。
イ:検査対象の製品にテストデータを送り,製品の応答や挙動から脆(ぜい)弱性を検出する。
ウ:サーバやネットワークを監視し,侵入や侵害を検知した場合に管理者へ通知する。
エ:情報システムの運用管理状況などの情報セキュリティ対策状況と企業情報を入力し、組織の情報セキュリティへの取組み状況を自己診断する。

解答2

解答:ウ

IDSは、サーバやネットワークの外部との通信を監視し、不正侵入や攻撃を検知するシステムをさします。(監視のみで、通信を遮断するなどはしない点がポイント)

よって、答えはウ。

問題3

Xさんは,Yさんにインターネットを使って電子メールを送ろうとしている。電子メールの内容を秘密にする必要があるので,公開鍵暗号方式を用いて暗号化して送信したい。電子メールの内容を暗号化するのに使用する鍵はどれか。

[基本情報平成27年秋期 問38]

ア:Xさんの公開鍵
イ:Xさんの秘密鍵
ウ:Yさんの公開鍵
エ:Yさんの秘密鍵

解答3

解答:ウ

公開鍵方式では、暗号化するのに公開鍵、復号するのに秘密鍵を使います。

今回は暗号化するので、公開鍵ですね。(アとウの2つにしぼられる。)

ここで、復号化するためには受信者Yさん本人の秘密鍵が必要ですよね。なので、暗号化するためには同じYさんの鍵でないと受信者Yさんが復号できません。

よって答えはウ。

練習4

SSL/TLSを利用することによって実現できるものはどれか。

[基本情報 平成19年秋期 問67]

ア:クライアントサーバ間の通信の処理時間を短縮する。
イ:クライアントサーバ間の通信を暗号化する。
ウ:プラウザとWebサーバの通信の証跡を確保する。
エ:メールソフトからWebサーバへのSMTP接続を可能にする。

解答4

解答:イ

インターネット上で個人情報、パスワードなどを暗号化して送信するプロトコルをSSL/TLSと呼びます。

よって解答はイ。

練習5

公開鍵暗号方式を採用した電子商取引において,認証局(CA)の役割はどれか。

[基本情報平成28年春期 問39]

ア:取引当事者間で共有する秘密鍵を管理する。
イ:取引当事者の公開鍵に対するディジタル証明書を発行する。
ウ:取引当事者のディジタル署名を管理する。
エ:取引当事者のパスワードを管理する。

解答5

解答:イ

認証局 (CA・Certificate Authority) は、信用できる第3者が「本当に本人の公開鍵ですよ」というのを証明するものでしたね。

よって答えはイとなります。

(アは秘密鍵→共通鍵とすれば正解)

練習6

送信者から電子メール本文とそのハッシュ値を受け取り,そのハッシュ値と,受信者が電子メール本文から求めたハッシュ値とを比較することで実現できることはどれか。ここで,受信者が送信者から受け取るハッシュ値は正しいものとする。

[平成24年春期 問40]

ア:電子メールの送達の確認
イ:電子メール本文の改ざんの有無の検出
ウ:電子メール本文の盗聴の防止
エ:なりすましの防止

解答6

解答:イ

ハッシュ値は、送信者が暗号化を行った時点で変えられなくなります。

受信者が求めたハッシュ値と送信者が送ってきたハッシュ値を確認し、一致していることがわかれば、送信者が送った文章から内容が変わっていない、つまり改ざんがされていないことがわかります。

よって答えはイ。

練習7

公開鍵暗号方式の暗号アルゴリズムはどれか。

[基本情報平成29年春期 問40]

ア:AES
イ:KCipher-2
ウ:RSA
エ:SHA-256

解答7

解答:ウ

RSAは公開鍵暗号方式の代表的アルゴリズム。

アとイは共通鍵暗号方式のアルゴリズム(AESは結構頻出)、エはランダムに256桁のハッシュ値を出力するハッシュ関数。

練習8

データベースで管理されるデータの暗号化に用いることができ,かつ,暗号化と復号とで同じ鍵を使用する暗号化方式はどれか。

[平成27年春期 午前問39]

ア:AES
イ:PKI
ウ:RSA
エ:SHA-256

解答8

解答:ア

暗号化と復号が同じ鍵なので、共通鍵暗号方式であることがわかる。

共通鍵暗号方式の有名な例の1つにAESがあることは頭にいれておきましょう。

なお、他の選択肢は

イ:公開鍵基盤のことで、暗号化の方式ですらない。
ウ:公開鍵暗号方式のアルゴリズム。
エ:ハッシュ関数(もとに戻せない)

練習9

クライアントとWebサーバの間において,クライアントからWebサーバに送信されたデータを検査して,SQLインジェクションなどの攻撃を遮断するためのものはどれか。

[基本情報平成28年春期 午前問43]

ア:SSL-VPN機能
イ:WAF
ウ:クラスタ構成
エ:ロードバランシング機能

解答9

解答:イ

WAFは、Webサーバー、Webアプリケーションに特化したファイアウォールで、SQLインジェクションやクロスサイトスクリプティングなどから守ることができます。答えはイ。

練習10

1台のファイアウォールによって,外部セグメント,DMZ,内部ネットワークの三つのセグメントに分割されたネットワークがある。

このネットワークにおいて,Webサーバと,重要なデータをもつDBサーバから成るシステムを使って,利用者向けのサービスをインターネットに公開する場合,インターネットからの不正アクセスから重要なデータを保護するためのサーバの設置方法のうち,最も適切なものはどれか。ここで,ファイアウォールでは,外部セグメントとDMZ間及びDMZと内部ネットワーク間の通信は特定のプロトコルだけを許可し,外部セグメントと内部ネットワーク問の通信は許可しないものとする。

[基本情報平成26年秋期 午前問40]

ア:WebサーバとDBサーバをDMZに設置する。
イ:WebサーバとDBサーバを内部ネットワークに設置する。
ウ:WebサーバをDMZに,DBサーバを内部ネットワークに設置する。
エ:Webサーバを外部セグメントに,DBサーバをDMZに設置する。

解答10

解答:ウ

インターネットに公開するWebサーバー、公開用メールサーバー、DNSサーバーなどは攻撃の被害を受けやすいため、DMZと呼ばれる内部ネットワークとインターネットの両方に隔離された領域におかれます。

また、DBサーバーはインターネット上に公開しなくてもよいので、DMZにおいてしまうと攻撃のリスクが高まります。そのため、DBサーバーは内部ネットワークに置く必要があります。

よって答えはウ。

4.さいごに

今回は、基本情報対策として、うさぎでもわかるセキュリティの後編についてまとめました。

前回の前編、後編と合わせてセキュリティの知識が入り、理解が深まれば本当に幸いです。

 

なにかおかしい点などがあればDMやコメントなのでお知らせいただけたらありがたいです!

*1:データを小刻みに刻んだもの。

*2:ふるいは、細かい砂や水は通しますが、石は通しませんよね。

*3:ポート番号やIPアドレスで通信元がわかるため。

*4:入力フォームにSQLを操作する文字列を入れることでデータを盗んだり、データを改ざんする攻撃のこと。

*5:動的なWebサイトに悪意のあるスクリプトを入れることで、利用者を偽のページに移動させ、個人情報などを盗む攻撃のこと。

*6:ロックするとき、開けるときともに同じ鍵で開けますよね。

*7:DESだけだと、安全性が怪しいので最近はDESの暗号化を3重に行うトリプルDESがよくつかわれます。

*8:秘密鍵は送信者本人しか持ってない上、暗号化したあとは誰もデータが読めないため。

*9:金盾 / グレートファイアフォールという超厳しいファイアウォールがあるため