Применение поддержки Secure Socket Layer (SSL)

Для использования SSL необходимо, чтобы были настроены и клиент (адаптер ресурсов IMS TM), и сервер (IMS Connect).
В следующей таблице приведено краткое описание этапов настройки адаптера ресурсов IMS TM, IMS Connector for Java и IMS Connect для SSL.
Клиент SSL (IMS Connector for Java) Сервер SSL (IMS Connect)
  1. Решите, нужна ли идентификация клиента. Если она не нужна, перейдите к шагу 5.
Прим.: Настоятельно рекомендуется применять идентификацию клиента для защиты от несанкционированного доступа к IMS Connect.
2. Получите подписанные сертификаты и личные ключи.  
3. Создайте хранилище ключей и добавьте в него сертификат и личный ключ клиента. Дополнительная информация приведена ниже.  
  4. Добавьте сертификат общего ключа клиента в набор ключей. См. IMS Connect User's Guide (SC27-0946-03).
5. Создайте хранилище надежных сертификатов (второе необязательное хранилище ключей) и добавьте в него сертификат общего ключа сервера. Вместо этого добавьте сертификат общего ключа сервера в хранилище ключей клиента, если надежные и ненадежные сертификаты планируется размещать в одном хранилище ключей.  
  6. Выберите порт SSL для IMS Connect. Настройте IMS Connect и параметры SSL соответствующим образом. См. IMS Connect User's Guide (SC27-0946).
7. Настройте фабрику соединений, задав параметры SSL, включая номер порта из шага 6. Дополнительная информация приведена ниже.  
8. Свяжите приложение с фабрикой соединений SSL.  

Создание хранилища хранилища ключей или надежных сертификатов для клиента

Для взаимной идентификации сервера и клиента необходимо добавить в хранилище ключей JKS или набор ключей RACF действительные сертификаты X.509 как на сервере, так и в клиенте. Если сервер не применяет идентификацию клиента, то создавать сертификат клиента и добавлять его в набор ключей или хранилище ключей сервера не требуется. Для управления хранилищем ключей предусмотрены различные инструменты. Для того чтобы настроить хранилище ключей JKS на сервере и в клиенте, выполните следующие действия:
  • Для настройки клиента (IMS Connector for Java) создайте сертификат и отправьте его для подписания в сертификатную компанию (такую как VeriSign), либо подпишите его самостоятельно, создав собственную сертификатную компанию, например с помощью OpenSSL.
  • Для создания хранилища ключей воспользуйтесь инструментом управления ключами, например Ikeyman или Keytool. После этого импортируйте в него сертификат клиента.
  • Для создания хранилища надежных сертификатов создайте ещё одно хранилище ключей и импортируйте в него сертификат сервера (IMS Connect). Примечание: сертификат сервера можно импортировать в то же самое хранилище ключей, в которое были добавлены сертификаты клиента. Инструкции по созданию набора ключей RACF, который будет служить хранилищем ключей или хранилищем доверенных сертификатов, можно найти в документации RACF.

Настройка SSL

Для создания защищённого соединения SSL между клиент-приложением на Java и IMS Connect необходимо задать соответствующие параметры в фабрике соединений, используемой приложением Java. Описание свойств SSL приведено в разделе Свойства соединения.

Свойства SSL можно задавать несколькими способами; рассмотрим их на примерах продуктов WebSphere и Rational компании IBM:

Примечание: Информационные и предупреждающие сообщения сохраняются в протоколе trace.log, который создается WebSphere Application Server. Информацию о ведении протоколов и трассировке IMS Connector for Java можно найти в Ведение протоколов и трассировка при работе с адаптером ресурсов IMS TM.

Когда приложение на Java запустит взаимодействие с IMS, для него будет применяться соединение SSL, связывающее клиента SSL (IMS Connector for Java) с сервером SSL (IMS Connect). SSL-соединение между клиентом и сервером открывается в процессе SSL квитирования. Оно прозрачно для клиент-приложения на Java и происходит следующим образом:
  • Клиент SSL, IMS Connector for Java, открывает соединение отправкой сообщения "hello". Сервер, IMS Connect, отвечает путем отправки аналогичного сообщения и сертификата с общим ключом.
  • Если идентификация сертификата на сервере проходит успешно, с обеих сторон устанавливается ключ сеанса связи и согласовывается шифр, определяющий тип шифрования для данного соединения. Возможные типы шифрования - STRONG, WEAK или ENULL. На этом SSL-квитирование завершается.
  • Если сервер требует идентификации клиента, клиент проверяет сертификат сервера по его общему ключу. После успешной идентификации сервера клиент отправляет свой сертификат из локального хранилища ключей. Если идентификация сертификата на сервере проходит успешно, с обеих сторон устанавливается ключ сеанса связи и согласовывается шифр, определяющий тип шифрования для данного соединения. На этом SSL-квитирование завершается.
  • После этого клиент и сервер могут обмениваться зашифрованными данными.
Обратите внимание, что при выполнении приложения в управляемой среде (что настойчиво рекомендуется при использовании SSL-соединений ввиду дополнительной нагрузки) адаптер ресурсов IMS TM применяет только соединения с постоянным сокетом для связи с IMS Connect. На самом деле адаптер ресурсов IMS TM всегда использует соединения с постоянным сокетом, только в неуправляемой среде они отключаются приложением после каждого использования, и потому для следующего использования другим приложением они недоступны. Если применяется администратор соединений WebSphere Application Server, то соединение может последовательно использоваться несколькими приложениями-клиентами. Новые соединения создаются для приложений по мере необходимости. По окончании использования соединения оно возвращается в пул, после чего оно может быть выделено для другого приложения, требующего соединение того же типа. Процедура идентификации клиента и сервера выполняется для каждого сокета только один раз во время согласования SSL при создании и инициализации сокета. При повторном использовании сокета клиент SSL (адаптер ресурсов IMS TM) и сервер (IMS Connect) остаются прежними. Следовательно, идентификацию клиента и сервера и процедуру согласования SSL не требуется выполнять повторно. Это согласуется с тем фактом, что ИД клиента, идентифицирующий сокет, не изменяется при повторном использовании сокета.

Если для типа шифрования SSLEncryption задано значение ENULL, быстродействие будет выше, чем при шифровании Strong или Weak. Степень улучшения зависит от нескольких факторов, в том числе и от реализации шифрования - аппаратного или программного. При использовании аппаратного шифрования улучшение будет меньшим, поскольку аппаратное шифрование быстрее программного.


Комментарии