セキュリティ 認証のセキュリティ

Categories:  MCA Security

1.認証のセキュリティ

コンピュータシステムでの情報セキュリティでは情報の機密性と完全性、可用性の保護が必要です。

可用性の保護に関しては適切なアクセスコントロールにより実現されますが、適切なアクセスコントロールの前提になるのは認証の機能です。

コンピュータセキュリティの世界で認証という言葉は以下の2種類の意味でつかわれています。

  1. システム利用ユーザーの権利の正当性の検証
  2. データの改ざん、差出人の詐称行為がされていないことの確認

そのうち前者に対しての認証は多くはアカウント名とパスワードによるパスワード認証が用いられています。そのほか、より高度な認証方法として現在はバイオメトリクス認証(生体認証)などの生態的特徴を用い個人を認証する方法もあります。ここではパスワード認証による脆弱性、脅威について記述いたします。

 

2.認証の脅威

パスワードによる認証による脅威としてパスワード解析とパスワード推測の二つの脅威があります。

(1)パスワード施行攻撃

  1. 単語辞書を用意し辞書内の単語をパスワードとしてログオンを試みる辞書攻撃
  2. すべての文字の組み合わせをパスワードとしてログオンを試みる、ブルートフォース攻撃、総当り攻撃と呼ばれる攻撃

(2)パスワードの盗聴

パスワードの盗聴はスニファングやリプレイ攻撃という手口でネットワークを盗聴することにより実行されますスニファニングとは英語のsuniffingのことで「クンクン嗅ぎまわる」を意味し認証にかんするパケットを盗聴しそこに含まれるユーザーアカウント、パスワードを盗聴します。

リプレイ攻撃とは正規の認証操作でやり取りされたパケットを攻撃者が盗聴してそれをそっくりそのまま送り付けることで認証の突破を図ろうとするものです。

こういったリプレイ攻撃への対抗策としてパケットに通し番号(シーケンスID)を割り当てる方法があります。その場合リプレイ攻撃によって過去に送信されたパケットの場合、同じ通し番号が使用されるため、リプレイ攻撃であるいと認識し認証を防ぐことができます。

[脅威への対策]

  1. IPSecなどの暗号化プロトコルを認証に使用
  2. CHAPなどのパスワード暗号化のプロトコルを用いネットワーク上に流さない認証方式の使用
  3. セッションごとに固有の暗号キーを使用
  4. セッションの有効期間情報を使用
  5. ワンタイムパスワードを用い毎回使用するパスワードの変更を実施

(3)ソーシャルエンジニアリング

ソーシャルエンジニアリングは物理的手段によりユーザーの盲点をついて様々な情報を入手する攻撃でパスワード推測にも用いられることがあります。これは人間に対して人的、心理的な手段を用いて情報を搾取する方法がソーシャルエンジニアリングと分類されています。

①ショルダーハック
パスワードやユーザーIDを入力している様子を背後から覗き見て攻撃に必要な情報を入手します。
②ゴミ箱あさり
ゴミ箱から物理的に情報を収集する方法です。
③管理者を装った聞き出し
システム管理者を装い虚偽の情報をねつ造して情報を搾取します。システム障害が発生してデータ復旧のため、パスワードが必要といった方法で情報の入手を行うため、警戒意識を持ち注意を払うことが必要です。
④個人情報からの推測
ターゲットとなるアカウントの個人情報を様々な方法で入手し設定されているパスワードを推測する手法です。社員名簿、名簿業者から氏名、住所、生年月日、家族構成、趣味の情報を入手しプロファイリングによりパスワードを推測します。対策としては個人情報やユーザー認証に必要な情報の推測が可能になるような手掛かりを第三者に与えない、あるいは個人情報と関連性のあるユーザーIDやパスワードを使用しないことが必要です。
 

3.パスワードの管理

(1)パスワードの強度

パスワードが第三者に推測や解析が行われるかどうかの指標としてパスワードの強度があります。強度は無関係の数値を使用していれば推測が困難になるため強度が高いといえます。

◆パスワード推測が困難なケース
・個人情報と無関係
・ランダムな文字列
◆パスワード解析が困難なケース
・長い文字列
・多くの文字種を含む
・単語として意味

(2)パスワードの管理

パスワード認証については本人以外は知りえないパスワードの入力が原則です。その為、メモ用紙、付箋などにパスワードを書き留めることはできる限りしない方法で管理する必要があります。

またパスワードを伝える場合は電話や口頭など盗聴が可能な伝達方法はせずシステム管理によって定められた方法で伝達する必要があります。

(3)ポリシー設定によるパスワードの強化

強固な認証システムの構築には強力なパスワードを適切に管理することが重要ですがこのルールをシステム側の設定により強制することが可能です。

①パスワードのポリシー設定
・パスワードの長さと変更禁止期間
・パスワードの有効期限
・パスワードに使用する文字
②アカウントのロックポリシー

アカウントロックポリシー設定はパスワード推測やオンラインでのブルートフォース攻撃に対して有効です。ロックアウトとは入力されたパスワードが間違っていることによるログオンの失敗があらかじめ設定された回数以上になった場合にそのアカウントでのログオンを拒否する機能のことです。

・アカウントトックアウトのしきい値
・ロックアウトカウンタのリセット
・ロックアウト期間
 

4.認証技術

(1)認証方式

ネットワークを通じて情報を送信する場合、パスワードの情報がそのままネットワークに送信された場合、第三者に盗聴される可能性が高くなります。そのためユーザーID、パスワードなどを使用し認証を行いドメイン、ワークグループへのログオンを行い情報のやりとりを行った方が安全です。windowsドメインやコンピュータにログインする際に以下に示すように複数の認証プロトコルを利用できるようになっています。

認証プロトコルとして次の4種類があります。

■Kerberos 認証
Active Directory ドメインへのログオン
■NTLMv.2 認証
Active Directory ドメインへのログオン/ドメイン/ワークグループ
■NTLMv1 認証
Active Directory ドメインへのログオン/ドメイン/ワークグループ
■LM 認証
Active Directory ドメインへのログオン/ドメイン/ワークグループ

(2)シングルサインオン

シングルサインオンでは個々のシステムの認証機能を認証サーバーに一元化し、認証サーバーはユーザー認証を行いその情報に基づいた権限をアプリケーションサーバーなどに通知します。このようなシングルサインオンシステムは Active Directory、RADIUS 、TACACS、 AAAサーバーにより実現されます。

①シングルサインオンの利点
管理者にとってはユーザー情報管理の一元化、ユーザーにとっては管理しなければならないパスワード情報の集約です。

(3)高度な認証技術

認証にはパスワード認証のように本人以外は知りえない知識をベースとするもの以外に本人以外は持っていないものを利用する方法、本人の身体的特徴を利用する方法があります。

  1. 知識:パスワード認証
  2. 物:鍵、 IDカード
  3. 身体的特徴:指紋、虹彩:認証装置が効果である傾向がある。

 

5.まとめ

(1)認証方法とは

  1. ・システムを利用しようとしているユーザーが正当な権利を持っていることの確認
  2. ・ネットワークを通じてやり取りされるデータが途中で改ざんされておらず差出人の情報も詐称されていないことの確認

(2)監査認証 (Audit Trail)

情報システムに関する様々な事象から最終結果にいたるまでの過程の追跡が行える仕組みのことで一般に証拠能力を持つログである。

(3)パスワード施行攻撃

辞書攻撃、ブルートフォース攻撃などがある。

(4)リプレイ攻撃

リプレイ攻撃とは正規の認証操作でやり取りされたパケットを攻撃者が盗聴してそれをそっくりそのまま送りつけることで認証の突破を図ろうとするもの。通信パケットそのものが再利用される。

(5)パスワードの強度

パスワードが第三者によって推測、快速されやすいかどうかをさす言葉としてパスワードの強度という言い方を使用することがある。

(6)ワンタイムパスワード

トークンと呼ばれるデバイスや専用のソフトウェアに PINなどのパスワードを入力し出力される数字列や文字列を一回限り有効の使い捨てパスワードとして用いるもの。

(7)ソーシャルエンジニアリング

管理者を装ってパスワードを聞き出すような技術的でない手段による攻撃をソーシャルエンジニアリングと呼ぶ

(8) AAAサーバー

ユーザー認証と権限の付与、ログの記録という3つの機能をもつ認証サーバーである。認証(Authentication)、認可(Authorization)、課金(Accounting)の頭文字をとってAAAサーバーと呼ばれる。代表的なものに RADIUS、TACACS 、Kerberosなどがあげられる。

(9)バイオメトリクス認証

身体的特徴による認証意方式であり、バイオメトリクス認証と呼ばれる。指紋、虹彩、声紋、筆跡、手の静脈パターンといった異なる内容を持つ。現在ではデバイスの低価格化やコンピュータの高性能化により広く普及するようになった。

(10)パスワードのポリシー

パスワード強化の為のパスワード作成の為のルールをシステム側で設定を行うこと。ローカルセキュリティポリシーとグループポリシーがある。

(11)アカウントロックアウトポリシー

ロックアウトとは入力されたパスワードが間違っていることによるログオンの失敗があらかじめ設定された回数以上になった場合にそのアカウントでのログオンを拒否する機能のことでロックアウトポリシーとは設定により取り決めを行うこと。

(12) Kerberos認証

UNIXなどで使用されている標準の認証プロトコルである。ログイン先はActiveDirectoryドメインであり、ログインに使用するクライアントOSは Windows 2000以降の機種に限定される。

(13)NTLM認証

Ver1と ver2があり認証プロトコルであり、 Windows95,98,NTがサポートされる。

セキュリティ コンピュータセキュリティ強化

Categories:  MCA Security

1.ファイルシステムへのセキュリティ強化

ファイルシステムの選択にはセキュリティ機構のある NTFSを使用するのが基本です。その他セキュリティを強化する上で注意する点として不要なコンポーネットは組み込まないようにすること、Administratorパスワード設定を行うことが必要です。
不必要なコンポーネントを組み込まないことの理由としては使用していない機能には注意がおろそかになりやすい為です。Administratorパスワードの設定を頻繁に行うことでハッカーからの総当たり攻撃などの脅威を防ぐことができます。
また、セキュリティを狙ってくるハッカーからの攻撃手法としては総当たり攻撃(辞書攻撃、ブルートフォース攻撃)と呼ばれる攻撃があり、これはさまざまな単語を手当たり次第試し、繰り返しログオンを試みる手法などがあります。

①NTFSファイルシステムの利点
・アクセス権設定などのセキュリティ機構がある
・ファイル操作の場合のログ機能により修復手段があることから耐障害性の面で優れている。

②Administratorパスワード設定を行う意義
・操作を実行できる権限を持つユーザーの資格情報の奪取を防ぐ
・ドメイン全体への攻撃、不正侵入を防ぐ

③不必要なコンポーネントを組み込まないことの意義
・セキュリティホールができるのを防ぐ(ウィルス感染を防ぐ)

 

 

2.ユーザーアカウントの管理

(1)セカンダリログオン

Windows2000から追加された機能であり、ログオン中のユーザーアカウントとは別のユーザーアカウントの資格を使ってアプリケーションを実行する機能です。 RUNASコマンドを使用する方法と別のユーザーアカウント使用する方法の2種類があります。
下の構文はRUNASを使用してmsa.mmcという名前のMMC管理コンソールをDOMAIN\Administratorユーザー資格で実行しています。Windows vistaではパスワードが設定されていないアカウントでは RUNASコマンドを実行することはできないので必ずパスワードを設定する必要があります。

■構文  RUNAS/USER:<ユーザー名>/profile”コマンド”
■使用例  RUNAS/USER:DOMAIN\administrator/profile”mmc c:\windows\system32\msa.mmc”

 

(2)ユーザーアカウント制御

WindowsVistaではシステムを保護する目的でユーザーアカウント制御という新しいセキュリティ機能が追加されています。ユーザーアカウント制御が有効になっている場合は Administratorsグループであってもほとんどのアプリケーションを標準ユーザーと同様に最小限の権限で実行が可能となっています。
また承認して管理者特権をもつ権限をえてから実行する場合を昇格と呼んでいます
ユーザーアカウントについては使用していないアカウントは不正侵入に悪用されやすいため、無効化しておくことをお勧めします。

 

 

3.セキュリティ基礎用語

①NTFS

セキュリティ機構のあるファイルシステムのこと。

②アクセス権

重要なファイル /フォルダに対して、特定のユーザー、グループ以外アクセスできないように設定すること。

③ブルートフォース攻撃

様々な単語を手当たり次第に試しながら繰り返しログオンを試みる攻撃手法のこと。ブルートフォース攻撃、辞書攻撃とよばれる。

④ビルトインユーザー

ビルトインは組み込み済み、備え付けの意味を持ち Windowsセットアップ時に自動的に作成され、削除できないユーザーアカウントやグループのこと。

⑤Administrator

管理者権限を持つユーザーアカウント。

⑥ユーザーアカウントの無効化

使われなくなったユーザーアカウントは不正侵入に悪用されやすい為、使われなくなったアカウントは無効化しておいたほうがよい。

⑦ SID

Windowsの内部ではユーザーアカウントは SIDという一意の識別子で識別されており、表示される名前を変更しても Windows内部では同一のユーザーアカウントとして扱われる。

⑧セカンダリログオン

Windows2000 から追加された機能であり、ログオン中のユーザーアカウントとは別のユーザーアカウント資格を使ってアプリケーションを実行する機能である。

⑨RUNASコマンド

RUNASコマンドはコマンドプロンプトで使用するコマンドでありセカンダリログオンの為に使用される。

⑩ユーザーアカウント制御 (UAC:User Account Control)

Windows Vista以降で追加された機能であり、システムを保護する目的で Administratorsグループユーザーであっても標準ユーザと同様に最小限の権限で実行することができる。管理者の特権が必要なアプリケーションを実行する場合はユーザーに対して許可を求める画面が表示される為、承認して管理者特権を持つ権限をえてから実行可能となる、この管理者特権を持つ権限を得ることを昇格と呼ぶ。

⑪管理者として実行

管理者特権を持つ権限を得ること(昇格)。

⑫System

サービスがどのユーザー資格で動作するかを指定する為に使用されるアカウントのこと。

⑬依存関係

サービスによっては別のサービスが動作していないと起動できないものがありこれを依存関係と呼ぶ。

⑭サービス

サービスとは OSが提供する機能を実現する為のプログラムであり、画面に表示されないバックグラウンドで動作する。

⑮ローカルセキュリティポリシー

個々のコンピュータごとに行うセキュリティ設定であり、ローカルセキュリティポリシーで設定できる主要な項目は以下の通り。

・アカウントポリシー:ユーザーアカウントに関連する設定
・ローカルポリシー:セキュリティ監査、ユーザー権利の制限などの設定
・セキュリティが強化された Windowsファイアウォール
・公開キーのポリシー:暗号化機能やデジタル証明書、暗号化ファイルシステム関連の設定
・ソフトウェア制限ポリシー:実行を許可するソフトウェアの識別と指定
・IPsecに関する設定

⑯IPsec

IPパケットに対して暗号化と認証(出自の証明と改ざん検出)機能を提供する為の使用であり、 OSによって提供される。これにより第三者が通信路の途上でパケットを傍受しても内容をしることができない。

⑰グループポリシー

グループポリシーはActive Directoryドメイン、Active Directory ドメイン内の OU(組織単位) に対して設定するセキュリティポリシーであり、設定項目が [コンピュータの構成]と [ユーザー構成]に分かれている。

⑱OU(組織単位)

組織単位でのグループのこと。

⑲GPMC

WindowsServer2003で単独で動作するグループポリシー専用の管理ツールである。

㉑ポリシーオブジェクト

一つのドメインあるいは OUに対して複数のポリシー設定(ポリシーオブジェクト)を登録することができる。

㉑ロックアウト

頻繁にログオンに失敗したユーザーに対してログオンを拒否することをロックアウトという。

㉒セキュリティポリシーテンプレート

作成したローカルセキュリティポリシー設定内容に関する情報を .INFという拡張子を持つファイルの形で保持するもの。このファイルをエクスポートし他のコンピュータにインポートして適用すると同じセキュリティポリシー設定を再現できる。

セキュリティ セキュリティの基礎知識

Categories:  MCA Security

1.情報セキュリティに対する脅威

情報セキュリティに対する脅威とは情報資産にたいしてなんらかの損害や不具合を乗じさせる事象を指します。
対象の情報は顧客情報社員名簿、学籍簿、住民台帳、アドレス帳が狙われています。

(1)盗聴の脅威

TCP/IPベースのネットワーク通信は傍受が比較的容易であり、インターネット上では組織外のネットワークと相互接続する際に盗聴の脅威にさらされています。

 

(2)改ざんの脅威

①インターネットでの外部ネットワークとの接続における脅威。

②格納された情報に対しての適切なアクセスコントロールがなされていない。

(3)なりすまし

アクセスコントロールはユーザーを特定する際に認証の機能を使うがこの認証の機能に脆弱性が存在する場合、アクセス権限をもたないユーザーが情報にアクセスしてしまう可能性があります。

 

(4)Dos

不正なデータや大量の接続要求が送りつけられることにより一時的または永久的に相手側のサービスを利用できなくするものがDOS攻撃と呼ばれています。

 

2.セキュリティリスク

リスクの種類としては大きく間接的な損害と直接的な損害にわけることができます。

(1)直接的な損害

①資産損失

②人的損失

(2)間接的な損害

③収益損失(業務の中断、信用失墜)

④責任損失(賠償責任、罰金)

 

3.リスク管理

リスク管理の考え方には次の3つがあげられます。

①リスク軽減

 脅威が発生した場合の損失をできるだけ小さくすること

②リスク回避

 リスクが発生しないようにする

③リスク容認

リスクを受け入れ対策を講じない

(1)脅威への対処法

脅威への対処法としては次の2つの方法があります。

①リスク保有

 発生する損失を組織自体の財務力で負担する方法であり、不測の事態に対応する費用を組織内部で確保する対処法です

②リスク移転

 保険等により損失負担のリスクを外部に添加する方法であり、損害保険などにより組織外に損失負担を転嫁する方法です。

(2)セキュリティ対策

情報セキュリティ対策は機密性・完全性・可用性を損なわないことを目的としています。リスク分析の流れは以下の通りです。

①対象情報資産の洗い出しと守るべき情報資産の特定

②情報資産の重要度の決定

③脅威の洗い出し

④脆弱性の洗い出し

⑤リスクの洗い出し

⑥リスクの大きさ評価

 

(3)機密性の保護

機密性の保護には個々のユーザーを識別する認証の機能と個々のユーザーに対して情報へのアクセス権限を付与する認可の機能が必要となります。また制御外のネットワークでは盗聴の脅威があるため暗号化による機密性の保護が必要です。

 

(4)完全性の保護

情報は正当性 /正確性/ 一貫性が保たれていなければなりません。情報が改ざんされて改ざんされたことに気づかない場合は完全性が保たれなくなります。完全性を保護するには適切なアクセスコントロール、正確な相手認証、改ざんを検出するデジタル署名などにより保護することができます。

 

4.暗号技術

代表的な暗号化技術としてハッシュ、共通鍵暗号方式、公開鍵暗号方式があります。デジタル署名は公開鍵暗号方式の代表的アプリケーションであり、PKIを公開鍵暗号技術の基盤として利用しています。

(1)ハッシュ

あるデータから固定長の数値を発生させるアルゴリズムであり、そのアルゴリズムを実現したプログラムがハッシュ関数、生成された値をハッシュ値と呼んでいます。別名メッセージダイジェストとも呼ばれ、 MD5(128ビット) やSHA-1( 160ビット)のアルゴリズムを使用しています。ハッシュ関数は不可逆な一方向関数を含む為、ハッシュ値から原文を再現することはできません。また受信側と送信側で通信データのハッシュ値を求めて比較することにより通信系路上でデータの改ざんが発生していないかを確かめることができます。

(2)共通鍵暗号方式

共通鍵暗号方式ではデータの暗号化と復号に同じ鍵を使用します。共有鍵暗号方式、対象鍵暗号方式とも呼ばれ、暗号の送受信をする前に安全な経路を用いて鍵を共有する必要があります。

①共通鍵暗号方式メリット

・公開鍵暗号化方式と比較すると高速でありネットワークトラフィックの暗号化に用いられる。

②共通鍵暗号方式デメリット
・暗号強度が低い

・通信相手ごとに異なる鍵が必要なので通信相手が多い場合、鍵の管理が大変である。

・通信を開始する前に安全に同じ鍵を入手するのが難しい為、通信相手が多い場合は不向きである。

③代表的アルゴリズム

・ DES

・ AES

・ RC4

(3)公開鍵暗号方式

公開鍵暗号方式では暗号化と復号で異なる鍵を用いるこの二つの鍵の一方を秘密鍵、もう一方を公開鍵と呼ばれています。暗号化の速度が遅い為一般的に暗号化速度が問題とならないデジタル署名や認証、メール暗号化などに用いられます。

①公開鍵暗号方式メリット

・暗号化強度が高い
・通信を開始する前に安全な経路で鍵を受け渡しする必要がない。
・鍵の管理が楽
・Man-in-the-middle攻撃などに対応する為、基盤に PKIが使用されている。

②公開鍵暗号方式デメリット

・低速

③代表的なアルゴリズム

・ RSA暗号
・楕円曲線暗号

 

(4)デジタル署名

デジタル署名はデータ改ざんを検出する技術で、ハッシュ関数と公開鍵暗号方式を用いて実現される技術です。ハッシュ関数によりメッセージダイジェストを作成し秘密鍵とし、もう一方で送信データを公開鍵により暗号化します。受信者は受け取ったデータからデジタル署名を取出し公開鍵で復元し、メッセージダイジェストにより照合する仕組みです。

 

(5)PKI(Public Key Infrastructure)

PKIは日本語で公開鍵基盤といわれ、電子商取引の普及により相手先の身分証明をする為のデジタル証明書を使用し取引相手を証明する為の基盤です。デジタル証明書を発行する機関のことを認証局 (CA:Certification Authority) と呼ばれています。

 

5.セキュリティポリシー

組織の情報セキュリティの基本的な考え方や運用の体制を規定し、標準的なセキュリティ対策について記述された文書をセキュリティポリシーと呼ばれています。セキュリティポリシーには PDCAのサイクルを繰り返し実行する必要があります。

(1)PDCAサイクル

①PLAN

情報セキュリティ管理計画の立案、リスク分析、リスク管理の実施、セキュリティポリシーの策定。

②DO

セキュリティポリシーに基づく対策の実施、情報セキュリティに関する社員教育。

③CHECK

セキュリティポリシーの遵守状況確認、システム稼働状況の監視、不正アクセスの監視。

④ACT

セキュリティ監査の実施、セキュリティポリシーの適切性の評価。

(2)セキュリティポリシーの構成

①基本方針(ポリシー)

・セキュリティポリシーで守るべき対象の情報資産の定義、セキュリティポリシーを遵守すべき対象の定義、セキュリティポリシーを運用する体制のこと。

②基本的な対策項目と方法(スタンダード)

・基本方針を実施するために情報システムやサービスに対して対策や利用方法など具体的に文書化する。たとえば電子メールを利用する場合の機銃として暗号化メールを使用する対策の定義やリモートアクセスで使用されるユーザー認証方法を定義する。

③具体的な作業手順 (プロシージャ)

・スタンダードを実施するための詳細な作業手順の記述。ソフトウェアの利用方法、設定方法、マニュアルとして利用できるものを作成する。

④申請書、文書様式

・情報セキュリティに関する申請書や文書様式を定義する。

 

6.セキュリティ基礎、まとめ

(1)脆弱性/脅威

脅威とは情報誌さんに対してなんらかの損害や不具合を生じさせる事象であり、脆弱性とは脅威を生み出す原因となった要因です。代表的な脅威は以下の通りです。

①盗聴
②改ざん
③なりすまし
④Dos

(2)イーサネット

現在LANでもっとも一般的に使われているネットワーク技術です。

(3)TCP/IP

インターネットで利用されているネットワークプロトコルです。

(4)Dos

DOS(Denial of Service:サービス不能攻撃)はデータや OS、アプリケーション、ネットワークそのものが不正なデータを送り付けられ、大量の接続要求を送りつけられることにより一時的にまたは永久に利用できなくするものです。

(5)セキュリティリスク

脆弱性はほぼすべての情報システムに存在するが、それにより引き起こされる脅威の出現確立ともたらされる被害は様々である。セキュリティリスクとは脅威の出現可能性と被害の大きさを表す。セキュリティリスクは大きく直接的被害と間接的被害にわけられ、さらに資産損失/ 人的損失 /収益損失/ 責任損失にわけることができます。

(6)コアビジネス

その組織にとっての中心的な活動 /サービスのこと

(7)機密性 /完全性/ 可用性の保護

情報セキュリティは機密性 /完全性/ 可用性を損なわないことを目的とします。機密性は情報に対し許可されたユーザーだけがアクセスできるようにアクセスコントロールされていることにより保つことができます。完全性は情報の正当性、正確性、一貫性を保つことであり、デジタル署名などにより完全性が保護されます。可用性は利用したいユーザーが利用したいときにその情報をができる必要があるということです。

(8)リスク分析とセキュリティ対策

リスク分析とセキュリティ対策については次の手順で行われます。

1.対象情報資産の洗い出し
2.情報資産の重要度の決定
3.脅威の洗い出し
4.脆弱性の洗い出し
5.リスクの洗い出し
6.リスクの大きさ評価

 

(9)メッセージ認証

メッセージに事前に共有された鍵をつけてハッシュ値を算出すると MAC(メッセージ認証コード)が生成されます。これは改ざん防止と認証の機能を持ち、これをメッセージ認証と呼ばれています。

(10)Man-IN-THE-MIDDLE

AとBの間にCが存在することにより暗号化通信を盗聴、改ざんが可能になることにより発生する脅威のことです。

(11)セキュリティポリシー

組織の情報セキュリティの基本的な考え方や運用体制を規定し標準的なセキュリティ対策について記述された文書をセキュリティポリシーと呼びます。セキュリティ対策は PDCAを繰り返し実行することにより策定します。

(12)PKI

PKIは Public Key Infrastructureの略語であり日本語では公開鍵基盤とよばれ、デジタル証明書を利用する為の基盤である。またデジタル証明書を発行する機関を認証局( Certification Authority:CA)と呼ばれています。

(13)ハッシュ

あるデータから固定長の数値を発生させるアルゴリズムでありアルゴリズムを実現したプログラムがハッシュ関数、生成された値をハッシュ値と呼びます。別名メッセージダイジェストとも呼ばれ MD5、SHA1 というアルゴリズムがよく使用されています。

データベース データウェアハウスとOLAP

Categories:  MCA Database

1.データウェアハウス

データベースの中には基幹系データベースと情報系データベースとありますがデータウェアハウスとは情報系データベースのことであり、日々の業務の実績や履歴のデータを蓄積する為のデータベースのことです。データウェアハウスのデータは企業が今後とるべき戦略を立てる上での意思決定支援として役立ちます。

(1)データウェアハウスの特徴

 データウェアハウスには次の4つの特徴があります。

①サブジェクト指向

サブジェクト指向とは[主観]を意味しており、データウェアハウスにはシステムが自分の主観からみて必要と思える情報をえることができるであることが要求されています。単に売上データに関してもそのデータが今後の経営意思決定に活かす情報をかえすのがサブジェクト指向であり、その情報を蓄積したデータベースをデータウェアハウスと呼んでいます。データウェアハウスはユーザーの知りたいというニーズにこたえるものでなければなりません。

②統合性

本来、企業の部門ごとにわかれているシステムごとに分散して蓄積、保存されているデータを全てまとめて一つのものとして扱えます。この場合データの項目、データの型に一貫性を持たせることが必要となります。

③系列性

時系列性とはあるデータのさまざまな時点での状態を記録できるということを意味しています。

④揮発性

不揮発性とは日常的には更新処理が行われないが、定期的に一括して行われています。データウェアハウスのデータは日常的にはデータの検索や分析だけに使用されています。

2.データウェアハウジングの構成

データウェアハウスにはそのデータを分析するためのシステムが必要であり、データウェアハウスとその分析システムをあわせてデータウェアハウジングと呼ばれています。SQLサーバーを使用した場合には次のような要素から構成されています。

①DTS(Data Transformation Services:データ変換サービス)

DTSは通常のデータベースのデータ(OLTPデータソース)をデータウェアハウスに使用できるものに変換し、DW(データウェアハウス)ストレージに転送します。

②データウェアハウス(DW)ストレージ

DWストレージはデータウェアハウスのデータ格納先であり、DWストレージに格納されたデータはAnlysis Servicesによる分析に利用されます。

③Analysis Services

Analysis Servicesはマイクロソフトが提供しているサーバーソフトウェアでデータウェアハウスのデータ分析を行うのに使用されるています。これはOLAP、データマイニングといった分析処理のための機能を備えており、これはクライアントアプリケーションがAnalysis Servicesを利用してOLAP処理(On-line-analytical processing)を行うのに必要なデータ(キューブ)を作成する機能を持っています。

④クライアントアプリケーション

クライアントアプリケーションはAnalysis Servicesのサービスを利用してOLAPの処理を行いデータを分析するためのアプリケーションです。クライアントアプリケーションとしてはExcelが使用されています。

クライアントアプリケーションからキューブへのアクセスにはOLE DB for OLAP、ADO MDといったAPIが使用されています。

3.OLAP(ON-Line Analytical Processing)

OLAPとはON-Line Analytival Processingの略称であり、企業が日常の業務によって蓄積された販売データや顧客データなどをさまざまな角度から分析することです。Analysis ServicesはOLAPツールの一つです。それに対して基幹系データベースの日常業務で使用される処理をOLTP(On-line-transaction processing)と呼んでいます。

OLAPでは売上が月毎、地域毎、製品毎にどのように異なっているか、商品Aと商品Bの相関関係、天候によって売れる商品に違いがあるかなどが調べられます。

(1)キューブ

OLAPでは次元の多い多次元モデルと呼ばれる構造のデータを使用し、次元が3つになっているデータのことをキューブと呼んでいます。また次元が4つ以上のデータをハイパーキューブと呼んでいます。

キューブは次の3種類の要素から構成されています。

①次元(ディメンション)

次元はデータを分析する切り口を意味し、どのような切り口で分析を行うかにより設定します。

②メンバ

メンバとは次元を構成する項目であり、商品の場合であればその中のカテゴリとなります。

③セル

キューブをグラフ化すると直方体になるがセルはこの直方体を指します。

(2)スライス

スライスとは一つの次元の中から特定のメンバだけを選択することを意味しています。時間、店舗、商品の次元から構成されるキューブがあるとすればそのキューブの時間次元の中から2001年というメンバを選択し2001年におけるすべての店舗のすべての商品の売上データを取り出したものはスライスと呼ぶことができます。

(3)ドリルダウン/ドリルアップ

キューブ次元のメンバはいくつかのカテゴリに分かれるがこのカテゴリをかえて分析の対象を絞り込むことをドリルダウン、分析の対象を広くすることをドリルアップと呼びます。分析対象を絞り込むようにカテゴリを変えた場合はメンバのレベルを下げる、逆に分析の対象を広くするようにカテゴリをかえることをメンバのレベルを上げると呼びます。

4.データマイニング

データマイニングはパターン認識、人工知能などの技術、統計学を利用し自動的にデータの相関関係、傾向、パターンを見つけ出すことを呼びます。Analysis Servicesはデータマイニングの機能としてディシッジョンツリー、クラスタリングの二つが用意されています。

(1)ディシジョンツリー

因果関係を見つけ出すのに役立つ機能であり、分類の結果を図にすると木構造になるためそのように呼ばれています。

(2)クラスタリング

クラスタリングはデータ類似性という観点からグループにまとめる機能です。クラスタリングを利用することで顧客を、商品を購入する見込みが高いか低いかで有望顧客、一般顧客に分けることができます。

5.まとめ

(1)サブジェクト指向

データウェアハウスの特徴の一つで主観の意味を持つ。ユーザーが自分の主観からみて必要と思える情報を得ることができる、ユーザーのニーズに応える特性のこと。

(2)Analysis Services

マイクロソフトが提供するサーバーソフトウェアであり、データウェアハウスのデータ分析を行うのに使用される。

(3)OLAP

企業が日常の業務で蓄積された販売データ、コキャクデータなどを様々な角度から分析すること。

(4)キューブ

OLAPで使用される次元が3つのデータのこと。

(5)ドリルダウン/ドリルアップ

OLAPにおいてキューブの次元メンバのカテゴリをかえ、分析対象を絞りこむことをドリルダウン/分析対象を広げることをドリルアップという。

(6)ディシジョンツリー

データマイニングとしてAnalysis Servicesを使用した場合に因果関係を見つけ出すのに役立つ機能のこと。

(7)クラスタリング

Analysis Servicesの中でデータ類似性という観点からグループにまとめる機能のこと。

データベース データベースアプリケーションとストアドプロシージャ

Categories:  MCA Database

1.クライアントサーバー型データベース

SQLサーバーはクライアントサーバー型データベースに対応するよう開発されたDBMSです。クライアントにはデータベースアプリケーションが配置され、サーバにはデータとデータベースエンジンが配置されています。

①ファイル共有型データベース

クライアントにアプリケーショントデータベースエンジンを配置し、サーバにはデータだけを配置するタイプのデータベースシステムです。

 

2.データベースアプリケーションの開発

(1)アプリケーションのアーキテクチャ

データベースアプリケーションはプレゼンテーション層、ビジネス層、データ層という3つの層から構成されています。各層の機能を備えたプログラムの配置の仕方をアプリケーションアーキテクチャと呼び、2層アーキテクチャ、3層アーキテクチャの2種類があります。

①プレゼンテーション層

データの表示、入力を扱う層であり、ユーザーインターフェイスと呼ばれる機能が属する。

②ビジネス層

アプリケーションの中でも核となる機能が属する層であり、ビジネスルール(業務処理をする為のプログラム)、トランザクション処理のプログラムが属する。

③データ層

データベースのデータ格納、データ整合性の維持、トランザクションの管理、などの機能が属する。

 

 

(2)2層アーキテクチャ

2層アーキテクチャとはプレゼンテーション層をクライアントマシンに配置し、データ層をサーバーマシンに配置するアーキテクチャである。この場合、ビジネス層はクライアントに配置する場合もあればサーバーに配置する場合もあります。このアーキテクチャ場合はユーザー数が増えたばあい、サーバーへの付加やネットワーク通信量が増えることで極端にパフォーマンスが低下する恐れがあります。

①インテリジェントサーバー、インテリジェントクライアント

ビジネス層がサーバーに配置されるアーキテクチャをインテリジェントサーバー、クライアントに配置されるアーキテクチャをインテリジェントクライアントと呼ぶ。

 

(3)3層アーキテクチャ

3層アーキテクチャとはプレゼンテーション層、ビジネス層、データ層をすべて別のコンピュータに配置するアーキテクチャです。プレゼンテーション層(クライアントアプリケーション)―ビジネス層(アプリケーションサーバー)―データ層(データベースサーバー)のような構成です。
このアーキテクチャは各層が独立している為、いずれかの層に変更があってもほかの層には影響が及びにくいというメリットがあり、アプリケーション拡張や保守も容易です。

 

(4)N層アーキテクチャ

3層アーキテクチャはビジネス層をさらに複数のコンピュータに分けて配置することもできる為、層がいくつあるか不定であるという意味でN層アーキテクチャと呼ばれています。

 

 

3.アプリケーションプログラミングインターフェイス(API)アプリケーションプログラミングインターフェイス

アプリケーションプログラミングインターフェイス(API)アプリケーションプログラミングインターフェイスとはプログラムを開発する際に使用する命令や関数の集合のことを指します。複雑なコードを自分で記述しなくてすむため手間が省けミスの発生も防ぐことができます。

SQLserverはデータベースアプリケーションを開発するためのAPI(データベースAPI)としてOLE DB,ODBCをサポートしています。

①OLE DB(Object Linking and Embedding Database)

COM(Component Object Model)をベースとしたAPIであり、このAPIを使用するとリレーショナルデータベースのほか、テキストファイル、EXCELワークシートなど様々なデータにアクセスするプログラムが作成可能である。

②ODBC(Open DataBase Connectivity)

リレーショナルデータベースにアクセスするための専用APIである。ODBCはコールレベルインターフェイスAPI(プログラム宣言だけでプログラムの中身を自ら持っていない)なので単独では使用できない。ODBCはODBCドライバと呼ばれるソフトウェアとともに使用する。ODBCドライバはDBMSごとに用意されており、ODBCドライバによってDBMSの相違を吸収するため、DBMSの違いを意識せずアプリケーションの作成が可能である。

OLE DBやODBCを利用する場合において呼び出し命令を記述する代わりにデータベースオブジェクトインターフェイスを利用する方法がある。データベースオブジェクトインターフェイスはデータベースのAPI機能をブラックボックス化(カプセル化)したものである。
データベースオブジェクトインターフェイスはOLE DBに対応するADO(ActiveXデータオブジェクト、ODBCに対応するRDO(リモートデータオブジェクト)がある。データベースオブジェクトインターフェイスを使用した場合OLE DB、ODBCを簡単に利用できるが全ての機能が利用できるわけではないというデメリットも存在する。

 

4.ストアドプロシージャ

(1)ストアドプロシージャ

ストアドプロシージャはSQLステートメントの集合であり、頻繁に使用するステートメントのパターンをストアドプロシージャに保存しておき、サーバーに格納することができます。

 

(2)ストアドプロシージの種類

SQL Serverがサポートするストアドプロシージャにはシステムストアドプロシージャとローカルストアドプロシージャの2種類があります。システムストアドプロシージャはシステムテーブルからシステムやデータベースに関する情報を取得する際に使用されるストアドプロシージャのことです。ローカルストアドプロシージャはユーザーのデータベースに格納される普通のストアドプロシージャのことです。

 

(3)ストアドプロシージャを使用するメリット

ストアドプロシージャを使用するメリットとしては以下の点があります。

①アプリケーションのビジネスルールの部分をストアドプロシージャとすることでアプリケーションからビジネスルールを独立させることができる。

②複数のアプリケーションで同じストアドプロシージャを共有することでデータへのアクセスに一貫性を持たせることができる

③ユーザーの必要とするビジネスルールをストアドプロシージャにすることでデータベース詳細構造をユーザーの目から隠すことができる

④ユーザーに用意されたストアドプロシージャを実行する権限だけを与えることでデータベースオブジェクトを操作する権限を与えないことでユーザーごとに権限を与える手間が省ける

⑤ストアドプロシージャが一度実行されると実行プランが作成され、パフォーマンス向上になる。

⑥通常のSQLステートメントではネットワークトラフィックが大きくなってしまうが、ストアドプロシージャについてはストアドプロシージャ実行のステートメントだけですみ、ネットワークトラフィックが大きく軽減できる。

 

(4)ストアドプロシージャの作成

ストアドプロシージャの作成にはCreate Procedureステートメントを使用します。

■構文例 CREATE PROCEDURE <プロシージャ名> AS <ステートメント>

<プロシージャ名> : 作成するストアドプロシージャの名前を指定します
<ステートメント> : ストアドプロシージャを構成するSQLステートメントを指定します

■使用例 CREATE PROCEDURE EDATA AS SELECT * FROM 社員データ Where 社員番号 >= 001

EDATAという名前のストアドプロシージャを作成します。

ストアドプロシージャの実行にはEXECUTEステートメントを使用します。

■構文例 EXECUTE <プロシージャ名>

■使用例 EXECUTE EDATA

EDATAという名前のストアドプロシージャが実行されます。

 

 

5.トリガ

トリガとは指定のテーブルが更新されると自動的に起動される特殊なストアドプロシージャです。トリガは通常ストアドプロシージャのようにユーザーが自分の意思で起動することはできません。トリガが起動されるステートメントとトリガは一つのトランザクションとして実行されます。トリガ実行途中で問題が起きた場合、ロールバックされるがその場合は起動ステートメントの処理も無効となります。

①トリガ作成

トリガを作成するにはCREATE TRIGGERステートメントを使用されます。

■構文例 CREATE TRIGGER <トリガ名>ON <テーブル名> FOR INSERT | UPDATE | DELETE AS ステートメント

■使用例 CREATE TRIGGER 社員数変更 ON 社員データ FOR INSERT AS UPDATE 企業データ SET 社員数 = 社員数 + (SELECT COUNT(社員数) FROM INSERTED)
社員数変更という名前のトリガが作成されており、社員データテーブルに追加されたときに連動して企業データテーブルの社員数データを更新するトリガである。

■INSERTED

トリガが行の挿入操作によって起動される場合トリガを起動するステートメントによって挿入される行内容が一時的に保存されるテーブルの名前である。トリガが行の削除操作によって起動される場合はDELETEDというテーブルが作成される。

■INSTEAD OF トリガ

トリガにはINSTEAD OF トリガと呼ばれるものがあり、トリガを起動するきっかけとなるステートメントは実行されるその代わりとしてトリガが実行される。

 

6.まとめ

(1)クライアントサーバー型

クライアントサーバー型とはクライアントマシンとサーバーマシンから構成されるデータベースシステムのことである。

 

(2)アプリケーションアーキテクチャ

プレゼンテーション層、ビジネス層、データ層から成るプログラム配置の仕方である。

 

(3)2層アーキテクチャ

プレゼンテーション層をクライアントマシンに、データ層をサーバーマシンに配置するアーキテクチャ

 

(4)3層(N層)アーキテクチャ

プレゼンテーション層、ビジネス層、データ層をすべて別のコンピュータに配置するアーキテクチャである。

 

(5)アプリケーションプログラミングインターフェイス(API)

アプリケーションプログラミングインターフェイスとはプログラムを作成する際に使用する命令や関数の集合を指す。

 

(6)データベースオブジェクトインターフェイス

データベースAPIの機能をブラックボックス化し部品のようにしたものであり、OLE_DBに対応するADOとODBCに対応するRDOがある。

 

(7)ストアドプロシージャ

SQLステートメントの集合であり、SQLステートメントを実行する代わりに頻繁に使用するステートメントのパターンをストアドプロシージャとして保存する。

 

(8)トリガ

トリガとは指定のテーブルが更新されると自動的に起動される特殊なストアドプロシージャである。

 

(9)INSTEAD OF トリガ

通常のトリガとは違い、トリガを起動するステートメントは実行されず、その代わりに別のトリガが実行される。

データベース 分散データベース

Categories:  MCA Database

1.分散データベース環境

分散データベースとは複数のサーバーに同じデータベースを複製し、重複して配置した環境を分散データベース環境です。同じデータベースを複数のサーバーに配置する理由としては次の点があります。

(1)データとユーザーの距離を近くできる

(2)組織内の各部門がそれぞれ独立してデータを利用できる

(3)通常のデータベース操作(オンライントランザクション処理=OLTP)に使うデータとデータウェアハウスなどで主に読み取り処理に使うデータを独立させることができる。

(4)一つのデータベースを使う人数を減らすことができる。

また分散データベース環境を構築するにはデータベースを複数のサーバーに複製する必要があります。その方法としてはレプリケーション、分散トランザクションの二種類の方法があります。

 

2.レプリケーション

レプリケーションはデータベースのデータを定期的に繰り返し複製することです。

(1)パブリッシャ、ディストリビュータ、サブスクライバ

データベースレプリケーションにはパブリッシャ、ディストリビュータ、サブスクライバの3種類のコンピュータが関与しています。

①パブリッシャ

パブリッシャとは複製元となるデータベース(データベースソース)を保持するコンピュータである。ソースデータベースの内容がどのように変更されたか、をディストリビュータに知らせるという役割があります。

②ディストリビュータ

パブリッシュからのソースデータベースの内容がどのように変更されたかという情報を格納し、サブスクライバに送るコンピュータです。

③サブスクライバ

データベースのコピーを保持し、ディストリビュータから送られてきた情報に基づいてデータを更新するコンピュータです。一台のコンピュータに同時にパブリッシャ、ディストリビュータ、サブスクライバにすることも可能です。

(2)レプリケーション方法

レプリケーションの方法には、スナップショットレプリケーション、トランザクションレプリケーション、マージレプリケーションの3種類があります。

①スナップショットレプリケーション

ソースデータベースの特定の時点の内容をそのままサブスクライバにコピーする方式のレプリケーションです。
他のデータベースが必ずしも最新な状態でなくてもよい場合に適したレプリケーション方式であり、前回のコピー時からどの部分がどのように変更されたかはまったく関与せず、ディストリビュータも必要がない方式です。

②トランザクションレプリケーション

ソースデータベースにどのような変更がなされたのかだけを知らせる方式のレプリケーションです。
パブリッシャはデータ変更記録を抽出しディストリビュータにトランザクションログ内容を送り、ディストリビュータはソースデータベースのトランザクションログファイルに基づき、サブスクライバのデータベースに対し実行します。
トランザクションレプリケーションはレプリケーションの中でもソースデータベースが更新されてからその更新がデータベースのコピーに反映されるまでの時間が最も短い方法です。

③マージレプリケーション

双方向でデータの複製が行われるレプリケーション手法であり、パブリッシャ、サブスクライバのどちらもユーザーによって更新が可能し、データ更新は、同期、マージと呼ばれる処理によって統一されています。ソースデータベース、サブスクライバのコピー双方で同じデータに対して違う変更が加えられると競合と呼ばれる問題が発生する。その場合は更新に優先順位をつけるなどの対策が必要です。

 

3.分散トランザクション

分散トランザクションは複製によって作成された複数のまったく同じ内容のデータベースに対して同時に同じトランザクションを実行します。
これによってデータベース間で内容に違いがでるのを防ぐことができる。但し同時に複数のデータベースにトランザクションを実行したが、傷害によりロールバックする事態も発生します。
SQLServerではその危険性を抑えるために2フェーズコミット(2PC)と呼ばれる方式を採用します。

(1)2フェーズコミット

2フェーズコミットとはトランザクションのコミットを準備フェーズ、コミットフェーズ2段階に分けて行う方式である。2フェーズコミットにはMS DTC(Microsoft Distributed Transaction Coordinator)というサービスが必要です。

①準備フェーズ

準備フェーズはMS DTCがアプリケーションからコミット要求を受け取り、同じトランザクションが実行されているサーバーに準備コマンドと呼ばれるコマンドを送る。準備コマンドを受け取ったサーバーは準備フェーズ作業が完了した場合、作業が完了したということをMS DTCに通知します。

②コミットフェーズ

サーバーからの準備完了コマンドを受け取り、コミットコマンドと呼ばれるコマンドを各サーバーに送信する。コミットコマンドを受け取ったサーバーは再度コミットが正常に完了したという通知をMS DTCに送る。ここで一つでもコミットが正常に完了しなかったという通知を送ってきた場合はMSDTCはすべてのサーバーにロールバックコマンドを送り、アプリケーションには分散トランザクションが正常に完了しなかったことを通知します。
分散トランザクションは全てのサーバーが常に通信可能な状態になっていなければならないのが条件です。

 

4.まとめ

(1)分散データベース環境

複数のサーバーに同じデータベースを複製し、重複して配置した環境。

(2)OLTP

オンライントランザクション処理のことでデータベース操作のこと。

(3)レプリケーション

レプリケーションとはアルデータベースのデータを定期的に繰り返し複製することである。

(4)ソースデータベース

複製元のデータベースをソースデータベースと呼び、ソースデータベース保持のコンピュータをパブリッシャと呼ぶ。

(5)パブリッシャ

・ソースデータベースを保持する。
・ディストリビュータにデータベースの変更内容を知らせる

(6)ディストリビュータ

・データベースの変更に関する情報を保持する
・変更に関する情報をサブスクライバに送る

(7)サブスクライバ

・データベースのコピーを保持する。
・ディストリビュータからの情報に基づきコピーを更新する。

(8)競合

ソースデータベースとサブスクライバのコピー双方で同じデータに対し違う変更が加えられていることを競合と呼ぶ

(9)分散トランザクション

分散トランザクションとは分散データベース環境における運用方式である。その他レプリケーション方式という方法がある。

(10)2フェーズコミット

分散トランザクションにおけるトランザクションのコミットを標準フェーズとコミットフェーズに分けて2段階に分けて行う方式である。

(11)MS DTC

分散トランザクションを行う場合において、複数のサーバーに同時にトランザクションを実行する状況において、ロールバックを防ぐために2フェーズコミット方式を行う場合に使用するサービス名称。

(12)準備コマンド

2フェーズコミットの準備フェーズ、コミットフェーズのうち、準備フェーズの段階において複数サーバーに送るコマンドのこと。

(13)コミットコマンド

2フェーズコミットのコミットフェーズの段階において準備コマンド完了後に複数サーバーに送るコマンドのこと。

(14)ロールバックコマンド

MSDTCにより、コミット完了コマンドが複数サーバーよりすべて正常に完了されなかった場合において、正常に完了しなかったという通知を送るコマンドのこと。