Что дает доказательство с нулевым разглашением
Обычно доказать что-то означает предъявить доказательства: ввести пароль или передать удостоверение личности. Это может раскрыть больше, чем нужно знать другому человеку.
Доказательство с нулевым разглашением – это криптографический метод, который меняет эту ситуацию. Один человек, доказывающий, демонстрирует точное утверждение другому, проверяющему, не раскрывая секрета, который позволил сделать это утверждение истинным. Верификатор узнает нужный ему ответ — например, что вы соответствуете возрастным требованиям, — но не ваш день рождения, адрес или номер документа.
Это не расплывчатое обещание конфиденциальности. Доказательство должно быть рассчитано на одно точное утверждение, а хорошая конструкция делает мошенничество крайне маловероятным.
Пример пещеры
Представьте себе пещеру с двумя тропами, которые сходятся за запертой дверью. Дверь открывается только секретным словом. Вы говорите, что знаете это, но не хотите говорить об этом вслух.
Вы входите любым путем, пока ваш друг ждет снаружи. Затем ваш друг называет путь, по которому вы хотите вернуться. Если вы знаете это слово, вы можете открыть дверь внутри пещеры и вернуться любым путем. Если вы гадаете, у вас есть только пятьдесят на пятьдесят шансов оказаться на запрошенной стороне.
Повторите тест много раз с новым, непредсказуемым выбором. Десять успешных раундов оставляют блефующему шанс на удачу примерно один из 1000. Ваш друг получает убедительные доказательства того, что вы знаете это слово, но никогда его не слышит.
От пещерной истории к реальному программному обеспечению
Настоящие доказательства используют математику, а не пещеру, но цель конфиденциальности та же. Они могут показать, что транзакция соответствует правилам, не раскрывая всех ее деталей. Они также могут позволить одному небольшому доказательству заменить большую серию проверок, что может ускорить проверку некоторых систем.
Цифровые учетные данные — еще одно практическое применение. Вместо того, чтобы загружать весь идентификатор в каждую службу, хорошо продуманные учетные данные могут ответить только на задаваемый вопрос: «Этот человек старше 18 лет?» или «Обладают ли они этой квалификацией?»
Детали имеют значение. Доказательство защищает только ту информацию, для сокрытия которой оно создано. Остальная часть приложения по-прежнему может собирать данные, устанавливать вашу личность или принимать неудачные решения по безопасности в другом месте.
Доказательство с нулевым разглашением против шифрования с нулевым разглашением
Фраза «нулевое разглашение» также используется в облачном хранилище. Это другая идея. Шифрование с нулевым разглашением означает, что поставщик хранилища не может прочитать ваши файлы, поскольку у него нет ключей расшифровки.
Доказательство с нулевым разглашением отвечает на вопрос, не раскрывая секрет, который стоит за ответом. Шифрование с нулевым разглашением делает хранимые файлы нечитаемыми для поставщика. Оба метода могут повысить конфиденциальность, но заменить один другим нельзя.
Практический урок конфиденциальности
Доказательства с нулевым разглашением — полезное напоминание о необходимости поделиться минимальной информацией, необходимой для выполнения задачи. Они не делают вас анонимными и не защищают каждую часть приложения. Служба по-прежнему может знать, что вы подключались, когда вы это сделали, а также другие данные, выходящие за рамки доказательства.
Sealby не нужны доказательства с нулевым разглашением, потому что у него нет учётной записи или сервера, которому нужно что-то доказывать. Файлы шифруются на вашем iPhone. Для повседневной конфиденциальности важен простой вопрос: что на самом деле должен знать этот сервис и может ли он обойтись меньшим?