Где лучше хранить ключи шифрования?

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

Начнём с основ. Большинство современных алгоритмов шифрования действительно имеют безумно высокую математическую стойкость на «бумаге» — вот только при вычислении этой «стойкости» используются несколько «предположений», которые не всегда присутствуют на «деле» — а именно то, что ключ имеет высокую энтропию и не может быть подобран простым «перебором», а также что исполнение алгоритма в конечной программе правильное.

Тут стоит сделать отступление и прояснить один важный ньюанс: современные программы для шифрования не используют «секрет» (пароль, ПИН-код) пользователя напрямую — по причине того, что такие «секреты» зачастую секретами вовсе не являются. Для того, чтобы замедлить потециальный перебор пароля, используются алгоритмы вычисления ключа — проще говоря, они «раздувают» предоставленный им «секрет», делая его вычисление долгим и затратным.

На данный момент такие алгоритмы лишь предоставляют дополнительное «раздражение» для атакующего — ведь три часа вычисления ключа у пользователя не равняются трём часам на сервером кластере. В лучшем случае, речь идёт как минимум о десятикратном ускорении. Кроме этого, подобные вычисления крайне уязвимы к получению ключа через наблюдение за электромагнитными утечками (TEMPEST). Без экранирования рабочего пространства, «цена» такой атаки — не больше пятидесяти долларов.

Для решения всех вышеперечисленных проблем были придуманы криптографические чипы, некоторые из которых уже вам знакомы из серии публикаций о цифровой криминалистике — Titan M2 и Apple SEP. Кроме защиты от различных физических атак, вроде Fault Injection и уже упомянутого TEMPEST, для получения ключа атакующему надо проводить каждую попытку через сам чип — то есть, каждая попытка будет занимать ровно предусмотренное время, без «жульничества». Также, это позволяет прогрессивно замедлять попытки, т. е. с какого-то момента атакующему необходимо будет ждать 12 часов и более для каждой последующей пробы.

Проблема данных чипов в том, что их можно заставить выдать ключи — о чем уже был материал. Даже при этом минусе, в большинстве своём они безопаснее своих программных «аналогов».

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

Самые примечательные — мобильные устройства Google Pixel (при условии использования GrapheneOS) и, с определённым количеством оговорок, техника Apple последних поколений.