(57)【要約】  本発明の実施例は、クライアント機器とサーバー機器との間にSSH2接続を確立した状態で行うセキュアシェルSSH2プロトコルデータの収集方法及び装置に関し、該方法は、クライアント機器とサーバー機器との間に伝送されるSSH2データパケットを取得するステップと、SSH2データパケットを再編成して順序付きのネットワークデータパケットに配列するステップと、SSH2データパケットのタイプを順次に検出するステップと、SSH2データパケットのタイプが、SSH2データパケットがSSH2プロトコルハンドシェイク段階のデータパケットであることを示す場合、オリジナルのハンドシェイク情報を記録するとともに新しいハンドシェイク情報に取り替え、ハンドシェイク情報が十分である場合にSSH2暗号化キーネゴシエーション後の伝送暗号化キーを抽出するステップと、SSH2データパケットのタイプが、SSH2データパケットがSSH2プロトコル暗号文伝送段階のデータパケットであることを示す場合、抽出された伝送暗号化キーを利用して、暗号文データを平文データに変換して、平文データを収集結果として出力するステップとを含む。以上から分かるように、本発明の実施例において、データコレクターが標的型攻撃を受けにくく、且つ、収集効率を向上させ、ユーザ操作性がよい。【選択図】図３
2017533674.tif 000002
【特許請求の範囲】
【請求項１】
クライアント機器とサーバー機器との間にSSH2接続を確立した状態で行うセキュアシェルSSH2プロトコルデータの収集方法であって、前記方法は、
前記クライアント機器と前記サーバー機器との間に伝送されるSSH2データパケットを取得するステップと、
前記SSH2データパケットを再編成して順序付きのネットワークデータパケットに配列するステップと、
前記SSH2データパケットのタイプを順次に検出するステップと、
前記SSH2データパケットのタイプが、前記SSH2データパケットがSSH2プロトコルハンドシェイク段階のデータパケットであることを示す場合、オリジナルのハンドシェイク情報を記録するとともに新しいハンドシェイク情報に取り替え、前記ハンドシェイク情報が十分である場合、SSH2暗号化キーネゴシエーション後の伝送暗号化キーを抽出するステップと、
前記SSH2データパケットのタイプが、前記SSH2データパケットがSSH2プロトコル暗号文伝送段階のデータパケットであることを示す場合、抽出された前記伝送暗号化キーを利用して、前記SSH2プロトコル暗号文伝送段階のデータパケットに含まれる暗号文データを平文データに変換し、前記平文データを収集結果として出力するステップと
を含むことを特徴とするセキュアシェルSSH2プロトコルデータの収集方法。
【請求項２】
前記新しいハンドシェイク情報に取り替えたSSH2プロトコルハンドシェイク段階のデータパケットに対して、TCP（伝送制御プロトコル）パケットヘッダー及びIP（インターネットプロトコル）パケットヘッダーを改めて確定し、及び前記新しいハンドシェイク情報に取り替えたSSH2プロトコルハンドシェイク段階のデータパケットに対してデータパケットのカプセル化を改めて行って、前記クライアント機器又は前記サーバー機器である受信側機器に送信するステップと、
前記SSH2プロトコル暗号文伝送段階のデータパケットに対して、抽出された前記伝送暗号化キーを利用して前記平文データを暗号文データに暗号化し、TCPパケットヘッダー及びIPパケットヘッダーを改めて確定し、及び前記暗号文データに対してデータパケットのカプセル化を改めて行って、受信側機器に送信するステップと
を更に含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記SSH2データパケットのタイプが、前記SSH2データパケットがTCPペイロードを含まないデータパケットであることを示す場合、前記TCPペイロードを含まないデータパケットを受信側機器に送信するステップを更に含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記SSH2データパケットを再編成して順序付きのネットワークデータパケットに配列する前記ステップは、
SSH2接続の２つの方向のデータパケットを異なるキューに加え、TCPのシリアル番号SEQに応じて前記SSH2データパケットを順序付けること
を含むことを特徴とする請求項３に記載の方法。
【請求項５】
前記SSH2プロトコルハンドシェイク段階は、バージョンネゴシエーションサブ段階と、アルゴリズムネゴシエーションサブ段階と、暗号化キーネゴシエーションサブ段階とを含み、前記SSH2データパケットのタイプが、前記SSH2データパケットがSSH2プロトコルハンドシェイク段階のデータパケットであることを示す場合、オリジナルのハンドシェイク情報を記録するとともに新しいハンドシェイク情報に取り替え、該前記ハンドシェイク情報が十分である場合、SSH2暗号化キーネゴシエーション後の伝送暗号化キーを抽出する前記ステップは、
前記バージョンネゴシエーションサブ段階のデータパケットに対して、オリジナルのバージョンネゴシエーション情報を記録するとともに新しいバージョンネゴシエーション情報に取り替えることと、
アルゴリズムネゴシエーションサブ段階のデータパケットに対して、オリジナルのアルゴリズムネゴシエーション情報を記録するとともに新しいアルゴリズムネゴシエーション情報に取り替え、前記クライアント機器と前記サーバー機器のアルゴリズムネゴシエーション情報を記録した後に、前記クライアント機器側のアルゴリズムネゴシエーション結果と前記サーバー機器側のアルゴリズムネゴシエーション結果をそれぞれ抽出することと、
前記暗号化キーネゴシエーションサブ段階のデータパケットに対して、オリジナル暗号化キーネゴシエーション情報を記録するとともに新しい暗号化キーネゴシエーション情報に取り替え、SSH2プロトコルの新しい暗号化キー起用メッセージを受信した後に、前記クライアント機器側のSSH2伝送暗号化キーと前記サーバー機器側のSSH2伝送暗号化キーをそれぞれ抽出することと
を含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記SSH2データパケットのタイプが、前記SSH2データパケットがSSH2プロトコル暗号文伝送段階のデータパケットであることを示す場合、抽出された前記伝送暗号化キーを利用して、前記SSH2プロトコル暗号文伝送段階のデータパケットに含まれる暗号文データを平文データに変換し、前記平文データを収集結果として出力する前記ステップは、
入力側の伝送暗号化キーを利用して前記SSH2プロトコル暗号文伝送段階のデータパケットに含まれる暗号文データを平文データに変換し、ハッシュメッセージ認証コードHMAC値によって前記平文データの完全性をチェックすることと、
チェック結果が完全である前記平文データを収集結果として出力することと
を含むことを特徴とする請求項５に記載の方法。
【請求項７】
前記SSH2プロトコル暗号文伝送段階のデータパケットに対して、抽出された前記伝送暗号化キーを利用して前記平文データを暗号文データに暗号化することは、
出力側の伝送暗号化キーを利用してチェック後の前記平文データを暗号文データに暗号化し、且つ前記暗号文データのHMAC値を改めて計算して、前記暗号文データの完全性をチェックすることを含み、
前記TCPパケットヘッダー及びIPパケットヘッダーを改めて確定し、及び前記暗号文データに対してデータパケットのカプセル化を改めて行って、受信側機器に送信することは、
チェック結果が完全である前記暗号文データに対して、TCPパケットヘッダー及びIPパケットヘッダーを改めて確定し、及び前記暗号文データに対してデータパケットのカプセル化を改めて行って、受信側機器に送信することを含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記TCPパケットヘッダー及びIPパケットヘッダーを改めて確定することは、
前記データパケットの長さが変化したか否かを判断すること、
前記データパケットの長さが変化したと判断された場合、IPパケットヘッダーの全長、IPパケットヘッダーのヘッダーチェックサムフィールド、及びTCPパケットヘッダーにおけるシリアル番号SEQ、確認番号ACK、チェックサムフィールドを改めて確定することと、
前記データパケットの長さが変化していないと判断された場合、TCPパケットヘッダーにおけるSEQ、ACK、チェックサムフィールドを改めて確定することと
を含むことを特徴とする請求項２〜７のいずれか１項に記載の方法。
【請求項９】
クライアント機器とサーバー機器との間にSSH2接続を確立した状態で動作するセキュアシェルSSH2プロトコルデータの収集装置であって、
前記クライアント機器と前記サーバー機器との間に伝送されるSSH2データパケットを取得するための取得ユニットと、
前記取得ユニットが取得したSSH2データパケットを再編成して順序付きのネットワークデータパケットに配列するための再編成ユニットと、
前記再編成ユニットSSH2が再編成した後のデータパケットのタイプを順次に検出するための検出ユニットと、
前記検出ユニットが検出した前記SSH2データパケットのタイプが、前記SSH2データパケットがSSH2プロトコルハンドシェイク段階のデータパケットであることを示す場合、オリジナルのハンドシェイク情報を記録するとともに新しいハンドシェイク情報に取り替え、前記ハンドシェイク情報が十分である場合にSSH2暗号化キーネゴシエーション後の伝送暗号化キーを抽出するための第１処理ユニットと、
前記検出ユニットが検出した前記SSH2データパケットのタイプが、前記SSH2データパケットがSSH2プロトコル暗号文伝送段階のデータパケットであることを示す場合、抽出された前記伝送暗号化キーを利用して、前記SSH2プロトコル暗号文伝送段階のデータパケットに含まれる暗号文データを平文データに変換し、前記平文データを収集結果として出力するための第２処理ユニットと
を備えることを特徴とするセキュアシェルSSH2プロトコルデータの収集装置。
【請求項１０】
前記第１処理ユニットが新しいハンドシェイク情報に取り替えた前記SSH2プロトコルハンドシェイク段階のデータパケットに対して、伝送制御プロトコルTCPパケットヘッダー及びインターネットワーキングプロトコルIPパケットヘッダーを改めて確定し、及び新しいハンドシェイク情報に取り替えた前記SSH2プロトコルハンドシェイク段階のデータパケットに対してデータパケットのカプセル化を改めて行って、前記クライアント機器又は前記サーバー機器である受信側機器に送信するためのデータパケットカプセル化送信ユニットと、
前記第２処理ユニットが処理した後のSSH2プロトコル暗号文伝送段階のデータパケットに対して、抽出された前記伝送暗号化キーを利用して前記平文データを暗号文データに暗号化するための暗号化ユニットと
を更に備え、  前記データパケットカプセル化送信ユニットは、更に前記暗号化ユニットが暗号化した暗号文データに対してTCPパケットヘッダー及びIPパケットヘッダーを改めて確定し、及び前記暗号文データに対してデータパケットのカプセル化を改めて行って、受信側機器に送信することを特徴とする請求項９に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワークセキュリティ通信技術分野に関し、特にセキュアシェルSSH2プロトコルデータの収集方法及び装置に関する。
【背景技術】
【０００２】
ネットワークセキュリティの重要度の持続的上昇に伴って、セキュアシェル(SSH、Secure Shell)プロトコルは次第に幅広く適用されつつある。SSHプロトコルは、インターネットエンジニアリングタスクフォース(IETF、Internet Engineering Task Force)のネットワーク作業グループにより制定され、アプリケーション層とトランスポート層における確立したセキュリティプロトコルであり、現在、信頼でき、リモートログインセッション及びその他のネットワークサービスのためセキュリティを提供するプロトコルである。現在、SSHプロトコルは既にtelnet等のプロトコルから取って代わりつつあり、リモートログイン及び伝送代理の好適なプロトコルとなっている。SSH2プロトコルは、SSHプロトコルの2.xバージョンであり、RFC 4250-RFC 4254標準において詳細な定義及び説明があり、SSH2プロトコルは暗号化伝送の特徴を有する。ネットワークにおけるデータコレクターは直接ネットワークにおけるSSH2プロトコルデータを収集分析することができないため、特定の収集方法によって収集したSSH2プロトコルデータを暗号文データから平文データに変換する必要がある。
【０００３】
図１は従来技術におけるSSH2プロトコルデータの収集方法を示す模式図である。図１に示すように、クライアント機器は、直接にサーバー機器と接続を確立することができず、データコレクターによって間接的に接続を確立する。データコレクターは、明示的にネットワークに存在し、自分のIPアドレスを有し、SSH代理サーバー及びSSH代理クライアントを備えている。データコレクターは、SSH2プロトコルデータを収集する際に、二次ログインの方法を採用して、まずクライアント機器がデータコレクターへSSH接続及びログインを開始し、次に、データコレクターがサーバー機器にSSH接続を開始してログインし、データコレクターは２つのSSH接続を同時に維持する必要があり、得られた完全なSSHメッセージに基づき暗号解読して、収集したSSH2プロトコルデータを暗号文データから平文データに変換する。
【０００４】
以上から分かるように、従来技術におけるSSH2プロトコルデータの収集方法は下記の欠点が存在する。即ち、 (1)データコレクターは、明示的にネットワークに存在し、自分のIPアドレスを有するため、データコレクターのネットワーク位置を露出して、それにより標的型攻撃を受け易く、(2)データコレクターは、完全なSSHメッセージを取得してから暗号解読等の操作が行われるため、SSHメッセージが大きく、ネットワーク条件が悪く或いは並行ユーザ数が多い際に、顕著な収集の遅延が発生し、収集効率を低下させ、またSSHのユーザの操作性が低下する。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の実施例はSSH2プロトコルデータの収集方法及び装置を提供し、このデータコレクターは標的型攻撃を受けにくく、且つ、収集効率を向上させ、ユーザの操作性もよい。
【課題を解決するための手段】
【０００６】
一態様によれば、クライアント機器とサーバー機器との間にSSH2接続を確立した状態で行うSSH2プロトコルデータの収集方法を提供し、前記方法は、
前記クライアント機器と前記サーバー機器との間に伝送されるSSH2データパケットを取得するステップと、
前記SSH2データパケットを再編成して順序付きのネットワークデータパケットに配列するステップと、
前記SSH2データパケットのタイプを順次に検出するステップと、
前記SSH2データパケットのタイプが、前記SSH2データパケットがSSH2プロトコルハンドシェイク段階のデータパケットであることを示す場合、オリジナルのハンドシェイク情報を記録するとともに新しいハンドシェイク情報に取り替え、前記ハンドシェイク情報が十分である場合にSSH2暗号化キーネゴシエーション後の伝送暗号化キーを抽出するステップと、
前記SSH2データパケットのタイプが、前記SSH2データパケットがSSH2プロトコル暗号文伝送段階のデータパケットであることを示す場合、抽出された前記伝送暗号化キーを利用して、前記SSH2プロトコル暗号文伝送段階のデータパケットに含まれる暗号文データを平文データに変換し、該平文データを収集結果として出力するステップとを含む。
【０００７】
他の態様によれば、クライアント機器とサーバー機器との間にSSH2接続を確立した状態で動作するSSH2プロトコルデータの収集装置を提供し、前記装置は、
前記クライアント機器と前記サーバー機器との間に伝送されるSSH2データパケットを取得するための取得ユニットと、
前記取得ユニットが取得したSSH2データパケットを再編成して順序付きのネットワークデータパケットに配列するための再編成ユニットと、
前記再編成ユニットSSH2が再編成した後のデータパケットのタイプを順次に検出するための検出ユニットと、
前記検出ユニットが検出した前記SSH2データパケットのタイプが、前記SSH2データパケットがSSH2プロトコルハンドシェイク段階のデータパケットであることを示す場合、オリジナルのハンドシェイク情報を記録するとともに新しいハンドシェイク情報に取り替え、前記ハンドシェイク情報が十分である場合にSSH2暗号化キーネゴシエーション後の伝送暗号化キーを抽出するための第１処理ユニットと、
前記検出ユニットが検出した前記SSH2データパケットのタイプが、前記SSH2データパケットがSSH2プロトコル暗号文伝送段階のデータパケットであることを示す場合、抽出された前記伝送暗号化キーを利用して、前記SSH2プロトコル暗号文伝送段階のデータパケットに含まれる暗号文データを平文データに変換し、前記平文データを収集結果として出力するための第２処理ユニットとを備える。
【発明の効果】
【０００８】
本発明の実施例によるSSH2プロトコルデータの収集方法によれば、クライアント機器は、直接にサーバー機器のアドレスを目的アドレスとしてSSH2接続を確立するので、データコレクターによって二次ログインを行う必要がなく、該方法を実現するデータコレクターのためにネットワークアドレスを割り当てる必要がない。ここで、データコレクターは具体的には、一台のネットワーク交換機器、例えば、交換機又はルータであってよく、クライアント機器とサーバー機器の間に置かれ、自分のIPアドレスがない。従来技術では、データコレクターは一台の代理サーバーに相当して、クライアント機器は能動的にそれにログインする必要があるのに対し、本発明では、データコレクターはネットワークにおいて透明に柔軟に展開されることができるので、標的型攻撃を受けにくい。また、本発明のSSH2プロトコルデータの収集方法は、SSH2データパケットを処理単位とし、SSH2メッセージ全体を処理単位とするのでなないので、処理遅延が小さく、並行サービス能力が高く、収集効率を向上させ、ユーザ操作性が良い。
【図面の簡単な説明】
【０００９】
【図１】従来技術におけるSSH2プロトコルデータの収集方法を示す模式図である。
【図２】本発明の実施例におけるSSH2プロトコルデータの収集方法を示す模式図である。
【図３】本発明の一実施例におけるSSH2プロトコルデータの収集方法を示すフローチャートである。
【図４】本発明の他の実施例におけるSSH2プロトコルデータの収集方法を示す模式図である。
【図５】本発明の実施例におけるSSH2プロトコルデータの収集方法を採用してデータパケットを処理する際のデータパケット交換図である。
【図６】本発明の実施例におけるSSH2プロトコルデータの収集装置を示す装置構造図である。
【発明を実施するための形態】
【００１０】
以下、図面及び実施例によって、本発明の技術的解決手段を更に詳細的に説明する。
【００１１】
本発明の実施例の目的、技術的解決手段及び利点をより明らかにするために、以下に、本発明の実施例の図面を参照して、本発明の実施例における技術的解決手段を明らかに、且つ完全に説明するが、説明する実施例は本発明の全ての実施例ではなく、一部の実施例にすぎないことは勿論である。本発明における実施例に基づいて、当業者にとって容易に得られるすべての他の実施例は、いずれも本発明が保護する範囲に属する。
【００１２】
本発明の実施例を理解しやすくするために、以下、図面を参照して具体的な実施例で更に解釈して説明するが、これらの実施例は、本発明の実施例を限定するものではない。
【００１３】
図２は、本発明の実施例におけるSSH2プロトコルデータの収集方法を示す模式図であり、図２を参照する。図１に示す従来技術におけるSSH2プロトコルデータの収集方法と比較すると、従来の方法はSSH二次ログインの方式を採用し、収集装置データコレクターは明示的にネットワークに存在して、自分のIPアドレスを有し、SSH代理サーバー及び代理クライアントを備えており、クライアント及びサーバーと合計２本のIP/TCP/SSH接続を確立し、データを収集する際にSSHメッセージを処理単位とする。本発明の方法では、データコレクター収集装置は接続を確立せず、自分のIPアドレスを必要とせず、透明にクライアントとサーバーの間に直列的に位置して、クライアントとサーバーとの接続に基づいて、両方のSSH伝送暗号化キーペアを把握して、ネットワークデータパケットを処理単位としてデータを収集する。
【００１４】
図３は本発明の一実施例におけるSSH2プロトコルデータの収集方法を示すフローチャートであり、クライアント機器とサーバー機器との間にSSH2接続を確立する。図３に示すように、該方法は、以下のステップ301〜305を有する。
ステップ301、前記クライアント機器と前記サーバー機器との間に伝送されるSSH2データパケットを取得する。
ステップ302、前記SSH2データパケットを再編成して順序付きのネットワークデータパケットに配列する。
ステップ303、前記SSH2データパケットのタイプを順次に検出する。
ステップ304、SSH2データパケットのタイプが、前記SSH2データパケットがSSH2プロトコルハンドシェイク段階のデータパケットであることを示す場合、オリジナルのハンドシェイク情報を記録するとともに新しいハンドシェイク情報に取り替え、ハンドシェイク情報が十分である場合、SSH2暗号化キーネゴシエーション後の伝送暗号化キーを抽出する。
ステップ305、SSH2データパケットのタイプが、前記SSH2データパケットがSSH2プロトコル暗号文伝送段階のデータパケットであることを示す場合、抽出された前記伝送暗号化キーを利用して、前記SSH2プロトコル暗号文伝送段階のデータパケットに含まれる暗号文データを平文データに変換し、該平文データを収集結果として出力する。
【００１５】
本発明の実施例において、前記方法は、データパケットのカプセル化の処理ステップを更に含んでよく、新しいハンドシェイク情報に取り替えたSSH2プロトコルハンドシェイク段階のデータパケットに対して、伝送制御プロトコルのTCPパケットヘッダー及びインターネットワーキングプロトコルIPパケットヘッダーを改めて確定し、及び前記新しいハンドシェイク情報に取り替えたSSH2プロトコルハンドシェイク段階のデータパケットに対してデータパケットのカプセル化を改めて行って、前記クライアント機器又は前記サーバー機器である受信側機器に送信し；SSH2プロトコル暗号文伝送段階のデータパケットに対して、抽出された前記伝送暗号化キーを利用して前記平文データを暗号文データに暗号化し、TCPパケットヘッダー及びIPパケットヘッダーを改めて確定し、及び前記暗号文データに対してデータパケットのカプセル化を改めて行って、受信側機器に送信する。
【００１６】
また、TCPペイロードを含まないデータパケットに対しては、いずれの処理を行わなくてもよいため、前記方法は、
前記SSH2データパケットのタイプが、前記SSH2データパケットがTCPペイロードを含まないデータパケットであることを示す場合、前記TCPペイロードを含まないデータパケットを受信側機器に送信する。
【００１７】
ここで、上記TCPペイロードを含まないデータパケットは、具体的には、TCPマストヘッド（header）における確認番号(ACK、Acknowledge)データパケットであってよい。
【００１８】
本発明の実施例のステップ302において、前記の前記SSH2データパケットを再編成して順序付きのネットワークデータパケットに配列することは、具体的には、SSH2接続の２つの方向のデータパケットを異なるキューに加え、TCPのシリアル番号SEQに応じて前記SSH2データパケットを順序付けることを含む。
【００１９】
SSH2プロトコルハンドシェイク段階は、バージョンネゴシエーションサブ段階と、アルゴリズムネゴシエーションサブ段階と、暗号化キーネゴシエーションサブ段階とを含むため、ステップ304において、前記の前記SSH2データパケットのタイプが、前記SSH2データパケットがSSH2プロトコルハンドシェイク段階のデータパケットであることを示す場合、オリジナルのハンドシェイク情報を記録するとともに新しいハンドシェイク情報に取り替え、ハンドシェイク情報が十分である場合、SSH2暗号化キーネゴシエーション後の伝送暗号化キーを抽出し、具体的には、
バージョンネゴシエーションサブ段階のデータパケットに対して、オリジナルのバージョンネゴシエーション情報を記録するとともに新しいバージョンネゴシエーション情報に取り替えることと、
アルゴリズムネゴシエーションサブ段階のデータパケットに対して、オリジナルのアルゴリズムネゴシエーション情報を記録するとともに新しいアルゴリズムネゴシエーション情報に取り替え、前記クライアント機器と前記サーバー機器のアルゴリズムネゴシエーション情報を記録した後に、前記クライアント機器側のアルゴリズムネゴシエーション結果と前記サーバー機器側のアルゴリズムネゴシエーション結果をそれぞれ抽出することと、
暗号化キーネゴシエーションサブ段階のデータパケットに対して、オリジナル暗号化キーネゴシエーション情報を記録するとともに新しい暗号化キーネゴシエーション情報に取り替え、SSH2プロトコルの新しい暗号化キー起用メッセージを受信した後に、前記クライアント機器側のSSH2伝送暗号化キーと前記サーバー機器側のSSH2伝送暗号化キーをそれぞれ抽出することとを含む。
【００２０】
本発明の実施例のステップ305において、前記の前記SSH2データパケットのタイプが、前記SSH2データパケットがSSH2プロトコル暗号文伝送段階のデータパケットであることを示す場合、抽出された前記伝送暗号化キーを利用して、前記SSH2プロトコル暗号文伝送段階のデータパケットに含まれる暗号文データを平文データに変換し、前記平文データを収集結果として出力し、具体的には、
入力側の伝送暗号化キーを利用して前記SSH2プロトコル暗号文伝送段階のデータパケットに含まれる暗号文データを平文データに変換し、ハッシュメッセージ認証コードHMAC値によって前記平文データの完全性をチェックすることと、
チェック結果が完全である前記平文データを収集結果として出力することとを含む。
【００２１】
本発明の実施例において、前記SSH2プロトコル暗号文伝送段階のデータパケットに対して、抽出された前記伝送暗号化キーを利用して前記平文データを暗号文データに暗号化することは、具体的には、出力側の伝送暗号化キーを利用してチェック後の前記平文データを暗号文データに暗号化し、且つ前記暗号文データのHMAC値を改めて計算して、前記暗号文データの完全性をチェックすることを含み、
前記TCPパケットヘッダー及びIPパケットヘッダーを改めて確定し、及び前記暗号文データに対してデータパケットのカプセル化を改めて行って、受信側機器に送信することは、具体的には、チェック結果が完全である前記暗号文データに対して、TCPパケットヘッダー及びIPパケットヘッダーを改めて確定し、及び前記暗号文データに対してデータパケットのカプセル化を改めて行って、受信側機器に送信することを含む。
【００２２】
また、前記TCPパケットヘッダー及びIPパケットヘッダーを改めて確定することは、具体的には、前記データパケットの長さが変化したか否かを判断し、前記データパケットの長さが変化したと判断された場合、IPパケットヘッダーの全長、IPパケットヘッダーのヘッダーチェックサムフィールド、及びTCPパケットヘッダーにおけるシリアル番号SEQ、確認番号ACK、チェックサムフィールドを改めて確定し、前記データパケットの長さが変化していないと判断された場合、TCPパケットヘッダーにおけるSEQ、ACK、チェックサムフィールドを改めて確定することを含むことができる。
【００２３】
上記処理過程から分かるように、本発明の実施例によるSSH2プロトコルデータの収集方法によれば、クライアント機器は、直接的にサーバー機器のアドレスを目的アドレスとしてSSH2接続を確立するので、データコレクターによって二次ログインを行う必要がなく、該方法を実現するデータコレクターのためにネットワークアドレスを割り当てる必要がない。ここで、データコレクターは、具体的には、一台のネットワーク交換機器、例えば、交換機又はルータであってよく、クライアント機器とサーバー機器の間に置かれ、自分のIPアドレスがない。なお、従来技術においてデータコレクターは一台の代理サーバーに相当して、クライアント機器は能動的にそれをログインする必要があるのに対し、本発明では、データコレクターは、ネットワークにおいて透明に柔軟に展開することができるので、標的型攻撃を受けにくい。また、本発明のSSH2プロトコルデータの収集方法は、SSH2データパケットを処理単位とし、SSH2メッセージ全体を処理単位とするのではないので、処理遅延が小さく、並行サービス能力が高く、収集効率を向上させ、ユーザ操作性が良い。
【００２４】
以下、一つの具体的な実施例についてSSH2プロトコルデータの収集方法を詳細に説明する。
【００２５】
図４は本発明の他の実施例におけるSSH2プロトコルデータの収集方法を示す模式図であり、図４に示すように、該方法は以下のステップを含む。
ステップ1、データパケット再編成モジュールによって、SSH2接続の２つの方向のデータパケットを異なるキューに加え、TCPのSEQ番号に応じて順序付け、順序付きのネットワークデータパケットを形成した後に順次中間処理する。
【００２６】
ここで、ネットワークに伝送するデータパケットの順序が乱れることがあるため、データパケット再編成モジュールは、それらを順序付きの配列に回復し、それにより、シリアル番号が後のデータパケットを先に中間処理することによる中間処理時のデータエラーの発生を避ける。
【００２７】
ステップ2、データパケットの異なるタイプに基づき中間処理をする。
【００２８】
SSH2プロトコルハンドシェイク段階のデータパケットに対しては、これらのパケットがバージョンネゴシエーションサブ段階のデータパケットである場合、オリジナルのバージョンネゴシエーション情報を記録するとともに、新しいバージョンネゴシエーション情報に取り替える。一方、前記パケットがアルゴリズムネゴシエーションサブ段階のデータパケットである場合、オリジナルのアルゴリズムネゴシエーション情報を記録するとともに、新しいアルゴリズムネゴシエーション情報に取り替え、クライアント及びサーバーのアルゴリズムネゴシエーション情報を記録した後に、それぞれクライアント側とサーバー側のアルゴリズムネゴシエーション結果を抽出する。また、前記パケットが暗号化キーネゴシエーションサブ段階のデータパケットである場合、オリジナルの暗号化キーネゴシエーション情報を記録するとともに、新しい暗号化キーネゴシエーション情報に取り替え、SSH2プロトコルの新しい暗号化キー起用メッセージを受信した後に、それぞれクライアント側とサーバー側のSSH2伝送暗号化キーを抽出する。
【００２９】
SSH2プロトコル暗号文伝送段階のデータパケットに対して、まず入力側の伝送暗号化キーを利用してデータパケットにおける暗号文データを平文データに暗号解読して、ハッシュメッセージ認証コード(HMAC、Hash-based Message Authentication Code)値を計算して該メッセージをチェックする。次に、チェック後の平文SSH2データパケットを収集結果として出力し、最終的に出力側の伝送暗号化キーを利用してチェック後の平文SSH2メッセージを暗号文に暗号化し、且つHMAC値を改めて計算する。
【００３０】
ここで、HMAC値は、データパケットデータの完全性を検証することに用いられる。
【００３１】
TCPペイロードを含まないデータパケットに対しては、中間処理を行わなくてもよい。
【００３２】
ステップ3、データパケットカプセル化送信モジュールは、データパケットを、そのIPパケットヘッダー及びTCPパケットヘッダーを改めて計算した後に送信する。
【００３３】
ここで、中間処理過程において前記データパケットの長さが変化した場合、IPパケットヘッダーの全長、ヘッダーチェックサムフィールド、及びTCPパケットヘッダーにおけるSEQ、ACK、チェックサムフィールドを改めて計算する。中間処理過程において該データパケットの長さが変化していない場合、TCPパケットヘッダーにおけるSEQ、ACK、チェックサムフィールドを改めて計算する。
【００３４】
図５は本発明の実施例のSSH2プロトコルデータの収集方法を採用してデータパケットを処理する場合のデータパケット交換図であり、以下、図５を参照して本発明の方法を詳細に説明する。
【００３５】
以下の説明において、送られてくるネットワークデータパケットは、データパケット再編成モジュールによって順序付けられ、データパケットを転送する前にデータパケットカプセル化送信モジュールによってTCP/IPパケットヘッダーを統一的に修正される。パケットヘッダーの修正としては、中間処理過程において該データパケットの長さが変化した場合、IPパケットヘッダーの全長、ヘッダーチェックサムフィールド、及びTCPパケットヘッダーにおけるSEQ、ACK、チェックサムフィールドを改めて計算する。中間処理過程において該データパケットの長さが変化していない場合、TCPパケットヘッダーにおけるSEQ、ACK、チェックサムフィールドを改めて計算する。
【００３６】
(1)クライアントはTCP接続要求を開始し、サーバーとスリーウェイハンドシェイクの交換を行う。
【００３７】
(2)サーバーは、クライアントに自分のバージョンを送信し、収集装置は、バージョン情報を含むデータパケットを記録するとともに新しいバージョン情報を含むデータパケットに取り替える。同様に、クライアントは、サーバーに自分のバージョンを送信し、収集装置は、該データパケットを記録するとともに新しいバージョン情報を含むデータパケットに取り替える。
【００３８】
(3)サーバーは、クライアントにアルゴリズムネゴシエーション情報を送信し、収集装置は、アルゴリズムネゴシエーション情報を含むデータパケットを記録して、収集装置が処理できるアルゴリズムからなるアルゴリズムネゴシエーション情報に取り替える。同様に、クライアントは、サーバーにアルゴリズムネゴシエーション情報を送信し、収集装置は、アルゴリズムネゴシエーション情報を含むデータパケットを記録し、収集装置が処理できるアルゴリズムからなるアルゴリズムネゴシエーション情報に取り替える。クライアント及びサーバーのアルゴリズムネゴシエーション情報を記録した後に、クライアント側及びサーバー側のそれぞれのアルゴリズムネゴシエーション結果を抽出する。
【００３９】
(4)クライアントとサーバーの間でDH暗号化キーネゴシエーションを行い、収集装置はその中のDH暗号化キーネゴシエーション情報を記録して、その中のDH暗号化キー交換パラメータ、サーバー公開鍵及びデジタル署名等の暗号化キーネゴシエーション情報を新しい暗号化キーネゴシエーション情報に取り替える。新しい暗号化キー起用通知を含むデータパケットを受信した後に、クライアント側及びサーバー側のそれぞれのSSH2伝送暗号化キーを抽出する。
【００４０】
具体的な中間処理過程は、以下の通りである。
【００４１】
バージョンネゴシエーション段階では、収集装置は、クライアントとサーバーの両方が送信したバージョンメッセージを記録して、且つそれを自分のバージョンメッセージに取り替えて後方に転送する。この過程でデータパケットの長さが変化することがある。
【００４２】
アルゴリズムネゴシエーション段階では、収集装置はクライアントとサーバーの両方が送信したアルゴリズムネゴシエーションメッセージを記録して、且つそれを収集装置がサポートするアルゴリズムで作成されたアルゴリズムネゴシエーションメッセージに取り替える。この過程で、データパケットの長さが変化することがある。
【００４３】
暗号化キーネゴシエーション段階では、図５におけるSSH2_GEXREQメッセージに対して、収集装置はメッセージパラメータを記録して転送する。この過程ではデータパケットの長が変化することはない。図５におけるSSH2_GEXGRPメッセージに対して、収集装置はその中のDH暗号化キー交換パラメータの公開番号P及びGを記録し、そして転送する。この過程ではデータパケットの長さが変化することはない。図５におけるSSH2_GEXINITメッセージに対して、収集装置は2対のDH暗号化キーの交換のためのプライベート秘密値及び公開秘密値を生成し、この2対の秘密値はそれぞれクライアント及びサーバーに対応する。収集装置はメッセージにおけるクライアントの公開秘密値を自分のクライアントの公開秘密値に取り替える。この過程ではデータパケットの長さが変化することがある。図５におけるSSH2_GEXREPメッセージに対して、収集装置はサーバーの公開秘密値を自分のサーバーに対応する公開秘密値に取り替え、サーバーの暗号化公開鍵を収集装置の暗号化公開鍵に取り替え、サーバーのデジタル署名を収集装置のデジタル署名に取り替える。この過程では、データパケットの長さが変化することがある。暗号化キーネゴシエーション段階を終了した後に、収集装置はDH暗号化キーの交換の計算規則に基づき、クライアント側及びサーバー側のそれぞれの暗号化キー交換結果を計算する。
【００４４】
この計算規則は標準なものであり、従来の暗号学アルゴリズムを採用することができる。
【００４５】
DH暗号化キー交換アルゴリズムの基本原理は、以下の通りである。
【００４６】
(1)クライアントは１つのプライベート秘密値xをランダムに選択し、1<x<p-1、e＝g^x mod pを計算し、算出したeをサーバー側に送信する。pは１つの大きな素数であり、gはpの原始根である。p及びgは両方が共有する1対のパラメータである。
【００４７】
(2)サーバーもランダムに１つのプライベート秘密値yを生成し、1<y<p-1、f＝g^y mod pを計算し、算出したfをクライアントに送信する。
【００４８】
(3)サーバーはクライアントから送信されたeを受信して、以下の式で暗号化キーネゴシエーション結果を計算する。
K＝(e)^y mod p
【００４９】
(4)クライアントはサーバー側から送信されたfを受信し、同様に、下記の式で暗号化キーネゴシエーション結果を計算する。
K＝(f)^x mod p
【００５０】
本発明の実施例において、収集装置はデータパケットにおけるDH暗号化キーの交換のためのパラメータを取り替えることによって、それぞれクライアント、サーバーに暗号化キーを交換する目的を達成し、クライアント側及びサーバー側の秘密鍵ネゴシエーション結果を取得する。
【００５１】
(5)クライアントとサーバーの間で暗号文伝送を行う際に、収集装置は、まず入力側の伝送暗号化キーを利用してデータパケットにおけるSSH2メッセージを平文に暗号解読し、HMAC値を計算して該メッセージをチェックする。次に、平文SSH2データパケットを収集結果として出力し、最終的に出力側の伝送暗号化キーを利用して平文SSH2メッセージを暗号文に暗号化し、且つHMAC値を改めて計算する。
【００５２】
ここで、クライアント及びサーバーが持つ暗号化キーが異なるため、クライアントが暗号化したデータをサーバーの暗号化キーによって解くことができない。そこで、中間のデータ収集装置によってまずクライアント暗号化キーで暗号解読し、再びサーバー暗号化キーで暗号化し、これにより、サーバーは平文を暗号解読することが可能となる。このため、このデータ収集装置は入力側の暗号化キーで暗号解読し、再び出力側の暗号化キーで暗号化する。
【００５３】
(6)上記過程において、例えばACKパケット等のTCPペイロードを含まないデータパケットも存在することがあり、これに対しては、収集装置は中間処理のステップでデータパケットを変えない。
【００５４】
上記方法に対応して、本発明はSSH2プロトコルデータの収集装置を更に提供する。
【００５５】
図６は本発明の実施例におけるクライアント機器とサーバー機器との間にSSH2接続を確立した状態で動作するSSH2プロトコルデータの収集装置を示す装置構造図であり、この装置は、
前記クライアント機器と前記サーバー機器との間に伝送されるSSH2データパケットを取得するための取得ユニット601と、
前記取得ユニット601が取得したSSH2データパケットを再編成して順序付きのネットワークデータパケットに配列するための再編成ユニット602と、
前記再編成ユニット602がSSH2再編成した後のデータパケットのタイプを順次に検出するための検出ユニット603と、
前記検出ユニット603が検出した前記SSH2データパケットのタイプが、前記SSH2データパケットがSSH2プロトコルハンドシェイク段階のデータパケットであることを示す場合、オリジナルのハンドシェイク情報を記録するとともに新しいハンドシェイク情報に取り替え、ハンドシェイク情報が十分である場合にSSH2暗号化キーネゴシエーション後の伝送暗号化キーを抽出する第１処理ユニット604と、
前記検出ユニット603が検出した前記SSH2データパケットのタイプが、前記SSH2データパケットがSSH2プロトコル暗号文伝送段階のデータパケットであることを示す場合、抽出された前記伝送暗号化キーを利用して、前記SSH2プロトコル暗号文伝送段階のデータパケットに含まれる暗号文データを平文データに変換し、前記平文データを収集結果として出力する第２処理ユニット605とを備える。
【００５６】
好ましくは、前記装置は、
前記第１処理ユニットが新しいハンドシェイク情報に取り替えた前記SSH2プロトコルハンドシェイク段階のデータパケットに対して、伝送制御プロトコルTCPパケットヘッダー及びインターネットワーキングプロトコルIPパケットヘッダーを改めて確定し、及び新しいハンドシェイク情報に取り替えた前記SSH2プロトコルハンドシェイク段階のデータパケットに対してデータパケットのカプセル化を改めて行って、前記クライアント機器又は前記サーバー機器である受信側機器に送信するデータパケットカプセル化送信ユニットと、
前記第２処理ユニットが処理された後のSSH2プロトコル暗号文伝送段階のデータパケットに対して、抽出された前記伝送暗号化キーを利用して前記平文データを暗号文データに暗号化するための暗号化ユニットと
を更に備え、
前記データパケットカプセル化送信ユニットは、前記暗号化ユニットが暗号化した暗号文データに対してTCPパケットヘッダー及びIPパケットヘッダーを改めて確定し、及び前記暗号文データに対してデータパケットのカプセル化を改めて行って、受信側機器に送信する。
【００５７】
当業者が更に意識すべきであるのは、本文に開示された実施例において説明した各例のユニット及びアルゴリズムステップの結合は、電子ハードウェア、コンピュータソフトウェア或いは両者の結合によって実現できる。ハードウェア及びソフトウェアの互換性を明らかに説明するために、様々な実施例の組成及びステップは、上記に説明した機能に応じて一般的に説明した。これらの機能はハードウェア或いはソフトウェア方式によって実行するかは、技術的解決手段の特定アプリケーション及び設計の制約条件によって決められる。当業者は各特定のアプリケーションに対して異なる方法を使用して説明した機能を実現するが、このような実現は本発明の範囲内である。
【００５８】
本文に開示された実施例で説明した方法又はアルゴリズムのステップはハードウェア、プロセッサで実行するソフトウェアモジュール、或いは両者の結合によって実施されうる。ソフトウェアモジュールはランダムアクセスメモリ(RAM)、メモリ、読み取り専用メモリ(ROM)、電気的にプログラム可能なROM、電気的に消去可能なプログラマブルROM、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、又は技術分野において既知の任意のその他の形式の記憶媒体に配置することができる。
【００５９】
最後に、以上の実施例は本発明の技術的解決手段を説明するためだけのものであり、制限するためのものではない。実施例を参照して本発明を詳細に説明したが、当業者は、本発明の技術的解決手段に対する修正や均等な置き替えは、本発明の技術的解決手段の精神及びび範囲を逸脱せず、本発明の請求項の範囲に含まれることを理解すべきである。
【図１】
2017533674.tif 000003
【図２】
2017533674.tif 000004
【図３】
2017533674.tif 000005
【図４】
2017533674.tif 000006
【図５】
2017533674.tif 000007
【図６】
2017533674.tif 000008
【国際調査報告】
2017533674.tif 000009
2017533674.tif 000010
2017533674.tif 000011
2017533674.tif 000012