Может быть, легче понять, что такое Security-by-Obscurity, если взглянуть на что-то, что в некотором смысле является противоположным : Вторым принципом Огюста Керкхоффса (теперь просто известным обычно как Принцип Керкхоффса ), сформулированный в 1883 году в двух статьях о Военная криптография :
[Шифр] не обязательно должен быть секретным, и он должен быть в состоянии попасть в руки врага без неудобств.
Клод Шеннон переформулировал это как:
Враг знает систему.
А Эрик Рэймонд как:
Любой дизайн программного обеспечения безопасности, который не предполагает, что противник обладает исходным кодом, уже ненадежен.
Альтернативная формулировка этого принципа такова:
Безопасность системы должна зависеть только от секретности ключа, а не секретности системы.
Итак, мы можем просто определить Security-by-Obscurity как любую систему, которая не следует этому принципу, и, таким образом, мы хитро определили пароль: -)
Существуют две основные причины, по которым этот Принцип имеет смысл:
- Ключи, как правило, намного меньше систем, поэтому их легче защитить.
- Компрометация секретности ключа только подрывает секретность всех сообщений, защищенных этим ключом, подрывает секретность системы, ставит под угрозу все коммуникации.
Обратите внимание, что нигде не сказано, что вы не можете держать свою систему в секрете. Это просто говорит, что вы не должны зависеть от этого. Вы можете использовать Security-by-Obscurity в качестве дополнительной линии защиты, вы просто не должны предполагать, что она действительно работает.
В целом, однако, криптография сложна , а криптографические системы сложны, поэтому вам достаточно нужно , чтобы опубликовать ее, чтобы получить как можно больше глазных яблок. На этой планете очень мало организаций, у которых действительно есть умные люди, необходимые для секретной разработки криптографических систем: в прошлом, когда математики были патриотами, а правительства были богатыми, это были АНБ и КГБ, сейчас это IBM и Через пару лет это будут китайская секретная служба и международные преступные синдикаты.