Content:
General
Security/hack
Programming
FAQ/Humor
 
 
наша рассылка
Твой E-mail:
Submit
 
 
  Притча о паролях
 
 
  Статья вообще не относится напрямую к программированию, скорее это общее рассуждение о надежности паролей. Все специалисты по компьютерной безопасности изо дня в день твердят нам не ставить простых паролей, но как ни странно мало кто случает их ценные рекомендации. В паролях по-прежнему используют собственные имена, даты рождения или же другие читаемые слова. Такие пароли легко взламываются, иными словами они являются слабыми паролями. Что такое ненадежный, слабый пароль? Во-первых, это простой, короткий пароль. Сейчас существует десятки методов для нахождения пароля, пожалуй, самый простой и самый древний это поиск пароля по заданному словарю. Допустим, мы задали один из следующих паролей: love, freedom, sex. Все перечисленные варианты являются очень уязвимыми паролями, потому как все эти слова можно легко подобрать по английскому словарю. Преобразуем эти пароли: _Lov567E, FrE789dom_, s5EX#. Пароли стали более интересными, что мы сделали? Увеличили длину пароля, вставили цифры и специальные символы и поставили разный регистр букв. Вроде бы всё хорошо, да не тут то было. Да, теперь в словаре нет таких паролей, хорошо. Но такие пароли можно легко вернуть к первоначальному виду: удаляем все цифры из паролей, удаляем специальные символы и, наконец, возвращаем буквы в один регистр. Остались все те же: love, freedom, sex. :) Написать программу подбора подобного рода пароля не составляет особого труда, алгоритм в данном случае будет таким: если не символ английского алфавита, то удалить, иначе перевести всё в один регистр и искать по словарю.

Как обмануть такую программу? Давай сделаем пароль ещё более хитрым. Многие, наверное, извращались в былые времена с написание смс сообщений транслитом, чтобы вместить больше символом. :) Тогда мы можем вместо пароля freedom поставить и такой: сВ06oda или любое другое русское слово буржуйским алфавитом, будь то kakTyc -> k@kTyc. :) Но не стоит забывать, что и подобные словари уже давно существуют и их активно используют, поэтому наши пароли по-прежнему ненадежны. Но не будем распыляться и вернемся к нашим ранее созданным английским паролям. Усложним их ещё, заменяя буквы на похожие цифры и специальные символы. Получим, например, такое: %L0v3_e56, #FrE_78D0m3, $e56X_#3.

Теперь для подбора пароля нам необходимо заменять цифры и специальные символы на похожие по написанию буквы. Выделим некоторое множество символов (будь то специальные символы или же цифры), которые похожи по написанию с буквами. Рассмотрим пример такого множества: 1,i,l,!,j,2,z,3,e,4,a,5,s,6,d,7,?,8,b,9,g,0,o,+,t (можно и ещё что-нибудь добавить в этот список, но не суть важно). Теперь попробуем удалять все такие символы из исходного пароля. Из love получим v, freedom преобразится в frm и т.д. Понятно, что после такой обработки у разных паролей будут получаться одинаковые результаты, но и словарь для перебора станет намного меньше. Тем не менее, мы можем написать и так: %10o3_v#E, #Fr33ee_78D0_0om3, $3#3e56X_#3. Тогда нам опять придется опять менять алгоритм программы подбора пароля. Иначе результат распознавания у нам будет примерно такой: loove, freeeedooom, seeexe. Но и для этого можно придумать некий алгоритм, шаблон по которому мы сможем вернуть слово к первоначальному. Например, если после вышеуказанных преобразований наше слово всё же нет в словаре, то попытаемся убирать по одной повторные буквы. Тогда из loove –> love (одна редукция), freeedoom -> freedoom -> … -> freedom (очевидно, что тут придется сделать несколько циклов редукций, но, в конечном счете, мы получим). Seeexe –> seexe -> sexe (в словаре, конечно, может и быть такое слово, но вряд ли).

Глубок и могуч русский язык, но и в английском языке есть своя фонетика, и мы можем найти такие словосочетания букв, у которые есть двойники по произношению. Например, x = ks, th = f, oo = 00 = u, как же быть с такими изощренными заменами при подборе по словарю?

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

Если в голове крутится и так не мало цифр и букв, тогда можно создать искусственно случайные пароли. Можно придумать множество таких способов, рассмотрим пару простейших. Все в детстве учили цвета радуги по незадачливой фразе: «Каждый охотник желает знать, где сидит фазан». Кто тебе мешает сочинить аналогичную фразу для пароля? Например: «Microsoft Коспорация всемирного зла. Анархия мать порядка. Linux forever» (так как рассматриваем для пароли из английский букв, то слова следует писать транслитом, например: Korporaciya vsemirnogo zla). Берем только первые буквы у слов в разном регистре, получаем следующее: MkvzAmplF. Заменим буквы z и l на похожие символы и разбавим наш пароль специальными символами. Итого: _Mkv3%Amp^1F. Такой пароль придется долго подбирать. :)

Если и это сложно, то будем вообще примитивны. Берем любую фразу: «я не люблю пароли». Далее меняем раскладку клавиатуры и набираем буквы, но жмем не на сами эти символы, а например, на символы, стоящие выше нужного нам символа. Например, буква я переходит в a. Вся фраза, если я не ошибся, будет такой: a65ilkiltyuig. Поменяем регистр букв и добавим специальные символы, в общем как обычно. Итого имеем сложный пароль.

Если у тебя есть идеи или какие-либо реализации на подобную тему, то пиши мне.

.:: Special for Open Team E-zine ::.

Автор: latys
Public icq: 327656483

 
Интро | О проекте | Услуги | Статьи | Обратная связь
Freelance web designer