Как запретить доступ к базе данных состояний вне процесса цепного кода
Необходимо обеспечить 2 вещи:
- Данные, которые читает цепной код, не могут быть используется за пределами цепочечного кода
- Данные, которые считывает цепной код, не могут быть изменены, и если они изменены, то их можно обнаружить.
Первая проблема может быть устранена путем шифрования данных, и вторую проблему можно решить, если цепной код прикрепить тег MA C (код аутентификации сообщения) к каждому элементу, который он записывает, а также проверить тег MA C любого элемента, который он читает, и, если тег недействителен затем верните ошибку.
Стоит упомянуть, что вы должны MA C зашифрованный текст и не шифровать MA C (сначала шифрование, затем MA C).
также если я публикую базу данных как docker изображение, как мне убедиться, что узел использует этот указанный c образ базы данных, а не подделанный.
Если цепной код имеет Ключ MA C, встроенный в него, затем образ базы данных, который вы публикуете sh, будет содержать записи, которые цепной код не создавал (следовательно, не прикреплял соответствующие метки MA C к нему), тогда он будет обнаружен.
Проблема заключается в том, что злонамеренный администратор также может предоставить партнеру действительный контейнер базы данных, но из прошлого.
Существует еще один вариант, который вы можете исследовать: Fabri c Private Цепной код , который использует функцию Intel SGX TEE (Trusted Execution Environment).