Подписанные двоичные файлы для цифровых подписей - PullRequest
2 голосов
/ 20 августа 2011

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 20 августа 2011

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

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

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

Да, он может.

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

EDIT:

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

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

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

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

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

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

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

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

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

  1. Используйте операционную систему с открытым исходным кодом. В противном случае вы не можете быть уверены в том, что на самом деле происходит внутри вашей машины.
  2. Попробуйте настроить ограничительный брандмауэр. Запретить сетевой доступ ко всем услугам, кроме тех, которые вам действительно нужны.
  3. Если вашей системой пользуются многие люди (особенно если они ничего не знают о безопасности), попробуйте научить их некоторым принципам безопасности. Люди часто являются самой слабой частью для использования (например, социальная инженерия).
  4. Устанавливайте только программное обеспечение с открытым исходным кодом или программное обеспечение, которому вы действительно доверяете. Держите вашу систему обновленной.
0 голосов
/ 20 августа 2011

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

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

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

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

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

...