Надежность пароля — это мера эффективности пароля против угадывания или атак методом подбора . В своей обычной форме она оценивает, сколько попыток в среднем потребуется злоумышленнику, не имеющему прямого доступа к паролю, чтобы угадать его правильно. Надежность пароля — это функция длины, сложности и непредсказуемости. [1]
Использование надежных паролей снижает общий риск нарушения безопасности, но надежные пароли не заменяют необходимость в других эффективных средствах контроля безопасности . [2] Эффективность пароля определенной надежности в значительной степени определяется разработкой и реализацией факторов аутентификации (знание, владение, неотъемлемость). Первый фактор является основным объектом внимания в этой статье.
Скорость, с которой злоумышленник может отправлять системе угаданные пароли, является ключевым фактором в определении безопасности системы. Некоторые системы устанавливают тайм-аут в несколько секунд после небольшого количества (например, трех) неудачных попыток ввода пароля. При отсутствии других уязвимостей такие системы могут быть эффективно защищены относительно простыми паролями. Однако система хранит информацию о паролях пользователя в той или иной форме, и если эта информация будет украдена, например, путем нарушения безопасности системы, пароли пользователя могут оказаться под угрозой.
В 2019 году NCSC Великобритании проанализировал общедоступные базы данных взломанных аккаунтов, чтобы узнать, какие слова, фразы и строки использовали люди. Самым популярным паролем в списке был 123456, он встречался в более чем 23 миллионах паролей. Вторая по популярности строка, 123456789, была не намного сложнее для взлома, в то время как в пятерку лучших вошли « qwerty », «password» и 1111111. [3]
Пароли создаются либо автоматически (с использованием рандомизирующего оборудования), либо человеком; последний случай более распространен. В то время как стойкость случайно выбранных паролей к атаке методом подбора может быть рассчитана с точностью, определить стойкость паролей, сгенерированных человеком, сложно.
Обычно людей просят выбрать пароль, иногда руководствуясь предложениями или ограниченный набором правил, при создании новой учетной записи для компьютерной системы или интернет-сайта. Возможны только грубые оценки надежности, поскольку люди склонны следовать шаблонам в таких задачах, и эти шаблоны обычно могут помочь злоумышленнику. [4] Кроме того, списки часто выбираемых паролей широко доступны для использования программами подбора паролей. Такие списки включают многочисленные онлайн-словари для различных человеческих языков, взломанные базы данных открытых текстов и хешированных паролей из различных онлайн-бизнес-аккаунтов и социальных сетей, а также другие распространенные пароли. Все элементы в таких списках считаются слабыми, как и пароли, которые являются их простыми модификациями.
Хотя в настоящее время доступны программы случайной генерации паролей, которые должны быть простыми в использовании, они обычно генерируют случайные, труднозапоминающиеся пароли, что часто приводит к тому, что люди предпочитают выбирать свои собственные. Однако это изначально небезопасно, поскольку образ жизни человека, его предпочтения в развлечениях и другие ключевые индивидуальные качества обычно влияют на выбор пароля, в то время как распространение социальных сетей значительно упростило получение информации о людях.
Системы, использующие пароли для аутентификации, должны иметь какой-то способ проверки любого введенного пароля для получения доступа. Если действительные пароли просто хранятся в системном файле или базе данных, злоумышленник, получивший достаточный доступ к системе, получит все пароли пользователей, что предоставит злоумышленнику доступ ко всем учетным записям в атакованной системе и, возможно, к другим системам, где пользователи используют такие же или похожие пароли. Один из способов снизить этот риск — хранить только криптографический хэш каждого пароля вместо самого пароля. Стандартные криптографические хэши, такие как серия Secure Hash Algorithm (SHA), очень трудно обратить вспять, поэтому злоумышленник, получивший значение хэша, не сможет напрямую восстановить пароль. Однако знание значения хэша позволяет злоумышленнику быстро проверять догадки в автономном режиме. Широко доступны программы взлома паролей , которые проверят большое количество пробных паролей против украденного криптографического хеша.
Усовершенствования в области вычислительной техники продолжают увеличивать скорость, с которой можно проверять угадываемые пароли. Например, в 2010 году Научно-исследовательский институт Технологического института Джорджии разработал метод использования GPGPU для гораздо более быстрого взлома паролей. [5] Elcomsoft изобрела использование обычных графических карт для более быстрого восстановления паролей в августе 2007 года и вскоре подала соответствующую заявку на патент в США. [6] К 2011 году были доступны коммерческие продукты, которые заявляли о возможности проверки до 112 000 паролей в секунду на стандартном настольном компьютере, используя высокопроизводительный графический процессор того времени. [7] Такое устройство взломает шестибуквенный однобуквенный пароль за один день. Работу можно распределить по многим компьютерам для дополнительного ускорения, пропорционального количеству доступных компьютеров с сопоставимыми графическими процессорами. Доступны специальные хэши растяжения ключей , для вычисления которых требуется относительно много времени, что снижает скорость, с которой может происходить угадывание. Хотя считается наилучшей практикой использовать растяжение ключей, многие распространенные системы этого не делают.
Другая ситуация, когда быстрое угадывание возможно, это когда пароль используется для формирования криптографического ключа . В таких случаях злоумышленник может быстро проверить, успешно ли угаданный пароль декодирует зашифрованные данные. Например, один коммерческий продукт заявляет о тестировании 103 000 паролей WPA PSK в секунду. [8]
Если система паролей хранит только хэш пароля, злоумышленник может предварительно вычислить значения хэша для распространенных вариантов паролей и всех паролей короче определенной длины, что позволяет очень быстро восстановить пароль после получения его хэша. Очень длинные списки предварительно вычисленных хэшей паролей можно эффективно хранить с помощью радужных таблиц . Этот метод атаки можно предотвратить, сохранив случайное значение, называемое криптографической солью , вместе с хешем. Соль объединяется с паролем при вычислении хеша, поэтому злоумышленнику, предварительно вычисляющему радужную таблицу, придется хранить для каждого пароля его хэш со всеми возможными значениями соли. Это становится невозможным, если соль имеет достаточно большой диапазон, скажем, 32-битное число. Многие системы аутентификации общего пользования не используют соли, и в Интернете доступны радужные таблицы для нескольких таких систем.
Надежность пароля определяется количеством информационной энтропии , которая измеряется в шеннонах (Sh) и является концепцией из теории информации . Ее можно рассматривать как минимальное количество бит , необходимое для хранения информации в пароле заданного типа. Связанной мерой является логарифм по основанию 2 числа попыток, необходимых для точного нахождения пароля, который обычно называют «битами энтропии». [9] Пароль с 42 битами энтропии будет таким же надежным, как строка из 42 бит, выбранная случайным образом, например, путем честного подбрасывания монеты . Иными словами, пароль с 42 битами энтропии потребует 2 42 (4 398 046 511 104) попыток, чтобы исчерпать все возможности во время поиска методом перебора . Таким образом, увеличение энтропии пароля на один бит удваивает количество требуемых попыток, что делает задачу злоумышленника вдвое сложнее. В среднем злоумышленнику придется перепробовать половину возможного количества паролей, прежде чем найти правильный. [4]
Случайные пароли состоят из строки символов указанной длины, взятой из некоторого набора символов с использованием процесса случайного выбора, в котором каждый символ может быть выбран с равной вероятностью. Символы могут быть отдельными символами из набора символов (например, набора символов ASCII ), слогами, предназначенными для формирования произносимых паролей или даже словами из списка слов (таким образом формируя парольную фразу ).
Надежность случайных паролей зависит от фактической энтропии базового генератора чисел; однако, они часто не являются истинно случайными, а псевдослучайными. Многие общедоступные генераторы паролей используют генераторы случайных чисел, найденные в библиотеках программирования, которые предлагают ограниченную энтропию. Однако большинство современных операционных систем предлагают криптографически стойкие генераторы случайных чисел, которые подходят для генерации паролей. Также можно использовать обычные игральные кости для генерации случайных паролей . Программы случайных паролей часто могут гарантировать, что полученный пароль соответствует локальной политике паролей ; например, всегда создавая смесь букв, цифр и специальных символов.
Для паролей, сгенерированных процессом, который случайным образом выбирает строку символов длины L из набора из N возможных символов, количество возможных паролей можно найти, возведя количество символов в степень L , т. е. N L . Увеличение L или N усилит сгенерированный пароль. Надежность случайного пароля, измеряемая информационной энтропией, равна всего лишь логарифму по основанию 2 или log 2 количества возможных паролей, предполагая, что каждый символ в пароле создается независимо. Таким образом, информационная энтропия случайного пароля, H , определяется по формуле:
где N — количество возможных символов, а L — количество символов в пароле. H измеряется в битах . [4] [10] В последнем выражении логарифм может быть по любому основанию .
Двоичный байт обычно выражается с помощью двух шестнадцатеричных символов .
Чтобы найти длину L, необходимую для достижения желаемой стойкости H, с паролем, выбранным случайным образом из набора из N символов, вычисляется:
где обозначает математическую функцию потолка , т.е. округление до ближайшего большего целого числа .
В следующей таблице эта формула используется для отображения требуемой длины действительно случайно сгенерированных паролей для достижения желаемой энтропии пароля для распространенных наборов символов:
Люди, как известно, плохо справляются с достижением достаточной энтропии для создания удовлетворительных паролей. Согласно одному исследованию, в котором участвовало полмиллиона пользователей, средняя энтропия пароля оценивалась в 40,54 бит. [11]
Так, в одном анализе более 3 миллионов восьмисимвольных паролей буква «e» использовалась более 1,5 миллионов раз, тогда как буква «f» использовалась только 250 000 раз. При равномерном распределении каждый символ использовался бы около 900 000 раз. Наиболее часто используемое число — «1», тогда как наиболее часто используемые буквы — a, e, o и r. [12]
Пользователи редко используют в полной мере более крупные наборы символов при формировании паролей. Например, результаты взлома, полученные в результате фишинговой схемы MySpace в 2006 году, выявили 34 000 паролей, из которых только 8,3% использовали смешанный регистр, цифры и символы. [13]
Полная надежность, связанная с использованием всего набора символов ASCII (цифры, буквы смешанного регистра и специальные символы), достигается только в том случае, если каждый возможный пароль одинаково вероятен. Это, по-видимому, предполагает, что все пароли должны содержать символы из каждого из нескольких классов символов, возможно, заглавные и строчные буквы, цифры и не буквенно-цифровые символы. Такое требование является шаблоном в выборе пароля и, как можно ожидать, уменьшит «фактор работы» злоумышленника (в терминах Клода Шеннона). Это снижение «надежности» пароля. Лучшим требованием было бы требование, чтобы пароль не содержал ни одного слова из онлайн-словаря, списка имен или любого шаблона номерного знака из любого штата (в США) или страны (как в ЕС). Если требуются шаблонные варианты, люди, скорее всего, будут использовать их предсказуемыми способами, например, делая заглавную букву, добавляя одну или две цифры и специальный символ. Эта предсказуемость означает, что увеличение надежности пароля незначительно по сравнению со случайными паролями.
Проекты по повышению осведомленности о безопасности паролей
Google разработал Interland, чтобы научить детей безопасности интернет-аудитории в интернете. В главе под названием Tower Of Tresure рекомендуется использовать необычные имена в паре с персонажами, такими как (₺&@#%) в игре. [14]
В специальной публикации NIST 800-63 от июня 2004 г. (вторая редакция) была предложена схема для аппроксимации энтропии паролей, созданных человеком: [4]
Используя эту схему, восьмисимвольный пароль, выбранный человеком, без заглавных символов и неалфавитных символов ИЛИ с любым из двух наборов символов, оценивается в восемнадцать бит энтропии. В публикации NIST признается, что на момент разработки было мало информации о реальном выборе паролей. Более поздние исследования энтропии паролей, выбранных человеком, с использованием недавно доступных реальных данных продемонстрировали, что схема NIST не обеспечивает допустимой метрики для оценки энтропии паролей, выбранных человеком. [15] В пересмотренной версии SP 800-63 от июня 2017 года (третья редакция) этот подход отменен. [16]
Поскольку национальные реализации клавиатур различаются, не все 94 печатных символа ASCII могут использоваться везде. Это может представлять проблему для международного путешественника, который хочет войти в удаленную систему с помощью клавиатуры на локальном компьютере планшетные компьютеры и смартфоны , требуют сложных последовательностей смещений или смены приложений клавиатуры для ввода специальных символов.
. Многие портативные устройства, такие какПрограммы аутентификации могут различаться в отношении списка допустимых символов пароля. Некоторые не распознают различия в регистре (например, заглавная «E» считается эквивалентной строчной «e»), а другие запрещают некоторые другие символы. За последние несколько десятилетий системы разрешили больше символов в паролях, но ограничения все еще существуют. Системы также различаются в отношении максимально допустимой длины паролей.
С практической точки зрения пароли должны быть как разумными, так и функциональными для конечного пользователя, а также достаточно надежными для предполагаемой цели. Пароли, которые слишком сложно запомнить, могут быть забыты, поэтому их с большей вероятностью запишут на бумаге, что некоторые считают риском безопасности. [17] Напротив, другие утверждают, что принуждение пользователей запоминать пароли без посторонней помощи может подойти только для слабых паролей и, таким образом, представляет большую угрозу безопасности. По словам Брюса Шнайера , большинство людей хорошо защищают свои кошельки или портмоне, которые являются «отличным местом» для хранения письменного пароля. [18]
Минимальное количество бит энтропии, необходимое для пароля, зависит от модели угрозы для данного приложения. Если растяжение ключа не используется, необходимы пароли с большей энтропией. RFC 4086, «Требования случайности для безопасности», опубликованный в июне 2005 года, представляет некоторые примеры моделей угроз и способы расчета требуемой энтропии для каждой из них. [19] Их ответы варьируются от 29 бит энтропии, необходимых, если ожидаются только онлайн-атаки, до 96 бит энтропии, необходимых для важных криптографических ключей, используемых в таких приложениях, как шифрование, где пароль или ключ должны быть безопасными в течение длительного периода, а растяжение неприменимо. Исследование Технологического исследовательского института Джорджии 2010 года , основанное на нерастянутых ключах, рекомендовало 12-символьный случайный пароль, но в качестве минимального требования к длине. [5] [20] Стоит иметь в виду, что поскольку вычислительная мощность постоянно растет, для предотвращения офлайн-атак необходимое количество бит энтропии также должно со временем увеличиваться.
Верхний предел связан со строгими требованиями к выбору ключей, используемых при шифровании. В 1999 году проект Electronic Frontier Foundation взломал 56-битное шифрование DES менее чем за день, используя специально разработанное оборудование. [21] В 2002 году distributed.net взломал 64-битный ключ за 4 года, 9 месяцев и 23 дня. [22] По оценкам на 12 октября 2011 года, Distributed.net оценивает, что взлом 72-битного ключа с использованием текущего оборудования займет около 45 579 дней или 124,8 года. [23] Из-за известных в настоящее время ограничений фундаментальной физики нет никаких ожиданий, что какой-либо цифровой компьютер (или его комбинация) сможет взломать 256-битное шифрование с помощью атаки методом перебора. [24] Смогут ли квантовые компьютеры сделать это на практике, пока неизвестно, хотя теоретический анализ предполагает такую возможность. [25]
Руководства по выбору хороших паролей обычно разрабатываются для того, чтобы сделать пароли более трудными для обнаружения с помощью интеллектуального угадывания. Общие руководящие принципы, пропагандируемые сторонниками безопасности программных систем, включают: [26] [27] [28] [29] [30]
Принудительное включение строчных букв, заглавных букв, цифр и символов в пароли было распространенной политикой, но было обнаружено, что это снижает безопасность, поскольку делает их более легкими для взлома. Исследования показали, насколько предсказуемо общее использование таких символов, и правительственные департаменты кибербезопасности США [34] и Великобритании [35] не рекомендуют принудительно включать их в политику паролей. Сложные символы также значительно затрудняют запоминание паролей, что увеличивает необходимость их записи, сброса паролей и повторного использования паролей — все это снижает, а не повышает безопасность паролей. Первоначальный автор правил сложности паролей Билл Берр извинился и признал, что они снижают безопасность, как показали исследования; это широко освещалось в СМИ в 2017 году. [36] Исследователи и консультанты по безопасности в Интернете [37] также поддерживают изменение [38] рекомендаций по передовой практике в отношении паролей.
Некоторые руководства советуют не записывать пароли, в то время как другие, отмечая большое количество систем, защищенных паролем, к которым пользователи должны иметь доступ, поощряют записывать пароли, при условии, что списки записанных паролей хранятся в безопасном месте, а не прикреплены к монитору или в незапертом ящике стола. [39] NCSC рекомендует использовать менеджер паролей . [40]
Возможный набор символов для пароля может быть ограничен различными веб-сайтами или диапазоном клавиатур, на которых необходимо вводить пароль. [41]
Как и в случае с любой мерой безопасности, пароли различаются по силе; некоторые слабее других. Например, разница в силе между словом из словаря и словом с обфускацией (например, буквы в пароле заменяются, скажем, цифрами — распространенный подход) может стоить устройству для взлома паролей еще несколько секунд; это добавляет немного силы. Приведенные ниже примеры иллюстрируют различные способы создания слабых паролей, все из которых основаны на простых шаблонах, которые приводят к чрезвычайно низкой энтропии, что позволяет автоматически проверять их на высоких скоростях.: [12]
Существует много других способов, которыми пароль может быть слабым, [44] соответствующих силе различных схем атак; основной принцип заключается в том, что пароль должен иметь высокую энтропию (обычно принимаемую за эквивалент случайности) и не должен легко выводиться с помощью какой-либо «хитрой» схемы, а также пароли не должны смешиваться с информацией, идентифицирующей пользователя. Онлайн-сервисы часто предоставляют функцию восстановления пароля, которую хакер может вычислить и, таким образом, обойти пароль.
В ландшафте 2012 года, как описал Уильям Чесвик в статье для журнала ACM, безопасность паролей в основном подчеркивала буквенно-цифровой пароль из восьми или более символов. Такой пароль, как было выведено, мог выдержать десять миллионов попыток в секунду в течение 252 дней. Однако с помощью современных графических процессоров того времени этот период был сокращен до всего лишь около 9 часов, учитывая скорость взлома в 7 миллиардов попыток в секунду. Пароль из 13 символов, как предполагалось, выдерживал попытки, вычисленные на графическом процессоре, в течение более 900 000 лет. [45] [46]
В контексте аппаратных технологий 2023 года стандарт 2012 года с восьмизначным буквенно-цифровым паролем стал уязвимым, поддавшись атаке за несколько часов. Время, необходимое для взлома 13-значного пароля, сократилось до нескольких лет. Таким образом, нынешний акцент сместился. Надежность пароля теперь оценивается не только по его сложности, но и по его длине, и рекомендации склоняются к паролям, содержащим не менее 13-16 символов. В эту эпоху также наблюдался рост многофакторной аутентификации (MFA) как важнейшей меры укрепления. Появление и широкое распространение менеджеров паролей еще больше помогло пользователям в разработке и поддержании массива надежных уникальных паролей. [47]
Политика паролей — это руководство по выбору удовлетворительных паролей. Она предназначена для:
Предыдущие политики паролей использовали для указания символов, которые должны содержать пароли, таких как цифры, символы или верхний/нижний регистр. Хотя это все еще используется, это было разоблачено как менее безопасное университетскими исследованиями, [48] первоначальным инициатором [49] этой политики и департаментами кибербезопасности (и другими соответствующими государственными органами безопасности [50] ) США [51] и Великобритании. [52] Правила сложности паролей с обязательными символами ранее использовались основными платформами, такими как Google [53] и Facebook, [54], но они отменили требование после открытия, что они фактически снижают безопасность. Это связано с тем, что человеческий фактор представляет собой гораздо больший риск, чем взлом, а обязательная сложность приводит большинство пользователей к весьма предсказуемым шаблонам (цифра в конце, замена 3 на E и т. д.), что помогает взламывать пароли. Таким образом, простота и длина пароля (парольные фразы) являются новой лучшей практикой, а сложность не приветствуется. Принудительные правила сложности также увеличивают расходы на поддержку, а также пользовательские помехи и препятствуют регистрации пользователей.
Истечение срока действия пароля было в некоторых старых политиках паролей, но было развенчано [36] как лучшая практика и не поддерживается правительствами США и Великобритании, а также Microsoft, которая удалила [55] функцию истечения срока действия пароля. Истечение срока действия пароля ранее пыталось служить двум целям: [56]
Однако срок действия пароля имеет свои недостатки: [57] [58]
Самыми сложными для взлома паролями для заданной длины и набора символов являются случайные строки символов; если они достаточно длинные, они противостоят атакам методом перебора (из-за большого количества символов) и атакам угадывания (из-за высокой энтропии). Однако такие пароли, как правило, труднее всего запомнить. Введение требования для таких паролей в политику паролей может побудить пользователей записывать их, хранить их на мобильных устройствах или делиться ими с другими в качестве защиты от сбоев памяти. В то время как некоторые люди считают, что каждое из этих пользовательских средств увеличивает риски безопасности, другие предполагают абсурдность ожидания, что пользователи будут помнить отдельные сложные пароли для каждой из десятков учетных записей, к которым они получают доступ. Например, в 2005 году эксперт по безопасности Брюс Шнайер рекомендовал записывать свой пароль:
Проще говоря, люди больше не могут запоминать пароли, достаточно хорошие, чтобы надежно защищаться от атак по словарю, и гораздо более защищены, если выбирают слишком сложный пароль, чтобы его запомнить, а затем записывают его. Мы все хорошо умеем защищать небольшие листы бумаги. Я рекомендую людям записывать свои пароли на небольшом листе бумаги и хранить его вместе с другими ценными маленькими листами бумаги: в кошельке. [39]
Следующие меры могут повысить уровень принятия требований к надежным паролям при условии их грамотного применения:
Политики паролей иногда предлагают методы запоминания , помогающие запоминать пароли:
Разумным компромиссом для использования большого количества паролей является запись их в программу-менеджер паролей, которая включает в себя автономные приложения, расширения веб-браузера или встроенный в операционную систему менеджер. Менеджер паролей позволяет пользователю использовать сотни различных паролей и запоминать только один пароль, который открывает зашифрованную базу данных паролей. [65] Излишне говорить, что этот единственный пароль должен быть надежным и хорошо защищенным (нигде не записанным). Большинство менеджеров паролей могут автоматически создавать надежные пароли, используя криптографически безопасный генератор случайных паролей , а также вычисляя энтропию сгенерированного пароля. Хороший менеджер паролей обеспечит устойчивость к таким атакам, как регистрация клавиш , регистрация буфера обмена и различные другие методы шпионажа памяти.
6 типов атак на пароли и как их остановить | OneLogin. (nd). Получено 24 апреля 2024 г. с сайта https://www.google.com/
Франки, Э., Поджи, А. и Томаюоло, М. (2015). Информационные и пароли атак в социальных сетях: аргумент в пользу криптографии. Журнал исследований информационных технологий, 8(1), 25–42. https://doi.org/10.4018/JITR.2015010103