LINUXTALKS.CO

А что если сделать софт для запуска своего БИОС на товоизированных компьютерах?

 , , ,

L


0

1

@Kaschenko, @odalist, что если вам поработь на благо родины и сделать утилиту позволяющие делать БИОС с корректной цифровой подписью?

Принцип мне видится таким: Текущие версии проприетарного биос являются довольно большими и состоят из цифровой подписи и всего остального.
Так вот, ранее ради незначительных изменений такую защиту уже преодолевали путём подбора бит в зонах с незначительным содержимым, например с рисунком логотипа фирмы, так чтобы цифровая подпись вычислялась корректно.
Производители БИОС ответили на это тем что вынесли рисунки, пустые области и пр. подобное за пределы подписанного БИОС, а сам биос сделали максимально компактным так, чтобы нельзя было подобрать биты для коллизии цифровой подписи не внеся в биос изменений полностью нарушающих его работу.

Так вот какая у меня мысль: а что если пойти до конца и заменить весь биос целиком на небольшой биос который будет содержать только драйверы необходимые для загрузки уже нашей версии БИОС с ПЗУ материнской платы или usb флешки и никаких кодов дополнительной инициализации или настройки компьютера срдержать не будет.
Такой загрузчик будет намного меньше БИОС и оставит на месте старого биоса достаточно свободных битов для подборки новой коллизии цифровой подписи.

Это может сделать товоизацию безполезной в принципе позволяя запускать ПК с производьным биосом.
Как вам такой план.

★★★

https://youtu.be/fUAaTSmDqS8?t=8

оставит на месте старого биоса достаточно свободных битов для подборки новой коллизии цифровой подписи

Ты не в курсе, что представляет из себя современная криптография?

TheAnonymous    
★★★★★★★★★★★
Linux / Firefox
Ответ на: комментарий от torvn77

У меня есть альтернативная идея. А что, если важные компьютеры к Internet сети вообще не подключать?

VIT    

Последнее исправление: VIT (всего исправлений: 1)

Linux / Firefox
Ответ на: комментарий от VIT

Это тоже, но ведь если комп к интернету или внутреней сети подключить необходимо то лучше его максимально обезопасить.

К тому же мне встречалась идея записывать в скрытые сектора накопителей приказы наличие которых проверяет проприетарный биос при подключении накопителя к системе.

torvn77    
★★★
Android / Chrome
Ответ на: комментарий от VIT

Нет, тут не выкачивание винчестера, тут отправка команд компьютеру, например втыкаешь флешку, а биос увидев на ней в скрытом секторе команду уничтожает комп.

torvn77    
★★★
Последнее исправление: torvn77 (всего исправлений: 1)

Android / Chrome
Ответ на: комментарий от TheAnonymous

Ты не в курсе, что представляет из себя современная криптография?

Не в курсе, но понимаю о чём ты пишешь.
Есть следующие моменты:

  1. Подбор коллизий намного проще подбора приватного ключа.
  2. Проверка цифровой подписи в процессоре аппаратная, а значит используемый ей алгоритм не может быть слишком сложным.
  3. Такое уже проделывали для небольших изменений в БИОС.
  4. Для каждого сокета такой подбор надо сделать один раз, так как грузится будет небольшой первичный загрузчик свободного биоса.
torvn77    
★★★
Последнее исправление: torvn77 (всего исправлений: 1)

Android / Chrome
Ответ на: комментарий от VIT

Вот к стати новость прям сейчас увидел:
https://www.opennet.ru/opennews/art.shtml?num=59224

Используемая в платах прошивка UEFI без информирования пользователя во время загрузки системы осуществляла подстановку и запуск исполняемого файла для платформы Windows. В свою очередь, запущенный исполняемый файл загружал из сети и запускал сторонние исполняемые файлы. Дальнейший разбор ситуации показал, что идентичное поведение проявляется на сотнях разных моделей плат Gigabyte и связано с работой поставляемого компанией приложения App Сenter.

Моё предложение позволит не выбрасывать качественные материнки, а убрать эту гадость из системы.

torvn77    
★★★
Android / Chrome

Производители БИОС ответили на это тем что вынесли рисунки, пустые области и пр. подобное за пределы подписанного БИОС, а сам биос сделали максимально компактным так, чтобы нельзя было подобрать биты для коллизии цифровой подписи не внеся в биос изменений полностью нарушающих его работу.

Первое, что сразу приходит в голову, можно ведь было ограничить количество проверок подписи аппаратно, например, максимум 1 разом в секунду. Чтобы мамкин хакер ждал поиск коллизии до скончания времён.

metalbeaver    
★★★★★★
Windows / Chrome
Ответ на: комментарий от metalbeaver

А разве коллизию нельзя рассчитать если известен защитный алгоритм, ведь надо просто сделать так чтобы на определённом этапе расчёта были одинаковые результаты операции.

И если учесть что микросхему при тесте надо прочесть, просчитать и потом дождаться первых признаков запусков прошивки то число тестов в секунду может быть не большим и так.
А значит скорее всего ломали не прямым перебором в флешке.

torvn77    
★★★
Последнее исправление: torvn77 (всего исправлений: 1)

Android / Chrome
Ответ на: комментарий от torvn77

Пиздец...
1. Сфигали? А может наоборот: для вычисления приватного ключа есть теоретические алгоритмы с использованием квантовых вычислений, работающие за полиномиальное время, а для хэш-функций нет.
На практике что то, что то одинаково невозможно.
В этом вся суть криптографической хэш-функции, что коллизию должно быть невозможно подобрать (условие даже более сильное: должно быть невозможно найти любую пару векторов m1 и m2, что H(m1)=H(m2)), иначе нафиг она вообще нужна.
2. Опять, сфигали? Ты про современные системы, или какой-нибудь 286 XT? Вообще мог бы погуглить немного, и увидел бы, что в Intel Boot Guard например используется SHA256. Ну удачи найти коллизии...
3. Где? Кто? Ты про своё «выпаивание» чипсета на плитке с тараканами что ли?
4. Ну охуеть теперь

TheAnonymous    
★★★★★★★★★★★
Linux / Firefox
Ответ на: комментарий от TheAnonymous

Ты путаешь две вещи: юридически корректную подделку электронного документа и превращение этого докумена в нечитаемые кракозябры лишь бы в поле фамилия сделать замену с Сидорчука на Сидорова.
Второе намного проще.

увидел бы, что в Intel Boot Guard например используется SHA256

Тем не менее, если размер подписанного образа 2 МБ то каждое возможное значение из 256 байт должно иметь не менее 2^21/2^8=2^13 или более 8 тысяч возможных коллизий.
Для образа в 8 МБ это уже более 32 тысяч коллизий.
Так должно быть просто потому что иначе числами длинной в 256 цифер можно было бы пронумеровать все числа длинной в 8 миллионов цифр, что есть противоречие.

torvn77    
★★★
Последнее исправление: torvn77 (всего исправлений: 2)

Android / Chrome
Ответ на: комментарий от TheAnonymous
  1. Где? Кто? Ты про своё «выпаивание» чипсета на плитке с тараканами что ли?

Нет естественно, если ты отслеживал новости по удалению суббинарей для интелме и амдшного псп то должен был почитать каким именно способом их убрали.
(Вот таким, нашли коллизии)

torvn77    
★★★
Последнее исправление: torvn77 (всего исправлений: 1)

Android / Chrome
Ответ на: комментарий от TheAnonymous
  1. Ну охуеть теперь

У тебя с логикой всё хорошо?
Если разные модели процессоров для одного сокета можно сочетать с материнскими платами от разных производителей и имеющих РАЗНЫЕ версии образов БИОС даже в рамках одной конкретной модели материнской платы, то значит там должен быть универсальный способ проверки который скорее всего достаточно взломать один раз для одной пары из платы и процессора чтобы получить результат для всех пар плат и процессоров.

torvn77    
★★★
Последнее исправление: torvn77 (всего исправлений: 3)

Android / Chrome
Ответ на: комментарий от torvn77

Ну ёпт, ты бы прежде, чем писать простыни по незнакомой тебе теме, ознакомился бы сначала с предметом.
https://github.com/corna/me_cleaner/wiki/How-does-it-work?#why-does-it-work-a...
Какие коллизии? Покажи, ткни!
Там уязвимость вообще не связана с криптографией, как и почти везде.

TheAnonymous    
★★★★★★★★★★★
Linux / Firefox
Ответ на: комментарий от torvn77

превращение этого докумена в нечитаемые кракозябры лишь бы в поле фамилия сделать замену с Сидорчука на Сидорова.
Второе намного проще.

Ещё раз, для надёжной хэш-функции невозможно найти никакую пару сообщений, у которых бы совпадали хэш-суммы, хоть оба из кракозябр, не говоря про какое-то поле.

если размер подписанного образа 2 МБ то каждое возможное значение из 256 байт должно иметь не менее 2^21/2^8=2^13 или более 8 тысяч возможных коллизий

Строго говоря, это не верно, существуют значения, для которых будет не менее стольки коллизий (по принципу Дирихле), а для каких-то их может быть меньше. Но это так, доёбка.
Разумеется, колизии есть. Но проблема в том, что найти её получится не сильно быстрее, чем перебрав 2^256 вариантов. То есть, на практике нереализуемо.

TheAnonymous    
★★★★★★★★★★★
Linux / Firefox
Ответ на: комментарий от TheAnonymous

Но проблема в том, что найти её получится не сильно быстрее, чем перебрав 2^256 вариантов. То есть, на практике нереализуемо.

Там схитрили и меняли биты которые в формуле хешсуммы являются как можно более близкими соседями, переходя к более дальним соседям или на уровень глубже только если ничего не получалось.
Чем меньше загрузчик тем больше доступных битов для подгонки коллизии.

torvn77    
★★★
Android / Chrome
Ответ на: комментарий от torvn77

Я даже не знаю, что тут отвечать, чёт надоело уже... Какой-то троллинг тупостью уровня гомогрима.
Ну давай, вперёд, подгоняй коллизии.

Как подгонишь, можешь сразу диссертацию защищать

TheAnonymous    
★★★★★★★★★★★
Linux / Firefox
Ответ на: комментарий от TheAnonymous

Я посмотрел твою ссылку может в статье что я читал что не так объяснили, может я что не так в ней понял, так или иначе по твоей ссылке коллизий не подбирали.

Но вообще где бы посмотреть на зависимость сложности подбора коллизий в зависимости от доли данных с произвольным значением, ведь фиксирована то только небольшая область с загрузчиком.

torvn77    
★★★
Последнее исправление: torvn77 (всего исправлений: 1)

Android / Chrome

Я уже понял, что парень ты непростой и мыслишь нестандартно. Вот тебе ещё пара мыслей для размышлений.

Такой загрузчик будет намного меньше БИОС и оставит на месте старого биоса достаточно свободных битов

Или не будет. Или не намного меньше. Или БИОС уже так написан. Попробуй, конечно, но что-то мне подсказывает, что БИОС писать непросто.

Это может сделать товоизацию безполезной в принципе

Была пущена утка, что расшифровкой БИОС может заниматься TPM ядро. Сейчас ссылки под рукой нет, но если это так, как будешь это обходить? Тупо, машину то всё-таки нужно загрузить.

VIT    

Linux / Chrome
Ответ на: комментарий от VIT

Была пущена утка, что расшифровкой БИОС может заниматься TPM ядро.

Сомневаюсь потому что ядро TPM сидит вне процессора на шине SPI и скорее всего его тогда можно было бы заменить контроллером который бы просто отдавал образ бинарника из своей памяти.
Это было бы слишком просто, там всёж не полные идиоты сидят.
Я думаю что процессор должен сделать в ОЗУ доверенную зону и расшифровывать БИОС уже туда минуя SPI шину, при этом ключ шифрования зоны и ключ расшифровки БИОСа должны быть непосредственно в процессоре.

torvn77    
★★★
Последнее исправление: torvn77 (всего исправлений: 3)

Linux / Chrome
Ответ на: комментарий от torvn77

его тогда можно было бы заменить контроллером который бы просто отдавал образ бинарника из своей памяти.

Или не просто отдавал а «немного преобразовывал». Например, расшифровывал. Тогда просто контроллера маловато, нужны АЛУ, лучше несколько, по-минимому сумматор и умножиталь, пара сдвигов, регистров штук пять. Короче, на ядро уже набралось.

VIT    

Linux / Chrome
Ответ на: комментарий от VIT

Зачем расшифровывать биос?
Просто отправить входной бинарь в /dev/null, а на выход отдать бинарник из памяти контроллера.

Тогда просто контроллера маловато, нужны

Контроллеры бывают разные, в том числе и в виде SoC.

torvn77    
★★★
Linux / Chrome
Ответ на: комментарий от torvn77

Зачем расшифровывать биос?

Чтобы загрузить правильную копию, а не твою подмену.

Просто отправить входной бинарь в /dev/null, а на выход отдать бинарник из памяти контроллера.

А он чик, и не грузится.

VIT    

Linux / Chrome
Ответ на: комментарий от VIT

Чтобы загрузить правильную копию

А в чём тогда смысл подмены TPM?

А он чик, и не грузится.

За чик в этом случае должен отвечать подменённый TPM

torvn77    
★★★
Последнее исправление: torvn77 (всего исправлений: 1)

Linux / Chrome
Ответ на: комментарий от VIT

Чё то больно круто получается.

Судя по блок-схеме(диаграмме) процессора AM5 SPI с TPM становятся легаси, вместо них будет шина eSPI к которой будет подключена микросхема быстрой флешпамяти и всё, расшифровка надо пологать будет в TrustZone которую AMD переносит к себе из мира ARM процессоров.

Так что всё правильно, к БИОС будет трудно подобраться.

torvn77    
★★★
Последнее исправление: torvn77 (всего исправлений: 2)

Linux / Chrome
Ответ на: комментарий от torvn77

Поэтому вместо модификации БИОС люди пытаются загрузить машину обойдя БИОС и убеждая слишком умные операционные системы, что всё прошло как по плану. Заодно, правда загружая весь мусор, которая умная операционныя система грузит, но что делать?

VIT    

Linux / Chrome
Ответ на: комментарий от VIT

На самом деле и с этим можно попробовать что либо сделать, но тут важно сколько людей и с какими навыками готовы присоединится к проекту и какое оборудование для этого они готовы купить.

Есть два направления:

  1. Сделать специальную материнскую плату в которой подавать в процессор питание на различные строго определённые промежутки времени и сопрставляя какие участки флешпамяти были считаны с появившимся за этот период времени изменениями в ОЗУ поймать момент когда в трустзоне будет находится образ флешки в нерасшифрованном состоянии.
    Это позволит сопоставив содержимое трустзоны и образа флешки установить ключ шифрования трустзоны.
    В общем действуя подобным образом попытаться собрать как можно больше данных для криптографического анализа.
    Возможно имеет смысл с помощью датчиков магнитного поля записать активность отдельных чипов, благо последние процессоры разделены на кристаллы.
    Этот способ потребует мозгов, но сравнительно дёшев.

  2. более дорогой способ.
    Отпрять на процессоре чиплет и изучив работу инфинитной фабрики попытаться проимитировать ПЛМ матрицей кристалл чиплета.
    При этом весьма вероятно что данные трустзоны по этой шине передаются уже расшифрованными.

Но как минимум для этого надо станок для микросварки, чтобы подключатся к нужным выводам и дорогущую FPGA способную работать на нужных частотах.

Лично я могу в качестве вклада сделать купить самые дешёвые процессор, материнку и ОЗУ путём замены кварцев или иных комплектующих, а также удлиняя линии к ОЗУ проволокой определить границы того, насколько сильно можно замедлить работу процессора.

torvn77    
★★★
Android / Chrome
Ответ на: комментарий от torvn77

ранее из прошивок удаляли образы для ме

А я повторю

Тебе нужно изучить вопрос, что такое современная криптография

Акцент на слово «современная».

odalist    
★★★★★★★
Последнее исправление: odalist (всего исправлений: 1)

Linux / Firefox
Ответ на: комментарий от torvn77

Нехило так план @torvn77@01.06.2023 14:46:39 (CET) эволюционировал в план от @torvn77@02.06.2023 10:09:38 (CET). Только новый план имеет совсем другую цель, необходимый уровень знаний участников, и затрат.

Что это значит?

VIT    

Linux / Chrome
Ответ на: комментарий от torvn77

:)

Это значит, что первоначальный план был хреновым и требовал доработки, о чём несколько участников, правда в излишне эмоциональной форме, и пытались сказать. Не факт, что второй план хороший и можно выполнить, но он уже совсем не про БИОС, а о вычислительной платформе с определёнными характеристиками. Эти характеристики пока ещё не уточнены, как и неясны ожидаемые результаты, сроки работы, и объём требуемых инвестиций. Вообще - этот проект коммерческий или хобби? Если хобби, то сразу «нет», поскольку не найдёшь столько единомышленников без чёткого понимания результата. Если коммерческий, то … ну ты уже понял.

VIT    

Linux / Chrome

А какую задачу хочется решить таким сложным способом?

Чем-то похожим занимается вот эти ребята, но не с целью поиска коллизий, а чтобы выкинуть потенциально дырявые блобы, затратив на это меньше усилий, чем на честное портирование своей прошивки: https://github.com/linuxboot/fiano#dxe-cleaner

Железо уже давно умеет проверять весь критический путь. Если защита настроена правильно (по рекомендациям от Intel), то в прошивке нет каких-то «незначительных» кусков, которые можно менять так, чтобы это влияло на работу системы. Весь «важный» код участвует в вычислениях, проверяющих подпись. В зависимости от настроек и используемых технологий похаченная система либо вовсе не загрузится, либо не пройдёт аттестацию.

Неломаемых систем, как известно, не бывает, поэтому дыры находят и патчат, а новые версии прошивок выжигают efuse, не давая совершить атаку даунгрейдом. Бывают косяки в ROM, их можно поправить только заменой CPU, но дружественного к пользователю способа их эксплуатации я не знаю - там потребуется железо типа SPIspy, которое может поменять флешку на злодейскую, что в первый раз в момент вычисления подписи отдаст чистые данные, а потом из неё читается другая прошивка. Google и Apple решают такие проблемы добавлением нового чипа, который они могут обновлять дешевле и быстрее, чем Intel патчит свои дыры.

На декстопных материнках почти никогда не включают никакие защиты. Можно взять программатор и зашить всё, что хочется в SPI flash. В ноутах часто включен BootGuard, и такое проделать уже не получится без замены PCH. System76 продаёт ноуты с ненастроенной защитой - можно прошить свой ключ.

kmeaw    
★★★
Последнее исправление: kmeaw (всего исправлений: 1)

Linux / Chrome
Ответ на: комментарий от kmeaw

На декстопных материнках почти никогда не включают никакие защиты. Можно взять программатор и зашить всё, что хочется в SPI flash.

А почему тогда про coreboot рассказывают что он ноет что не может запустится на современном железе?
Они это оправдывают злыми вендорами затившими фирмвари криптографией.

torvn77    
★★★
Android / Chrome
Ответ на: комментарий от torvn77

coreboot на современном железе требует блобов от Intel (FSP). Не запустится он на ноутбуках из-за BootGuard, это можно проверить прямо из Linux утилитой intelmetool: https://review.coreboot.org/plugins/gitiles/coreboot/+/refs/heads/master/util/intelmetool/intelmetool.c#408 - вот такое сообщение она напечатает, если злой вендор всё правильно настроил. Intel не рекомендует включать защиту, если у платы сокетированный процессор, подразумевающий апгрейд конечным пользователем.

А ещё coreboot для потребительского железа занимается не так много людей, поэтому потребуется потратить некоторые усилия на портирование.

kmeaw    
★★★
Последнее исправление: kmeaw (всего исправлений: 1)

Linux / Chrome
Ответ на: комментарий от kmeaw

которые можно менять так, чтобы это влияло на работу системы.

То ли у тебя смартфон "не" съел, то ли ты не понял что я там написал.

Как я понял тамошнее объяснение, раньше в защищённую область клали всё, включая красивую картинку выводимую при старте метеринской платы.
Понятно что эту картинку и подобное можно менять произвольно без вреда для исполнения кода прошивки.
Вот в ней и в других похожих местах биты для подгонки суммы и подкручивали.
Теперь всё это поместили отдельно и стало вот так, как ты написал "в прошивке нет каких-то «незначительных» кусков, которые можно менять так, чтобы это не влияло на работу системы".

(Опять не пришлось добавить).

в прошивке нет каких-то «незначительных» кусков, которые можно менять так, чтобы это не влияло на работу системы.

У меня та мысль, что после хака фирмварь будет состоять из трёх частей:

  1. цифровые подписи, публичные ключи и хеши.
  2. Крохотный загрузчик ничего не умеющий кроме загрузки из SPIflash неподписанного кода и последующего его запуска.
  3. Огромной части в которой раньше были всякие системы инициализации, драйверы nvme, драйверы sata и usb, GUI для настройки биоса…
    А теперь огромная куча мусора перебирая биты которой можно подобрать коллизии.

То есть лишним становится всё кроме программного загрузчика бинаря из SPI flash, думаю этого должно хватить для подбора коллизий.

torvn77    
★★★
Последнее исправление: torvn77 (всего исправлений: 2)

Android / Chrome
Ответ на: комментарий от kmeaw

coreboot для потребительского железа занимается не так много людей, поэтому потребуется потратить некоторые усилия на портирование

Недавно кстати запилили coreboot для MSI Z690-A PRO, на грант от NLnet вроде бы

TheAnonymous    
★★★★★★★★★★★
Linux / Firefox
Ответ на: комментарий от torvn77

Тогда я совсем не понимаю смысла этой затеи.

Когда вендор собирает прошивку и конфигурирует платформу, он решает, какие диапозоны адресов флеша он хочет защищать. Для каждого диапозона считаются SHA1 и SHA256, которые записываются в табличку. Эта табличка подписывается ключом, который подписывается ещё одним ключом, который прошивается в efuse.

Получается, что есть области флеша, которые менять можно - там обычно хранятся настройки, перезаписываемая часть файловой системы ME, MAC-адрес и кастомизируемая часть прошивки - всякие логотипы и картинки - те самые незначительные части, которые можно менять, как угодно, но при этом chain of trust не сломается, в критический путь загрузки ничего лишнего не встанет. И есть области флеша, которые защищены - бутблок, SEC core, прочие исполняемые модули. Если поменять, то ACM это заметит и что-то (в зависимости от настроек) сделает - например, отключит платформе питание.

Внутри той части, которая защищена, есть модули, без которых конечному пользователю в общем-то легко обойтись - их как раз dxe-cleaner и выкидывает. Предположим, что каким-то удивительным образом мы научились записывать туда такой мусор, что случилась коллизия, и SHA1 с SHA256 не поменялись.

А какая конечная цель? Что будет находиться в том неподписанном коде, который хочется запустить? DXE-драйвер для какой-нибудь новой файловой системы или блочного устройства UEFI и так умеет грузить с внешних носителей. coreboot запустить так не получится - платформа уже проинициализирована. Разве что буткит можно какой-нибудь подкинуть.

kmeaw    
★★★
Linux / Chrome
Ответ на: комментарий от kmeaw

coreboot запустить так не получится - платформа уже проинициализирована.

А какая конечная цель? Что будет находиться в том неподписанном коде, который хочется запустить?

Должен получится биос разделённый на две части:

  1. Программный загрузчик из SPI.
  2. Основная бинарь с утилитами настройки, базовые драйвера и прочее нужное биос для инициализации ПК и загрузки ядра операционной системы.

Логика та же что и у Grub с его стадиями загрузки.

Причина которая меня в очередной раз вернулся к этим размышлениям состоит в том, что я на опеннете поспорил с позитивистом, он говорил что мой прогноз что NATO/AUKUS будут требовать еже дневно/недельно/месячно/квартально подтверждать через интернет право использовать компьютер не состоится, ну а я говорил что состоится.
Если хочешь могу скинуть ссылку, но там особо смотреть не на что.
Так вот, обдумывая вопрос "что делать" я вспомнил что в работу БИОС уже вмешивались описанным здесь способом и по принципу "готовь сани летом, а телегу зимой" открыл это обсуждение.

П.С. Вот ссылка, может она мне самому же пригодится:

«В РФ создан консорциум для исследования безопасности ядра Linux» 18-Май-23, 13:22

torvn77    
★★★
Последнее исправление: torvn77 (всего исправлений: 5)

Android / Chrome
Ответ на: комментарий от torvn77

подтверждать через интернет право использовать компьютер

То есть задача, которую мы решаем - научиться обезвреживать или обманывать (несуществующий пока) механизм удалённой аттестации, который является частью прошивки и работает до загрузки ОС?

Увы, тогда предложенная схема не выглядит полезной. Если мы умеем легко находить коллизии для SHA1 и SHA256 одновременно, то куда перспективнее переписать BG policy, чем портить случайный модуль, превращая его в загрузчик непонятно чего - портить критичные для работы платформы модули мы не можем, значит для разлоченного биоса почти не останется работы - память, LPC и PCI уже подняты, сложных задач особо не осталось. Ну можно туда поддержку USB, NVMe и ext4 положить, вместе с красивым boot device selection.

Не очень понятно, как «NATO/AUKUS» будет принимать решение, разрешить какой-то отдельно взятой машине работать или нет. Умельцы начнут продавать роутеры, которые через прокси пойдут до недружественной страны, а оттуда уже ходить в сервер аттестации. Если операторы этих прокси будут достаточно мотивированы, то выключить их все будет достаточно сложно - с пиратской бухтой до сих пор справиться не могут.

Если бы мне нужно было сделать механизм защиты, запрашивающий подтверждение на право использовать компьютер, и у меня были бы огромные ресурсы и влияние, то я бы не стал использовать компоненты прошивки в качестве основы - я бы возложил на них вспомогательные функции, затрудняющие взлом. План примерно такой:

  1. добиваемся того, чтобы все мейнстримные ОС ставили и запускали приложения только из подконтрольного мне магазина, причём автоматически скачивали апдейты для себя и установленных приложений;

  2. встраиваем в эти ОС механизм удалённой аттестации - его задачей будет доказать серверу, что никакие важные компоненты запущенной ОС не были подвержены неавторизованной модификации;

  3. расширяем все популярные сетевые протоколы так, чтобы куку, выдаваемую аттестационным сервером, можно было передавать вместе с сетевыми запросами;

  4. ломаем совместимость новых ОС со старым железом;

  5. меняем поведение популярных интернет-сервисов так, чтобы они пессимизировали пользователей, которые не проходят аттестацию - это вынуждает их постепенно перейти на новое железо и новую ОС;

  6. когда достаточное число пользователей перестали использовать старые системы, дёргаем рубильник - отказываем в обслуживании тем, кто нам не нравится.

Важный код крутим в SGX, к средствам администрирования и разработки допускаем только авторизованный персонал, аудио/видео пропускаем через PAVP и показываем только на HDCP-мониторах (чтобы из старых компьютеров не делали терминалы к новым).

Ещё надо IPv6 и P2P запретить, каналы для потребителей сделать ещё более ассиметричными, а запуск серверного ПО объявить лицензируемой деятельностью, требующей регистрации.

kmeaw    
★★★
Linux / Chrome
Ответ на: комментарий от kmeaw

Твой план ошибочен с самого начала ввиду трёх пунктов:

  1. Так можно контролировать компьютеры внутри своей юрисдикции, но не вне её.
  2. Страна вне твоей юрисдикции просто напишет свою ОС требования к которой достаточно просты, так как под документооборот не нужны особо сложные системы.
  3. Твой план дорог и в долгосрочной перспективе приведёт к нескольким плохим последствиям, намного проще проверять лицензии в БИОС и просто грузить только подписанные ОС, а чтобы не ставили VPN просто обрубить кабели идущие в изолируемую страну, ну или гадить в сети изолируемой страны чтобы она сама их обрубила ради самозащиты.
torvn77    
★★★
Android / Chrome
Ответ на: комментарий от torvn77

Своя ОС в зависимости от того, насколько закручены гайки у новой платформы либо просто не запустится, либо не сможет использовать интернет-сервисы, так как не пройдёт аттестацию. Сейчас для подавляющего большинства людей компьютер бесполезен, если не может взаимодействовать с популярными сервисами.

А для документооборота хватит и старых компьютеров, в которых нет таких защит - можно даже не писать свою ОС. Если учесть все компьютеры, которые можно отремонтировать, то запаса того, что уже есть в стране, хватит надолго. Ну может ещё пару законов принять, чтобы старые машины не вывозили, не выкидывали и ремонтировали.

Лицензии проще проверять в ОС, а не в прошивке - легче обновлять, ниже цена ошибки, дешевле специалисты, доступны современные инструменты для разработки и защиты. Прошивку вообще лучше делать как можно более простой, тогда и поверхность атаки сократится.

kmeaw    
★★★
Linux / Chrome
Ответ на: комментарий от kmeaw

либо не сможет использовать интернет-сервисы.

Твои интернет сервисы до которых правителям изолируемой страны не будет ни какого дела, они будут использовать свои по своим стандартам, на оборот, это даже будет хорошо, им большой Китайский фаеролл не надо строить.

В принципе пункты твоего плана уже более менее пытались реализовать, только что толку если появляются хакерские форматы видео в которых hdcp не предусмотрена, а Linus T. написал свою ОС?

Ну а предложенный в конце полицейский контроль это вообще одни расходы, проще товоизировать компьютер и разрешать запуск ОС по белому списку.

torvn77    
★★★
Последнее исправление: torvn77 (всего исправлений: 4)

Android / Chrome