Доказательство с нулевым разглашением и его роль в информационной безопасности
Александр Подобных, 13/11/23
Довольно часто фундаментальные исследования прошлого века обретают новую жизнь в современном мире, находя свое применение на переднем крае технологий. Одним из таких примеров стала идея доказательства с нулевым разглашением, которая органично вписалась в вопросы информационной безопасности
Автор: Александр Подобных, руководитель Санкт-Петербургского РО АРСИБ, руководитель Комитета по безопасности цифровых активов и противодействию мошенничеству, судебный эксперт
Что такое доказательство с нулевым разглашением?
Доказательство с нулевым разглашением (Zero-Knowledge Proof, ZK-доказательства, ZKP) – это криптографический протокол, который позволяет одному лицу (доказывающему) убедить другого (проверяющего) в том, что некоторое конкретное утверждение верно, не раскрывая никаких подробностей о самом утверждении. То есть одна сторона может доказать, что знает секретные данные, не раскрывая их или их детали, а вторая может только убедиться, что доказывающая сторона имеет доступ к этой информации.
Эта концепция играет важную роль в информационной безопасности вообще и в сфере блокчейн-технологий в частности. В качестве примеров ее применения можно привести аутентификацию без раскрытия пароля, проверку ПДн без их публикации, доказательство владения определенным частным ключом в блокчейне без публичного раскрытия этого ключа.
История вопроса
Идея доказательств с нулевым разглашением была предложена в работе "The Knowledge Complexity of Interactive ProofSystems" авторами Шафи Голдвассер, Сильвио Микали и Чарльз Раккофф в далеком 1985 г.
Исследователи представили новый класс протоколов интерактивных доказательств, которые позволяют одной стороне доказывать свое знание о некоторой информации без раскрытия самой информации. Этот важный концепт привлек много внимания и был затем усовершенствован в последующих работах.
Канонически доказательство с нулевым разглашением должно соответствовать следующим трем критериям:
- полнота: проверяющий примет доказательство с высокой вероятностью, если утверждение истинно, а проверяющая и доказывающая сторона придерживаются протокола;
- обоснованность: если утверждение не соответствует действительности, ни один доказывающий не должен быть в состоянии убедить проверяющего в обратном, за исключением случаев стечения крайне маловероятных обстоятельств;
- нулевое знание: даже после взаимодействия с доказывающей стороной проверяющий понимает только истинность утверждения и ничего больше не знает о секрете.
Понятие знания играет фундаментальную роль в концепции доказательств с нулевым разглашением. Знание описывает информацию или данные, которые доказывающая сторона знает или обладает ими. Это может быть, например, секретный ключ, пароль, номер паспорта и т.п.
Доказательство знания заключается в том, чтобы, используя математические и криптографические методы, убедить проверяющую сторону, что доказывающая сторона реально обладает знанием, не раскрывая при этом сами данные или информацию.
Примером реализации идеи может служить неинтерактивный протокол ZK-SNARK (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge). Неинтерактивность в данном случае подразумевает, что доказательство представляет собой блок данных и не требует прямого взаимодействия сторон протокола.
Роль цифровой подписи в ZK-доказательствах
Цифровая подпись – это важный компонент для создания безопасных и приватных ZK-доказательств, позволяющий доказывающей стороне аутентифицировать себя и подтверждать правильность утверждений без раскрытия конфиденциальных данных. Цифровая подпись позволяет доказать, что отправитель знает закрытый ключ, который соответствует открытому ключу, используемому для верификации.
Подпись также обеспечивает подтверждение целостности данных. В ZK-доказательствах отправитель может использовать цифровую подпись для демонстрации того, что данные не были изменены после их подписания.
Цифровая подпись может использоваться в ZK-доказательствах для подтверждения правильности определенных операций без раскрытия конкретных данных. Например, отправитель может подписать хеш данных и предоставить его для верификации вместо самих данных.
Области применения
Конечно же, ZK-доказательства для повышения конфиденциальности транзакций и масштабируемости имеют важное значение в мире блокчейна как в наиболее подготовленной для инновация сфере. Они позволяют осуществлять анонимные транзакции без раскрытия их деталей или личности участников. Так работает, например, блокчейн Zcash, а сеть Ethereum использует ZK-Rollups для создания сжатых доказательств о состоянии целой группы транзакций, что позволяет значительно увеличить производительность блокчейна.
ZK-доказательства могут использоваться в полях аутентификации и контроля доступа, чтобы продемонстрировать знание пароля или криптографического ключа, не раскрывая сам пароль или ключ.
ZK-доказательства также используются в системах электронного голосования, где они позволяют избирателям продемонстрировать легитимность своего волеизъявления, не раскрывая подробностей голосования, защищая целостность избирательного процесса.
Доказательства с нулевым разглашением могут улучшить конфиденциальность транзакций в цифровых валютах центрального банка (CBDC), облегчая частные транзакции и поддерживая анонимность пользователей. Балансируя между конфиденциальностью и прозрачностью транзакций CBDC, ZKP обеспечивает возможность аудита без раскрытия специфики транзакции. Например, в технологии цифрового рубля ZKP можно использовать для повышения конфиденциальности, а также для сохранения анонимности при трансграничных переводах между разрабатываемым белорусским цифровым рублем и перспективной единой цифровой валютой БРИКС.
В качестве еще одного приложения можно привести Filecoin, децентрализованное хранилище данных, которое использует ZK-SNARK для обеспечения безопасной и эффективной проверки целостности данных, хранящихся на сети.
Недостатки
Доказательства с нулевым разглашением могут подвергаться различным видам атак:
- Атака на приватность. Злоумышленник может попытаться извлечь конфиденциальную информацию, которая должна оставаться скрытой в процессе проведения ZKP. Это может произойти, если протокол ZKP не обеспечивает адекватную конфиденциальность.
- Подделка доказательства. Злоумышленник может попытаться создать ложное доказательство и представить его как действительное. Протокол ZKP должен быть устойчив к подобным атакам.
- Атаки на параметры. Злоумышленник может выбирать параметры так, чтобы они облегчили взлом системы: выбор ненадежных хеш-функций, кривых эллиптической криптографии и т.д.
- Уязвимости в коде. Недостаточно безопасные или уязвимые реализации ZKP-протоколов могут стать точкой входа для атак.
- Атаки на хеширование или криптографические алгоритмы.
- Атаки на передачу данных. При передаче ZKP через сеть может существовать риск перехвата или модификации данных, что может повлиять на их целостность и конфиденциальность.
Есть и другие недостатки ZKP, не связанные с информационной безопасностью.
Разработка и проверка ZK-доказательств может быть трудоемкой с точки зрения ресурсов и вычислений, особенно для сложных вариантов реализации технологии. Увеличение времени обработки транзакций и объема вычислительной работы может затруднить масштабирование блокчейн-систем.
Кроме того, ZK-доказательства добавляют новый уровень сложности к исходной информационной системе, затрудняя ее аудит и проверку протокола. В свою очередь, это создает риск в части информационной безопасности и эксплуатации незамеченных багов.
Заключение
Уже сегодня технологию доказательства с нулевым разглашением в совокупности с блокчейнами и распределенными реестрами можно эффективно использовать в сфере защиты данных, в том числе и ПДн. При этом сами данные могут вообще не передаваться по внешней сети, а пользователь сможет в режиме онлайн отслеживать согласия на обработку.
В настоящее время у технического комитета ISO/IEC JTC 1/SC 27 Information security, cybersecurity and privacy protection находятся в разработке рекомендации по сохранению конфиденциальности, основанные на доказательствах с нулевым разглашением (ISO/IEC WD 27565.3) [1].
Этот документ будет содержать рекомендации по использованию доказательств с нулевым разглашением для улучшения конфиденциальности путем снижения рисков, связанных с совместным использованием или передачей персональных данных между организациями и пользователями, путем сведения к минимуму объема передаваемой информации. В нем будут приведены несколько функциональных требований ZKP, относящихся к целому ряду различных вариантов бизнес-использования, а затем описано, как можно использовать различные модели ZKP для надежного удовлетворения этих функциональных требований.