В настоящее время я работаю над развертыванием веб-сайта, который сотрудники могли бы использовать удаленно, и хотел бы убедиться, что он безопасен.
Я думал, можно ли настроить какую-то аутентификацию сертификата, при которой я сгенерирую сертификат и установлю его на свой ноутбук, чтобы они могли получить доступ к веб-сайту?
Я действительно не хочу, чтобы они сами генерировали сертификаты, поскольку это может легко пойти не так.
Насколько это легко / возможно и как мне это сделать?
То, что вы хотите сделать, называется двусторонняя ssl-аутентификация
Как это реализовать, зависит от вашего веб-сервера.
tinyca2 - красивый графический интерфейс для создания сертификатов. Он упакован как для дистрибутивов Debian, так и для Ubuntu Linux. Вы сможете генерировать ключи и сертификаты для сервера и клиентов. Их можно экспортировать в различные форматы. Я бы рекомендовал задокументировать процедуру установки вашего CA-сертификата, а также клиентского ключа и сертификата. Также следует рассмотреть установку или изменение пароля клиентского ключа вашими пользователями.
Во-вторых, я использую mod-rewrite для принудительного доступа к https: //.
Проверять, выписываться CAcert, «Центр сертификации, управляемый сообществом, который бесплатно выдает сертификаты широкой публике».
это Статья занимается созданием сертификатов для Microsoft Exchange, но процесс аналогичен для любого веб-сайта IIS. Надеюсь, это поможет!
Вау, если вы используете apache, вы можете использовать mod_rewrite для принудительного использования SSL, а в вашем httpd.conf вам также необходимо использовать директивы SSLVerifyClient require и SSLVerifyDepth 4 на вашем виртуальном хосте *: 443.
Для правила перезаписи вы можете использовать что-то вроде этого:
RewriteCond %{HTTPS} !^on$ [NC]
RewriteRule . https://%{HTTP_HOST}%{REQUEST_URI} [L]
Надеюсь это поможет.
Безопасность - это более серьезный вопрос, чем используемые механизмы аутентификации или авторизации.
Большинство специалистов по безопасности обычно используют несколько основных принципов:
Затем примените это к активам, в вашем случае, к веб-серверу, операционной системе и, возможно, к веб-приложению и базовой базе данных - хотя это действительно бизнес!
Что касается вышеупомянутой технологической инфраструктуры, я бы спросил, применили ли вы надлежащее усиление безопасности для каждого, например DISA STIG, NSA SRG, инструкции CIS или методы обеспечения безопасности поставщиков. После этого я изучал код веб-приложений и другие вещи.
Переходя к вашему конкретному вопросу о сертификатах - что такое цифровой сертификат? Это открытый ключ, встроенный в цифровой сертификат с некоторыми полями, обычно x509v3. Цифровой сертификат фактически представляет собой шифровальщик, который использует дешифратор (закрытый ключ) для аутентификации, подписи или выполнения какого-либо другого типа транзакции.
Сертификаты обычно не имеют конфиденциальности, закрытые ключи конфиденциальны и требуют защиты. Однако использование закрытых ключей в операционной системе может означать, что они раскрыты и скомпрометированы. Достаточно одного вредоносного ПО. Следовательно, в средах с более высоким уровнем безопасности, таких как компании и правительства, обычно используется аппаратное устройство для хранения закрытых ключей и обеспечения более безопасного процесса аутентификации.
Если вы не делаете этого для более безопасной среды, сертификаты программного обеспечения могут вам подойти.
В зависимости от операционной системы, которую вы используете, у вас может быть очень простой путь вперед с использованием схем автоматической регистрации на основе сертификатов, таких как SCEP или службы сертификатов Microsoft.
За реализацией Microsoft легко следить на http://msdn.microsoft.com/en-us/library/bb643324.aspx и вы можете найти другие конкурирующие решения для упрощения PKI автоматической регистрации.
Вы можете поделиться некоторыми своими потребностями с помощью приведенных выше ссылок с администраторами сети и попросить их начать тестирование.