(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-15
(45)【発行日】2024-05-23
(54)【発明の名称】端末のネットワーク接続を認証及び制御するためのシステム及びそれに関する方法
(51)【国際特許分類】
H04L 67/141 20220101AFI20240516BHJP
G06F 21/31 20130101ALI20240516BHJP
【FI】
H04L67/141
G06F21/31
(21)【出願番号】P 2023136154
(22)【出願日】2023-08-24
(62)【分割の表示】P 2022515499の分割
【原出願日】2020-09-24
【審査請求日】2023-08-24
(32)【優先日】2019-09-24
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-09-24
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】10-2020-0100062
(32)【優先日】2020-08-10
(33)【優先権主張国・地域又は機関】KR
【早期審査対象出願】
(73)【特許権者】
【識別番号】521105732
【氏名又は名称】プライビット テクノロジー インク
(74)【代理人】
【識別番号】110002343
【氏名又は名称】弁理士法人 東和国際特許事務所
(72)【発明者】
【氏名】キム、 ヨンラン
【審査官】羽岡 さやか
(56)【参考文献】
【文献】特表2018-508140(JP,A)
【文献】米国特許出願公開第2019/0222559(US,A1)
【文献】特表2017-537501(JP,A)
【文献】特開2016-189127(JP,A)
【文献】特開2015-053069(JP,A)
【文献】米国特許第07318234(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 67/141
G06F 21/31
(57)【特許請求の範囲】
【請求項1】
サーバであって、
通信回路と、データベースを保存するメモリと、前記通信回路及び前記メモリと作動的に連結されるプロセッサとを含み、
前記プロセッサは、
端末の接続制御アプリケーションから、前記端末に保存されたターゲットアプリケーションの目的地ネットワークに対するネットワーク接続を要請する第1要請を受信し、前記第1要請は、
前記端末と前記サーバの間の多様な動作を行うための制御データパケットが伝送される制御フローの識別情報、前記ターゲットアプリケーションの識別情報、及び前記目的地ネットワークの識別情報を含み、
前記第1要請に含まれた情報及び前記データベースに基づいて前記ターゲットアプリケーションが接続可能であるかターゲット可否を確認し、
前記ターゲットアプリケーションが接続可能であれば、前記データベースと、前記ターゲットアプリケーションの識別情報及び前記目的地ネットワークの識別情報に基づいて、前記ターゲットアプリケーションと前記目的地ネットワークに対応するデータフローの認証が必要であるかを確認し、
前記確認された結果を前記通信回路を利用して前記接続制御アプリケーションに伝送するように構成された、サーバ。
【請求項2】
前記プロセッサは、
前記データフローの認証が必要であれば、認証方式を示す応答を前記通信回路を介して前記接続制御アプリケーションに伝送するように構成された、請求項1に記載のサーバ。
【請求項3】
前記プロセッサは、
前記端末から前記認証方式を介して獲得された認証情報を受信し、
前記データベースに基づいて前記認証情報が有効であるかを確認し、
前記認証情報が有効でなければ、前記ネットワーク接続が不可能であることを示す応答を前記通信回路を介して前記接続制御アプリケーションに伝送するように構成された、請求項2に記載のサーバ。
【請求項4】
前記プロセッサは、
前記認証情報が有効であれば、前記データベースと、前記ターゲットアプリケーションの識別情報及び前記目的地ネットワークの識別情報に基づいて前記ターゲットアプリケーションと前記目的地ネットワークのゲートウェイ間の認可されたトンネルが存在するかを確認し、
前記認可されたトンネルが存在すると、前記認可されたトンネルの識別情報を伝送するか、前記認可されたトンネルが存在しなければトンネルを生成するために必要な情報を伝送するか、または前記データベースに含まれる政策を満足するトンネルが存在しなければ、前記ターゲットアプリケーションの前記目的地ネットワークに対するネットワーク接続が不可能であることを示す情報を伝送するように構成された、
請求項3に記載のサーバ。
【請求項5】
前記プロセッサは、
前記接続制御アプリケーションから前記サーバに対するコントローラ接続を要請する第2要請を受信し、前記第2要請は前記端末、前記接続制御アプリケーション、または前記端末が属するネットワークのうち少なくとも1つの識別情報を含み、
前記第2要請に含まれる前記識別情報及び前記データベースに基づいて前記端末が接続可能な装置であるか否かを決定し、
前記端末が接続可能な装置であれば、前記制御フローを生成し、
前記通信回路を利用して前記生成された制御フローの識別情報を前記端末に伝送するように構成された、請求項4に記載のサーバ。
【請求項6】
前記プロセッサは、
前記制御フローを介し、前記接続制御アプリケーションから前記端末のユーザに対するユーザ認証を要請する第3要請を受信し、前記第3要請はユーザ認証と関連されたユーザの識別情報を含み、
前記第3要請に含まれる情報及び前記データベースに基づいて前記端末のユーザを認証し、
前記通信回路を利用し、前記ユーザ認証の結果を前記制御フローを介して前記接続制御アプリケーションに伝送するように構成された、請求項5に記載のサーバ。
【請求項7】
前記プロセッサは、
前記接続制御アプリケーションから
、ネットワーク接続解除を要請する第4要請を受信し、
前記第4要請に応答して前記制御フローを除去し、
前記通信回路を利用し、前記ゲートウェイに前記制御フローに属するデータフローの除去を要請するように構成された、請求項6に記載のサーバ。
【発明の詳細な説明】
【技術分野】
【0001】
本文書で開示される実施形態は、ネットワーク環境で端末のネットワーク接続を認証及び制御するための技術に関する。
【背景技術】
【0002】
多数の装置は、ネットワークを介してデータを通信することができる。例えば、スマートフォンは、インターネットを介してサーバとデータを送信したり受信することができる。ネットワークは、インターネットのような公用ネットワーク(public network)だけではなく、イントラネットのような私設ネットワーク(private network)を含むことができる。
【0003】
ネットワークに対する無分別な接続を統制するためにTCP(transmission control protocol)/IP(internet protocol)を基盤としてネットワークへの接続を制限する技術が適用されている。例えば、NAC(network access controller)は、認可された端末が認可されたIPアドレスの提供を受けることによりネットワークに接続するように許容し、非認可された端末が非認可されたIPアドレスを用いる場合、ARPスプーフィング(address resolution protocol spoofing)を利用して非認可された端末を遮断する方式である。ファイアウォール(firewall)は、IPヘッダー情報に含まれる出発地IP、目的地IP、及びポート情報と、政策に基づいてデータパケットの伝送を許容するか否かを決定する方式である。VPN(virtual private network)は、TCP/IPプロトコル上で暗号化が適用されたトンネルを利用することでデータパケットの無欠性及び機密性を保障する方式である。最近では、NAC、ファイアウォール、及びVPNのうち少なくとも2つ以上の保安技術を活用する企業が増加しており、その他にも最初のネットワーク接続時にユーザの身元を認証するためにキーイン(Key In)方式(例:ID及びパスワード入力)またはマルチファクター認証(muliti factor authentication)方式が用いられている。
【発明の概要】
【発明が解決しようとする課題】
【0004】
ARPスプーフィングは、ネットワークに負荷を与えるので、最近は、これを迂回する技術が発達している。ファイアウォールは、データパケットのフローを制御するためのものなので、2つのノード間の連結(connection)生成過程で直接的に関与できないことがある。VPNは、トンネルが生成された後のデータパケットのフローに対する管理に脆弱である。また、APT(advanced persistent threat)は、端末にキーロガー(key logger)を実行して端末の制御圏を奪取することができるマルウェアを隠匿する方式を用いている。ユーザの身元を認証する方式は、最初のネットワーク接続後には行われないので、VPNやNAC基盤の接続時にキーロガーを用いて取得したID及びパスワードを用いるクレデンシャルスタッフィング(credential stuffing)が頻繁に発生し得る。それだけではなく、前記技術は、TCP/IPに基づくため、OSI(open system interconnection)階層中で他の階層(例:応用階層)に対する保安に脆弱であり得る。
【0005】
本文書に開示される多様な実施形態は、ネットワーク環境で前述した問題点を解決するためのシステム及びそれに関する方法を提供する。
【課題を解決するための手段】
【0006】
本文書に開示される一実施形態による端末は、通信回路、前記通信回路と作動的に連結されるプロセッサ、及び前記プロセッサと作動的に連結され、ターゲットアプリケーション及び接続制御アプリケーションを保存するメモリを含み、前記メモリは、前記プロセッサにより実行されるとき、前記端末が、前記接続制御アプリケーションを介し、前記ターゲットアプリケーションの目的地ネットワークに対するネットワーク接続イベントを感知し、前記接続制御アプリケーションを介し、前記ターゲットアプリケーションの識別情報及び前記目的地ネットワークに対応するデータフロー情報が存在するかを確認し、前記接続制御アプリケーションを介し、前記データフロー情報が示すデータフローの認証が有効であるかを確認し、及び前記データフロー情報が存在しないかまたは前記データフローの認証が有効でなければ、前記ターゲットアプリケーションのデータパケットをドロップ(drop)するか、または前記データフロー情報が存在して前記データフローの認証が有効であれば、前記ターゲットアプリケーションのデータパケットを伝送するようにする命令語を保存することができる。
【0007】
本文書に開示される一実施形態によるサーバは、通信回路、データベースを保存するメモリ、及び前記通信回路及び前記メモリと作動的に連結されるプロセッサを含み、前記プロセッサは、端末の接続制御アプリケーションから、前記端末に保存されたターゲットアプリケーションの目的地ネットワークに対するネットワーク接続を要請する第1要請を受信し、前記第1要請は、制御フローの識別情報、前記ターゲットアプリケーションの識別情報、及び前記目的地ネットワークの識別情報を含み、前記第1要請に含まれた情報及び前記データベースに基づいて前記ターゲットアプリケーションが接続可能か否かを確認し、前記ターゲットアプリケーションが接続可能であれば、前記データベースと、前記ターゲットアプリケーションの識別情報及び前記目的地ネットワークの識別情報に基づいて前記ターゲットアプリケーションと前記目的地ネットワークに対応するデータフローの認証が必要であるかを確認し、前記確認された結果を前記通信回路を利用して前記接続制御アプリケーションに伝送するように構成され得る。
【0008】
本文書に開示される一実施形態によるゲートウェイは、端末からデータパケットを受信し、前記受信されたデータパケットが外部サーバにより認可されたトンネルを介して受信されたのかを確認し、前記データパケットに含まれた認証情報に基づいて前記データパケットが有効であるかを確認し、及び前記データパケットが前記認可されたトンネルを介して受信されないか前記データパケットが有効でなければ、前記データパケットをドロップするか、または前記データパケットが前記認可されたトンネルを介して受信され、前記データパケットが有効であれば、前記データパケットを目的地ネットワークにフォワーディングするように構成され得る。
【発明の効果】
【0009】
本文書に開示される実施形態によると、端末は認可されないネットワーク、端末、ユーザ、またはアプリケーションのデータパケット伝送を遮断することができる。
【0010】
また、本文書に開示される実施形態は、NACのような広範囲なIPアドレス基盤のネットワーク保安技術に比べて政策設定及び回収の問題を解決し、迂迴的な攻撃を防止することができる。
【0011】
また、本文書に開示される実施形態は、ゼロトラストネットワーク環境で MITM(man in the middle attack)攻撃を遮断することができるので、区間保護のみ提供するVPNに比べてトンネル基盤の接続制御を行うことができる。
【0012】
また、本文書に開示される実施形態は、端末及びゲートウェイ段階でそれぞれネットワーク接続を遮断することでネットワーク接続時点に強化された認証が行われない場合に迂回データパケットの目的地ネットワークへの接続試みを遮断することができる。
【0013】
また、本文書に開示される実施形態による接続制御アプリケーションは、端末に隠匿して実行中のマルウェアが事前に取得した認証情報を活用し、対象ネットワークに接続しようとするクレデンシャルスタッフィングを基本的に遮断することができる。
【0014】
また、本文書に開示される実施形態による接続制御アプリケーションは、コントローラの指示に応じてネットワーク接続時にキーロガーが収集することができない強化された認証を行い、有効な認証を介してネットワーク接続を許容することでより安全な保安要素を提供することができる。
【0015】
その他、本文書を介して直接的または間接的に把握される多様な効果が提供され得る。
【図面の簡単な説明】
【0016】
【
図1】複数のネットワークを含む環境を示す図である。
【
図2】多様な実施形態によるネットワーク環境内のアーキテクチャを示す 図である。
【
図3】多様な実施形態によりコントローラに保存されたデータベースを示す機能的ブロック図である。
【
図4】多様な実施形態による端末の機能的ブロック図である。
【
図5】多様な実施形態によりデータパケットの伝送を制御する動作を説明する図である。
【
図6】多様な実施形態によるコントローラ接続のための信号のフローチャート図である。
【
図7】多様な実施形態によるコントローラ接続のためのユーザインターフェース画面を示す図である。
【
図8】多様な実施形態によるユーザ認証のための信号のフローチャート図である。
【
図9】多様な実施形態によるネットワーク接続を制御するための信号のフローチャート図である。
【
図10a】多様な実施形態によるネットワーク接続が遮断されるときのユーザインターフェース画面示す図である。
【
図10b】多様な実施形態によるネットワーク接続が許容されるときのユーザインターフェース画面を示す図である。
【
図10c】多様な実施形態による強化された認証のためのユーザインターフェース画面を示す図である。
【
図11】多様な実施形態により端末でネットワーク接続を制御するための動作フローチャート図である。
【
図12】多様な実施形態により端末でネットワーク接続を制御するための他の動作フローチャート図である。
【
図13】多様な実施形態によりネットワーク接続を認証するための信号のフローチャート図である。
【
図14】多様な実施形態によるデータパケットの構造を示す図である。
【
図15】多様な実施形態により端末でデータパケットを伝送するための動作フローチャート図である。
【
図16】多様な実施形態によりゲートウェイでデータパケットのフォワーディング(またはラウティング)を制御するための動作フローチャート図である。
【
図17】多様な実施形態によりネットワーク接続を解除するための信号のフローチャート図である。
【
図18】多様な実施形態によりネットワーク接続を解除するためのユーザインターフェース画面を示す図である。
【0017】
図面の説明と関連して、同一または類似の構成要素に対しては同一または類似の参照符号が用いられ得る。
【発明を実施するための形態】
【0018】
以下、本発明の多様な実施形態が図を参照して記載される。しかし、これは本発明を特定の実施形態に対して限定しようとするものではなく、本発明の実施形態の多様な変更(modification)、均等物(equivalent)、及び/または代替物(alternative)を含むものと理解しなければならない。
【0019】
本文書において、アイテムに対応する名詞の単数型は、関連の文脈上明らかに異なって指示しない限り、前記アイテム1つまたは複数個を含むことができる。本文書において「AまたはB」、「A及びBの少なくとも1つ」、「AまたはBの少なくとも1つ」、「A、BまたはC」、「A、B及びCの少なくとも1つ」及び「A、B、またはCの少なくとも1つ」のような語句のそれぞれは、その語句中で該当する語句にともに羅列された項目のいずれか1つ、またはそれら全ての可能な組み合わせを含むことができる。「第1」、「第2」、または「1番目」または「2番目」のような用語は、単に当該構成要素を他の当該構成要素と区分するために使用されてよく、当該構成要素を他の側面(例:重要性または順序)で限定しない。ある(例:第1)構成要素が異なる(例:第2)構成要素に、「機能的に」または「通信的に」という用語とともに、またはこのような用語なく、「カップルド」または「コネクテッド」と言及された場合、それは、前記ある構成要素が前記異なる構成要素に直接的に(例:有線で)、無線で、または第3構成要素を介して連結され得るということを意味する。
【0020】
本文書において説明される構成要素のそれぞれの構成要素(例:モジュールまたはプログラム)は、単数または複数の個体を含むことができる。多様な実施形態によると、当該構成要素のうち1つ以上の構成要素または動作が省略されるか、または1つ以上の他の構成要素または動作が追加され得る。大体的にまたは追加的に、複数の構成要素(例:モジュールまたはプログラム)は1つの構成要素に統合され得る。このような場合、統合された構成要素は、前記複数の構成要素それぞれの構成要素の1つ以上の機能を前記統合以前に前記複数の構成要素中の当該構成要素によって行われることと同一または類似に行うことができる。多様な実施形態によると、モジュール、プログラムまたは異なる構成要素によって行われる動作は、順次、並列的に、繰り返して、またはヒューリスティックに実行されるか、前記動作のうち1つ以上が異なる順に実行されるか、省略されるか、または1つ以上の他の動作が追加され得る。
【0021】
本文書において用いられる用語「モジュール」は、ハードウェア、ソフトウェアまたはファームウエアに具現されたユニットを含むことができ、例えば、ロジック、論理ブロック、部品、または回路のような用語と相互互換的に用いられ得る。モジュールは、一体に構成された部品または1つまたはそれ以上の機能を行う、前記部品の最小単位またはその一部となり得る。例えば、一実施形態によると、モジュールは、ASIC(application-specific integrated circuit)の形態に具現され得る。
【0022】
本文書の多様な実施形態は、機器(machine)によって読み取ることができる保存媒体(storage medium)(例:メモリ)に保存された1つ以上の命令語を含むソフトウェア(例:プログラムまたはアプリケーション)として具現され得る。例えば、機器のプロセッサは、保存媒体から保存された1つ以上の命令語の少なくとも1つの命令を呼び出し、それを実行することができる。これは、機器が前記呼び出された少なくとも1つの命令語によって少なくとも1つの機能を行うように運営されることを可能とする。前記1つ以上の命令語は、コンパイラによって生成されたコードまたはインタプリタによって実行され得るコードを含むことができる。機器で読み取ることができる保存媒体は、非一時的(non-transitory)保存媒体の形態で提供され得る。ここで、「非一時的」は、保存媒体が実在(tangible)する装置であり、信号(signal)(例:電磁気波)を含まないということを意味するだけであり、この用語はデータが保存媒体に半永久的に保存される場合と臨時的に保存される場合とを区分しない。
【0023】
本文書において開示された多様な実施形態による方法は、コンピュータプログラム製品(computer program product)に含まれて提供され得る。コンピュータプログラム製品は、商品として販売者及び購買者の間に取引され得る。コンピュータプログラム製品は、機器で読み取ることができる保存媒体(例:compact disc readonly memory(CD-ROM))の形態で配布されるか、またはアプリケーションストア(例:プレイストアTM)を介してまたは2つのユーザ装置(例:スマートフォン)間に直接、オンラインで配布(例:ダウンロードまたはアップロード)され得る。オンライン配布の場合に、コンピュータプログラム製品の少なくとも一部は、製造社のサーバ、アプリケーションストアのサーバ、または中継サーバのメモリのような機器で読み出すことができる保存媒体に少なくとも一時保存されるか、臨時的に生成され得る。
【0024】
図1は、複数のネットワークを含む環境を示す図である。
【0025】
図1を参照すると、第1ネットワーク10及び第2ネットワーク20は互いに異なるネットワークであり得る。例えば、第1ネットワーク10はインターネットのような公用ネットワークで、第2ネットワーク20はイントラネットまたはVPNのような私設ネットワークであり得る。
【0026】
第1ネットワーク10は、端末101を含むことができる。
図1及び以下に記述される実施形態において、「端末」は、データ通信を行うことができる多様な形態の装置であり得る。例えば、端末101は、スマートフォンまたはタブレットのような携帯装置、デスクトップ(desktop)またはラップトップ(laptop)のようなコンピュータ装置、マルチメディア装置、医療機器、カメラ、ウェアラブル装置、VR(virtual reality)装置、または家電装置を含むことができ、前述した機器に限定されない。端末101は、「電子装置」または「ノード」としても参照され得る。
【0027】
端末101は、第2ネットワーク20への接続(access)を試み、第2ネットワーク20に含まれたサーバ102a、102bにデータを伝送することができる。端末101は、ゲートウェイ103及びトンネル105を介してデータをサーバ102a、102bに伝送することができる。
図1は、第2ネットワーク20がサーバのみを含む例を示すが、多様な実施形態によると、第2ネットワーク20は、端末101のような電子装置または端末をさらに含むことができる。
【0028】
端末101の第1ネットワーク10に対する接続が承認されると、端末101は第1ネットワーク10に含まれた全てのサーバと通信することができるので、端末101は悪性(malicious)プログラムの攻撃から露出され得る。例えば、端末101は、インターネットウェブブラウザ110a、ビジネスアプリケーション110bのような信頼された(trusted)及び/または保安された(secure)アプリケーションだけではなく、悪性コード110c、感染した(infected)ビジネスアプリケーション110dのように信頼されないか保安されないアプリケーションのデータを受信することができる。
【0029】
悪性プログラムから感染した端末101は、第2ネットワーク20への接続及び/またはデータ伝送を試みることができる。第2ネットワーク20がVPNのようにIPに基づいて形成される場合、第2ネットワーク20は第2ネットワーク20内に含まれる複数の装置を個別にモニタリングしにくいことがあり、OSI階層における応用階層または伝送階層に対する保安に脆弱であり得る。また、トンネルが既に生成された後に、端末101が悪性アプリケーションを含む場合、前記悪性アプリケーションのデータは第2ネットワーク20内の異なる電子装置に伝達され得る。
【0030】
図2は、多様な実施形態によるネットワーク環境内のアーキテクチャを示す図である。
【0031】
図2を参照すると、端末201、ゲートウェイ203、及び目的地ネットワーク205の個数は、
図2に示された個数に制限されるものではない。例えば、端末201は、複数のゲートウェイを介して複数の目的地ネットワークにデータを伝送することができ、コントローラ202は複数の端末及びゲートウェイを管理することができる。端末201は、
図1に示された端末101と同一の類似した機能を行うことができ、ゲートウェイ203は、
図1に示されたゲートウェイ103と同一の類似した機能を行うことができ、目的地ネットワーク205は、
図1の第1ネットワーク10または第2ネットワーク20と同一の類似した構造を有し得る。
【0032】
コントローラ202は、例えば、サーバ(またはクラウドサーバ)であり得る。コントローラ202は、端末201、ゲートウェイ203、及び異なるネットワーク(例:目的地ネットワーク205)間のデータ伝送を管理することにより、ネットワーク環境内で信頼されるデータ伝送を保障することができる。例えば、コントローラ202は、政策情報またはブラックリスト情報を介して端末201の目的地ネットワーク205に対する接続を管理するか、端末201とゲートウェイ203間の認可されたトンネル210の生成を仲介するか、端末201またはゲートウェイ203から収集された保安イベントによってトンネル210を除去することができる。端末201は、コントローラ202により認可されたトンネル210を介して目的地ネットワーク205と通信することができ、認可されたトンネル210が存在しなければ、端末201は目的地ネットワーク205への接続が遮断され得る。一実施形態によると、コントローラ202は、端末201のネットワーク接続と連関された多様な動作(例:登録、承認、認証、更新、終了)を行うために端末201と制御データパケットを送受信することができる。制御データパケットが伝送されるフロー(例:220)は、制御フロー(control flow)として参照され得る。
【0033】
ゲートウェイ203は、端末201が属するネットワークの境界または目的地ネットワーク205の境界に位置することができる。ゲートウェイ203は複数であり得る。ゲートウェイ203は、端末201から受信されたデータパケット中で認可されたトンネル210を介して受信されたデータパケットのみを目的地ネットワーク205にフォワーディングできる。端末201とゲートウェイ203、またはゲートウェイ203と目的地ネットワーク205との間でデータパケットが伝送されるフロー(例:230)はデータフローとして参照され得る。一実施形態によると、ゲートウェイ203は、クラウド(cloud)基盤でコントローラ202と連結され得る。ゲートウェイ203は、コントローラ202の制御に従って端末201と認可されたトンネル210を生成することができる。一実施形態によると、ゲートウェイ203は、端末201から伝送されたデータパケットが認可されたトンネルを介して受信されたとしても認証が必要なデータパケットであるか否かによってデータパケットのフォワーディングを制御することができる。
【0034】
端末201は、端末201内に保存されたアプリケーションのネットワーク接続を管理するための接続制御アプリケーション211及びネットワークドライバー(図示せず)を含むことができる。例えば、端末201に含まれたターゲットアプリケーション221(例:
図1のアプリケーション110aから110dのうち任意の1つ)の目的地ネットワーク205に対する接続イベントが発生すると、接続制御アプリケーション211は、ターゲットアプリケーション221の接続可否を決定することができる。ターゲットアプリケーション221が接続可能であれば、接続制御アプリケーション211は、トンネル210を介してゲートウェイ203にデータパケットを伝送することができる。他の例を挙げると、接続制御アプリケーション211は、ターゲットアプリケーション221及び目的地ネットワーク205(例:IPまたはポート情報)により認証の必要可否を確認することができる。認証が必要な場合、接続制御アプリケーション211は、認証が完了される前までデータパケットを伝送しないこともある。接続制御アプリケーション211は、端末201内で運営体制を含むカーネル(kernel)及びネットワークドライバーを介してデータパケットの伝送を制御することができる。
【0035】
図3は、多様な実施形態によりコントローラ(例:
図2のコントローラ202)に保存されたデータベースを示す機能的ブロック図である。
図3は、メモリ330のみを示すが、コントローラは、外部電子装置(例:
図2の端末201またはゲートウェイ203と通信を行うための通信回路(例:
図4の通信回路430)及びコントローラの全般的な動作を制御するためのプロセッサ(例:
図4のプロセッサ410)をさらに含むことができる。
【0036】
図3を参照すると、コントローラは、ネットワーク接続及びデータ伝送の制御のためのデータベース311~317をメモリ330に保存することができる。
【0037】
接続政策データベース311は、識別されたネットワーク、端末、ユーザ、アプリケーション、または非識別されたユーザ(例:ゲスト)が接続可能なネットワーク、サービス、及び/または認証と関連された情報を含むことができる。例えば、端末から目的地ネットワークに対する接続が要請されると、コントローラは、接続政策データベース311に基づいて識別されたネットワーク(例:端末が属するネットワーク)、端末、ユーザ(例:端末のユーザ)、及び/またはアプリケーション(例:端末に含まれるアプリケーション)が目的地ネットワークに接続が可能であるか、そしてこれらに対する認証が必要か否か及び認証方式を確認することができる。
【0038】
トンネル政策データベース312は、連結(connection)経路上で出発地ノード(例:端末)とネットワークの境界に存在するゲートウェイに連結されるトンネルの種類、暗号化方法、及び暗号化水準情報を含むことができる。例えば、端末から目的地ネットワークに対する接続が要請されると、コントローラは、トンネル政策データベース312に基づいて目的地ネットワークに接続するための最適のトンネル及びそれに関する情報を端末に提供することができる。
【0039】
ブラックリスト政策データベース313は、特定端末の接続を永久的または一時的に遮断するための政策を含むことができる。ブラックリスト政策データベース313は、端末またはゲートウェイで周期的に収集される保安イベントのうちで保安イベントの危険度、発生周期、及び/または行為分析を介して識別された情報(例:端末ID(identifier))、IPアドレス、MAC(media access control)アドレス、またはユーザIDの少なくとも1つ)を基盤に生成され得る。
【0040】
ブラックリストデータベース314は、ブラックリスト政策データベース313により遮断された端末、IPアドレス、MACアドレス、またはユーザの少なくとも1つに対するリストを含むことができる。例えば、コントローラは、目的地ネットワークへの接続を要請する端末の識別情報がブラックリストデータベース314に含まれると、前記端末の接続要請を拒否することにより前記目的地ネットワークから前記端末を隔離させることができる。
【0041】
制御フローテーブル315は、端末とコントローラとの間に生成された制御データパケットのフロー(例:制御フロー)を管理するためのセッション(session)テーブルの一実施形態である。端末が成功的にコントローラに接続する場合、制御フロー情報がコントローラにより生成され得る。制御フロー情報は、制御フローの識別情報、コントローラに対する接続及び認証時に識別されるIPアドレス、端末ID、またはユーザIDの少なくとも1つを含むことができる。例えば、端末から目的地ネットワークに対する接続が要請されると、コントローラは、端末から受信された制御フロー識別情報を介して制御フロー情報を検索し、検索された制御フロー情報内に含まれたIPアドレス、端末ID、またはユーザIDの少なくとも1つを接続政策データベース311にマッピングすることで端末が接続可能か否か及びトンネル生成可否を決定することができる。認証要請情報は、特定端末(または、アプリケーションや目的地ネットワーク)に対する強化された認証が必要な場合に認証方式、認証トークン、及び/または認証対象を含むことができる。
【0042】
一実施形態によると、制御フローは満了時刻を有し得る。端末は、制御フローの満了時刻を更新しなければならず、一定時間の間に満了時刻が更新されなければ制御フロー(または、制御フロー情報)は除去され得る。また、端末またはゲートウェイから収集された保安イベントに沿って直ちに接続遮断が必要であると決定される場合、コントローラは端末の接続終了要請に沿って制御フローを除去することができる。制御フローが除去されると、既存に生成されたトンネル及びデータフローも除去されるので、端末のネットワークに対する接続が遮断され得る。
【0043】
トンネルテーブル316は、端末とゲートウェイとの間に連結されたトンネルを管理するためのテーブルである。トンネルは、例えば、装置またはIP単位で生成され得る。端末とゲートウェイとの間にトンネルが生成されると、トンネルテーブル316は、トンネル識別情報、トンネルが制御フローに従属した場合には制御フロー識別情報、トンネルエンドポイント(tunnel end point、TEP)、トンネルスタートポイント(tunnel start point、TSP)、トンネルアルゴリズム、トンネルの種類、及び/またはトンネルを管理するための付加情報を含むことができる。
【0044】
データフローテーブル317は、端末とゲートウェイとの間に詳細的なデータパケットが伝送されるフロー(例:データフロー)を管理するためのテーブルである。データフローは、端末またはIP単位に生成されるトンネル内でTCPセッション、出発地端末のアプリケーション、または、より詳細的な単位で生成され得る。データフローテーブル317は、データフロー識別情報、データフローが制御フローに従属する場合には、制御フロー識別情報、端末から伝送されたデータパケットが認可されたデータパケットであるかを識別するためのアプリケーションID、到着地IPアドレス、及び/またはサービスポートを含むことができる。また、データフローテーブル317は、データフローが利用されるトンネルの識別情報を含むことができる。また、データフローテーブル317は、データパケットが有効であるか否かを判断するためのヘッダー(またはヘッダー情報)を含むことができる。また、データフローテーブル317は、データパケットに認証情報であるデータフローヘッダーが挿入されたか否か、ヘッダーの挿入方式、データフローの認証必要可否、認証状態、及び/または認証満了時刻をさらに含むことができる。
【0045】
図4は、多様な実施形態による端末(例:
図2の端末201)の機能的ブロック図である。
【0046】
図4を参照すると、端末は、プロセッサ410、メモリ420、及び通信回路430を含むことができる。一実施形態によると、端末は、ユーザとインターフェースを行うためにディスプレイ440をさらに含むことができる。
【0047】
プロセッサ410は、端末の全般的な動作を制御することができる。多様な実施形態において、プロセッサ410は、1つのプロセッサコア(single core)を含むか、複数のプロセッサコアを含むことができる。例えば、プロセッサ410は、デュアルコア(dual-core)、クアッドコア(quad-core)、ヘキサコア(hexa-core)などのマルチコア(multi-core)を含むことができる。実施形態により、プロセッサ410は、内部または外部に位置されたキャッシュメモリ(cache memory)をさらに含むことができる。実施形態により、プロセッサ410は、1つ以上のプロセッサから構成され(configured with)得る。例えば、プロセッサ410は、アプリケーションプロセッサ(application processor)、通信プロセッサ(communication processor)、またはGPU(graphical processingunit)の少なくとも1つを含むことができる。
【0048】
プロセッサ410の全部または一部は、端末内の異なる構成要素(例えば、メモリ420、通信回路430、またはディスプレイ440と電気的に(electrically)または作動的に(operatively)結合(coupled with)されるか、連結され(connected to)得る。プロセッサ410は、端末の異なる構成要素の命令を受信することができ、受信された命令を解釈することができ、解釈された命令に沿って計算を行うかデータを処理することができる。プロセッサ410は、メモリ420、通信回路430、またはディスプレイ440から受信されるメッセージ、データ、命令語、または信号を解釈することができ、加工することができる。プロセッサ410は、受信されたメッセージ、データ、命令語、または信号に基づいて新しいメッセージ、データ、命令語、または信号を生成することができる。プロセッサ410は、加工されるか生成されたメッセージ、データ、命令語、または信号をメモリ420、通信回路430、またはディスプレイ440に提供することができる。
【0049】
プロセッサ410は、プログラムで生成されるか発生されるデータまたは信号を処理することができる。例えば、プロセッサ410は、プログラムを行うか制御するためにメモリ420に命令語、データまたは信号を要請することができる。プロセッサ410は、プログラムを行うか制御するためにメモリ420に命令語、データ、または信号を記録(または保存)するか更新することができる。
【0050】
メモリ420は、端末を制御する命令語、制御命令語コード、制御データ、またはユーザデータを保存することができる。例えば、メモリ420は、アプリケーション(application)プログラム、OS(operating system)、ミドルウェア(middleware)、またはデバイスドライバー(device driver)の少なくとも1つを含むことができる。
【0051】
メモリ420は、揮発性メモリ(volatile memory)または不揮発性(non-volatile memory)のうち1つ以上を含むことができる。揮発性メモリは、DRAM(dynamic random access memory)、SRAM(static RAM)、SDRAM(synchronous DRAM)、PRAM(phase-change RAM)、MRAM(magnetic RAM)、RRAM(resistive RAM)、FeRAM(ferroelectric RAM)などを含むことができる。不揮発性メモリは、ROM(read only memory)、PROM(programmable ROM)、EPROM(electrically programmable ROM)、EEPROM(electrically erasable programmable ROM)、フラッシュメモリ(flash memory)などを含むことができる。
【0052】
メモリ420は、ハードディスクドライブ(HDD、hard disk drive)、ソリッドステートディスク(SSD、solid state disk)、eMMC(embedded multi media card)、UFS(universal flash storage)のような揮発性媒体(medium)をさらに含むことができる。
一実施形態によると、メモリ420は、コントローラのメモリ(例:
図3のメモリ330)に含まれた情報中の一部を保存することができる。例えば、メモリ420は、
図3で説明されたトンネルテーブル316及びデータフローテーブル317を保存することができる。
【0053】
通信回路430は、端末と外部電子装置(例:
図2のコントローラ202またはゲートウェイ203)間の有線または無線通信連結の樹立、及び樹立された連結を介した通信遂行を支援することができる。一実施形態によると、通信回路430は、無線通信回路(例:セルラー通信回路、近距離無線通信回路、またはGNSS(global navigation satellite system)通信回路)または有線通信回路(例:LAN(local area network)通信回路、または電力線通信回路)を含み、そのうち該当する通信回路を利用してブルートース、WiFi directまたはIrDA(infrared data association)のような近距離通信ネットワークまたはセルラーネットワーク、インターネット、または、コンピュータネットワークのような遠距離通信ネットワークを介して外部電子装置と通信することができる。前述した多くの種類の通信回路430は、1つのチップに具現されるかまたはそれぞれ別途のチップに具現され得る。
【0054】
ディスプレイ440は、コンテンツ、データ、または信号を出力することができる。多様な実施形態において、ディスプレイ440は、プロセッサ410により加工されたイメージデータを表示することができる。実施形態により、ディスプレイ440はタッチ入力などを受信することができる複数のタッチセンサー(図示せず)と結合されることで一体型のタッチスクリーン(touch screen)から構成され(configured with)てもよい。ディスプレイ440がタッチスクリーンで構成される場合、前記複数のタッチセンサーは、ディスプレイ440上に配置されるか、ディスプレイ440下に配置され得る。
【0055】
図5は、多様な実施形態によりデータパケットの伝送を制御する動作を説明する図である。
【0056】
図5を参照すると、接続制御アプリケーション211は、ターゲットアプリケーション221の目的地ネットワーク205に対する接続要請を感知し、端末201またはターゲットアプリケーション221がコントローラ202と接続された状態であるか否かを決定することができる。端末201またはターゲットアプリケーション221がコントローラ202と接続された状態でなければ、接続制御アプリケーション211は、運営体制が含まれるカーネル(kernel)やネットワークドライバーからデータパケットの伝送を遮断することができる(動作510)。接続制御アプリケーション211を介して、端末201は、OSI階層中の応用階層で悪意的なアプリケーションの接続を予め遮断することができる。
【0057】
他の実施形態によると、端末201に接続制御アプリケーション211が設置されないか悪性アプリケーションが接続制御アプリケーション211の制御を迂回する場合、非認可されたデータパケットが端末201から伝送され得る。この場合、ネットワークの境界に存在するゲートウェイ203は、認可されていないトンネルに受信されるデータパケットを遮断するので(動作520)、端末201から送信されたデータパケット(例:TCPセッション生成のためのデータパケット)は、目的地ネットワーク205に到達しないこともある。すなわち、端末201は、目的地ネットワーク205から隔離され得る。
【0058】
図6から
図7は、多様な実施形態によるコントローラ接続のための動作を説明する図である。
図6は、コントローラ接続のための信号フローチャート図であり、
図7は、コントローラ接続のためのユーザインターフェース画面を示す図である。
【0059】
端末201が目的地ネットワーク(例:
図2の目的地ネットワーク205)に接続するためにはコントローラ202により認可される必要があるので、端末201の接続制御アプリケーション211は、コントローラ202に制御フローの生成を要請することで端末201のコントローラ接続を試みることができる。
【0060】
図6を参照すると、動作605において、端末201はコントローラ接続イベントを感知することができる。例えば、端末201は、端末201内で接続制御アプリケーション211が設置及び実行され、接続制御アプリケーション211を介してコントローラ202に対する接続が要請されることを感知することができる。
【0061】
一実施形態において、
図7を参照すると、接続制御アプリケーション211が実行されると、端末201はコントローラ接続のために必要な情報を受信するためのユーザインターフェース画面710を表示することができる。ユーザインターフェース画面710は、コントローラ202のIPまたはドメインを入力するための入力ウィンドウ711、ユーザIDを入力するための入力ウィンドウ712、及び/またはパスワードを入力するための入力ウィンドウ713を含むことができる。入力ウィンドウ711から713に対する情報が入力された後、認証されたユーザのコントローラ接続のためのボタン714を受信することで、端末201はコントローラ接続イベントを感知することができる。他の例を挙げると、端末201のユーザ認証がまだ完了していない状態であれば、端末201は非認可されたユーザ(すなわち、ゲスト)のコントローラ接続のためのボタン715を受信することでコントローラ接続イベントを感知することができる。
【0062】
動作610において、端末201は、コントローラ接続イベントを感知したことに応答してコントローラ202にコントローラ接続を要請することができる。端末201は、接続制御アプリケーション211を介してコントローラ接続を要請することができる。一実施形態によると、接続制御アプリケーション211は、端末201の識別情報(例:端末ID、IPアドレス、MACアドレス)、種類、位置、環境、端末201が属するネットワークの識別情報、及び/または接続制御アプリケーション211の識別情報をコントローラ202に伝送することができる。
【0063】
動作615において、コントローラ202は、受信された要請に応答して端末201の接続可否を確認(identify)することができる。一実施形態によると、コントローラ202は、コントローラ202のメモリ(例:
図3のメモリ330)に含まれたデータベースに基づいて端末201の接続可否を確認することができる。例えば、コントローラ202は、接続制御アプリケーション211から受信された情報が接続政策データベースに含まれるか否かと、端末201及び/または端末201が属したネットワークの識別情報がブラックリストデータベースに含まれるか否かに基づいて端末201の接続可否を確認することができる。
【0064】
端末201が接続可能であれば、コントローラ202は、端末201とコントローラ202間の制御フローを生成することができる。この場合、コントローラ202は、乱数形態で制御フロー識別情報を生成し、端末201及び/または端末201が属したネットワークの識別情報を制御フローテーブルに保存することができる。制御フローテーブルに保存された情報(例:制御フロー識別情報及び/または制御フロー情報)は、端末201のユーザ認証、端末201の情報アップデート、端末201のネットワーク接続のための政策確認、及び/または有効性検査に利用され得る。
【0065】
制御フローが生成されると、動作620において、コントローラ202は、コントローラ接続要請に対する応答を端末201に伝送することができる。この場合、コントローラ202は、生成された制御フロー識別情報を端末201に伝送することができる。
【0066】
動作625において、端末201は受信された応答に従って結果値を処理することができる。例えば、接続制御アプリケーション211は、受信された制御フロー識別情報を保存し、コントローラ接続が完了することを示すユーザインターフェース画面をユーザに表示することができる。コントローラ接続が完了すると、端末201の目的地ネットワークに対するネットワーク接続要請はコントローラ202により統制され得る。
【0067】
他の実施形態により、コントローラ202は、端末201が接続不可能なものとして決定することができる。例えば、端末201及び/または端末201が属したネットワークの識別情報がブラックリストデータベースに含まれると、コントローラ202は端末201が接続不可能なものとして決定することできる。この場合、コントローラ202は、動作615において制御フローを生成せずに、動作620において端末201の接続が不可能であることを示す応答を伝送することができる。
【0068】
端末201の接続が不可能であることを示す応答を受信すると、動作625において端末201はコントローラ接続が不可能であることを示すユーザインターフェース画面をユーザに出力することができる。例えば、
図7を参照すると、端末201は、接続制御アプリケーション211を介してユーザインターフェース画面720を表示することができる。ユーザインターフェース画面720は、端末201の接続が遮断されることを示し、管理者(例:コントローラ202)を介する隔離解除をガイドするユーザインターフェース725を含むことができる。
【0069】
図8は、多様な実施形態によるユーザ認証のための信号のフローチャート図である。
【0070】
端末201が目的地ネットワークに対する詳細な接続権限の付与を受けるため、端末201の接続制御アプリケーション211は、コントローラ202から端末201のユーザに対する認証を受けることができる。
図8に示されたユーザ認証は、
図9及び
図13で言及する認証と独立的に行われ得る。例えば、
図8に示されたユーザ認証は、ネットワーク接続以前に行われ得る。
【0071】
図8を参照すると、動作805において、端末201はユーザ認証のための入力を受信することができる。ユーザ認証のための入力は、例えば、ユーザID及びパスワードを入力するユーザ入力であり得る。他の例を挙げると、ユーザ認証のための入力は、より強化された認証のためのユーザ入力(例:生体情報またはマルチファクター認証)であり得る。
【0072】
動作810において、端末201は、コントローラ202にユーザ認証を要請することができる。例えば、接続制御アプリケーション211は、ユーザ認証のための入力情報をコントローラ202に伝送することができる。端末201とコントローラ202間の制御フローが既に生成されている状態であれば、接続制御アプリケーション211はユーザ認証のための入力情報を制御フロー識別情報とともに伝送することができる。
【0073】
動作815において、コントローラ202は、端末201から受信された情報に基づいてユーザを認証することができる。例えば、コントローラ202は、受信された情報に含まれたユーザID、パスワード、及び/または強化された認証情報と、コントローラ202のメモリに含まれたデータベース(例:
図3の接続政策データベース311またはブラックリストデータベース314)に基づいてユーザが接続政策により接続可能であるか否か及びユーザがブラックリストに含まれているか否かを決定することができる。
【0074】
ユーザが認証されると、コントローラ202は、制御フローの識別情報にユーザの識別情報(例:ユーザID)を追加することができる。追加されたユーザ識別情報は、認証されたユーザのコントローラ接続またはネットワーク接続に利用され得る。
【0075】
動作820において、コントローラ202は、ユーザ認証要請に対する応答としてユーザが認証されることを示す情報を端末201に伝送することができる。
【0076】
動作825において、端末201は、ユーザ認証に対する結果値を処理することができる。例えば、端末201は、ユーザ認証が完了することを示すユーザインターフェース画面をユーザに表示することができる。
【0077】
他の実施形態により、コントローラ202は、ユーザ認証が不可能であることを決定することができる。例えば、ユーザの識別情報がブラックリストデータベースに含まれると、コントローラ202は、ユーザ認証が不可能なものとして決定することができる。この場合、動作820において、コントローラ202はユーザ認証が不可能であることを示す情報を端末201に伝送し、動作825において、端末201はユーザ認証が失敗することを示すユーザインターフェース画面を表示することができる。
【0078】
図9、
図10a、
図10b、及び
図10cは、多様な実施形態によりネットワーク接続を制御する動作を説明する図である。
図9は、ネットワーク接続を制御するための信号のフローチャート図である。
図10aは、ネットワーク接続が遮断されるときのユーザインターフェース画面を示す図である。
図10bは、ネットワーク接続が許容されるときのユーザインターフェース画面を示す図である。
図10cは、強化された認証のためのユーザインターフェース画面を示す図である。
【0079】
端末201がコントローラ202から認可された後に、端末201は、端末201の接続制御アプリケーション211を介して端末201内に保存された他のアプリケーションのネットワーク接続を制御することで信頼されたデータ伝送を保障することができる。特に、端末201は、認可されたトンネルだけではなく、データフローの認証可否にさらに基づいて他のアプリケーションのネットワーク接続を制御することでより強化された保安性を保障することができる。
【0080】
図9を参照すると、動作905において、接続制御アプリケーション211は、ネットワーク接続イベントを感知することができる。例えば、接続制御アプリケーション211は、ウェブブラウザのようなターゲットアプリケーションがインターネットのような目的地ネットワークへの接続を試みることを感知することができる。例えば、ユーザは、ウェブブラウザを実行して接続しようとするウェブアドレスを入力し呼び出すことができる。
【0081】
動作910において、接続制御アプリケーション211は、コントローラ202にターゲットアプリケーションのネットワーク接続を要請することができる。この場合、接続制御アプリケーション211は、ターゲットアプリケーションの識別情報、接続対象のIP、及び/またはサービスポート情報を端末201とコントローラ202間に生成された制御フローの識別情報とともにコントローラ202に伝送することができる。
【0082】
動作915において、コントローラ202は、接続制御アプリケーション211から受信された要請に基づいてターゲットアプリケーションの接続可否、認証必要可否、及び/または目的地ネットワークに接続するための有効なトンネル(または認可されたトンネル)の存在可否を確認することができる。
【0083】
例えば、コントローラ202は、接続制御アプリケーション211から受信された情報(例:ターゲットアプリケーションのID、接続対象ID、及び/またはサービスポート情報)が制御フロー上で識別された情報(例:端末、ユーザ、及び/または出発地ネットワークの情報)が接続政策を満足するか否かに基づいてターゲットアプリケーションの接続可否を決定することができる。ターゲットアプリケーションの接続が不可能であれば、コントローラ202は、動作925において端末201に接続が不可能であることを示す応答を伝送することができる。この場合、接続制御アプリケーション211は、ターゲットアプリケーションのデータパケットをドロップし、ネットワークに対する接続が不可能であることを示すユーザインターフェース画面を表示することができる。
【0084】
ターゲットアプリケーションの接続が可能であるが強化された認証が必要である場合、コントローラ202は、認証政策に含まれた強化された認証方式(例:仮想キーパッド入力基盤認証、PC及びスマートフォン間の2ファクター認証、またはARS及びSMSを利用した2ファクター認証)に応じて認証要請情報を生成し、動作925において端末201に強化された認証を要請する応答を伝送することができる。
【0085】
ターゲットアプリケーションの接続が可能であるが強化された認証が必要ではない場合、コントローラ202は、端末201とゲートウェイ203間の認可されたトンネルが存在するかを確認することができる。例えば、コントローラ202は、目的地ネットワークに対応するトンネル政策においてトンネルエンドポイント(tunnel end point、TEP)及び/またはトンネル種類を確認し、確認されたTEPに対応する認可されたトンネルがトンネルテーブル内に存在するかを決定することができる。認可されたトンネルが存在すると、コントローラ202は、既に生成されたトンネルを用いるための情報を含むデータフロー情報を生成することができる。例えば、データフロー情報は、既に生成されたトンネルのトンネルID、TSPである端末とTEPであるゲートウェイ間の接続を管理するために認可されたアプリケーション(例:接続制御アプリケーションまたはターゲットアプリケーション)ID、目的地ネットワークのIPまたはサービスポート、及び/または認証されたデータパケットに利用されるヘッダー情報を含むことができる。コントローラ202は、生成されたデータフロー情報を端末201及びゲートウェイ203に伝送することができる(動作920、925)。
【0086】
認可されたトンネルが存在しなければ、コントローラ202は、トンネル生成に必要な情報(例:トンネル種類、方式、認証情報、及び/またはTEPのIP及びフォト)とデータフローテーブル内に含まれた情報を生成し、生成された情報をゲートウェイ203及び端末201に伝送することができる(動作920及び925)。
【0087】
他の例を挙げると、端末201とゲートウェイ203間の生成されるトンネル中でトンネル政策を満足するトンネルが存在しない場合、コントローラ202は、動作925において端末201にネットワーク接続が不可能であることを通知することができる。この場合、接続制御アプリケーション211は、ターゲットアプリケーションのデータパケットをドロップしてネットワーク接続が不可能であることを示すユーザインターフェース画面を表示することができる。
【0088】
接続制御アプリケーション211は、動作925において受信された応答に従って結果値を処理することができる。
【0089】
一実施形態により、コントローラ202からターゲットアプリケーションのネットワーク接続が不可能であるという情報または認可されたトンネルが存在しないという情報を受信すると、接続制御アプリケーション211は、データパケットをドロップしてネットワーク接続が不可能であることを示すユーザインターフェース画面を出力することができる。例えば、
図10aを参照すると、端末201は、ディスプレイを介して目的地ネットワークに対する接続が遮断されることを示すユーザインターフェース画面1010または1020を出力することができる。ユーザインターフェース画面1010または1020は、接続が遮断されることを示すテキスト1015またはポップアップウィンドウ1025を含むことができる。
【0090】
他の実施形態により、コントローラ202からトンネル生成に必要な情報が受信されると、接続制御アプリケーション211は、動作935においてゲートウェイ203とトンネルを生成し、動作940において生成されたトンネルを介してターゲットアプリケーションのデータパケットを伝送することができる。この場合、接続制御アプリケーション211は、目的地ネットワークからデータパケットを受信し、前記目的地ネットワークで提供するデータを処理することができる。例えば、
図10bを参照すると、端末201は、接続が許容された目的地ネットワーク(例:ウェブサイト)から提供される画面1030をディスプレイを介して出力することができる。
【0091】
トンネル生成を試みるのにもかかわらず、トンネル生成が失敗する場合、接続制御アプリケーション211は、データパケットをドロップし、ネットワーク接続が不可能であることを示すユーザインターフェース画面を表示することができる。
【0092】
他の実施形態により、コントローラ202から既に存在するトンネルのトンネルIDを受信すると、接続制御アプリケーション211は、追加的なトンネル生成手続きを行わずに動作940においてターゲットアプリケーションのデータパケットを前記トンネルIDに対応するトンネルを介してゲートウェイ203に伝送することができる。
【0093】
他の実施形態により、強化された認証を要請する応答が受信されると、動作930において、接続制御アプリケーション211は、強化された認証を行うことができる。例えば、
図10cを参照すると、端末201は、ディスプレイを介して強化された認証が必要であることを示すユーザインターフェース画面1040を出力することができる。ユーザインターフェース画面1040は、強化された認証が行われなかったり認証時間が満了したためネットワーク接続が遮断されたことを示すポップアップウィンドウ1045を含み得る。端末201は、ユーザに強化された認証を要請することができる。例えば、端末201は、ディスプレイを介して指定された認証方式に応じた認証(例:QR認証)を要求するユーザインターフェース画面1050を出力することができる。
図10cには示されなかったが、端末201は、QR認証以外にも多様な方式の認証(例:Key In方式、生体情報入力、またはマルチファクター認証)をユーザに要求することができる。
【0094】
認証が必要ではない場合、接続制御アプリケーション211は、動作930を行わずに動作935または動作940を行うことができる。
【0095】
接続制御アプリケーション211及びゲートウェイ203は、コントローラ202から受信されたデータフロー情報をデータフローテーブルに追加し、新しく生成されたトンネルに対する情報をトンネルテーブルに追加することができる。
【0096】
図9は、接続制御アプリケーション211がネットワーク接続イベントを感知したことに応答して直ぐにコントローラ202にネットワーク接続を要請する実施形態を示すが、接続制御アプリケーション211は、ネットワーク接続を要請する前に有効なデータフロー情報が存在するか否か、データフローに対する認証が有効であるか否か、及び/または認可されたトンネルが存在するか否かを確認したり、ターゲットアプリケーションの有効性検査を行い、確認及び検査結果に応じてデータパケットを伝送したりドロップすることができる。これに対する具体的な実施形態は、
図11及び
図12で説明される。
【0097】
図11は、多様な実施形態により、端末においてネットワーク接続を制御するための動作フローチャート図である。以下に記述される動作は、
図9の端末201を介して行われ得る。例えば、端末は、プロセッサを介してメモリに保存された命令語を実行することで
図11の動作を行うことができる。メモリに保存された命令語は、
図9の接続制御アプリケーション211のようなソフトウェアまたはプログラムであり得る。
【0098】
図11を参照すると、動作1105において、端末はネットワーク接続イベントを感知することができる。例えば、ユーザが特定ウェブブラウザのようなターゲットアプリケーションを介して目的地ネットワークに接続しようと試みると、端末はネットワーク接続イベントを感知することができる。
【0099】
動作1110において、端末は有効なデータフローが存在するかを確認することができる。例えば、端末は接続を要請したターゲットアプリケーションと到着地(または目的地ネットワーク)のIP及びサービスポート情報を確認し、データフローテーブル内で確認された情報に対応するデータフロー情報が存在するかを確認することができる。有効なデータフローが存在しなければ(すなわち、確認された情報に対応するデータフロー情報がなければ)、動作1125において、端末はデータパケットをドロップすることができる。
【0100】
有効なデータフローが存在すると、動作1115において、端末は該当のデータフローの認証が有効であるかを確認することができる。例えば、端末は確認されたデータフロー(またはデータフロー情報)の認証状態を確認することができる。データフローの認証が必要な状態であるかデータフローの認証時刻が満了した場合、端末はデータフローの認証が有効ではないものとしてみられる。この場合、動作1125において、端末はデータパケットをドロップすることができる。
【0101】
データフローの認証が有効であると、動作1120において、端末はデータフロー政策に応じてデータパケットを伝送することができる。
【0102】
図11は、端末がデータフローの有効性及びデータフロー認証の有効性を確認する動作を示すが、追加的な実施形態において、端末は端末と目的地ネットワークの境界にあるゲートウェイ間の認可されたトンネルが存在するかを確認することができる。例えば、接続制御アプリケーションは、端末に保存されたデータフローテーブル内でターゲットアプリケーションの識別情報及び目的地ネットワーク(例:到着地IP)に対応するトンネルが存在するかを確認することができる。認可されたトンネルは、外部サーバ(例:
図9のコントローラ202)により認可されたトンネルであり得る。認可されたトンネルが存在すると、端末はターゲットアプリケーションのデータパケットを認可されたトンネルを介して伝送し、認可されたトンネルが存在しなければ、端末はデータパケットをドロップすることができる。
【0103】
図12は、多様な実施形態により端末でネットワーク接続を制御するための他の動作フローチャート図である。
図12に示された動作フローチャート図は
図11の動作1125の後に行われ得る。
【0104】
有効なデータフローが存在しないか、データフローの認証が有効ではないか、または認可されたトンネルが存在しなければ、動作1205において、端末はターゲットアプリケーションの有効性検査を行うことでターゲットアプリケーションの無欠性及び安定性を保障することができる。例えば、接続制御アプリケーションは、ターゲットアプリケーションの偽造、変造可否、コードサイニング検査、及び/またはフィンガープリント検査を行うことができる。他の例を挙げると、接続制御アプリケーションは、外部サーバから受信された接続政策データベースに基づいてターゲットアプリケーション、接続対象IP、及びサービスポートが接続可能な状態であるかを確認することができる。外部サーバは、例えば、
図9のコントローラ202のように端末のネットワーク接続を管理するサーバであり得る。ターゲットアプリケーションの有効性検査が失敗すると、端末は、ネットワーク接続を要請せずにデータパケットをドロップすることができる。
【0105】
有効性検査が成功すると、動作1210において、端末は、外部サーバにネットワーク接続を要請することができる。端末は、例えば、
図6のコントローラ接続または
図8のユーザ認証の手続きを介して外部サーバに登録された状態であり得る。この場合、端末と外部サーバ間の制御フローが生成され得る。一実施形態によると、端末は、ネットワーク接続要請のためにターゲットアプリケーションの識別情報、接続対象のIP、及び端末と外部サーバの間制御フローの識別情報を前記外部サーバに伝送することができる。
【0106】
動作1215において、端末は、外部サーバからデータフロー情報を受信することができる。データフロー情報は、データパケットの伝送のために必要なトンネル情報、端末に割り当てられた制御フロー情報、認証必要可否を示す情報、ネットワーク接続認証可否を検査するための識別情報、及び認証のために必要な認証要請情報(例:認証方式、認証トークン、及び/または認証対象)を含むことができる。強化された認証が必要ではない場合、データフロー情報は認定情報を含まないこともある。既に生成されたトンネルが存在すると、データフロー情報は、既に生成されたトンネルと関連した情報(例:トンネルID、TSPである端末とTEPであるゲートウェイ間の接続を管理するために認可されたアプリケーションID、目的地ネットワークのIPまたはサービスポート、及び/または認証されたデータパケットに利用されるヘッダー情報)を含むことができる。他の例を挙げると、認可されたトンネルが存在しなければ、データフロー情報は、トンネル生成に必要な情報(例:トンネル種類、方式、認証情報、及び/または TEPのIP及びフォト)を含むことができる。
【0107】
動作1220において、端末は、受信されたデータフロー情報に基づいてデータフローに対する認証(または強化された認証)を行うことができる。例えば、端末は、データフロー情報が示す認証方式に基づいてユーザに一連の情報を要請し、ユーザから強化された認証情報を獲得することができる。強化された認証は、例えば、仮想キーパッド入力基盤認証、PC及びスマートフォン間の2ファクター認証、ARS及びSMSを利用した2ファクター認証方式が用いられ得る。
【0108】
図13は、多様な実施形態によりネットワーク接続を認証するための信号のフローチャート図である。
【0109】
図13を参照すると、動作1305において、端末201に含まれた接続制御アプリケーション211は、強化された認証情報を獲得することができる(例:
図12の動作1220)。
【0110】
動作1310において、接続制御アプリケーション211は、コントローラ202にネットワーク接続認証を要請することができる。例えば、接続制御アプリケーション211は、強化された認証情報をコントローラ202に伝送することができる。追加的に、接続制御アプリケーション211は、ターゲットアプリケーション及び接続対象のIP及び/またはサービスポート情報を伝送することができる。追加的に、接続制御アプリケーション211は、端末201に割り当てられた制御フロー識別情報を強化された認証情報とともに伝送することができる。
【0111】
動作1315において、コントローラ202は、要請された認証を検証することができる。例えば、コントローラ202は、制御フロー上に識別された情報(例:ターゲットアプリケーション及び接続対象のIP及び/またはサービスポート情報)とマッチングされた認証方式に基づいて接続制御アプリケーション211から獲得された認証情報が有効であるかを確認することができる。認証情報が有効でなければ、動作1330において、コントローラ202は、認証が失敗することを示す情報を応答として伝送することができる。
【0112】
認証情報が有効であれば、動作1320において、コントローラ202は、接続制御アプリケーション211からターゲットアプリケーションの接続可否、及び/または目的地ネットワークに接続するための有効なトンネル(または認可されたトンネル)の存在可否を確認することができる。
【0113】
例えば、コントローラ202は、接続制御アプリケーション211から受信された情報(例:ターゲットアプリケーションのID、接続対象ID、及び/またはサービスポート情報)が制御フロー上で識別された情報(例:端末、ユーザ、及び/または発地ネットワークの情報)に対応する接続政策を満足するか否かに基づいてターゲットアプリケーションの接続可否を決定することができる。ターゲットアプリケーションの接続が不可能であれば、コントローラ202は動作1330において、端末201に接続が不可能であることを示す応答を伝送することができる。
【0114】
ターゲットアプリケーションの接続が可能であれば、コントローラ202は、端末201とゲートウェイ203間の認可されたトンネルが存在するかを確認することができる。例えば、コントローラ202は、目的地ネットワークに対応するトンネル政策においてトンネルエンドポイント(tunnel end point、TEP)及び/またはトンネル種類を確認し、確認されたTEPに対応する認可されたトンネルがトンネルテーブル内に存在するかを決定することができる。認可されたトンネルが存在すると、コントローラ202は、既に生成されたトンネルを用いるための情報を含むデータフロー情報を生成することができる。例えば、データフロー情報は、既に生成されたトンネルのトンネルID、TSPである端末とTEPであるゲートウェイ間の接続を管理するために認可されたアプリケーション(例:接続制御アプリケーションまたはターゲットアプリケーション)ID、目的地ネットワークのIPまたはサービスポート、及び/または認証されたデータパケットに利用されるヘッダー情報を含むことができる。コントローラ202は、生成されたデータフロー情報を端末201及びゲートウェイ203に伝送することができる(動作1330及び1325)。
【0115】
認可されたトンネルが存在しなければ、コントローラ202は、トンネル生成に必要な情報(例:トンネル種類、方式、認証情報、及び/またはTEPのIP及びフォト)を含むデータフロー情報を生成し、生成された情報をゲートウェイ203及び端末201に伝送することができる(動作1330及び1325)。
【0116】
他の例を挙げると、端末201とゲートウェイ203bとの間に生成されるトンネル中のトンネル政策を満足するトンネルが存在しない場合、コントローラ202は、動作1330で端末201にネットワーク接続が不可能であることを通知することができる。
【0117】
接続制御アプリケーション211は、動作1330から受信された応答に従って結果値を処理することができる。
【0118】
一実施形態により、コントローラ202からターゲットアプリケーションのネットワーク接続が不可能であるという情報または認可されたトンネルが存在しないという情報を受信すると、接続制御アプリケーション211は、データパケットをドロップしてネットワーク接続が不可能であることを示すユーザインターフェース画面を出力することができる。
【0119】
他の実施形態により、コントローラ202からトンネル生成に必要な情報が受信されると、接続制御アプリケーション211は、動作1335においてゲートウェイ203とトンネルを生成し、動作1340において生成されたトンネルを介してターゲットアプリケーションのデータパケットを伝送することができる。トンネル生成を試みたにもかかわらずトンネル生成が失敗する場合、接続制御アプリケーション211は、データパケットをドロップしてネットワーク接続が不可能であることを示すユーザインターフェース画面を表示することができる。
【0120】
他の実施形態により、コントローラ202から既に存在するトンネルのトンネルIDを受信すると、接続制御アプリケーション211は、追加的なトンネル生成手続きを行わずに動作1340においてターゲットアプリケーションのデータパケットを前記トンネルIDに対応するトンネルを介してゲートウェイ203に伝送することができる。
【0121】
接続制御アプリケーション211及びゲートウェイ203は、コントローラ202から受信されたデータフロー情報をデータフローテーブルに追加し、新しく生成されたトンネルに対する情報をトンネルテーブルに追加することができる。
【0122】
図14から
図15は、多様な実施形態により、ヘッダー情報が挿入されたパケットを伝送するための動作を説明する図である。
図14は、データパケットの構造を示す図である。
図15は、端末でデータパケットを伝送するための動作フローチャート図である。
【0123】
端末(または接続制御アプリケーション)は、外部サーバ(例:コントローラ)から受信され、データフロー情報に含まれた認証要請情報に基づいてパケットを操作することができる。認証要請情報は、例えば、認証情報であるデータフローヘッダー(またはヘッダー情報)の挿入可否及び/または挿入方式を含むことができる。例えば、
図14を参照すると、データパケットは、IPヘッダー(IP Header)、トンネルヘッダー(Tunnel Header)、TCPヘッダー(TCP Header)、及びペイロード(Payload)を含むことができる。データパケットは、トンネルアルゴリズム及び種類により固有のトンネルヘッダー及び位置を有することができる。TCPの接続及び接続解除に対する判断は、TCPヘッダーを介して決定され、認可された(または有効な)データパケットであるか否かは、ペイロードに含まれたデータフローヘッダーを介して決定され得る。他の実施形態において、データフローヘッダーは、データパケット伝送に有利な位置(例:IPヘッダー)に挿入され得る。データフローヘッダーが挿入されたペイロードは、カプセル化され(encapsulated)暗号化(encrypted)され得る。
【0124】
図15を参照すると、動作1505において、端末はデータフロー規則に従ってヘッダー挿入方式(または認証情報挿入方式)を確認することができる。ヘッダー挿入方式は、TCPセッション認証のためのヘッダー挿入方式とデータパケット認証のためのヘッダー挿入方式のうち1つであり得る。一実施形態において、最初TCP接続のためのスリーウェイハンドシェイク(3 way handshake)過程が行われる前であれば、現在ヘッダー挿入方式がTCPセッション認証のためのヘッダー挿入方式であり、スリーウェイハンドシェイク(3 way handshake)過程が行われた後に連結(connection)が樹立された後であれば、現在ヘッダー挿入方式がデータパケットのためのヘッダー挿入方式であり得る。
【0125】
ヘッダー挿入方式がTCPセッション認証のためのものである場合、動作1510において、端末は、SYNパケットとACKパケットそれぞれのペイロードにヘッダーを挿入することができる。SYNパケットとACKパケットは最初TCP接続のためのスリーウェイハンドシェイク(3 way handshake)過程において利用され得る。
【0126】
ヘッダー挿入方式がデータパケット認証のためのものである場合、動作1515において、端末は、データパケットのペイロードにヘッダーを挿入することができる。例えば、端末は、外部サーバから受信されたデータフロー情報に含まれたヘッダー情報をデータパケットに挿入することができる。データパケットが暗号化された状態であれば、端末は暗号化されたデータパケットにヘッダーを挿入することでゲートウェイがデータパケットの有効可否を確認することができるようにできる。
【0127】
動作1510または動作1515を行なった後、端末は、MTU(maximum transmission unit)値に応じてフラグメント(fragment)を行うことができる。端末は、カプセル化及び暗号化されたパケット(またはデータパケット)を目的地ネットワークに伝送することができる。
【0128】
図16は、多様な実施形態によりゲートウェイでデータパケットのフォワーディング(またはラウティング)を制御するための動作フローチャート図である。
【0129】
図16を参照すると、動作1605において、ゲートウェイは、端末からデータパケットを受信することができる。
【0130】
動作1610において、ゲートウェイは、データパケットが外部サーバ(例:コントローラ)により認可されたトンネルを介して受信されたか否かを確認することができる。データパケットが認可されたトンネルを介して受信されたものではないならば、動作1625において、ゲートウェイはデータパケットをドロップすることができる。
【0131】
データパケットが認可されたトンネルを介して受信されたものであれば、動作1615において、ゲートウェイは、受信されたデータパケットが有効なものであるかを確認することができる。
【0132】
例えば、ゲートウェイは、ゲートウェイのデータフローテーブルから受信されたデータパケットに含まれた目的地IP及びポート情報に対応するデータフロー情報が存在するかを確認することができる。データフローテーブルは、端末の接続制御アプリケーションがコントローラにコントローラ接続またはネットワーク接続を要請するとき、ゲートウェイがコントローラから受信したデータフロー情報に基づくことができる。
【0133】
データフロー情報が存在すると、ゲートウェイは、確認されたデータフローが強化された認証対象であるかを確認することができる。データフローが強化された認証対象ではないならば、動作1620において、ゲートウェイは、データパケットをフォワーディングすることができる。
【0134】
確認されたデータフローが強化された認証対象であれば、ゲートウェイは認証検査方式を確認することができる。認証検査方式は、出発地IPに基づくか、TCPヘッダーに基づくか、またはペイロードヘッダーに基づくことができる。認証検査方式が出発地IPに基づく場合、ゲートウェイは、データパケットの出発地IPと一致するデータフロー情報が存在するかを確認することができる。認証検査方式がTCPヘッダー基盤である場合、ゲートウェイは、スリーウェイハンドシェイク(3 way handshaker)のためのSYNパケット及びACKパケットのペイロードにヘッダーが存在するかを確認し、確認されたヘッダーが探索されたデータフロー情報と一致するかどうかを確認することができる。認証検査方式がペイロードヘッダーに基づく場合、ゲートウェイは、データパケットのペイロードにヘッダーが存在するかを確認し、確認されたヘッダーが探索されたデータフロー情報と一致するか否かを確認することができる。出発地IP、TCPヘッダー、またはペイロードヘッダーがデータフロー情報と一致しないか、TCPヘッダーが存在しないか、またはペイロードヘッダーが存在しない場合、ゲートウェイは、受信されたデータパケットが有効ではないものとして決定することができる。この場合、動作1625において、ゲートウェイは、データパケットをドロップすることができる。
【0135】
さらに、ゲートウェイは、データフロー情報の認証満了時刻を確認することができる。認証満了時刻が満了した場合、ゲートウェイは、データパケットが有効ではないものとして決定することができる。
データパケットが認可されたトンネルに受信され、有効なデータパケットであれば、動作1620において、ゲートウェイは、受信されたデータパケットを目的地ネットワークにフォワーディングすることができる。
【0136】
図17から
図18は、多様な実施形態により、ネットワーク接続を解除するための動作を説明する図である。
図17は、ネットワーク接続を解除するための信号のフローチャート図である。
図18は、ネットワーク接続を解除するためのユーザインターフェース画面を示す図である。
【0137】
図17を参照すると、動作1705において、端末201は、ネットワーク接続解除をコントローラ202に要請することができる。例えば、端末201は、端末201とコントローラ202間の制御フローの識別情報をネットワーク接続解除を要請する情報とともにコントローラ202に伝送することができる。
【0138】
一実施形態によると、端末201は、ユーザの要請、端末201の再開始、または接続制御アプリケーション211の要請のようなネットワーク接続解除イベントに応答してネットワーク接続解除を試みることができる。例えば、
図18を参照すると、端末201は、ディスプレイを介して出力されたユーザインターフェース画面1810で接続終了ボタン1815を選択するユーザ入力を受信することができる。端末201は、ポップアップウィンドウ1825を含むユーザインターフェース画面1820を出力することにより、ユーザに接続終了を再び確認することができる。他の例を挙げると、端末201は、ユーザインターフェース画面1820を出力せずに直ちに動作1705を行うことができる。
【0139】
動作1710において、コントローラ202は、端末201の要請に応答して受信された識別情報に対応する制御フローを除去(または解除)することができる。制御フローが除去されると、制御フローに従属する全てのトンネル及びデータフローが除去され得る。
【0140】
動作1715において、コントローラ202は、ゲートウェイ203に除去された制御フローに従属するトンネル及びデータフローの除去を要請することができる。この場合、コントローラ202は除去の対象となるトンネル情報及びデータフロー情報を伝送することができる。
【0141】
動作1720において、ゲートウェイ203は、コントローラ202の要請に応答してトンネル及びデータフローを除去することができる。トンネル及びデータフローが除去されると、端末はこれ以上目的地ネットワークにデータパケットを伝送することができない。