Безопасность – важнейшая черта нашей современной жизни. Учитывая количество вещей, которые полагаются на цифровую связь, безопасность в настоящее время является фундаментальной. Возьмем пример простого подключения к веб-сайту. Если соединение надежно зашифровано, вы можете быть уверены, что данные, передаваемые между вами и веб-сервером, не изменяются и никому не известны. Если вы подключаетесь небезопасно, любое устройство, которое передает или может видеть передачу вашего соединения, может точно видеть, какие данные передаются. В этом сценарии любое устройство, которое является частью цепочки передачи между вами и сервером, также может редактировать данные в пути.
Суть всей этой секретности в том, что большая ее часть вовсе не секретна. На самом деле весь алгоритм шифрования общедоступен. Только одна часть системы должна быть секретной, чтобы зашифрованные сообщения были безопасными. Это ключ шифрования. Современная криптография следует принципу Керкхоффа 1883 года: «криптосистема должна быть безопасной, даже если все, что касается ее система, за исключением ключа, является общедоступной». В то время системы обычно основывались на другом принципе: безопасность через неизвестность.
Безопасность через неизвестность
Поначалу кажется, что концепция безопасности через неизвестность кажется более разумной. Если вся система шифрования является секретной, то как кто-то может расшифровать сообщение? К сожалению, хотя это и имеет смысл, есть несколько серьезных проблем, которые он не учитывает. Основная проблема заключается просто в том, что вы не можете использовать систему, не подвергая ее риску раскрытия. Если вы реализуете его на компьютере, его можно взломать. Физическую машину можно украсть. Если вы обучаете только доверенных лиц, их можно обмануть, схватить и подвергнуть пыткам.
Классическим примером такой системы является шифр сдвига Цезаря. На самом деле он назван в честь Юлия Цезаря, который использовал его для конфиденциальной переписки. Шифры Цезаря циклически корректируют замену одной буквы на другую. Цезарь использовал сдвиг влево на три, в результате чего D стал A. Об этом известно из «Жития Юлия Цезаря», написанного Светонием в 56 году нашей эры. Неясно, насколько безопасным был этот шифр в то время. Такая схема сейчас практически не обеспечит никакой безопасности. Причина этого в том, что система полагается на сохранение секретности системы. Технически он использует ключ, этот ключ представляет собой количество мест, сдвинутых в алфавите. Однако количество возможных ключей настолько мало, что все возможные варианты можно легко протестировать даже вручную. Это оставляет только незнание системы в качестве фактора защиты.
Враг знает систему
В какой-то момент враг, кем бы он ни был, вероятно, сможет полностью понять вашу систему, как если бы она была общедоступной. Если ваша система безопасна только в том случае, если система является секретной, то, когда система понята, вам необходимо заменить ее. Это дорого и требует времени. Если вместо этого ваша система полагается только на секретность ключа, его не только намного легче сохранить в секрете, но и легче изменить.
Сложные и плохо документированные системы часто трудно правильно реализовать. Их также трудно поддерживать, особенно когда они не поддерживаются создателем. Необходимо иметь достаточно документации, чтобы законные пользователи могли использовать систему. Затем эта документация может быть получена противником, который затем может получить частичное или полное представление о системе.
Кроме того, правильная криптография невероятно трудна для понимания даже людьми, знакомыми с концепциями. Если система разработана неспециалистом, велика вероятность того, что в ней есть хотя бы незначительные, если не серьезные недостатки. Государственная система может быть рассмотрена всеми экспертами в течение десятилетий. Это дает веские основания полагать, что известная система действительно безопасна.
Заключение
Безопасность через неясность — это концепция системы, которая безопасна, потому что механизм системы не понятен. К сожалению, относительно легко получить представление о системе, а затем сложно разработать достаточно новую систему. Современные системы безопасности, такие как криптография, обычно являются общедоступными и полагаются на безопасность секретного ключа для защиты данных, которые он защищает. Ключ можно менять по желанию. Многие разные ключи могут использоваться одновременно разными людьми без каких-либо побочных эффектов. Гораздо проще защитить маленький ключ, чем всю систему. Кроме того, его гораздо легче изменить, когда он скомпрометирован.