はじめに
TLSは、インターネット上のノード間で安全なデータ転送を提供する暗号化プロトコルです。 ここまたはここで見つけることができます。
主要なTLSタスク:
- 機密性を確保します。つまり、送信された情報の漏洩に対する保護を実装します。
- 置換の検出を提供します。つまり、送信された情報の完全性の保存を実装します。
- ノードの認証を提供します。つまり、メッセージソースを認証するメカニズムを提供します。
このプロトコルは、Webブラウザ、電子メール、インスタントメッセージング、IPテレフォニー(VoIP)など、インターネットで動作するアプリケーションで広く使用されています。
挑戦する
この場合、GOST暗号化によって保護されたWebリソースへのアクセスを提供する必要がありました。
要件:
- クラスタ構成(ソリューションには高い耐障害性が必要)
- 高スループット
- さまざまなブラウザー(IE、Mozilla、Chrome)のサポート
- HTTPSプロキシモードでの最大接続数は10,000です
- CIPFのロシア連邦セキュリティサービスの証明書
解決策
以下は、コンポーネントの図と説明です。
![](https://habrastorage.org/webt/iy/n1/va/iyn1vax-n_eqvv55g25tbzupjmo.jpeg)
この問題を解決するために、上記のすべての条件を満たす「セキュリティコード」コンチネンタルTLS VPN製品が選択されました。
設計時には、TLSプロトコルを使用してGOSTに従って暗号化を実行する唯一の認定PACであったことに注意してください。 将来的には、InfoTexからViPNet TLS PAK証明書を受け取る予定です。
システムの主な要素:
- CIPF「Continent TLS VPN Client」バージョン1.2.1068
- ロードバランサー、Netscaler v12
- SKZI「Continent TLS VPN Server」、バージョン1.2.1.61
アイテム説明
SKZI「Continent TLS VPN Client」-TLSクライアントは、TLSサーバーと連携して機能するリモートユーザーのコンピューターにインストールされるソフトウェアです。 TLSクライアントは、一般的なデータ伝送ネットワークの通信チャネルを介した企業ネットワークのWebリソースへのリモートユーザーの安全なアクセスの実装を目的としています。
NetScalerは、データセンターまたはクラウドからの従来のコンテナーおよびマイクロサービスアプリケーションに柔軟なサービス配信を提供するアプリケーション配信コントローラーです。 CitrixベースのNetscalerバランサーは、TLSサーバーのクラスター間のHTTPSセッションにまたがります。 WEBサーバーからの応答もバランサーによって収集されます。
CPSI「Continent TLS VPN Server」-サーバーは、リモートユーザーが保護されたリソースに安全にアクセスできるように設計されています。
設定手順
- TLSサーバーを初期化し、クラスターを構成し、TLSサーバーの証明書要求を作成します(ルートCA証明書、サーバー証明書、リモートサーバー管理用証明書、管理者証明書、CRL)。
- TLSサーバーの初期セットアップ、証明書のインポート。
- TLS VPN Clientを使用して、リモートクライアントの保護されたリソースへの接続を確認します。
初期化
TLSサーバーの起動時に最初の問題が発生しました。 「コントローラーが見つかりません」というメッセージが表示されました。 セキュリティコード会社の専門家とともに、かなり標準的ではない問題が特定されました。 PAKは、データセンターでBenQモニターを使用することを拒否し、他のユーザーと問題なく動作することが判明しました。
初期設定は簡単で、主にデバイスの名前だけでなく、IPアドレスとゲートウェイの決定から構成されます。 さらに、マスターキーの作成、エクスポート/インポート。
プロジェクトの顧客は2つのTLSサーバーを使用しました。 両方のTLSサーバーがアクティブ/アクティブでなければなりません。
マスターキーは1つのサーバーで作成され、他のサーバーにインポートされます。 マスターキー(クラスターキー)は、次の問題を解決するように設計されています。
- サーバー証明書の秘密鍵の暗号化。
- クラスタ要素間の安全な接続の組織。
マスターキーをエクスポートする際、TLSサーバーはTranscend 3.0 4GBから1つのUSBフラッシュドライブのみを受け入れました。 残念ながら、セキュリティコードが付属しているものも含め、フラッシュドライブは登場していません。
証明書のインポート
次に、Webフェイスを介してTLSサーバーに接続し、保護されたリソースを決定し、サーバーの証明書(ルートCA証明書、サーバー証明書、リモートサーバー管理用証明書、管理者証明書、CRL)をインストールする必要があります。 これらの証明書はすべて、1つのCAによって発行される必要があります。 Web経由の最初の接続では、「CSPセキュリティコード」ではなく、CryptoPro CSPを使用する必要があります。 証明書のその後の変更では、最初にCAルート証明書を削除してから、他の証明書を変更することをお勧めします。
すぐに戦闘証明書を作成できないため、テストCA Cryptoproで作成された証明書でTLSサーバーのクラスターの操作性を確認することにしました。
TLSサーバーでは、ユーザー認証を無効にすることができます。 この場合、TLSクライアントとインストールされた証明書(ルート、サーバー証明書、CRL)があれば、セキュアなチャネルが作成されます。 仕事には個人証明書は必要ありません。
接続確認
最初は、セキュリティコードのTLSクライアントの認定バージョンを使用して、保護されたリソースを介して保護されたリソースに接続する際に問題が発生しました。 セキュリティコードからTLSクライアント2.0を使用して保護されたリソースに接続することが判明しましたが、このバージョンはまだ認証段階です。 問題は、TLSのサーバーがファームウェアのリリースバージョンでこのルールを正しく実行しなかったため、保護されたリソースのリダイレクトが間違っていたために通過しませんでした。 この問題を解決するには、両方のTLSサーバーを再フラッシュし、作成されたバックアップを上げる必要がありました。
点滅手順は次のとおりです。
- サーバーデータベースを保存します(再度すべてを作成しないように)
- flashGUIプログラムを使用してFlashに画像をアップロードする
- BIOSに入るには、まずSobol PACの設定で、ウォッチドッグタイマーの応答時間を設定します。これは、BIOSの設定を変更するのに十分です
- ブート順序を変更し、フラッシュからブートを設定し、保存します
- 開始時にパーティションの変更に関するメッセージが表示されます。
- インストール中に、使用するデバッグバージョンとプラットフォームを選択します
- 再起動、BIOSの入力、インストール順序の変更、変更への同意
- サーバーをローカルで構成する
- サーバーに接続する
- ロードベース
TLSサーバーでデバッグモードに入るには、F2キーを押します。
バージョン1.2の場合、ファイル/ usr / share / tls / webmgr / templates / websrv / nginx / base
行proxy_redirectを削除して、チェックサムを再計算します。
操作が完了した後、セキュリティコードから認定されたTLSクライアントが起動され、顧客はシステムでの作業を主張しました。 しかし、ここに秘trickがあります。それはChromeブラウザーでは機能しませんでした。この作業は、単に顧客に必要なだけでした。 セキュリティコードのサポートに関連して多くのテストが行われた結果、すべてが認定バージョン(1.2.1068)よりも少し新しいバージョン(1.2.1073)で動作しました。
ところで、セキュリティコードからTLSクライアントをセットアップする際の落とし穴の1つ(バージョン2.0を除く)-仮想マシンでは機能しません。 テスト中、仮想マシンが頻繁に使用され、診断プロセスがさらに複雑になりました。
結論
最後にまとめたいと思います。 この製品は、セットアップとデプロイが簡単です。 開発者が取り組むべきものがまだあります。これはサーバーとクライアントの両方に当てはまります。 しかし、一般的に、製品は動作しており、クラスター構成で動作します。 システムは現在、障害なく動作し、負荷を保持しています。 弊社のフルコーンが、Continent TLSの迅速かつ効率的な展開に役立つことを願っています。
この記事はイリヤ・プラトノフが作成しました。