Бесплатный code signing для open source от certum
Запустив сегодня программу, описанную в
статье
, я увидел следующее предупреждение:
Бросается в глаза необычный префикс,
Open source developer
. Кроме того, несколько дней назад я уже видел точно такой же префикс, с другим именем. Напрашивается вывод, что, скорее всего, существует какая-то программа выдачи подобных сертификатов.
Несложный поиск показал следующее:
Как известно, пренебрегать безопасностью не стоит. (Если кто не в курсе: цифровая подпись файла защищает его от несанкционированных изменений. Сертификат удостоверяет, что автор подписанного файла — это вы, и никто другой.)
В современном мире практически невозможно встретить программу от крупного вендора без цифровой подписи. Все больше моих знакомых начинает обращать внимание на наличие ЦП у запускаемой или устанавливаемой программы, благодаря тому, что Windows выводит эту информацию (см. КДПВ).
На Хабре затрагивали тему подписывания кода несколько раз: общий обзор, советы по упрощению процедуры. Не так давно рассматривался вариант от StartSSL, тем не менее, требующий подтверждения личности class 2 (в терминах StartSSL), уже являющейся платной (в отличие от бесплатной class 1 для доменов).
Сумма в 60-500 долларов — не деньги для хоть сколько-нибудь крупной компании. Но как быть в случае с Open Source? Зачастую подобные проекты (если речь не идет об именах, которые у всех на слуху) не имеют достаточного финансирования либо разрабатываются исключительно на энтузиазме и других нематериальных ценностях.
Для таких случаев можно воспользоваться предложением от польской компании Certum:
Для этого необходимо зарегистрироваться (форма доступна также на русском языке) и отослать на email следующие документы:
Как видим, процедура достаточно простая и не занимает много времени (по заявлениям компании — до 24 часов).
Для сертификатов заявляется следующее (перевел только существенные пункты, полную версию см. на сайте):
- Упрощенная процедура идентификации личности
- Соответствие WebTrustSM/TM
- Корневой сертификат CERTUM входит в список доверенных во всех популярных браузерах и продуктах Microsoft
- Выдача в течение 24 часов после проверки
- Хэш SHA1 (на 04.11.2021). Скорее всего, в ближайшем будущем будет предлагаться SHA2.
- Подпись для расширений .docm, xlsm, .pptm, .xpi, .jar, .war, .ear, exe, .dll, .ocx, .cab, .msi.
- Бесплатные отзыв или перевыпуск
- Возможность хранения ключа на smart card
- Бесплатный time stamp
- Possible internal and external signatures creation
- Среди поддерживаемых продуктов: MS Office 2000 , ToolSign.sh и openSSL for UNIX/Linux, Firefox, Key Manager, Jarsigner and verifier из Java JDK 1.5 , SignTool, SignCode, Visual Studio Express
- Поддержка certificate revocation list (CRL) и Online Certificate Status Protocol (OCSP)
- Срок выдачи: 1 год
- Техподдержка 24h
- Рекомендуемая длина ключа 2048 – 4096 бит, минимальная: RSA/DSA — 2048 бит, EC — 571 бит (NIST K-571 и NIST B-571).
Похоже, что безопасность становится трендом, и появляется все больше некоммерческих предложений в разных сферах. Интересно, что нам предложат следующим?
UPD: сертификат перестал быть бесплатным, текущая стоимость — €14.00 / €17.22 (пока не ясно, на какой срок выдается сертификат)
Тем не менее, это все равно ниже, чем у ближайшего конкурента — StartSSL ($60)
Настройка openvpn сервер-клиент с нуля для новичков
Настройка OpenVPN с нуля сервер-клиент для новичков.
Данная статья о том как настроить OpenVPN сервер на Windows Server 2008R2 и сконфигурировать OpenVPN клиента. А также, как организовать с его помощью каналы между удалёнными офисами. Бывает, что необходимо построить связь между удалёнными компьютерами без лишних затрат на оборудование и ПО. В этом поможет такая бесплатная и известная программа, как OpenVPN – свободная реализация технологии виртуальной частной сети (VPN).
Программное обеспечение бесплатно можно скачать с официального сайт OpenVPN: https://openvpn.net/community-downloads/

Настройка OpenVPN Серверная часть:
В данной статье рассмотрена актуальная на данный момент версия OpenVPN 2.4.8-i602
Установка OpenVPN на сервере, настройка происходит на сервере Windows Server 2008R2:

Для установки сервера важно установить галочку “EasyRSA 2 CertificateManagerScripts”


Во время установки в систему устанавливается виртуальный сетевой адаптер TAP–WindowsAdapterV9 – ему и будет выдаваться ваш IP-адрес и маска вашей виртуальной сети.

ВАЖНО! Возможные проблемы с адаптер TAP–WindowsAdapterV9:
Бывает что сетевой адаптер автоматически не создался, его можно создать или удалить в ручную.

Либо если драйвер адаптера в устройствах установился не корректно

В таком случае надо отключить установку драйверов без цифровой подписи.Как это сделать:
Способ №1. Командная строка
Запустите командную строку с правами администратор, и в ней последовательно наберите следующие команды:
bcdedit.exe -set loadoptions DISABLE_INTEGRITY_CHECKS
bcdedit.exe -set TESTSIGNING ON
Если данные команды не помогли, и ошибка 52 продолжает наблюдаться, тогда вновь запустите командную строку, и там наберите:
bcdedit.exe /deletevalue loadoptions
bcdedit.exe -set TESTSIGNING OFF
ПерезагрузитеПК.
Способ №2. Отключите проверку цифровых подписей (для Windows 8, 10)
Этот способ позволит вам установить драйвера для проблемных устройств без проверки их подписи. Выполните следующее:
На главном экране нажмите на кнопку «Пуск», там кликните на кнопку «Выключение» (Power), зажмите клавишу «Shift», а затем кликните на «Перезагрузка» (клавишу «Shift» не отжимайте);
Выберите «Перезагрузка»
Не отжимайте указанную клавишу пока ПК не перезагрузится, и вы не увидите опции меню восстановления (Advanced Recovery Options). В нём выберите «Диагностика», далее «Дополнительные параметры», затем «Параметры загрузки», и здесь кликаем на «Перезагрузить». В открывшемся перечне опций необходимо выбрать опцию “Отключить обязательную проверку подписи драйверов”.
Перезагрузите ПК в данном режиме, и вы сможете легко установить ранее проблемный драйвер.
Способ №3. Временно отключите проверку цифровой подписи драйверов
Эффективным способом избавиться от ошибки 52 является выбор опции отключения проверки подписи драйверов при загрузке ОС. Для этого в начале загрузки ПК быстро жмите на F8, и после того, как появится меню дополнительных параметров загрузки, выберите опцию “Отключение обязательной проверки подписи драйверов”. Загрузите систему в данном режиме, и проблема с ошибкой 52 временно исчезнет..
Способ №4. Задействуйте административные шаблоны
Нажмите на Win R, там наберите gpedit.msc. Перейдите по пути «Конфигурация пользователя», затем «Административные шаблоны», далее «Система» — «Установка драйвера». Справа выбираем опцию «Цифровая подпись драйверов устройств».

Выберите указанную опцию
Дважды кликаем на ней, и в появившемся окне слева выбираем «Отключено». Нажимаем на «Применить», и перезагружаем ПК.
Способ №4. Использование утилиты “Driver Signature Enforcement Overrider”
1. Входим в Windows под «администратором»
2. Отключаем контроль учетных записей и перезагружаем ПК.
3. После перезагрузки открываем командную строку от администратора.
4. В окне командной строки выполняем следующую команду:bcdedit /set loadoptions DDISABLE_INTEGRITY_CHECKS , где DDISABLE — это не опечатка!
5. Запускаем утилиту DSEO (От имени Администратора). Запускать её можно из любой директории, любого диска
После запуска как обычно «принимаем лицензионное соглашение» — yes, а затем выбираем опцию «Enable Test Mode» (включить тестовый режим) и жмем «Next»:
Программа предупредит о том, что загружать «самоподписанные» драйверы можно только в «Test Mode», но чтобы он вступил в силу необходимо перезагрузиться снова:
Чтобы выйти из программы необходимо выбрать опцию «Exit» (выход) и нажать «Next».
Перезагружаемся.
Устанавливаем драйвера в обычном режиме проблемы не будет.
Преступаем к настройке OpenVPN сервеной части:
Запускаем командную строку от имени администратора, нажимаем пуск вводим «командная строка» правой кнопкой мыши «запустить от имени администратора»

ВАЖНО! Далее все команды будут вводиться поочерёдно без закрытия командной строки.
1. Переходим в папку с установленной программой OpenVPN, если стандартный путь не изменялся, то он должен быть («C:Program FilesOpenVPNeasy-rsa»)
Вводим команду в командную строку:
cd C:Program FilesOpenVPNeasy-rsa

2. Далее выполняем команду
init–config.bat – эта команда создает файлvars.bat.
По умолчанию после установки файл vars.bat.sample (образец, шаблон) уже есть в папке его можно сделать в ручную скопировав и убрав расширение «.sample», либо сразу командой “copyvars.bat.samplevars.bat”


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

Еще одна важная настройка которую необходимо проверить, в новых версиях идет по умолчанию.
В каталоге “C:Programm FilesOpenVPNeasy-rsa”, есть конфигурационный файл “openssl-1.0.0.cnf”, открываем его с помощью notepad и изменяем настройку, отвечающую за срок жизни сертификатов, по умолчанию 365 дней, продлим срок жизни до 3650 дней.

3. Далее выполняем команду
Vars – команда заносит переменные из отредактированного файла (vars.bat) в память
И запускаем скрипт перед созданием ключей
Clean–all– очищаем каталог “C:Program FilesOpenVPNeasy-rsakeys” c последующим созданием файла“index.txt” (база клиентов, она же database) и “serial” (ключ))

В итоге окон должно иметь такой вид:

Далее переходим к генерации ключей:
dh1024.pem — ключ Диффи Хельмана позволяющий двум и более сторонам получить общий секретный ключ
ca.crt — Собственный доверенный сертификат (Certificate Authority — далее CA) для подписи клиентских сертификатов и для их проверки при авторизации клиента.
servervpn.crt, servervpn.cst,servervpn.key — сертификат сервера и ключ сервера
clientvpn.crt, clientvpn.cst,clientvpn.key – сертификаты и ключи клиента
ta.key — дополнительный ключ для tls-аутентификации (повышение безопасности соединения), сервер и каждый клиент должны иметь копию этого ключа
dh1024.pem – ключ Диффи Хельмана
Выполняем команду: build-dh
ВАЖНО!!! Если при выполнении команды у вас вышла ошибка:

То необходимо выполнить следующие действия для решение проблемы:



После того как добавили переменную PATH, командную строку надо перезапустить и выполнить все предыдущие команды повторно по порядку:
cd C:Program FilesOpenVPNeasy-rsa
init-config.bat (copy vars.bat.sample vars.bat)
Vars
Clean-all
И повторно команду build-dh команда должна выполниться без ошибок

В результате будет создан файл “dh2048.pem” в папке Keys

ca.crt — Собственный доверенный сертификат
Выполняем команду: build-ca
после этого будут заданы вопросы по редактированию ранее заданных данных в файле (vars.bat)
Можно их пропустить нажав “Enter”, если вы указали их ранее, либо заполнить щас, после чего в папке будет создан сертификат:

Формированиесерверныхключей (servervpn.crt, servervpn.cst, servervpn.key):
выполняемкоманду: build-key-server ServerVPN
ServerVPN – имя нашего сервер (любое наименование может быть не имя компьютера)
Так же будет список вопросов при создании сертификата их можно пропустить “Enter” либо указать данные.
В конце будут заданы 2 вопроса, на них надо ответить «Да»:
1. Sign the sertificate? [y/n] (Подписатьсертификат?)
2. 1 out of 1 certificate requests certificated, commit? (1 из 1 запроса сертификата сертифицирован, зафиксировать?)
Формирование клиентских ключей (clientvpn.crt, clientvpn.cst,clientvpn.key)
выполняемкоманду: build-keyClientVPN
ClientVPN – имя нашего клиента (может быть задано любое для удобства идентификации клиентов)
Важно при создании ключа указать имя клиента в поле «CommonName»

В конце будут заданы 2 вопроса, на них надо ответить «Да»:

ВАЖНО! Для каждого клиента создается новый сертификат только с другим наименованием.
ta.key — дополнительный ключ для tls-аутентификации.
выполняемкоманду: openvpn –genkey –secret keys/ta.key
будет создан файл ta.key

На этом создание ключей закончено.
Настройка и конфигурирование сервера
Переходим в папку с установленной программ OpenVpN (C:Program FilesOpenVPN) в папку “config” и в ней создаем текстовый документ сохраняем его и называем и расширением «Server.ovpn»
Содержаниеиописаниеконфигурационногофайласервера:
# – символ комментария, поэтому содержимое можно скопировать с комментарием чтобы не забыть описание настроек
dev–node “ConnectServerVPN” # Имя сетевого адаптера нашего VPN сервере параметр необязательный
modeserver # Режим работы сервера
port 12345 # Порт нашего VPN сервера (на него в случае необходимости надо будет делать проброс порта на роутере)
prototcp4-server # Протокол передачи данных
dev tun# режим тунеллирования
tls–server # криптографический протокол передачи данных
tls–auth “C:\ProgramFiles\OpenVPN\easy–rsa\keys\ta.key” 0 # путь к ключу ta.key (важно указать в конце строки для сервера 0 для клиента 1), важно помнить что путь указывается через \ (2 слэша)
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450 # размер пакета
# пути к сертификатам
ca “C:\Program Files\OpenVPN\easy-rsa\keys\ca.crt”
cert “C:\Program Files\OpenVPN\easy-rsa\keys\ServerVPN.crt”
key “C:\Program Files\OpenVPN\easy-rsa\keys\ServerVPN.key”
dh “C:\Program Files\OpenVPN\easy-rsa\keys\dh2048.pem”
server 10.10.10.0 255.255.255.0 # адрес сервера, тот диапазон адресов который будет выделен для VPN сети (может быть задан другой)
client–to–client # Видимость клиентам друг друга
keepalive 10 120 # время жизни не активной сессии
cipherAES-128-CBC # выбор криптографисекого шифра
comp–lzo # настройка сжатия данных в туннеле
# При кратковременном разрыве соединения данные ключей не будут перечитаны
persist-key
persist-tun
client-config-dir “C:\Program Files\OpenVPN\config” # пустькконфигурационномуфайлуклиентанасервере VPN
verb 3 # уровоеньрежимаотладки
route–delay 5 # время создание и применения маршрута в секундах
route–methodexe # метод внесения данных о маршрутах
push “route 192.168.1.0 255.255.255.0”
#route 192.168.1.0 255.255.255.0

Пробуем запустит сервер, запускаем ярлык на рабочем столе, в трее на значке OpenVPN правой кнопкой «Подключиться»

Если все хорошо значок станет зеленый, если возникли ошибки при запуске то надо смотреть лог файл и причину ошибки,
Лог файл находится в папке пользователя (C:UsersПользовательOpenVPNlog)

Содержание и описание конфигурационного файла клиента:
Переходим в папку с установленной программ OpenVpN (C:Program FilesOpenVPN) в папку “config” и в ней создаем текстовый документ сохраняем его и называем без расширения «ClientVPN» – ВАЖНО назвать также как как клиента
ifconfig-push 10.10.10.9 10.10.10.10 # IP клиента который будет ему присвоен
iroute 192.168.1.0 255.255.255.0 # Сообщаем серверу что за клиентом есть своя сеть.
# disable # (возможность отключить текущего клиента не затронув работу других участников сети)
ВАЖНО! При задании настроек ifconfig-push:
Выбранные пары IP-адресов, во-первых, должны быть уникальными, во-вторых, должны входить в состав последовательных подсетей, ограниченных маской /30 (255.255.255.252), и, в-третьих, должны находиться в пределах пула IP-адресов, выделенного для виртуальной частной сети (определяется параметром server файла конфигурации сервера OpenVPN). С учетом перечисленных условий для клиентов и сервера подойдут пары IP-адресов со следующими парами последних октетов:
[ 1, 2] [ 5, 6] [ 9, 10] [ 13, 14] [ 17, 18] [ 21, 22] [ 25, 26] [ 29, 30] [ 33, 34] [ 37, 38]
[ 41, 42] [ 45, 46] [ 49, 50] [ 53, 54] [ 57, 58] [ 61, 62] [ 65, 66] [ 69, 70] [ 73, 74] [ 77, 78]
[ 81, 82] [ 85, 86] [ 89, 90] [ 93, 94] [ 97, 98] [101,102] [105,106] [109,110] [113,114] [117,118]
[121,122] [125,126] [129,130] [133,134] [137,138] [141,142] [145,146] [149,150] [153,154] [157,158]
[161,162] [165,166] [169,170] [173,174] [177,178] [181,182] [185,186] [189,190] [193,194] [197,198]
[201,202] [205,206] [209,210] [213,214] [217,218] [221,222] [225,226] [229,230] [233,234] [237,238]
[241,242] [245,246] [249,250] [253,254]
Проще говоря к 1 и 2 прибавляем 4 разряда и получаем следующий адрес 5-6, 9-10 и т. д., задав диапазон 3-4 работать не будет.

Настройка OpenVPN Клиентской части:
На компьютере клиента также устанавливаем OpenVPN настройки можно оставить по умолчанию без изменений.
После установки с сервера с папки (C:Program FilesOpenVPNeasy-rsakeys) на компьютер клиента копируем следующие файлы:
ca.crt
ClientVPN.crt
ClientVPN.csr
ClientVPN.key
ta.key

И переносим их на клиентский компьютер в папку (C:Program FilesOpenVPNconfig):

В этой же папке создаем файл «Client.ovpn»
Конфигурационныйфайлклиента:
remote888.888.888.888 # Адрес компьютера сервера в которому будем подлючается
client
port 12345 # порт
prototcp4-client# протокол шифрование по которому работает OpenVPN
dev tun
tls-client
tls–auth “C:\ProgramFiles\OpenVPN\config\ta.key” 1 0 # путь к ключу ta.key (важно указать в конце строки для сервера 0 для клиента 1), важно помнить что путь указывается через \ (2 слэша)
remote-cert-tls server
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
# пути к сертификатам
ca “C:\Program Files\OpenVPN\config\ca.crt”
cert “C:\Program Files\OpenVPN\config\ClientVPN.crt”
key “C:\Program Files\OpenVPN\config\ClientVPN.key”
cipher AES-128-CBC # выборкриптографисекогошифра
comp-lzo
persist-key
persist-tun
verb 3
mute 20

Дальше вы сможете попасть в сеть на сервере либо же по RDP на адрес сервера в нашем случае это был (10.10.10.1)
Также необходимо настроить если есть проблем с доступом, брандмауэры, антивирусы, сетевые экраны и прочее.
Автоматический запуск OpenVPN канала под Windows

Настроить автоматическое поднятие OpenVPN канала на Windows. На примере Windows Server 2008 R2, аналогично делается и на любой другой версии Windows.
Достаточно настроить службу OpenVPN Service, которая по умолчанию отключена, на автозапуск. Для этого переходим в “Управление компьютером” -> “Службы” и находим там “OpenVPN Service”. В свойствах службы следует выставить “Тип запуска” -> “Автоматически”.
После перезагрузки или потере связи, служба OpenVPN будет автоматически переподключаться к VPN серверу.
Если вы не нашли службы OpenVPN Service в списке, то скорее всего вы просто не указали её при установке OpenVPN. Доустановите службу или просто переустановите OpenVPN с нужными опциями (теперь можно снять галочку и с установки OpenVPN GUI за ненадобностью).

Настройка клиентской части
Перед началом настройки клиента необходимо совершить несколько действий на серверной машине – сгенерировать ключи и сертификат для настройки подключения.
- Идем в каталог «easy-rsa», затем в папку «keys» и открываем файл index.txt.

- Открываем файл, удаляем все содержимое и сохраняем.

- Переходим обратно в «easy-rsa» и запускаем «Командную строку» (SHIFT ПКМ – Открыть окно команд).
- Далее запускаем vars.bat, а затем создаем клиентский сертификат.
build-key.bat vpn-client
Это общий сертификат для всех машин в сети. Для повышения безопасности можно сгенерировать для каждого компьютера свои файлы, но назвать их по-другому (не «vpn-client», а «vpn-client1» и так далее). В этом случае необходимо будет повторить все действия, начиная с очистки index.txt.
- Заключительное действие – перенос файлов vpn-client.crt, vpn-client.key, ca.crt и dh2048.pem клиенту. Сделать это можно любым удобным способом, например, записать на флешку или передать по сети.

Работы, которые необходимо выполнить на клиентской машине:
- Устанавливаем OpenVPN обычным способом.
- Открываем каталог с установленной программой и переходим в папку «config». Сюда необходимо вставить наши файлы сертификатов и ключей.

- В этой же папке создаем текстовый файл и переименовываем его в config.ovpn.

- Открываем в редакторе и прописываем следующий код:
client
resolv-retry infinite
nobind
remote 192.168.0.15 443
proto udp
dev tun
comp-lzo
ca ca.crt
cert vpn-client.crt
key vpn-client.key
dh dh2048.pem
float
cipher DES-CBC
keepalive 10 120
persist-key
persist-tun
verb 0В строке «remote» можно прописать внешний IP-адрес серверной машины – так мы получим доступ в интернет. Если оставить все как есть, то будет возможно только соединение с сервером по зашифрованному каналу.
- Запускаем OpenVPN GUI от имени администратора с помощью ярлыка на рабочем столе, затем в трее находим соответствующую иконку, жмем ПКМ и выбираем первый пункт с названием «Подключиться».

На этом настройка сервера и клиента OpenVPN завершена.
