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