OS-14

セキュリティ
オペレーティングシステム
第14回
今回の内容

OSのセキュリティを確保する機能
 順不同で
 既に取り上げたのものも
 すべてがOSではない
セキュリティとは
セキュリティとは(1)


安心してコンピュータを使うことができるようにす
ること
“安心して”とは,どういうことか?
セキュリティとは(2)

セキュリティが“確保”されている(コンピュータ)
システムとは
 機密性 confidentiality
 完全性 integrity
 可用性 availability
の三つが確保されているもの
機 密 性

利用することを認められた者だけが,利用するこ
とができる
 “情報へのアクセス”という観点からだと,
機密性が維持されていれば,情報漏えいが起
こらない
完 全 性

システムが正しく稼働する
 “処理する情報”という観点からだと,
情報がなくなったり,おかしくなったりしない
可 用 性

必要なときに利用することができる
 “情報”という観点からだと,
必要なときに,必要な情報にアクセスできる

機密性,完全性,可用性の三つの観点から,
以降の事項を見てほしい
CPUの動作モード
C P U (6) 第2回

実行モード
 特権モード
 OSを実行するためのモード
 すべての命令を実行可
 非特権モード(一般ユーザモード)
 一般のプログラムを実行するためのモード
 特権命令(システムを管理するための命令
など)は実行不可
特権モード


すべての命令を実行できる
システムのハードウェアを自由に使える
 例 HDDの全部データにアクセス可
 というようなことは,一般ユーザには行わせた
くない
補 足(4) 第5回



内部割込みの例(3)
特権命令違反
 システム管理命令を一般ユーザモードで実行
割出し(トラップ)
 一般の利用者が実行できないことをOSに依
頼(する命令の実行-システムコール)
 プログラマが意識的に発生させる割込み
仮想計算機

第13回の仮想計算機は,この考え方を発展させ
たものとも考えることができる
仮 想 化(2) 第13回

仮想計算機
 実際のコンピュータ上に,別のOSを(複数)実
行できるようにする仕組みを用意
 そのOSが実行され,アプリケーションを実行
する
 アプリケーションを直接実行しているわけでは
ない
仮 想 化(3) 第13回
仮想計算機
の動作,つ
まりアプリ
の動作を
監視する
メモリ,ファイルへのアクセス
記憶管理の他の重要な機能 第
9回

多重プログラミング環境
 別のプログラムが,自分のデータを読み書き
 別のプログラムのデータを読み書き
 禁止する(保護)
 ただし,禁止だけではない(情報共有)
同じ記憶装置(メモリ)
読み書きできる部分と出来ない部分
ア ク セ ス 管 理(2) 第11回


保護属性
 ファイルの保有者
 共有の可否・可能な者
 アクセス方法(読出し,書込み など)
 など
誰が,どのようにアクセスできるか
R A I D(1) 第11回




Redundant Array of Inexpensive (Independent)
Disks
複数のディスクを用いる
障害対策+高速化
RAID0~6まで
R A I D(2) 第11回


データだけを記録しているのではない
付加情報
 障害発生でデータを失っても,回復可能
R A I D(4) 第11回





RAID 1
ミラーリング
コピーを別の
媒体に記録
障害対策には
なる
ディスクの使用
効率は悪い
R A I D(5) 第11回


RAID 5
parity1は,AとBから
生成する
 Aとparity1から,B
を復元できる
 Bとparity1から,A
を復元できる
多重化システム



Multiple system
HDDだけでなく,システム全体を多重化する
 同じシステムを複数用意
システムの構成方法
 デュアル構成
 デュプレックス構成
デュアル構成

dual configuration

システムを多重化


同じ処理を複数のシステムで同時に行う
 結果をお互いにチェック
高信頼性を要求されるシステム
 交通制御やプラント制御など
デュプレックス構成




duplex configuration
システムを多重化
処理を行うのは一つ
 障害が発生すると,別のシステムに切換え
 待機しているシステムで,別の処理を行うこと
もある
銀行のシステム,座席予約システムなど
誰でもシステムを利用すること
ができるのか?
利 用 者 認 証(1)



システムを利用する権限があるかどうかのチェッ
ク
通常は,IDとパスワードで確認
OSは,IDとパスワードを記録したファイル(パス
ワードファイル)を管理
利 用 者 認 証(2)

パスワードファイルの漏えい対策
 パスワードをそのまま記録せず,暗号化して
記録
 OS(システムの管理者も)は,パスワードその
ものを知らない
 初期のUnixでは,パスワードを暗号化している
ということで,パスワードファイルを利用者が
見ることができた(今は不可)
利 用 者 認 証(3)

不正ログイン対策
 パスワード入力ミスを何回か連続するとログイ
ンできなくなる(アカウントロック)
 Windowsでは,アカウントロックが起きる入力ミ
スの回数と,ロックしている時間を設定できる
かってはよく起きていた
データ転送中のエラー

データは電気信号としてバスを伝わる
 外部からのノイズで乱れることがある
 そのことを検知する仕組み
 以降のスライドは“ネットワークシステム”の講
義のもの
転送中のデータの誤り



通信回線は外部から影響を受けることがある
 雑音(ノイズ)
転送中のデータが変化することがある
“0101010” を転送中に
“0111010” となることがある
パ リ テ ィ (1)


転送するデータに含まれる“1”の数を数える
例 “0101010”
 7ビットのデータ中に“1”は3つ
パ リ テ ィ (2)


転送するデータの最後に
 “1”の数が偶数なら“1”を
 “1”の数が奇数なら“0”を
付け加えて,データを送る
例 データが
“0101010”なら
“01010100”を送る
パ リ テ ィ (3)


つまり,送信するデータ中の“1”の数を奇数個に
する
 “01010100” (最後に“0”を付ける)
 “01010001” (最後に“1”を付ける)
受信側で“1”の数を数え,偶数個であったら,そ
のデータは誤りであることが分かる
 “01010101” (誤り!)
 誤り検出
パ リ テ ィ (4)


転送中に2ビット変わったら,誤りを検出できない
例 “01010100” が
“00110100” となっても,
受信側では誤りを検出できない
パ リ テ ィ (5)


以上のように,送信するデータ中の“1”の個数を
奇数個にするものを
 奇数パリティ
“1”の個数を偶数個にする場合もある
 偶数パリティ
パ リ テ ィ (6)



実際には,転送するデータを一定の大きさに区
切って適用する
通信だけに用いられる手法ではない
 メモリから読み出したデータのチェック
この手法を“パリティチェック(parity check)”と呼
ぶ
パ リ テ ィ (7)

ハミングコードチェック(hamming code check)
 付加するビットを増やして,誤りの検出だけで
なく,訂正も可能としたもの
 もちろん,完全なものではない
パ リ テ ィ (8)


誤り検出・訂正の手法は他にもある
 どのような方法があり,どのような特徴がある
か?
我々の身のまわりでも使われている
 音楽用CD
チ ェ ッ ク サ ム (1)

送信するデータの合計を求め,データだけでなく
合計も送り,受信側でチェックに用いる
チ ェ ッ ク サ ム (2)

例 24ビットのデータ
バイト(8ビット)ごとに区切り,
和を求める
00110011
01000100
01110111
和 11101110
データ
これも送信する
チ ェ ッ ク サ ム (3)

受信側でも同様にして,和を求める
 送られてきた和と比較する

各バイトでパリティチェックをすることもある

合計といっても,単純な和でない場合もある
誤りをみつけたら



訂正できる手法を用いているなら,訂正
検出だけなら,どうするか?
 そのデータは使えない
 再度,送信してもらう
 再送が無理な場合は?
OSの話なら,“割込み”
ま と め
ま と め


OSの重要な機能の一つにセキュリティ維持
セキュリティの完全な確保は不可能
 コストをどれだけかけることができるのか