私は最近、base 64 エンコーディング、md5sums、およびその他のさまざまな手法を含む、さまざまな方法で隠されているルーチンによってすべての DB 接続が管理されているシステムに出くわしました。
あいまいさによるセキュリティが悪い考えであるのはなぜですか?
私は最近、base 64 エンコーディング、md5sums、およびその他のさまざまな手法を含む、さまざまな方法で隠されているルーチンによってすべての DB 接続が管理されているシステムに出くわしました。
あいまいさによるセキュリティが悪い考えであるのはなぜですか?
あいまいさによるセキュリティは、あなたのお金を木の下に埋めることになります. それを安全にする唯一のことは、それがそこにあることを誰も知らないということです. 本当のセキュリティとは、金庫などの錠前やコンビネーションの後ろに置くことです。街角に金庫を置いてもいいのは、あなた以外は誰も中に入れないからです。
以下のコメントで@ThomasPadron-McCartyが述べたように:
誰かがパスワードを発見した場合は、パスワードを変更するだけです。これは簡単です。誰かがその場所を見つけた場合、お金を掘り起こして別の場所に移動する必要があり、これははるかに手間がかかります。また、プログラムであいまいさによるセキュリティを使用する場合は、プログラムを書き直す必要があります。
隠蔽によるセキュリティは悪いと言えます。なぜなら、隠蔽がセキュリティの主要な手段として使用されていることを暗示していることが多いからです。あいまいさは、発見されるまでは問題ありませんが、誰かが特定のあいまいさを解決すると、システムは再び脆弱になります. 攻撃者の持続性を考えると、これはセキュリティがまったくないことと同じです。
あいまいさは、適切なセキュリティ手法の代わりとして使用しないでください。
コピーを防ぐためにソース コードを隠す手段としてのあいまいさは、別の問題です。私はそのトピックについてかなり意見が分かれています。あなたがそうしたいと思う理由は理解できます。
あいまいさによるセキュリティは興味深いトピックです。効果的なセキュリティの代わりとして (当然のことながら) 中傷されています。暗号化の典型的な原則は、メッセージは不明ですが、内容は不明ではないというものです。暗号化のアルゴリズムは通常、広く公開され、数学者によって分析され、しばらくするとその有効性にある程度の信頼が築かれますが、有効であるという保証はありません。
暗号化アルゴリズムを隠す人もいますが、そのようなアルゴリズムは同じ精査を受けていないため、これは危険な行為と見なされています。NSA のように、かなりの予算と数学者のスタッフを抱える組織だけが、この種のアプローチを回避できます。
近年の興味深い展開の 1 つは、ステガノグラフィーのリスクでした。ステガノグラフィーとは、画像、音声ファイル、またはその他の媒体にメッセージを隠す行為です。ステガナリシスの最大の問題は、メッセージが存在するかどうかを識別し、このセキュリティをあいまいにすることです。
昨年、研究者がステガノグラフィック チャネルの容量を計算するという話に出くわしましたが、これに関する非常に興味深い点は次のとおりです。
このようにステゴ チャネルを調査すると、直感に反する結果が得られます。たとえば、特定の状況では、隠しデータを探すアルゴリズムの数を 2 倍にすると、ステガノグラフィ チャネルの容量が増加する可能性があります。
言い換えれば、メッセージを識別するために使用するアルゴリズムが多ければ多いほど、メッセージの効果が低下します。これは、あいまいさによるセキュリティに対する通常の批判に反します。
興味深いもの。
それが悪い考えである主な理由は、根本的な問題を修正するのではなく、それらを隠そうとするだけだからです. 遅かれ早かれ、問題は発見されるでしょう。
また、暗号化を追加すると、追加のオーバーヘッドが発生します。
最後に、(チェックサムを使用するなどの)過度のあいまいさは、メンテナンスを悪夢にします。
より優れたセキュリティの代替手段は、インジェクション攻撃を防ぐための入力の強制など、コードの潜在的な弱点を排除することです。
1 つの要因は、セキュリティ侵害から回復する能力です。誰かがあなたのパスワードを発見した場合は、パスワードをリセットしてください。しかし、誰かがあなたのあいまいな計画を明らかにした場合、あなたはうんざりします.
これらすべての人々が同意するように、あいまいさを使用することはセキュリティではなく、時間を稼ぐことです。まともなセキュリティシステムを実装してから、あいまいな層を追加することは依然として有用です. 明日、誰かが ssh サービスにすぐにはパッチを当てられない無敵のクラック/ホールを見つけたとしましょう。
原則として、私は社内で実装しました...公開されているすべてのサーバーは、必要なポート ( http/https ) のみを公開し、それ以上は公開しません。公開されているサーバーの 1 つは、目立たない大きな番号のポートで ssh をインターネットに公開し、ポート スキャン トリガーを設定して、それを見つけようとする IP をブロックします。
あいまいさは、セキュリティの世界でその場所を占めていますが、防御の最初と最後のラインとしてではありません。上記の例では、非標準の ssh サービス ポートの検索に時間を費やしたくないため、ssh でスクリプト/ボット攻撃を受けません。セキュリティが介入し、それらを遮断します。
利用可能なすべての形式のセキュリティは、実際にはあいまいさによるセキュリティ形式です。各方法は複雑さが増し、セキュリティが向上しますが、いずれも暗号化されたデータを復元するために何らかのアルゴリズムと 1 つ以上のキーに依存しています。ほとんどの人が言うように、「あいまいさによるセキュリティ」とは、誰かが最も単純でクラックしやすいアルゴリズムの 1 つを選択した場合です。
文字シフトなどのアルゴリズムは、実装が簡単でクラックも容易であるため、お勧めできません。おそらく、何もないよりはましですが、せいぜい、データを簡単に読み取れないようにするために、さりげなくちらっと見るだけです。
インターネットには、利用可能なすべての暗号化方法とその長所と短所について学習するために使用できる優れたリソースがあります。
セキュリティとは、人々が何を知っているか、誰であるか、または何を持っているかに応じて、人々を入れたり入れたりしないことです。現在、バイオメトリクスはあなたが誰であるかを見つけるのが得意ではなく、常に問題が発生します (ひどい事故にあった人の指紋リーダー、指紋の偽造など)。したがって、実際には、セキュリティの多くは何かを難読化することに関するものです。
優れたセキュリティとは、秘密にしなければならないものを最小限に抑えることです。適切に暗号化された AES チャネルを持っている場合は、パスワード以外のすべてを悪者に見せてしまえば安全です。これは、攻撃にさらされる領域がはるかに小さくなり、パスワードの保護に集中できることを意味します。(それは些細なことではありません。)
そのためには、パスワード以外のすべてを信頼する必要があります。これは通常、多くの専門家が検討した業界標準の暗号を使用することを意味します。誰でも解読できない暗号を作成できますが、誰もが解読できない暗号を作成できるわけではありません。暗号セキュリティの理論的基礎が完全に欠如しているため、暗号のセキュリティは、実際的でなくても、多くの非常に賢く知識のある人々に攻撃を考え出させることによって決定されます (暗号に対する攻撃は常に改善されます)。 、決して悪くはありません)。これは、暗号アルゴリズムが広く知られる必要があることを意味します。私は Advanced Encryption Standard に非常に強い信頼を置いていますが、Joe が作成して難読化した独自のアルゴリズムにはほとんど信頼していません。
ただし、暗号化アルゴリズムの実装には問題がありました。鍵が見つかるような穴をうっかり残してしまったり、その他のいたずらをしてしまいがちです。これは、PGP の代替署名フィールドと、Debian Linux に実装された SSL の弱点で発生しました。おそらく最も安全なオペレーティング システムである OpenBSD でも起こりました (10 年間で最大 2 回のエクスプロイトだと思います)。したがって、これらは評判の良い会社によって行われるべきであり、実装がオープンソースであればより良いと思います. (クローズド ソースは断固たる攻撃者を止めることはできませんが、無作為の善良な人物がクローズすべき穴を見つけるのを難しくします。)
したがって、セキュリティが必要な場合は、システムを可能な限り信頼できるものにしようとします。つまり、パスワードを除いて可能な限りオープンにすることを意味します。
すでに安全なシステムの上に目立たないようにセキュリティを重ねることは、ある程度の助けになるかもしれませんが、システムが安全である場合は必要ありません。安全でない場合は、安全にするのが最善です。あいまいさは、あまり評判のよくない「代替医療」のようなものだと考えてください。それがあまり役に立たない可能性は非常に高く、それ自体が大きな害を及ぼす可能性は低いものの、患者が有能な医師やコンピューター セキュリティの専門家のいずれかを受診する可能性が低くなる可能性があります。
最後に、 Bruce Schneier のブログ用に、興味のある読者にすぎない、完全に一方的で無関心なプラグインを作成したいと思います。そこからセキュリティについて多くのことを学びました。
あるケースで、パスワード保護は隠蔽によるセキュリティであると主張しました。私が考えることができる STO 以外の唯一のセキュリティは、ある種の生体認証セキュリティです。
そのちょっとしたセマンティクスとニッチピッキングに加えて、STO (あいまいさによるセキュリティ) は、真のセキュリティが必要な場合には明らかに悪いものです。ただし、問題にならない場合もあります。誰にも読まれたくないテキスト ファイルを XOR パディングすることがよくあります。しかし、私は彼らがそうするかどうかはあまり気にしません。その場合、それは問題ではなく、XOR パッドは見つけやすい STO の完璧な例です。
それはほとんど決して良い考えではありません。シートベルトなしで運転するのは良い考えですか?もちろん、それが当てはまる場合もありますが、経験による答えは明らかです。
私が付け加えなければならない点のうち、まだ触れられていない点は、あいまいさを通してセキュリティを打ち破るインターネットの信じられないほどの能力です.
何度も何度も示されているように、「バックドア/バグ/エクスプロイトがそこにあることを誰も知らない」という唯一の防御がある場合、1 人がそれに遭遇するだけで、数分以内に何百人もの人々が知る。翌日には、知りたいと思っているほとんどの人がそうするでしょう。ああ。
OS が Windows の場合は、Data Protection API (DPAPI) の使用を検討してください。あいまいさによるセキュリティではなく、無人プロセスのログイン資格情報を保存するのに適した方法です。ほとんどの人がここで言っているように、目立たないことによるセキュリティでは、十分な保護は得られません。