Повышение веры в подлинность программного обеспечения с открытым исходным кодом
Кредит: Алекс Шиппс и Келси Меррилл через Midjourney/Massachusetts Институт технологии
Одна из проблем заключается в том, что «программное обеспечение, которое вы получили от того, что, по вашему мнению, является надежным разработчиком, каким -то образом было скомпрометировано», - говорит Келси Меррилл, инженер -программист, который получил степень магистра в начале этого года от Департамента электротехники и компьютерных наук MIT и компьютерных наукПолем«Предположим, что где -то в цепочке поставок программное обеспечение было изменено злоумышленником, у которого злонамеренные намерения».
Риск нарушения безопасности такого рода ни в коем случае не является абстрактным.В 2020 году, чтобы взять печально известный пример, техасская компания SolarWinds сделала обновление программного обеспечения в широко используемой программе под названием Orion.Хакеры ворвались в систему, вставив патронный код в программное обеспечение, прежде чем SolarWinds отправили последнюю версию Orion более чем 18 000 клиентов, включая Microsoft, Intel и примерно 100 других компаний, а также дюжину правительственных учреждений США, включая отделы.Государство, оборона, казначейство, торговля и национальная безопасность.
В этом случае продукт, который был испорчен, поступил от крупной коммерческой компании, но упущенные могут быть еще чаще встречаются в сфере открытого исходного кода, говорит Меррилл, «где люди разных слоев- может опубликовать программное обеспечение, которое используется по всему миру ».
Она и три сотрудника - ее бывший советник Карен Соллинс, главный ученый из лаборатории компьютерного и искусственного интеллекта MIT;Сантьяго Торрес-Ария, доцент кафедры компьютерных наук в Университете Пердью;и Захари Ньюман, бывший аспирант MIT и нынешний научный сотрудник в Chainguard Labs - разработал новую систему под названием Speranza, которая нацелена на то, чтобы убедить потребителей программного обеспечения, с которым они получают продукт, не подделан и выходит непосредственно из источникаони доверяют.Бумага опубликована на сервере Arxiv Preprint.
«То, что мы сделали, - объясняет Соллинс, - это разработка, доказывать правильное и продемонстрировать жизнеспособность подхода, который позволяет активаторам [программного обеспечения] оставаться анонимными».Сохранение анонимности, очевидно, важно, учитывая, что почти все - в том числе разработчики, в том числе и в том числе разработчики, ценят их конфиденциальность.Этот новый подход, добавляет Sollins, «одновременно позволяет пользователям [программного обеспечения] иметь уверенность в том, что актуальные, на самом деле, являются законными сопровождающими и, кроме того, загружаемый код на самом деле является правильным кодом этого сопровождающего».
Итак, как пользователи могут подтвердить подлинность программного пакета, чтобы гарантировать, как говорит Merrill: «Содействия, которые они говорят?»Классический способ сделать это, который был изобретен более 40 лет назад, посредством цифровой подписи, которая аналогична рукописной подписи, хотя и с гораздо большей встроенной безопасностью благодаря использованию различных криптографических методов.
Чтобы выполнить цифровую подпись, одновременно генерируются два «клавиши», которые состоит из которых состоит из нулей и одних, то есть длиной 256 цифр.Один ключ обозначен «частным», другой «публичной», но они составляют пару, которая математически связана.
Разработчик программного обеспечения может использовать свой закрытый ключ вместе с содержимым документа или компьютерной программы, чтобы генерировать цифровую подпись, которая прикреплена исключительно к этому документу или программе.Пользователь программного обеспечения может затем использовать открытый ключ, а также подпись разработчика, а также содержимое загруженного ими пакета - для проверки подлинности пакета.
Валидация приходит в форме да или нет, 1 или ноль.«Получение 1 означает, что подлинность была гарантирована», - объясняет Меррилл.«Документ такой же, как и когда он был подписан, и, следовательно, неизменен. А 0 означает, что что -то не так, и вы можете не захотеть полагаться на этот документ».
Хотя этот десятилетний подход в некотором смысле испытывается, он далеко не совершенен.Одна проблема, отмечает Merrill, заключается в том, что люди плохо управляют криптографическими ключами, которые состоят из очень длинных чисел, таким образом, это безопасно и мешает им заблудиться ».По словам Меррилла, люди все время теряют свои пароли.«И если разработчик программного обеспечения потерял бы закрытый ключ, а затем свяжитесь с пользователем, который говорит:« Эй, у меня есть новый ключ: «Как вы узнали, кто это на самом деле?»
Чтобы решить эти проблемы, Speranza создает «Sigstore» - систему, введенную в прошлом году для повышения безопасности цепочки поставок программного обеспечения.Sigstore был разработан Ньюманом (который спровоцировал проект Speranza) и Torres-Arias, вместе с Джоном Спидом Мейерсом из Chainguard Labs.Sigstore автоматизирует и оптимизирует процесс цифрового подписания.Пользователям больше не нужно управлять длинными криптографическими ключами, но вместо этого выпускают эфемерные ключи (подход, называемый «подпись без ключа»), который истекает быстро - возможно, в течение нескольких минут - и, следовательно, не нужно хранить.
Недостаток с Sigstore проистекает из того факта, что он отказался от долгосрочных общественных ключей, так что вместо этого активизии программного обеспечения должны идентифицировать себя-через протокол под названием OpenId Connect (OIDC)-таким образом, который может быть связан с их адресами электронной почты.Эта особенность, одна, может препятствовать широко распространенному принятию Sigstore, и она послужила мотивирующим фактором - и смыслом для - Speranza.«Мы принимаем основную инфраструктуру Sigstore и изменем ее на предоставление гарантий конфиденциальности», - объясняет Меррилл.
С помощью Speranza конфиденциальность достигается благодаря первоначальной идее, которую она и ее сотрудники называют «совместными коммитациями идентичности».Здесь, в простых терминах, как работает идея: личность разработчика программного обеспечения в форме адреса электронной почты преобразуется в так называемое «обязательство», которое состоит из большого псевдорандома.(Псевдорандома не соответствует техническому определению «случайного», но, практически говоря, примерно так же хорошо, как и случайное.) Между тем, другое большое количество псевдорядости-сопутствующее обязательство (или совместное коммитацию)-генерируется, связанное с связанным сПрограммный пакет, который этот разработчик либо создал, либо получил разрешение на изменение.
Чтобы продемонстрировать потенциальному пользователю конкретного программного пакета, который создал эту версию пакета и подписал его, уполномоченный разработчик опубликует доказательство, которое устанавливает однозначную связь между обязательством, которое представляет их личность и обязательство, прикрепленное кПрограммный продукт.Доказательство, которое выполняется, имеет особый тип, называемый доказательством с нулевым знанием, который является способом показать, например, что две вещи имеют общую связь, не разглашая подробности о том, что эти вещи-такие как разработчикАдрес электронной почты - на самом деле.
«Speranza гарантирует, что программное обеспечение поступает из правильного источника, не требуя, чтобы разработчики раскрывали личную информацию, такую как их адреса электронной почты», - комментирует Марина Мур, доктор философии.Кандидат в Центр кибербезопасности Нью -Йоркского университета.«Это позволяет проверке видеть, что один и тот же разработчик несколько раз подписал пакет, не выявляя, кто является разработчиком или даже другими пакетами, над которыми они работают. Это обеспечивает улучшение удобства использования по сравнению с долгосрочными ключами подписания, и преимущество конфиденциальности по сравнению с другими OIDC-Основанные решения, такие как Sigstore. ”
Марсела Меллара, научный сотрудник в области исследования безопасности и конфиденциальности в Intel Labs, согласен.«Этот подход имеет преимущество в том, что потребители программного обеспечения автоматически проверяют, что пакет, который они получают, от репозитория с поддержкой Speranza, возникшего от ожидаемого сопровождающего, и получить доверие к тому, что программное обеспечение, которое они используют, является подлинным».
Больше информации: Kelsey Merrill et al., Speranza: использование, подписание программного обеспечения, удобное для конфиденциальности, Arxiv (2023).Doi: 10.48550/arxiv.2305.06463
Нашли ошибку в тексте? Напишите нам.