Аутентификация и взлом пароля

Аутентификация и взлом пароля
14 мин
Автор PINTA IT

В этой статье мы рассмотрим различные механизмы аутентификации. Механизм аутентификации (или метод) это способ для вас доказать, что вы имеете доступ к чему-то. Пароли были методом аутентификации по умолчанию до тех пор, пока большинство из нас должны были доказать компьютеру, что нам разрешен доступ к нему. Однако Пароли не являются единственным механизмом аутентификации.

Метод аутентификации

То, что вы знаете: примеры этого-ваш старый добрый пароль, PIN-код банковской карты или стоп-слово, когда аварийная компания звонит вам домой; все это примеры использования того, что вы знаете, чтобы аутентифицировать себя.

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

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

Другие атрибуты, используемые для аутентификации: некоторые другие атрибуты, которые вы иногда видите, используются для аутентификации::

  • Где-то ты есть . Например, на физическом адресе, способном принимать улиточную почту.
  • Кое-что ты можешь сделать . Например, точно воспроизвести подпись.
  • То, что вы выставляете . Например, неврологический признак, который может быть отсканирован с помощью МРТ.
  • Кто-то, кого ты знаешь . Например, это может быть подтверждено графом социальной сети или цепочкой доверия.

Наш фокус в этой статье-пароли. Большинство из нас видят в них неудобство  то, что вы должны терпеть, чтобы иметь возможность использовать сервис, к которому вам нужен доступ. В этой статье мы объясним, как компьютерные системы эволюционировали в том, как они обрабатывают ваш пароль, как современные онлайн-приложения делают аутентификацию и почему важно выбрать надежный пароль. После того, как вы закончите читать это, вы должны иметь рабочее знание алгоритмов хэширования, как работает взлом пароля и что на самом деле означает “надежный пароль”.

Простые Текстовые Пароли

В первые дни существования компьютеров и мэйнфреймов пароли хранились в базе данных в виде обычного текста. Когда вы хотите войти в систему, приложение gatekeeper попросит вас ввести пароль. Он взял бы все, что вы ввели, и проверил, было ли это равно тому, что он хранил в базе данных, и если это правда, вам был предоставлен доступ.

По мере развития и роста Интернета злоумышленники начали получать несанкционированный доступ к системам. Как только они вошли, они сразу же загрузят базу данных паролей в виде простого текста и получат мгновенный доступ ко всем паролям пользователей. Разработчики и системные администраторы должны были придумать решение этой проблемы, и решение, которое они придумали, было "хэширование паролей".

Введение в хэширование паролей

Алгоритм хэширования

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

Что удивительно в машине алгоритма хэширования, так это то, что если вы подаете что-то идентичное, вы получаете тот же 32-значный номер. Если вы питаетесь в войне и мире, вы получаете номер. Если вы копируете книгу дословно и вводите точно такой же текст, вы получаете тот же номер. Если вы измените одного персонажа в романе, вы получите совершенно другой номер.

Алгоритмы хэширования отличаются тем, как они работают, и наиболее заметным отличием является длина числа, которое каждый выплевывает.

  • MD5, который чрезвычайно популярен, выплевывает 128 двоичных цифр.
  • SHA2 выплевывает 256 бит (или двоичные цифры).

Когда системные администраторы и разработчики впервые столкнулись с проблемами безопасности баз данных паролей, хранящихся в виде обычного текста, они обратились за помощью к алгоритмам хэширования. То, что они придумали, вместо того, чтобы хранить ваш пароль в базе данных, они будут просто хранить хэш вашего пароля. То есть число, которое алгоритм хэширования генерирует, когда он работает с вашим паролем.

Когда пользователь изменяет свой пароль или когда создается учетная запись пользователя, новый пароль вводится в первый раз, приложение компьютерной безопасности берет этот пароль и запускает его через алгоритм хэширования и сохраняет полученное число в базе данных. При следующей попытке выполнить вход и ввести пароль система безопасности запускает введенный пароль с помощью того же алгоритма хэширования и проверяет, соответствует ли полученный хэш хэшу в базе данных (хэш-это число, которое выдает алгоритм хэширования). Если они совпадут, то вам разрешат войти.

Пароли больше не хранятся в виде открытого текста в базе данных. Если хакер украдет базу данных учетных записей пользователей, у них автоматически не будет всех паролей, все, что у них есть, - это список хэшей.

Хэши не идеальны

Хранение хэшей паролей вместо самих паролей стало крупным прорывом в области информационной безопасности. На этом история, к сожалению, не заканчивается. Теперь, когда хэши обычно используются для аутентификации пользователей вместо простых текстовых паролей, хакер не сразу получает список всех паролей, когда они крадут базу данных учетных записей пользователей. Однако существует способ для хакера украсть хэши и превратить их обратно в пароли.

Этот метод относительно прост. Когда хакер крадет базу данных хэшированных паролей, для обратного проектирования хэшей (преобразования их обратно в пароли) хакер генерирует хэши из словаря слов, которые, по его мнению, могут быть паролями, которые были использованы. Если какой-либо из этих хэшей соответствует тому, что у него есть в базе данных, он сумел реинжинирировать хэш и теперь знает, что такое исходный пароль.

Например, предположим, что вы украли базу данных паролей и у вас есть хэш пароля, который использует ‘mark’. Вы хотите знать фактический пароль для учетной записи’ mark', поэтому вы берете слово "banana" и запускаете его через тот же алгоритм хэширования, который использует база данных паролей. Вы в конечном итоге с номером, и если номер соответствует хэшу в базе данных паролей для пользователя "Марк", теперь вы знаете его пароль. Если это не соответствует, то я пробую "груша" и "яблоко" и "ApplePear435" и постепенно все больше слов и более сложных словосочетаний.

Итак, чтобы взломать пароль, вам нужно взять очень большой словарь паролей и хэшировать каждый из них, а затем сравнить эти хэши с тем, что находится в базе данных паролей, которую вы украли, и когда вы получаете соответствие, вы знаете оригинальный пароль.

Проблема заключается в том, что создание хэшей слов требует времени. Каждое слово может занять несколько миллисекунд для хэширования. Так что вам нужен очень быстрый компьютер, чтобы сделать это. Или же вы можете взять очень большой словарь известных паролей, генерировать хэши из всех слов и хранить слова и их хэши. Затем каждый раз, когда вы крадете базу данных паролей, вы можете просто повторно использовать этот список слов и их хэши. Вам не нужно воссоздавать хэши каждый раз. Все, что вам нужно сделать, это сопоставить свой список хэшей с хэшами в базе данных паролей, и где вы получите соответствие, которое вы взломали пароль.

То, что мы только что описали, называется “Радужный стол” . Радужные таблицы-это метод, обычно используемый хакерами для взлома баз данных паролей, которые используют обычное хэширование без какой-либо дополнительной безопасности. Атаки Rainbow table на хэшированные базы паролей очень эффективны, потому что они быстры. Чтобы помочь защититься от такого рода атак, разработчики и системные администраторы придумали метод, который называется "соление" паролей.

Понимание Пароля Хэш-Соль

Как работают Соли

Атака на радужную таблицу основана на том, что хакер может взять словарь и предварительно вычисленные хэши слов в этом словаре и сравнить эти хэши с хэшами в базе данных паролей. Чтобы победить радужные таблицы, сообщество информационной безопасности изобрело “соленые хэши". Концепция относительно проста:

Когда вы создаете новый пароль, вместо того, чтобы просто запускать пароль самостоятельно через алгоритм хэширования, вы делаете следующее: генерируете случайный маленький кусочек текста. Поместите этот текст в начале пароля. Затем запустите комбинацию из маленького кусочка текста и пароля через алгоритм хэширования. Затем вы сохраняете маленький кусочек текста (как обычный текст) и полученный хэш. Этот маленький кусочек текста называется "солью".

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

Важно отметить, что соль или "маленький кусочек текста" хранится как обычный текст с хэшем. Также важно отметить, что соль является случайным для каждого пароля. Другими словами, каждый пароль имеет свой собственный маленький кусочек текста.

Это относительно простая концепция, но она значительно усложняет взлом хэшированных паролей.

Почему соли затрудняют взлом?

Напомним, что радужные таблицы - это словарь слов и хэшей этих слов. В приведенном выше примере мы использовали соли (маленький кусочек текста) в сочетании с нашим паролем для создания хэшей. Если хакер хочет взломать пароли, он не может использовать свою радужную таблицу, потому что радужная таблица-это просто хэш отдельных слов. Ему нужно объединить эти слова с сохраненной солью, чтобы получить фактический хэш, который хранится в базе данных.

Это делает взлом паролей намного сложнее, потому что это означает, что радужная таблица хакера бесполезна, и это заставляет его пересчитывать хэши для каждого слова в своем словаре.

Вот пример пароля, создаваемого для кого-то под названием “good-guy”:

  1. Системный администратор создает новую учетную запись в системе для пользователя под названием good-guy с паролем "apple".
  2. Система автоматически генерирует короткий фрагмент текста "yrtZd".
  3. Система берет короткий текст и объединяет его с 'apple', чтобы создать текст “yrtZdapple”.
  4. Затем он запускает “yrtZdapple " через алгоритм хэширования и получает 128-битное число.
  5. Система хранит этот номер в качестве хэшированного пароля для учетной записи хорошего парня.

Вот как подписывается "good-guy":

  1. "good-guy" приходит на работу и пытается зарегистрироваться. Он набирает ‘Эппл " в качестве пароля.
  2. Система извлекает запись для учетной записи "good-guy". Эта запись является хэшем и текстом “yrtZd”, который является солью.
  3. Система сочетает слово "apple“, которое хороший парень просто набрал с солью, чтобы сделать текст” yrtZdapple" и запускает алгоритм хэширования на этом.
  4. Система проверяет, соответствует ли хэш, который она извлекла, хэшу, который она только что сгенерировала, он соответствует и позволяет "good-guy" получить доступ к системе.

Вот шаги, которые предпринимает хакер, чтобы взломать пароль хорошего парня salted:

  1. Хакер прибывает и умудряется взломать систему, и он крадет базу данных хэшей паролей и солей.
  2. Хакер пытается использовать предварительно вычисленные хэши слов в своем английском словаре. Один из хэшей имеет слово "apple", но это не работает, потому что хакер должен объединить соль, которая является "yrtZd" со словом apple, прежде чем он хэширует его.
  3. Хакер понимает, что его предварительно вычисленная радужная таблица бесполезна. Ему нужно объединить соль для пароля хорошего парня с каждым словом в его словаре, а затем посмотреть, какой хэш соответствует. Это означает, что ему нужно пересчитать хэши для всего своего словаря, что займет значительно больше времени.

Как вы можете видеть из приведенного выше примера, можно взломать пароли, которые используют соли. Это просто занимает гораздо больше времени и требует больше времени на обработку.

Хэшированные пароли, использующие соли, - это то, что используют большинство современных систем аутентификации. Это не делает пароль uncrackable, но это замедляет процесс взлома, потому что он заставляет хакера хэшировать каждый пароль, который они хотят угадать.

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

Графические процессоры и домашний суперкомпьютер

Поскольку современный пароль взлома использует соли, если вы хотите использовать словарь слов, чтобы попытаться взломать базу данных паролей, это означает, что вы будете хэшировать каждый из этих слов с солью каждый раз, когда вы хотите сделать предположение. Так что это становится полезным, чтобы иметь возможность делать хэширование быстро.

Оказывается, что современное графическое оборудование (GPU или графические процессоры) очень хорошо справляется с хэшированием и может делать это параллельно. Используя готовую высококачественную игровую видеокарту, вы можете хэшировать пароли в тысячи раз быстрее, чем даже самый быстрый процессор на рынке. Это привело к тому, что большинство компетентных хакеров покупают графические процессоры для взлома паролей или используют онлайн-кластер ускоренного взлома паролей GPU.

Всего за несколько секунд современный графический процессор может позволить хакеру сделать несколько миллионов попыток угадать пароль.

Многие алгоритмы, которые используются для хэширования, такие как MD5, были разработаны десятилетия назад, когда процессоры были очень медленными, а графические процессоры еще не существовали. Чтобы попытаться компенсировать увеличение вычислительной мощности, которую мы испытали, разработчики систем аутентификации придумали что-то под названием “растяжение”. То, что это делает, - это взять алгоритм хэширования, такой как MD5, и вместо того, чтобы запустить его один раз на пароле и соли, он запускает его тысячи раз. Другими словами, система будет генерировать хэш, затем генерировать хэш хэша, затем генерировать хэш хэша хэша и так далее для тысяч циклов.

В результате, когда взломщик паролей хочет попытаться угадать пароль, для каждой догадки им нужно не просто создать один хэш, а тысячи хэшей. Это имеет эффект замедления вещей, но этого все еще недостаточно.

WordPress использует соленые хэши для хранения паролей с помощью алгоритма хэширования MD5. Он растягивает MD5, делая более 8000 раундов MD5, чтобы попытаться сделать угадывание пароля более вычислительно интенсивным. Но современный GPU может угадать пароли WordPress со скоростью 3,2 миллиона догадок в секунду. Это довольно удивительно с точки зрения производительности. Когда MD5 был разработан и когда соли были впервые изобретены, хэширование много слов, чтобы попытаться угадать пароль занял много времени. Вы можете получить несколько догадок каждую секунду. Теперь мы можем достичь 3,2 миллиона догадок в секунду.

Теперь у вас есть хорошее понимание того, как пароли используются на таких сервисах, как Gmail, Yahoo, на веб-сайтах WordPress и большинстве других сервисов, которые используют пароль для аутентификации. У вас также есть разумное понимание того, как взломать пароли.

Почему важны надежные пароли

Если одна из служб, которую вы используете, взломана и хэшированные пароли украдены, даже подросток в своей спальне с игровым компьютером за 2000 долларов США может попытаться превратить ваш хэшированный пароль в простой текстовый пароль со скоростью 3,2 миллиона догадок в секунду и, возможно, гораздо быстрее. Если учесть, что eHarmony, LinkedIn, Google и многие другие известные бренды были успешно взломаны за последние несколько лет, вполне вероятно, что сервис, который вы используете, будет иметь свои хэшированные пароли, украденные в ближайшее время.

Это означает, что важно использовать пароли, которые очень трудно взломать. Любой пароль, содержащий менее 12 символов, является слабым.

Почему важны надежные пароли

Если одна из служб, которую вы используете, взломана и хэшированные пароли украдены, даже подросток в своей спальне с игровым компьютером за 2000 долларов США может попытаться превратить ваш хэшированный пароль в простой текстовый пароль со скоростью 3,2 миллиона догадок в секунду и, возможно, гораздо быстрее. Если учесть, что eHarmony, LinkedIn, Google и многие другие известные бренды были успешно взломаны за последние несколько лет, вполне вероятно, что сервис, который вы используете, будет иметь свои хэшированные пароли, украденные в ближайшее время.

Это означает, что важно использовать пароли, которые очень трудно взломать. Любой пароль, содержащий менее 12 символов, является слабым.

Как взломать данный пароль

Вы должны предполагать, что служба, которую вы используете, управляется достаточно компетентными системными администраторами и что они, как минимум, хранят хэшированные пароли, а не простой текст. В целях безопасности предположим, что они используют слабый алгоритм хэширования. В этом случае мы будем считать 1 раунд соленого MD5. Обратите внимание, что мы даем им преимущество сомнения в том, что они на самом деле солят свои пароли.

Если ваш пароль состоит из 9 символов строчных цифр и букв, это дает вам 101 559 956 668,416 возможных паролей. (36 в степени 9).

В Wordfence у нас есть кластер 8 GPU, который может взломать соленые MD5 со скоростью 90,6 миллиардов соленых MD5 догадок в секунду. Это займет у нас 1128 секунд или 18 минут, чтобы взломать ваш пароль, если мы угадываем каждую комбинацию букв и цифр длиной 9 символов. Мы можем сделать это быстрее, если исключим определенные паттерны.

Теперь вы начинаете понимать, почему более длинные пароли лучше. Вы также начинаете понимать, почему следует использовать не только буквы и цифры, но и специальные символы. Любой пароль, который использует только буквы и цифры, слаб. Вот почему ... :

Если у вас есть пароль, состоящий всего из 1 и 0, и это 4 цифры длиной, вы будете иметь:

2 to the power of 4 possible passwords or 16 possible passwords.

Если у вас есть пароль, состоящий из цифр от 0 до 9 (то есть 10 возможных символов), и это 4 цифры длиной у вас есть:

10 to the power of 4, which is 10,000 possible combinations.

Теперь, если вы вместо этого создадите свой пароль из всех строчных букв, прописных букв, цифр и набора из 10 символов, у вас есть 26 + 26 + 10 + 10 = 72 возможных символа. Так что если у вас есть пароль, который составляет всего 4 символа длиной теперь у вас есть:

72 to the power of 4 possible passwords, which is 26,873,856 possible passwords.

Как вы можете видеть, каждый раз, когда вы увеличиваете количество символов, из которых состоит ваш пароль, вы получаете огромное увеличение количества возможных паролей, даже если вы сохраняете длину всего в 4 символах в нашем примере.

Вы получаете 26 миллионов возможных паролей всего из 4 символов, если вы используете более широкий диапазон символов в вашем пароле. Это действительно иллюстрирует, насколько важно использовать верхний и нижний регистр, цифры и символы в вашем пароле.

Если вы теперь расширяете длину вашего пароля до 12 символов, у вас есть 72 в степени 12 или 19,408,409961,765,342,806,016. Даже с нашим кластером 8 GPU нам потребуется 2495937 дней или 6838 лет, чтобы угадать ваш пароль, если мы попробуем все возможные комбинации.

Мы рассматриваем 12-символьный пароль, который использует

случайные (см. следующий абзац)

прописные буквы, строчные буквы, цифры и символы, чтобы быть надежным паролем. И чтобы быть ясным, это сильный пароль, даже если служба, которую вы используете, хранит пароли с использованием 1 соленого раунда MD5, который относительно слаб. Для сравнения, WordPress использует более 8000 раундов соленого MD5, что, конечно, делает его в 8000 раз медленнее для хакера, чтобы взломать пароли WordPress.

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

По мере того, как компьютеры становятся быстрее в хешировании, что будут делать разработчики?

Если тенденция за последние несколько лет будет что-то делать, обратное проектирование хэшированных паролей обратно в их обычный текст будет продолжать ускоряться с возрастающей скоростью. Кластер GPU, который мы построили для аудита паролей для клиентов Wordfence, работает быстрее при хэшировании, чем самый быстрый компьютер на Земле в 2003 году. Это иллюстрация того, как быстро вычислительная мощность увеличивается.

За последние 5 лет произошел взрыв в специально построенном оборудовании, которое делает то, для чего раньше использовался бы процессор. Разница в том, что это оборудование работает параллельно и поэтому намного быстрее. Потребительские игровые графические процессоры, которые мы обсуждали выше, содержат более 2000 ядер, которые могут выполнять вычисления параллельно. Еще одна область, которая была топливом для инноваций в области параллельных вычислений, - это оборудование для майнинга биткойнов. Вы можете купить ASICs и FPGA, которые являются обоими способами создания приложения на чипе-и оба могут выполнять такие задачи, как хеширование массово параллельным способом. Биткойн-майнеры используют ASIC и FPGA для майнинга и снизили цену на это оборудование. Он также может быть использован для взлома паролей параллельно и на очень высокой скорости.

Если мы предполагаем, что аппаратное обеспечение будет продолжать ускоряться с возрастающей скоростью, нам нужно сосредоточиться на том, как мы храним пароли. Использование хэширования для хранения паролей широко распространено и является принятым решением на данный момент.

Можем ли мы использовать лучшие алгоритмы хэширования?

В информатике мы обычно стремимся сделать алгоритмы быстрее. Парадоксально, но лучший алгоритм хэширования паролей-это тот, который медленнее или вычислительно дороже.

Преимущество более дорогого и медленного алгоритма хэширования заключается в том, что если вы можете замедлить время, необходимое для хэширования пароля, вы замедляете скорость, с которой хакеры могут угадывать пароли. Алгоритмы, такие как bcrypt, позволяют указать “сложность”, которая влияет на скорость, с которой происходит хэширование, и, следовательно, скорость, с которой происходит угадывание.

Другим полезным алгоритмом является scrypt, который разработан, чтобы затруднить параллельные вычисления. Это означает, что хакер больше не может использовать 2000 ядер в своем GPU, чтобы попытаться взломать ваш пароль в то же время. Вместо этого им нужно сделать одну догадку за один раз.

Эти варианты не обходятся без проблем. Разработчики приложений, такие как Facebook и Google, хотят предоставить вам полезные услуги. Они становятся популярными и имеют 10 тысяч клиентов, которые хотят войти в систему. Если они используют алгоритм хэширования, который занимает, скажем, 5 секунд на хэш-пароль на сервере, это означает, что им нужно 5 серверов только для того, чтобы разрешить 1 пользователю в секунду. Им потребуется 50 000 серверов, чтобы разрешить вход 10 000 пользователей в секунду. Для Facebook это может быть неприемлемо, и они могут выбрать более быстрый, но более слабый алгоритм хэширования.

Есть несколько интересных вариантов, позволяющих замедлить хэширование без перегрузки серверов, которые обсуждаются в сообществе информационной безопасности. Один из них довольно прост и называется “ сервер-рельеф ”. Способ облегчения работы сервера заключается в том, что он использует более медленный алгоритм хэширования, такой как bcrypt или scrypt, и фактически выполняет большую часть хэширования в вашем веб-браузере, когда вы входите. Это использует процессор вашей рабочей станции вместо вычислительной мощности серверов, принадлежащих службе, в которую вы входите.

Хэш, который занял больше времени для вычисления, затем отправляется вашим веб-браузером на сервер, на который вы входите, что превращает его в соленый хэш SHA256 и сохраняет его. Эффект заключается в том, что вы использовали интенсивный алгоритм хэширования ЦП, который может быть трудно распараллелить и медленнее. Ваш веб-браузер выполнил большую часть вычислений, которые сохранили ценные циклы процессора на сервере, на который вы входите. Это позволит серверу аутентификации обрабатывать большое количество клиентов, входящих в систему, и использовать вычислительно дорогой алгоритм хэширования без перегрузки.

Вывод

На этом наше знакомство с хэшированием и паролями заканчивается. Мы рассмотрели историю хранения паролей, почему используется хэширование паролей, что такое радужные таблицы и как соленые пароли побеждают атаку радужных таблиц. Мы также обсудили, как происходит взлом паролей и как аппаратное обеспечение, такое как GPU ASICs и FPGA, может ускорить процесс взлома. Мы также дали вам краткое введение в алгоритмы, которые делают его более трудным для взлома паролей и архитектуры производительности, которая позволяет использовать сильный алгоритм хэширования без перегрузки серверов.