Меры безопасности «хранилища сертификатов» Linux

Я знаю, что Windows использует своего рода главный ключ для шифрования закрытых ключей, которые хранятся в хранилище сертификатов ОС. Более того, я обнаружил, что сертификаты и ключи в Linux не всегда хранятся в одном и том же месте (как описано в этой публикации ). Существуют ли какие-либо равные или дополнительные меры безопасности в системах Linux для различных типов каталогов? Или система полагается на индивидуальную парольную фразу, установленную для каждого закрытого ключа?

0
задан 13 April 2017 в 15:14
2 ответа

Не похоже, что существует иной уровень безопасности, кроме как установка разрешения 700 с владельцем root и добавление пользовательской парольной фразы. Однако вы можете сделать шаг вперед и использовать selinux, чтобы убедиться, что только владелец (и даже не root) может получить доступ к определенным личным ключам. Хотя это не очень полезно, если кто-то имеет физический доступ к вашему компьютеру. Злоумышленник может изменить параметры загрузки (с помощью selinux=0), чтобы получить доступ к нужной папке.

Теперь, ваша точка зрения о дополнительном ощущении безопасности в Windows не кажется вполне корректной, потому что установка пользовательской ключевой фразы означает шифрование частного ключа в файле ключа. Но если то, что Вы говорите, верно, то, в отличие от Windows, у Вас нет Master пароля в области Linux. Теперь я могу представить, что одним из способов реализации такого понятия было бы использование encfs. Опять же это не сработает, если вам понадобится доступ к закрытым ключам, когда не доступны монтировки предохранителей (как при загрузке системы).

Edit: Исправьте часть selinux на основе комментария @Xyon

.
0
ответ дан 4 December 2019 в 12:25

Немного сложно подойти к вашему вопросу, потому что он сбивает с толку несколько вещей.

Первая проблема, которую необходимо прояснить, это различие "Windows vs Linux".

Как Вы, вероятно, знаете, Linux - это ядро операционной системы .. То есть это часть низкоуровневого программного обеспечения, которая работает с аппаратным обеспечением компьютера и раскрывает определенный прикладной программный интерфейс (API) - в виде так называемых "системных вызовов" - программам, которые запускают на ядре, а также некоторым условностям, таким как модель процесса и т.д. - прочитать об этом в других местах, собственно говоря. Суть в том, что Linux сам по себе ничего не "знает" о SSL/TLS, сертификатах - не только хранилищах сертификатов; эти вещи реализуются на уровнях выше, чем ядро.

Ядро Linux может быть использовано для реализации операционной системы, и их очень много: Debian, Red Hat, Android и т.д.

Операционная система (ОС) - это то, что реализует SSL/TLS, сертификаты и т.д.

Теперь и тогда за реализацию этих вещей отвечают определённые пакеты программного обеспечения. Иногда их много. Начнем с того, что я, например, знаю о нескольких пакетах, реализующих SSL/TLS и управление сертификатами. Например, OpenSSL, пожалуй, самый широко используемый. NSS Mozilla используется такими известными продуктами, как браузер FireFox, почтовый клиент Thunderbird и браузер Chrome. GNUTLS также широко используется, и есть PolarSSL, несколько недавних вил OpenSSL и многие другие реализации.

Чтобы еще больше усложнить ситуацию, различные ОС на базе Linux могут иметь одинаковые программные пакеты, построенные таким образом, что они используют разные библиотеки, реализующие SSL/TLS.

Windows, с другой стороны, является операционной системой (работающей на ядре Windows NT), и, как и Linux, ее ядро не реализует ни SSL/TLS, ни управление сертификатами само по себе. Но в отличие от операционных систем на базе Linux, Windows имеет свою "официальную" (созданную Microsoft как часть Windows) реализацию SSL/TLS, известную как "schannel" ("безопасный канал"), а также набор поддерживающих ядро библиотек и служб, реализующих упомянутое хранилище сертификатов на уровне ОС.

Теперь более сложная часть. ;-)

Не все программные пакеты, написанные для Windows, используют предоставленные ею средства для работы с SSL/TLS и сертификатами. Например, в сборках Windows Firefox, Thunderbird и Chrome для реализации SSL/TLS и управления сертификатами все еще используется библиотека NSS, входящая в состав их программных пакетов. Многие программы, изначально написанные для не-Windows систем, используют OpenSSL или подобные реализации даже на Windows. Другими словами, если вы импортируете какой-нибудь сертификат в хранилище Windows, он не будет "виден" этим программным пакетам.

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

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

Кстати, Android имеет свое собственное хранилище сертификатов (защищенное PIN-кодом на уровне оболочки)

.
3
ответ дан 4 December 2019 в 12:25

Теги

Похожие вопросы