Information Technology
枕石枕MAKURAISHI
【浮動小数点】小数点を浮動させることによって、非常に大きい数や小さい数を表すための表現方法。例えば、10,000,000といった大きな数は1という数字の小数点を右に7桁分移動させたもの、つまり、正数の1を107倍したものとして表現することができる。又、0.0000001といった小さな数は、1という数字の小数点を左に7桁分移動させたもの、つまり、正数の1を10-7倍したものと表現することができる。このように、数字の情報(仮数部)と小数点位置の情報(指数部)、正負の符号の情報(符号部)という3つの情報を持つことで、幅広い範囲の数値を簡潔に表現できる。
【誤差】
・ 桁落ちcancellation errorは演算により有効桁数が少なくなること。絶対値のほぼ等しい数の加算(異符号)、減算(同符号)で発生する。有効桁数(有効数字)は意味のある情報が格納された桁の数を言う。絶対値がほぼ等しく、同符号である数値の減算で生じうる。
・ オーバフローは演算結果の絶対値が大きくなり、表現できる値の範囲を超えてしまうこと。
・ アンダフローは絶対値が小さくなり、表現できる値の範囲を超えてしまうこと。0の近くは表現できない。
・ 絶対誤差は真値と計算値(近似値)との差。
・ 相対誤差は絶対誤差÷真値。
・ 丸め誤差は限られた範囲内に入りきらない部分を切り捨てたことによる誤差。
・ 打切り誤差は計算を途中で打ち切ることによる誤差。
・ 情報落ちは絶対値が著しく異なる数値の加減算を行う時に、絶対値の小さい数の情報が無視される現象。数多くの数値の加算を行う場合は、絶対値の小さなものから順番に計算することで抑制できる。
【逆ポーランド表記法】演算子を被演算子の後に記述する表記法。FORTRANやCOBOL 等のソースプログラムをコンパイルする際に行う算術式を機械語に変換する過程で、加減算より乗除算を優先する等の演算順序を考慮する必要がある。そこで用いる算術式の内部表現法。
【割り込み】実行しているプログラムが中断され、別のプログラムが実行されること。割込み処理は実行中の処理を中断して、他の処理を実行し、再び元の処理に戻ること。緊急度が高い場合等、様々な場面がある。実行されていたプログラムは、割り込んだプログラムの後に再実行されるので、その割り込み時の情報を保持しておかなければならない。情報はレジスタ類に保存され、再実行される。
割込みそのものは電気的な信号で、CPUの命令実行過程の中で、割込み信号の有無が専用回路で常に監視されている。割込みがあれば、OSの中枢であるスーパバイザが起動し、割込みの種類に応じたプログラム(割込み処理プログラム)が実行される。
・ 内部割込みは実行中のプログラムが原因で起こる割込み。
Ø プログラム割込みは、プログラム実行中に起こる下記のエラーによって発生する。
² ゼロによる除算、オーバフロー(演算結果が表現可能な範囲を超えた、桁あふれ)
² セグメント・ページ不在、記憶保護違反(許されていない主記憶の場所にアクセスした)
² 不正な命令の実行
Ø SVC(super visor call)割込みは、モード切り替え命令の実行で発生。監視プログラム呼び出し割込みとも言う。処理プログラムからOSの機能を利用したい旨をスーパバイザに知らせる。
・ 外部割込みは、実行中のプログラムに関係ない割込み。
Ø 機械チェック割込みは、主記憶装置の異常、ハードウェア故障、電源異常で発生。外部装置の異常が発生したことを知らせる。
Ø 入出力割込みは、入出力装置の動作完了(入出力終了割込み)や中断で発生。正常終了や異常終了の情報も併せて知らせる。
Ø タイマ割込みは、所定の時間が過ぎた時に発生。
Ø コンソール(リスタート)割込みは、オペレータが割込みスイッチ、リスタート(再起動)ボタンを押した時に発生。
【割込みベクトル】割り込みが起きると、予め決められたメモリアドレスへプログラムの実行位置がジャンプする。この割り込みにより、ジャンプする先のアドレスを、割り込みベクトル(割り込みベクタ)と呼ぶ。割り込みベクトルは一つではなく、普通は割り込みの種類によって別々の連続したアドレスが割り当てられている。よって、割り込みベクトルテーブルとも呼ばれる。
割り込みによって割り込みベクトルにジャンプした後は、特別な処理が行われるわけではない。そのメモリの内容が普通に命令として解釈されて実行される。よって、割り込みベクトルには割り込み処理ルーチンへジャンプする命令や処理系によってはサブルーチンそのものを予め登録することになる。その登録されるルーチンは、割り込みハンドラと呼ばれる。
まとめると、割り込みベクトルへ割り込みハンドラを登録した状態で、実際に割り込みの要因が起きた場合にだけ、割り込みという処理が正しく行われる。ユーザー側でテーブルのマッピングを変更できるものや、割り込みベクタテーブルの開始アドレスを指定できる場合もある。
【pipeline】処理装置の高速化に関する技術の一つで、命令の読み出しから実行までを複数のステージに分け、各ステージを並行して実行することによって、処理効率を向上させる方式。
このパイプラインのクロック周波数を高くして、パイプラインのステージ数を増やした方式をsuper pipelineと言う。複数のパイプラインで並列に命令を処理できるようにしたものをsuper scalarと言う。
【集積回路IC】トランジスタ、抵抗、コンデンサ、ダイオード等の素子を集めて基盤の上に装着し、各種の機能を持たせた電子回路。1チップに収められた素子数が数千〜数万程度のものをLSI、10万を超えるものをVLSI、100万を超えるものをULSIと呼ぶ。
【Micro Processing Unit】コンピュータ内で基本的な演算処理を行う、半導体チップ、マイクロプロセッサを指す。いわばコンピュータの心臓部に当たる半導体チップである。1つの大規模集積回路(LSI)に集積している。用途により入出力等の周辺回路や、メモリを内蔵するものもある。
中央処理装置CPU(Central Processing Unit)は MPUが集まって一つの処理装置となったものだが、今ではMPUとほぼ同義になっている。
マイクロプロセッサの処理の流れは下記の通りである。
・ メモリに記憶されたプログラムを読み込む。
・ プログラムの指示に従って入力装置や記憶装置からデータを受け取る。
・ データをプログラム通りに演算・加工する。
・ データをメモリ等の記憶装置やディスプレイ等の出力装置に送る。
【MPUの速度比較】同種のMPUなら、動作クロック周波数で速度を比較できる。同じ命令を実行するのに同じクロック数となるため、「周波数が高い=単位時間の実行命令数が多い=同一処理で時間が短い」となる。同じシリーズのCPUなら、少々命令が追加されていてもほぼ同じと見ることもできる(ex. Pentium 200MHz, MMX Pentium 200MHz)。
しかし同じようなMPUでも種類(処理の詳細)が変わると単純にクロック数で比較できない(ex. Intel 486SX(浮動小数点コ(副)プロセッサ無し)、Intel 486DX(浮動小数点コプロセッサ内蔵))。
同じ基本構造(architecture)のMPUで、命令に互換性がある場合はMIPS値で性能比較できる(ex. Pentium 3, Athlon; PowerPC G4, PowerPC G5)。
異なる基本構造のMPUでは動作クロック数が同じでも、1命令にかかるクロック数や1命令で実行される処理内容が変わるため、同じ性能とは言えない。MIPS値も1命令で実行される処理内容が異なるため比較できない。言い換えると、MPUと処理内容の組み合わせには,向き不向き(得意不得意)がある。
【millions of instruction per second】百万命令毎秒。1秒間の平均命令実行回数。CPU が1秒間に何百万回の命令を実行できるかということを表したもの。1MIPSのコンピュータは、1秒間に100万回の命令を処理できる。1秒間に300万回の命令を実行したならば、3MIPSになる。
CPU の性能評価を行う時の尺度の1つで、主にマイクロプロセッサの性能を反映する。アーキテクチャが異なるコンピュータ間の性能比較には適さない。
コンピュータの命令は、命令の種類によって実行速度が異なる上、プログラムによって命令の出現頻度も大きく変わる。従って同じ MPU であっても、実行するプログラムの種類によってMIPS 値は変化する。通常は、整数演算の実効性能を測定するDhrystoneベンチマークテストが利用される。
MIPSは1秒間に実行可能な命令数を算出すれば変換できる。1MIPSは1マイクロ秒で1回の命令を実行することと同じである。命令の使用頻度を考慮した上で処理性能を求めるには、まずは平均命令実行時間を求める。命令の平均実行時間を計算して、その実行時間の逆数を計算する。平均実行時間は、各命令の実行時間を出現頻度で重み付けをして求める。
【命令ミックス】よく使用される命令に使用頻度に応じた重みを設定して、評価の対象となっているコンピュータの対応する命令の実行時間にその重みを乗じて加えた、一種の平均命令実行時間。
【Floating point number Operations Per Second】フロップスFLOPSは、コンピュータの処理速度をあらわす単位の一つ。処理速度が1FLOPSのコンピュータは、1秒間に1回の浮動小数点数演算(実数計算)ができることを示す。大規模なシミュレーションや科学技術計算に用いる大型コンピュータの性能指標として用いられることが多い。
【Complementary Metal-Oxide Semiconductor】CMOSは半導体回路の一種。現在のマイクロプロセッサ・CPUの多くは、CMOSで製造されている。
2種類のMOS FETと呼ばれるトランジスタをペアで使用する。CMOSを利用した集積回路(IC)は素子の動作は比較的遅いが、構造が単純なため、集積度を高くすることができ、消費電力も少ない。そのためプロセッサや周辺の回路を1個のチップに搭載した大規模LSIを安価に製造できる。
【over clock】CPU やマザーボードを定格以上の高いクロック周波数で動作させること。メーカーが定めた定格値よりも高い周波数で動作させることができれば、高周波数の製品と変わらない性能を引き出すことができる。しかし、当然回路にかかる負荷が高くなるので、運が悪ければ故障の原因となる。
【Reduced Instruction Set Computer】縮小命令セットコンピュータRISCは、1つ1つの命令を簡単にして、パイプライン処理の効率を上げることにより、処理能力の向上を図る方式。命令を使用頻度の高い、単純な命令に限定して処理する。命令を解読する作業(デコード)をHWで実現する。
・ HWの構造が単純
・ 命令の種類が少なくて、単純。命令の長さと実行時間はほぼ一定。
Ø 命令長が固定であり、命令デコードの論理が簡単である。平行して処理を行うため、CPU内部での待ち時間がほとんどなくなり、短いクロック数で複雑な命令セットの処理も完了する。
Ø メモリ参照命令をロード及びストア命令に限定している。
Ø 命令セットが単機能なため、多くの命令を必要とする。
・ プログラムサイズが大きい
・ Wired Logicを使用。命令セットが単純化されているので、Wired Logicでの実現が比較的容易。
PowerPCを搭載したMacintoshで利用されている。
【Complex Instruction Set Computer】複合命令セットコンピュータCISCは、1つ1つの命令を複雑な命令セットにしておき、処理能力の向上を図る方式。高級言語に近づけ、複雑な処理を実行できるようにする。マイクロプログラム制御方式と言い、処理装置内に記憶されたマイクロプログラム(ファームウェア)を使用してデコードする。
CISC プロセッサの1命令は、RISCプロセッサにおける複数の命令の組み合わせになる。従って、同じMIPS 値の場合、CISCの方が処理時間は短い。
・ HWの構造が複雑
・ 命令の種類が多くて、複雑。固定小数点命令、10進演算命令等の命令群が用意されている。命令の長さと実行時間にばらつきがある。
・ 新規に命令を追加しやすい。
・ エミュレーション(他の処理装置の動作を真似ること)が可能。
・ プログラムサイズが小さい
・ micro programを使用
・ デコードはRISCより時間がかかる。
マイクロプロセッサ発明当初から使われている。Intel社のx86シリーズとその互換プロセッサがこの型。
【VLIW: Very Long Instruction Word】マイクロプロセッサの高速化技術の1つ。コンパイルの段階で同時に実行可能な複数の動作をまとめて一つの複合命令とし、CPI: Cycles Per Instruction低減を図る方式。
1つの長い命令語としてコンパイラでまとめる(最適化する)ことで複数の命令を並列処理的に実行しようという方式。この方式では、直接関係のない複数の命令でもまとめて実行する。同時に実行する(最適化する)命令数は決まっていて、数が足りない時には「何もしない」という命令で数を合わせる。
・ ページフォルトは主記憶にないページを参照したとき発生するプログラム割り込み。
・ 連想メモリはキャッシュメモリと主記憶装置のアドレスの関連付けを行う
・ ページングはページ単位でデータを交換する。仮想メモリの使用時に、メインメモリとHDとの間でページという単位でデータをやり取りする。
・ ページング方式は仮想記憶装置と実記憶装置をページと呼ぶ固定長ブロックに分割する。
・ セグメント方式・・・セグメントはページと異なり大きさを変更できる。仮想記憶方式でページを複数個まとめたものをセグメントという。
・ セグメントページング方式はページング方式とセグメント方式の両方の利点を利用した方式。
・ フラグメンテーションはメモリの獲得と解放を繰り返すうちに小さな空領域が数多く発生する現象。
・ ガーベージコレクションはプログラムが使用しなくなったメモリ領域等を集めて、連続した利用可能なメモリ領域を増やす技術。
【swapping】スワップは仮想メモリシステムにおいて、物理的なメモリサイズを超える仮想空間を作り出すために、物理メモリの内容の一部を仮想メモリに書き出したり、逆に仮想メモリからメモリに読み込んだりすること。システム資源全体の利用率向上のために、主記憶と補助記憶の間でプロセスを単位として領域の内容を交換する。
スワッピングは頻繁に利用するプログラムだけを速いメモリICに、あまり利用しないプログラムを、遅いハードディスクに置き、ディスクとメモリの内容を交換swappingしながら効率よく動作をしている。システムにおいてスワッピングが多発するとシステム全体のパフォーマンスは著しく低下する。
・ スワップアウトswapping outは物理メモリに空きを作るため、物理メモリの内容をHD中の仮想メモリに出力すること。メモリ上に読みこまれているデータやプログラムのうち、最も利用されていない部分をHD上に掃き出し、メモリ空間を作る。
・ スワップインswapping inは一度スワップアウトされたメモリの内容を、仮想メモリから物理メモリに読み込むこと。ディスク上に掃き出されたデータが必要になるとまたメモリに読み込まれる。
【cache memory】CPUにある高速のメモリ。主記憶main memoryのデータやプログラムをコピーしておくためのもの。主記憶に比べれば容量は小さいので一部がコピーされているだけ。
処理装置の演算速度に比べると主記憶装置へのアクセス速度は遅いため、両者でデータのやりとりをすると、速度の遅い主記憶がボトルネックとなってしまい、CPU の速さが生かせない。この速度差を少しでも埋めるために、小容量ながら動作が高速なキャッシュメモリが処理装置と主記憶装置の間に置かれる。
プログラムやデータは特定の箇所が集中的に参照されることがよくあり、頻繁に必要となるデータをキャッシュメモリに置くことで、CPU は速度の遅い主記憶にアクセスする回数が少なくて済み、処理が高速化する。
キャッシュメモリには下記の方式がある。
・ ライトスルーwrite through方式は書込み命令が実行された時に、キャッシュメモリと主記憶の両方を書き換える。主記憶の更新と同時にキャッシュメモリの更新を行う。
Ø シングルプロセッサシステムではキャッシュメモリと主記憶の整合性を保つことができる。
Ø マルチプロセッサシステムでは、キャッシュメモリはプロセッサ毎に持っている場合が多いので、本方式では整合性を保てない。整合性を保つ方法としては、各キャッシュメモリで同期を取って最新の情報を保つようにするか、更新されたキャッシュメモリ以外のキャッシュメモリにはアクセスしないようにする必要がある。
・ ライトバックwrite back方式はキャッシュメモリだけを書き換えておき、主記憶の書き換えはブロックの入れ替え時に行う。新しい情報をキャッシュメモリに取り出す時、キャッシュ上では不要になった情報を主記憶に書き込む。
・ フルアソシエイティブ方式は主記憶のブロックがキャッシュメモリのすべてのブロックに対応。
・ セットアソシエイティブ方式は主記憶のあるブロックがキャッシュメモリの複数のブロックに対応。
キャッシュのミスヒットとは、データがキャッシュメモリにないことで、データがキャッシュメモリにない確率をNFP(Not found probability)と言う。逆にデータがキャッシュメモリにある確率をヒット率と言い、1-NFPとなる。
CPUの外にもキャッシュメモリを置く方式が主流であり、これを二次キャッシュメモリと呼ぶ。本来のキャッシュメモリを二次と区別するために特に一次キャッシュメモリと呼ぶことがある。
【メモリインタリーブ】主記憶装置の高速化手法。ワークステーションではよく用いられている。主記憶の見かけ上のアクセス速度を向上させる。主記憶を複数の独立して動作するグループに分け、各グループに並列にアクセスする方式。
・ 主記憶を複数のバンクbankと呼ばれる領域に分割
・ 連続したメモリアドレスを割り当てる。
・ 複数の領域に並列処理で同時にアクセスさせる。
同じ種類のメモリを、対になるバンクのメモリースロットに2枚セットで装着することにより、メモリースピードを高速化できるといった手法とも同じ。
【仮想メモリ】HDの一部を使うことにより、実装以上のメモリ空間があるかのように見せるOSの機能。
【メモリリーク】動作中に割当てたメモリ領域をシステムが解放し忘れることでメモリが解放されない(システムに返還されない)まま、メモリ空間に残ってしまう状態のこと。
APやOSのバグ、プログラムの誤動作が原因。ユーザーが強制的にプロセスを終了した場合等、APの終了時処理が正常に行なわれず、メモリリークが発生するパターンも多い。プログラム実行時エラー処理時等に本来とは異なるプログラム実行経路をとるときに起こりがち。
メモリリークが発生すると主記憶中の利用できる部分が減少する。動作中、徐々にメモリ領域(資源)を広げていき、システムの性能を低下させ、その他動作中や動作したいプログラムやシステムの動作に異常をきたす。解決策はシステムの再起動である。
【DMA: Direct Memory Access制御方式】CPUを介さずに、システムバス等に接続されたデータ転送専用のHWによって、入出力装置と主記憶装置の間で直接データ転送を行う。
データ転送が行われるまではCPUが入出力制御を行うが、CPU からの入出力命令があると、CPU はDMAコントローラという入出力制御専用のチップにその情報を送る。その後は、DMA コントローラが入出力を制御する。ただ、入出力データの転送が開始されるまでと、入出力動作中にバスで競合が起きた場合には CPU が待たされることになる。
【磁気ディスク】樹脂製の円盤diskに磁性体を塗った記憶媒体。外部記憶装置(HD, FD)は磁気ディスクを応用した装置である。読み書き(read, write)を行う際には、ディスクを高速に回転させ、磁気ヘッドを近づけて表面を磁気で書き込んだり、消去したりする。一つのファイルが磁気ディスク上の連続した領域に記録されていると、連続してデータを読み取る場合、磁気ヘッドのシーク回数が少なくなるので、読み取り時間は短くなる。
平均アクセス時間=平均シーク時間(平均位置決め時間)+平均回転待ち時間+データ転送速度
・ 平均アクセス時間は磁気ヘッドがデータを読みこむために目的のトラックまで移動する時の時間の平均。
・ 平均シーク時間は磁気ヘッドがデータを読みこむために目的のトラックまで移動する時の時間。平均回転待ち時間はディスクが回転する時にかかる時間の平均。平均待ち時間は1回転の1/2となる。
・ データ転送速度は実際に磁気ディスクがデータの読み書きを行っている時間。
Ø データ転送速度=トラック容量÷1回転時間
Ø データ転送時間=レコードのバイト数÷データ転送速度
【sector, truck, cylinder】セクタからなるトラックを微小な間隔で重ねたものがシリンダである。HDDは全てこの構造でできている。
・ シリンダはトラックの集まり。トラックを重ねたもの。PCのHDでは薄い円盤型の記憶媒体が非常に微小な間隔で幾重にも重なっている。HDDは何重にも重なった磁気ディスクにヘッドを合わせてデータの読み書きを行っている。
・ トラックはセクタが集まったもの。陸上で走るトラックと同じ語。シリンダは木の年輪のように同心円状のトラックに分割される。
・ セクタは保存の最小単位。トラックをさらに放射状に等分した部分である。一周の長いトラックを区切ったもの。
【DVD】記憶媒体の一種。ディスクの表面にレーザー光を照射し、その反射光を検出してデータを読み出す。CDとほぼ同じだが、CDよりデータの記録密度が高くなっており、1枚の片面DVDにCD7枚〜12枚分程度のデータを記録できる。DVDは、記録密度を高めるために、トラックピッチやピットサイズを縮小し、ピックアップに対するトラック移動の線速度を1倍速CDの約3.3倍高速にしている。つまりレーザー光線の波長が短い。
◎ 読み出し専用のDVD-ROM
◎ 一度だけ書込み可能なDVD-R
◎ DVDプレーヤーで再生可能なまま書き換えを可能にしたDVD-RW
◎ 通常利用しているDVD-RAM
近年のPCではDVDドライブが標準化されている。
【packet writing】CD-R や CD-RW をFDや MO のような感覚で、記録するための方式。CD-R の記録方式には、1度書き込みを行うとそれ以降の追記ができないdisk at once やトラック毎に追記が可能なtrack at onceがあるが、packet writingでは、より小さい単位(ブロック単位)で書き込みが可能。packet writingでは、データを小さい単位で書き込むことが可能だが、disk at onceと比べると全体の記録容量は小さくなる。
【serial port】PCの裏側にあるコネクター(差込口)の1つ。PCに周辺機器を接続するためのものであり、様々な種類と規格がある。Windows PCではRS-232C、MacintoshではRS-422が一般的であった。RS-232CはD-Sub25ピンと呼ばれるタイプで、横長の台形の中に25本のピンが立っている。近年のWindows PCのシリアルポートはD-Sub9ピンが中心でRS-232C対応のコネクターは少なくなっている。
近年のシリアルポートの利用方法として以下がある。
・ IrDA・・・赤外線を使って無線でデータをやり取りする
・ USB(Universal Serial Bus)・・・中低速のデータ転送向き
・ IEEE1394・・・高速のデータ転送向き
【Small Computer System Interface】SCSIは、パソコンにハードディスク、 CD-ROM,CD-R(CD Recordable)やCD-RW(CD ReWritable)、MO、スキャナ等を接続するための規格である。複数の周辺機器を接続する時は数珠つなぎにする。このようなつなぎ方をdaisy chainと言う。
【image censor device】デジタルカメラの撮像素子には電荷結合素子CCD(Charge Coupled Device)とCMOS(Complementary Metal Oxide Semiconductor)が用いられている。カメラ付きの携帯電話もこれらを利用している。
CCDは CMOS に比べると、光に対する感度が非常に良い。これによりCCD ではノイズがほとんど発生しない。ためにCCD の方が CMOS よりも画質が良いと理解されている。但しCMOS に比べると消費電力が大きい。
【PDP: plasma display panel】2枚のガラスの間に高圧のガス(ヘリウムやネオン)を封入し、電圧をかけることにより発光させる表示装置。コントラストが高く、視野角が広いという特徴がある。高電圧が必要なのでノートパソコンには向かないが、大型化が容易なことから壁掛けテレビなどへの応用が期待されている。
【LCD】液晶ディスプレイは、液晶を利用した表示装置で、2枚のガラス板の間に特殊な液体を封入し、電圧をかけている。液晶自体は発光せず、明るいところでは反射光を、暗いところでは背後に仕込んだ蛍光燈back rightの光を使って表示を行う。主に携帯電話・ノートPCや省スペースデスクトップPCに利用される。
・ STN方式やDSTN方式・・・単純マトリクス方式、安価
・ TFT・・・アクティブマトリクス方式 高価だが性能が良い
【CRT display】CRT(ブラウン管)を利用した表示装置。テレビと同じで、デスクトップ型のコンピュータの代表的な表示装置。重量も設置面積も大きいが、低価格化が最も進んでいる。ソニーのトリニトロン・三菱電機のダイアモンドトロンが有名
【pixel】グラフィックスディスプレイシステムにおいてその色や輝度をユーザーが制御できる最小の単位。1ピクセルで何色表示できるかは、グラフィックスメモリとディスプレイデバイスの種類によって異なるが、1ピクセルあたり、メモリが1ビットしかなければ2色(0と1で白と黒)、8ビットあれば2の8乗で256の異なる色、24ビットあれば2の24乗で1600万色を表示することができる。
【dot】文字や絵を構成する小さな点の集まり。コンピュータの画面やインクジェットプリンタの出力は、ドットで構成されている。ドットが小さいほど単位面積あたりのドット数が増え、細かな文字や絵を表現できるが、当然情報が多い分、データ量も多くなる。
・ オーバーヘッド:OSが各種の制御を行うために必要な処理時間。アプリケーションの実行時間を除く。
・ ロールアウト:主記憶装置に空きが無い時に不必要な部分を補助記憶装置に待避させる。
・ ダイナミックアロケーション:プログラム実行時に、必要な記憶装置等を割当てること。
・ カーネル:OSの中心部分。
・ コンテキスト:CPUでプロセスを実行している時の状態を表す情報。
・ スレッド:軽量プロセス。CPU以外の資源は割当てられず、親のプロセスから必要な資源を継承。
・ 多重待ち行列方式:優先順位毎に待ち行列を持つ方式。多段のラウンドロビン方式。
・ 優先度順方式:待ち時間の長いタスクの優先順位を上げる。
・ イベントドリブンスケジューリング:タスクの状態変化をトリガとしてスケジューリングを行う。
・ Supervisor Call:プログラムがOSのカーネルに処理を依頼するための命令。サブルーチンを使用する命令実行時に発生。
・ セマフォ:共有資源に対する排他制御の手段。
・ Time Quantum:タイムスライス方式において、個々のプロセスに割当てられる時間を示す。
【round robin方式】OSのタスク管理で使われる。タスクの切り替え方式の一種。すべのタスクが平等に選択される。各プロセスの待ち行列の先頭に一定の処理時間(タイムスライス)を与え、その時間を使い切ったプロセスを待ち行列の最後尾に移動させて、処理を行う方式。
【スラッシング】アプリケーションソフトが過剰にメモリ使用してしまう時、OSが 仮想メモリへの入出力にCPUの処理能力のほとんどを割いてしまい、コンピュータが外部からの入出力を受け付けられない停止状態に陥ること。ページイン、ページアウトが頻繁に発生すること。
【cross compiler】異なる命令形式をもつコンピュータで使用するための目的プログラムを生成する言語処理プログラム。他のコンピュータで実行するためのオブジェクトモジュール(機械語)を生成するプログラム。実際に実行するHWと異なるHW上で開発する時に使用する。実行させるコンピュータとは異なるコンピュータでコンパイルが可能なため、プログラムの開発効率が上がる。
【プリコンパイラ】原始プログラム(ソースプログラム)のコンパイル前にその準備を行う言語処理プログラム。高水準言語に付加的に定義された機能と文法に従ってコーディングされたプログラムを、元の高水準言語だけを使用したプログラムに変換するプログラムである。
【script】インタープリタ形式のプログラム。スクリプトはそのプロセスを自動化して簡単にプログラムを実行できる。通常プログラムはプログラマの書いたソースコードをもとにコンピュータの理解できる機械語に変換されて実行される。
【agent】ユーザー(プログラム)が一々指示を与えるのではなく、場面に応じて自動的にAPやDBを操作し、一連の作業を行うSWシステム。全ての仕事が終了した時点でユーザーのもとに返る。ネットワーク内に送出された後、返ってくるまで、ユーザーはネットワークにアクセスする必要はない。
【Device Driver】パソコンに接続した周辺機器(モデム、プリンタ)をAPから利用できるようにするため、OS と周辺機器を仲介する目的で周辺機器毎に用意されるS/Wを指し、単純にドライバ(driver)とも言う。driveは「動かす」「駆動させる」の意。
OSだけでは世界中の様々なベンダが提供する周辺機器の処理までサポートできないため、周辺機器専用のS/Wであるデバイスドライバを利用する。従って、新しい周辺機器を導入する際にはデバイスドライバをOS に組み込むことになる。OSを再インストールをした場合は再度デバイスドライバを組み込む必要がある。
【RASIS: Reliability Availability Serviceability Integrity Security】コンピュータシステムの信頼性を評価するときチェックする項目である。信頼性、可用性、保守性、完全性、機密性の頭文字をとった。
・ 信頼性は正常に稼動していること。
・ 可用性はいつでも利用できる状態であること。システムが常に使用可能である性質。障害の発生しにくさや、障害発生時の修復速度によって計られる。障害が発生しにくく、壊れにくい。障害発生時の修復スピードの速いものは可用性の高いシステムといえる。可用性は稼働率として表されるので、基本は常に、いつでも利用可能な状態である方が可用性は高い。
・ 保守性は故障を修復しやすく利用できること。
・ 保全性は誤動作しないこと。
・ 安全性は許可されたユーザーしかシステムを利用できないようにすること。
【稼働率】稼働率はシステムの可用性Availabilityの評価尺度である。システムをダウンさせずに継続して稼働させる能力を評価する。どのぐらいの頻度でシステムが使用可能状態となっているか、が問題である。1(100%)に近いほど可用性が高い。
計測している全時間のうち、システムが正常に稼動している時間の割合が稼働率である。100日間運用しているなかで1日だけ停止するシステムは稼働率0.99である。稼働率を高めるためには、MTBFを長くしてMTTRを短くすればよい。以下の式で求められる。
稼働率=平均故障間隔MTBF ÷ (稼働時間MTBF +平均修理時間MTTR)
・ 平均故障間隔MTBF; Mean Time Between Failuresは信頼性Reliabilityの評価尺度である。修理を終えたシステムが次に故障を起こすまでの平均時間を指す。システムの稼働時間を裏から定義している。この時間が長ければ長いほどシステムの故障が発生しにくい。システムの予防保守は、MTBFを長くするために行う。
・ 平均修理時間(MTTR; Mean Time To Repair)は保守性の評価尺度である(アイテック情報技術教育研究所編・コンピュータシステムの基礎10版(アイテック2001)486)。故障や修理によりシステムが稼動していない時間の平均を表す。
【スループット】単位時間あたりの処理量。単位時間内に処理できるトランザクションやジョブの件数は、システムの性能評価をする際に重要である。スループット向上は、システム資源の有効活用になり、ユーザー側にとっても有効性を増す。
【benchmark】ハードウェアやソフトウェアの処理速度やコンピュータシステム全体の処理性能を評価・計測する試験。性能・品質の優劣を業界団体の基準照らし合わせて評価したもの。各業界でそれぞれの内容に応じた品質の基準がある。
OLTPの性能評価には、トランザクション処理性能評議会TPC: Transaction Processing Councilの作成するTPCベンチマークを使用する。TPC には下記の4種類がある。
・ TPC-A:銀行の入出金業務をモデル化したもの。単純で、現実的なモデルとしては不適合という理由で最近では使用されない。
・ TPC-B: Aモデルから端末側等の処理を除いたものであり、サーバ側のDBを評価する。しかし、単一キーの更新のみのため最近では使用されない。
・ TPC-C:現実的なトランザクション処理モデルを目指したものであり、最近ではシステム全体のトランザクション処理の性能評価に使用している。
・ TPC-D:大規模なDBに対して多種類の問い合わせを同時に発生させてDB性能を測定する。最近ではDBの評価に使用されている。TPC-Cベンチマークはオンライントランザクションの処理性能を測るベンチマーク。
【一括処理方式(バッチ処理)】処理をジョブという形にまとめてコンピュータに投入し、完全な処理結果を得る方式。ターンアラウンドタイムを重視する。ジョブの実行順序をあらかじめ決めることができ、コンピュータのスループットの向上も図れる。
○ センタバッチ処理は処理すべきデータを一定期間、蓄積させ、それらを一括して処理する。データやプログラムをセンタのコンピュータへ入力する際に、オンラインシステムを介さず、人手による。
○ リモートバッチ処理はデータやジョブは端末側で持ち、処理をする時に通信回線でセンタのコンピュータに送り、処理する。例えば企業の業務システムで、現場で入力された受注データなどを1日に 1度、ホストに送信して処理作業を実行させる。
【即時処理(実時間処理)方式(リアルタイム/オンデマンド処理)】処理要求の発生の都度、コンピュータに指令を出し、結果を得る方式。制御システム等では、一定時間内に処理を確実に終了しなければならない場合がある。このような実時間性を保証し、許容される時間内に処理の完了を保証する処理方式。
対話処理で、レスポンスタイムを重視。これが遅いと、ユーザーはイライラする。人の待てる時間はおおよそ3秒くらい。応答時間に対する制約が厳しく、プログラムを主記憶に常駐させて実行する等の方法がとられる。即時性が要求されるため、システムダウンが起きないようにシステムの信頼性対策が重要。
リアルタイム処理を実現した、最も身近かつ典型的なシステムはコンピュータゲームである。航空管制制御、列車運行制御で用いられる。
【オンライントランザクション処理OLTP】ネットワークに接続された複数のクライアントがホスト(サーバ)に処理・作業のリクエストを命令し、ホストが命令内容に基づいてデータの追加・更新・変更・削除その他の要求を処理し、処理結果を即座にクライアントに送り返す処理方式。
銀行の預金・引出し業務、飛行機のチケットをインターネットで予約するシステムがこれにあたる。
【時分割処理TSS: Time Sharing System】複数のユーザーがコンピュータに対話形式で命令を入力しながら、CPUを時分割で使用する。一人一人にユーザーにとってみると、あたかもコンピュータを占有しているかのように利用できる。
現在ではこのような利用形態は当たり前であるが、1960年代頃までのメインフレーム・コンピュータでは、一度に1つずつタスク(ジョブ)を処理するのが普通であった。
【Client Server System】機能や負荷を分散して処理を行う分散型システムの1つ。サーバと呼ばれるコンピュータとクライアントと呼ばれるコンピュータをつないだシステムを言う。コンピュータとはPCやワークステーションを指す。
サーバは、クライアントが出すいろいろな要求に対して、資源やサービスを提供するコンピュータをいう。複数の端末の印刷を引き受けるプリンタサーバ、DBを共有するDBサーバ、ファイルを共有するファイルサーバ、WWW サーバやメールサーバが該当する。
クライアントは、サーバに対して処理要求を行い何らかのサービスを受ける側のコンピュータを言う。各ユーザーが使うPCがクライアントと考えても良い。
クライアントとサーバは機能的な分類である。処理の程度によって、1つのマシンで複数のサーバの役割を果たすことができる。例えば、WWWサーバとメールサーバが1台のコンピュータに入っている構成がある。クライアントとサーバは異なるOS でも良い。クライアントやサーバの追加が簡単・自由に行うことができる。クライアントは複数のサーバを利用できる。
ネットワークの通信速度に処理速度が依存されやすい。特定のサーバに負荷が集中すると、性能が大きく落ちる。クライアントサーバシステムでは、どうしてもサーバに処理の負荷が集中してしまうため、クライアント側で可能な処理はクライアント側で実行することで負荷の軽減(分散化)ができる。
【3層クライアントサーバシステムThree tier client server system】システムを論理的に、ユーザーIFを提供するためのプレゼンテーション、ユーザーに提供するデータの加工処理を行うファンクション(ミドルウェア、ビジネスプロセス)、DBへアクセスするためのDBの3階層に分けたシステムである。
従来2層クライアントサーバシステムは、サーバ側にDBを置き、DBへアクセスする処理以外は、クライアント側に置いておくスタイルだったが、3層化することでクライアントの負荷を軽減し、APの追加や修正を行う場合でも、ファンクション層に当たる部分を改良すればよいので、拡張性や柔軟性に富んだシステムにすることができる。
【fault tolerant】システムが部分的に故障しても、システム全体としては、必要な機能を維持することができる能力。システムの一部に障害が発生した場合でも、業務に支障を来すことなく継続運転させる機能。装置の二重化によって、故障に備える方法もこの一種。システムの一部で障害が発生した場合、故障した部分を予備系へ切り替えることで、システムは稼動したままの状態で故障部分の修理や交換・OSの再起動等が可能になる。
フェールセーフとフェールソフトを合わせて、広義のフォールトトレラントと言う場合もある。
【fail soft】システムに故障が発生した場合に故障箇所を破棄し、又は被害を最小限に押さえながら機能を低下させてでも、ある程度の仕事(処理能力は落ちる)をする方法。使えるところだけ使って、できる限りシステムを稼動させる技術。
【fail safe】システムの一部に故障が発生した場合に、システムが安全な方向に向かうように設計しておき、被害の拡がりを最小限に防ごうとする方法。システム構成の例ならデュアルシステムが該当する。Windows のセーフモードもそうである。
【fault avoidance】システムの障害faultを回避avoidanceする技術。障害を回避するためには、構成部品1つ1つの信頼性を高めて故障が起きないようにする。
【redundant】冗長構成は故障で動かない確率は下げられるが、必要な装置は増える。 機能としては必要の無い装置が増える(無駄)なので、これを冗長と呼ぶ。同じ部品を使うなら冗長性が高い(無駄が多い)程、故障により強くなる。壊れないように作ってもやっぱり壊れやすい部分(HD)にこの構成を使うと効果的(故障率が下がる)。
【simplex system】必要最小限の機器で構成されたシステム。予備を持たないシステム。
【Tandem System】処理能力を向上させるために複数のCPUを直列に接続するシステム構成。各々のCPUで機能や負荷を分散する。通常、1台のメインとなるCPUと、通信処理を助けるFEP(Front End Processor)、データを管理するBEP(Back End Processor)という機能別のCPUで構成される。
【Dual System】全く同じ構成、機能のシステムを二重化し、互いの処理結果を照合しながら処理を行うシステム構成。通信信号制御システムCCU、CPU、補助記憶装置で構成されるシンプレックスシステムを2系統持つ。一方のシステムに障害が発生した場合は、それを切り離して停止することなく運用を続行でき、処理結果は相互照会されているので信頼性は非常に高い。
同じものを2つ使うのでコストはかかる。発電所・電車等、社会的信頼性が高いシステム(コストパフォーマンスよりも、システムが停止した時の損失が大きいシステム)で利用。
デュアルシステムの MTTR は、故障系の切離し時間だけなので、デュプレックスシステムの MTTR よりも短い。
【Duplex System】主系(運用系)・従系(待機系)の2系統をもつシステム構成。主系では大部分の処理(オンライン処理)を実行し、従系では頻度の少ないバッチ処理や開発作業を行うか、常に待機させておく。主系に何らかの障害が発生すると、処理を従系に切り替えて運用を継続させる。
デュアルシステムと比べると信頼性は落ちるが、主従それぞれの系で並列的に処理運用ができ、安価で一般的なシステムである。デュプレックスduplexとは「2重の」「2つの部分からなる」という意味。ネットワークの話なら「双方向の」「上り下り」という意味になる。銀行や金融関係のオンラインシステムに利用する。
コールドスタンバイシステム・ホットスタンバイシステムは、デュプレックスシステム等で利用される待機系のスタンバイ方式に関する用語である。
・ ホットスタンバイは従系で常にアプリケーションを起動し、すぐにでも切り替えできるように待機させておく形態。
・ コールドスタンバイは通常はアプリケーションが起動しておらず、障害が発生してから従系を起動させる形態。処理中断・プログラム稼動等のため多少の切り替え時間が必要になる。
【ロードシェアシステム】複数の機器を有し、オンライン処理やバッチ処理を行う。優先順位の高いオンライン処理が集中した時は、全系列で別々のオンライン処理を行い負荷分散させる。これによりオンライン処理のピーク時にも、一定のレスポンスで処理できる。
【parallel processor system】複数のCPUがメモリを一緒に使う方式。もともと、処理能力の向上を図るためのシステムだが、CPUが故障した場合には、自動的に切り離すことができるので、システム全体の信頼性向上につながる。
【Redundant Array of Inexpensive Disks】RAIDは複数のHDDを連結し、1台の論理ディスクとして扱うことにより、アクセスの高速化・高信頼性を実現するものである。高速化はデータを複数のディスクに分散して格納し、並列的なアクセスを可能とすることにより実現する(ストライピング)。高信頼性はディスクのミラーリングやエラー訂正用のデータを保有することによって実現する。RAIDはデータストライピングの単位や信頼性確保のための方式により、RAID0-6の6タイプに区分される。
・ RAID0はデータストライピングだけを行う方式。信頼性は向上しない。
・ RAID1はディスクのミラーリングだけを行う方式。ミラーリングmirroringはHD等にデータを記録する時に、複数の記憶装置に同時に書き込むことで、データを二重化する方法。
・ RAID2はデータストライピングをビット単位で行い、エラー訂正用のデータは専用(固定)のディスクを用いて行う。エラー訂正はハミング方式。これは実用化されていない。
・ RAID3はデータストライピングをビット単位(現実的にはバイト単位)で行い、エラー訂正用のデータは専用(固定)のディスクを用いて行う。エラー訂正にパリティ方式を用いることで、冗長(エラー訂正用)データを削減でき、現実的な方式である。
・ RAID4はデータストライピングをブロック単位で行い、エラー訂正用のデータは専用(固定)のディスクを用いて行う。エラー訂正はパリティ方式。これは実用化されていない。
・ RAID5はデータストライピングをブロック単位で行い、エラー訂正用のデータは各ディスクに分散して配置する。エラー訂正用のデータを分散して配置することにより、エラー訂正用のデータを格納したディスクに対するアクセスがアクセス速度のボトルネックとなっていたRAID4の欠点を改良したものである。
【data type】プログラム中で使用されるデータ型には大別して単純型とポインタ型がある。単純型は整数型、実数型、文字列型といったように、何らかの値そのものを記憶するデータ型。ポインタ型は値そのものを記憶するのではなく、値が格納されているアドレス(主記憶上の番地)を記憶するデータ型。
単純型の変数Aの値を照会する時は変数Aの中身がそのまま求める値となる。ポインタ型の変数Bの値を照会する時は変数Bに格納されているアドレス番号に保管されているデータが、求める値となる。
リスト構造は、このポインタを利用したデータ構造である。複数のデータの順序関係を保ちつつ、データの挿入や削除を柔軟に行うことができる。配列だけでも複数データの順序関係を保持することは可能だが、途中に新しいデータを追加したり、削除したりする場合は、該当する添え字以降の配列を全て更新しなければならず、決して効率的であるとはいえない。リスト構造では1つのデータがデータ値を格納するデータ部、次(前)のデータの在り処(アドレス)を指し示すポインタ部に分かれている。
・ 単リスト:ポインタ部が、次データのアドレスのみ保持している場合
・ 双リスト:前データのアドレスと次データのアドレスを保持している場合
・ 環状リスト:全てのデータが連結されている場合
【stuck】最後に入力したデータが先に出力されるという特徴を持つ、データ構造の一種。本を積み上げるような構造になっており、データを入れる時は新しいデータが一番上に追加され、データを出す時は一番上にある新しいデータが優先して出る。
【後入れ先出し法LIFO, Last In First Out】ある場所に格納したデータを、新しく格納した順に取り出すようにする方式で一番古く格納されたデータが最後に取り出される。
プログラミングではもっとも頻繁に利用されるデータ構造の一つ。多くのCPUはスタックにデータを出し入れするための専用の命令を用意しており、簡単に利用することができる。
再帰的な処理を実現するためには、実行途中の状態を保存しておく必要があるが、そのための記憶管理方式として適切。
【FIFO, First In First Out】先に入力したデータが先に出力されるデータ構造。待ち行列queueで利用される。スタックとは逆。メモリやメモリICでは先に書き込んだデータから先に読み出す。バッファとして使われる。
【探索アルゴリズム】
・ 線形探索はデータを1つ1つ順に照合していく探索方法。アルゴリズムは単純だが、比較回数が多く、あまり効率的ではない。データの個数をNとすると、平均探索回数はN/2となる。
・ 2分探索binary searchは線形探索よりも効率的な探索方法。目的のデータを予めソートされたデータ要素の中央に位置するデータと比較し、その大小関係によって探索範囲を狭めていく。平均探索回数はlog2 Nで、N=16であれば線形探索では8回、2分探索では4回となる。
・ 2分木探索の探索方法は2分探索と似ている。2分探索では予めデータをソートしておくが、2分木探索ではデータを節が2本のツリー構造で保持する。
・ ハッシュ探索は、データのキー値からハッシュ値を求め、ハッシュ表と呼ばれる表で該当するデータを探し当てる。ハッシュ探索でハッシュ値が衝突する確率が小さければ、ほとんどのケースで 1回の探索だけで目的のデータにたどり着くことが可能になる。
【sort】データを順番に並べ替えること。アドレス帳をあいうえお順に並べたり、ToDoを締め切りの日付順に並べ替えたりすることを「あいうえお順にソートする」「日付順にソートする」と言う。ソートの順番には正順(昇順)と逆順(降順)がある。ソートはデータ処理の基本で、サーチ(検索)やマージの前処理としても行う。
【quick sort】実用上もっとも高速であるとされている並べ替えアルゴリズムで、多くのプログラムで利用されている。データの比較と交換回数が非常に少ないのが特徴で、一般的なばらばらデータ(ランダムに散らばっているデータ)に対して、最も効率良く並べ替えを実行する。
・ 羅列した数字(データ)の中から基準とする値を決める。
・ 適当に並べ替えて、ある番号から左側は基準値以下であり、右側は基準値以上であるようにする。
・ 分けた両者を同様の方法でそれぞれ並べ替える。
・ この操作を繰り返すことで、整列を行う。
このようにアルゴリズムの定義の中にそれ自身が含まれているようなものを、再帰的なアルゴリズムと言う。
【parity check】データ通信において,データの誤りerrorを検出する手法の一つ。パリティを使ったエラー検出を指す。
コンピュータは全てのデータを2進数、すなわち0と1の値の列で表現する。データを送信する側は、この値の列を一定の個数(通常は7個か8個)に区切り、その中に含まれる1(または0)の個数の偶奇parity bitを添付してデータを転送し、受け取った側は添付されたparity bitと、データ中に含まれる1(または0)の個数を比較して、偶奇が合わなければデータに誤りがあると判断する。
・ 偶数パリティeven parityチェックは、パリティビットを含めて"1"の数が偶数になる。
・ 奇数パリティodd parityチェックは、パリティビットを含めて"1"の数が奇数になる。
例えば「A」の文字コード(JISコード)は1000001なので、奇数パリティでは、1を付加して、11000001となる。偶数パリティでは0を付加して、01000001となる。
この方式では、1 ビットのビット誤りを検出することができるが、誤り訂正することができず、偶数個のビット誤りに対して検出することができない。
データ伝送ではJIS(日本工業規格Japanese Industrial Standard)で規定された偶数方式を採用している。メモリシステム等では、8bit のデータを書き込む際にデータビット中の1の数を数え、それが奇数だったか偶数だったかを1バイトのparity bitに書き込む。読み出し時には、読み出したデータビットとパリティビットの内容が矛盾していないかを調べる。
・ 水平パリティはデータ伝送の伝送単位であるブロック内で、第1ビット、第2ビット等の共通ビットの位置毎にパリティを付加する方式。ブロック単位でチェックする。
・ 垂直パリティはNビットの符号語毎にパリティビットを付加する。一般的に用いられている。
これらを組み合わせた形式を水平・垂直パリティといい、水平・垂直パリティでは 2 ビットの誤りを検出することができ、1 ビットの誤りを訂正できる。
【チェックサム】データ伝送において、データをブロックに分けて、予めその中のデータの合計値を計算し、その合計または一部をブロックに付加する。受信側では同じ方法で受信データの合計を計算して、送信側で計算した合計値と比較する。伝送されたデータの値に誤りがあれば、合計の値は一致しないので、誤りを検出できる。誤りが検出された場合は、データが再送される。
【ハミング符号】コードの中に情報ビットとチェックビットを含めることによって、コード中の1ビットの誤りを訂正する方式。メモリの誤り制御方式で、2 ビットの誤り検出機能と1ビットの誤り訂正機能をもたせるのに用いられる。
【ハッシング】レコードを記憶域に登録する場合、格納方法を工夫しないと,登録される記憶域に偏りが発生することがある。例えば商品コードをキーとし、そのキー値の範囲によって格納する記憶域を決定する場合、商品コードの値が偏っていると、記憶域のデータ格納数に偏りが発生する。格納効率、アクセス速度といった点で非効率的な状態である。
データを全ての記憶域に満遍なく分散させる方法として、ハッシングがある。データのキー値にハッシュ関数と呼ばれる演算を施し、ある一定範囲のランダムな数値に変換してしまう。0〜3までの4個の記録域へ商品データを登録する場合、商品コードから計算結果が0〜3となる値を生成することで各記録域へ満遍なくデータを配置することが可能。ハッシングを行う計算手順は、除算法、重ね合わせ法、基数変換法がある。
【reentrant】再入可能プログラムは、あるプロセスが実行しているプログラムをさらに他のところで、他のプロセスが同時に実行できるようにしたプログラム。複数のタスクから同時に呼び出されても正しく処理でき、それぞれのプロセスに正しい結果を返すことができる。再入可能プログラムを実現するためには、プログラムを手続部分とデータ部分に分割して、データ部分をプロセス毎にもつ必要がある。
【正規表現】ある文字列の並びを、文字とメタキャラクタと呼ばれる特殊な意味を持つ記号であらわす表記方法。文字列の検索や置換を行う際に、対象となる文字列を指定する目的で利用される。一般的にWindowsやMS-DOSでのファイル指定に使われているワイルドカードよりも高度な表現が可能で、UNIXの世界や一部のテキストエディタで取り入れられている。
【順編成ファイルsequential file】データ記録時に順番にデータを書き込んでいく形式で作成されたファイル編成法。先頭データからの順次アクセスsequential accessだけが可能である。データは記録された順に読み出されるので、検索には時間がかかる。順番通りに検索をするためである。レコードキーを指定した特定レコードの直接アクセスはできない。
主に、磁気テープ装置(DATやDLT)の記録方式として使われている。音楽のカセットテープも聞きたい音楽を聴くためには、順番通りに早送りしたり、巻き戻ししたりする必要がある。
索引の領域等がないので記憶効率がよく、レコード全部一括して順次処理するのに適している。順次処理に一番適している方式。
【区分編成ファイルpartitioned organization file】1つのファイルを区分けしたメンバと呼ばれるデータ領域とメンバの情報(アドレス)を管理するメンバディレクトリ(登録簿域)で構成されているファイル。メンバは順編成ファイルである。
複数のメンバを一つのファイルにまとめ、ディレクトリによって個々のメンバを管理する。メンバの更新を行うたびに再使用できない領域ができるので、メンバ領域の再編成が必要である。メンバ単位で更新を行う。バイナリで記録できるのでプログラムの格納に適している。
【直接編成ファイルdirect file】レコードのキーをアドレスに変換して、変換されたアドレスを用いてファイルの読み書きを行う。各レコードがもっているアドレスによって、レコードに直接アクセスrandom accessできる。目的となるデータを記録場所に関係なく、読み書き可能な直接アクセスのみ可能。
特定のキー値をもつレコードを迅速にアクセスできる。一方、レコードのキーが分散しているとアクセス時間や記録効率が低下してしまう。
レコードキーが重なるにもかかわらず、キー変換によって求めた格納アドレスが同じになるシノニムが発生することがある。アドレス変換時に発生するシノニムsynonymの管理が必要。
【同期】データを正しく送受信するためにタイミングを合わせる事を同期、同期をする時の一定のパターンを同期信号と言う。データ通信で使用する同期をとる方法には、主に3パターンある。
・ フラグ同期方式
・ キャラクタ同期方式
・ 調歩同期方式(非同期方式)
フラグ同期方式とキャラクタ同期方式のどちらも送信側から受信側に同期信号を送信し、受信側は、この信号を読みとる間に送信側との同期をとる。
調歩同期方式では、伝送する情報のそれぞれの文字を挟む形で、文字の始まりを示すstart bit、文字の終わりを示すstop bitが付加される。受信側はstart bitを検出すると、その次の文字を受け取る。これを繰り返すことによって情報を受信する。この方法は、文字単位で同期をとることができるので、通信エラーが起こった場合にも、伝送される情報全体にわたってエラーが起こる可能性が少ないという利点がある。
【spanning tree】ネットワーク・ブリッジ用のルーティング・アルゴリズム。IEEE 802.1dによって規定されている。2つのブリッジ間に複数の経路が存在すると(例:2つのハブ間を2本以上のケーブルで複数のポートを使って接続すると)、ループ状になったネットワークでパケットが流れ続けてしまう可能性がある。
これを防ぐため、スパニング・ツリーを使い、ブリッジ間でお互いの接続状態の情報をダイナミックに交換し、ループにならないような通信経路を動的に決定する。予めブリッジ間で複数の配線を行っておけば(冗長構成にしておく)、どれか1つの経路が何らかの障害で通信不能になったとしても、自動的に別の経路に切り替わり、通信路の耐障害性を向上させることができる。
【multicast】インターネット放送や電子会議に利用される技術で、一つのパケットを複数のホストに同時に送信するもの。
LANは、伝送路を共有するため、LANに接続された各端末が勝手に通信を行うとデータ信号の衝突collisionが発生する。そのため、確実にデータの送受信を行うための制御が必要になる。
・ リング型LANは環状に張られたケーブルに各機器が接続されるネットワーク。代表的なものが米国IBM社のトークンリングLANである。
・ バス型LANは一本のケーブルに各機器がバス状に接続されるネットワークで、米国Xerox社のEthernetが代表。
【Carrier Sense Multiple Access with Collision Detection】CSMA/CD方式は、LAN上の各ノードが伝送路上にフレームが流れているかを常時監視し、信号がないことを確認した後にフレームを送信する方式。フレームは全ノードに到達し、自分宛のアドレスが書かれたフレームを受け取ったノードだけが、そのデータを取り込み、自分以外の宛先が書かれたフレームは破棄する。CSMA/CD方式はEthernetのメディアアクセス制御方式として広く普及している。
複数の送信要求が発生した時に、先に伝送路の空きを見つけたノードがフレームを送出できる早い者勝ち。二つのノードがたまたま同時にフレームを送出した場合、フレームが衝突する。この場合、両方のフレームは破壊され無効になり、それぞれのノードはランダムな遅延時間後(back-off)に再送を試みる。
N/Wのトラフィックが比較的軽い場合、小さな遅延時間で効率的に動作する。しかしトラフィックが増えると衝突が多発し、再送回数が増え伝送効率は著しく低下する。
【token passing】トークンパッシング方式は、伝送路上にデータの送信権を与えるフリートークンと呼ばれるパケットを巡回させ、送信したいノードがフリートークンを捕らえ、送信権を得てフレームの送信を行う。
トークンパッシング方式には、リング型のトポロジを持つトークンリング型とバス型のトポロジを持つトークンバス型がある。トークンバスとトークンリングの違いはネットワークの接続形式の違いにある。トークンリングがリング型LANであるのに対して、トークンバスではバス型LANが用いられる。
【token ring】トークンリング方式では、トークンと呼ばれるパケットをネットワーク内に巡回させ、このトークンで送信権を制御する。トークンを受け取ったクライアント(ノード)のみがデータを送信可能。衝突が発生しない、誰にでも平等に送信権が回ってくるという特徴がある。
・ 優先トークン方式はLAN内でトークンがリング状に配置されたN/W内を一定方向で巡回し、他の端末がデータの送信を行っている間、トークンの獲得を待つ。
・ アーリートークンリリース方式は一定時間が経過するとトークンがネットワーク上に返される。
【token bass】トークンバスはトークンを論理的順序でリング状に巡回させていることから、トークンリングをバス型LANに適用したものとも言われる。トークンバスの最も有名な利用例はGeneral Motorsによって開発されたMAP(Manufacturing Automation Protocol)である。
【CSMA/CD: Carrier Sense Multiple Access with Collision Detection】LAN における媒体アクセス制御方式のうち、伝送媒体上でのデータフレーム衝突を検出する機能をもつ方式。イーサネットでデータを伝送する時に使われている。OSI参照モデルではデータリンク層(第2層)の話となる。
各ノードは伝送媒体が使用中かどうかを調べ、使用中でなければ送信を行う。LAN につながれた各端末は、まず LAN 上にデータが流れているかどうかを調べる。データが流れている時には、データが流れなくなるまで待つ。データが流れていないことを確認した後は、データの送信を開始する。つまり、各端末は LAN が空いている時にデータを送信できる。
送信されたデータは全ての端末へ向けて送信される。よって、受信側では自分宛てのデータであるかどうかを確認して自分宛てのデータなら受信を行い、それ以外は破棄する。 これが交互に繰り返されれば良いが、非常に短い時間で考えると複数の端末から同時に送信が開始されることもある。その場合、LAN 上でデータの衝突collision が起こる。
送信フレームの衝突が生じた時は、同時に送信した端末はそれぞれ一旦送信を停止して、それぞれ乱数に従った待ち時間待機し、その後に送出可能かどうかを調べる。
LAN上のトラフィック量(単位時間当たりの送出フレーム数)が増すと、衝突の頻度が増す。衝突発生時の再送動作によって、衝突の頻度が増すとスループットが下がる。ある値をピークとして、処理能力が一気に低下する。LAN上で衝突が発生する可能性がある一定の範囲をcollision domainと言う。
【Transmission Control Protocol/Internet Protocol】TCP/IPはインターネットで採用されている通信方法。インターネットを利用するには、この通信方式に対応したソフトを選ぶ必要がある。
インターネットの世界的な普及や利用者増大により、今やネットワークと言えばTCP/IPプロトコルのネットワークと言えるくらい、標準ネットワークアーキテクチャとして普及している(紫藤政義・誰でもできるパソコンLAN入門(広文社2001)23)。
TCP/IPは狭義ではOSIのTransport層に相当するTCPとNetwork層に相当するIPの二つを合わせたものである。しかし一般にはTCP+IPを指す場合よりも、TCP+IP+UDP(User Data gram Protocol)をまとめた総称として呼ぶ場合も多く、更にインターネット用通信プロトコルを含めて呼ぶ場合もある(玉川理英=御手洗毅・図解ソフトウェア開発の仕組みがやさしくわかる本(メディア・テック出版2002)90)。
TCPはデータ転送のやりとりのルールを規定し、パケットの順序制御や伝送誤りの制御を行う。
IPは正しい宛先にデータが届くための転送ルールを規定する。IPアドレスを定め、パケットの転送や経路選択を行う。
【Packet】パケットはデータ部とヘッダ部からなる。データ部は送信対象のデータである。例えば電子メールではメール本文やメール情報が分割され、データ部に格納される。ヘッダ部はIPヘッダとTCPヘッダに分かれ、IPヘッダには宛先IPアドレスや発信者IPアドレスが記録される。TCPヘッダには宛先ポート番号や発信者ポート番号が記録される。
【IP Address】IPアドレスはTCP/IPにおいてネットワーク上のホストを特定するものである。32ビットの値で構成され、ネットワークIDとホストIDの2つに区切って使用する。ネットワークパートはネットワークの番号を表す情報、ホストパートはそのネットワークに属する機器を一意に表す情報である。
TCP/IP によるネットワークでは、全体を大きなネットワークとして捉えるのではなく、小さなネットワーク同士が接続されているものとして考える。このネットワークの単位を決定する要素の1つにアドレスクラスがある。
IPアドレスはその値によってクラスA〜Eのアドレスクラスに分類される。アドレスクラスにより IPアドレスの用法、利用組織への割り当て数(1つのネットワークで使用できるホスト数)が異なる。ネットワークを構築する際には,接続する機器数に応じて,クラスA〜Cを選択する。 クラスD はマルチキャストという通信用の IPアドレス、クラスE は実験(研究)用として確保されているIPアドレスである。
ネットワークIDとホストIDの位置によって、IPアドレスは3つのクラスに分けられる。これはIPアドレスの先頭 4ビットまでで判別できる。例えば192.168.1.5という IPアドレスであれば、2進数へ変換し、先頭ビットが110であることから、クラスC である。
但しネットワークパートで決定されるIPアドレスの範囲すべてが利用できるわけではない。ホストIDが全て0のアドレス(network address)はネットワーク自体を表すために予約されており、ホストIDが全て1のアドレス(broadcast address)はネットワーク内の全ホストへ送信するためのブロードキャスト用に予約されているので、使用できない。例えばクラスC のIPアドレス 192.168.1.0 〜 192.168.1.255 であれば、先頭のアドレス 192.168.1.0 と最後のIPアドレス 192.168.1.255 は使用しない。
尚、サブネットマスクの導入により、network addressやbroadcast addressは必ずしも 0 や 255 となるとは限らなくなった。ネットワークに属する IPアドレスの範囲の中での先頭、最後を指すことになる。
|
クラス |
ネットワークID |
ホストID |
ホスト空間 |
該当するIPアドレス |
|
A |
7ビット |
24ビット |
約1,680万 |
0.0.0.0 〜 127.255.255.255 |
|
B |
14ビット |
16ビット |
約65,000 |
128.0.0.0 〜 191.255.255.255 |
|
C |
21ビット |
8ビット |
254 |
192.0.0.0 〜 223.255.255.255 |
【Subnet Mask】サブネットマスクはネットワーク番号を表すビット数を示す。利用可能なホスト数は、サブネットマスクのゼロの部分で表現できる数からネットワーク自身を表す全ビットゼロとブロードキャストアドレスを表す全ビット1を除いたものである。換言すれば、サブネットマスクの1の補数(全ビットを反転させた値)から1を引いたものとなる。
IPアドレスで「/nn」と記述した場合のnnはサブネットマスクのビット数を意味する。「/32」は、全ビットネットワーク番号となるのでIPアドレスとして不適切である。
100台のホストを表現するには、6ビット(63)では足りず、7ビット(127)必要なので、サブネットマスクは25ビット以下でなければならない。
40台のホストにIPアドレスを与える場合、5ビット(32)では足りなく、6ビット(64)必要である。IPアドレスは32ビットなので、サブネットマスクに必要なビット数は 32-6=26 以下となる。
サブネットマスクが異なるホスト間は、物理的に同じセグメントにあったとしても通信することができない。そのため、同じ物理セグメント間の通信でIPアドレスの設定に誤りがない場合、サブネットマスクの設定を疑う(新巻大輔=小島武史・MCP/MCSE攻略ハンドブック70-240編(リックテレコム2001)122)。
【Ipv6】IPv4(Internet Protocol version 4)ルーティングシステムにおいて、IPv4をサポートするノードと、IPv6をサポートするノードが混在する環境下で用いられる、IPv4互換のIPv6のアドレス形式は「0000:0000:0000:0000:0000:0000:XXXX:XXXX」である。アドレスは16進4けたで表現しており、IPv4アドレスをXXXX:XXXXとする。
【Port】ポートは特定の機器に伝送されたIPパケットを更に振り分けるための補助的なアドレスである。通常1つのホストで複数のサービスが稼動しており、特定のホストが受信したパケットをどのサービスが処理するか特定するために使われる。ブラウザでインターネットをしている時、メールソフトで送受信をした時、TelnetやFTPをつかっている時、ネットワークを介して何かしらの処理をする時には、必ずポートを利用している。
FAXで例えると、IPアドレスは「会社のFAX番号」、ポート番号は「部署名」に相当する(福永勇二「telnetでWebサーバに接続してみよう」@IT 2003.2.1)。別の例を用いるとサーバを家とすると、ポートは扉(出入り口)になる。扉の一つ一つを定められた人だけが通ることができる。そのため、使わないポートを開けておくというのは、家の扉を開けっ放しにするのと同じ状態である。
従って、本来の目的以外のポートが開いていれば、そこがシステムの弱点に鳴っている可能性がある(「オープンソースでどこまでできる」日経システム構築(2003.12)174)。クラッカーやウイルスはそこから侵入する。それらから、身を守るために、使わないポートは閉じておく必要がある。
【Port Number】IPの上位プロトコルであるTCP, UDPそれぞれに0-65535までのポート番号を指定できる(「頻出Q&A」日経Windowsプロ(2003.9)92)。ポート番号はインターネット技術の標準化団体Internet Engineering Task Force, IETFがRFC1700として規定しており、サービス毎に決まっている(高橋基信「XP Proにファイアウォールを導入したらファイル共有がされなくなった」日経Windowsプロ(2003.9)72)
ブラウザを使用してサイトにアクセスした場合、ブラウザはサーバの80番ポートを通って、サイトのデータを取得する。FTPでファイルを送受信する時には21番ポート、telnetでは25番ポートを使用する。1台のサーバでWebサーバやメールサーバーが構築できるのは、ポート番号が違うためである。同じIPアドレスでも、ポート番号が違うことでサーバは提供するサービスを間違えることなく処理できる。
|
プロトコル |
ポート番号 |
|
FTP-dataファイル転送(データ) |
20 |
|
FTPファイル転送(制御) |
21 |
|
SSH |
22 |
|
telnet |
23 |
|
SMTP |
25 |
|
domainコンピュータ名からIPアドレスへの変換 |
53 |
|
http |
80 |
|
NTPコンピュータの時計あわせ |
123 |
|
NetBIOS |
139 |
|
https(SSL) |
443 |
|
ファイル共有 |
445 |
【Domain Name System】TCP/IPネットワーク環境において、ホスト名から、対応するIPアドレスを取得できるようにする仕組み。コンピュータ名を指定してDNSサーバへ問い合わせることで、ホスト名からIPアドレスを探索することができる。
DNSは下記の課題を有している。
・ DNSのパフォーマンスを高める必要がある。インターネットは社会インフラとして重要性が増しており、DNSが大量のトラフィックを処理する状況が生まれている。トラフィックを増大させる攻撃に対する耐性も必要である。
・ セキュリティ対策が必要である。インターネットという社会インフラを麻痺させて楽しむ一握りのユーザーがいる。
【BIND】現在多く採用されているDNS実装方式。BIND Version8には、短時間に大量のアクセスを受け付けるとサーバが異常動作を起こす、buffer over flowの脆弱性が存在した。BINDをVersion9にするにあたり、スケーラビリティの向上、セキュリティの向上、ゾーン情報等の更新に関するプロトコルの変更よる効率化が図られた。しかし一方でパフォーマンスが大きく低下したと指摘される。
【Application Protocol】
・ TELNETはリモートシステムへアクセスするための仮想端末機能を実現する プロトコル。
・ SMTP (Simple Mail Transfer Protocol)はインターネット上で電子メールを送受信するプロトコル。
・ POP (Post Office Protocol)はリモートクライアントがメールサーバーのメールボックスからメールの取出、削除に使用するプロトコル。
・ HTTP (Hyper Text Transfer Protocol)はWWWサーバとWWWブラウザ間で、ハイパーテキストを送受信するためのプロトコル。
・ NNTP: Network News Transfer Protocolはインターネット上のニュース配信で用いられるプロトコル。
【Error Mail】発信したメールが何らかの理由により相手先(送信先)に届かなかった場合は、相手先(送信先)のメールサーバーが、その理由をエラーメールと判断し発信元に返送する。最近では発信元や題名をエラーメールのように装って、送られてくる迷惑メールもある。返信されるメールは以下のような情報が添付される。
・ User unknown(550):宛先のメールアドレスに間違いがある可能性がある。メールアドレスの文字等に誤りが無いか確認してから再送する。
・ Host not found:宛先のメールアドレスのドメインに間違いがある可能性がある。
・ temporarily over quota:送信先のメールボックスの容量が一杯である。
・ Due to the following SMTP relay error (553):接続先サーバにてメールの受信を拒否している可能性がある。送信先アドレスでスパムフィルターや迷惑メール防止機能を使われていないか、確認する。
【IP Security】IPSecはネットワークセキュリティ技術でパケットを暗号化して、TCP/IPネットワーク上の暗号通信を行う。改ざん防止のために認証情報を賦課することもできる(木村裕一・情報セキュリティアドミニストレータ過去問題&分析(経林書房2003)172)。
暗号化はIPネットワーク層に適用されるので、ネットワーク通信のために特定のプロトコルを使用する多くのAPは暗号化を意識する必要はない(Microsoft Windows 2000 Serverリソースキット1導入ガイド(日経BPソフトプレス2000)392)。
IPsecはNAT越えができないが、IPsecパススルーやNATトラバーサルでNATを通過させるという新しい補完技術が現れている。
IPsec はもともと次世代 IP 規格である IPv6 のセキュリティフレームワークとして考えられたが、カプセル化と暗号化を標準でサポートするため、インターネットを使うVPNのプロトコルとして利用されるようになった。
【File Transfer Protocol】FTPはTCP/IP(ソケットインターフェース)上に構築されたファイル転送用のプロトコルである。ホスト間でファイル転送を行う。インターネットでHTTPやSMTP/POPと並んで頻繁に利用されている。身近なところではホームページを公開する時に、FTPサービスを使ってプロバイダや大学のWebサーバにHTMLファイルや画像等をアップロードする。
簡単なコマンドを送信するだけでリモートコンピュータ上のファイルを自在に取り扱うことができる(古市栄治・オペレーティングシステム入門新版(日本理工出版会1998)50)。但し転送の設定は厳密なものであり、たった1文字の入力の間違いがあるだけで接続できなくなる(川名和子・はじめて作るホームページ(技術評論社2000)167)。
制御用コネクションとデータ転送用コネクションの2つのTCPコネクションを使用しながら動作する(デジタルアドバンテージ「FTPをファイアウォール・フレンドリ・モードに変更する方法」Windows 2000 TIPS @IT 2001/05/15)。
【Telnet】TCP/IP ネットワークで遠隔操作を実現し、仮想端末機能を提供するためのプロトコル。Windows XP のリモートデスクトップのように接続先コンピュータのデスクトップをマウスで操作する GUI ではなく、CUI方式での操作となる。
Telnetはネットワークプロトコルなので、クライアントの OS を問わずサーバを遠隔操作できる。サーバをUNIX、クライアントにWindows や Mac OSという形態も可能である。
Telnetを利用するためには,接続先側でTelnetサーバを起動している、Telnetの接続サービスが許可されている、ユーザーID とパスワードが付与されていることが前提。リモート側ではサーバまで接続できるネットワーク環境とTelnetクライアントを実行できるマシン環境が必要。Telnetクライアントには専用のソフトウェアを使用するが、OS にプリインストールされている場合もある。
【SNMP: Simple Network Management Protocol】簡易NW管理プロトコル。TCP/IPネットワークのNW管理プロトコル。NW機器を管理するための通信プロトコルの一種。
SNMPはNW上に存在する管理対象の機器と、その管理を司る機器(管理ステーション)の間で、管理情報をやり取りするための通信プロトコルである。通信にはUDPを用いており、TCP/IPをベースとした管理プロトコルの標準と言える。SNMPはRFC1157で規定されている。
SNMPでは、管理対象機器にはagent、管理ステーションにはmanagerと呼ばれるSWがそれぞれ常駐して通信を行う。管理されるのはNW機器の性能や構成、障害、セキュリティ、アカウントの5種類である。managerやagentは、これらの管理情報をミブMIB: Management Information Baseと呼ばれる独自のDBに保存する。agentはmanagerからの要求に応えてMIBから必要な情報を送信する。
SNMPの特徴は、その名が示すようにプロトコルが単純なことである。例えばmanagerとagentの間でやり取りされるSNMPの命令commandや応答responseは、基本的に6種類と少ない。特にagent側は、障害発生などのイベントをmanagerに通知することを除けば、全てmanagerからの要求に応じてMIBから情報を引き出して送信するという受け身の動作だけなので、プログラムはコンパクトで実装も容易である。プログラムサイズが限定されるネットワーク機器(e.g. ハブ、ルータ)にもSNMPはよく実装される。逆にmanager側は、エージェントが担わない仕事を全てこなす必要があるので、複雑になりやすい。
イーサネット カードを例に挙げると、イーサネットカードのSNMP対応というのは、そのデバイスドライバがSNMP agentと連携して、イーサネットカードのステータスや障害といった情報を引き出せる、ということである。つまりイーサネットコントローラが、ステータスや障害などの情報をSW側(この場合はデバイスドライバ)に通知すると、デバイスドライバがSNMP agentと情報をやり取りする。
trapはSNMP のメッセージタイプのうち、異常や事象の発生をエージェントからマネージャに知らせるために使用する。
【DHCP: Dynamic Host Configuration Protocol】動的ホスト構成プロトコルは、アドレス構成管理の複雑性を軽減するために設計された TCP/IP 標準規格であり、サーバーコンピュータを使用して、ネットワークで使われる IP アドレスとその他の詳細な構成情報を中央で管理する。
具体的には、各クライアントに、起動時に動的にIPアドレスを割り当て、終了時にIPアドレスを回収する。サーバー側では、IPアドレスをDHCPクライアント用にいくつかまとめて用意しておくだけでよい。同時にゲートウェイアドレスやドメイン名、サブネットマスクその他の情報をクライアントに通知することもできる。
DHCPのお陰で、LANケーブルでNWに物理的に接続すれば、NWに必要な設定情報が自動的に取得されるため、NW通信が可能になる。DHCPサーバーで値さえ設定しておけば、後はクライアント自身が必要に応じて自動的に設定値を読み取り設定が行なわれ、いちいち全てのクライアントに対して個々にIPアドレスを割り振り、管理する必要がなくなる。NWに関する知識がない一般ユーザーでも簡単にNWに接続させることができるし、NW管理者の作業も減る。
DHCPサーバーからIPアドレスだけでなくいろいろな設定値が自動設定されている。BOOTPでは単にクライアントに使用させたいIPアドレスを通知するのみであった。
・ サブネットマスクアドレス
・ デフォルトゲートウェイアドレス
・ DNSサーバーアドレス
・ 割り当てられたIPアドレスの利用可能期間(リース期間)
・ リリースされたIPアドレスの再プール
DHCPは、NAT / IPマスカレードと組み合わせることによってインターネット側からLAN内部に侵入することを困難にする面でセキュリティにプラスになる一方、LANに物理的に接続できる端末には自動的にIPアドレスを与えてしまうためLAN内部の脅威に弱いという面も持っている。端末のMACアドレスによる制限を用いてセキュリティレベルを上げることも可能だが、MAC詐称という技術もあり万全ではない。
無線LANを使用していると、電波が届く範囲に存在する端末はIPアドレスを取得できることになってしまうため、無線LAN環境でDHCPを利用している場合は、セキュリティの設定とLAN利用状況の監視に注意が必要である。
【proxy server】内部ネットワークのクライアントが外部のサーバと通信する場合、中継役となりクライアントの代わりにサーバへ接続する。Webページ等のインターネット上のコンテンツへのアクセスを代行して行う。proxyは代理と言う意味。代表的なプロキシサーバソフトとしては、SquidやApacheがある。
一見、コンテンツへのアクセスが迂遠になると感じられるが、以下のメリットがある。
・ キャッシュ機能・・・プロキシサーバでは、データのキャッシュを行うことができる。例えば、複数のユーザーがプロキシサーバを利用してインターネットへアクセスする場合、あるユーザーがアクセスした情報を別のユーザーがアクセスする時に、インターネットから情報を取得するのではなくプロキシサーバから情報を得ることで、表示の高速化が可能になる。
・ ファイアウォール機能・・・プロキシサーバを用いることで外部ネットワークから見えるのはプロキシサーバとなる。インターネットでアクセスする際、アクセス先のサーバ管理者がアクセスログを取っていれば、そこにアクセスするたびにホスト名やIPアドレス、OSの情報など様々な情報をアクセス先に通知していることになる。企業で社内のアドレスがむやみに外部に知られてしまうと、DoS攻撃の対象になってしまう場合もあるので、このような場合にプロキシサーバは有効となる。
・ コンテンツのフィルタリング機能
【Modem】変復調装置(変調装置)。アナログ通信回線(公衆電話回線)を用いてデータ通信を行うための信号変換装置。
通信回線上のアナログ信号は、コンピュータや端末が利用するデジタル信号とは構成が異なるため、両者の変換を行う。コンピュータから出力されたデジタル信号を、モデム内部で一旦アナログ信号に変換し、公衆電話回線を通して相手側のモデムに送信。受信側のモデムでは、送られてきたアナログ信号をモデムでデジタル信号に変換しコンピュータに伝える。
最近は電話回線を利用して音響よりも周波数の高い信号を送受信するADSLが急速に普及し始めているが、この場合にもデジタル信号を高周波信号に変換するADSLモデムが使われている。通信速度は1.5MBから8MB, 12MBと飛躍的に進化しており、40MBのものも出現している。
【Terminal Adapter】ISDN 回線に、ISDN 対応機能を持たない通信機器(電話機、FAX装置、PC)を接続するときに必要となる機器。ISDN を利用して、インターネットサービスプロバイダ(ISP)のアクセスポイントにパソコンを接続する場合に使う。非 ISDN 端末のインタフェースと ISDN ユーザー・網インタフェースとの変換を行う。
ADSLの普及により、一般家庭ではあまり使われなくなったが、企業ではまだまだ専用線や広域イーサ網のバックアップ用回線として利用されている。
【Digital Service Unit】ISDN とパソコンをつなぐときに必要な回線終端装置。元々は単独の機器だったが、今は TAに内蔵されている。
端末装置とデジタル回線の間に入り、符号変換や多重化を行う。コンピュータが文字列からビット列に変換した信号を、伝送に適した形のデジタル信号に変換する。
【switching hub, switch, layer 2 switch】データリンク層で動作するネットワーク機器の1つ。データリンク層で動作する機器としては、他にブリッジ(bridge)がある。スイッチはブリッジと同様に MAC アドレスを解釈して、レイヤ2レベルでのフィルタリングを行う。受信したパケットを、宛先MACアドレスが存在する LAN ポートだけに転送する。ブリッジと異なる点は、ブリッジではSWベースで処理が行われるのに対し、スイッチは ASIC と呼ばれる専用のチップで処理を行うので、高速な処理が可能になる。
スイッチはVLAN によってブロードキャストドメインを分割したり、ポート密度が高かったり、フレームの転送方式が複数あったり、フロー制御や全二重通信、オートネゴシエーション機能があったりと様々な機能を備えている。
データを検索できるように体系化したもの。データを保存・抽出できるようになったデータ集合。データを一元管理しプログラムから独立して扱うことができるようにしている。DBを管理、操作するS/WをDBMS(Database Management System)という。
【ACID特性】原子性(Atomicity)、一貫性(Consistency)、隔離性(Isolation)、永続性(Durability)の4つのトランザクション特性。
・ 原子性:トランザクション完了時の状態が処理済、未処理の何れかである。
・ 一貫性:トランザクション処理が行われるDBの一貫性を保てる。
・ 独立性:複数のトランザクションを同時に実行しても順に実行しても結果が等しい。
・ 耐久性:トランザクションが完了すれば、障害等で結果が損なわれることがない。
【meta data】データそのものではなく、データに関する事項を記したデータ。データについてのデータ(後続データ)。データ定義情報としてスキーマに記述されるデータ。著作者、コンテンツ概要、フォーマット、ID等の属性情報。
【Relational Database】1件のデータを複数の項目(field)の集合として表現し、データの集合をテーブルと呼ばれる表で表す方式。中小規模のDBでは最も一般的な方法。
各データの最小単位をレコードと呼び、表の中の行で表される。キーとなるデータ(e.g. ID番号、名前)を利用し、データの結合や抽出を容易に行うことができる。必要であればテーブルを複数持たせ、テーブル間の関係を集合論的に結びつけ、膨大な量のデータを簡単に処理させることができる。
【関係データベースで用いられる演算】RDBは3つの基本操作により利用される。
・ 選択selectionは、表の中から特定の条件に合致した行を取り出すこと。表から条件に合った組を取り出す関係演算。
・ 射影projectionは、表を構成する項目の中から、特定の項目だけを取り出して、新しい表を作成する。表から特定の「属性」を取り出す関係演算。
・ 結合joinは、ある表の照会結果と、別の表の照会結果とを合わせて一つの表にする。複数の表を共通の列(属性)を用いて結合し、新しい一つの表を作成する操作。
【Primary Key】主キーはテーブル内のレコードを一意に特定するための項目である。1つの表の中では主キーの値が同じ行は存在しない。一意性を保つため、主キーはNULL値とならない項目でなければならない。1つの項目で主キーとなる場合もあれば、複数の項目を合わせて主キーとなる場合もある。
DB設計では,テーブル内で重複しないことがわかっている項目を主キーとする。例えば住所録テーブルでは項目「氏名」が主キーになると思われますが、現実世界では同姓同名の方もいる。「氏名」を主キーとすると,同姓同名のレコードは登録できなくなってしまうので、こうしたケースではコードの項目を加え、これを主キーとすることで同姓同名であっても登録できるようにする。
【Structured Query Language】IBM社が開発したDB操作用言語で、RDBの操作に使用する。アメリカ規格協会ANSIやJISで標準化された世界標準規格。
・ DBの条件指定、ソート等、高度な検索が可能。
・ インデックスを持つことにより、高速に検索可能。
・ 行単位、ファイル単位のロック機能により、排他制御が可能
・ トランザクション管理機能。トランザクション単位の更新や復帰が可能
・ アクセスログにより復旧が可能
SQLには大別してデータ定義言語data definition language, DDLとデータ操作言語data manipulation language, DMLがある。DB作成時に、DDLで表名や列名、データ型を定義し、表に対して、DMLでデータの挿入や検索等の操作を行う。
【stored procedure】典型的な一連のSQL文をあらかじめコンパイルしておき、サーバのDBに格納しておく。クライアントは必要なコンパイル済みSQLを呼び出し実行する。 これにより、SQL文をそのまま実行するより通信量、通信回数、クライアントとサーバの負荷とも大幅に少なくすることができる。クライアントとサーバ間のSQL文の通信負荷が問題となった時の解決策になる。
【3層スキーマ】
・ 外部スキーマ: DB利用者に必要なデータの定義。ビュー。
・ 概念スキーマ: DBで管理する対象の定義。テーブル。
・ 内部スキーマ:データの物理的な格納方法。インデックスやデータファイル配置。
【view】既に定義されているテーブル構造等を基にして、論理的なデータ構造を提供する仕組み。3層スキーマでは外部スキーマに相当。
ビューを通して間接的に実際のテーブルへアクセスさせることで、機密性の高いデータやテーブル構造を隠蔽することができる。テーブル構造が変更される場合でも、ビューのデータ抽出方法を変更するだけで、表面上は従来通りのデータアクセスを提供することができる。複数の表からビューを定義することも可能。ビューはcreate view文で作成する。
【DBの再編成】HD上のデータを整理整頓し、効率よくデータを格納していく処理。DBを長期間運用し、レコードの追加や削除、フィールドの更新を行っていくと、データの格納効率が落ちる。データベース製品によってその過程は様々だが、結果的にはレコードを抽出する際により多くのHD領域を読み込まなければいけない状況となる。そのため、データアクセスのパフォーマンスは劣化していく。こうした現象が現れてきた時は再編成を行う。
【分散DB】集中DBは一つのサーバ上に構築されたDBを複数のユーザーがアクセスする。分散DBは、複数のサーバに分散して置かれたDBをそれぞれのサイト・サーバからあたかも単一のDBの如く取り扱えるようにしたもの。分散の理由は下記の通り。
・ 負荷の分散(データベースの内容は同じで、一貫性の維持が重要)
・ セキュリティの分散(データのセキュリティレベルに応じて分散する)
・ 種々のデータベースの有機的活用
【2相コミット】分散DBシステムにおいて、一連のトランザクション処理を行う複数サイトが矛盾なく更新するための方式。以下の2フェーズで更新(commit)処理を行う。
・ マスター(コミット指示を最初に受けたコンピュータ)は、更新対象となるデータを保有する全てのDBシステムに対し、コミット準備を指示(コミットできるかどうかを問い合わせる)。各DBシステムは、コミットの準備ができれば、コミット準備完了を指示する。
・ マスターは全てのDBシステムから、準備完了の返答があれば、各システムに対しコミット実行を指示。コミット実行の完了後、マスターに応答する。トランザクション処理中に1台でも異常が発生すれば、マスターは全システムにロールバック処理を命じる。
2層コミットを行う為には、同時に更新しようとする分散DBの全てがコミット可能かどうかを判断する為の機能が必要である。
【DBMS におけるlog file】DBの更新前後の値を書き出しておいた(更新履歴を書いた)ファイル。ログファイルを作成しておくことで、DBに障害が発生した場合、ある時点のバックアップデータにログファイルを適用することでDBを障害前の段階まで回復させることができる。
近年の急速な情報化の中で、企業情報、個人情報に限らず全ての情報が量的に益々膨らみ、かつ重要性を増してきている。1990年代半ば以降、インターネットを軸としたネットワークが、企業や家庭に広く普及するにつれ、セキュリティが大きな課題として浮上してきた(加山恵美「企業の基盤を支えるのがネットワークエンジニアの役割」@IT 2003.11.7)。組織や個人それぞれの観点からセキュリティを考えなければならない時期に来ている。
セキュリティは、被害を受けた人はコストに換え難い大切さを実感するが、特に個人は被害を受けるまでは金をかけたがらない部分がある。加えてセキュリティ対策は素人にはハードルが高い(頻繁に発生するWindowsのUpdate、毎日ように更新されるパターンファイル、1年でライセンスが切れてしまうウィルスチェックソフト、殆どの人がデフォルトで利用しているウィルスチェックソフトの設定)。
今日、セキュリティ事故によって被る直接的及び間接的な損害、並びにその対策費用は、経営的な観点からも無視できなくなっている。経営者はセキュリティを経営上の課題として認識し、セキュリティ対策に取り組んでいかなければならない。
情報セキュリティ対策は組織によってそれぞれ異なる。情報セキュリティ対策では、きめ細かいルール作成とその実施、及び実施のチェックが必要である。情報セキュリティ対策は行えば行うほど手間と費用がかかる。ために、情報セキュリティ対策はないがしろにされがちである。経営陣にセキュリティの重要性を説き、セキュリティマネジメントをしっかりと行わねばならないことを提言する必要がある。
組織としてセキュリティレベルを一定に保つことが非常に重要である。仮に1万人の従業員の中で9999人がパスワードを完全に管理していたとしても、1人がパスワードを漏らせば、そこからネットワークに侵入されてしまう(株式会社コンサルティング・ファーム「ISO塾!情報セキュリティ・コースNO.26」2003.10.31)。
【情報セキュリティの3要素】英語の頭文字を取り、セキュリティのCIAと呼ばれる。
・ 機密性confidentialityはアクセスを許可された者だけが許可された範囲で情報にアクセスできること。
・ 完全性integrityは情報及び処理方法が、正確であること及び完全であること。データの正当性・正確性・網羅性・一貫性を維持すること。
・ 可用性availabilityは許可された利用者が、必要な時に、情報及び関連する資産にアクセスでき、正常なサービスを受けられること。
【脅威】情報セキュリティを脅かし、損失を発生させる直接の原因となるもの。一般に以下のように分類される。
・ 物理的脅威:侵入、破壊、故障、停電、災害等
・ 技術的脅威:不正アクセス、盗聴、コンピュータウイルス、ファイル等の改竄・消去、Dos攻撃、なりすまし等
・ 人的脅威 :誤操作、持ち出し、不正行為、不正利用、パスワードの不適切管理等
【脅威の認識】
・ 現状の脅威に関する情報を網羅的に収集する
・ 収集した情報を、分類項目(情報の改竄、情報の漏洩、資源の浪費、資源の不正利用、人による過ち)に整理する
【人的脅威】人的脅威は物理的脅威や技術的脅威に比べ、企業内部からの脅威の中心となるものである。情報セキュリティの管理項目のガイドラインJIS X5080(ISO/IEC17799)は、人的セキュリティの対策を3つのカテゴリに分ける。
・ 職務定義及び雇用におけるセキュリティ
Ø セキュリティを職責に含める
Ø 要員審査およびその個別方針
Ø 機密保持契約、雇用条件
・ 利用者の訓練
Ø 継続的な情報セキュリティ教育・訓練
Ø 日常的な注意の喚起
・ セキュリティ事件・事故及び誤動作への対処
Ø セキュリティ事件・事故、セキュリティの弱点、ソフトウェアの誤動作の報告
Ø 事件・事故からの学習
Ø 懲戒手続、ルール違反者への罰則適用
技術面、設備面の対策だけでセキュリティ事故を防ぐことは難しく、組織体制や教育などの運用面での対策を適切に組み合わせて対応する必要がある。人的セキュリティを管理するために、情報セキュリティポリシが策定され、管理体制が確立され運営されていなければならない。人的セキュリティでは従業員全員のレベルを上げることが肝要であり、1人1人の意識を高める体制を構築することが必要である。これにより、従業員のセキュリティ意識が高まり、通常の仕事の中で組織のセキュリティ基本方針が維持され、不正行為の抑止に繋がる。
内部関係者による犯行を防ぐためには、日常のコミュニケーションも大切である。従業員が日頃と異なる言動を行っていると早期に感じることができれば、事前に事故を防ゲル場合もある。遅刻・欠勤の増加、就業時間が不規則、多重債務、相互牽制が効かない職場等が不正の土壌となりがちである。
【脆弱性】損失を発生しやすくしたり、拡大させたりする要因。情報資産の機密性、完全性、可用性が脅威から防御されていない点。物理環境的対策(ex.入退室管理、設備のメンテナンス)、人的対策(ex.ユーザー教育、マニュアル、監視体制、監査)、技術的対策(ex.コンピュータウイルス対策、バックアップ)が実施されていないため、情報資産が脅威にさらされていることを指す。脆弱性分析は、技術的観点だけでなく、人的・物理的観点からも分析する必要がある。
【incident response】セキュリティ対策を現実的に実施する考え方の1つ。これまで情報システムのセキュリティを守るには基本的な対策を徹底すればよいと言われてきた。しかしincident responseは完全な対策はあり得ないと発想を転換し、セキュリティが破られたときの復旧手段を整備することに重点を置く。
【サーバの要塞化】OSやアプリケーションの機能を最小限にしたり、設定を適切に行ったりすることで、外部からの不正なアクセスを制御し、被害を最小限にすること。一時的なことではなく、継続的にセキュリティ情報の収集を行い、適切に対応することが大切。
【monitoring】Monitoringはユーザーがコンピュータ資源をどのように利用しているかの実態を常時監視・記録し、異常時には速やかに記録を分析して対処(不正の摘出)することである(受験振興会編・情報処理システム監査技術者試験関連知識編(啓学出版1987)115)。
社内ネットワーク利用状況の監視では、Webの閲覧状況、メールの受発信状況、ファイルのダウンロードやアップロード、各種サーバへのアクセス状況や処理の実行状況等がチェックされることが多い。WEBメールを使用禁止にする企業もある。
注意点として、プライバシーや従業員の反発、ネットワーク監視者の技術的・モラル的な信頼性がある。組織のセキュリティポリシを社員に浸透させる必要がある。
【漏洩】機密情報が漏洩した場合の会社の損失額は大きい。特に個人情報の場合、企業の信用が失墜し、営業の契約率低下・顧客離れが生じ、売上・利益が損なわれる。損害賠償を命じられると経営が成り立たなくなる企業も出てくる。
【盗聴】電話機や端末を使用してコンピュータネットワークからデータを盗用する方法である。音声データに限らずパケットも対象となる。インターネットでは、データをパケットという単位に分割して送受信しており、パケットを拾い集めて元のデータに再構築し、元のメールやデータを読み取ることができてしまう虞がある。
インターネットはオープンなネットワークであり、誰がどこで盗聴しているか分からない。インターネットでは通信相手のサーバに行き着くまで、どのようなルートを通るか分からないし、ルート上にたくさんのISPが介在する。
最近は無線LANも普及し、街中で簡単に盗聴できてしまう。悪意はなくてもホームネットワークで無線LANを利用していたら、知らない内に隣家の無線LANアクセスポイントを使っていたということもありえる。そのため、重要な通信はデータを見られてしまうことがありうると思っていた方が良い。
【サラミ法】多数の資産から、全体への影響が無視できる程度に僅かずつ詐取する方法である。1件当たりの被害が少ないので発見されにくいという特徴がある。
例えば金融システムの利息計算プログラムが標的となる。60年代末に発覚したニューヨーク在住の銀行員の犯行では、顧客の預金利子を計算するプログラムで端数処理を四捨五入ではなく、全て切り捨て計算とし、剰余の利息を自分名義の口座に自動振込するプログラムを付加して巨額の不正入金を得た。
サラミ型コンピュータ犯罪の防止策は下記の通り。
・ プログラムそのものが適正な仕様通りに作成されているかの監査
・ プログラムおよびシステムの運用に過誤や不正がないかどうかの監査
・ 間接的な対策
Ø 情報処理関連技術者の技術教育や人間形成の課程におけるコンピュータ倫理教育の検討
Ø 抑止力としての適正な法の確立と運用、被害への救済策の樹立
他人が作成したプログラムについて、バグあるいは意図的に隠された不正を見抜くのは大変なことで、非常に技術力を要するし、見つけきれないということも多々ある。守る側の立場としては、発見の端緒を逃さずつかむために、日常のシステム運用とデータの監視という部分の重要性が改めて問われる。
【SPAM】不要なメールや掲示板への書き込み等、ネットワーク上を飛び交う無数のメッセージの中で、受信者にとって不要なものを指す。特に不要な商用(宣伝)メールを指すこともある。ジャンクメールとも言われる。
語源はアメリカのHormel Foods社が販売する豚肉加工品の缶詰の名称。このSPAMの缶詰をネタにした Monty Python's Flying Circusというイギリスのコントの中でSPAMと連呼したのが語源となったと言われる。
スパムは受信者の意向とは無関係に短時間のうちに大量に送られる。スパムの被害として下記があげられる。
・ 業務の生産性の低下・・・多量に送られてくる業務に関係のないメールによって、本当に必要なメール、急いで返事をする必要があるメールを探し出すのが大変になり業務に支障をきたす。
・ システムと管理者への負荷・・・大量に送りつけられてくるメールによって、メール配信の遅延やサーバーのダウンといったシステムの支障をきたし、管理者がこの処理に追われる。
・ ビジネスやブランド・社会的評判への支障・・・メールサーバーのダウンなどの事象により利用者に迷惑を与えたり報道されたりすることで企業やブランドの社会的評判が悪くなる結果につながる。
・ スパムメールの不正中継(第三者中継)により加害者になってしまうこともある。
Ø メールサーバーの停止を余儀なくされ、苦情対応に追われる。
Ø スパムメールの発信者やセキュリティの甘い会社と思われ、企業(団体)イメージの低下を招き、社会的信用の失墜となる。
Ø ORDB: Open Relay Databaseに登録され、結果、自分たちのドメインからメールを送信しても受信してもらえない事態に見舞われる。ORDBは不正中継が可能なホストのDBで、このDBに登録されているホストから送られたメールの受信を拒否するメールサーバーも多い。
メールサーバーの設定を以下のようにすることで、不正中継を防ぐことができる。下記条件に合うメールのみを中継し、それ以外のメール転送をオフにする。
・ 自サイト内の利用者が任意のアドレス宛に送信するメール
・ 任意のアドレスから自サイト内の利用者宛に送られてくるメール
スパムメールの脅威はファイアウォールでは防ぐことができない。受信者レベルの対策としては、メールの送信者で電子メールをフィルタリングすることが多い。
【chain mail】不幸の手紙のように、メッセージの受信者に、受信メッセージを他の人に転送させることを目的としたメール。チェーンメールの濫用は、ネットワークのトラフィック増大やメールサーバの負荷増大の原因となる他、不正確な情報によるパニックや混乱の原因ともなるため、ネチケットに反するとされる。
不正アクセスの手段の一つ。元々は社会工学と訳され、学問の一つとして認識されていた。近年、コンピュータによる不正アクセスやセキュリティなどへの関心が高まる中で現在の意味が定着した。
コンピュータ技術や機械技術を駆使して行われる不正アクセス(ex. ブルートフォースアタック)の為の手段ではなく、人間の社会的な行動によってパスワード情報や個人情報、企業の機密情報等を入手する手段である。
ソーシャルエンジニアリングに類する行為は、コンピュータの世界に限らず日常の中で容易に起こり得る。ソーシャルエンジニアリングには様々な手口があり、更にそれぞれの手口を組み合わせることで目的の情報を効率的に入手することができる。
【trashing】ゴミ箱漁り(スキャビンジング、ダンプスターダイビング)はオフィス等から出たゴミの中から、パスワード情報やそのヒントになる情報、機密情報を入手する方法。ゴミを捨てる人にとってゴミは無用なものと判断してしまいがちだが、犯罪者にとっては有益な情報となりえるため、ゴミの廃棄に対する危機意識を高める必要がある。
・ 深夜にゴミ収集所に忍び込みゴミを漁る。
・ 清掃員になりすまして内部からゴミを漁る。
・ ゴミの回収業者になりすましてゴミを回収する。
・ 廃棄されたコンピュータのHDを回収しデータを読み出す。
【のぞき見】通常、重要情報がすぐ人の目に付く場所に散乱している状況は考えにくいが、実際には意外と簡単に情報をのぞき見ることができる。商談や面会中に席を外した際に、メモ書きや手帳、コンピュータを見られることもある。
・ ディスプレイに貼ってある付箋紙に記入されてあるパスワードや内容を見る。
・ 入力中のパスワードをのぞき見る。
・ パスワードや重要情報などの会話を盗み聞く。
・ 不在中にメモや手帳、書類やコンピュータのデータをのぞき見る。
・ ビデオカメラ等に情報を撮影する。
【構内侵入】実際に建物内に侵入する行為。内部に侵入できた際には、更にトラッシング、のぞき見などを行ったり、内部のコンピュータを使用してネットワークへの侵入を行ったり、外部から内部へ侵入する為のプログラムを忍ばせたりすることができる。
・ 偽装や拾得したIDカードなどで侵入する。
・ 同伴者の振りをして、他人について侵入する。
・ 清掃員や従業員になりすます。または本当に清掃員や従業員になる。
・ 別件の訪問のついでに侵入する。
・ 実際に従業員や契約社員になって企業内部から機密情報を入手する。
【なりすまし】電話等で他人になりすまし、情報を聞き出したり、情報を変更させたりする手口。この「なりすまし」には最も手口が多彩で様々なテクニックがある。
・ システム管理者になりすまし、ユーザーをだます。
・ ユーザーになりすまして、システム管理者をだます。
・ 初心者、他部署の上司、重役になりすます。
・ 公共機関(警察、電話会社)の人間になりすます。
・ 取引先、顧客や見込み客になりすます。
・ 外国人になりすます。
・ プロジェクト関係者になりすます。
【Firewall】外部からの侵入を防ぐアクセス統制対策。インターネットや他の組織のネットワークからの不正アクセス等の脅威が内部ネットワークに被害を及ぼさないようにするために、ネットワークの境界に設ける防火壁。
一つの方法として、インターネットと内部ネットワークの間にゲートウェイを設置し、これを経由して内部ネットワークとインターネット上のやり取りをする。インターネットから内部ネットワークへのアクセスの際、特定の相手(IPアドレス)やAPによるパケットしか通さないような制限を設ける。インターネット上からのファイル転送を禁止することもできる。ファイアウォール機能は汎用のPC, OSでも実現できる。
【Callback】コールバックの手順は下記の通りである。
1.クライアントマシンからリモートアクセスサーバーへダイヤルアップ接続を行う。
2.リモートアクセスサーバーはクライアントマシンに対してユーザー名とパスワードを問い合わせ、認証を行う。
3.認証が完了するとリモートアクセスサーバーは接続を一旦遮断する。
4.事前に登録してある電話番号にリモートアクセスサーバーが、折り返し電話をかけて、接続完了となる。
【One Time Password】外部からアクセスする人を認証するための技術。認証のためのパスワードを毎回変更し、不正アクセスの防止を狙ったものです。一言で言えば使い捨てパスワードである。
具体的には、まずクライアント側で決められたデータと時刻を用いてある演算を行い、そのデータをサーバに渡して認証を行う。サーバ側では、同じアルゴリズムで演算を行い、チェックする。これにより、パスワード自体を通信経路に流さないので、途中で盗聴される心配がない。時刻が変われば認証データも変わるので、セキュリティも高まる。
【Single Sign-On】認証を必要とする複数のAPを使用する際、1回の認証のみで、許可されている全システム資源に適切にアクセスできるようにするもの。複数のシステム資源に対してそれぞれIDとパスワードを設定することがセキュリティ上、理想的ではあるが、利用者にとって複数のIDとパスワードを覚えなければならず負荷がかかる。パスワードを覚えられないため、メモで残したり、単純なパスワードを設定したりしてしまう恐れがある。
Single Sign-Onを利用することによって利用者の利便性を高めることができる。しかし、認証方式が非常に安易で脆弱なものだとセキュリティレベルが低下してしまう。そのため導入する際は、それぞれのシステムやサービスのセキュリティレベルを比較し、選定する必要がある。
【IC Card】キャッシュカードやクレジットカード大のカードに、演算処理や記録機能を行うために設計された半導体集積回路(IC)チップを内蔵したもの。セキュリティ分野や決済分野(電子マネー、テレホンカード)に応用されている。磁気カードに比べ、100倍近いデータを記録でき、データの暗号化も可能なため偽造、変造、改竄にも強い。カード自体の構造は複雑であるが、対応端末はその分簡単な構造となっているため、普及が見込める。
ICカードは、データを読み書きする方式の違いによって接触型と非接触型に分けられる。非接触型ICカードは、物理的セキュリティ対策の運用管理(入退室)にも適用可能。
コンピュータウイルスは第三者のプログラムやデータベースに対して意図的に何らかの被害を及ぼすように作られたプログラムであり、自己伝染機能、潜伏機能、発病機能の何れか一つ以上の機能を有する。画面表示をでたらめにしたり、無意味な単語を表示したり、ディスクに保存されているファイルを破壊したりする。
ウイルスはインターネットからダウンロードしたファイルや、他人から借りたFD等を通じて感染する。大抵は使用者の知らないうちに感染するため、コンピュータを使用し続け、他のコンピュータにウイルスを移す危険性もある。
・ プログラムウイルスは、感染したプログラムを実行すると、主記憶にロードされ、その間に実行した他のプログラムのプログラムファイルに感染する。
・ ブートセクタウイルスは、感染したフロッピーディスクからシステムを起動すると主記憶にロードされ、ほかのフロッピーディスクのブートセクタに感染する。
【worm】自己増殖を繰り返しながら破壊活動を行うウィルスプログラム。インターネットの普及により、電子メールを介して爆発的な速度で自己増殖するものが出現し、問題となっている。倍倍ゲームで感染を広げていく。
ワーム型ウイルスとしてコンピュータウイルスの一種とする場合もあるが、他のプログラムに寄生するわけではなく単独で活動する点や、簡易的な技術(スクリプト言語、マクロ)で作成される点等、(狭義の)コンピュータウイルスとは異なる。
【macro virus】マクロはワープロソフトや表計算ソフトで、ユーザーの利便性を図るた めに、特定の操作手順をプログラムとして記述して自動化する機能を指す。マクロウイルスの仕組みを利用して作られたコンピュータウイルス。
マクロウイルスは文書ファイル等に感染する。感染した文書ファイルを開いた後に、別に開いたり新規作成したりした文書ファイルに感染する。事前情報なしには文書ファイル等のマクロが悪意を持ったものであるか否かは判断できない。マクロ体系が同じであればOSに依存しない。
【Trojan Horse】トロイの木馬は、一見正常なソフトウェアに見えるが、実は不正・破壊活動を行うプログラム。データ消去や侵入者のバックドア、ファイルの外部流出、パケット盗聴、他のコンピュータの攻撃等を行う。コンピュータウイルスとは異なり、他のファイルに寄生したりはせず、自分自身での増殖活動も行わない。
【vaccine software】ウイルスが発病する前に検知して駆除する。他のコンピュータとの通信状況を監視し、ウイルスの侵入を予防する。ウイルスに感染したファイルを修復し、コンピュータを感染前の状態に回復する。
ウイルス対策ソフト導入はウイルス対策の必須項目、ネットワーク時代の必須マナーである。ウイルス対策ゲートウェイを導入しても、記憶装置(FD, MO)経由のウイルスは検出できない。
ウイルス対策ソフトが最新バージョンでもパターンファイルが最新のバージョンでなければ、ウイルスに感染する可能性が高くなる。パターンファイルを常に最新にしていてもベンダが新種のウイルス対策中に、新種のウイルスに感染する可能性が残るが、最新にしていないのに比べるとウイルスに感染する可能性は格段に低い。
組織の中でパターンファイルをどのようにして最新を維持するかが、ポイントになる。システム管理者はパターンファイルの更新の重要性をもっと利用者に訴える必要がある。今は、LANに接続されているパソコンに対し、起動時や定期的にウイルス対策サーバに接続し、パターン定義ファイルを自動的に更新する仕組みもある。
ウイルス対策ソフトは、LANに接続する全てのパソコンに導入しなければ意味がない(Windows Updateも同様)。様々な対策を一所懸命講じていても、たった1台漏れているだけで、全ての苦労が水泡に帰すことがある。
【pattern matching】ウイルスチェックは通常、ウイルスコードの特徴を収めたDB(パターンファイル)とチェック対象のファイルのビットパターンとを照合するパターンマッチング方式で行う。その他にウイルスの動作を継続的に監視する方式もある。
暗号化した添付ファイルはオリジナルのビットパターンとは異なるので、復号しないとパターンマッチングできない。従って暗号化ファイルの復号後に感染してしまう危険性がある。圧縮ファイルはチェックできるものが多いが、パスワードで保護されているとチェックできない。
【security hole】セキュリティホールは、ソフトウェアの設計ミス等により生じたシステムのセキュリティ上の弱点。インターネットに公開されているサーバは誰でもアクセスできるため、セキュリティホールを放置しておくと、悪意のあるユーザーに不正にコンピュータを操作されてしまう可能性がある。
攻撃を受けると、外部のユーザーが本来実行できない操作が可能になるため、Webサーバで公開されている情報が改ざんされたり、機密データが漏洩したり、他のコンピュータへ不正アクセスするための踏み台に利用されたりする恐れがある。最近はワームがコンピュータに感染する糸口としてセキュリティホールを使うケースが急増している。
【patch】パッチはプログラムの不具合への応急処置的なつぎ当てのことで修正を行うための変更点(差分情報)のみを抜き出したファイル。パッチを使って修正することを「パッチを当てる」と表現する。
暗号化により盗聴・改竄を防止する。最近は暗号化の強度(どれだけ解読し難いか)が上がってきていて、高性能なコンピュータを利用しても、解読が困難になってきている。暗号化には大別して共通鍵暗号方式と公開鍵暗号方式の2種類ある。
【共通鍵暗号方式】共通鍵暗号方式(秘密鍵暗号方式、慣用暗号方式)は暗号化する鍵と復号化する鍵に同じものを使う。通信する双方が同じ鍵を持っていれば、その鍵で暗号化して送り、受信者も同じ鍵で復号化する。
自宅の玄関の鍵をイメージすればいい。扉を締める(暗号化)も開ける(復号化)も共通の鍵で行う。鍵を秘密にしておかなければ、他の誰かに使われてしまう。
本方式では鍵を誰にも見つけられずに送信者と受信者との間で秘密に管理する必要がある。鍵が第三者に漏えいしてしまうとその後の暗号を全て解読されてしまう危険性が高くなる。全ての人と完全に安全な通信を行う場合、通信相手の数だけ鍵が必要になる。n人が相互に暗号を使って通信する場合、n(n-1)/2個の異なる鍵が必要になる。
共通鍵暗号方式の問題点を補うために、公開鍵暗号方式や一方向暗号といった暗号技術と併用して通信データの機密性(認証、否認防止を含む)、完全性を確保していく。
【共通鍵暗号方式の生成方式】元のデータを暗号化する時の手法である。
・ ストリーム型:平文が鍵の値との排他的論理和でそのまま1ビット毎に暗号化されていく。復号では暗号文と鍵のビットごとの排他的理論和をとったものが平文となる。RC4が代表例。
・ ブロック型:平文をビット単位で1ブロックの集まりに区切り、鍵の値をパラメーターとし置換・転置等の暗号化を行う。鍵を複数に増やし複数回暗号化することによって撹乱が進み、安全性が向上する。DES, AESが代表例。
【DES】代表的な共通鍵暗号方式で、56ビットの鍵長を持つ。64ビットと説明する文献もあるが、64ビットの鍵のうち、8ビットはパリティビットであり、実際の鍵長は56ビットである。56ビットの鍵長とは2の56乗通りの鍵を生成できることを意味する。裏返せば2の56乗通りの鍵を全て試すと解読できてしまい、これは現代のコンピュータを用いれば可能である。そこで、現在は128ビットのかぎ長をもつトリプルDESを用いることで安全性を高めている。
【公開鍵暗号方式】公開鍵暗号方式は、公開鍵と秘密鍵と呼ばれる1対になっている2つの鍵を使う。公開鍵で暗号化したメッセージは秘密鍵でないと復号できない。逆に秘密鍵で暗号化したメッセージは公開鍵でないと元に戻せない。公開鍵から秘密鍵を作ることもできない。
本方式の場合、自分の秘密鍵に対する公開鍵は誰でも手に入るようにしておき、自分に秘密の通信をしたい人はその公開鍵を使って暗号化してからメッセージを送ってくれとアナウンスする。公開鍵で暗号化してメッセージを送信すれば、メッセージを元に戻せるのは秘密鍵保持者のみである。他人は公開鍵を持っていても秘密鍵がなければ、元のメッセージを見ることはできない。
手錠をイメージすればいいかもしれない。手錠が開放されていれば誰でも手錠を締められる。しかし、開放する時は鍵を持っている個人のみである。
公開鍵を使ってn人が相互に暗号を使って通信する場合、2n個の異なる鍵が必要になる。
共通かぎ暗号方式に比べてデータの暗号化と復号の処理速度が遅いのが難点。この問題を補うために、ハイブリッド暗号方式という暗号処理が採用される。
【Digital Signature】電子署名はデジタル文書の正当性を保証するために付けられる暗号化された署名情報である。メッセージ送信者の真実性を確認し、なりすましを防止する。電子署名法が2001年4月から施行されている。
受信側で送信者を確認するということは、送信者が本人であることと送信データ(メッセージ)が改竄されていないことの2つの確認が含まれる。
・ 本人認証の手順
Ø 送信者が送信者の秘密鍵で自分の名前を暗号化して相手に送信する。
Ø 受信者は送信者の公開鍵で復号化すると送信者の名前が現れる。
公開鍵暗号方式での鍵の使い方を逆にする。送信者しか持っていない秘密鍵と対になった公開鍵で復号化できたので、受信したメッセージは確かに送信者が送ったものだと証明できる。
・ メッセージ認証の手順
Ø 送信したいデータに予め決められたハッシュ関数を用い、圧縮版のデータ(message digest)を作成する。message digestはハッシュ関数により平文を決まった長さのデータに変換したもの。
Ø message digestを送信者の秘密鍵で暗号化
Ø 送信したいデータとmessage digestを合わせて送信
Ø 受信側では受け取ったデータを送信側と同じハッシュ関数を用いて、message digestを作成。受け取ったmessage digestを送信者の公開鍵で復号化。ハッシュ関数で作ったメッセージダイジェストと復号化したメッセージダイジェストが一致すれば改竄されていないことが確認できる。
実際には、送信側で署名が付加された平文をさらに受信側の公開かぎで暗号化することで、より暗号強度が高い暗号化が行われている。
【公開鍵の信頼性確保】ネットワークへ公開する公開鍵の信頼性を確保する方法として2種類ある。どちらの方式においても基本となる技術については、ディジタル署名技術が使用されているが、大きな違いは誰がその公開鍵について署名を行っているかということである。
・ 認証局方式Certificate Authority:具体的な署名者例として、日本国政府が進めているe-Japan構想における政府認証基盤GPKI: Government Public Key Infrastructure中の認証局がある。