Настройка защищенного соединения со стороны клиента

При указании в файле сетевой конфигурации nodetab протокола TCPIPS или TLS соединение будет осуществляться в защищенном режиме. Этот режим исключает получение информации, хранящейся в БД ЛИНТЕР, путем прослушивания сетевого соединения. Все остальные параметры соединения аналогичны соответствующим параметрам протокола TCPIP.

Драйвер клиента dbc_tcp будет стараться загружать и использовать системные библиотеки openssl. При невозможности этого будут использованы библиотеки из соответствующих исполняемых файлов, или защищенные протоколы будут отключены, если вариант сборки соответствующих исполняемых файлов не содержит статически встроенных библиотек openssl.

Если в каталоге запуска драйвера присутствуют файлы dbc_tcp.key (ключ) и dbc_tcp.crt (сертификат), то происходит сравнение открытого ключа маскирования сервера, считанного из файла сертификата и принятого по сети от сетевого драйвера сервера СУБД ЛИНТЕР. В случае несовпадения значений соединение не устанавливается. Если файл сертификата сервера в текущем каталоге не найден, он будет создан автоматически. Файл сертификата сервера имеет имя, совпадающее с именем ЛИНТЕР-сервера из файла nodetab, и расширение .crt. Имя ЛИНТЕР-сервера в файле приводится к верхнему регистру. Администратор СУБД может перенести файл dbs_tcp.crt на клиентскую сторону и соответствующим образом переименовать его до установления первого соединения с сервером. Наличие файлов dbc_tcp.crt и dbc_tcp.key (сертификата и ключа маскирования клиента) позволяет сетевому драйверу сервера получить сертификат клиента и произвести сравнение с запомненным ранее сертификатом.

Создать файлы ключей маскирования клиента можно, запустив dbs_tcp с ключом -SSLKEY и переименовав полученные файлы dbs_tcp.key и dbs_tcp.crt в dbc_tcp.key и dbc_tcp.crt соответственно. При этом файлы должны быть защищены средствами ОС. В этом случае создается самоподписанные сертификаты.

Средствами ОС могут быть созданы сертификаты с заданным алгоритмом. Эти сертификаты могут быть подписаны удостоверяющим центром. Проверка подписи удостоверяющего центра включается при наличии файла dbc_tcp.CA – списка сертификатов удостоверяющих центов. Отозванные сертификаты должны храниться в файле dbc_tcp.CRL (приложение 4).

При инициализации защищенного соединения сначала устанавливается обычное соединение по протоколу TCP/IP, затем оно переводится в защищенный режим. Существуют три режима защищенного соединения:

  1. без аутентификации сервера;

  2. аутентификация с сохранением ключей в автоматическом режиме;

  3. аутентификация с сохранением ключей в ручном режиме.

Если драйвер клиента запускается стандартным образом, без манипулирования файлами dbc_tcp.key и dbc_tcp.crt, аутентификация сервера не проводится, но защищенное соединение будет установлено.

Если перенести сертификаты с серверного компьютера на клиентский и сохранить их в каталоге запуска драйвера клиента с именем, аналогичным имени ЛИНТЕР-сервера из файла nodetab, и с расширением .crt, то при установке соединения будет проверено соответствие запомненного сертификата клиента и сертификата сервера. В случае их несоответствия соединение установлено не будет.

Серверные сертификаты могут быть также получены от удостоверяющего цента. Для включения проверки подписи удостоверяющего цента должен присутствовать файл списка сертификатов удостоверяющих центров dbc_tcp.CA.

Если в каталоге запуска драйвера клиента создать файлы ключа и сертификата клиента с именами dbc_tcp.key и dbc_tcp.crt соответственно, это позволит:

  • передать сертификат клиента серверу для аутентификации клиента сервером;

  • включить режим автоматического сохранения сертификата сервера в текущем каталоге при установке соединения с данным ЛИНТЕР-сервером в первый раз.

При установке последующих соединений с данным ЛИНТЕР-сервером будет производиться сверка сертификатов с запомненным при первом соединении.

Файлы ключей и сертификатов должны быть защищены от доступа посторонних лиц. Это достигается сменой прав доступа на 0600 средствами ОС UNIX. Сертификат и ключ могут быть созданы утилитой openssl (в состав дистрибутива СУБД ЛИНТЕР не входит) с именами dbc_tcp.crt и dbc_tcp.key соответственно. Также самоподписанный сертификат и ключ можно создать утилитой dbs_tcp с опцией SSLKEY. В этом случае файлы должны быть переименованы из dbs_tcp.crt в dbc_tcp.crt и dbs_tcp.key в dbc_tcp.key.