web-dev-qa-db-ja.com

なぜこのようにセキュリティでCIAを定義するのですか?

私たちが知っているように、セキュリティに対する需要のCIAは次のことを意味します。

  • 守秘義務
  • 誠実さ
  • 可用性

「完全性」と「可用性」を定義する理由がわかりません。

  1. 平文の機密性を作成すると、整合性は完全な平文になります。これが基本ですが、なぜユリを金色にしているのですか?
  2. Integrityが定義されている場合は、復号化された平文が使用可能である必要があるため、可用性もリリーです。
24
244boy

多項式の答え は優れていますが、CIAの原則を理解して、各側面をどのように分割できるか、各側面をどのように保護できるか例を追加するのに役立ちます。

守秘義務

機密性の目的は、「誰が何を読むのか」を制御することだけです。権限のない者に情報が漏洩した場合、機密性が破られる可能性があります。脅威モデルに完全に依存する情報の種類の種類。いくつか例を挙げましょう。

  • 組織化された犯罪者は、犯罪捜査官にだれが誰と話しているかを知らせたくない。内容に関係なく、通信の単なる指標は機密情報です。
  • 別の側に逃げようとするスパイは、追跡されたくない。メッセージの発信元は、コンテンツと同じくらい機密です。

ご覧のとおり、機密性にはメッセージの内容だけではありません。メタデータも重要であり、暗号化するのは困難です。ただし、一般的に、暗号化は機密性を取得するための良い方法です。ただし、これらの具体的な例では、すべての侵害情報を機密に保つために、さらに対策を講じる必要があります。

誠実さ

完全性は、許可されていない者がメッセージを変更できないという特性と見なすことができます。多くの場合、これは実行不可能な目標であるため、適切な妥協策として、あらゆる種類の不正な変更を識別可能にする必要があります。

暗号化について最初に学ぶことの1つは、暗号化のために設計されたアルゴリズムを常に使用することです。暗号化は、整合性ではなく機密性を保証するために使用されています。

この良い例は、ワンタイムパッドです。これは、少なくともメッセージと同じ長さのランダムキーでメッセージをXORすることによって実現されます。例を挙げましょう。メッセージとして使用します

ATTACK AT 09:00

キーとして、次を使用します

jHiA015Ak4012Kf

これにより、16進数のメッセージが表示されます

2b1c3d00737a15003f140008087b56

攻撃者は、メッセージの大まかな形式を知っていて、内容を知らない場合、暗号テキストを悪意を持って次のように変更できます。

2b1c3d00737a15003f140101087b56

同じキーで、これはに解読されます

ATTACK AT 10:00

これは致命的な結果になる可能性があります。攻撃者は依然として暗号文を読み取ることができないため、機密性は維持されますが、暗号文を操作し、受信者がその操作を検出できないことにより、攻撃者は望んだものを手に入れました。

メッセージが変更されているかどうかを確認する何らかのコードをメッセージに追加することにより、整合性を維持できます。鍵付きハッシュ、ハッシュ上の暗号署名など、すべて使用できます。重要な部分は、メッセージの変更が通知され、攻撃者が有効な認証コードを自分で偽造できないことです。

可用性

多くの場合、可用性は、セキュリティを初めて利用する人にとっては、ある種の「持つべき」目標として軽視されます。しかし、私があなたに尋ねさせてください:完全に暗号化されていて、常にオフラインであったとしても誰も書き込みができないサーバーは何が良いのでしょうか?

可用性は、個々のユースケースに応じて、多くのメトリックによって判断できます。稼働時間になることもあれば、応答時間になることもあれば、パフォーマンスになることもあります。これらの各要因は、大きな影響を受けた場合、ビジネスをダウンさせる可能性があります。

████████████のスキディーがbringStackExchangeDown.shはcronjobで30分ごとに実行します。そして、サイトがオンラインだった10%は非常に遅いので、54kのダイヤルアップモデムは比較すると非常に速く見えます。

あなたはそのサイトを使いたくないでしょう、そして攻撃者は彼らが望んだものを得ました。悲しいことに、より多くの暗号を投入することで可用性を向上させることはできません。可用性を向上させるには、規模を拡大して冗長性を高め、可用性を低下させるバグを修正する必要があります。

42
MechMK1

ここでは、非常に狭い範囲に焦点を当てています。 CIAトライアドは、暗号化されたメッセージだけでなく、システム全体のセキュリティに関するものです。

そうは言っても、トライアドのすべての要素はあなたの例に当てはまります:

  • 機密性:ご指摘のとおり、暗号化の主な目的は機密性を強化することです。
  • 整合性:暗号化は自動的に整合性を提供しません。攻撃者は、暗号化されたメッセージを以前に見た暗号化されたメッセージと交換する可能性があります。攻撃者は、キーを知らなくても平文を変更するために ciphertext maleability を悪用する可能性があります。暗号文に認証レコードなしでストリーム暗号が使用された場合。
  • 可用性:攻撃者は、暗号化されたメッセージを削除または破損したり、暗号化されたメッセージを含むシステムに対するサービス拒否(DoS)攻撃を利用したりする可能性があります。
72
Polynomial

他の回答が述べたように、機密性、整合性、可用性は、単一の暗号化されたメッセージではなく、データセンターアプリケーション全体のように適用されることを意図しています。

とはいえ、適用されるCIAの定義は少し異なります:機密性、整合性、認証-たとえば、 実用的な暗号化)を参照してくださいPython、Nieslon、Monsonの場合

機密性

攻撃者はあなたのメッセージを読むことができません。これは自明です。

完全性

攻撃者はメッセージを変更できません。

これは機密性と直交していると主張します。以下のケースを検討してください。

  • デジタル署名は完全性を提供しますが、機密性は提供しません。誰もがあなたのメッセージを読むことができますが、誰もが署名を破らずにそれを変更することはできません。
  • ブロック暗号(通常)機密性を提供しますが、完全性は提供しません。たとえば、AES_CBCは 暗号文の可鍛性 で有名です。攻撃者がメッセージを読むことができない場合でも、可鍛性により、プレーンテキストを予測可能な方法で変更できます。たとえば、特定のビットを反転して、はいをいいえに変えるだけで十分かもしれません。
  • Authenticated Encryption with Additional Data(AEAD ciphers)CBCモードの可読性の問題を修正し、機密性と統合性の両方を提供します。 AES_GCMまたはChaCha20_poly1305は、AEAD対称暗号の例です。

認証

メッセージを送信した暗号の確実性を知っていること。繰り返しになりますが、これは他の2つと直交しています。なぜなら、その核となるのは、このメッセージを生成した秘密キーにアクセスできるのは1人だけであり、そのキーをその人にマップする信頼できる方法があるためです。 。強力な認証を提供する例は、デジタル証明書のキーによって生成された署名、または自分で暗号化するAES_GCMです。つまり、他の誰もキーのコピーを持っていないため、このメッセージを作成したはずです。

1
Mike Ounsworth