Мне интересно, возможно ли для провайдера облачного хостинга теоретически запустить приложение для клиента, когда клиент не доверяет хостинг-провайдеру данные в приложении. Клиент загрузил бы образ виртуальной машины (или аналогичный), и хост запустил бы его, но не смог бы прочитать какие-либо его данные.
Это кажется невозможным, потому что гость должен расшифровать данные в памяти, чтобы использовать их, а хост может напрямую читать память виртуальной машины, когда захочет.
Есть ли какой-нибудь способ обойти эту проблему? Или какое-то частичное решение, затрудняющее доступ хоста к данным внутри виртуальной машины?
РЕДАКТИРОВАТЬ: Я понимаю, что гость может легко хранить зашифрованные данные, которые он никогда не расшифровывает, например, зашифрованное электронное письмо, передаваемое от одного пользователя к другому. Мне интересно, могут ли данные, которые может прочитать гость, быть нечитаемыми для хоста.
Короче нет.
По определению, хост имеет доступ к все данных, к которым у гостя есть доступ. Это включает в себя память, диск, сетевые буферы, кеш процессора и т. Д.
Гость должен держать ключ дешифрования доступным, чтобы он мог читать зашифрованные блоки (обычно в ОЗУ), где он мог быть легко прочитан хостом.
Чтобы повторить комментарий выше, если вы не доверяете хосту, найдите другой хост, которому вы действительно доверяете, или просто разместите вещи сами.
Это не так уж и невозможно, как кажется. Гомоморфное шифрование системы позволяют выполнять вычислительные операции с зашифрованными данными без предварительного их дешифрования.
Однако это не кажется особенно практичным (по крайней мере, пока) для общего использования. Во-первых, даже «полностью» гомоморфные криптосистемы, которые были разработаны до сих пор, вычисляют только выходные данные двоичных схем, а не, например, компьютерные программы - и хотя двоичные схемы являются своего рода полностью общими, вам нужно перефразировать любое вычисление, которое вы хотите, в эту форму, чтобы выполнить его. И даже тогда это не очень эффективно: согласно статье в Википедии «В конце 2014 года повторная реализация гомоморфной оценки схемы AES-шифрования с использованием HElib показала, что время оценки на 120 входах составило чуть более четырех минут, амортизируемое время ввода примерно до 2 секунд ». Сравните это с производительностью, заявленной для процессора Intel с ускорением AES: [эта статья] сообщает, что процессор Haswell с частотой 2,60 ГГц разгоняется до 663,8 МБ / с в AES-128-CBC, что (если я правильно подсчитал) примерно В 90 миллионов раз быстрее, чем вычисления с гомоморфным шифрованием.