おそらく、ある意味では正反対のものを見ることによって、Security-by-Obscurity が何であるかを理解するのがより簡単になります:オーギュスト・ケルクホフの第二原理(現在は単にケルクホフの原理として知られている) は、1883 年にLa Cryptographie Militaireに関する 2 つの記事で策定されました。:
[暗号] は秘密である必要はなく、不都合なく敵の手に渡ることができなければなりません。
クロード・シャノンはそれを次のように再定式化しました。
敵はシステムを知っています。
エリック・レイモンドは次のように:
敵がソース コードを所有していると想定しないセキュリティ ソフトウェア設計は、すでに信頼できません。
その原則の別の定式化は、
システムのセキュリティは、システムの秘密性ではなく、キーの秘密性のみに依存する必要があります。
したがって、単純に Security-by-Obscurity をその原則に従わない任意のシステムとして定義することができるため、巧妙にパスワードの定義を外しました :-)
この原則が理にかなっている基本的な理由が 2 つあります。
- キーはシステムよりもはるかに小さい傾向があるため、保護が容易です。
- 鍵の機密性を侵害すると、その鍵によって保護されているすべての通信の機密性が侵害されるだけであり、システムの機密性が侵害されると、すべての通信が侵害されます。
システムを秘密にしてはいけないということはどこにも書かれていないことに注意してください。依存してはいけないと言っているだけです。Security-by-Obscurity を追加の防御線として使用することはできますが、それが実際に機能するとは想定しないでください。
ただし、一般に、暗号化は難しく、暗号化システムは複雑であるため、できるだけ多くの注目を集めるために公開する必要があります。秘密裏に暗号システムを設計するのに必要なスマートな人々を実際に持っている組織は、この地球上でごくわずかしかありません。過去には、数学者が愛国者で政府が金持ちだったとき、それらは NSA と KGB でしたが、現在は IBM と数年後、それは中国のシークレット サービスと国際的な犯罪シンジケートになるでしょう。