Меню

Настройка oracle для ssl



Настройка oracle для ssl

И начал меня спрашивать: «Что за человек? Откудова?»
И я сказал, что с Москвы, да и подал ему господарский лист воложской.

Аннотация

Рассматривается использование электронного бумажника Oracle Wallet для установления защищенных соединений СУБД с узлами интернета по протоколу TCPS и клиентских программ с СУБД по протоколу HTTPS.

Защищенные соединения и сертификаты подлинности

Вторая активная область использования электронного бумажника Oracle — поддержка защищенных соединений между СУБД и узлами интернет. Защита соединений между участниками интернет строится на использовании шифрования передаваемых данных, обычно по схеме публичной инфраструктуры ключей (PKI), а это требует передачи от одного участника к другому шифроключа. Риск постороннего вмешательства в такую передачу значительно выше, чем при обращении СУБД к локальной файловой системе, так что кроме собственно шифроключа участники передают друг другу еще специальное подтверждение подлинности, то есть «цифровой сертификат» (Public key certificate), дающий принимающей стороне уверенность, что шифр не подложный. Бумажник Oracle способен такие сертификаты хранить.

Соединения участников сети могут быть двух типов: СУБД с другими участниками, когда она выступает в качестве клиента, и других участников (клиентских программ) с СУБД. Ниже приводятся примеры организации того и другого.

Создание бумажника с сертификатами

ПО Oracle позволяет создать пустой бумажник, и потом включить в него необходимые сертификаты подлинности. Однако программы owm (Wallet Manager), orapki, mkstore и mkwallet позволяют создать бумажник с некоторым начальным набором сертификатов. Первая из этих программ сумеет создать желаемый каталог для хранения файла бумажника сама, а остальные предполагают каталог уже имеющимся. Пример, для сервера:

В диалоге потребуется указать придуманный пароль, например, по-прежнему amicus123. Заметьте, что в созданом каталоге образовались сразу два файла, что соответствует постоянно открытому бумажнику; это-то нам и требуется.

Еще пример создания:

Появился один файл ewallet.p12, но зато этой же программой можно ознакомиться с его содержимым:

Наконец, создать бумажник и работать с его содержимым можно через Oracle Wallet Manager (меню Wallet ® New). При этом от следующего предложения придется отказаться:

В противном случае программа предложит текст заявки на получение сертификата, что пока не нужно. Свойство бумажника Auto Login в Wallet Manager нужно будет задать самостоятельно.

Следует обратить внимание, чтобы места нахождения файлов бумажников были доступны элементам ПО соответственно сервера и клиента.

Защищенные соединения с СУБД по протоколу SSL

ПО Oracle Advanced Security позволяет проводить авторизацию соединений клиента с сервером средствами сторонних продуктов, таких как Kerberos или RADIUS. Здесь же будет показано, как это можно сделать с использованием бумажника и техники защищенного соединения SSL (более современное название — TLS, http://en.wikipedia.org/wiki/Transport_Layer_Security). С SSL связано и иное решение: соединяться в Oracle без Advanced Security, но по каналу связи («туннелю») SSL в ОС. Оно здесь не рассматривается по меньшей мере потому, что лишает смысла тему настоящей статьи.

Конфигурирование Oracle Net

Процесс установки соединеий клиентов с СУБД listener должен быть настроен на прием заявок подключений по протоколу TCPS. Для этого в файле listener.ora следует пополнить описание списка портов в параметре LISTENER. По умолчанию Oracle Net использует для TCPS порт 2484; ниже эта традиция сохранена. Указание SSLVERSION в файлах ниже приводится для определенности и не имеет принципиального значения.

Файлы сервера

Примерный фрагмент из listener.ora может выглядеть так:

После подобной правки файла listener.ora программу listener стоит перезапустить. Правка файла sqlnet.ora может выглядеть примерно так:

Читайте также:  Настройка hangouts в opencart
Файлы клиента

Правка файла tnsnames.ora может выглядеть примерно так:

(Предполагается, что имя службы БД — orcl).

Правка файла sqlnet.ora может выглядеть примерно так:

Конфигурирование программой Net Manager

Выставить требуемые значения параметрам можно программой Net Manager, например:

Может случиться, что ПО Advanced Security доустанавливалось впоследствии. Из-за внутренних ошибок программа Net Manager не всегда в таких случаях способна показать позицию Oracle Advanced Security ниспадающего меню. Выйти из положения можно, подправив строку из файла netproperties в каталоге %ORACLE_HOME%\network\tools; например заменить:

(ANO — сокращение старого названия нынешнего ПО Advanced Security Option).

Получение цифрового сертификата

Для установления защищенного соединения по SSL потребуется получить цифровые сертификаты подлинности: (а) «пользователя» и (б) «корневой». Сертификат пользователя будем получать на обращение к ресурсу, обозначенному следующим «различительным именем» (distinguished name, dn):

(Предполагается, что имя экземпляра СУБД — orcl). Правила построения различительных имен многократно описаны в литературе и в интернете.

Корневой сертификат понадобится для того, чтобы подтвердить сертификат пользователя. Подтвержденя ему не требуется, так как он подтверждает сам себя (отсюда название).

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

Получение сертификата пользователя производится по подготовленной заявке (request). Подготовить заявку можно с помощью Wallet Manager, отдельно для бумажников на сервере и на клиенте. Обратиться к форме составления заявки можно через меню Operations ® Add Certificate Request. В форме Create Certificate Request следует выбрать Key Size = 1024 и нажать кнопку Advanced. В появившуюся форму нужно внести различительное имя и нажать OK:

Если теперь «встать» на ветку Certificate (Requested) дерева объектов бумажника, справа увидим текст заявки на сертификат:

Получение сертификатов

Получить сертификат можно разными способами:

  • от уполномоченных центров сертификации (certificate authority, CA), выдающих сертификаты за плату;
  • с помощью бесплатных программ получения сертификатов, например openSSL;
  • от собственного уполномоченного центра в рамках Identity Management Infrastructure в составе Oracle Application Server.

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

На месте www.thawte.com в web нужно найти страницу «21-Day Free Trial SSL Certificate from thawte» и заполнить поля своими данными. Далее на странице «21-Day Free SSL Trial Certificate)) нужно проставить отметку SSL123 Certificate (All servers) и в поле для заявки внести текст, полученный от Wallet Manager. Нажав next, получим в ответ текст сертификата. Пока его нужно запомнить в каком-нибудь файле, например userCert.txt. Такой файл получаем отдельно для бумажника на сервере и на клиенте.

Корневой сертификат можно получить по адресу https://www.thawte.com/roots/. Скачав файл thawte-roots.zip, нужно извлечь из него текстовое или двоичное представление корневого сертификата в каталоге Thawte Test Roots.

Импорт сертификатов в бумажник

Нагляднее импортировать сертификаты опять-таки в Oracle Wallet Manager, хотя делать это можно и программами из командной строки.

При желании можно с пощью меню запомнить текст заявки во внешнем файле.

Вначале импортируется корневой сертификат. Используется меню Operations —»Import Trusted Certificate.

Во вторую очередь импортируется сертификат пользователя посредством меню Operations — Import User Certificate. Оба действия допускают указание как ссылки на файл, так и живого текста.

В результате ветка Certificate (Requested) объектов бумажника получит вид Certificate (Ready):

Сертификаты импортируются отдельно в бумажники сервера и клиента.

Читайте также:  Настройка radioboss для вещания

Источник

8 Configuring Secure Sockets Layer Authentication

This chapter describes how to configure and use the Secure Sockets Layer (SSL) and Transport Layer Security (TLS) protocols which are supported by Oracle Advanced Security. It contains the following topics:

8.1 SSL and TLS in an Oracle Environment

Secure Sockets Layer (SSL) is an industry standard protocol originally designed by Netscape Communications Corporation for securing network connections. SSL uses RSA public key cryptography in conjunction with symmetric key cryptography to provide authentication, encryption, and data integrity.

This section discusses the following topics:

8.1.1 Difference between SSL and TLS

Although SSL was primarily developed by Netscape Communications Corporation, the Internet Engineering Task Force (IETF) took over development of it, and renamed it Transport Layer Security (TLS). Essentially, TLS is an incremental improvement to SSL version 3.0.

The TLS Protocol Version 1.0 [RFC 2246] at the IETF Web site, which can be found at:

To simplify discussion, this chapter uses the term SSL where either SSL or TLS may be appropriate because SSL is the most widely recognized term. However, where distinctions occur between how you use or configure these protocols, this chapter specifies what is appropriate for either SSL or TLS.

8.1.2 Using SSL

Oracle Advanced Security supports authentication by using digital certificates over SSL in addition to the native encryption and data integrity capabilities of these protocols.

By using Oracle Advanced Security SSL functionality to secure communications between clients and servers, you can

Use SSL to encrypt the connection between clients and servers

Authenticate any client or server, such as Oracle Application Server 10g, to any Oracle database server that is configured to communicate over SSL

You can use SSL features by themselves or in combination with other authentication methods supported by Oracle Advanced Security. For example, you can use the encryption provided by SSL in combination with the authentication provided by Kerberos. SSL supports any of the following authentication modes:

Only the server authenticates itself to the client

Both client and server authenticate themselves to each other

Neither the client nor the server authenticates itself to the other, thus using the SSL encryption feature by itself

The SSL Protocol , version 3.0, published by the Internet Engineering Task Force, for a more detailed discussion of SSL

8.1.3 How SSL Works in an Oracle Environment: The SSL Handshake

When a network connection over SSL is initiated, the client and server perform an SSL handshake that includes the following steps:

The client and server establish which cipher suite s to use. This includes which encryption algorithms are used for data transfers.

The server sends its certificate to the client, and the client verifies that the server’s certificate was signed by a trusted CA. This step verifies the identity of the server.

Similarly, if client authentication is required, the client sends its own certificate to the server, and the server verifies that the client’s certificate was signed by a trusted CA.

The client and server exchange key information using public key cryptography. Based on this information, each generates a session key . All subsequent communications between the client and the server is encrypted and decrypted by using this set of session keys and the negotiated cipher suite.

Читайте также:  Настройка сканера разрешение для документов

The authentication process consists of the following steps:

On a client, the user initiates an Oracle Net connection to the server by using SSL.

SSL performs the handshake between the client and the server.

If the handshake is successful, the server verifies that the user has the appropriate authorization to access the database.

8.2 Public Key Infrastructure in an Oracle Environment

A public key infrastructure (PKI) is a substrate of network components that provide a security underpinning, based on trust assertions, for an entire organization. A PKI exists so that disparate network entities can access its security services, which use public-key cryptography on an as-needed basis. Oracle provides a complete PKI that is based on RSA Security, Inc., Public-Key Cryptography Standards, and which interoperates with Oracle servers and clients.

8.2.1 About Public Key Cryptography

Traditional private-key or symmetric-key cryptography requires a single, secret key that is shared by two or more parties to a secure communication. This key is used to both encrypt and decrypt secure messages sent between the parties, requiring prior, secure distribution of the key to each party. The problem with this method is that it is difficult to securely transmit and store the key.

Public-key cryptography provides a solution to this problem, by employing public and private key pair s and a secure method for key distribution. The freely available public key is used to encrypt messages that can only be decrypted by the holder of the associated private key . The private key is securely stored, together with other security credentials, in an encrypted container called a wallet .

Public-key algorithms can guarantee the secrecy of a message, but they do not necessarily guarantee secure communications because they do not verify the identities of the communicating parties. To establish secure communications, it is important to verify that the public key used to encrypt a message does in fact belong to the target recipient. Otherwise, a third party can potentially eavesdrop on the communication and intercept public key requests, substituting its own public key for a legitimate key (the man-in-the-middle attack).

In order to avoid such an attack, it is necessary to verify the owner of the public key, a process called authentication . Authentication can be accomplished through a certificate authority (CA), which is a third party that is trusted by both of the communicating parties.

The CA issues public key certificates that contain an entity’s name, public key, and certain other security credentials. Such credentials typically include the CA name, the CA signature, and the certificate effective dates (From Date, To Date).

The CA uses its private key to encrypt a message, while the public key is used to decrypt it, thus verifying that the message was encrypted by the CA. The CA public key is well known and does not have to be authenticated each time it is accessed. Such CA public keys are stored in wallets.

8.2.2 Public Key Infrastructure Components in an Oracle Environment

Public key infrastructure (PKI) components in an Oracle environment include the following:

Источник

Adblock
detector