⚠️ これは 非公式の翻訳サイトです。DCMTK / OFFIS とは無関係です。正確な情報は 原文(https://support.dcmtk.org/docs/mod_dcmtls.html) を参照してください。

dcmtls: ネットワークライブラリ向けセキュリティ拡張

このモジュールには、Transport Layer Security (TLS) 接続を介してトンネリングする DICOM ネットワーク通信を実装するクラスが含まれます。DICOM の「Security Enhancements One」拡張(旧 Supplement 31)に準拠しています。このモジュールには外部ライブラリの OpenSSL が必要です。

主なインターフェースクラスは次のとおりです。

ファイル

詳しくは次のファイルを参照してください。

使用例

次の例は、アソシエーション要求側(リクエスタ)アプリケーションで TLS を有効にするコード断片を示します。ネットワーク初期化コードの全体はここでは省略しており、エラーチェックのコードも簡潔さのためにほとんど省いています。

T_ASC_Network *net; // ネットワーク初期化コードは省略

T_ASC_Parameters *params; // これらのポインタは有効であると仮定する

DcmTLSTransportLayer::initializeOpenSSL(); // OpenSSL ライブラリを初期化する

// 乱数生成器をファイル経由で初期化する TLS オブジェクトを作成する

// ランダムデータを格納した "random.dat"(1 kByte あれば十分)

DcmTLSTransportLayer *tLayer = new DcmTLSTransportLayer(

NET_REQUESTOR, "random.dat");

if (tLayer->setPrivateKeyFile("privkey.pem", SSL_FILETYPE_PEM).bad())

{

cerr << "unable to load private key" << endl;

return;

}

if (tLayer->setCertificateFile("certificate.pem", SSL_FILETYPE_PEM).bad())

{

cerr << "unable to load certificate" << endl;

return;

}

// BCP 195 RFC 8996 のセキュア転送プロファイル向けの暗号スイートを有効にする

tLayer->setTLSProfile(TSP_Profile_BCP_195_RFC_8996);

tLayer->activateCipherSuites();

// 相手サイトのどの証明書も受け入れる(非推奨)

tLayer->setCertificateVerification(DCV_ignoreCertificate);

// TLS レイヤを登録して有効化する

ASC_setTransportLayer(net, tLayer, 1);

ASC_setTransportLayerType(params, 1);