はじめに
最終回となる第7回では、Windows NT 3.1 の セキュリティモデル を解説します。NT は、従来の Windows とは一線を画す「企業利用を前提とした OS」として、設計段階から本格的なセキュリティ機構を組み込んでいました。
1. Windows NT セキュリティの基本思想
Windows NT のセキュリティは、以下の思想に基づいて設計されています。
- すべてのリソースを オブジェクト として扱う
- アクセス制御は OS が一元的に判断する
- アプリケーションを信用しない設計
この思想は、UNIX のパーミッションモデルとは異なる、より汎用的な仕組みを提供しました。
2. オブジェクトベースセキュリティ
2.1 セキュリティ記述子
Windows NT では、
- ファイル
- プロセス
- スレッド
- 同期オブジェクト
といった すべてのカーネルオブジェクト に、セキュリティ記述子が関連付けられます。
セキュリティ記述子には以下が含まれます。
- オーナー SID
- DACL(Discretionary ACL)
- SACL(System ACL)
3. SID とアクセス制御
3.1 SID(Security Identifier)
SID は、
- ユーザー
- グループ
を一意に識別する ID です。
名前ではなく SID を用いることで、
- 名前変更への耐性
- ドメイン環境での一貫性
が確保されます。
3.2 アクセスチェック
アクセス要求時、
- オブジェクトの DACL を取得
- トークン内の SID と照合
- 要求されたアクセス権を評価
という手順で可否が判断されます。
4. アクセストークン
4.1 トークンの役割
アクセストークンは、スレッドやプロセスに関連付けられる セキュリティコンテキスト です。
トークンには以下が含まれます。
- ユーザー SID
- グループ SID
- 特権(Privileges)
4.2 特権モデル
- SeDebugPrivilege
- SeShutdownPrivilege
など、
「権限」とは別に 特権 という概念を導入した点が NT の特徴です。
5. セキュリティ参照モニタ(SRM)
セキュリティ判断は、
- セキュリティ参照モニタ(SRM)
というカーネルコンポーネントによって一元的に行われます。
- アプリケーションは直接判断できない
- バイパス不可能な設計
これにより、OS 全体のセキュリティ一貫性が保たれます。
6. 監査とログ
6.1 セキュリティ監査
Windows NT は初期から、
- 成功イベント
- 失敗イベント
の両方を監査可能でした。
6.2 イベントログ
- セキュリティログ
- システムログ
による追跡性は、企業システムでの運用を強く意識したものです。
7. 最終回まとめ
Windows NT 3.1 のセキュリティは、
- オブジェクトベースの一貫したモデル
- SID と ACL による柔軟なアクセス制御
- カーネルによる強制的な判断機構
という特徴を持ち、現在の Windows セキュリティの原型となりました。
連載全体のまとめ
本連載では、Windows NT 3.1 を通じて、
- アーキテクチャ
- プロセスとスレッド
- メモリ管理
- I/O システム
- セキュリティ
という OS の根幹を技術者向けに解説してきました。
30年以上前に設計されたこれらの思想は、 現在の Windows 11 に至るまで、確実に受け継がれています。
(完)

コメント