Inferno OS Wiki
Advertisement

Концепция безопасности в Inferno[]

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

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

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

Установка сервера аутентификации[]

Серверы аутентификации требуются для выполнения взаимной проверки между пользователями. Ключ подписи - это пара приватный/публичный ключей для сервера аутентификации. Они используются сервером для генерирования сертификатов, подтврждающих подлинность личности пользователей и разрешающие этим пользователям устанавливать безопасное соединение с другими системами Inferno в сети.

Figure 10 1

На Рисунке 10.1 показан пример простой сети Inferno, содержащей единственную машину, играющую роли: отдельного хоста, файлового сервера и центра сертификации. Файл с конфигурацией сервера соединений (cs) для такой системы будет содержатьвсе записи, ссылающиеся на локальную машину. Такая машина сама должна поддерживать свой собственный файл /keydb/passwd с информацией о пользовательских аккаунтах, и должна быть ответственна за подтверждение собственной идентичности. Такой вариант приемлем для внутренних сетей. В действительности же, в глобальных сетях существует большое количество потенциально опасных хостов.

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

Центр сертификации поддерживает базу данных известных ему пользователей сети. Она содержит пользовательский идентификатор (user ID) (1), строку с именем пользователя, такую как 'vasya' (2), крипто-хэш пароля (3), дату окончания срока действия пароля (4) и другую дополнительную информацию о пользователе (ФИО, номер телефона, ник и т.д.). Центр сертификации хранит эту информацию в файле /keydb/password, доступном для чтения и записи только администраторам. В дополнении к пользовательским паролям, центр сертификации поддерживает пару приватный/публичный ключей в файле /keydb/signerkey. Они учавствуют генерации сертификатов для других машин в сети.

Пара приватный/публичный ключ создаются командой createsignerkey(8). Два хоста, желающих удостоверится в подлинности друг-друга обмениваются сертификатами, которые можно стравнить с "верительной грамотой", выданной третьим лицом, которому оба хоста доверяют, эта третья сторона по сути является Центром сертификации (CA).

Advertisement