АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Построение инфраструктуры открытых ключей на основе openssl

Читайте также:
  1. VI. Педагогические технологии на основе эффективности управления и организации учебного процесса
  2. VII. Педагогические технологии на основе дидактического усовершенствования и реконструирования материала
  3. А) Существительные с неподвижным ударением на основе.
  4. А. Однофазное прикосновение в сетях с заземленной нейтралью
  5. Алгоритм открытого распределения ключей Диффи - Хеллмана.
  6. Алгоритм создания открытого и секретного ключей
  7. Алгоритм цифровой подписи на основе эллиптических кривых ECDSA
  8. Анализ платежеспособности предприятия на основе показателей ликвидности баланса
  9. Бытие в соприкосновении
  10. В основе деятельности нервной системы лежит рефлекс.
  11. В основе обучения чтению – не буква, а звук.
  12. В основе рефлексивного управления.

Инфраструктура открытого ключа (PKI) является системой цифровых сертификатов, центров сертификации (ЦС), которая производит проверку и подтверждение подлинности каждой из сторон, участвующих в электронной операции, с помощью криптографии открытых ключей.

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

Центр Сертификации (Certification Authority, CA) является пакетом программного обеспечения, принимающим и обрабатывающим запросы на выдачу сертификатов, издающим сертификаты и управляющим выданными сертификатами.

Корневой сертификат – сертификат принадлежащий Центру Сертификации, с помощью которого проверяется достоверность других выданных центром сертификатов.

Список отозванных сертификатов – список скомпрометированных или недействительных по какой либо другой причине сертификатов. Отличительное имя (Distinguished Name, DN) – данные о владельце сертификата. Включают CN (Common Name), OU (Organization Unit), O (Organization), L (Locality), ST (State or province), C (Country name). Электронная цифровая подпись (ЭЦП) – реквизит электронного документа, предназначенный для удостоверения источника данных и защиты данного электронного документа от подделки.

Схема электронной подписи обычно включает в себя:

· алгоритм генерации ключей пользователя;

· функцию вычисления подписи;

· функцию проверки подписи.

Функция вычисления подписи на основе документа и секретного ключа пользователя вычисляет собственно подпись. Функция проверки подписи проверяет, соответствует ли данная подпись данному документу и открытому ключу пользователя. Открытый ключ пользователя доступен всем, так что любой может проверить подпись под данным документом. Для того, чтобы подписать документ нужно зашифровать с помощью закрытого ключа значение хеш-функции от содержимого документа. Чтобы проверить подпись, нужно расшифровать с помощью открытого ключа значение подписи и убедиться, что оно равно хешу подписанного документа. Таким образом цифровая подпись, это зашифрованный хеш документа. Ключ – это набор параметров (чисел). Он может храниться в файле. В теории клиенты должны сами генерировать свои закрытые и открытые ключи, создавать запрос на подпись открытого ключа и отправлять его в центр. На практике большинство клиентов не умеют генерировать ключи, поэтому в нашем случае Центр осуществляет данную работу. Центр может отзывать сертификат, выданный клиенту, помещая его в черный список, который регулярно передается пользователям центра. С помощью корневого сертификата, который публично доступен, пользователи могут проверять сертификаты друг друга.

Итого у центра сертификации имеется:

· закрытый ключ;

· корневой сертификат (хранящий в себе открытый ключ);

· список отозванных (скомпрометированных) сертификатов.

У клиентов:

· закрытый ключ;

· сертификат, подписанный корневым;

· корневой сертификат для проверки того, что сертификаты других пользователей выданы его доверенным центром;

· список отозванных (скомпрометированных) сертификатов.

Создание корневого сертификата включает:

· Генерацию закрытого ключа.

· Генерацию открытого ключа и его подпись с помощью закрытого.

Создание обычного сертификата включает:

· Генерацию закрытого ключа.

· Создание запроса на подпись сертификата.

· Подпись запроса в центре сертификации о получение сертификата.

Общепринятый формат информации, содержащейся в сертификате, называется Х509. Сертификаты и ключи могут храниться в разных типах файлов. (Например, PEM и PKCS12. PEM используется на серверах, PKCS12 – в браузерах).

OpenSSL – набор криптографических программ и библиотек – предоставляет средства для управления сертификатами и закрытыми ключами. Синтаксис вызова его функций: openssl <имя_команы> <параметры>.

Основные команды:

· rsa – работа с ключами;

· x509 – работа с файлами сертификатов в формате PEM;

· pkcs12 – работа с файлами сертификатов в формате PKCS12;

· crl – работа со списком отозванных сертификатов.

Предварительная подготовка

Данный этап включает оценку числа клиентов, спецификацию требуемых типов сертификатов, требования к их стойкости и времени жизни. На выходе желательно получить предварительные версии Certificate Policy и Certificate Practice. Возможно, это будет один совмещенный документ. В Certificate Policy описываются общая архитектура центра сертификации, ответственные лица, процедуры первоначальной генерации корневого сертификата, резервного копирования, обстоятельства отзыва ключей, механизм передачи сертификатов клиентам (внутренним и внешним). В Certificate Statement описываются типы сертификатов, необходимые атрибуты и расширения, уточнения процедур передачи отзыва, перевыдачи, сроки жизни. Желательно систематизировать именование полей сертификатов, к примеру, в качестве OU можно использовать общепринятое название отдела.

Для инсталляции центра сертификации можно использовать адаптированные свободно распространяемые наборы скриптов.

SSH

SSH (Secure Shell) – это клиент-серверная система, позволяющая создавать зашифрованные туннели между двумя и более компьютерами. Существуют две основные разновидности защищенного интерпретатора команд. В основе одной из них лежит протокол SSH версии 1, в основе другой – протокол SSH версии 2. Первая версия протокола в настоящее время применяется редко. Она считается устаревшей из-за обнаруженных ошибок, хотя по-прежнему поддерживается современными системами в целях обеспечения обратной совместимости.

SSH версии 1

Аутентификация компьютеров с использованием алгоритма RSA

Вызывая ssh, клиентскую утилиту, пользователь запрашивает соединение с удаленным компьютером (сервером). На сервере должен выполняться демон SSH (sshd). После получения запроса сервер отвечает на него, высылая клиенту открытый ключ компьютера (H) и открытый ключ сервера (S). Под выражением "ключи компьютера" понимается пара "секретный-открытый ключ RSA", генерируемая демоном sshd на этапе инсталляции. По умолчанию эти ключи имеют длину 1024 бита. Открытый ключ H сохраняется в файле /etc/ssh/ssh_host_key.pub (эту настройку можно изменить). Личный секретный ключ компьютера хранится в файле /etc/ssh/ssh_host_key и не должен быть зашифрованным (в то же время, личные ключи пользователя обычно шифруются). Следовательно, важно должным образом защитить этот файл. Ключи компьютера разрешается модифицировать спуерпользователю с помощью утилиты ssh-keygen.

Выражение "ключи сервера" означает пару "секретный-открытый ключ RSA", генерируемую демоном sshd один раз во время запуска и каждый час (стандартная установка) после первого использования. По умолчанию эти ключи имеют длину 768 бит. Ни один из двух ключей не хранится на диске.

Получив ключи H и S, клиент пытается проверить ключ H, просматривая файлы /etc/ssh/ssh_known_hosts и $HOME/.ssh/known_hosts. По умолчанию, если ключ H не найден или был изменен, утилита ssh выдает предупреждение и спрашивает пользователя, не хочет ли он добавить ключ в файл $HOME/.ssh/known_hosts. Автоматическое добавление ключей в файл удобно, однако открывает дополнительные возможности для злоумышленников. Чтобы запретить этот режим, следует задать переменную StrictHostKeyChecking равной yes в пользовательском файле файл $HOME/.ssh/config или в общесистемном файле /etc/ssh/ssh_config. Но тогда придется самостоятельно заниматься распространением ключей.

После успешной проверки ключа H клиент генерирует 256-битное случайное число N и шифрует его обоими ключами (сначала H, потом S). Зашифрованное число затем высылается серверу. Оно используется как клиентом, так и сервером для получения секретного ключа, применяемого при симметричном шифровании. Секретный ключ часто называют ключом сеанса. Все последующие данные, передаваемые в рамках соединения, шифруются согласованным ранее симметричным ключом и ключом сеанса. На этом процедура аутентификации компьютеров с использованием алгоритма RSA считается завершенной.

Далее демон sshd приступает к аутентификации пользователя. Если по какой-то причине этот процесс завершится неудачей, доступ будет запрещен.

Аутентификационный диалог между клиентом и сервером продолжается в соответствии с установками конфигурационного файла /etc/ssh/sshd_config и параметрами компиляции.

 

Таблица 15.1.

Типы ключей, применяемых в RSA

Тип ключа Способ получения и срок применения Назначение и тип шифрования
Ключи сервера Первый раз генерируются при запуске демона sshd. После первого использования повторно генерируются каждый час. Применяются для аутентификации компьютеров с использованием алгоритма RSA. Никогда не хранятся на диске.
Ключи компьютера Генерируются на этапе выполнения и могут быть повторно сгенерированы вручную. Применяются для аутентификации компьютеров по алгоритму RSA, а также для аутентификации пользователей с проверкой файла надежных узлов и ключей RSA.
Ключи пользователя Должны генерироваться самим пользователем и могут быть повторно сгенерированы вручную. Применяются исключительно для аутентификации пользователей по алгоритму RSA.
Ключ сеанса Создается на основании случайного числа, выбранного клиентом в процессе аутентификации компьютера. Используется для симметричного шифрования в течение SSH-сеанса. Не может генерироваться вручную. Используется для организации зашифрованного SSH-туннеля. По окончании аутентификации компьютера все данные, передаваемые между клиентом и сервером, шифруются этим ключом с применением симметричного алгоритма. В США используется алгоритм Иwfish, а в международной версии SSH – алгоритм IDEA либо другой алгоритм, выбранный клиентом и поддерживаемый сервером.

SSH версии 2

Концептуально протокол SSH2 аналогичен протоколу версии 1. У каждого компьютера есть свои ключи, используемые для аутентификации. Но в отличие от версии 1, ключи сервера не создаются. Вместо этого ключи согласовываются по алгоритму Диффи-Хеллмана, после чего генерируется ключ сеанса. Данные, передаваемые в ходе сеанса, шифруются этим ключом с применением согласованного алгоритма. Кроме того, если в SSH1 целостность сообщений проверяется по незащищенной контрольной сумме, то в SSH2 используется хеш-код SHA-1 или MD5.

Методы аутентификации таковы: по открытому ключу пользователя (PubKeyAuthentication), по открытому ключу компьютера с использованием файлов надежных узлов (HostBaseedAuthentication) и при помощи пароля (через модуль PAM [PAMAuthenticationViaKbdInt] или по схеме "оклик-ответ").

Контрольные вопросы

1. Какие типы сетевых экранов выделяют?

2. На основании каких параметров осуществляется фильтрация трафика?

3. Что нужно учесть при определении порядка следования правил в цепочках?

4. Для чего предназначены прокси-серверы?

5. Какие алгоритмы замещения объектов в КЭШе поддерживает сервер squid?

6. Каково назначение центра сертификации?

7. В чем заключаются различия SSH версий 1 и 2?

8. Как производится аутентификация пользователей в SSH?

9. Каковы уязвимости SSH версии 2?

10. Можно ли использовать модули PAM при работе с SSH и если да, то с какой целью?

 


Лекция 16.

БЕЗОПАСНОСТЬ УРОВНЯ ПРИЛОЖЕНИЙ

 

Особенности защиты прикладных сервисов в Unix-системах можно рассмотреть на примере сервера Apache.

Для настройки серверов Apache можно использовать специально разработанную для этого графическую оболочку (интерфейс пользователя). Но основные настройки хранятся в нескольких конфигурационных файлах (/usr/local/etc/httpd/conf).

 

Таблица 16.1.

Основные конфигурационные файлы для Apache сервера

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.006 сек.)