С тех пор как десять лет назад мой аккаунт в Twitter был взломан из-за слабого пароля, я увлечена созданием и использованием лучших вариантов. Я использую менеджер паролей для большинства учетных записей, а мои самые важные пароли — это длинные комбинации слов, которые я храню как в голове, так и с помощью ручки и бумаги.
Метод, который я использую для создания важных паролей, называется Diceware. Бросая кости, я получаю случайные числа и использую их для выбора слов из списка слов, где каждому слову присвоен номер. Получившийся пароль представляет собой серию словосочетаний, которые легко запомнить мне и трудно взломать компьютеру.
В компьютерных науках для определения сложности взлома пароля используется понятие «энтропия». Чем длиннее пароль, тем больше у него энтропия. Я использую пароли Diceware из шести слов, которые, по словам создателя Diceware Арнольда Рейнхолда, имеют 77,5 бита энтропии. Это означает, пишет он, что парольную фразу из шести слов может «взломать только организация с очень большим бюджетом, например, служба безопасности крупной страны».
Я настолько увлечена этим методом, что когда моей дочери было 8 лет, я начала платить ей за то, чтобы она бросала кости и составляла для меня пароли Diceware. В итоге она превратила это в онлайн-бизнес, которым занимается и по сей день.
Но этим летом я услышал новость о паролях, которая потрясла меня до глубины души. Джереми Госни, известный взломщик паролей, выступил на конференции хакеров и заявил, что энтропию переоценивают. По его словам, наиболее важной характеристикой надежного пароля в наши дни является уникальность — наличие отдельного пароля для каждой учетной записи.
Госни — суперспециалист по паролям. Он помог разработать программу для восстановления паролей с открытым исходным кодом Hashcat и является бывшим генеральным директором компании Terahash, занимающейся взломом паролей. Он помогает в организации DEF CON Password Village и трека PasswordsCon на Security BSides Las Vegas. Поэтому я позвонила ему и попросил рассказать о новых идеях в мире паролей.
Наш разговор, слегка отредактированный для краткости и ясности, приведен ниже.
Энгвин: начнем с того, что такое взлом паролей и как выглядит эта профессия?
Госни: обычно, когда мы говорим о взломе паролей, мы имеем в виду офлайновый взлом, то есть, когда кто-то получил копию базы данных паролей. Пароли в базе данных почти никогда не бывают в виде обычного текста (текста, который человек может прочитать глазами). Они скремблируются с помощью так называемой хэш-функции. Единственный способ взломать пароль — это, по сути, игра в угадайку, когда вы прогоняете угаданные пароли через тот же хэш-алгоритм, который использовался для создания хэшей в базе данных, и сравниваете результаты. Если в итоге получаются два одинаковых хэш-значения, то мы знаем, какой был пароль. Существует также онлайн-взлом паролей, когда кто-то либо вводит пароль в поле для входа в систему вручную, либо использует компьютерную программу для автоматического перебора значений в поле формы.
Мы сосредоточимся на офлайн-взломе, когда у кого-то есть копия базы данных паролей, и не получил ее незаконным путем. Некоторые люди, например, сотрудники службы информационной безопасности корпорации, намеренно пытаются взломать пароли корпорации, чтобы проверить эффективность корпоративной политики сложности паролей. Они хотят выявить слабые пароли до того, как это сделает злоумышленник. Другой законный случай взлома пароля — если кто-то из бухгалтерии зашифровал электронную таблицу, а затем попал под автобус, и другим сотрудникам понадобился доступ к этому документу. Предприятие может попытаться взломать пароль для этого документа или нанять для этого кого-то вроде меня. Существует множество законных случаев использования.
Энгвин: можете ли вы рассказать о роли взломов и насколько они распространены?
Госни: до 2010 года мы были довольно наивны в том, как мы угадывали пароли. В 2009 году произошел взлом крупного сайта rockyou.com с более чем 32 миллионами пользователей. Этот сайт хранил все пароли своих пользователей в виде обычного текста, и все пароли стали известны. Это дало нам самое большое представление о том, как люди создают пароли в глобальном масштабе. Это было беспрецедентно. Это зажгло костер в мире взлома паролей, потому что внезапно у нас появились новые удивительные вводные значения для взлома баз данных паролей. Каждая утечка паролей, произошедшая с тех пор, только расширяет наше представление о том, как люди создают пароли. Каждый год происходят десятки крупных утечек. Еще одной крупной утечкой была утечка из LinkedIn, раскрытая в 2016 году, которую мы смогли взломать примерно на 96 процентов в течение недели.
Собрав данные о RockYou, LinkedIn, Ashley Madison и других крупных утечках, мы получили действительно полную картину паролей людей. Мы анализируем эти данные, чтобы в будущем более целенаправленно угадывать пароли. Это цикл обратной связи: мы взламываем пароли, добавляем их в наш список слов и используем их для взлома новых паролей.
Энгвин: вы говорили, что взлом паролей — это скорее искусство, чем наука, в частности, для этого необходимо знание человеческой психологии. Не могли бы вы сначала рассказать о математических компонентах взлома паролей, а затем объяснить, как психология играет в этом процессе роль?
Госни: математическая составляющая — это алгоритм хэширования, о котором мы говорили. Когда люди слышат, что мы взламываем пароли, они думают, что мы пишем много кода, но все гораздо проще. Мы берем ту же хэш-функцию, которая использовалась для создания хэшированных паролей, и пытаемся угадать входное значение. Вот где проявляется искусство; несмотря на вид используемого программного обеспечения взломщик паролей хорош лишь настолько, насколько хороши его догадки. Взломщиком паролей является мозг. Программное и аппаратное обеспечение — это инструменты, которые мы используем, но молоток и зубило не определяют плотника. Плотник — это художник, выполняющий работу.
Вот тут-то и приходит на помощь психология. Как правило, пароли, которые мы можем взломать, не генерируются машинами. (Единственный способ взломать случайный пароль — это грубая сила, постепенное перебирание всех символов по порядку). Наибольшего успеха как взломщики паролей мы добиваемся в паролях, сгенерированных людьми, поскольку люди по всему миру все еще склонны думать одинаково. Несмотря на языковые и культурные различия, наш мозг способен придумать лишь ограниченное количество шаблонов. Мы отточили наши методики, чтобы использовать эти шаблоны. В глобальном масштабе все по-прежнему склонны думать одинаково, когда мы просим их придумать короткий секрет. Именно этот человеческий фактор мы используем в процессе взлома паролей.
Энгвин: что мы, люди, делаем одинаково?
Госни: если я предложу вам придумать короткую строку из шести или более символов, вы, вероятно, выберете что-то, что вас интересует, хобби или интересы, город или спортивную команду, имена ваших детей или домашних животных. Люди загадывают то, что у них на уме или близко к сердцу.
При использовании политики сложности пароля, требующей ввода заглавного символа и числа, 99 процентов людей на планете поставят заглавный символ на первое место, а число — на последнее. Конечно, некоторые люди отличаются, но подавляющее большинство будет следовать очень простым шаблонам. Вооружившись некоторыми знаниями, такими как общий словарь, известные достопримечательности, спортивные команды, имена, фамилии и клички домашних животных, мы сможем взломать 99 процентов базы данных паролей менее чем за неделю.
Энгвин: меня учили, что я должна делать свои пароли длинными и сложными, чтобы сделать их невзламываемыми. Но недавно вы выступили с докладом о том, что это неправильный подход. Поясните.
Госни: я думаю, нам нужно сделать большой шаг назад и посмотреть на всевозможные способы взлома паролей в реальном мире. Если проанализировать модель угроз, то случаев, когда сложность и длина имеют значение, очень мало. На самом деле, практически единственный случай, когда сложность и длина имеют значение, — это защита от автономного взлома. Но для всех остальных случаев в модели угроз, когда пароли крадут, длина и сложность просто не имеют значения.
Большинство паролей крадут открытым текстом, а не из хэшированных баз данных, которые пытаются взломать люди вроде меня. Их крадут с помощью фишинговых атак, вредоносных программ или плечевого серфинга. Поэтому длина и сложность не имеют значения. Использование уникальных паролей для каждой учетной записи — вот что важно, потому что это не позволяет злоумышленнику, укравшему один из ваших паролей, получить доступ к нескольким вашим учетным записям. Это ограничивает масштаб взлома только одной скомпрометированной учетной записью.
Энгвин: значит, это аргумент в пользу использования программы-менеджера паролей, которая создает уникальный пароль для каждой учетной записи?
Госни: использование менеджера паролей, создающего уникальный, генерируемый машиной пароль для каждой службы входа в систему, является, безусловно, лучшим способом.
Но, в конечном итоге, мы должны избавиться от паролей, и я говорю это как взломщик паролей! С точки зрения безопасности пароли просто ужасны. Мы пытаемся поставить безопасность учетной записи в зависимость от способности пользователя придумать секрет, который должен защитить все. Это большая ответственность для пользователей. В конечном счете это бремя должно быть перенесено с пользователя на бэкэнд.
Вместо паролей мы должны использовать что-то вроде FIDO, которая позволяет пользователям входить в систему с помощью ключа безопасности или биометрической информации. Биометрический подход имеет некоторые недостатки для анонимного доступа к услугам, но для обычного пользователя это делает его мир более безопасным, не возлагая на него бремя, при котором вся его безопасность зависит от его способности придумать какое-то не поддающееся взлому слово.