В FlylinkDC++ r500 была реализована возможность автоматического обновления программы и компонентов. Эта возможность позволяет самой программе автоматически получать обновления и устанавливать их, практически с минимальными действиями со стороны пользователя.
Данный процесс автоматизации вносит определенный риск (возможность подмены оригинальных обновлений, адресов серверов обновлений и т.д.). Часть этой проблемы была решена за счет подписи самого файла обновления 1024-битным RSA ключом. Публичная часть ключа находится в самом FlylinkDC++ r500, а приватная часть является собственностью разработчиков проекта и недоступна для общего пользования по понятиям безопасности.
Следующим шагом защиты должно стать введение цифровой подписи самого приложения. На данном этапе при обновлении FlyUpdate’ом мы видим следующую картину:
Publisher в нашем случае – это производитель программы, подлинность которого и самого приложения устанавливается общеизвестным сертификационным центром. Для этого необходимо получить сертификат, но у нашей команды отсутствует опыт общения с сертификационными центрами, начиная от выбора (а исходя из того, что проект у нас не коммерческий и выбор должен ограничиваться нашими скромными финансовыми возможностями (хотя мы не против спонсорства со стороны пользователей :) ), и заканчивая перечнем необходимой документации, которую необходимо предоставить сертификационному центу для получения сертификата.
Если Вы сталкивались с этим и можете поделится информацией – мы будем очень признательны.
c уважением, команда разработчиков FlylinkDC++
29 комментариев:
ОТЛИЧНО!!!
проверьте свою версию GPL. последние версии GPL запрещают распространять подписанную программу, если секретный ключ не предоставляется
а причём здесь UAC ? на ХР его вообще нету,а на вин 7 UAC можно с лёгкостью отключить вообще..
ну а то,что обновления развиваются в правильном русле- это похвально! :) молодцы!
куда то вас понесло совсем не туда... :( ИМХО
шаг в сторону безопасности, молодцы ИМХО, клиент должен быть функциональным и безопасным и стабильным
проверьте свою версию GPL. последние версии GPL запрещают распространять подписанную программу, если секретный ключ не предоставляется
FlylinkDC++ лицензируется по GPLv2 там о подписи бинарника ни слова. В целом лицензия обязывает нас предоставлять программу в виде, удобном для внесения изменений (читать как программный код на C++), что мы и делаем (код выложен на code.google.com) и выкладывается с каждой новой версией программы архивом исходников. Безусловно подписывание самой программы ключом наложит некоторое ограничение на её изменение resourse hacker и прочими подобными программами, но я надеюсь это подстигнёт многих интузиастов всётаки поставитьVS2010 и начать изучать программирование, а не тупо пользоваться сторонними прикладными тулсами :)
P.S. Набор програмистов, знающих C++ и готовых помочь проекту не словом а делом всё ещё ведётся
Безусловно подписывание самой программы ключом наложит некоторое ограничение на её изменение resourse hacker и прочими подобными программами
На самом деле никаких ограничений на распространение и взламывание программы мы не накладываем. Фактически мы только хотим установить подлинность того, что программа создана FlylinkDC++ Team и все. Этот же код без ключей и прочего будет отлично компилироваться и работать. А желающие делать свои автоматические обновления всегда могут создать свои ключи и с ними распространять программу (за исключением того, что эти ветки с веткой от FlylinkDC++ Team не пересекутся - т.е. программа созданная нами не будет устанавливать не наши обновления).
А подпись исполняемого файла это вообще к исходному коду не относится.
В общем говорим об одном и том-же разными словами
А какой смысл делать обновление безопасным?
Кстати если есть открытый ключ, можно получить и закрытый, они вроде мультипликативно обратные.
Чтобы гарантировать что скачивается именно официальное обновление.
Нельзя, читайте про асинхронное шифрование.
ecА зачем гарантировать официальность обновления? Есть такие люди, которые засунут во флай, что-то "злое" и свое? Взламывают такую защиту подменой открытого ключа или заменой условного перехода после проверки.
Смысл был бы канеш, только не с opensource. Насчет получения закрытого ключа вы товарищ не правы, он получается, но это займет довольно долгое время. Хотя я бы будучи "плохим человеком" постарался бы, для создания бот-нета.
Много, ага.
С таким же успехом можно говорить, что любой пароль можно подобрать.
Есть такие люди, которые засунут во флай, что-то "злое" и свое? Взламывают такую защиту подменой открытого ключа или заменой условного перехода после проверки.
"Лучше перебдеть, чем недобдеть" (с)
В пределах одного компа взломать не проблема, а вот поставить всем пользователям свое ПО вместо флая, пользуясь автообновлением - это будет очень плохо. Но инет большой и придурков-школьников больше, чем хотелось бы - поэтому нужно защищаться.
НАРОД - действительно никто не получал сертификаты на подпись исполняемых файлов?
Если есть опыт - отпишитесь в e-mail - мы будем очень признательны!
ниче не знаю. если поставить смайл и через пробел url то смайл не отобразится. вместо него будет текстовое сочетание символов
ниче не знаю. если поставить смайл и через пробел url то смайл не отобразится. вместо него будет текстовое сочетание символов
RSA ну никак не поможет от школьников =) Кстати насчет взлома любого пароля, эт тоже реально. Вопрос в другом, во времени
Может быть насчет подписи поможет http://ssl.ru/ Там даже от разных контор есть сертификаты.
Помоему, то что нужно это
http://ssl.ru/ru/certificates/codesigning/ ,а именно Thawte Code Signing.
Сделайте плиз тулзу, чтоб можно было свои темы оформления без геморроя собирать. Или напишите подробную инструкцию как без неё собрать свою тему. А то вроде возможность менять внешний вид есть, но лишний раз браться не захочешь. А уж обычные юзеры вобще не знают с какого боку подойти.
а зачем это надо обычным юзерам, хочешь делать свои темы, разберись да делай.
@ssa - я не понял, в чем реально у вас сложности (ну, кроме денег) в code-signing. Куда обратиться? Так самые дешевые сертификаты для кода у Comodo http://www.instantssl.com/code-signing/
Прочие детали - спрашивайте лично, вроденесовсем памятьпотерял
хочешь делать свои темы, разберись да делай.
Еще раз. Для чего геморрой? Если разработчики не хотят чтоб кто-то делал свои темы не через Ж. Пусть просто здесь отпишутся, что не будут этого делать и всё. Никто ведь не настаивает.
По поводу создания тем, будет либо тулса, либо мануал, по которому обладатель прямых рук сделаем всё сам без всяких проблем.
NightOrion
По поводу создания тем, будет либо тулса, либо мануал, по которому обладатель прямых рук сделаем всё сам без всяких проблем.
Спасибо на добром слове.
- я не понял, в чем реально у вас сложности (ну, кроме денег) в code-signing. Куда обратиться
https://author.tucows.com
-75$ за год,
https://secure.ksoftware.net/code_signing.html
-99$ за год
http://www.instantssl.com/code-signing/ - 180 евро в год
Как бы все одинаковые от комода - но непонятно, чем отличаются и почему дешевле (не хотелось бы попасть на деньги)
Во вторых хотелось бы знать, какие документы нужны.
SSA, блин возьмите на http://ssl.ru/ru/certificates/codesigning/ и не парьтесь
Давно пора получить подпись.....
Отправить комментарий