Kuznetsov Alexey, 26 September 2005.
Здесь будет даны результаты изучения возможности переиспользования системы ЭЦП, использованной системой BOINC.
Место системы BOINC в реальном мире: An open-source software platform for computing using volunteered resources
Общие сведения
Система BOINC использует механизмы электронных подписей исполняемого кода, основанные на использовании библиотеки OpenSSL и
алгоритмов RSA.
Результаты исследования:
Библиотека RSA не попадает под условия лицензии LGPL и является коммерческим продуктом, одновременно алгоритм RSA является
интеллектуальной собственностью RSA DSI. Поэтому его использование в нашей системе невозможно.
Библиотека OpenSSL распространяется свободно. И использует алгоритм DSA.
Алгоритм DSA - не коммерческий алгоритм для создания цифровых подписей
(Американский стандарт). Его реализация имеется практически для всех
языков программирования: С, Java и даже Python...
Использование данного алгоритма очень целесообразно, в силу его некоммерческого статуса и широкой известности.
Кроме того, алгоритм обеспечивает достаточный уровень надежности и до сих пор не известны успешные атаки, приводившие к
компрометации данного алгоритма.
Зачастую имеются встроенные в ОС реализации DSA, в т.ч. начиная с Windows 2000 DSA является частью криптосистемы Windows.
Поиск надежных и проверенных реализаций имел следующие результаты:
JDK 1.22 SE & higher Имеет реализацию DSA
.Net FCL Имеет реализацию DSA
OpenSSL Имеет реализацию DSA (Lib & Dll only from BOINC)
PUTTY (SSH-2 использует DSA) Имеет реализацию DSA (open source)
После проведенных исследований была разработана система подписи данных и генерации пары ключей на Java с использованием DSA.
Данная утилита доступна здесь
В настоящее время начата работа по созданию совместимой системы на C++
с использованием исходного текста PUTTY, где также реализован алгоритм
DSA.