セキュリティ識別子 (セキュリティシキベツシ) とは | 意味や読み方など丁寧でわかりやすい用語解説
セキュリティ識別子 (セキュリティシキベツシ) の読み方
日本語表記
セキュリティ識別子 (セキュリティシキベツシ)
英語表記
Security Identifier (セキュリティアイデンティファイア)
セキュリティ識別子 (セキュリティシキベツシ) の意味や用語解説
セキュリティ識別子は、Security Identifierの略称で、一般的にSID(シド)と呼ばれる。これはWindowsオペレーティングシステム環境において、ユーザー、グループ、コンピュータアカウントといったセキュリティに関わる主体(セキュリティプリンシパル)を、一意に識別するために使用される可変長の一意な値である。人間がアカウントを識別するためには「yamada」や「Administrators」といった名前を用いるが、コンピュータシステムは内部的にこのSIDを使用して各主体を厳密に区別している。ユーザー名やグループ名は人間が容易に変更できるが、一度割り当てられたSIDは、そのアカウントが存在する限り不変である。この不変性が、Windowsのセキュリティモデルの根幹を支えている。例えば、あるユーザーが結婚して姓が変わり、ユーザー名を変更したとしても、SIDは変わらないため、そのユーザーが以前から持っていたファイルやフォルダへのアクセス権はそのまま維持される。もしシステムがユーザー名でアクセス権を管理していた場合、名前の変更のたびにすべてのアクセス権を再設定する必要が生じ、管理が非常に煩雑になるだろう。 SIDの最も重要な役割は、アクセス制御の実現にある。Windowsでは、ファイル、フォルダ、レジストリキー、プリンタといった保護対象のリソースには、アクセス制御リスト(ACL)が付与されている。ACLは、どのSIDに対してどのような操作(読み取り、書き込み、実行など)を許可または拒否するかを定義したルールの集合体である。これをアクセス制御エントリ(ACE)と呼ぶ。ユーザーが特定のリソースにアクセスしようとすると、システムはまず、そのユーザーがログオンする際に生成された「アクセス トークン」を確認する。このアクセス トークンには、ユーザー自身のSIDと、そのユーザーが所属するすべてのグループのSIDが含まれている。次に、システムはアクセス トークンに含まれるSID群と、対象リソースのACLに記述されているSIDを照合する。一致するSIDに対するACEが見つかれば、そのルールに基づいてアクセスの可否を判断する。この一連のプロセスにより、権限のないユーザーによる不正なアクセスを防ぎ、リソースを保護する仕組みが成り立っている。 SIDは、「S-R-I-S-S...」という特定の形式を持つ文字列で表現される。最初の「S」は、これがSIDであることを示す接頭辞である。続く「R」はリビジョンレベルで、現在は常に「1」が使用される。「I」は識別子機関値であり、SIDを発行した機関を示す。例えば、Windows NTやActive Directoryによって発行されたSIDでは、この値は「5」となる。その後に続く一連の「S」はサブ機関値と呼ばれ、この部分がSIDの本体を構成する。サブ機関値は、ドメインやローカルコンピュータを世界中で一意に識別するドメイン識別子と、そのドメインやコンピュータ内でユーザーやグループを一意に識別するための相対識別子(RID)の組み合わせから成る。この構造により、異なるドメインやコンピュータで作成されたアカウントであっても、SIDが重複することはない。 SIDにはいくつかの種類が存在する。その中でも特に重要なのが「既知のSID(Well-known SID)」である。これは、Administratorsグループ、Usersグループ、Everyone(すべてのユーザー)、SYSTEM(オペレーティングシステム自身)といった、システムに組み込まれた特定のアカウントやグループを表すために予約された、固定の値を持つSIDである。これらのSIDはどのWindows環境でも共通であるため、システムは特定の役割を持つグループを普遍的に認識できる。一方で、ユーザーアカウントや管理者が作成したグループには、そのコンピュータやドメインの識別子を基にした一意なアカウントSIDが割り当てられる。アカウントが作成されると、ドメインコントローラやローカルのセキュリティアカウントマネージャー(SAM)が、RIDプールから未使用のRIDを割り当て、ドメイン識別子と結合して新しいSIDを生成する。一度使用されたRIDは二度と再利用されないため、アカウントを削除して同じ名前で再作成した場合でも、新しいアカウントには全く別のSIDが割り当てられる。この特性は非常に重要で、過去のアカウントに与えられていたアクセス権が、意図せず新しいアカウントに引き継がれてしまうといったセキュリティリスクを防止している。システム管理の観点では、ユーザーやコンピュータの情報を扱う際、表面的な名前だけでなく、その背後にあるSIDを意識することが不可欠である。特に、サーバーの移行やドメインの再編といった大規模な作業では、ファイルサーバーなどに設定されたアクセス権を維持するために、SIDの情報を正しく移行する技術(SID履歴など)が用いられる。このように、セキュリティ識別子はWindowsのセキュリティとアクセス制御の基盤をなす、目には見えにくいが極めて重要な要素なのである。