Одно из возможных решений, предложенных Гэвин, имеющие "монитор" сервер и multisig сделки. Монитор будет проверять сделки, представленные ему для согласования и только знак, если в силе. Это полезный подход, но страдает от некоторых ограничений:
- Это дорого (вам нужно оплатить дополнительные расходы хостинга)
- Соблазнительно уменьшить накладные расходы на управление путем дублирования конфигурации, например, с использованием Linux на обеих системах вместо Linux и Windows, или имеющие SSH ключи для каждого в том же месте, или используя тот же VPS для обоих. Это уменьшает преимущества в плане безопасности резко.
- Есть, вероятно, будет пропускная способность / задержки ограничения между двумя хостами, которые сделают проверку сделок сложнее
Надежные вычисления позволяют нам решить некоторые из этих проблем, позволяя создание "сервер мониторинга" внутри ненадежного, возможно скомпрометированных сервера. Полоса пропускания между ними аналогична вашей обычной пропускной способности памяти. Только одна часть оборудования не требуется. Монитор работает абсолютно минимальный кусок кода, даже не включая обычную операционную систему, таким образом, есть мало или вообще ничего, что может быть взломано. Монитор устойчив к физической атаке плохих инсайдеров.
Я хотел бы, чтобы убедить вас в преимуществах такого подхода в надежде, что бесстрашный предприниматель может начать предлагать счета оболочки на ТС серверах для сообщества Bitcoin, а также учебники и библиотеки, чтобы помочь в разработке безопасных мониторов. За счет снижения расходов на двойной одностороннем подходе я надеюсь увидеть это стало намного более распространенным, и доступны даже для небольших или любительских операций, которые, вероятно, не считают установку на нескольких серверах.
Вы начинаете с платформой, реализующей Trusted Computing группы технических характеристик, например:
- Сервер Dell PowerEdge T105
- dc7800 рабочая станция HP
- Dell Optiplex 740 рабочих станций
- Dell Optiplex 755 рабочих станций
- Lenovo T400 ноутбук
- 8530p ноутбук HP
- 8540p ноутбук HP
- HP Elite 8100 рабочий стол
Спецификации о которых я говорю открыто, и вы можете читать их непосредственно, но я рекомендую приличную книгу, как вот этот ознакомиться с основными технологиями. Я только предложить краткий обзор.
TC платформа содержит чип под названием доверенный платформенный модуль (TPM), которые могут быть автономные, но в эти дни часто интегрированы в южный мост. ТРМ является Стойко подменяет чип шифрования. Важно понимать, что ТРМ не криптографический ускоритель. ТСЗ очень медленно. Вместо этого они обеспечивают хранилище криптографических ключей, которые трудно идти на компромисс даже физически присутствующих и решительным атакующим.
Вместе с некоторыми специальными инструкциями процессора, можно создавать отдельные программные миры, которые очень трудно атаковать, даже кто-то, кто скомпрометированный хост ОСА. Он работает следующим образом:
- Код работает в (возможно безнадежных) регулярные среды операционной системы нагрузок чувствительную кода приложения в памяти, например, в случае Bitcoinicas это может быть частью торгового двигателя, в slushs случае это может быть код, который проверяет некоторые файлы данных для создания то выплата сделка. Он также загружает любые файлы данных, которые могут понадобиться программа, как правило, они будут зашифрованы.
- Вы выполнить волшебную команду. На AMD это команда SKINIT, на чипах Intel, это более сложная инструкция SENTER. То, что происходит дальше немного запутанным, но для упрощения, центральный процессор выполняет своего рода сброса, в котором операционная система хоста теряет контроль - прерывания приостановлено, другие сердечники закрыты, и выполнение возобновляется в начале чувствительного блока кода. Кардинально как часть этого процесса TPM инициализируется хэшей чувствительного кода и любого другого кода в системе, которые могут повлиять на исполнение, как BIOS.
- TPM имеет возможность "печать" ключи шифрования, так что они только выпустили из чипа, когда CPU находится в определенных состояниях. Например, вы можете закрыть ключ под хэш чувствительного кода. Затем не представляется возможным для хост-ОС, чтобы сделать ТРМ кашель ключ. Чувствительный код просит TPM, чтобы запечатывать ключ, и он делает это потому, что процессор имеет уже (электрический) сообщил ему, что аппаратное обеспечение находится в ожидаемом состоянии.
- Чувствительный код затем выполняет любые расчеты ему нужно, например, он может расшифровать бумажник загружен в память для него ненадежного кода, создавать и подписывать какую-то сделку Bitcoin, который затем отложение в области памяти, которая ранее была зарезервирована для него по незащищенному / возможно скомпрометированных коду.
- Код стирает память он используется, затем выходит из безопасного состояния с инструкцией SEXIT (или AMD эквивалент).
- Ненадежных OS хост может затем принять подписанные сделки и передать их в сети Bitcoin.
На самом деле реализации всего этого комплекса. К счастью, некоторые хорошие люди написали мерцать что делает этот процесс простым. Мерцание очень мала, а значит, легко проверять и убедить себя, не существует никаких недостатков, которые могли бы позволить хост-ОС, чтобы сделать изолированный мир сделать что-то неожиданное.
Прелесть этого подхода заключается в том, что ТС является очень общим инструментом. Например, он имеет приложение в интеллектуальных агентах, безопасные, оракулы временных отметок и другие темы, которые могут представлять интерес для Bitcoiners. Выделенные миры могут создавать криптографические доказательства их исполнения, которые проверяемые другими - это означает, что вы можете значительно повысить доверие к третьей стороне, обеспечивая интересную и часто более дешевую альтернативу к "Кворум независимых участников" парадигма.
Есть некоторые открытые вопросы, которые необходимо решать в первую очередь:
- Такие услуги, как Linode сократить свои расходы на виртуализацию аппаратного обеспечения. Можно виртуализировать ТС оборудование, в самом деле, с открытым исходным кодом "tboot" проект от Intel приостанавливает хост-ОС, а затем буквально устанавливает гипервизора Xen на основе под ним на лету, что позволяет полностью отдельную копию Linux для загрузки, которая работает параллельно с первым - все отслеживаемых ТПМ. Однако это увеличивает сложность много! Первые версии служб ТС, вероятно, хотели бы найти более простой способ поддержки виртуализации.
- Как вы делаете писать безопасные мониторы легко для людей, которые не necesssarily комфортно с C или C ++? Мерцание помогает много, но она по-прежнему предполагает свободное владение программирования низкого уровня.
- Как вы абстрактные и упростить методы, необходимые для отслеживания внешнего состояния. Например, сервер пула должен отслеживать, кто задолжал, что выплаты. Даже если злоумышленник не может поставить под угрозу бумажника, они могут представить фиктивные платежные данные на монитор и обмануть его подписать прочь свои деньги. Монитор потенциально может хранить и управлять сам всю базу данных, но часто есть более эффективные способы. Хитрость заключается в том, чтобы сделать их простыми. Это общая проблема с подходом к мульти-сервер. Общие шаблоны проектирования поможет многое.
Я планирую исследовать некоторые из этих вопросов в ближайшие месяцы.