Преимущества использования Intel SGX
1. Защита данных
Intel SGX предлагает высокий уровень безопасности и конфиденциальности данных, позволяя программистам создавать защищенные контейнеры, называемые «защищенными областями». Эти области предоставляют изоляцию от остальной системы и могут быть доступны только авторизованным приложениям. Таким образом, данные, находящиеся в защищенной области, остаются недоступными для внешних атак.
2. Защита программного кода
Intel SGX защищает программный код от модификации и несанкционированного доступа. Он использует аппаратные функции процессора для создания уникальной подписи, связанной с кодом, и проверяет ее каждый раз при запуске. Если подпись не соответствует ожидаемой, процессор блокирует запуск кода, что предотвращает возможные атаки.
3. Защита от атак внутри системы
Intel SGX предотвращает атаки «изнутри» системы, такие как вредоносные программы, выполняющиеся на том же уровне привилегий, что и защищенная область. Защищенная область обеспечивает изоляцию и не может быть скомпрометирована вредоносными программами внутри операционной системы.
4. Расширенные возможности облачных вычислений
Intel SGX позволяет создавать защищенные области в облаке, что позволяет разработчикам и пользователям выполнять вычисления с использованием конфиденциальных данных, сохраняя их безопасность. Это особенно полезно для обработки чувствительных данных, таких как медицинская информация или финансовые данные, в облачной среде.
5. Широкая поддержка
Intel SGX имеет широкую поддержку в отрасли и является стандартом безопасности от ведущих производителей программного обеспечения и облачных провайдеров. Это обеспечивает переносимость и совместимость между различными системами и платформами.
Intel SGX — это мощный инструмент безопасности, который обеспечивает защиту данных и программного кода, а также предотвращает атаки внутри системы. Он также расширяет возможности облачных вычислений и имеет широкую поддержку в отрасли. Если вы заботитесь о безопасности своих данных, использование Intel SGX будет иметь большую пользу для вас.
Базовые требования к приложению
Базовые требования к приложению помогут ограничить область приложения, чтобы можно было сосредоточиться на интеграции Intel SGX, а не на тонкостях проектирования и разработки приложения. Напомню, перед нами не стоит задача создания коммерческого продукта: от программы Tutorial Password Manager с Intel SGX не требуется возможности запуска в множестве операционных систем или на всех возможных архитектурах ЦП. Требуется лишь некая действующая отправная точка.
Поэтому базовые требования к приложению таковы:
Требования к решению и принципам работы |
|
Первое требование может показаться странным, если учесть, что эта серия учебных материалов посвящена разработке приложений, использующих Intel SGX, но приложения, предназначенные для реального мира, должны предусматривать возможность установки на устаревших системах. Для некоторых приложений может быть целесообразно разрешить выполнение только на платформах, поддерживающих Intel SGX, но в Tutorial Password Manager мы выбрали более гибкий подход. Платформа, поддерживающая Intel SGX, получит более защищенную среду выполнения, но и на других платформах программа все равно будет работать. Такая модель использования вполне подходит для диспетчера паролей, поскольку пользователи могут синхронизировать свои пароли с другими, более старыми системами. Кроме того, это возможность научиться реализации двойных ветвей кода.
Второе требование предоставляет нам доступ к определенным алгоритмам шифрования в ветви кода без поддержки Intel SGX и к некоторым библиотекам, которые нам потребуются. Требование использования 64-разрядной операционной системы упрощает разработку приложения за счет доступа к 64-разрядным типам собственного кода. Кроме того, повышается скорость работы некоторых алгоритмов шифрования, оптимизированных для 64-разрядного кода.
Третье требование предоставляет нам доступ к инструкции RDRAND в ветви кода без поддержки Intel SGX. Это существенно упрощает генерацию случайных чисел и обеспечивает доступ к источнику с высокой энтропией. Системы, поддерживающие инструкцию RDSEED, смогут использовать ее. (Сведения об инструкциях RDRAND и RDSEED см. в руководстве по внедрению программного обеспечения генерации случайных чисел Intel).
Четвертое требование поддерживает наивозможную краткость списка программного обеспечения, требуемого разработчику (и пользователю). Не требуется загружать и устанавливать никакие сторонние библиотеки, платформы, приложения и служебные программы. Впрочем, у этого требования есть не слишком приятный побочный эффект: если отказаться от сторонних платформ, то у нас остается всего четыре варианта создания пользовательского интерфейса. Вот эти варианты:
- API-интерфейсы Win32
- Microsoft Foundation Classes (MFC)
- Windows Presentation Foundation (WPF)
- Windows Forms
Первые два варианта реализуются с помощью собственного/неуправляемого кода, а для двух последних вариантов требуется .NET*.
Who Watch BIOS Watchers?
On the last Black Hat event in Vegas, I presented the first publicly known concept of attack on a specific implementation of Intel Boot Guard technology (mostly undocumented as a technology). When I worked on this research one thought it bothered me: the specification of technology can be perfect but after that, the implementation part goes to the third-parties and it is challenging to maintain proper level security in this case. Intel Boot Guard is an excellent example of a complex technology where exist a lot of places where making a small mistake allows an attacker to bypass full technology. I proofed on practice how many mistakes can be done and demonstrate on Gigabyte hardware with modern CPU an insecure configuration with fully active Boot Guard. But before we go deep into Intel Boot Guard details let’s talk a little bit about why the firmware issues can be serious problems.
Постановка проблемы[править | править код]
Прежде всего, технология SGX была создана для возможности безопасных удалённых вычислений — запуска программного обеспечения на удалённом компьютере, принадлежащем ненадёжной стороне, с некоторыми гарантиями целостности и конфиденциальности. В общем случае, безопасные удалённые вычисления — это нерешённая проблема. Полностью гомоморфное шифрование решает проблему для ограниченного семейства вычислений, но имеет непрактичные накладные расходы производительности.
Расширения Intel SGX решают проблему безопасных удалённых вычислений путём использования надёжного оборудования на удалённом компьютере. Подлинность оборудования устанавливается в процессе Надёжное оборудование создаёт «безопасную область», и пользователь службы удалённых вычислений может загружать необходимый код и данные в эту «область». Надёжное оборудование защищает конфиденциальность и целостность данных во время выполнения вычислений на нём.
Цели
Разработка Intel SGX преследовала 8 основных целей:
- Позволить разработчикам приложений защищать конфиденциальные данные от несанкционированного доступа или изменения с помощью вредоносного программного обеспечения, работающего на более высоком уровне привилегий.
- Позволить приложениям сохранять конфиденциальность и целостность конфиденциального кода и данных, не нарушая возможности системного программного обеспечения управлять использованием ресурсов платформы.
- Предоставлять потребителям вычислительных устройств возможность контролировать используемые платформы и свободу устанавливать и удалять приложения и службы по своему усмотрению.
- Позволить платформе оценивать доверенный код приложения и, базируясь только на центральном процессоре, создавать подпись, которая включает эту оценку и другие подтверждения того, что код был правильно инициализирован в надёжной среде.
- Позволить создавать программное обеспечение с повышенными требованиями к безопасности с помощью привычных разработчикам инструментов.
- Сделать возможным масштабировать производительность доверенных приложений вместе с возможностями центрального процессора.
- Дать возможность поставщикам программного обеспечения доставлять доверенные приложения и обновления по своему усмотрению, используя каналы распространения по своему выбору.
- Позволить приложениям определять безопасные области кода и данных, которые поддерживают конфиденциальность, даже если злоумышленник имеет физический контроль над платформой и может проводить прямые атаки на память.
Защита конфиденциальности и интеллектуальной собственности
Intel Software Guard Extensions (SGX) — это технология, разработанная компанией Intel, которая обеспечивает защиту конфиденциальности и интеллектуальной собственности. С помощью SGX разработчики могут создавать безопасные области памяти, называемые контейнерами, в которых могут выполняться конфиденциальные вычисления и храниться чувствительные данные.
Одна из основных проблем в области безопасности данных — это угрозы внутренних атак. Когда конфиденциальные данные хранятся и обрабатываются на сервере, могут возникнуть угрозы со стороны злоумышленников, имеющих доступ к серверу или его компонентам. SGX позволяет защитить данные от таких угроз, создавая изолированные области памяти, которые неприступны для внешних процессов и могут быть доступны только внутри них.
Контейнеры SGX могут быть использованы для защиты конфиденциальной информации, такой как личные данные пользователей, банковские данные, медицинские записи и другие чувствительные данные. Они могут быть также использованы для защиты интеллектуальной собственности, такой как алгоритмы, секретные ключи, инновационные идеи и т. д. Создание безопасных контейнеров SGX позволяет разработчикам обеспечивать надежность и безопасность приложений и сервисов, хранящих и обрабатывающих конфиденциальную информацию или интеллектуальную собственность.
Использование контейнеров SGX значительно повышает уровень защиты данных. Даже если сервер или его компоненты подверглись атаке, данные, находящиеся внутри контейнеров SGX, останутся недоступными для злоумышленников. Кроме того, SGX обеспечивает аутентификацию и шифрование данных, что позволяет предотвратить несанкционированный доступ к информации и повысить уровень конфиденциальности.
Однако, следует отметить, что SGX не является универсальным решением для всех видов угроз и уязвимостей данных. Оно может быть эффективно применено в изолированных сценариях, где конфиденциальные данные хранятся и обрабатываются в ограниченной безопасной среде. Для полной защиты данных необходимо использовать комплексный подход, включающий другие технологии и методы безопасности.
В целом, Intel Software Guard Extensions предоставляет разработчикам мощный инструмент для обеспечения безопасности данных и защиты конфиденциальной информации и интеллектуальной собственности.
Ограничения и проблемы, связанные с использованием Intel SGX
Не смотря на многочисленные преимущества, Intel Software Guard Extensions (SGX) также имеет свои ограничения и проблемы, которые важно учитывать при работе с данной технологией
Ограничение/проблема
Описание
Ограниченный размер защищенной области
SGX предоставляет только ограниченное количество страниц памяти для защиты. Данный ограниченный размер может быть проблемой для приложений, требующих большого объема памяти.
Высокая стоимость переключения между защищенным и незащищенным режимами
Переключение между защищенным режимом работы и незащищенным режимом может потребовать значительных накладных расходов, особенно если это происходит слишком часто.
Ограниченные возможности отладки и профилирования
Отладка и профилирование SGX-защищенных приложений могут быть затруднены, так как доступ к внутренним деталям и данным внутри защищенной области ограничен.
Требования к аппаратуре и поддерживаемым платформам
Intel SGX требует наличия аппаратной поддержки со стороны процессора и операционной системы. Не все процессоры и операционные системы обладают этой поддержкой.
Уязвимости атаки и утечки данных
Несмотря на передовые методы защиты, SGX все же подвержен некоторым уязвимостям атаки и возможным утечкам данных
Разработчикам необходимо внимательно следить за безопасностью и применять соответствующие меры предосторожности.
Учитывая эти ограничения и проблемы, разработчикам следует тщательно оценить необходимость использования Intel SGX в своих проектах и принять все меры для защиты данных и обеспечения безопасности приложений.
Развитие SGX и будущие перспективы
Технология Software Guard Extensions (SGX) продолжает активно развиваться и находить новые применения. Ее возможности постоянно расширяются, что открывает новые перспективы в области безопасности и защиты данных.
В настоящее время компании Intel и разработчики программного обеспечения активно работают над улучшением SGX. В результате появляются новые функции, позволяющие разработчикам более эффективно использовать SGX для обеспечения безопасности приложений.
В будущем ожидается еще большее расширение SGX. Одной из перспективных областей применения технологии является облако. SGX позволяет обеспечить безопасность данных в облаке, что является актуальной задачей для многих компаний и организаций.
Еще одной перспективной областью применения SGX является защита данных в сфере интернета вещей (IoT)
С ростом числа устройств IoT и их взаимодействия, безопасность становится особенно важной. SGX позволяет защитить данные от нежелательного доступа и несанкционированного изменения
Кроме того, развитие SGX может привести к созданию новых стандартов безопасности в индустрии. Это поможет улучшить безопасность в целом и обеспечить защиту данных на новом уровне.
Однако рост и развитие SGX также ставит перед разработчиками и пользователями новые задачи. Необходимо постоянно следить за обновлениями и использовать последние версии SGX, чтобы обеспечить максимальную защиту данных.
- SGX — это аппаратное обеспечение, встроенное в процессоры Intel, которое позволяет создавать безопасные области памяти, изолированные от других процессов и даже операционной системы.
- SGX предоставляет дополнительный уровень защиты от атак и утечки данных, так как даже владелец системы не имеет доступа к зашифрованным данным внутри SGX.
- Использование SGX требует поддержки со стороны операционной системы и программных приложений. Однако, все больше разработчиков внедряют поддержку SGX в свои продукты, что позволяет использовать его преимущества.
На основе проведенного анализа, можно сделать следующие рекомендации:
При выборе нового компьютера или процессора, рекомендуется учитывать наличие технологии SGX и его поддержку операционной системой.
Если вы разрабатываете программное обеспечение, стоит обратить внимание на возможность использования SGX для улучшения безопасности и защиты данных.
В случае, если для работы понадобится использование SGX, необходимо убедиться, что используемые процессоры и система соответствуют требованиям этой технологии.
Следует обратить внимание на обновления процессоров и драйверов, связанных с SGX, чтобы использовать последние функциональные возможности и исправления безопасности.
SGX продолжает развиваться и улучшаться, и эта технология имеет потенциал для использования в различных сферах, где требуется высокий уровень безопасности и защиты данных.
Intel включает поддержку расширений SGX в процессорах Skylake
Корпорация Intel опубликовала уведомление об изменении номеров спецификаций (S-spec) и нумерации MM (MM Number) процессоров шестого поколения, базирующихся на микроархитектуре Skylake. Оно затрагивает модели Core i7, Core i5, а также Xeon E3-1200 v5. В официальном документе говорится о незначительных изменениях в производственной конфигурации (minor manufacturing configuration), в результате которых владельцы новых процессоров получат возможность активации технологии Intel SGX. Документ содержит полный список моделей процессоров, которые будут обновлены.
Список инструкций и схема взаимодействия Intel SGX
Технология Intel SGX (Software Guard Extensions) представляет собой новый набор процессорных инструкций, которые могут быть использованы соответствующим образом написанными приложениями для организации защищённых регионов кода и данных, в терминологии Intel именуемых «анклавами» (enclave). Сама компания называет такой подход «обратной песочницей» (inverse sandbox). Применение SGX позволяет разработчикам программного обеспечения наделять свои творения защитой от несанкционированного доступа или модификации даже в том случае, если вредоносное приложение работает на более высоком уровне привилегий. Конфиденциальность ценных данных может быть сохранена, в том числе и при наличии у атакующего физического доступа к атакуемой платформе. Более полное описание Intel SGX содержится на официальном веб-сайте Intel Developer Zone.
Использование SGX минимизирует количество уязвимых для атаки точек
Intel SGX явно не выглядит бесполезной технологией, но почему её поддержка в процессорах Skylake не была активирована ранее? Согласно официальной документации, новые партии чипов не получат нового степпинга и ревизии (сохранится степпинг 3 и ревизия R0), а также изменений в сигнатуре CPUID (0x506E3). Никаких изменений не претерпит упаковка чипа и сам кристалл. Intel специально упоминает о том, что новые процессоры и платформы на их основе не нуждаются в повторном прохождении квалификационного тестирования. Можно было бы сделать вывод, что корни проблемы носят исключительно программный характер, но никаких обновлений микрокода и выпуска соответствующих «заплаток» для BIOS также не ожидается. Следовательно, невозможность включения SGX в выпущенных ранее партиях Skylake имеет аппаратную или смешанную аппаратно-программную природу. Стоит ли торопиться с заменой процессора? Это зависит от того, планируете ли вы использовать преимущества Intel SGX в будущем.
Требования для работы с SGX в BIOS
Для успешной работы с SGX в BIOS необходимо удовлетворить следующим требованиям:
1. Версия BIOS: Убедитесь, что ваша система имеет актуальную версию BIOS, которая поддерживает SGX. Проверьте на официальном сайте производителя компьютера или обратитесь к руководству пользователя для получения информации о том, как обновить BIOS до последней версии.
2. Включение SGX в BIOS: Вам потребуется включить поддержку SGX в настройках BIOS. Зайдите в BIOS вашей системы, найдите соответствующий параметр и установите его на значение «Включено». Этот параметр может называться «Intel SGX» или иметь похожее описание.
3. Поддерживаемый процессор: Убедитесь, что ваш процессор поддерживает технологию SGX. Проверьте спецификации вашего процессора на сайте производителя или обратитесь к руководству пользователя.
4. Поддерживаемая операционная система: Убедитесь, что ваша операционная система поддерживает SGX. На данный момент SGX поддерживается в операционных системах Windows, Linux и Android. Установите актуальные обновления операционной системы, чтобы обеспечить совместимость с SGX.
5. Драйверы и программное обеспечение: Для работы с SGX может потребоваться установить драйверы и программное обеспечение, предоставляемые производителем. Проверьте сайт производителя устройства или поставщика SGX для получения актуальных драйверов и программного обеспечения.
6. Поддержка подсистемы памяти: SGX требует специальной защищенной памяти, называемой «секциями запечатывания». Убедитесь, что ваша система поддерживает эту функцию и имеет достаточное количество доступной защищенной памяти для работы с SGX.
7. Безопасность: SGX является механизмом обеспечения безопасности, поэтому требуется принимать дополнительные меры безопасности при работе с SGX. Обратитесь к руководству пользователя, документации производителя или специалистам безопасности для получения рекомендаций и инструкций по обеспечению безопасной работы с SGX.
Учитывая эти требования, вы можете успешно настроить и использовать SGX в BIOS вашей системы, чтобы обеспечить безопасность и защиту данных.
Защита конфиденциальности децентрализованных приложений и их данных
В распределенных облачных вычислениях важна защита приложения и его конфиденциальных данных. Например, приложению может потребоваться доступ к сторонним службам данных с помощью токена конфиденциальности для получения данных, которые используются для расчета приложения. Это не проблема, если приложение работает на локальной стороне или в централизованном облаке, где облачный менеджер может шифровать токен конфиденциальности и взять на себя ответственность за вопросы безопасности. Однако если приложение выполняется в недоверенной распределенной системе, оно и его конфиденциальные данные предоставляются всем распределенным узлам в сети.
Наше предложение, основанное на Intel SGX, позволяет зашифровать приложение и/или данные (например, токен/ключ, позволяющий приложению получить доступ к службам данных) перед их развертыванием по сетям, а ключ шифрования может быть передан в анклав Intel SGX по высокозащищенному каналу для расшифровки приложения и/или данных во время выполнения. Таким образом, никто по ту сторону сети не может проверять приложение/данные, потому что приложение/данные зашифрованы, а дешифрование выполняется внутри анклава Intel SGX, который защищен секретным ключом, полученным от центрального процессора (CPU), и никто не может проверять дешифрованные данные.
Например, у нас есть приложение, которое позволяет прогнозировать изменения запасов в ближайшие 3 месяца. Когда приложение начнет работать, оно сначала получит доступ к серверу финансовых данных со своим токеном конфиденциальности, для получения этих финансовых данных. Токен конфиденциальности хранится в ключевом файле, и этот ключевой файл не может быть создан непосредственно внутри приложения, поскольку он увеличивает зависимость и просто не является безопасным. Если мы зашифруем токен другим ключом, проблема заключается в том, как безопасно распределить этот ключ среди тысяч распределенных узлов во время выполнения?
Вот как Intel SGX может помочь нам в этом вопросе. С помощью Intel SGX мы можем зашифровать этот ключевой файл (т.е. хранить токен), а когда приложение запускается на удаленном узле (то есть даже на ненадежном узле без какой-либо защиты), приложение создает защищенный анклав Intel SGX и ключ дешифрования автоматически передается в анклав через защищенный канал, а затем токен, который используется для доступа к службе данных, может быть дешифрован в анклаве во время выполнения.