[Цитировать]

    Adler
  • 1708
  • Стаж: 8 лет 5 месяцев
  • Сообщений: 1196
  • Репутация:65

    [+] [-]
  • Откуда: Луганск
SignKeyGen - генерация ключей (сертификатов) и подпись файлов--

Полноразмерные скриншоты


Для работы программы необходим .Net Framework версии не ниже 4.0

Изменения в версии 1.0.8: (04.06.2021)
  • Обновлен алгоритм подписи и список timestamp-серверов на актуальные.
  • Автоматически производится двойная подпись SHA1 и SHA256
  • Обновлен Adler SignKey CA сертификат.
СКАЧАТЬ! 1.0.8

История версий

Изменения в версии 1.0.7b+: (05.02.2017)
  • Добавлена возможность генерации дочернего сертификата на основе своего корневого.
    Если в папке с программой находится свой корневой сертификат RootCA.pfx (можно сгенерировать сразу его в программе → Self-signed + CA), то User сертификат будет генерировать на основе RootCA.pfx. Если на RootCA.pfx нет пароля - все произойдет автоматом. Если есть пароль - будет высвечиваться окошко для ввода пароля. Если отказаться от ввода пароля (нажав "Отмена") то в качестве корневого будет использоваться "Adler SignKey CA" встроенный в программу.
    Под надписью "Пароль" будет отображаться INT либо EXT в зависимости от того какой корневой сертификат будет использоваться для генерации дочернего сертификата

  • Добавлена возможность выбора алгоритма шифрования, длины ключа и срока действия генерируемого сертификата.
    По умолчанию установлены параметры применяемые в предыдущих версиях программы.
При генерации ключей размером более 2048 бит генерация происходит заметно дольше и может показаться, что программа зависла. Это не так и связано в большим объемом генерируемых данных.
"Терпение горько, но его плод сладок" © Жан-Жак Руссо.

Изменения в версии 1.0.6b++: (обновлено 07.11.2016)
  • Добавлена возможность подписания файлов .sys, .cat, .cab, .ocx, .msi, .mxp, .xpi.
Другие изменения в данной версии не производились.
Изменения в версии 1.0.6b:
  • Добавлено автооткрытие Sert.pfx из папки с программой для подписи приложения.
    Если в момент открытия вкладки "Подпись" в папке с программой находится файл Sert.pfx, то он автоматически открывается и им можно произвести подпись программы. Если сертификат запаролен, то необходимо ввести пароль.
  • Добавлена возможность выбора TimeStamp сервера из выпадающего списка. В случае недоступности или ошибки сервера будет выведено сообщение об ошибке.
    Ответ от сервера ожидается в течении 7 секунд.
  • Мелкие "косметические" изменения. (Нажатие Enter в поле с паролем на вкладках "Конвертер" и "Подпись" вызывает нажатие соседней кнопки. Нажатие кнопки Enter в текстовых полях на вкладке "Генератор" вызывает переключение фокуса на следующее поле ввода).

Изменения в версии 1.0.5b:
  • Добавлена функция подписи .exe и .dll файлов.

Изменения в версии 1.0.4b:
  • Добавлена дополнительная генерация .cer файла. Файл (.cer) сохраняется в той же папке с тем же именем, что и основной .pfx файл.
  • Добавлена возможность генерации корневого сертификата центра сертификации (CA).
  • Добавлен Drag-n-drop .pfx файлов на вкладку "Конвертер".
  • Добавлен режим "поверх всех окон" (чекбокс в левом нижнем углу).
  • Мелкие изменения...

Изменения в версии 1.0.3b:
  • Добавлена функция установки сертификата в хранилище при сохранении. ("Self-Signed", т.к. установка "User" не имеет смысла).
  • Добавлен конвертер сертификата из формата .pfx в .crt и .pem

Особенности программы:
  • Режим "User" - генерируется дочерний сертификат на основе сертификата "Adler SignKey CA" (зашит в программу, устанавливается в "доверенные корневые центры сертификации" локального пользователя, с кнопки в программе).
    Если в системе установлен сертификат "Adler SignKey CA", то все сертификаты сгенерированные в режиме "User" будут действительными. Без установленного "Adler SignKey CA" сгенерированный сертификат не будет доверенным даже в случае помещения его в хранилище вручную.
  • Режим "Self-Signed" - генерируется обычный самоподписанный сертификат (выданный самому себе). От других сертификатов не зависит. Становится действительным при добавлении в "доверенные корневые центры сертификации".
  • Генерируемые ключи имею атрибут "IdKPCodeSigning", т.е. пригодны только для подписания программ.
  • При каждом нажатии на "Сохранить" генерируется новый ключ.
  • Другие особенности программы смотрите в истории версий выше.

-Для использования в программе 7z SFX Constructor, сгенерированные файлы ключа необходимо поместить в папку \APPS\Sert\ переименовав в Sert.pfx
Возможно подписывать файлы драйверов по данному мануалу.
Полученный ключ так же возможно использовать для подписи программ вручную, к примеру с помощью консольного приложения FGSignCode от G.D.G. Software.

Пример:

FGSignCode.exe -file:<.exe файл либо .dll> -pfxpath:<файл ключа .pfx> -pfxpwd=<пароль ключа> -tsurl=http://tsa.startssl.com/timestamp

Программа основана на криптографической библиотеке BouncyCastle С#.


Последний раз редактировалось: Adler (2021-06-04 22:15), всего редактировалось 70 раз(а)

[Цитировать]

    cartmenezz
  • 1384
  • Стаж: 8 лет 6 месяцев
  • Сообщений: 526
  • Репутация:14

    [+] [-]
  • Откуда: Калининград
77800cartmenezz, ну так он и не должен подлинным считаться, если он самоподписанный.
это я понимаю, просто раньше после подписи самоподписанным сертификатом (созданным в вашей программе), отображалась другая информация (ошибка). Вот, нашел один из exe'шников, который подписывал 2 года назад:
.... вроде что там ошибка, что тут... но почему-то она изменилась.. вот и заинтересовался

[Цитировать]

    cartmenezz
  • 1384
  • Стаж: 8 лет 6 месяцев
  • Сообщений: 526
  • Репутация:14

    [+] [-]
  • Откуда: Калининград
KisPavVlad, и создали сертификат и подписали им сегодня? тогда ничего не понимаю...

[Цитировать]

    cartmenezz
  • 1384
  • Стаж: 8 лет 6 месяцев
  • Сообщений: 526
  • Репутация:14

    [+] [-]
  • Откуда: Калининград
KisPavVlad, попробую EZSignIt, благодарю. может конечно у меня с виндой что-то..
Upd:
Adler, Прошу прощения, проблема была не в сертификате, а в FGSignCode, я по старой памяти только им и пробовал подписать. Подпись через SignKeyGen нормально отрабатывает, как и через EZSignIt (еще раз спасибо KisPavVlad)

[Цитировать]

    khoighost
  • 26312
  • Стаж: 3 года 3 месяца
  • Сообщений: 1
  • Репутация:0

    [+] [-]
english version please! ag

[Цитировать]

    Adler
  • 1708
  • Стаж: 8 лет 5 месяцев
  • Сообщений: 1196
  • Репутация:65

    [+] [-]
  • Откуда: Луганск
По некоторым просьбам обновил программу - скачать
Изменения в шапке темы.

[Цитировать]

    MAHDI
  • 28150
  • Стаж: 2 года 9 месяцев
  • Сообщений: 5
  • Репутация:0

    [+] [-]
86138По некоторым просьбам обновил программу - скачать
Изменения в шапке темы.
Уважаемый, спасибо Вам огромное!
Всё работает прекрасно, но есть одно НО.
При подписи драйверов по мануалу https://usbtor.ru/viewtopic.php?p=31344#31344 всё проходит успешно, цифровая подпись добавляется, но на W1064bit не устанавливается, по коду ошибки 52 (причём ещё в апреле всё установилось и работало, возможно прилетело какое-то обновление, которое и порушило) суть в том, что теперь самоподписанные сертификаты (даже при добавлении в корневые доверенные и доверенные издатели) не принимаются Виндой и она говорит, что не смогла проверить их цифровую подпись, если подписывать сертификатом который генерируется в режиме User то драйвер не устанавливается с ошибкой, что не может добавить его в контейнер, скорее всего это связано с тем, что генерируемый сертификат в режиме User подходит для подписи программного кода и для подписи драйверов не подходит и хоть драйвер и подписан, но сертификат не тот.
Хотелось бы узнать не сталкивался кто-то с такой проблемой и есть ли решение, я предполагаю что теперь Винда стала искать издателя в списках доверенных издателей Мелкомягких и не находя его там (а в случае самоподписанных сертификатов и не найдёт) блокирует установку. Естественно если грузится с отключением цифровой проверки драйверов всё устанавливается и работает на ура, так что этот способ прошу не предлагать.
Заранее благодарен за любую помощь.

[Цитировать]

    Adler
  • 1708
  • Стаж: 8 лет 5 месяцев
  • Сообщений: 1196
  • Репутация:65

    [+] [-]
  • Откуда: Луганск
MAHDI, aa
Я сам этим никогда не пользовался и даже сам не проверял. На момент написания того мануала этим вопросом кто-то задавался либо тут, либо в чате. Я малость разобравшись, как это работает - написал тот мануал, работоспособность которого даже проверял не я. Так что тут в этом вопросе я вам ничего не подскажу.
Подпись драйверов, это и есть подпись кода. По крайней мере какого то отдельного "разрешения" (даже забыл как это называется) для сертификата касательно подписи кода нет (по крайней мере раньше не было). Если сами таковое найдете, я исправлю, но самому разбираться с этим мне лень да и неинтересно.
Может и обновления. Например, осенью выходило обновление для Windows 10, после которого проблемы с подписями драйверов возникли даже с некоторыми вполне официальными драйверами с "настоящими" подписями. Тут я вам тоже ничего не подскажу...
P.S. Не нужно дублировать сообщения.

[Цитировать]

    MAHDI
  • 28150
  • Стаж: 2 года 9 месяцев
  • Сообщений: 5
  • Репутация:0

    [+] [-]
86715MAHDI,
P.S. Не нужно дублировать сообщения.
Прошу прощения за дубль, подумал мало ли в той теме смогут помочь, если нарушает правила можно удалить.
Насчёт подписи, может быть кто-то сталкивался с таким, смутило, что драйвер при подписи в режиме User при установке выдаёт другую ошибку, нежели при установке с самоподписанным сертификатом, именно это и навело на мысль, что сертификаты всё таки разные, т.к. самоподписанный имеет статус сертификата на всё, а тот что в режиме User только на подпись кода, но раз подпись драйвера относится именно к подписи кода, то да, значит не в этом дело.
Может быть кто-то уже бился с такой бедой ... буду благодарен за любую помощь и идеи.

[Цитировать]

    Adler
  • 1708
  • Стаж: 8 лет 5 месяцев
  • Сообщений: 1196
  • Репутация:65

    [+] [-]
  • Откуда: Луганск
86717что сертификаты всё таки разные
Естественно разные. Самоподписанный это выданный сам себе, а User, это на основе другого сертификата. По умолчанию, на основе моего Adler SignKey CA зашитого в программу, либо можете сгенерировать свой RootCA.pfx (разверните историю версий и там в самом верху описано). Для валидности самоподписанного сертификату нужно непосредственно сам сертификат добавлять в хранилище, а в случае User, то в хранилище нужно добавлять тот, на основе которого он выдан (сертификат центра сертификации), тогда все сгенерированные на его основе будут валидными без непосредственного их добавления в хранилище.
86717 самоподписанный имеет статус сертификата на всё, а тот что в режиме User только на подпись кода
Вы что-то путаете - разрешения у них одинаковые.

P.S. Хотя, по видимому, все таки для подписания драйверов есть свои назначения -
В то же время, часть официальных драйверов подписано обычными - подписывание кода...

[Цитировать]

    MAHDI
  • 28150
  • Стаж: 2 года 9 месяцев
  • Сообщений: 5
  • Репутация:0

    [+] [-]
86737
86717что сертификаты всё таки разные
Естественно разные. Самоподписанный это выданный сам себе, а User, это на основе другого сертификата. По умолчанию, на основе моего Adler SignKey CA зашитого в программу, либо можете сгенерировать свой RootCA.pfx (разверните историю версий и там в самом верху описано). Для валидности самоподписанного сертификату нужно непосредственно сам сертификат добавлять в хранилище, а в случае User, то в хранилище нужно добавлять тот, на основе которого он выдан (сертификат центра сертификации), тогда все сгенерированные на его основе будут валидными без непосредственного их добавления в хранилище.
86717 самоподписанный имеет статус сертификата на всё, а тот что в режиме User только на подпись кода
Вы что-то путаете - разрешения у них одинаковые.

P.S. Хотя, по видимому, все таки для подписания драйверов есть свои назначения -
В то же время, часть официальных драйверов подписано обычными - подписывание кода...
Да конечно, это я всё понимаю, разницу в смысле, поэтому и думал, что решу проблему самоподписанного сертификата, подписанием при помощи выдачи сертификата через вшитый сертификат (режим User) и конечно добавил головной сертификат в доверенные, чтобы выданные сертификаты цепочки через него, тоже были валидны, но не принимает. А самоподписанный сертификат тоже вручную добавляю в доверенные корневые и в доверенные издатели, но ноль на массу.

[Цитировать]

    Adler
  • 1708
  • Стаж: 8 лет 5 месяцев
  • Сообщений: 1196
  • Репутация:65

    [+] [-]
  • Откуда: Луганск
Как вариант, можете попробовать генерировать сертификат с помощью MakeCert.

[Цитировать]

    MAHDI
  • 28150
  • Стаж: 2 года 9 месяцев
  • Сообщений: 5
  • Репутация:0

    [+] [-]
86760Как вариант, можете попробовать генерировать сертификат с помощью MakeCert.
Спасибо Большое! С его помощью я первый свой сертификат делал, но не мог подписать корректно из-за отсутствия актуального списка тайм серверов, а в процессе поиска их, как раз наткнулся на SignKeyGen с его помощью удалось без проблем подписать и драйвер заработал, но как уже писал выше проработал пару месяцев, а потом снова отвалился из-за отсутствия корректного сертификата.

[Цитировать]

    LonerD
  • 32617
  • Стаж: 11 месяцев 22 дня
  • Сообщений: 3
  • Репутация:0

    [+] [-]
  • Откуда: DPR
Если программа будет развиваться, то хотелось бы возможность создания сертификата со сроком более 10 лет (просто указать конечную дату). И если такое реализуемо - возможность указать дату выдачи сертификата без необходимости перевода системного времени.

[Цитировать]

    Adler
  • 1708
  • Стаж: 8 лет 5 месяцев
  • Сообщений: 1196
  • Репутация:65

    [+] [-]
  • Откуда: Луганск
Дальнейшее развитие программы не предполагается, но может быть когда-нибудь, что-нибудь переделаю...


Последний раз редактировалось: Adler (2023-05-05 19:56), всего редактировалось 1 раз

[Цитировать]

    JuraAD
  • 28398
  • Стаж: 2 года 8 месяцев
  • Сообщений: 70
  • Репутация:25

    [+] [-]
LonerD,

Создать сертификат - пример:

@echo off & setlocal enableextensions enabledelayedexpansion & pushd
set .cfg_cpu=64& if /i "%PROCESSOR_ARCHITECTURE%"=="x86" if not defined PROCESSOR_ARCHITEW6432 set .cfg_cpu=32
set path="%~dp0cert";"%~dp0cert\x%.cfg_cpu%";%path%
>nul 2>&1 rd /s /q ".\.makecert"
>nul 2>&1 mkdir ".\.makecert"
::start "makecert..."
makecert.exe^
-r^
-pe^
-a sha256^
-len 2048^
-n "CN=JuraAD"^
-b "01/01/1900"^
-e "02/02/2222"^
-sv .\.makecert\juraad-root.pvk^
.\.makecert\juraad-root.cer
pvk2pfx.exe^
-f^
-pvk .\.makecert\juraad-root.pvk^
-spc .\.makecert\juraad-root.cer^
-pfx .\.makecert\juraad-root.pfx
popd & endlocal & exit /b 0

Страница 9 из 9


Показать сообщения:    

Текущее время: 28-Мар 17:10

Часовой пояс: UTC + 3


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