2.2. セキュリティの原則

セキュリティの原則として、当たり前に理解しておかなければならないことが たくさんあります。 Information Assurance Technical Framework(IATF)[NSA 2000]は、広くセキュリ ティ情報を得るのに適したところです。 NIST は「原則や手法として広く認められている」ハイレベルな場所と見られて います。 またコンピュータのセキュリティを網羅しているテキストとして、[Pfleeger 1997] 等があります。 ここで、セキュリティの原則についていくつか要約してみます。

コンピュータセキュリティは全体で 3 つの目標があります。

さらに目標を追加する場合もありますし、追加した目標をこの 3 つの目標の 特殊なケースとしてまとめてしまうこともあります。 たとえば、拒否しないことを独立した目標としている場合があります。これは、 送り手側がメッセージを送ったこと、受け手側がメッセージを受け取ったこと、 またはその両方を「証明」する能力のことです。たとえ、送り手側または受け手 側が後でそれを否定したくなったとしてもです。プライバシーを機密保持とは区別 して扱う場合もあります。 データではなく、ユーザ(たとえばユーザの身元)の機密保持 を守ることと定義する場合もあります。 目標は、識別と認証を必要としている場合がよくあり、時には独立した目標として 記載してある場合もあります。 監査(評価とも言います)はセキュリティの目標として好ましいとされています。 同様に「アクセス制御」や「本人であることの認証」は別物として記載してある場合 があります。 どのケースであっても、プログラム全体に渡って、セキュリティの目標と一致させる ことが重要です。目標をどのようにまとめようと、その目標に合致することが重要 なのです。

時にはこれらの目標が、既知の脅威に対する対抗手段である場合や法律で制定して ある場合もあります。 たとえば、米国の銀行や金融機関に対して、「Gramm-Leach-Bliley」(GLB)法という プライバシー関連の新しい法律ができました。 この法律では、共有される個人情報を開示すること及びそれらを安全にすることを 必須とし、第三者との間で共有される個人情報の開示を要求し、さらに、それらの 機関に対して顧客がデータ共有を止めさせる機会を与えるよう指導しています [Jones 2000]。

セキュリティとシステムやソフトウェア上のその他の技術方針とが相反する場合が あります。 セキュリティが「簡単に使う」ことを妨げる場合があるからです。たとえば安全な 設定を施すには、動作はするものの安全ではない設定よりも手間をかける必要がある かもしれません。 この相反する点を解決できる場合は多々あります。たとえば問題点をよく考える ことで、簡単に利用ができてかつ安全なシステムを構築できる場合がよくあります。 セキュリティと抽象化(情報の隠蔽)にも相反する点があります。 たとえば高度なライブラリ・ルーチンは、安全に実装してあろうがなかろうが、仕様 からは何もわかりません。 つまりアプリケーションに安全が求められる場合、確信がもてないなら、自分自身で 実装しなければいけません。つまりそのライブラリを修正しなければいけない ということです。あなたが不適切なライブラリ・ルーチンを選択すると、迷惑を 被るのはユーザなのです。

「徹底的に防御する」という原則は、セキュリティ上優れています。 たくさんの防御機構(階層)を適した場所に配置し、攻撃に成功するには複数の機構を 攻撃側が破らなければならないように設計します。