Хранение сертификата безопасности DDS - PullRequest
0 голосов
/ 19 ноября 2018

Я в настоящее время разрабатываю с использованием DDS с включенными плагинами безопасности.Когда приложение запускается, оно ищет путь к сертификату CA, локальному сертификату и закрытому ключу и загружает их в память для будущего использования.

Сертификаты, содержащие открытые ключи, не являются конфиденциальными, так как они обычно отправляются в незашифрованном виде.и проверил с помощью сертификата CA.Таким образом, злоумышленнику не нужно получать к нему доступ.Это правильно?

Однако, как я могу защитить закрытый ключ в файловой системе Ubuntu?Единственный способ, которым я вижу, - это поставить ключ только для чтения для конкретного пользователя, который будет запускать приложение.Но из-за повышения привилегий это кажется небезопасным.

Есть ли безопасный способ защиты личных ключей в файловой системе?

О документах permissions_ca и Governance / Permissions, если они обновляются злоумышленником(который создаст свой собственный центр сертификации и подпишет новые документы управления / разрешения), тогда может ли приложение иметь больше разрешений?Это означает, что эти документы должны быть защищены в файловой системе?

1 Ответ

0 голосов
/ 20 ноября 2018

Большинство ваших вопросов не относятся к безопасности DDS, но касаются общих механизмов Инфраструктура открытых ключей (PKI) , используемых DDS Security.

Сертификаты, содержащие открытыеключи не являются конфиденциальными, так как они обычно отправляются в открытом виде и проверяются с использованием сертификата CA.Таким образом, злоумышленнику не нужно получать к нему доступ.Это правильно?

Да, это правильно.Встроенные плагины, определенные в спецификации безопасности DDS, используют PKI. сертификат открытого ключа обычно не содержит никакой конфиденциальной информации.

Однако как защитить личный ключ в файловой системе Ubuntu?

Использование «традиционных» разрешений Unix для разрешения доступа к нему только владельцу файла является обычной практикой.Например, SSH в Ubuntu по умолчанию хранит закрытые ключи таким образом, в ~/.ssh.Кроме того, спецификация допускает шифрование закрытого ключа с использованием ключевой фразы.Это тоже обычная практика.

Достаточно ли это подходит для вашего сценария, зависит от требований вашей системы.Возможна интеграция с существующими, более надежными решениями для хранения ключей, такими как хранилища сертификатов Windows или цепочки ключей macOS, путем реализации настраиваемых подключаемых модулей безопасности.Подключаемая архитектура, как определено в спецификации, была предназначена для этого, но фактическая доступность таких решений зависит от используемого вами продукта DDS.

О документах permissions_ca и Governance / Permissions,если они обновляются злоумышленником (который создаст свой собственный центр сертификации и подпишет новые документы управления / разрешения), то может ли приложение иметь больше разрешений?

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

Все участники защищенного домена DDS должны доверять одному и тому же органу подписи, чтобы этот механизм работал.Чтобы злоумышленник успешно изменил документ управления или разрешения, он должен иметь доступ к закрытым ключам подписывающего органа.Опять же, это распространенный метод, используемый в инфраструктурах открытых ключей, аналогичный подписанию сертификата открытого ключа.

Несмотря на защиту от несанкционированного доступа, все же имеет смысл защищать эти файлы.Фактическим результатом подделки или удаления этих файлов будет отказ в обслуживании, что также вредно.

...