Как на веб-сайтах хранятся ваши пароли в безопасности?
Сейчас мы редко проходим месяц, чтобы не услышать о какой-либо утечке данных. Это может быть популярный сервис вроде Gmail или что-то, о чем многие из нас забыли, например MySpace.
Одна из худших вещей, которую может узнать хакер, – это ваш пароль. Это особенно верно, если вы идете против стандартных рекомендаций и используете одни и те же учетные данные для входа на разных платформах. Но следить за своим паролем – не только ваша ответственность.
Итак, как веб-сайты хранят ваши пароли? Как они сохраняют ваши учетные данные в безопасности? И какой самый безопасный метод они могут использовать для защиты вашего пароля?
Худший сценарий: простой текст
Подумайте об этом: был взломан крупный веб-сайт. Киберпреступники взломали все необходимые меры безопасности, возможно, воспользовавшись недостатком в своей архитектуре. Вы клиент. Этот сайт сохранил ваши данные. К счастью, вы были уверены, что ваш пароль в безопасности.
За исключением того, что этот сайт хранит ваш пароль в виде обычного текста.
Простые текстовые пароли просто ждут, когда их украдут. Они не используют никаких алгоритмов, чтобы сделать их нечитаемыми. Хакеры могут прочитать это так же просто, как вы читаете это предложение.
Неважно, насколько сложен ваш пароль: база данных в виде обычного текста – это список всех паролей, четко прописанный, включая любые дополнительные числа и символы, которые вы используете.
И даже если хакеры не взломают сайт, действительно ли вы хотите, чтобы безликий администратор веб-сайта мог видеть ваши конфиденциальные данные для входа?
Вы можете подумать, что это очень редкая проблема, но примерно 30% веб-сайтов электронной коммерции используют этот метод для «защиты» ваших данных – на самом деле, существует целый сайт, посвященный выявлению этих нарушителей !
Самый простой способ узнать, использует ли сайт это, – это если сразу после регистрации вы получите от них электронное письмо с указанием ваших данных для входа. В этом случае вы можете изменить любые сайты с тем же паролем и связаться с компанией, чтобы предупредить их о плохой безопасности.
Это не обязательно означает, что они хранят их как обычный текст, но это хороший показатель.
И им в любом случае не следует отправлять подобные вещи по электронной почте. Они могут возразить, что у них есть брандмауэры и другие меры безопасности для защиты от киберпреступников, но напомните им, что ни одна система не является безупречной, и нависайте над перспективой потери клиентов перед ними. Скоро они передумают. С надеждой…
Не так хорошо, как кажется: шифрование
Относитесь к своему паролю как к зубной щетке, меняйте его регулярно и не сообщайте!
– Anti-Bullying Pro (от благотворительной организации The Diana Award) (@AntiBullyingPro) 13 августа 2016 г.
Так что же делают многие из этих веб-сайтов для защиты ваших паролей?
Многие обратятся к шифрованию. Это зашифровывает вашу информацию, делая ее нечитаемой до тех пор, пока не будут представлены два ключа – один принадлежит вам (это ваши данные для входа в систему), а другой – соответствующей компании.
Вы должны использовать шифрование и в другом месте. Face ID на iPhone – это форма шифрования. Любой пароль есть. Интернет работает с шифрованием: HTTPS, который вы видите в URL-адресах, означает, что сайт, на котором вы находитесь, использует протоколы SSL или TLS для проверки соединений и беспорядка данных.
Но, несмотря на то, что вы, возможно, слышали, шифрование не идеально.
Он должен быть безопасным, но настолько же надежным, насколько и место хранения ключей. Если веб-сайт защищает ваш ключ (то есть пароль) своим собственным, хакер может раскрыть последний, чтобы найти первый и расшифровать его. От вора потребуется сравнительно небольшое усилие, чтобы найти ваш пароль; вот почему ключевые базы данных являются массовой мишенью.
Если их ключ хранится на том же сервере, что и ваш, ваш пароль также может быть в виде обычного текста. Вот почему на вышеупомянутом сайте PlainTextOffenders также перечислены службы, использующие обратимое шифрование.
На удивление просто (но не всегда эффективно): хеширование
Теперь мы куда-то идем. Хеширование паролей звучит как жаргон, но это просто более безопасная форма шифрования.
Вместо того, чтобы хранить ваш пароль в виде простого текста, сайт запускает его через хеш-функцию, такую как MD5, алгоритм безопасного хеширования (SHA) -1 или SHA-256, которая преобразует его в совершенно другой набор цифр. Это могут быть цифры, буквы или любые другие символы.
Ваш пароль может быть IH3artMU0. Это может превратиться в 7dVq $ @ ihT, и если хакер взломает базу данных, это все, что они смогут увидеть. И работает только в одну сторону. Вы не можете его декодировать обратно.
К сожалению, это не так уж безопасно. Это лучше, чем обычный текст, но все же довольно стандартно для киберпреступников.
Ключ в том, что конкретный пароль создает определенный хеш. Для этого есть веская причина: каждый раз, когда вы входите в систему с паролем IH3artMU0, он автоматически проходит через эту хеш-функцию, и веб-сайт позволяет вам получить доступ, если этот хэш и тот, который находится в базе данных сайта, совпадают.
Это также означает, что хакеры разработали радужные таблицы. Думайте о них как о шпаргалках: это списки хэшей, которые уже используются другими в качестве паролей, которые сложная система может быстро обработать как атаку методом грубой силы .
Если вы выбрали действительно плохой пароль, он окажется на вершине радужных таблиц и может быть легко взломан. Более непонятные (особенно обширные комбинации) займут больше времени.
Как хорошо сейчас: соление и медленное хеширование
Нет ничего неприступного: хакеры взломают любые новые системы безопасности. Но более надежные методы, реализованные на самых безопасных сайтах, – это более умные хеши.
Соленые хэши основаны на практике криптографического одноразового номера, случайного набора данных, сгенерированного для каждого отдельного пароля, как правило, очень длинного и очень сложного.
Эти дополнительные цифры добавляются в начало или конец пароля (или комбинаций электронной почты и пароля) до того, как он пройдет через хеш-функцию, чтобы противостоять попыткам, сделанным с использованием радужных таблиц.
Обычно не имеет значения, хранятся ли соли на тех же серверах, что и хеши; взлом набора паролей может занять у хакеров очень много времени, а если ваш пароль уже сложен, это станет еще сложнее.
Вот почему вы всегда должны использовать надежный пароль, независимо от того, насколько вы доверяете безопасности сайта.
Веб-сайты, которые особенно серьезно относятся к своей и, соответственно, вашей безопасности, также используют медленные хеши в качестве дополнительной меры. Наиболее известные хеш-функции (MD5, SHA-1 и SHA-256) существуют уже давно и широко используются, потому что их относительно легко реализовать и применять хеши практически мгновенно.
Несмотря на то, что по-прежнему применяются соли, медленные хэши даже лучше справляются с любыми атаками, которые зависят от скорости. Ограничивая хакеров существенно меньшим количеством попыток в секунду, им требуется больше времени для взлома, тем самым делая попытки менее стоящими, учитывая также пониженную вероятность успеха.
Киберпреступники должны взвесить, стоит ли атаковать трудоемкие системы с медленным хешированием перед сравнительно «быстрыми решениями»: например, медицинские учреждения обычно имеют более низкий уровень безопасности, поэтому данные, полученные оттуда, все еще можно продать за удивительные суммы.
Кроме того, он очень адаптивен: если система испытывает особую нагрузку, она может замедлиться еще больше. Кода Хейл , бывший главный разработчик программного обеспечения Microsoft, сравнивает MD5 с, пожалуй, самой известной медленной хеш-функцией, bcrypt (другие включают PBKDF-2 и scrypt):
"Вместо того, чтобы взламывать пароль каждые 40 секунд [как в случае с MD5], я буду взламывать их каждые 12 лет или около того [когда система использует bcrypt]. Ваши пароли могут не нуждаться в такой безопасности, и вам может потребоваться более быстрое сравнение алгоритм, но bcrypt позволяет вам выбрать баланс скорости и безопасности ».
А поскольку медленный хеш-код может быть реализован менее чем за секунду, это не повлияет на пользователей.
Почему важно хранение паролей?
Когда мы пользуемся онлайн-сервисом, мы заключаем договор доверительного управления. Вы должны быть в безопасности, зная, что ваша личная информация хранится в безопасности.
Безопасное хранение пароля особенно важно. Несмотря на многочисленные предупреждения, многие по-прежнему используют один и тот же пароль для разных сайтов, поэтому, если, например, ваш Facebook взломан, данные для входа на любые другие сайты, использующие тот же пароль, также могут быть открытой книгой для киберпреступников.