Насколько безопасны ваши украденные зашифрованные данные?

Скорее всего, некоторые из ваших данных были украдены. Вы когда-нибудь пользовались Yahoo? В 2013 году было украдено 3 миллиарда аккаунтов Yahoo. Посещали отель Marriott? За четыре года, с 2014 по 2018, было украдено 500 миллионов аккаунтов Marriott. Удалось ли вам каким-то образом сохранить свой старый адрес Hotmail и бунтарский дух подростка? 360 миллионов аккаунтов MySpace были взломаны. Используете MyFitnessPal? 150 миллионов учетных записей.
Так что именно получили хакеры? Каждый взлом уникален, но они, почти наверняка, получили ваш адрес электронной почты, информацию о пользователе, записи о вашей активности на сайте и, возможно, гораздо более серьезные данные. Хорошие новости: большая часть самой чувствительной информации, вероятно, была зашифрована. Также вероятность, что она не была зашифрована, довольно высока, но давайте рассмотрим лучший сценарий кражи данных: ваша информация была украдена, но чувствительные данные зашифрованы с помощью AES-256. Насколько это безопасно?
Что означает, что данные зашифрованы?

«Шифрование» в современной безопасности данных, как правило, относится к криптографии на основе ключей. Короче говоря, вы вводите данные, которые хотите зашифровать, и ключ (строку букв, цифр и/или символов), который хотите использовать для их шифрования. Комбинация этих двух вещей создает запутанную массу, которую можно расшифровать, только если будет использован соответствующий ключ. Это не следует путать с:
- Кодирование: Использует один и тот же алгоритм для кодирования и декодирования данных, ключ не требуется. Это похоже на ASCII или Unicode – совершенно незащищено.
- Хеширование: Односторонний процесс шифрования, который производит один и тот же результат для идентичного ввода, но оставляет совершенно разные результаты, если входные данные различаются даже немного. Обычно это используется для управления паролями с алгоритмами, такими как SHA-256 или bcrypt.
Например:
| Метод | Текст |
|---|---|
| Кодирование (ASCII, десятичное) | Держите это в секрете. Берегите это. |
| Шифрование (AES 256 бит) | Держите это в секрете. Берегите это. |
| Хеширование (bcrypt) | Держите это в секрете. Берегите это. |
| Метод | С применением метода |
|---|---|
| Кодирование (ASCII, десятичное) | 75 101 101 112 32 105 116 32 115 101 99 114 101 116 46 32 75 101 101 112 32 105 116 32 115 97 102 101 46 |
| Шифрование (AES 256 бит, ключ: Mellon) | ddg18josC+1ouYRjv5CfPoo
jKJV+y3OLtxjIeCUsL+A= | | Хеширование (bcrypt, двенадцать раундов) | $2y$12$3O1EiCPdVrqZFllHJ/
.q9eZzsyzqdmLMluqlQKO1A
NtlYMva94.nS |
| Метод | Расшифровано |
|---|---|
| Кодирование (ASCII, десятичное) | Держите это в секрете. Берегите это. |
| Шифрование (AES 256 бит) | Держите это в секрете. Берегите это. |
| Хеширование (bcrypt) | Невозможно расшифровать |
Два основных типа шифрования - симметричное и асимметричное. Симметричное шифрование можно расшифровать с использованием того же ключа, который использовался для его шифрования, в то время как асимметричное шифрование требует одного ключа (публичного ключа) для шифрования и другого ключа (приватного ключа) для расшифровки. Большинство современных шифрований является асимметричным, так как иметь только один ключ для всей базы данных информации очень небезопасно.
Насколько безопасно шифрование? Можно ли его взломать?

Короткий ответ - да: шифрование можно взломать. Метод грубой силы, который, по сути, заключается в том, чтобы делать много-много предположений, пока одно не окажется правильным, безусловно, найдет правильный ответ, если у вас достаточно времени и вычислительных мощностей. Учитывая наши текущие возможности, взлом AES-256 может занять до 3 сексдекаллионов (3×10^51) лет, и похожие цифры могут быть применены ко многим широко используемым алгоритмам шифрования. В будущем квантовые компьютеры и другие достижения могут значительно уменьшить безопасность шифрования, но пока оно эффективно непроницаемо.
Но это не делает шифрование неуязвимым. Злоумышленники хорошо знают, что зашифрованные данные бесполезны без ключей, так что что они преследуют? Ключи. Наиболее катастрофический возможный утечка данных - это та, при которой украдены как зашифрованные данные, так и ключи расшифровки. Если безопасность данных реализована правильно, ключи (несколько ключей для разных данных, вероятно, на каждого пользователя) должны безопасно храниться в отдельном месте от данных и, вероятно, сами должны быть зашифрованы. Кроме того, ключи необходимо безопасно расшифровывать и извлекать каждый раз, когда необходимо расшифровать какие-либо данные, чтобы злоумышленники не могли их перехватить. Кроме того, ключи, вероятно, следует менять регулярно.
Если сайт, с которого были украдены ваши данные, сделал все это, вероятно, злоумышленники не смогли получить ключи, и ваши данные в безопасности, пока солнце не сгорит или пока мы не изобретем гораздо более мощные компьютеры. Но каковы шансы, что сайты на самом деле делают это, и сколько ваших данных зашифровано даже в лучшем случае?
Кто шифрует и что зашифровывается?

Помните тот список утечек данных в начале этой статьи? Давайте посмотрим на них еще раз.
| Утечка | Год | Затронутые записи | Зашифровано | Не зашифровано |
|---|
| Yahoo | 2013/2014 | 3 миллиарда | – Зашифрованные пароли (в основном bcrypt, некоторые MD5)
– Некоторые вопросы безопасности | – Имена
– Email адреса
– Номера телефонов
– Даты рождения | | Marriott | 2014-2018 | 3-500 миллионов | – 8,6 миллиона номеров кредитных карт
– 20,3 миллиона номеров паспортов | – Имена
– Адреса
– Даты рождения
– Пол
– Данные программы лояльности
– Информация о бронировании
– 5,25 миллиона номеров паспортов | | MySpace | 2016 | 400 миллионов | Пароли (SHA-1, без соли) | – Email адреса
– Имена пользователей | | MyFitnessPal | 2018 | 150 миллионов | Пароли (bcrypt, с солью, и SHA-1) | – Имена пользователей
– Email адреса
– Пароли |
Этот список может стать очень-очень длинным, но вы поняли идею: в основном, единственное, что шифруется на большинстве сайтов, это ваш пароль (который на самом деле хешируется) и платёжная информация. Если это не сайт, который обрабатывает много чувствительной информации или нацелен на высокую безопасность, ваша утечка данных, вероятно, раскрыла значительное количество вашей ЛИЧНОЙ (Персонально Указываемой Информации). Это в основном потому, что шифрование и дешифрование требует гораздо больше вычислительных ресурсов, времени, усилий и денег, чем просто хранить их в открытом виде и предоставлять вам напрямую.
Даже зашифрованные данные в этих взломах не всегда были в безопасности. Yahoo и MyFitnessPal использовали bcrypt для своих паролей, что является сильным стандартом шифрования, но они также использовали MD-5 и SHA-1 соответственно, в основном для старых аккаунтов. Это гораздо более слабые алгоритмы хеширования. MySpace просто использовал не соленый SHA-1 для всего, что имеет смысл, но это также означает, что ваш пароль почти наверняка был скомпрометирован. Yahoo также не уточняло, добавляли ли они соль к своим паролям в 2013 году (возможно, нет), что делает их довольно уязвимыми для взлома.
Marriott даже потерял 5.25 миллиона номеров паспортов в открытом виде, что не хорошо. Они явно знали, что должны их зашифровать (все равно же 20 миллионов других были зашифрованы), но допустили ошибку с 20 процентами своих клиентов. Они также зашифровали номера кредитных карт, но не уверены, получили ли хакеры ключ.
Мораль этой истории: большинство ваших данных не зашифровано, даже те, которые, по вашему мнению, должны быть защищены.
Но мои данные были зашифрованы
Правильно, вы использовали сайт с фантастической безопасностью, который зашифровывал каждую последнюю бит данных. Такие существуют – много сайтов хранения файлов (Dropbox, Google Drive) будут шифровать ваши файлы в своей базе данных, например. Если это так, то, пока их система хранения ключей была надежной и их эксперты по безопасности хорошо работали с разработчиками, можно ожидать, что ваши данные останутся нетронутыми до тепловой смерти Вселенной.
Однако более вероятный сценарий заключается в том, что многие из ваших данных не были зашифрованы, и даже чувствительная информация могла быть плохо захеширована или зашифрована с использованием ключа где-то в базе данных или файловой системе. Ничего не поделаешь с этим, так как вам нужно предоставить компаниям свои данные, чтобы использовать их услуги, но вы можете попытаться свести это к минимуму – и не используйте одни и те же пароли дважды!
И не забудьте проверить HaveIBeenPwned, чтобы увидеть, не появилась ли ваша информация в каких-либо утечках.