ITセキュリティの基礎
データを扱う仕事には、便利さと同じくらい「安全に扱う責任」がついて回ります。このページでは、情報セキュリティの土台となる3要素(機密性・完全性・可用性)、システムの各レイヤーにおけるアクセスレベルの管理、そして外部サービス連携で使われるOAuthという認可の仕組みを扱います。
次のレッスンで扱う暗号化技術の土台にもなる内容ですので、まずは「何を守るのか」という基本の考え方をしっかり押さえましょう。
1. セキュリティの3要素 ― 機密性・完全性・可用性
情報セキュリティの基本は、機密性・完全性・可用性という3つの要素(頭文字をとってCIA※1と呼ばれます)を守ることだとされています。それぞれ、家の管理に例えるとイメージしやすくなります。
| 要素 | 意味 | 身近な例え |
|---|---|---|
| 機密性 | 許可された人だけが情報にアクセスできること | 家の鍵をかけ、合鍵を持つ人だけが入れるようにする |
| 完全性 | 情報が改ざん・破壊されず、正確な状態を保っていること | 家に置いた荷物が、誰かに勝手に中身を差し替えられていないこと |
| 可用性 | 必要なときに情報やシステムに問題なくアクセスできること | いつ帰宅しても、鍵さえあれば家にちゃんと入れること |
- 顧客の個人情報に、担当者以外がアクセスできないようパスワードを設定する → 機密性
- 売上データが誤って書き換えられないよう、変更履歴を記録し、承認者だけが編集できるようにする → 完全性
- サーバーが1台故障しても、予備のサーバーに切り替えてシステムを止めないようにする → 可用性
この3要素はどれか1つを優先すればよいというものではなく、バランスが重要です。たとえば、機密性を高めすぎて厳重なパスワードを何重にも要求すると、必要なときにすぐアクセスできず可用性が損なわれる、といったトレードオフが起こり得ます。
セキュリティの3要素(機密性・完全性・可用性)は、DS検定で「具体的な事例を用いて説明できる」ことが求められる頻出項目です。それぞれの言葉の定義だけでなく、身近な事例に当てはめて説明できるようにしておきましょう。
機密性・完全性・可用性の頭文字をとってCIAって呼ぶよ。「見せない・変えさせない・止めない」って覚えると忘れにくいかも!
2. レイヤーごとのアクセスレベルを管理する
機密性を守るための代表的な手段がアクセスレベルの設定※4です。システムは、OS(基本ソフト)、ネットワーク、アプリケーション、データという複数の層(レイヤー)から成り立っており、それぞれの層で「誰が」「どこまで」操作・閲覧できるかを設定する必要があります。
たとえば、一般社員には特定のフォルダの閲覧権限だけを与え、システム管理者にはサーバー設定を変更できる権限まで与える、といったように、役割に応じて権限の範囲を分けます。すべての社員に管理者権限を与えてしまうと、誤操作や不正アクセスのリスクが一気に高まります。
- OS層 ― 一般社員のパソコンには管理者権限を与えず、ソフトの追加インストールを制限する
- ネットワーク層 ― 社外からは社内システムに直接アクセスできないようにファイアウォールで制限する
- アプリケーション層 ― 給与システムには人事部だけがログインできるようにする
- データ層 ― 同じ顧客データベースでも、営業担当は閲覧のみ、管理者は編集も可能に設定する
「必要な人に、必要な範囲の権限だけを与える」という考え方は、最小権限の原則※5と呼ばれます。権限を絞るほど、万一情報が漏れたときの被害も限定的にできます。
3. OAuthによる認可 ― アクセストークンを使ったAPI呼び出し
外部サービスと連携してデータを取得する際、ID・パスワードそのものを他社サービスに渡すのは危険です。そこで使われる仕組みがOAuth※2です。OAuthは、パスワードの代わりにアクセストークン※3という「有効期限つきの引換券」を発行し、その引換券を使って必要な範囲のデータだけをやり取りする認可の仕組みです。
たとえるなら、ホテルのフロントに自宅の合鍵をそのまま預けるのではなく、「このホテルの部屋だけ、今日だけ入れるカードキー」を発行してもらうようなものです。仮にそのカードキーが漏れても、被害は限定的な範囲・期間にとどまります。
GET https://api.example.com/v1/data
Authorization: Bearer ya29.A0ARrdaM9...(アクセストークン)
OAuthに対応したデータ提供サービスを利用する場合、まず認可サーバーに対してユーザーが利用を許可し、その結果としてアクセストークンが発行されます。プログラムは、このアクセストークンをリクエストに添えてREST APIを呼び出すことで、パスワードを直接渡すことなく必要なデータを取得できます。
- 会計ソフトに銀行口座の入出金明細を自動連携するとき、銀行のID・パスワードではなくOAuthのアクセストークンを使う
- マーケティング分析ツールが、SNSアカウントの投稿データをAPI経由で取得する際にOAuth認可を利用する
OAuthのポイントは「パスワードそのものを渡さない」ことです。アクセストークンには有効期限や利用範囲(スコープ)が設定されるため、万一漏れても被害を限定できます。
「パスワードを直接渡さなくていい」のがOAuthの一番のメリット。カードキーみたいに、期限や範囲が決まった引換券をイメージすると分かりやすいよ。
認証を強くする ― 多要素認証
パスワードだけに頼った認証は、漏えいや使い回しによって突破されるリスクがあります。そこで近年広く使われているのが多要素認証※6です。これは、「知識情報(本人だけが知っていること)」「所持情報(本人だけが持っているもの)」「生体情報(本人自身の身体的特徴)」という3種類の要素のうち、2つ以上を組み合わせて本人確認を行う仕組みです。
- 知識情報 ― パスワードや暗証番号(本人の頭の中にある情報)
- 所持情報 ― スマートフォンに届くSMSコードや、認証アプリが表示するワンタイムパスワード(本人が持っているモノ)
- 生体情報 ― 指紋認証や顔認証(本人の身体そのもの)
注意したいのは、「パスワードを2つ入力させる」ことは多要素認証にはならないという点です。同じ種類(知識情報)を2つ重ねても要素は増えたことになりません。異なる種類の要素を組み合わせてこそ、多要素認証と呼べます。
まとめ
このページでは、ITセキュリティの基本的な考え方を見てきました。最後に振り返っておきましょう。
- セキュリティの3要素(CIA) ― 機密性・完全性・可用性を、具体的な事例とあわせて説明できるようにする
- アクセスレベルの管理 ― OS・ネットワーク・アプリケーション・データの各レイヤーで、役割に応じた権限設定を行う必要性を理解する
- OAuthとアクセストークン ― パスワードを渡さずに、認可サーバーが発行するアクセストークンを使ってREST APIを呼び出す仕組みを理解する
- 多要素認証 ― 知識情報・所持情報・生体情報のうち異なる2つ以上を組み合わせて本人確認を行う仕組みを理解する
次のレッスンでは、こうしたセキュリティ対策の中でも特に重要な要素技術である、暗号化技術について詳しく見ていきます。
- CIA(機密性・完全性・可用性) … Confidentiality(機密性)、Integrity(完全性)、Availability(可用性)の頭文字。情報セキュリティが守るべき3つの基本要素とされる。↩
- OAuth … パスワードそのものを渡すことなく、外部サービスに限定的なアクセス権限を与えるための標準的な認可の仕組み。↩
- アクセストークン … OAuthなどの仕組みで発行される、有効期限や利用範囲が限定された「引換券」のような文字列。これを使ってAPIにアクセスする。↩
- アクセスレベルの設定 … システムやデータに対して、利用者ごとに「閲覧のみ」「編集可」「管理者権限」などの操作範囲を制限・管理すること。↩
- 最小権限の原則 … 利用者には、業務に必要な最小限の権限だけを与えるべきだという情報セキュリティの基本的な考え方。↩
- 多要素認証 … 知識情報(パスワードなど)・所持情報(スマートフォンなど)・生体情報(指紋・顔など)のうち、異なる2種類以上を組み合わせて本人確認を行う認証方式。↩