Оглавление
Необходимо защищать ваши учётные записи на сайтах и в приложениях. Вам вряд ли понравится, что кто-то отправляет сообщения от вашего имени или тратит ваши деньги на покупки. Сейчас учётные записи защищаются при помощи паролей, хотя это далеко не лучший вариант.
Если вы используете очень простые пароли или используете один и тот же пароль везде, вас могут взломать. Но если вы сделаете пароль слишком сложным, то можете забыть его и не войти в свой аккаунт. Единственный способ использовать надёжный уникальный пароль для каждого сайта – это установить менеджер паролей. Тогда вы сможете на каждом сайте применять случайным образом выбранные уникальные сложные пароли.
Почти каждый менеджер паролей включает в себя генератор паролей, поэтому не придётся придумывать случайные пароли самостоятельно. Впрочем, при желании можно создать собственный генератор случайных паролей. Не все генераторы паролей одинаковы. Зная принципы их работы, можно выбрать наиболее подходящий и эффективно использовать его.
Генераторы паролей – случайные или нет?
Когда вы бросаете пару кубиков, вы получаете случайный результат. Никто не может предсказать, какое число у нас выпадет. Но в компьютерной сфере физические объекты, такие как игральные кости, отсутствуют. Существует несколько источников случайных чисел, основанных на радиоактивном распаде, но вы не найдёте их в среднестатистическом менеджере паролей.
Менеджеры паролей и другие компьютерные программы используют так называемый псевдослучайный алгоритм. Этот алгоритм начинается с числа, называемого начальным числом. Алгоритм обрабатывает начальное число и получает новое число без прослеживаемой связи со старым, и новое число становится следующим начальным числом. Исходное число никогда не появится снова, пока не появятся все остальные числа.
Если начальное число было 32-битным целым числом, это означает, что алгоритм будет обрабатывать 4 294 967 295 других чисел перед повторением.
Это нормально для повседневного использования и подходит для большинства генерирующих пароли людей. Однако теоретически опытный хакер может определить используемый псевдослучайный алгоритм. Зная его и начальное значение, хакер мог бы воспроизвести последовательность случайных чисел (хотя это сложно).
Такой вид направленного взлома чрезвычайно маловероятен, за исключением целенаправленной атаки со стороны государства или корпоративного шпионажа. Если вы подвергаетесь такой атаке, ваш антивирус вряд ли сможет вас защитить. К счастью, вы наверняка не станьте мишенью такого рода кибершпионажа.
Тем не менее, некоторые менеджеры паролей активно работают над устранением даже отдаленной возможности такой целенаправленной атаки. Включая ваши собственные движения мыши или случайные символы в случайный алгоритм, они получают действительно случайный результат. Среди тех, кто предлагает такую рандомизацию в реальном мире, – AceBIT Password Depot, KeePass и Steganos Password Manager.
На скриншоте выше показан рандомизатор в виде матрицы Password Depot; да, символы падают, когда вы двигаете мышью.
Менеджеры паролей уменьшают случайность
Конечно, генераторы паролей не возвращают буквально случайные числа. Вместо этого они возвращают строку символов, используя случайные числа для выбора из доступных наборов символов. Вы всегда должны разрешать использование всех доступных наборов символов, если только вы не создаёте пароль для сайта, который не допускает использование специальных символов.
Набор доступных латинских символов включает в себя 26 заглавных букв, 26 строчных букв и 10 цифр. Он также включает в себя набор специальных символов, который у разных генераторов может быть разным. Предположим, что доступно 18 специальных символов. В итоге получается выбор из 80 символов. В полностью случайном пароле есть 80 вариантов для каждого символа. Если вы выберете восьмизначный пароль, количество возможных вариантов составит 80 в 8 степени, или 1 677 721 600 000 000 – больше квадриллиона. Это сложная задача для взлома методом перебора, а угадывание методом перебора – единственный способ взломать действительно случайный пароль.
Полностью случайный генератор иногда может выдавать пароль вроде «аааааааа», «Covfefe!» и «12345678», поскольку они так же вероятны, как и любая другая последовательность из восьми символов. Некоторые генераторы паролей фильтруют вывод, чтобы избежать таких паролей. Это нормально, но если хакер знает об этих фильтрах, это уменьшает количество возможностей и упрощает взлом методом перебора.
Рассмотрим пример. Существует 40 960 000 возможных четырёхсимвольных паролей, взятых из набора из 80 символов. Но некоторые генераторы паролей принудительно выбирают хотя бы по одному символу каждого типа, и это резко снижает количество вариантов. Есть 80 вариантов для первого символа. Предположим, это заглавная буква; набор для второго символа – 54 (80 минус 26 заглавных букв). Далее предположим, что второй символ – это строчная буква. Для третьего символа остаются только цифры и специальные символы из 28 вариантов. И если третий символ знак препинания, последний должен быть цифрой, то есть 10 вариантов. 40 млн возможностей сокращаются до 1 209 600.
Использование всех наборов символов не является необходимостью на многих сайтах. Чтобы это требование не привело к сокращению вариантов паролей, установите большую длину пароля. Когда пароль достаточно длинный, эффект навязывания разных типов символов становится незначительным.
Другие ограничения в менеджерах паролей тоже сокращают набор возможных паролей. Например, RememBear Premium указывает точное количество символов каждого из четырёх наборов символов, что резко сокращает пул. По умолчанию для этого требуются две заглавные буквы, две цифры, 14 строчных букв и никаких символов, всего 18 символов. Это приводит к тому, что пул паролей в сотни миллионов раз меньше, чем если бы он просто требовал одного или нескольких символов каждого типа. Проблема снова решается созданием более длинного пароля.
LastPass и некоторые другие по умолчанию избегают неоднозначных пар символов, таких как цифра 0 и буква O. Если вам не нужно запоминать пароль, в этом нет необходимости; отключите эту опцию. Также не выбирайте вариант создания произносимого пароля, такого как «entlestmospa». Эта опция важна только в том случае, если вы должны запомнить пароль. Применение этой опции не только ограничивает вас строчными символами, но и отвергает огромное количество возможностей, которые генератор паролей считает непроизносимыми.
Создание длинных паролей
Как было сказано, генераторы паролей не обязательно выбирают из пула всех возможных паролей, совпадающих по длине и наборам символов, которые вы выбрали. Но решение простое — создавайте более длинные пароли. Вам не нужно запоминать эти пароли, поэтому они могут быть огромными. Настолько длинными, насколько разрешает сайт. На некоторых сайтах устанавливаются ограничения на длину паролей.
Чем больше пространство поиска (то, что было названо пулом доступных паролей), тем больше времени потребуется для атаки типа брутфорс. Вы можете использовать Password Haystack Calculator на сайте Gibson Research, чтобы почувствовать значение длины.
Введите пароль и увидите, сколько времени потребуется для взлома. На сайте обещают не сохранять вводимые вами пароли. Но ради осторожности лучше всё же не вводить пароли, которые вы действительно используете в своих учётных записях. Четырёхсимвольный пароль, такой как 1eA&, может взламываться не один день, если хакеру придётся отправлять варианты в интернет. Если же перебор происходит локально на компьютере, когда хакер может делать перебор на высокой скорости, время взлома составляет доли секунды.
Поместив пароль TrashExpert!2077 в калькулятор Гибсона, можно узнать, что даже при использовании крупного массива взлома потребуется 1,41 млн столетий, чтобы взломать его.
Делайте осознанный выбор менеджера паролей
Итак, самое главное при создании надёжных паролей заключается в их длине. Некоторые генераторы паролей отклоняют пароли, которые не содержат всех наборов символов, некоторые отклоняют пароли со встроенными словарными словами, некоторые отбрасывают пароли, содержащие неоднозначные символы, такие как маленькая l и цифра 1. Все эти ограничения уменьшают число возможных паролей, но когда длина достаточно велика, это неважно.
Теоретически (если не практически) возможно, что какой-нибудь злоумышленник может взломать схему генерации паролей вашего менеджера паролей и тем самым получить возможность предсказывать псевдослучайные пароли, которые он вам предложит.