Назад | Перейти на главную страницу

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

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

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

Первый вопрос, который необходимо прояснить, - это различие между Windows и 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 и сертификатами. Например, сборки Firefox, Thunderbird и Chrome для Windows по-прежнему используют библиотеку NSS, которую они включают в свои программные пакеты, для реализации SSL / TLS и управления сертификатами. Многие программы, изначально написанные для систем, отличных от Windows, используют OpenSSL или аналогичные реализации даже в Windows. Другими словами, если вы импортируете какой-либо сертификат в магазин Windows, он не будет «видим» для этих программных пакетов.

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

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

Кстати, Android делает иметь собственное хранилище сертификатов (защищенное паролем ПИН-кода уровня оболочки).

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

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

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