はじめに
応用情報の午前試験ではテクノロジ系、マネジメント系、ストラテジ系の3つの分野から問題が出題されます。
今回はテクノロジ系の中のセキュリティについての知識を整理しようと思います。
①暗号化について
暗号化とは、情報を第三者に読まれないように、特定のルール(アルゴリズム)で変換することである。対して、暗号化された情報を元の情報に戻すことを復号という。
暗号化や復号のルールに代入する情報をキーと呼び、キーを持つ人以外が暗号化された文書を読めないようにしておく必要があるため、キーを他人が入手できないよう厳重に管理することが求められる。
また、不正がないように暗号化の変換ルール(暗号化方式)を複雑にして容易に推測できないようにすることも必要であることから、暗号化に必要な要素としては、キーの厳重な管理と推測の難しい暗号化方式をとることが挙げられる。
暗号化方式には以下のような種類がある。
1. 共通鍵暗号方式(対称鍵暗号)
暗号化と復号に同じ鍵を使う。
高速で大量のデータ処理に向いている。
鍵の配布が課題。
代表的な方式:
AES(Advanced Encryption Standard):現在主流の共通鍵暗号。
DES(Data Encryption Standard):古い方式で、今は脆弱とされている。
2. 公開鍵暗号方式(非対称鍵暗号)
暗号化と復号に異なる鍵(公開鍵・秘密鍵)を使用。
公開鍵で暗号化 → 秘密鍵で復号
セキュリティは高いが、処理が遅い。
代表的な方式:
RSA:広く使われる公開鍵暗号。
楕円曲線暗号(ECC):RSAよりも短い鍵長で同等の安全性。
3. ハイブリッド暗号方式
共通鍵と公開鍵を組み合わせる。
データ:共通鍵暗号で高速に暗号化
鍵:公開鍵暗号で安全に送信
また、無線LANにおける通信の暗号化も存在する。
| 暗号化方式 | 概要 | 現在の評価 |
|---|---|---|
| WEP(Wired Equivalent Privacy) | 初期の暗号化方式。RC4を使用。鍵の長さは40~104bit。 | 非常に脆弱(使用すべきでない) |
| WPA(Wi-Fi Protected Access) | WEPの改良。TKIPを使用。 | 脆弱性が指摘されているが、WEPよりはマシ |
| WPA2 | AESを使用(CCMPモード)。セキュリティ強化。 | 現在も広く使われている(安全) |
| WPA3 | 2018年登場。SAE(Simultaneous Authentication of Equals)採用でより安全。 | 最新で最も安全だが、対応機器が必要 |
②認証について
利用者の識別、認証、権限管理を行うことをアクセスコントロールといい、アクセスコントロールを実装したシステム構成を認証システムという。
認証とはコンピュータシステムを利用する個人が本当に利用する権限を保持しているか否かを確認するための行為である。
認証には以下の種類がある。
| 認証要素の種類 | 内容 | 例 |
|---|---|---|
| 知識情報(知っていること) | ユーザーだけが知っている情報 | パスワード、PINコード、秘密の質問など |
| 所持情報(持っているもの) | ユーザーが所持しているもの | スマートフォン、ICカード、トークンなど |
| 生体情報(本人の特徴) | ユーザー自身の身体的な特徴 | 指紋、顔、虹彩、声紋、静脈など |
1.パスワード認証
知識情報の認証として、パスワード認証方式がある。
パスワード認証方式では、利用者IDとそれに対応するパスワードによって本人であることを確認する仕組みとなっている。
パスワードの強度(総当たり攻撃(ブルートフォース攻撃)にかかる試行回数の最大値)は以下のように表すことができる。
パスワードの強度=M^n
M=使用可能な文字の種類
n=パスワードの長さ(文字数)
2.チャレンジレスポンス認証
暗号化していないパスワードをネットワーク上で利用すると送信したパスワードを読み取られる危険性がある。そこで、その脆弱性を解消するための方式の1つとして チャレンジレスポンス認証 というものがある。
チャレンジレスポンス認証では、
①クライアントがユーザIDを送信する。
②サーバ → クライアント:チャレンジ送信
例:ランダムな数値(ノンス: nonce)やトークン
③クライアント:チャレンジと秘密(パスワード)を使って演算
例:ハッシュ化や暗号化など
例:H(password + challenge) のような形でレスポンス生成
④クライアント → サーバ:レスポンス送信
⑤サーバ:同じ手順でレスポンスを計算し、照合
の手順で認証が行われる。
3.バイオメトリクス認証(生体認証)
個々人ごとに異なる身体的・行動的特徴を利用して本人認証を行う技術のこと。
以下のような種類がある。
| 種類 | 説明 |
|---|---|
| 指紋認証 | 指の皮膚の模様を読み取る |
| 顔認証 | 目・鼻・輪郭などを解析 |
| 虹彩認証 | 目の虹彩(黒目の周り)を読み取る |
| 静脈認証 | 指や手の血管の形状を利用 |
| 音声認証 | 声の波形や話し方の特徴を解析 |
③デジタル署名について
デジタル署名とは、「その文書が本人によって作成されたこと」と「改ざんされていないこと」を証明する技術のことである。
デジタル署名の仕組みは以下である。
①送信者が文書のハッシュ値を計算
→ 例:SHA-256 で文書の要約を作る
②そのハッシュ値を送信者の秘密鍵で暗号化
→ これが「署名データ」
③受信者は送られてきた文書と署名を受け取る
④受信者側で、
→ 文書のハッシュ値を再計算する
→ 署名データを送信者の公開鍵で復号して元のハッシュ値を取り出す
→ 両者が一致すれば、「本人で、かつ改ざんなし」と認められる
④PKIについて
PKI(公開鍵基盤)とは、公開鍵暗号を安全に運用・管理するための信頼の枠組みである。
公開鍵は自由に配布できるが、「その鍵が本当に本人のものか?」が問題になる。PKIは、「その公開鍵が正しいことを証明する」ための仕組みを提供している。
PLIの主な要素は以下である。
| 要素 | 役割 |
|---|---|
| CA(認証局) | 公開鍵と本人の関係を証明し、電子証明書を発行 |
| RA(登録局) | 本人確認を行い、CAに証明書発行を依頼 |
| 電子証明書 | 「この公開鍵はこの人のものですよ」という第三者の証明書(署名付き) |
| CRL(失効リスト) | 無効になった証明書のリスト(例:秘密鍵漏洩時) |
⑤TLS(SSL)について
SSL/TLSとは、インターネット上の通信を暗号化するためのプロトコルで、特に「WebサイトのHTTPS通信」で使われている。
使用する目的は以下である。
| 要素 | 内容 |
|---|---|
| 暗号化 | 通信内容を第三者に読まれないようにする |
| 認証 | 相手が本当に正当なサーバ(or クライアント)であることを確認 |
| 改ざん検出(完全性) | 途中で通信内容が改ざんされていないことを検証 |
| 否認防止(限定的) | 一部のケースでは署名付き証明書で提供される(主にサーバ認証) |
また、TLS の通信の流れは以下である。
①クライアント(ブラウザ)→ サーバ:Hello送信
利用可能な暗号スイート、TLSのバージョンなどを提示
②サーバ → クライアント:証明書など送信
公開鍵付きのサーバ証明書を送る(PKIによって署名されたもの)
③クライアント側で証明書の検証
有効期限、発行元(CA)、失効リストなどをチェック
④セッション鍵の生成・共有(鍵交換)
公開鍵暗号や Diffie-Hellman などを使って共有鍵を確立
⑤その後の通信は共通鍵で暗号化
高速な共通鍵暗号(AESなど)で通信