Я разрабатываю собственное решение VPN, которое должно поддерживать SSTP для клиентов Windows. Для этого спецификации SSTP (и Windows) требуют, чтобы мой сервер аутентифицировал себя с помощью сертификата во время установления связи SSL. Затем Windows использует свой локальный набор доверенных сертификатов и решает, продолжить или разорвать соединение.
Я бы хотел избежать использования официального сертификата от Verisign по двум причинам: во-первых, это стоит денег, которых у проекта в настоящее время нет, и во-вторых (что более важно), как описано Вот, Windows потребуется подключение к Интернету, чтобы проверить, был ли этот сертификат отозван, прежде чем он примет соединение, если только я не заставлю пользователей копаться в своем реестре, чтобы отключить это, чего я бы предпочел избежать. Проблема в том, что VPN будет единственным способом для клиентского компьютера подключиться к сети, поэтому возникнет проблема курицы и яйца: вам нужен Интернет, чтобы выйти в Интернет ...
Я опубликовал вопрос по информационной безопасности SE чтобы спросить о последствиях для безопасности, связанных с требованием пользователей устанавливать сертификаты, и похоже, что мне нужно быть очень осторожным с точным типом сертификата, который я создаю, поскольку, к сожалению, Windows требует, чтобы этот сертификат был установлен в доверенные корневые центры сертификации на Локальная машина, т.е. самое рискованное место из всех.
Из ответа, который я получил на ISSE, похоже, мне нужно создать конечный пользователь сертификат, который не позволяет использование подписи.
Как мне создать такой сертификат, который может использоваться только для аутентификации моего одного сервера, но не может быть использован для подписи других сертификатов для атак TLS «человек посередине» и т. Д., Даже если он установлен в доверенные корневые центры сертификации.
В качестве бонуса, есть ли способ для моих пользователей проверить в процессе установки, что этот сертификат действительно безопасен и не открывает систему для атаки, если кто-то получит закрытый ключ сертификата?