Многие полагают, что после прохождения верификации сервис, который проверяет удостоверение, на самом деле увидел ваши документы, оценил их и просто запоминает результат.
Проверка личности в Newton устроена иначе. Верификация выполняется внутри TEE — среды доверенного выполнения (Trusted Execution Environment), поэтому обычная инфраструктура проверяющего никогда напрямую не получает доступ к лежащим в основе данным идентичности. Она получает результат верификации, а не исходные входные данные как таковые.
Это другая модель безопасности, чем просто шифрование. Шифрование защищает данные во время хранения или передачи, но обычно требуется выполнить расшифровку, чтобы провести проверку. Цель TEE — удержать даже эти вычисления в изоляции: хост, управляющий системой, не может инспектировать, что происходит внутри защищённого enclaves.
Это также соответствует более широкой модели идентичности Newton. Проверяющие валидируют доказательства учётных данных, не узнавая лежащую в основе персональную информацию. Цель — не только «убрать данные с блокчейна», но и сохранить их скрытыми от проверяющего.
Остаётся вопрос доверия. TEE снижают то, насколько сильно вам нужно доверять Верификатору, но не устраняют доверие полностью. Вместо этого часть доверия переносится на реализацию TEE, производителя аппаратного обеспечения, прошивку и процесс аттестации. В прошлом у TEE были реальные уязвимости на уровне аппаратуры и побочных каналов, поэтому это скорее механизм снижения рисков, а не гарантия.
Больше всего меня интересует модель отказов. Если бы в аппаратной части, на которую полагается Newton, была обнаружена серьёзная уязвимость TEE, что произойдёт с учётными данными, которые ранее были проверены с использованием этих enclaves? Ограничится ли влияние будущими аттестациями после того, как уязвимость станет известна, или могут считаться скомпрометированными и более ранние сессии верификации? А если бы это произошло, существует ли документированный процесс восстановления, например отзыв доверенных enclaves, ротация ключей аттестации или повторная верификация учётных данных?
$NEWT @NewtonProtocol #Newt $LAB $TLM #labcrashed