Подписанные двоичные файлы для цифровых подписей

http://en.wikipedia.org/wiki/Digital_signature#Using_digital_signatures_only_with_trusted_applications возможность «злонамеренного приложения, которое обманом заставляет пользователя подписать любой документ, отображая исходный текст пользователя на экране, но представляя собственные документы злоумышленника приложению для подписи».

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

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

Этот вопрос не относится к Windows. Я готов использовать любую операционную систему.


person Gili    schedule 19.08.2011    source источник


Ответы (2)


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

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

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

Да он может.

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

РЕДАКТИРОВАТЬ:

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

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

  1. сколько людей имеют доступ к этой операционной системе?
  2. о какой операционной системе вы говорите?
  3. какие задачи выполняют пользователи этой ОС?
  4. Эта ОС подключена к Интернету? Если да, то как организована ваша сетевая инфраструктура?

Могу ли я загрузить операционную систему и мое приложение с диска, доступного только для чтения?

Я не знаю об этом. Может, у тебя получится. Но если кто-то может использовать службу, работающую на вашем компьютере (например, серверное приложение с привилегиями root), то доступный только для чтения диск вас не спасет.

Что вы порекомендуете?

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

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

Что касается моих личных советов:

  1. Используйте операционную систему с открытым исходным кодом. В противном случае вы не сможете быть уверены в том, что на самом деле происходит внутри вашей машины.
  2. Попробуйте настроить ограничительный брандмауэр. Запретите доступ к сети для всех сервисов, кроме тех, которые вам действительно нужны.
  3. Если ваша система используется многими людьми (особенно если они ничего не знают о безопасности), попробуйте научить их некоторым принципам безопасности. Люди часто являются самой слабой частью, которую можно использовать (например, социальная инженерия).
  4. Устанавливайте только программное обеспечение с открытым исходным кодом или программное обеспечение, которому вы действительно доверяете. Держите вашу систему в актуальном состоянии.
person Heisenbug    schedule 19.08.2011
comment
Отлично. Итак, как мне убедиться, что операционная система не была взломана? Могу ли я загрузить операционную систему и мое приложение с диска, доступного только для чтения? Что вы порекомендуете? - person Gili; 20.08.2011
comment
@Gili: Я отредактировал свой ответ всего несколькими советами. Невозможно дать вам точный ответ. - person Heisenbug; 20.08.2011
comment
@Gili: Давайте попробуем уменьшить проблему, сосредоточившись на одном примере. ОС - это часть системы, которая отвечает за чтение / запись даже с вашего гипотетического жесткого диска, доступного только для чтения, на котором хранится ключ. Если ОС скомпрометирована, можете ли вы быть уверены, что ключ чтения хранится в вашем доступном только для чтения месте? Или, если злоумышленник скомпрометировал вашу систему и внедрил свой ключ в вашу оперативную память, не мог ли ключ, полученный взломанной ОС, быть поддельным? Скажите, если я ошибаюсь. - person Heisenbug; 20.08.2011
comment
если кто-то может использовать службу, работающую на вашем компьютере [...], то диск только для чтения вас не спасет. Если я приказываю пользователю перезагружать диск для каждого сеанса (и запрещать другим использовать компьютер во время его сеанса), то эксплойт возможен только с ведома пользователя (следовательно, гарантируется неотказ от авторства). - person Gili; 20.08.2011
comment
Похоже, что нет способа защитить записываемый носитель, если кто-то получит к нему физический доступ: twopointfouristan.wordpress.com/2011/04/17/ - проблема, которую я вижу с токенами, доступными только для чтения, заключается в том, как доказать, что кто-то не заменил весь токен? - person Gili; 20.08.2011
comment
Прежде всего попробуйте оценить уровень безопасности, который действительно необходим вашей системе. Проблема в том, что я продаю это государственным чиновникам, не имеющим технического образования. По их мнению, если существует какой-либо риск (а он всегда есть), они будут придерживаться ручки и бумаги (даже если мы оба знаем, что это менее безопасно). Я могу попытаться продать им идею, что мой подход безопасен (даже если он не идеален), но я боюсь, что случится, если кто-нибудь однажды его взломает. Это могло разрушить жизнь человека (они могли быть осуждены в суде за то, чего на самом деле не делали). - person Gili; 20.08.2011
comment
@Gili: на самом деле я говорю с вами только о пессимистических и удаленных возможностях, поэтому жесткий диск только для чтения может быть хорошим выбором. Но просто чтобы продолжить обсуждение: насколько я понимаю, ваш компьютер подключен к сети. Тогда предположим, что в вашем сегменте локальной сети есть зараженная машина. Каждый раз, когда ваша целевая машина подключается к сети, одна из ее сетевых служб используется для ввода поддельного ключа. Это тоже невозможно? - person Heisenbug; 20.08.2011
comment
@Gili разрешил нам продолжить обсуждение в чате - person Heisenbug; 20.08.2011

Неотрекаемость - очень дискуссионная тема. В ЕС существует Директива (1999/93 / EC), которая предусматривает что-то вроде «То, что вы видите, то и подписываете» для таких подписей о неразглашении авторских прав. Как вы уже сказали, сложная часть состоит в том, как мы можем дать эту гарантию?

Если ваша ОС скомпрометирована, то есть злоумышленник может испортить вашу машину на уровне ОС, тогда одно защищенное устройство подписи (например, смарт-карта) не сможет вас спасти. Хотя устройство защищено, злоумышленник может отобразить на экране что-то, что сильно отличается от того, что вы в конечном итоге подписываете.

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

Таким образом, единственный действительно безопасный способ обеспечить соблюдение этого принципа WYSIWYS - это безопасное аппаратное устройство, которое выполняет и подписание и отображение данных вне канала, которое отключено от любопытные взгляды вашей зараженной ОС. В идеале он также позаботится о вводе ПИН-кода (пин-пад или иного), потому что ввод ПИН-кода на машине с установленным регистратором ключей - небезопасен. Только тогда пользователи могут быть уверены, что то, что они видят на дисплее, было именно тем, что было передано на устройство, и тогда они смогут решить, применять ли свою подпись неотказуемости или нет.

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

person emboss    schedule 20.08.2011