Proton

Что такое шифрование AES?

AES в криптографии означает Advanced Encryption Standard — быстрый, эффективный и надёжный алгоритм шифрования, сертифицированный Национальным институтом стандартов и технологий США (NIST). Это шифр с симметричным ключом, который использует один и тот же ключ, чтобы зашифровать и расшифровать данные. Это сравнительно быстро, что делает его идеальным для шифрования больших объёмов данных в состоянии покоя.

Благодаря своей надёжности и устойчивости AES является одним из самых популярных и распространённых типов шифрования, используемых для защиты беспроводных сетей, шифрования данных и дисков, в системах онлайн-платежей, облачном хранении, управлении паролями и даже в правительственных и военных приложениях. Правительство США использует шифрование AES для защиты своей секретной информации, что способствовало его популярности.

Безопасен ли алгоритм AES?

Да. В 2000 году, после очень тщательного(новое окно) и открытого процесса отбора, NIST объявил, что AES (известный до того как алгоритм Rijndael, созданный Vincent Rijmen и Joan Daemen) заменит DES в качестве рекомендуемого(новое окно) «несекретного, публично раскрытого алгоритма шифрования, способного защищать конфиденциальную государственную информацию далеко в следующем столетии».

Согласно NIST, все длины ключей алгоритма AES считаются "достаточными" для защиты секретной информации до уровня "Secret". Для информации уровня Top Secret (Совершенно секретно) требуется AES-192 или AES-256.

Атаки методом перебора

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

Frontier(новое окно) — самый мощный в мире публично известный суперкомпьютер. Если бы он направил всю свою вычислительную мощность на перебор AES-128, ему всё равно потребовалось бы порядка 10–12 триллионов лет, чтобы исчерпать все возможные комбинации для AES-128. Это намного дольше возраста Вселенной. Поэтому даже при меньших размерах в битах AES очень устойчив к атакам методом перебора со стороны обычных компьютеров. 

AES-256 в 340 миллиардов миллиардов миллиардов миллиардов (2¹²⁸) раз сложнее взломать методом перебора, чем AES-128.

Хотя алгоритм Гровера(новое окно) теоретически вдвое снижает безопасность симметричных ключей перед квантовыми угрозами(новое окно), они всё равно остаются относительно устойчивыми к квантовым атакам, особенно при использовании 256-битного ключа.

Атаки на ключи

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

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

Ни одна известная атака на ключи не является практической против корректно реализованного AES-128 или выше. 

Атаки по побочным каналам

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

  • Время — сколько времени компьютеру требуется для выполнения операции
  • Электромагнитные утечки
  • Акустические сигналы
  • Визуальные признаки (зафиксированные с помощью камеры высокого разрешения).

Атаки на время доступа к кэшу, в частности, показали себя весьма эффективными для успешного взлома AES. В самом заметном примере исследователи в 2016 году смогли восстановить(новое окно) ключ AES-128, используя «всего около 6–7 блоков простого текста или шифртекста (теоретически хватило бы даже одного блока)».

Однако можно предпринять ряд мер, чтобы снизить угрозу атак по побочным каналам:

  • Корректно реализованный AES может предотвратить способы, которыми возможна утечка данных.
  • Оборудование со встроенным набором инструкций AES дополнительно сокращает поверхность атаки по побочным каналам для AES.
  • Можно использовать методы рандомизации, чтобы нарушить связь между данными, защищёнными AES, и любыми данными, утечка которых может быть собрана с помощью атаки по побочным каналам. 

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

Как работает AES

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

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

Процесс начинается с использования алгоритма развёртывания ключа Rijndael для получения серии новых раундовых ключей из исходного секретного ключа. Это называется расширением ключа.

Затем каждый раунд состоит из одной или нескольких из следующих операций (или их комбинации):

1. Add RoundKey: выполняется операция XOR(новое окно), чтобы объединить данные, которые нужно зашифровать (шифртекст), с каждым раундовым ключом.

2. Sub Bytes: используется таблица подстановки, чтобы дополнительно перемешать данные. В качестве общего принципа представьте простые шифры замены, которыми вы пользовались в детстве, когда заменяли каждую букву в сообщении на букву, расположенную на фиксированное число позиций дальше по алфавиту.

3. Shift Rows: каждый 128-битный блок данных состоит из блока 4×4 по 16 байт. Эта операция сдвигает каждый байт в строке блока влево на определённое смещение.

4. MixColumns: над каждым столбцом в блоке выполняется дополнительное обратимое линейное преобразование.

Эта серия преобразований образует один раунд, который затем повторяется над данными определённое число раз в зависимости от размера ключа:

  • AES-128 — 10 раундов
  • AES-192 — 12 раундов
  • AES 256 — 14 раундов

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

Почему AES-256 предпочтительнее AES-192 или AES-128?

С учётом нынешних и обозримых технологий на перебор AES-128 потребовалось бы больше времени, чем возраст Вселенной. Легендарный криптограф Брюс Шнайер даже утверждал(новое окно), что AES-128 может быть надёжнее AES-256 благодаря более сильному алгоритму развёртывания ключа — алгоритму, который вычисляет все раундовые ключи из исходного секретного ключа.

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

AES-CBC и AES-GCM

До сравнительно недавнего времени AES обычно использовался в режиме сцепления блоков шифра (CBC), где каждый блок простого текста проходит операцию XOR с предыдущим блоком шифртекста перед тем, как быть зашифрованным. При использовании в режиме CBC для проверки данных требуется алгоритм хеширования HMAC(новое окно), например HMAC-SHA256.

Однако всё чаще AES используется в режиме Galois/counter (GCM), в котором применяется режим счётчика(новое окно) шифрования. Его главное преимущество в том, что для проверки данных он использует поле Галуа(новое окно) без необходимости во внешнем алгоритме. Поэтому он эффективнее, чем использование отдельного алгоритма аутентификации, который может создавать высокую вычислительную нагрузку.

Хотя AES-CBC с аутентификацией HMAC обычно считается безопасным, CBC потенциально уязвим для атак на дополнение(новое окно), таких как POODLE(новое окно). GCM — нет.

AES с аппаратным ускорением

Большинство современных CPU включают Advanced Encryption Standard New Instructions (AES-NI(новое окно)) — набор аппаратных инструкций, который выполняет операции AES непосредственно на процессоре. Это делает AES гораздо быстрее, а также помогает предотвращать атаки по побочным каналам, основанные на времени, потому что операции происходят внутри защищённых исполнительных блоков процессора, поэтому у атакующего меньше наблюдаемых вариаций по времени, которые можно использовать.

Proton и AES

Мы широко используем AES для защиты продуктов Proton:

События и контакты защищаются с помощью AES-256 в сочетании с ECC для обмена ключами, чтобы обеспечить вашу конфиденциальность посредством сквозного шифрования.

Proton VPN в основном ориентирован на быстрый и эффективный протокол VPN WireGuard® (который использует ChaCha20), но подключения OpenVPN используют AES-256.

Proton Pass хранит пароли, заметки, личные данные и другие элементы в вашем защищённом хранилище с использованием AES-256.

Proton Drive зашифровывает все загруженные файлы сквозным методом с помощью AES-256, используя ECC для обмена ключами. Proton Docs и Proton Sheets также используют AES-256 с обменом ключами на основе ECC, хотя их реализация шифрования отличается от общей схемы шифрования файлов в Proton Drive.

Proton Mail хранит электронные письма и вложения с использованием AES-256 по стандарту OpenPGP. Даже ваш закрытый ключ, который открывает доступ к вашим электронным письмам, зашифрован с помощью AES-256 перед сохранением на сервере.

Proton Meet использует Messaging Layer Security (MLS), чтобы зашифровать аудио, видео и сообщения чата, обеспечивая прямую секретность (PFS) и безопасность после компрометации (PCS) для всех коммуникаций. Все данные встреч зашифрованы сквозным методом с использованием AES-256-GCM.

Снижение риска атак на шифрование AES

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

Proton

Возьмите свои данные под контроль

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

Часто задаваемые вопросы о шифровании AES

Что лучше: AES или DES?
Что лучше: AES или RSA?
Насколько надёжна безопасность AES?

Подробнее о шифровании