TLS WebSocket機能は、ODBC Driver for Teradata 17.10で導入された新機能であり、ドライバがTeradata独自の暗号化メカニズムではなくTLS接続を介して、Teradata Databaseと通信できるようにします。この機能では、中間者(MITM)攻撃からの保護も提供されています。
サポートされているプラットフォーム
- Windows
- Linux
- Ubuntu
- OSX
- AIX
- Solaris Sparc
- Solaris Opteron
関連があるドライバ パラメータ
- SSLMode - ドライバが動作するTLSモード。
- SSLProtocol - ドライバが接続を許可するTLSの最小バージョン。現在サポートされているのはTLSv1.2のみです。
- SSLCA - 信頼済みのルートCAおよび中間CAの1つまたは複数の証明書が入っている.pemファイルのフルパスと名前。SSLModeがVerify-CAまたはVerify-Fullに設定されていない場合、SSLCAまたはSSLCAPathは無視されます。
- SSLCAPath - 信頼済みCAのルート証明書が置かれているディレクトリのフルパス。オペレーティング環境でのデフォルト設定がデフォルト値になります。SSLModeがVerify-CAまたはVerify-Fullに設定されていない場合、SSLCAまたはSSLCAPathは無視されます。
- HTTPS_PORT - TLS接続に使用されるポート番号。デフォルトでは443に設定されています。
- TdmstPortNumber - TLS以外の接続に使用されるポート番号。デフォルトでは1025に設定されています。
サポートされているSSLMode
- Prefer(優先) - これはドライバのデフォルトです。ドライバはHTTPSポートでの接続を優先します。失敗した場合、ドライバはTDMSTポートでの接続の試行にフォールバックします。
- Allow(許容) - ドライバはTDMSTポートでの接続を優先します。その接続が失敗した場合、ドライバはHTTPSポートでの接続の試行にフォールバックします。
- Disable(無効) - ドライバはTDMSTポートでのみ接続します。
- Require(必須) - ドライバはHTTPSポートでのみ接続します。
- Verify-CA(検証-CA) - "Require(必須)"モードに加えて、追加のサーバーCA検証を行ないます。
- Verify-Full(検証-完全) - "Verify-CA(検証-CA)"に加えて、追加のホスト名識別検証を行ないます。
OSのシステム証明書トラストストアの使用
"Verify-CA(検証-CA)"および"Verify-Full(検証-完全)"のSSLModeをオペレーティング環境でのデフォルトで使用するには、OSのシステム トラストストアにgtwcert.pemを追加します。
証明書のインストール(Windowsの場合)
- Windowsキー+R(ファイル名を指定して実行)を押して、"mmc"と入力します。
- ファイル > スナップインの追加と削除を選択します。
- 証明書を選択して追加をクリックします。
- コンピュータ アカウントを選択して次へをクリックします。
- 次へ
- ローカル コンピュータを選択して完了をクリックします。
- OKをクリックします。
- 左側のツリー表示で、証明書(ローカル コンピュータ)\信頼されたルート証明機関\証明書を展開してクリックします。
- その中に、現在OSで信頼されているSSL/TLS証明書の一覧があります。
- 信頼されたルート証明機関 > すべてのタスク > インポートにある証明書を右クリックします。
- 次へをクリックし、TLSデータベースから取得したgtwcert.pemファイルを参照します。
- 完了が表示されるまで、次へを何度かクリックします。
- 正しくインポートされましたダイアログ ボックスが表示され、証明書が正常にインポートされていることが示されます。
証明書のアンインストール
- Microsoft管理コンソールで、強調表示されている証明書を右クリックします。
- 削除を選択します。
- 可能をクリックします。
Linuxでの証明書のインストールは、Linuxの具体的なバージョンによって異なります。使用しているディストリビューションのドキュメントを参照してください。手順の例を以下に示します。
証明書のインストール(CentOS 6以降)
- sudo cp /path/to/gtwcert.pem /etc/pki/ca-trust/source/anchors/を実行します。
- sudo update-ca-trustを実行します。
証明書のアンインストール
- sudo rm /etc/pki/ca-trust/source/anchors/gtwcert.pem.を実行します。
- sudo update-ca-trustを実行します。
証明書のインストール(SLES 11)
- sudo cp /path/to/gtwcert.pem /etc/ssl/certsを実行します。
- sudo chmod 644 gtwcert.pemを実行して、証明書のアクセス権を設定します。
- sudo c_rehash /etc/ssl/certsを実行します。
証明書のアンインストール
- sudo rm /etc/ssl/certs/gtwcert.pem.を実行します。
- sudo c_rehash /etc/ssl/certs.を実行します。
証明書のインストール(SLES 12以降)
- sudo cp /path/to/gtwcert.pem /etc/pki/trust/anchorsを実行します。
- sudo update-ca-certificatesを実行します。
証明書のアンインストール
- sudo rm /etc/pki/trust/anchors/gtwcert.pemを実行します。
- sudo update-ca-certificatesを実行します。
証明書のインストール(Red Hat 7.7)
- sudo cp /path/to/gtwcert.pem /etc/pki/ca-trust/source/anchors/を実行します。
- sudo update-ca-trust.を実行します。
証明書のアンインストール
- sudo rm /etc/pki/ca-trust/source/anchors/gtwcert.pem.を実行します。
- sudo update-ca-trustを実行します。
証明書のインストール(Ubuntu 16、18)
- sudo cp /path/to/gtwcert.pem /usr/local/share/ca-certificates/gtwcert.crtを実行します。証明書には拡張子".crt"が付いている必要があります。".pem"を".crt"に変更するだけで済みます。
- sudo update-ca-certificatesを実行します。出力メッセージに"1 added, 0 removed"と表示されていることを確認します。
証明書のアンインストール
- sudo rm /usr/local/share/ca-certificates/gtwcert.crtを実行します。
- sudo update-ca-certificatesを実行します。
AIXおよびSolarisプラットフォームでの手順の例
- AIXについては、記事「IBM AIX: Import CA certificate」(https://www.ibm.com/support/pages/ibm-aix-import-ca-certificate)を参照してください。
- Solarisについては、記事「Adding CA Certificates to the Oracle Solaris CA Keystore」(https://www.ibm.com/support/pages/ibm-aix-import-ca-certificate)を参照してください。
Prefer/AllowのSSLModeでの確定的動作
ODBCドライバは、Prefer(優先)/Allow(許容)のSSLモードでのTeradata Databaseからの確定的動作をサポートしています。これにより、データベース接続に使用されるポート選択の使用率が向上します。Teradata Databaseへの接続プロセス中に、ODBCドライバは、データベースがアクティブにリッスンしているポート(HTTPSやTDMSTなど)の情報を受け取ります。この情報に基づいて、Teradata Databaseから受け取る情報について次の3つのシナリオが考えられます。
- TDMSTポートが有効でありHTTPSポートが無効であるODBCドライバ、SSLMode=AllowまたはSSLMode=Prefer
ODBCドライバは一貫してTDMSTポートに接続し、接続できなければエラーを返します。
- HTTPSポートが有効でありTDMSTポートが無効であるODBCドライバ、SSLMode=AllowまたはSSLMode=Prefer
ODBCドライバは一貫してHTTPSポートに接続し、接続できなければエラーを返します。
- TDMSTポートとHTTPSポートの両方が有効であるODBCドライバ、SSLMode=Allow
- ODBCドライバはTDMSTポートに接続するか、TDMSTポートが有効であるがドライバがそのポートに接続できないことを表わすエラーを返します。
- ODBCドライバはHTTPSポートに接続するか、HTTPSポートが有効であるがドライバがそのポートに接続できないことを表わすエラーを返します。
Prefer/AllowのSSLModeでの確定的動作は、Teradata GatewayのTLS設定に依存します。現在、Teradata Gatewayに設定できるモードには"disable"、"enable"、"require"、"nolegacy"の4つがあります。この設定を確認または変更するには、次のコマンドを実行します。
- tdatcmd
- gtwcontrol -h
- gtwcontrol --TLS [disable|enable|require|nolegacy][,trace=yes|no|all]
クライアントの機密性の種類
ODBCドライバは、Teradata Databaseとの通信時に利用可能なSSLモードとフォールバックのさまざまなシナリオに対応する、クライアントの機密性の新しい種類をサポートしています。