Разве пароль не является формой безопасности через неизвестность? - PullRequest
27 голосов
/ 20 декабря 2010

Я знаю, что безопасность через неизвестность не одобряется и считается не совсем безопасной, но разве пароль не защищен через неизвестность?Это безопасно только до тех пор, пока никто не найдет его.

Это просто вопрос уровня мрака?(т. е. хороший пароль, хорошо посоленный и хешированный, нецелесообразно взламывать)

Примечание. Я не спрашиваю о процессе сохранения паролей (предположим, что они правильно хешированы и засолены).Я спрашиваю обо всей идее, используя пароль, который является частью информации, которая, если она известна, может поставить под угрозу учетную запись человека.

Или я неправильно понимаю, что означает безопасность через неизвестность?Я предполагаю, что это то, что я предполагаю, что это означает, что существует некоторая информация, которая, если она известна, может поставить под угрозу систему (в данном случае система определяется как любой пароль, предназначенный для защиты)

Ответы [ 8 ]

21 голосов
/ 20 декабря 2010

Вы правы в том, что пароль безопасен только в том случае, если он неясен.Но «наблюдаемая» часть «безопасности через неизвестность» относится к темноте системы .С паролями система полностью открыта - вы знаете точный метод, который используется для его разблокировки, но ключ, который не является частью системы, неизвестен.

Если мы будем обобщать, то да, вся безопасность осуществляется через мрак.Однако фраза «безопасность через мрак» не относится к этому.

14 голосов
/ 20 декабря 2010

Может быть, легче понять, что такое Security-by-Obscurity, если взглянуть на что-то, что в некотором смысле является противоположным : Вторым принципом Огюста Керкхоффса (теперь просто известным обычно как Принцип Керкхоффса ), сформулированный в 1883 году в двух статьях о Военная криптография :

[Шифр] не обязательно должен быть секретным, и он должен быть в состоянии попасть в руки врага без неудобств.

Клод Шеннон переформулировал это как:

Враг знает систему.

А Эрик Рэймонд как:

Любой дизайн программного обеспечения безопасности, который не предполагает, что противник обладает исходным кодом, уже ненадежен.

Альтернативная формулировка этого принципа такова:

Безопасность системы должна зависеть только от секретности ключа, а не секретности системы.

Итак, мы можем просто определить Security-by-Obscurity как любую систему, которая не следует этому принципу, и, таким образом, мы хитро определили пароль: -)

Существуют две основные причины, по которым этот Принцип имеет смысл:

  1. Ключи, как правило, намного меньше систем, поэтому их легче защитить.
  2. Компрометация секретности ключа только подрывает секретность всех сообщений, защищенных этим ключом, подрывает секретность системы, ставит под угрозу все коммуникации.

Обратите внимание, что нигде не сказано, что вы не можете держать свою систему в секрете. Это просто говорит, что вы не должны зависеть от этого. Вы можете использовать Security-by-Obscurity в качестве дополнительной линии защиты, вы просто не должны предполагать, что она действительно работает.

В целом, однако, криптография сложна , а криптографические системы сложны, поэтому вам достаточно нужно , чтобы опубликовать ее, чтобы получить как можно больше глазных яблок. На этой планете очень мало организаций, у которых действительно есть умные люди, необходимые для секретной разработки криптографических систем: в прошлом, когда математики были патриотами, а правительства были богатыми, это были АНБ и КГБ, сейчас это IBM и Через пару лет это будут китайская секретная служба и международные преступные синдикаты.

5 голосов
/ 20 декабря 2010

Нет. Давайте посмотрим определение безопасности через неизвестность из wikipedia

уничижительный термин, относящийся к принципу проектирования безопасности, который пытается использовать секретность (проектирования, реализации и т. Д.) Для обеспечения безопасности.

Фраза относится к самому коду или дизайну системы. С другой стороны, пароли - это то, с чем пользователь должен идентифицировать себя. Это тип токена аутентификации, а не реализации кода.

1 голос
/ 20 декабря 2010

Я знаю, что безопасность через неизвестность осуждается и считается не совсем безопасной, но разве безопасность пароля не обеспечивается через неизвестность? Это только безопасно, пока никто не находит это.

Чтобы ответить на этот вопрос, нам действительно нужно подумать , почему"безопасность через неизвестность" считается ошибочной.

Основная причина того, что безопасность через неизвестность заключается в том, что на самом деле действительно легко перепроектировать систему, основанную на ее взаимодействиях с внешним миром . Если ваша компьютерная система где-то сидит и успешно аутентифицирует пользователей, я могу просто посмотреть, какие пакеты она отправляет, отслеживать шаблоны и выяснить, как она работает. А потом атаковать это просто.

Напротив, если вы используете надлежащий открытый криптографический протокол, никакое прослушивание не позволит мне украсть пароль .

Именно поэтому скрытие системы имеет недостатки, а скрытие ключевого материала (при условии, что система защищена) - нет. Безопасность через неизвестность никогда сама по себе не защитит некорректную систему, и единственный способ узнать, что ваша система не несовершенна, - это публично ее проверить.

1 голос
/ 20 декабря 2010

Пароли являются формой аутентификации. Они предназначены для идентификации того, что вы взаимодействуете с тем, с кем вы должны взаимодействовать.

Вот хорошая модель различных аспектов безопасности (мне пришлось запомнить это в моем курсе безопасности)

http://en.wikipedia.org/wiki/File:Mccumber.jpg

Пароли являются аспектом конфиденциальности.

Хотя, вероятно, слабее форм аутентификации (что-то, что вы знаете, что-то, что у вас есть, что-то, чем вы являетесь), я все равно сказал бы, что оно не представляет собой безопасность через неясность. С помощью пароля вы не пытаетесь замаскировать фасет системы, чтобы скрыть его.

Edit:

Если вы будете следовать рассуждению о том, что пароли также являются средством «безопасности Throguh Obscurity» для его логического завершения, тогда вся безопасность, включая такие вещи, как шифрование, - это безопасность через неясность. Тогда это означает, что единственная система, которая не защищена мраком, это система, которая окружена бетоном и погружена на дно океана, и никто никогда не может ее использовать. Это рассуждение, однако, не способствует достижению каких-либо целей. Поэтому мы используем безопасность через неизвестность, чтобы описать практики, которые используют непонимание реализации системы как средства безопасности. С паролями реализация известна.

0 голосов
/ 20 декабря 2010

Краткий ответ: нет . Пароли сами по себе не являются безопасностью по неизвестности.

Пароль можно рассматривать как аналог ключа в криптографии. Если у вас есть ключ, вы можете расшифровать сообщение. Если у вас нет ключа, вы не можете. Точно так же, если у вас есть правильный пароль, вы можете пройти аутентификацию. Если вы этого не сделаете, вы не можете.

Часть мрака в безопасности по мраку относится к тому, как реализована схема. Например, если пароли хранятся где-то в открытом виде, а их точное местоположение хранится в секрете, который будет защищен неизвестностью. Допустим, я проектирую систему паролей для новой ОС и помещаю файл паролей в / etc / guy / magical_location и называю его «cooking.txt», где любой может получить к нему доступ и прочитать все пароли, если они знают, где он находится. , Кто-то в конечном итоге выяснит (например, путем обратного инжиниринга), что пароли есть, и тогда все установки ОС в мире будут взломаны, потому что я полагался на безвестность для безопасности.

Другой пример, если пароли хранятся там, где каждый может получить к ним доступ, но зашифрован «секретным» ключом. Любой, кто имеет доступ к ключу, может получить пароли. Это также было бы безопасностью по неизвестности.

«Мрак» относится к некоторой части алгоритма или схемы, которая держится в секрете, где, если бы это было общедоступное знание, схема могла бы быть скомпрометирована. Это не относится к необходимости ключа или пароля.

0 голосов
/ 20 декабря 2010

Нет, это не так.

Безопасность через неизвестность означает, что процесс, обеспечивающий защиту доступа, является безопасным только потому, что его точные данные не являются общедоступными.

Публично доступный здесь означает, что все детали процесса известны всем, кроме, конечно, случайной части, которая составляет ключ. Обратите внимание, что диапазон, из которого можно выбирать клавиши, по-прежнему известен всем.

Эффект этого состоит в том, что можно доказать, что единственной частью, которая должна быть секретной, является сам пароль, а не другие части процесса. Или, наоборот, единственный способ получить доступ к системе - получить ключ.

В системе, которая полагается на неясность своих деталей, у вас не может быть такой гарантии. Вполне возможно, что любой, кто узнает, какой алгоритм вы используете, может найти в нем заднюю дверь (то есть способ получить доступ к системе без пароля).

0 голосов
/ 20 декабря 2010

Да, вы правы, и это очень важное осознание, которое у вас есть.

Слишком много людей говорят "безопасность через мрак", не имея представления о том, что они имеют в виду. Вы правы во всем, что имеет значение, это уровень «сложности» декодирования любой данной реализации. Имена пользователей и пароли представляют собой сложную реализацию, поскольку они значительно увеличивают объем информации, необходимой для получения доступа.

Одна важная вещь, которую следует учитывать при любом анализе безопасности, - это модель угроз: кого вы беспокоите, почему и как вы их предотвращаете? Что ты не покрываешь? и т.д. Продолжайте аналитическое и критическое мышление; это послужит вам хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...