Выбор пароля и управление паролями является основной мерой безопасности в использовании любой операционной системы. Даже если приложение и сервер непробиваемые, это абсолютно ничего не значит, если Ваш пароль может взломать абсолютно любой Вася.
Можно подумать, что все сознательные люди в наших кругах параноиков, должно знать как защитить себя, но я часто вижу подобные случаи:
Закрытый ключ PGP & CaliConnect password был «qwerty1234» или «думалжопой567».
Или подобные высказывания мы запустили twitter его взломали через два часа ! (пароль был 123123123123..)
Ну или совсем удручающие ставящие пароль «Пароль1». Что с Вами не так?!
По этому решил написать статью, содержащую разъяснения о взломе паролей, когда и клиент и сервер защищены. Эффективности этих методов в значительной степени зависит от вычислительной мощности злоумышленника, это мы будем анализировать после методов атаки.
Если Вы просто хотите знать самый простой способ, чтобы чувствовать себя безопасно, надо понимать что является в принципе сильным паролем.
Атака грубой силой
Атака обычным перебором — да, да задействуется обычный перебор всех возможных комбинаций пароля и проверяем каждый из них. Это не элегантный способ нападения, но иногда это всё, что нужно. Эта атака способна взломать только самые слабые пароли, Вы их видели в примерах выше.
Атака по словарю
Атака по словарю — это вариант подбора, при котором злоумышленник собирает информацию о целевой аудитории и предположительные варианты пароля заносит в «словарь». Словарь — это настраиваемый список вариаций паролей, как правило, в том числе и список самых распространённых паролей, во-первых, словарь слов, которые чаще всего используются и некоторые комбинации цифр. Далее, словарь, часто содержит все те слова, что вероятно возможны с общими суффиксов и префиксов, например, цифр или знаков препинания. Атаку по словарю относительно легко отбить, выбрав пароль, который не является простым вариантов слова ни в одном словаре. Многие инструменты взлома паролей имеют встроенные словари. Есть целые базы содержащие информацию о самых популярных инструментах, их словари и сборники утечек паролей для анализа.
Радужные таблицы
Эта атака используется, когда злоумышленник имеет доступ к паролям. Здесь стоит отметить, что сложность Вашего пароля будет защищать Вас, даже если сервер скомпрометирован. Защита должна быть мудрой, этого достаточно, чтобы знать, что со сложным паролем взломать Вас будет гораздо сложнее.
Пропустите эту часть, если Вы просто хотите обезопасить себя, не беспокоясь при этом про перемешивание, радужные таблицы и прочее прочее прочее.
Базы данных не содержат текстовые пароли, а целые хэши паролей. Хэш — это результат очень трудоёмкой функции, которая запутывает ввод. Когда Вы вводите свой пароль, сервер вычисляет хэш-значение и сравнивает его с тем, что сохраняется в базе данных для подтверждения.
Очень простой пример хэш-функции: взять число 4 в качестве входных данных, квадрат (16), взять его натуральный логарифм (2.7725), умножьте его на пи (8.72103) и возьмите его факториал (гамма-функция), получите 189843.119 . Теперь попросите Вашего друга, взять 189843.119, связать с 4. Я думаю велики шансы, что никто ничего не понял.
Хэши паролей часто выглядят так: qiyh4XPJGsOZ2MEAyLkfWqeQ
По этому, когда злоумышленник ставит под угрозу базу данных, если пароль можеть быть взломан, то поверьте он его взломает. Тогда то на помощь приходит радуга с её вычислительными таблицами паролей и их хэшей. Затем злоумышленник сравнивает радужную таблицу с хэшами в базе, если хэши совпадают, то далее следует подобный пример.
Пользователь Пароль
Пользователь1 HgkHJgKHgKhKGhjfhgKvkGjKG
Администратор qiyh4XPJGsOZ2MEAyLkfWqeQ
Давайте попробуем найти этот хэш в радужной таблице
Пароль Хэш
password asdh4DFGsOZ2MEAyLkfWqES
qwerty qi8H8R7OM4xMfdMPuRAZxlY
pass1234 GsOZ2MEAM4xPuRAZxlqiyAFiy
passw0rd qiyh4XPJGsOZ2MEAyLkfWqeQ
abcdefgh nKv3LvrdAVtOcE5EcsGIpYBtniN
Вот почему некоторые серверы увеличивают хэш путём добавления случайной величины в уравнение, таким образом, злоумышленник может просто скачать готовую радужную таблицу, но для взлома не придётся создать пользовательскую радужную таблицу, а это требует очень много времени, потому что хэш-функции являются весьма трудоёмкими. Если есть различные комбинации для каждого пароля, то злоумышленник должен создать настраиваемую таблицу так же для каждого пароля, что не представляется возможным. Всё это хранить и постоянно искать решение, это перегружает компьютер злоумышленника, ведь он делает слишком много «работы».
Единственное что сервер может сделать до Вас для Вашей же защите, это помочь Вам выбрать надёжный пароль. Если цель атаки именно Вы, конкретно, то преступник создаст целую радужную таблицу куда внесёт всё что только возможно, в том числе и дату рождения Вашей бабушки. Так, что полезн оиметь пароль, который не хранится к тому же на рабочем столе.
Я вообще сильно удивлён, как много популярнейших веб-сервисов позволяют иметь слабейший пароль.
Практический анализ этих атак.
Проанализированы мной атаки, которым подвергались различные сервисы, скорость автономной атаки из интернета гораздо медленнее, чем атака в автономном режиме, искать пароль любым способом подбора гораздо проще имея копию базы данных у себя на локалке, чем пытаться это сделать через сеть.
Сложность пароля зависит от двух характеристик: длина и количество различных символов. Например, если Вы используете 8-значный пароль, только цифры 10 символов:
_ _ _ _ _ _ _ _ каждое поле может содержать 10 различных символов, так что есть 10*10*10*10*10*10*10*10=108 возможных комбинаций. Если у злоумышленника Пентиум 4, процессор 3.2 GGz он сможет пробывать 2 миллиона паролей в секунду. Это означает, что пароль будет взломан за 108/(2*106)=50 секунд, менее минуты.
Формула для расчёта какое количество сочетаний злоумышленнику необходимо попробывать:
АВ, где:
А — количество различных возможных символов
В — длина пароля
Если длина пароля неизвестна, то злоумышленник, как правило, будет стараться сначала попробывать самые короткие. Допустим, он хочет попробовать все 8, 9, 10-ти символьные пароли, число комбинаций: А8+А9+А10.
Постоянный рост в зависимости от сложности.
К счастью для нас, при сложном пароле, сложность уравнения возрастает в геометрической прогрессии при увеличении длины. В приведенном выше примере, только 10 цифр, каждый дополнительный символ добавляет ещё 10 раз для возможных комбинаций.
Например, сложность взлома паролей, которые содержат только строчные буквы из английского алфавита и цифр — 36 различных символов (следовательно, юный падаван, длина комбинаций = 36), а это уже сложнее, чем 10 вариаций.
Большое заключение.
Используя только строчные или только заглавные буквы и цифры, у Вас должно быть не менее 11 символов в пароле.
Если Вы используете как строчные, так и прописные буквы, цифры и знаки препинания, нужно минимум 8 символов в пароле.
Не должен пароль быть достаточно предсказуемым, чтобы быть частью списка атаки по словарю. Я бы рекомендовал использовать 12 символьный пароль из самого широкого набора возможных вариаций.
Простой способ управления надёжными паролями.
Другой пароль пароль должен быть использован для каждого Вашего счёта, поскольку злоумышленники часто проверяют все Ваши счета, и если где-то пароль был, то поверьте, его скопрометировали.
Пароль должен быть не менее 12 символом и содержать заглавный и строчные буквы, цифры и знаки препинания. Вы можете легко удовлетворить эти требования с помощью обычной клавиатуры, конечно все их запомнить будет довольно сложно.
Менеджер паролей
Менеджер паролей позволяет использовать сотни различных паролей, и Вы должны помнить только один пароль, который открывает базу данных зашифрованных паролей. Излишне говорить, что этот единый пароль должен быть прочным и хорошо защищённым (читаем, нигде не фиксируется).
Большинство менеджеров паролей может автоматически создавать надёжные пароли, используя криптографический безопасный генератор случайных паролей, а также расчитывает возможность их взлома. Хороший менеджер паролей обеспечит устойчивость от атак, коих огромное количество, мы описали самые простейшие.
Для создания одного надёжного пароля, который легко запомнить Вы можете использовать большой источник — Ваш разум. Придумайте предложение или лучше два. Что-то вроде «London of the capital of Great Britain, Russia — winter is coming 14122016». И используйте первые буквы каждого слова: LotcoGB,R-wic14122016. Вы можете легко запомнить предложение и воссоздать в случае необходимости пароль. В идеале, предложение будет включать в себя знак и номер.
Есть множество подобных уловок, которые могут помочь Вам, если эта не нравится.
Шаблон
Используйте хоть падонкоффский сленг, для создания пароля, который абсолютно не будет очевиден. Например, подбираем 2 цифры: 6,7 и окружаем ими слово password, добавляя, например, shift+6=^ , shift+7=&. Можете хоть местами цифры поменять, как Вам угодно. Если сейчас взять этот пример то пароль получится 67passwORd^& его легко запомнить и он сильный. Слово может быть, лёгкое и Вы его свободно запомните для каждого сайта, но держитесь от очевидных слов, таких как доменное имя, или какой там ещё бред используют.
Избегайте распространённые ошибки буква и число, заменяйте о-0, I-1. Хорошо и долго обдумывайте свой пароль.
Можно подумать, что все сознательные люди в наших кругах параноиков, должно знать как защитить себя, но я часто вижу подобные случаи:
Закрытый ключ PGP & CaliConnect password был «qwerty1234» или «думалжопой567».
Или подобные высказывания мы запустили twitter его взломали через два часа ! (пароль был 123123123123..)
Ну или совсем удручающие ставящие пароль «Пароль1». Что с Вами не так?!
По этому решил написать статью, содержащую разъяснения о взломе паролей, когда и клиент и сервер защищены. Эффективности этих методов в значительной степени зависит от вычислительной мощности злоумышленника, это мы будем анализировать после методов атаки.
Если Вы просто хотите знать самый простой способ, чтобы чувствовать себя безопасно, надо понимать что является в принципе сильным паролем.
Атака грубой силой
Атака обычным перебором — да, да задействуется обычный перебор всех возможных комбинаций пароля и проверяем каждый из них. Это не элегантный способ нападения, но иногда это всё, что нужно. Эта атака способна взломать только самые слабые пароли, Вы их видели в примерах выше.
Атака по словарю
Атака по словарю — это вариант подбора, при котором злоумышленник собирает информацию о целевой аудитории и предположительные варианты пароля заносит в «словарь». Словарь — это настраиваемый список вариаций паролей, как правило, в том числе и список самых распространённых паролей, во-первых, словарь слов, которые чаще всего используются и некоторые комбинации цифр. Далее, словарь, часто содержит все те слова, что вероятно возможны с общими суффиксов и префиксов, например, цифр или знаков препинания. Атаку по словарю относительно легко отбить, выбрав пароль, который не является простым вариантов слова ни в одном словаре. Многие инструменты взлома паролей имеют встроенные словари. Есть целые базы содержащие информацию о самых популярных инструментах, их словари и сборники утечек паролей для анализа.
Радужные таблицы
Эта атака используется, когда злоумышленник имеет доступ к паролям. Здесь стоит отметить, что сложность Вашего пароля будет защищать Вас, даже если сервер скомпрометирован. Защита должна быть мудрой, этого достаточно, чтобы знать, что со сложным паролем взломать Вас будет гораздо сложнее.
Пропустите эту часть, если Вы просто хотите обезопасить себя, не беспокоясь при этом про перемешивание, радужные таблицы и прочее прочее прочее.
Базы данных не содержат текстовые пароли, а целые хэши паролей. Хэш — это результат очень трудоёмкой функции, которая запутывает ввод. Когда Вы вводите свой пароль, сервер вычисляет хэш-значение и сравнивает его с тем, что сохраняется в базе данных для подтверждения.
Очень простой пример хэш-функции: взять число 4 в качестве входных данных, квадрат (16), взять его натуральный логарифм (2.7725), умножьте его на пи (8.72103) и возьмите его факториал (гамма-функция), получите 189843.119 . Теперь попросите Вашего друга, взять 189843.119, связать с 4. Я думаю велики шансы, что никто ничего не понял.
Хэши паролей часто выглядят так: qiyh4XPJGsOZ2MEAyLkfWqeQ
По этому, когда злоумышленник ставит под угрозу базу данных, если пароль можеть быть взломан, то поверьте он его взломает. Тогда то на помощь приходит радуга с её вычислительными таблицами паролей и их хэшей. Затем злоумышленник сравнивает радужную таблицу с хэшами в базе, если хэши совпадают, то далее следует подобный пример.
Пользователь Пароль
Пользователь1 HgkHJgKHgKhKGhjfhgKvkGjKG
Администратор qiyh4XPJGsOZ2MEAyLkfWqeQ
Давайте попробуем найти этот хэш в радужной таблице
Пароль Хэш
password asdh4DFGsOZ2MEAyLkfWqES
qwerty qi8H8R7OM4xMfdMPuRAZxlY
pass1234 GsOZ2MEAM4xPuRAZxlqiyAFiy
passw0rd qiyh4XPJGsOZ2MEAyLkfWqeQ
abcdefgh nKv3LvrdAVtOcE5EcsGIpYBtniN
Вот почему некоторые серверы увеличивают хэш путём добавления случайной величины в уравнение, таким образом, злоумышленник может просто скачать готовую радужную таблицу, но для взлома не придётся создать пользовательскую радужную таблицу, а это требует очень много времени, потому что хэш-функции являются весьма трудоёмкими. Если есть различные комбинации для каждого пароля, то злоумышленник должен создать настраиваемую таблицу так же для каждого пароля, что не представляется возможным. Всё это хранить и постоянно искать решение, это перегружает компьютер злоумышленника, ведь он делает слишком много «работы».
Единственное что сервер может сделать до Вас для Вашей же защите, это помочь Вам выбрать надёжный пароль. Если цель атаки именно Вы, конкретно, то преступник создаст целую радужную таблицу куда внесёт всё что только возможно, в том числе и дату рождения Вашей бабушки. Так, что полезн оиметь пароль, который не хранится к тому же на рабочем столе.
Я вообще сильно удивлён, как много популярнейших веб-сервисов позволяют иметь слабейший пароль.
Практический анализ этих атак.
Проанализированы мной атаки, которым подвергались различные сервисы, скорость автономной атаки из интернета гораздо медленнее, чем атака в автономном режиме, искать пароль любым способом подбора гораздо проще имея копию базы данных у себя на локалке, чем пытаться это сделать через сеть.
Сложность пароля зависит от двух характеристик: длина и количество различных символов. Например, если Вы используете 8-значный пароль, только цифры 10 символов:
_ _ _ _ _ _ _ _ каждое поле может содержать 10 различных символов, так что есть 10*10*10*10*10*10*10*10=108 возможных комбинаций. Если у злоумышленника Пентиум 4, процессор 3.2 GGz он сможет пробывать 2 миллиона паролей в секунду. Это означает, что пароль будет взломан за 108/(2*106)=50 секунд, менее минуты.
Формула для расчёта какое количество сочетаний злоумышленнику необходимо попробывать:
АВ, где:
А — количество различных возможных символов
В — длина пароля
Если длина пароля неизвестна, то злоумышленник, как правило, будет стараться сначала попробывать самые короткие. Допустим, он хочет попробовать все 8, 9, 10-ти символьные пароли, число комбинаций: А8+А9+А10.
Постоянный рост в зависимости от сложности.
К счастью для нас, при сложном пароле, сложность уравнения возрастает в геометрической прогрессии при увеличении длины. В приведенном выше примере, только 10 цифр, каждый дополнительный символ добавляет ещё 10 раз для возможных комбинаций.
Например, сложность взлома паролей, которые содержат только строчные буквы из английского алфавита и цифр — 36 различных символов (следовательно, юный падаван, длина комбинаций = 36), а это уже сложнее, чем 10 вариаций.
Большое заключение.
Используя только строчные или только заглавные буквы и цифры, у Вас должно быть не менее 11 символов в пароле.
Если Вы используете как строчные, так и прописные буквы, цифры и знаки препинания, нужно минимум 8 символов в пароле.
Не должен пароль быть достаточно предсказуемым, чтобы быть частью списка атаки по словарю. Я бы рекомендовал использовать 12 символьный пароль из самого широкого набора возможных вариаций.
Простой способ управления надёжными паролями.
Другой пароль пароль должен быть использован для каждого Вашего счёта, поскольку злоумышленники часто проверяют все Ваши счета, и если где-то пароль был, то поверьте, его скопрометировали.
Пароль должен быть не менее 12 символом и содержать заглавный и строчные буквы, цифры и знаки препинания. Вы можете легко удовлетворить эти требования с помощью обычной клавиатуры, конечно все их запомнить будет довольно сложно.
Менеджер паролей
Менеджер паролей позволяет использовать сотни различных паролей, и Вы должны помнить только один пароль, который открывает базу данных зашифрованных паролей. Излишне говорить, что этот единый пароль должен быть прочным и хорошо защищённым (читаем, нигде не фиксируется).
Большинство менеджеров паролей может автоматически создавать надёжные пароли, используя криптографический безопасный генератор случайных паролей, а также расчитывает возможность их взлома. Хороший менеджер паролей обеспечит устойчивость от атак, коих огромное количество, мы описали самые простейшие.
Для создания одного надёжного пароля, который легко запомнить Вы можете использовать большой источник — Ваш разум. Придумайте предложение или лучше два. Что-то вроде «London of the capital of Great Britain, Russia — winter is coming 14122016». И используйте первые буквы каждого слова: LotcoGB,R-wic14122016. Вы можете легко запомнить предложение и воссоздать в случае необходимости пароль. В идеале, предложение будет включать в себя знак и номер.
Есть множество подобных уловок, которые могут помочь Вам, если эта не нравится.
Шаблон
Используйте хоть падонкоффский сленг, для создания пароля, который абсолютно не будет очевиден. Например, подбираем 2 цифры: 6,7 и окружаем ими слово password, добавляя, например, shift+6=^ , shift+7=&. Можете хоть местами цифры поменять, как Вам угодно. Если сейчас взять этот пример то пароль получится 67passwORd^& его легко запомнить и он сильный. Слово может быть, лёгкое и Вы его свободно запомните для каждого сайта, но держитесь от очевидных слов, таких как доменное имя, или какой там ещё бред используют.
Избегайте распространённые ошибки буква и число, заменяйте о-0, I-1. Хорошо и долго обдумывайте свой пароль.
Последнее редактирование: