Подтвердить что ты не робот

Почему безопасность через неясность - плохая идея?

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

Это только я, или это перебор? Каковы альтернативы?

4b9b3361

Ответ 1

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

Как упоминается @ThomasPadron-McCarty ниже в комментарии ниже:

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

Ответ 2

Безопасность через неясность можно сказать плохо, потому что она часто подразумевает, что неясность используется в качестве основного средства безопасности. Незаметность прекрасна до тех пор, пока она не будет обнаружена, но как только кто-то разработает вашу конкретную неясность, ваша система снова будет уязвима. Учитывая постоянство нападавших, это не означает никакой безопасности.

Obscurity никогда не следует использовать в качестве альтернативы надлежащим методам безопасности.

Obscurity как средство скрытия исходного кода для предотвращения копирования - это еще одна тема. Я довольно разделен на эту тему; Я могу понять, почему вы, возможно, захотите это сделать, лично я никогда не был в ситуации, когда это было бы необходимо.

Ответ 3

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

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

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

В прошлом году я наткнулся на историю, в которой Исследователи подсчитывают способность стеганографического канала, но действительно интересная вещь:

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

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

Интересный материал.

Ответ 4

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

Кроме того, дополнительное шифрование потребует дополнительных накладных расходов.

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

Лучшие альтернативы безопасности - устранение потенциальных недостатков вашего кода, таких как принудительные входы для предотвращения инъекционных атак.

Ответ 5

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

Ответ 6

Использование безвестности, поскольку все эти люди согласны, это не безопасность, а покупка времени. Тем не менее, наличие приличной системы безопасности реализовано, тогда добавление дополнительного слоя неясности по-прежнему полезна. Допустим, завтра кто-то найдет непревзойденную трещину в службе ssh, которая не может быть исправлена ​​немедленно.

Как правило, я реализовал в доме... все общедоступные серверы отображают только необходимые порты (http/https) и ничего больше. Затем один публичный сервер будет иметь ssh, который подвергнется воздействию интернета на некотором неясном порту с высоким номером и настройке триггера сканирования порта, чтобы заблокировать любой IP-адрес, который пытается его найти.

Obscurity занимает свое место в мире безопасности, но не как первая и последняя линия обороны. В приведенном выше примере я не получаю никаких script/bot атак на ssh, потому что они не хотят тратить время на поиск нестандартного порта службы ssh, и если они это сделают, то вряд ли они найдут его перед другим слой шагов безопасности и отключает их.

Ответ 7

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

Хорошая безопасность заключается в том, чтобы сохранить материал, который у вас есть, чтобы сохранить секрет до минимума. Если у вас есть правильно зашифрованный канал AES, вы можете позволить плохим парням увидеть все, кроме пароля, и вы в безопасности. Это означает, что у вас есть гораздо меньшая область, открытая для атаки, и может сосредоточиться на защите паролей. (Не то, что тривиально.)

Чтобы сделать это, вы должны быть уверены во всем, кроме пароля. Обычно это означает использование стандартного криптоанализа, на который смотрели многочисленные эксперты. Любой может создать шифр, который они не могут сломать, но не все могут сделать шифр Брюс Шнайер не может сломаться. Поскольку существует серьезная нехватка теоретических оснований для защиты шифров, безопасность шифрования определяется тем, что многие очень умные и знающие люди пытаются придумать атаки, даже если они не практичны (атаки на шифры всегда улучшаются, не хуже). Это означает, что криптоалгоритм должен быть широко известен. У меня очень большая уверенность в стандарте Advanced Encryption Standard, и почти никто в патентованном алгоритме Джо не написал и не запутался.

Однако были проблемы с реализацией криптоалгоритмов. Легко нечаянно оставлять отверстия, в которых ключ может быть найден, или другие промахи. Это произошло с альтернативным сигнатурным полем для PGP и слабостями SSL, реализованными на Debian Linux. Это даже случилось с OpenBSD, который, вероятно, является наиболее безопасной операционной системой, доступной (я думаю, это до двух эксплойтов через десять лет). Поэтому это должно быть сделано уважаемой компанией, и мне было бы лучше, если бы реализации были с открытым исходным кодом. (Закрытый источник не остановит определенного атакующего, но для случайных хороших парней окажется труднее найти дыры, которые нужно закрыть.)

Поэтому, если бы я хотел получить защиту, я постарался бы как можно более надежно защитить мою систему, что означает как можно более открытое, кроме пароля.

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

Наконец, я хотел бы сделать совершенно незапрашиваемый и незаинтересованный плагин для Bruce Schneier blog, как ничто иное, как заинтересованный читатель. Я много узнал о безопасности.

Ответ 8

Неужели ребята? Вы, честно говоря, будете сидеть здесь и рассказывать мне и всему миру, что неизвестность - плохая идея? Это не плохая идея, и это НЕ ДОЛЖНО быть вашим полным планом защиты от несанкционированного доступа. Большой план безопасности должен призывать к неизвестности, надежному паролю, шифрованию и закрытию задних дверей по мере их обнаружения.

Ответ 9

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

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

Ответ 10

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

Алгоритмы, такие как смещение символов, легко внедряются и легко взламываются, поэтому они являются плохой идеей. Вероятно, это лучше, чем ничего, но в лучшем случае это просто остановит случайный взгляд на легко читаемые данные.

В Интернете есть отличные ресурсы, которые вы можете использовать, чтобы рассказать о всех доступных методах шифрования и их сильных и слабых сторонах.

Ответ 11

В одном случае я утверждал, что защита паролем - это действительно безопасность через неясность. Единственная безопасность, о которой я могу думать, не будет STO - это своего рода биометрическая безопасность.

Кроме того, бит семантики и выбор nit, STO (Безопасность через неясность), очевидно, плох в любом случае, когда вам нужна реальная безопасность. Однако могут быть случаи, когда это не имеет значения. Я часто использую XOR для текстового файла, который я не хочу читать. Но мне все равно, если они это сделают, я бы предпочел, чтобы его не читали. В этом случае это не имеет значения, и XOR-панель является прекрасным примером простого поиска STO.

Ответ 12

почти никогда хорошая идея. То же самое сказать, неплохо ли ехать без ремней безопасности? Конечно, вы можете найти некоторые случаи, когда он подходит, но очевидный из-за опыта кажется очевидным.

Ответ 13

Если ОС - Windows, посмотрите на использование API защиты данных (DPAPI). Это не безопасность безвестности и является хорошим способом хранения учетных данных для автономного процесса. Как почти все говорят здесь, безопасность через неясность не дает вам большой защиты.

http://msdn.microsoft.com/en-us/library/ms995355.aspx

http://msdn.microsoft.com/en-us/library/ms998280.aspx

Ответ 14

Слабое шифрование будет удерживать только наименее мотивированных хакеров, поэтому оно не имеет ценности, оно просто не очень ценно, особенно когда доступно надежное шифрование, такое как AES.

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

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

Ответ 15

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

Как было показано снова и снова, если ваша единственная защита заключается в том, что "никто не знает, что у задней двери/ошибка/эксплойт есть", тогда все, что требуется, - это один человек, который наткнется на него и, в течение нескольких минут, сотен люди будут знать. На следующий день, почти все, кто хочет знать, будут. Уч.