JP6216458B2 - 自動プレースホルダファインダ及びフィラー - Google Patents

自動プレースホルダファインダ及びフィラー Download PDF

Info

Publication number
JP6216458B2
JP6216458B2 JP2016535707A JP2016535707A JP6216458B2 JP 6216458 B2 JP6216458 B2 JP 6216458B2 JP 2016535707 A JP2016535707 A JP 2016535707A JP 2016535707 A JP2016535707 A JP 2016535707A JP 6216458 B2 JP6216458 B2 JP 6216458B2
Authority
JP
Japan
Prior art keywords
browser
request
response
server
instructions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016535707A
Other languages
English (en)
Other versions
JP2017503249A (ja
Inventor
ルネ,マチュー
Original Assignee
マカフィー, エルエルシー
マカフィー, エルエルシー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by マカフィー, エルエルシー, マカフィー, エルエルシー filed Critical マカフィー, エルエルシー
Publication of JP2017503249A publication Critical patent/JP2017503249A/ja
Application granted granted Critical
Publication of JP6216458B2 publication Critical patent/JP6216458B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/41User authentication where a single sign-on provides access to a plurality of computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/174Form filling; Merging
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)

Description

ここで記載される実施形態は、概して、モバイルデバイスの使用に関係があり、特に、セキュリティ及び秘密情報を保つ環境に秘密情報をセキュアに挿入する方法及びプロセスに関係がある。
多くのモバイルデバイスアプリケーションは、アプリケーション及びそれと関連するデータにアクセスするために、ユーザ名及びパスワード、そして、場合により、より統語論的且つ意味論的な深さ及び広さを持った情報を求める。更に、ユーザは、彼らが使用しているモバイルデバイスと無関係にそのようなアクセスを使用したいと望む。認証されたユーザがそれらのアプリケーション、該アプリケーションに関連するデータ及びそれらの様々なアカウントにアクセスするために、アプリケーションは、通常、アクセスフィールド及びそれらのフィールドに必要とされる秘密データの命名規則への実質的に同様の識別アプローチを採用しようと試みる。ユーザはまた、関連する自身のキー情報を第三者がアクセス可能なリストにしばしば格納し、危険性がある攻撃者又は自身のデバイスに存在する悪意あるソフトウェアに自身のクレデンシャルをあらわにする傾向がある。いよいよ、ウェブサイト及びモバイルアプリケーションは、それらのアプリケーション並びに関連するユーザ及び/又はアプリケーションデータの1つ又は他の部分へのアクセスを認める前に、より強いユーザ名及びパスワード並びに情報及びインタラクションのレイヤの使用を要求している。これは、アクセス及び検索を安全にするが、ユーザにとってはフラストレーションを起こさせる。
米国特許第8438635号(Das et al.)(特許文献1)には、シングル・サインオンサービスによって生成されたトークン・ログオン・クレデンシャルを受け入れないクラウドベースのシステムに自動ログインするためのメカニズムが開示されている。一実施形態において、Dasは、自動的に生成されて持ち続けられるワンタイム・パスワードを開示する。生成されたパスワードは、ウェブIDプロバイダによって生成されたトークンを受け入れないクラウドベースのシステムへ自動的にログインするために、そして、他のサービスへ接続するために使用される。このメカニズムは、例えば、Windows(登録商標)、Linux(登録商標)起動、及びiOS(登録商標)起動オペレーティングシステムのようなオペレーティングシステムに関連して使用されてよいと考えられる(Windowsはマイクロソフト・コーポレーションの登録商標であり、Linuxはリーナス・トーバルズ氏の登録商標であり、iOSは、アップル社によって彼らのオペレーティングシステムについて実施許諾を受けたシスコテクノロジー社の登録商標である。)。
米国特許第8595810号(Ayed)(特許文献2)には、ラップ関数を用いて多因子認証、インテリジェント自動ログイン、シングル・サインオン、近接ログアウト、プロアクティブな損失防止、及びインシデント通知により既存のアプリケーションにおいてアクセスセキュリティを自動アップデートする方法が開示されている。
米国特許第8370933号(Buckler)(特許文献3)には、DHCPサーバへの毒入りDNSサーバアドレスの挿入を検出するコンピュータ実装の方法が開示されている。方法は、1)DHCPサーバによって与えられたDNSサーバアドレスを識別し、2)DHCPサーバによって与えられたDNSサーバアドレスがDHCPサーバによって与えられた前のDNSサーバアドレスと異なると判断し、3)DNSサーバアドレスが前のDNSサーバアドレスと異なることに少なくとも部分的に起因して、DHCPサーバによって与えられたDNSサーバアドレスにあるDNSサーバが潜在的なセキュリティリスクを表すと判断し、その場合に、4)潜在的なセキュリティリスクを除こうとしてセキュリティ動作を実行することを含んでよい。
米国特許第7818440号(Givoly)(特許文献4)には、ネットワーク上で通信されるデジタルアセットを監視するために提供されるシステム、方法及びコンピュータプログラム製品が開示されている。最初に、第1パーティと複数の他のパーティとの間でやり取りされるパケットに対してパッシブ・インスペクションが行われる。そのようなパケットは、集合的に、デジタルアセットに関連するデータの少なくとも一部を含む。その後に、インスペクションが行われたパケットに基づき、第1パーティに関連する少なくとも1つの局面及びデジタルアセットに関連する少なくとも1つの局面が識別される。
正当なユーザが適切に認証されるとシームレスにアプリケーション及びデータにアクセスできることを保証しながら、好ましくない侵入、攻撃、悪意のあるソフトウェア及びデータ操作を防ぐよう、安全で且つユーザにとって使い勝手がよい、カスタムコードをモバイルデバイスに挿入する技術が、好ましい。
この背景情報は、本発明に関係があり得ると本出願人によって信じられている情報として提供される。事実であることの承認が必ずしも意図されているわけでも、前述の情報のいずれも本発明に対する先行技術を構成すると解釈されるべきでもない。
米国特許第8438635号(Das et al.) 米国特許第8595810号(Ayed) 米国特許第8370933号(Buckler) 米国特許第7818440号
一実施形態に従うiOSプロキシベースアプリケーションのインストールプロシージャを表すフローチャートである。
一実施形態に従うスクリプト挿入及び使用プロセスを表すフローチャートである。
一実施形態に従うリクエスト及びスクリプト挿入プロセスを表すフローチャートである。
一実施形態に従うログインプロセスを表すフローチャートである。
一実施形態に従うフォームフィリングプロセスのための技術を表すフローチャートである。
一実施形態に従ってここで記載される技術とともに使用されるコンピューティングデバイスを表す図である。
他の実施形態に従ってここで記載される技術とともに使用されるコンピューティングデバイスを表すブロック図である。
一実施形態に従うプログラム可能なデバイスのネットワークを表す図である。
以下の記載では、説明のために、多数の具体的な詳細が、本発明の完全な理解を提供するために示されている。なお、当業者に明らかなように、本発明は、それらの具体的な詳細によらずとも実施されてよい。他の事例では、構造及びデバイスは、本発明を不明りょうにしないようにブロック図形式において示されている。下付き文字又は添え字を伴わない数字の参照は、参照される数字に対応する下付き文字及び添え字の全てのインスタンスを参照すると理解される。更に、本開示において使用されている言語は、読みやすさ及び教育上の目的のために主に選択されており、発明対象を線引き又は制限し、そのような発明対象を決定するのに必要な特許請求の範囲に訴えるために選択されたものではない。「一実施形態」又は「実施形態」との明細書中の言及は、実施形態に関連して記載される特定の機構、構造、又は特性が本発明の少なくとも1つの実施形態に含まれることを意味し、「一実施形態」又は「実施形態」との複数回の参照は、必然的に全てが同じ実施形態に言及していると理解されるべきではない。
ここで使用されるように、語「コンピュータシステム」は、単一のコンピュータ、あるいは、コンピュータシステムにおいて又はそれによって実行されるものとして記載される機能を実行するよう協働する複数のコンピュータを指すことができる。
ここで使用されるように、語「プログラム可能なデバイス」は、単一のプログラム可能なデバイス、あるいは、プログラム可能なデバイスにおいて又はそれによって実行されるものとして記載される機能を実行するよう協働する複数のプログラム可能なデバイスを指すことができる。同様に、「マシン読み出し可能な媒体」は、単一の物理媒体、あるいは、マシン読み出し可能な媒体において記憶されているものとして記載される素材を一緒に記憶し得る複数の物理媒体を指すことができる。
ここで使用されるように、語「アプリケーション」は、プログラムが内蔵型のソフトウェアであろうが、あるいは、他のプログラムの又はそれによって含まれるコンポーネントであろうが、あらゆる実行可能なソフトウェアプログラムを指す。
ここで使用されるように、語「アセット」は、そのタスクのリストを完結するために使用され得るあらゆるデータ片を指す。アセットは、ユーザ・クレデンシャル、稼働統計及び個人情報を含むことができるがそれらに制限されないと考えられる。
ここで使用されるように、語「暗号キー」は、当業者によって容易に理解されるであろうように、平文を暗号文に又は逆に暗号文を平文に変換するために、暗号化アルゴリズム又は他の暗号化プロセス内で使用されるビットの連続を指す。
ここで使用されるように、語「ダミーストリング」は、有効なプレースホルダー、すなわち、とりわけ、実際の暗号キーのための有効なストリングとして使用され得るビットのシーケンスを指す。
ここで使用されるように、語「キー生成器」は、暗号キーを生成するために通常使用され得る乱数発生器を指す。
ここで使用されるように、語「変形Javascript(登録商標)」は、スクリプト生成器の出力を指す。本明細書は、JAVASCRIPTスクリプティング言語を用いる実施に関して記載されるが、本発明はそのように制限されず、如何なる所望のスクリプティング言語においても実施されてよい(JACASCRIPTは、オラクル・アメリカ・インコーポレイテッドの登録商標である。)。
ここで使用されるように、語「ワンタップ」は、タッチスクリーン上のアクティブ領域の1回のタッチを指す。
ここで使用されるように、語「スクリプト生成器」は、標準スクリプトを取って、セッションキーを所望の位置で挿入するソフトウェアを指す。
ここで使用されるように、語「セッションキー」は、デバイス又はネットワークにおいてアクティブセッションの限られた時間の存続期間に使用される暗号キーを指す。
ここで使用されるように、語「VPN」は、仮想プライベートネットワークサービス及び関連する設定又はパラメータを指す。
以下の記載の大半は、iOSオペレーティングシステムに基づくモバイルデバイスでの実施に関して記載されるが、本発明はそのように制限されず、如何なる所望のオペレーティングシステム環境でも実施されてよい。
様々な実施形態は、iOSデバイスのための新規且つ安全なフォームフィリング技術を提供する。この技術は、iOSデバイスにおいてiOSアプリケーション及びプロキシをインストールし、あらゆるブラウザページに基づくリクエスト及びデバイス応答を保護しながらプロキシをデバイス及びブラウザへリンクすることを進める。その場合に、ユーザ制御下で、アプリケーションは、ユーザ名、パスワード及び関連する秘密情報を自動的に入力することによって、実行されるべきアクションを選択する。
少なくとも1つの実施形態において、ローカルプロキシは、スクリプトをブラウザに挿入するために確立される。ローカルプロキシはダウンロードされ、コンフィグレーションプロファイルが取得されてインストールされ、内部仮想プライベートネットワークサービスがアクティブにされ、ローカルプロキシは内部仮想プライベートネットワークサービスを通じて確立される。次いで、ローカルプロキシは実行され得る。
他の実施形態では、ローカルプロキシは確立され、接続がローカルプロキシとブラウザとの間に形成される。接続は、遠隔のサーバとローカルプロキシとの間にも形成される。遠隔のサーバは、サーバプロキシを確立するようシミュレートされる。リクエストはブラウザ及びサーバプロキシのうちの少なくとも1つから受信され、応答は遠隔のサーバへ送られる。遠隔のサーバからブラウザへ送られたサーバ応答を受けると、肯定的なスクリプト挿入応答がサーバ応答に基づきブラウザから受信され、サーバ応答はバッファリングされる。挿入スクリプトが生成され、ブラウザによる使用のためにブラウザへ送られる。
実施形態は、機密をコードに挿入する選択肢を有さないiOSにおいてそのような挿入を可能にする。これは、ネットワークフックを使用し、挿入されるコンポーネント、プロキシ及びアプリケーションの間のデータフローを制御することで、行われてよい。これは、ユーザが、どのクレデンシャルが使用されるのかを、それらをあらわにし且つ攻撃者の発見を最小限に抑えることなしに制御することを可能にする。
図1は、iOSプロキシベースのアプリケーションの一実施形態に従うインストールプロシージャを表すフロー図であり、如何にして環境がセットアップされるのかを表す。ブロック110で、アプリケーションは、通常はワンタップ・ログインによって、呼び出される。ブロック120で、ログインは、アプリケーションに対応するコンフィグレーションプロファイル・ユニフォームリソースロケータ(URL)へリダイレクトされる。コンフィグレーションプロファイル180は、カスタム認証局182及びVPN設定184並びにiOSデバイスに関する情報186を含んでよい。
ブロック130で、コンフィグレーションプロファイル180はiOSデバイスでインストールされ、次いで、ブロック140で、ログインは実際のアプリケーションへリダイレクトされて、アプリケーションを起動する。アプリケーションは、ブロック150で、iOS VPNサービスをアクティブにする。VPNサービスは、ブロック160で、ローカルプロキシをアクティブにし、次いで、ブロック170で、ログインプロキシをアクティブにする。
図2は、一実施形態に従うスクリプト挿入及び使用技術20を表すフロー図である。表されるように、マン・イン・ザ・ミドル(MITM)プロキシがセットアップされ、スクリプトが挿入のために準備される。決定技術は、挿入をトリガすべきかどうかを判断するために使用される。
スクリプト生成フェーズ210は、セッションキー214を生成するためにキー生成器212を使用する。セッションキー214は、次いで、カスタムスクリプト220を生成するためにスクリプト生成器216によって使用される。ブロック230で、スクリプトは、ブラウザのためのバッファリングされた応答に挿入される。
挿入プロセスはブロック240で起こる。ブロック242で、挿入プロセスは、応答の本文を待つ。ブロック244で、本文の終わりが見つけられ、次いで、ブロック246で、スクリプトは、本文の終わりを示した</body>タグの前に挿入される。
ブロック230の終わりに、ウェブページは、iOSデバイス186にあるパスワード管理アプリケーションと通信するために使用される挿入されたJavascriptコードを含む。
制御の基本フローは、次の通りである。
パスワード管理アプリケーションは、ローカルHTTPプロキシをセットアップし、ブロック250で接続を待ち受ける。ブラウザが接続され、ユーザがウェブページへナビゲートされると、セキュアソケットレイヤ(SSL;Secure Socket Layer)ハンドシェイクは、サーバがブロック260でウェブページを提供し、ブロック270で遠隔のサーバのアイデンティティのシミュレーションがマン・イン・ザ・ミドル(MITM;man-in-the middle)プロキシをセットアップすることができるようにすることで実行される。ブラウザは、このとき、ウェブページのリクエストを受信する準備ができている。
ブロック270でHTTPリクエストを受信すると、リクエストは読み出され、ブロック272でサーバへ中継される。これは、ブロック280で表されるように、証明書の生成をスプーフィングすることを伴う。この証明書生成プロセスにおいて、カスタム認証局284及び対象のホスト名の一般名を使用する生成された証明書は、SSLハンドシェイクのためのシグニチャを生成して、MITMプロキシをセットアップするよう遠隔のサーバのアイデンティティをシミュレートするために使用される。ブラウザは、このとき、ブロック270でHTTPリクエストを受信する準備ができている。ブロック272で、HTTPリクエストはクライアントから読み出され、サーバへ中継される。
ブロック290は、一実施形態に従うハイジャック決定プロセスを表し、スクリプトを応答に挿入すべきかどうかを判断する。ブロック292で、プロキシは、サーバからの応答を待つ。ブロック294で、応答のコンテキストタイプがテキスト/htmlである場合には、ハイジャック決定プロセスは、ハイジャックが望ましいことを示す。コンテキストタイプがテキスト/htmlでない場合には、ハイジャックは行われない。ハイジャック(スクリプト挿入)が行われるべき場合には、サーバからの応答は、上述されたようにスクリプト挿入を可能にするよう、中継されバッファリングされる。ブロック274で、応答をハイジャックし、ブロック210で生成されたスクリプトを挿入すると決定される場合には、ブロック278で、HTTP応答が中継され、応答はバッファリングされ、上述されたようにスクリプトが挿入される。ハイジャックが望まれない場合には、ブロック276で、応答のバイト・ツー・バイト中継が実行されて、応答をブロック270へ渡す。
図3は、上記の図2で説明されたリクエスト及びスクリプト挿入プロセスのためのデータフローを表すフロー図である。図3乃至5は、ブラウザ310と、プロキシを提供するアプリケーション320と、遠隔のウェブサーバ330との間の詳細なデータフローを表す(遠隔のウェブサーバ330との間は、たとえただ1つの遠隔のウェブサーバ330しか必要とされないとしても、データフローを明りょうにするよう図3では二度表されている。)。
ブロック340で、ウェブページへナビゲートするとのユーザの決定があると、ブラウザ310はプロキシ320への接続を開始し、ブロック345で、対象サーバへ接続するためのリクエストを送信する。図3で表されている例では、接続はSSLを使用したセキュア接続であるが、同様の技術は非セキュア接続に使用され得る。ブロック350で、iOSデバイス186は、SSLクライアントとして遠隔のウェブサーバ330とのSSLハンドシェイクを開始する。一方、プロキシ320は、ブロック345で、ウェブブラウザ310とSSLサーバモードにおいてSSLハンドシェイクを行っている。
ブラウザ310は、HTTPログイン355をプロキシ320へ与える。プロキシ320は、ログイン355を、遠隔サーバ330への配信のためにiOSデバイス186へ中継する。遠隔サーバ330は応答360により応答する。応答360は、挿入プロセス200の実行のためにプロキシ320へ送られる。変形された応答360は、ブラウザ310へ返送され、ブロック370で、ウェブページが表示される。
図4は、ログインフォーム検出及びセキュアアセットデータフローのための技術400を表すフロー図である。ウェブページ410がブラウザ310でのロードを終えた後、ブロック420で、図2のスクリプト挿入プロセスによって挿入されたスクリプトは、ページがログインフォームを含むかどうかを判定する。多くのHTTPリクエストがページ410のために(例えば、画像、スタイルシート、などのために)作られ得るが、この判定は、現在ロードされているHTMLページ410に対して行われる。
ウェブページ410上にログインフォームがある場合には、ブロック430で、アセットのためにリクエストが生成される。ログインフォームがない場合には、ログインは断念される。
ブロック430〜440は、図2で表されているスクリプト生成プロセスにおいて生成された関連する対称暗号キー214による対称暗号化アルゴリズムを用いたHTTPリクエストの暗号化を表す。そのような暗号化アルゴリズムの例となる実施形態はAES CCMモードである。なお、如何なるタイプの対称暗号化も使用され得る。
暗号化されたリクエストはプロキシ320へ与えられる。プロキシ320は、ブロック450でリクエストを解読するために、セッションキー214を使用する。図4において、ブラウザ310とアプリケーション/プロキシ320との間の接続は、ウェブページ410とアプリケーション320との間の非同期Javascript及びXML(AJAX)を使用する。他の技術は、望まれるように使用され得る。REST API(Representational State Transfer Application Programming Interface)460は、このプロセスのためにプロキシ320によって使用されてよい。REST APIは、動作が有限数であって、リソースがそれら自体の一意のリソースインジケータを有する標準のアプローチである。
図5は、一実施形態に従うセキュアなフォームフィリングプロセス500を表すフロー図である。この例では、第1の応答はアカウントのリストを含み、ユーザはそれから選択するようプロンプトされる。応答はブロック505で解読され、次いで、ブロック510で、ブラウザ310はアカウントを表示し、ユーザに1つを選択するよう要求する。ブロック515で、ユーザは、例えば、アカウントに関連した領域をクリック又はタッチすることによって、アカウントを選択する。アカウントは、ウェブページ内でオーバーレイとして提示されてよい。ユーザがログインすると決めると、ログインリクエストは、ブロック520で暗号化され、ログインリクエストはアプリケーション320へ送信される。一実施形態において、リクエストは、同じ対称暗号キー214を用いて暗号化される。リクエストは、ユーザによるアカウントの選択を示す。
この例では、暗号化された応答は、AJAXを介してプロキシ320へ与えられる。プロキシ320は、ブロック525で、REST APIを用いて応答を解読する。このリクエストに対する応答は、パスワードのプレースホルダーとなるダミーストリング530を含む。このストリング530は、プロキシによって暗号化され(ブロック535)、ブラウザによって解読され(540)、そして、ブロック545で、上記の技術を用いて正当なHTML入力に挿入される。次いで、ブロック550で、フォームが自動的にサブミットされる。このサブミッションは、ブラウザに、ユーザ名と、パスワードの一時的な代役であるダミーストリングとを含む新しいHTTPリクエストを生成させる。次いで、ブロック550で、ダミーストリングは、ログインリクエストがサーバ330へ送られる場合に、直接にネットワークストリームにおいて実時間でユーザのパスワード555によって置換される。
次いで、サーバ330はログイン応答560を与える。ログイン応答560は、iOSデバイス186を通じてプロキシ320へ、次いでブラウザ310へ送られる。次いで、ブロック565で、ユーザは、自身の1つ以上のアクティビティに復帰する。
上記の技術は、iOSデバイス186において実行される必要はなく、クラウドベースでありながら上記のスクリプト挿入のためにローカルアプリケーションプロキシ320と相互作用することが可能であるVPNサーバによって提供されてよい。斯様な実施形態では、VPNサーバは、ウェブページに挿入されるべきセッションキー又はアセットのいずれかへのアクセスを有さなくてよい。VPNサーバは、望まれるようにキャリア・インフラストラクチャに組み込まれてよい。
これより図6を参照すると、ブロック図は、一実施形態に従って、CRD510又はDWD520のいずれか一方のために使用され得るプログラム可能デバイス600を表す。図6で表されているプログラム可能デバイスは、第1のプロセッシング要素670及び第2のプロセッシング要素680を含むマルチプロセッサプログラム可能デバイス600である。2つのプロセッシング要素670及び680が示されているが、プログラム可能デバイス600の実施形態は、そのようなプロセッシング要素をただ1つしか含まなくてもよい。
プログラム可能デバイス600は、ポイント・ツー・ポイント相互接続システムとして表されている。当該システムにおいて、第1のプロセッシング要素670及び第2のプロセッシング要素680は、ポイント・ツー・ポイント・インターコネクト650を介して結合されている。図6で表されているインターコネクトのいずれか又は全ては、ポイント・ツー・ポイント・インターコネクトよりむしろ、マルチドロップ・バスとして実装されてよい。
図6で表されているように、プロセッシング要素670及び680の夫々は、第1及び第2のプロセッサコア(すなわち、プロセッサコア674A及び674B並びにプロセッサコア684A及び684B)を含むマルチコアプロセッサであってよい。そのようなコア674A、674B、684A、684Bは、図1乃至4に関連して上述されたのと同様に命令コードを実行するよう構成されてよい。なお、他の実施形態は、望まれるように、シングルコアプロセッサであるプロセッシング要素を使用してよい。複数のプロセッシング要素670、680を備える実施形態では、夫々のプロセッシング要素は、望まれるように、異なる数のコアを有して実装されてよい。
夫々のプロセッシング要素670、680は、少なくとも1つの共有キャッシュ646を含んでよい。共有キャッシュ646A、646Bは、コア674A、674B及び684A、684Bのようなプロセッシング要素の1つ以上のコンポーネントによって夫々利用されるデータ(例えば、命令)を記憶してよい。例えば、共有キャッシュは、プロセッシング要素670、680のコンポーネントによるより高速なアクセスのために、メモリ632、634において記憶されているデータをローカルでキャッシングしてよい。1つ以上の実施形態において、共有キャッシュ646A、646Bは、レベル2(L2)、レベル3(L3)、レベル4(L4)、又はキャッシュの他のレベルのような1つ以上のミッドレベルキャッシュ、ラストレベルキャッシュ(LLC;last level cache)、あるいは、それらの組み合わせを含んでよい。
図6は、図面の明りょうさのために、2つのプロセッシング要素670、680を備えたプログラム可能デバイスを表すが、本発明の適用範囲はそのように制限されず、プロセッシング要素はいくつでも存在してよい。代替的に、プロセッシング要素670、680の1つ以上は、グラフィクスプロセッシングユニット(GPU;graphics processing unit)、デジタル信号プロセッシング(DSP:digital signal processing)ユニット、フィールドプログラマブルゲートアレイ、又は何らかの他のプログラム可能なプロセッシング要素のような、プロセッサ以外の他の要素であってよい。プロセッシング要素680は、プロセッシング要素670と異種又は非対称であってよい。アーキテクチャ上の、マイクロアーキテクチャ上の、熱的な、電力消費の特性、及び同様のものを含むメリットのメトリクスのスペクトルに関して、プロセッシング要素670、680の間には様々な違いが存在してよい。それらの違いは、プロセッシング要素670、680の間の非対称性及び異種性として有効に現れてよい。幾つかの実施形態において、様々なプロセッシング要素670、680は、同じダイ・パッケージに存在してよい。
第1のプロセッシング要素670は、メモリコントローラロジック(MC)672並びにポイント・ツー・ポイント(P−P)インターフェイス676及び678を更に有してよい。同様に、第2のプロセッシング要素680は、MC682並びにP−Pインターフェイス686及び688を有してよい。図6で表されているように、MC672及び682は、プロセッシング要素670、680を夫々のメモリ、すなわち、メモリ632及びメモリ634へ結合する。メモリ632及び634は、夫々のプロセッサへローカルで付属しているメインメモリの部分であってよい。MCロジック672及び682は、プロセッシング要素670、680に組み込まれているものとして表されているが、幾つかの実施形態において、MCロジックは、プロセッシング要素670、680に組み込まれるのではなく、それらの外にある個別ロジックであってよい。
プロセッシング要素670及びプロセッシング要素680は、P−Pインターフェイス676及び686並びにP−Pインターコネクト652及び654を夫々介して、I/Oサブシステム690へ結合されてよい。図6で表されているように、I/Oサブシステム690はP−Pインターフェイス694及び698を含む。更に、I/Oサブシステム690は、I/Oサブシステム690を高性能グラフィクスエンジン638と結合するインターフェイス692を含む。一実施形態において、バス639は、グラフィクスエンジン638をI/Oサブシステム690へ結合するために使用されてよい。交代に、ポイント・ツー・ポイント・インターコネクト639がそれらのコンポーネントを結合してよい。
次いで、I/Oサブシステム690は、インターフェイス696を介して第1のリンク616へ結合されてよい。一実施形態において、第1のリンク616は、ペリフェラル・コンポーネント・インターコネクト(PCI;Peripheral Component Interconnect)バス、あるいは、PCIエクスプレスバス又は他のI/Oインターコネクトバスのようなバスであってよい。なお、本発明の適用範囲は、そのように制限されない。
図6で表されているように、様々なI/Oデバイス614は、第1のリンク616を第2のリンク610へ結合し得るブリッジ618に沿って、第1のリンク616へ結合されてよい。一実施形態において、第2のリンク610は、ローピンカウント(LPC;low pin count)バスであってよい。様々なデバイスが第2のリンク610へ結合されてよく、例えば、キーボード/マウス612、通信デバイス626(コンピュータネットワーク603と通信してよい。)、及び、一実施形態においてコードを含み得るディスクドライブ又は他の大容量ストレージのようなデータ記憶ユニット628がある。コード630は、上記の技術のうちの1つ以上の実施形態を実行する命令を含んでよい。更に、オーディオI/O624は、第2のリンク610へ結合されてよい。
他の実施形態が考えられる点に留意されたい。例えば、図6のポイント・ツー・ポイント・アーキテクチャの代わりに、システムは、マルチドロップ・バス又は他のそのような通信トポロジを実装してよい。リンク616及び610は、図6では、バスとして表されているが、如何なる望ましいタイプのリンクが使用されてもよい。加えて、図6の要素は、代替的に、図6で表されているよりも多い又は少ない集積チップを用いて分割されてよい。例えば、コンポーネントは、ネットワーク化された(LAN、企業ネットワーク、インターネット、及び/又はクラウドにおいて離散化された)コンピューティングデバイス(現実又は仮想)、あるいは、230の機能をまとまって実行するマイクロコントローラとして、実装されてよい。
これより図7を参照すると、ブロック図は、他の実施形態に従うプログラム可能デバイス700を表す。図6の特定の態様は、図7の他の態様を不明りょうにしないように、図7から省略されている。
図7は、プロセッシング要素670、680が、集積メモリ及びI/O制御ロジック(“CL”)772及び782を夫々有してよいことを表す。幾つかの実施形態において、CL772、782は、図6に関連して記載されたもののようなメモリ制御ロジック(MC)を含んでよい。加えて、CL772、782は、I/O制御ロジックを更に含んでよい。図7は、メモリ732、734がCL772、782へ結合され得ることだけでなく、I/Oデバイス744も制御ロジック772、782へ結合され得ることも表す。レガシーI/Oデバイス715は、インターフェイス796によってI/Oサブシステム790へ結合されてよい。夫々のプロセッシング要素770、780は、プロセッサコア774A、774B、784A及び784Bとして、図7で表されている複数のプロセッサコアを含んでよい。図7で表されているように、I/Oサブシステム790は、インターコネクト752及び754を用いてプロセッシング要素770及び780のP−Pインターフェイス776及び786へ接続するP−Pインターフェイス794及び798を含む。プロセッシング要素770及び780はまた、インターコネクト750並びに夫々インターフェイス778及び788によって相互接続されてよい。
図6及び7で表されているプログラム可能デバイスは、ここで論じられる様々な実施形態を実装するために用いられ得るプログラム可能デバイスの実施形態の略図である。図6及び7で表されているプログラム可能デバイスの様々なコンポーネントは、システム・オン・チップ(SoC;system-on-a-chip)アーキテクチャにおいて結合されてよい。
これより図8を参照すると、上記の技術が実装され得る例となるインフラストラクチャ800が概略的に表されている。インフラストラクチャ800は、コンピュータネットワーク802を含む。コンピュータネットワーク802は、インターネット、コーポレートネットワーク、又はローカルエリアネットワーク(LAN;Local Area Network)のような、今日利用可能な多種多様なコンピュータネットワークを含んでよい。それらのネットワークの夫々は、有線又は無線式のプログラム可能デバイスを含み、いくつのネットワークプロトコル(例えば、TCP/IP)によっても動作することができる。ネットワーク802は、ゲートウェイ及びルータ(808によって表される。)、エンドユーザコンピュータ806、並びにコンピュータサーバ804へ接続されてよい。インフラストラクチャ800は、モバイル通信デバイスとともに使用されるセルラーネットワーク803を更に含む。モバイルセルラーネットワークは、携帯電話機及び多くの他のタイプのデバイスをサポートする。インフラストラクチャ800におけるモバイルデバイスは、携帯電話機810、ラップトップ812、及びタブレット814として表されている。携帯電話機810のようなモバイルデバイスは、モバイルデバイスが移動するにつれて1つ以上のモバイルプロバイダネットワークと相互作用してよく、通常は、セルラーネットワーク803へ接続するために複数のモバイルネットワーク塔(図示せず。)と相互作用する。図8ではセルラーネットワークと呼ばれているが、モバイルデバイスは、1よりも多いプロバイダネットワークの塔と、更には、無線アクセスポイント及びルータ808のような複数の非セルラーデバイスと相互作用してよい。加えて、モバイルデバイス810、812及び814は、所望のサービスのために、コンピュータ804及び806のような非モバイルデバイスと相互作用してよい。
以下の例は、更なる実施形態に関連する。
例1は、ブラウザによるリクエストに応答してローカルプロキシをダウンロードするステップと、コンフィグレーションプロファイルを取得しインストールするステップと、内部仮想プライベートネットワークサービスをアクティブにするステップと、前記内部仮想プライベートネットワークサービスを通じて前記ローカルプロキシを確立するステップと、前記ローカルプロキシを実行するステップとを有する方法である。
例2において、例1の対象は、任意に、前記リクエストがHTTPリクエストである、ことを含むことができる。
例3において、例1乃至2のいずれかの対象は、任意に、前記ローカルプロキシが遠隔の仮想プライベートネットワークサーバと相互作用する、ことを含むことができる。
例4は、命令が記憶されているコンピュータ可読媒体であって、前記命令は、実行される場合にマシンに、ローカルプロキシ及び該ローカルプロキシとブラウザとの間の接続を確立するステップと、遠隔のサーバと前記ローカルプロキシとの間の接続を確立するステップと、サーバプロキシを確立するよう前記遠隔のサーバをシミュレートするステップと、前記ブラウザ及び前記サーバプロキシのうちの少なくとも1つからリクエストを受け、該リクエストを前記遠隔のサーバへ送るステップと、前記遠隔のサーバから前記ブラウザへ送られたサーバ応答を受けるステップと、前記サーバ応答に基づく肯定的なスクリプトインジェクション応答を前記ブラウザから受けるステップと、前記サーバ応答をバッファリングするステップと、挿入スクリプトを生成するステップと、前記挿入スクリプトを前記ブラウザへ送るステップとを実行させる命令を有する、コンピュータ可読媒体である。
例5において、例4の対象は、任意に、実行される場合に前記マシンに前記挿入スクリプトを前記ブラウザへ送らせる前記命令が、実行される場合に前記マシンに、前記バッファリングされたサーバ応答を前記挿入スクリプトにより変更して、変形サーバ応答を生成するステップと、前記変形サーバ応答を前記ブラウザへ送るステップとを実行させる命令を有する、ことを含むことができる。
例6において、例4乃至5のいずれかの対象は、任意に、前記命令が、実行される場合に前記マシンに、変更されたウェブページを前記ブラウザでレンダリングさせる命令を更に有する、ことを含むことができる。
例7において、例4の対象は、任意に、前記命令が、実行される場合に前記マシンに、ロードされたウェブページにおいてログインフォームの存在を確立するステップと、アセットリクエストを生成するステップと、前記アセットリクエストを対称アルゴリズムにより暗号化するステップと、前記アセットリクエストを前記遠隔のサーバへ送るステップと、要求されたアセットを含むアセットリクエスト応答を前記遠隔のサーバから受けるステップと、前記アセットリクエスト応答を前記対称アルゴリズムにより解読するステップと、前記要求されたアセットを前記ローカルプロキシ及び前記ブラウザのうちの少なくとも1つへ送るステップとを実行させる命令を更に有する、ことを含むことができる。
例8において、例7の対象は、任意に、実行される場合に前記マシンに挿入スクリプトを生成させる前記命令が、実行される場合に前記マシンに暗号キーをセキュアに生成させる命令を有し、前記対称アルゴリズムが、前記セキュアに生成された暗号キーを用いて、前記アセットリクエストを暗号化し且つ前記アセットリクエスト応答を解読する、ことを含むことができる。
例9において、例7の対象は、任意に、実行される場合に前記マシンにロードされたウェブページにおいてログインフォームの存在を確立させる前記命令が、実行される場合に前記マシンに、少なくとも1つのアカウント選択を含むアカウント選択フォームを前記ブラウザへ送るステップと、前記少なくとも1つのアカウント選択の1つを含むアカウント選択リクエストを生成するステップと、前記アカウント選択リクエストを前記ブラウザから受けるステップとを実行させる命令を有する、ことを含むことができる。
例10において、例9の対象は、任意に、前記アカウント選択リクエストが暗号化される、ことを含むことができる。
例11において、例10の対象は、任意に、前記アカウント選択リクエストが対称暗号化アルゴリズムを用いて暗号化される、ことを含むことができる。
例12において、例10の対象は、任意に、前記命令が、実行される場合に前記マシンに、ダミーストリングを含むアカウント選択応答を生成するステップと、前記アカウント選択応答を前記ブラウザへ送るステップと、前記ロードされたウェブページにおいてウェブページ入力フィールドに前記ダミーストリングを挿入するステップと、前記ダミーストリングを含む第2リクエストを前記ブラウザから受けるステップと、実時間において前記ダミーストリングを、前記遠隔のサーバから読み出されたパスワードにより置換するステップとを実行させる命令を更に有する、ことを含むことができる。
例13は、プロセッサと、命令が記憶されているメモリとを有するプログラム可能なデバイスであって、前記命令が、実行される場合に前記プロセッサに、ローカルプロキシ及び該ローカルプロキシとブラウザとの間の接続を確立するステップと、遠隔のサーバと前記ローカルプロキシとの間の接続を確立するステップと、サーバプロキシを確立するよう前記遠隔のサーバをシミュレートするステップと、前記ブラウザ及び前記サーバプロキシのうちの少なくとも1つからリクエストを受け、該リクエストを前記遠隔のサーバへ送るステップと、前記遠隔のサーバから前記ブラウザへ送られたサーバ応答を受けるステップと、前記サーバ応答に基づく肯定的なスクリプトインジェクション応答を前記ブラウザから受けるステップと、前記サーバ応答をバッファリングするステップと、挿入スクリプトを生成するステップと、前記挿入スクリプトを前記ブラウザへ送るステップとを実行させる命令を有する、プログラム可能なデバイスである。
例14において、例13の対象は、任意に、実行される場合に前記プロセッサに前記挿入スクリプトを前記ブラウザへ送らせる前記命令が、実行される場合に前記プロセッサに、前記バッファリングされたサーバ応答を前記挿入スクリプトにより変更して、変形サーバ応答を生成するステップと、前記変形サーバ応答を前記ブラウザへ送るステップとを実行させる命令を有する、ことを含むことができる。
例15において、例13乃至14のいずれかの対象は、任意に、前記命令が、実行される場合に前記プロセッサに、変更されたウェブページを前記ブラウザでレンダリングさせる命令を更に有する、ことを含むことができる。
例16において、例13乃至14のいずれかの対象は、任意に、前記命令が、実行される場合に前記プロセッサに、ロードされたウェブページにおいてログインフォームの存在を確立するステップと、アセットリクエストを生成するステップと、前記アセットリクエストを対称アルゴリズムにより暗号化するステップと、前記アセットリクエストを前記遠隔のサーバへ送るステップと、要求されたアセットを含むアセットリクエスト応答を前記遠隔のサーバから受けるステップと、前記アセットリクエスト応答を前記対称アルゴリズムにより解読するステップと、前記要求されたアセットを前記ローカルプロキシ及び前記ブラウザのうちの少なくとも1つへ送るステップとを実行させる命令を更に有する、ことを含むことができる。
例17において、例16の対象は、任意に、実行される場合に前記プロセッサに挿入スクリプトを生成させる前記命令が、実行される場合に前記プロセッサに暗号キーをセキュアに生成させる命令を有し、前記対称アルゴリズムが、前記セキュアに生成された暗号キーを用いて、前記アセットリクエストを暗号化し且つ前記アセットリクエスト応答を解読する、ことを含むことができる。
例18において、例16の対象は、任意に、実行される場合に前記プロセッサにロードされたウェブページにおいてログインフォームの存在を確立させる前記命令が、実行される場合に前記プロセッサに、少なくとも1つのアカウント選択を含むアカウント選択フォームを前記ブラウザへ送るステップと、前記少なくとも1つのアカウント選択の1つを含むアカウント選択リクエストを生成するステップと、前記アカウント選択リクエストを前記ブラウザから受けるステップとを実行させる命令を有する、ことを含むことができる。
例19において、例18の対象は、任意に、前記アカウント選択リクエストが暗号化される、ことを含むことができる。
例20において、例19の対象は、任意に、前記アカウント選択リクエストが対称暗号化アルゴリズムを用いて暗号化される、ことを含むことができる。
例21において、例19の対象は、任意に、前記命令が、実行される場合に前記プロセッサに、ダミーストリングを含むアカウント選択応答を生成するステップと、前記アカウント選択応答を前記ブラウザへ送るステップと、前記ロードされたウェブページにおいてウェブページ入力フィールドに前記ダミーストリングを挿入するステップと、前記ダミーストリングを含む第2リクエストを前記ブラウザから受けるステップと、実時間において前記ダミーストリングを、前記遠隔のサーバから読み出されたパスワードにより置換するステップとを実行させる命令を更に有する、ことを含むことができる。
例22は、プロセッサと、命令が記憶されているメモリとを有するプログラム可能なデバイスであって、前記命令が、実行される場合に前記プロセッサに、ローカルプロキシ及び該ローカルプロキシとブラウザとの間の接続を確立するステップと、遠隔のサーバと前記ローカルプロキシとの間の接続を確立するステップと、サーバプロキシを確立するよう前記遠隔のサーバをシミュレートするステップと、前記ブラウザ及び前記サーバプロキシのうちの少なくとも1つからリクエストを受け、該リクエストを前記遠隔のサーバへ送るステップと、前記遠隔のサーバから前記ブラウザへ送られたサーバ応答を受けるステップと、前記サーバ応答に基づく肯定的なスクリプトインジェクション応答を前記ブラウザから受けるステップと、前記サーバ応答をバッファリングするステップと、挿入スクリプトを生成するステップと、前記バッファリングされたサーバ応答を前記挿入スクリプトにより変更して、変形サーバ応答を生成するステップと、前記変形サーバ応答を前記ブラウザへ送るステップとを実行させる命令を有する、プログラム可能なデバイスである。
例23において、例22の対象は、任意に、前記命令が、実行される場合に前記プロセッサに、ロードされたウェブページにおいてログインフォームの存在を確立するステップと、アセットリクエストを生成するステップと、前記アセットリクエストを対称アルゴリズムにより暗号化するステップと、前記アセットリクエストを前記遠隔のサーバへ送るステップと、要求されたアセットを含むアセットリクエスト応答を前記遠隔のサーバから受けるステップと、前記アセットリクエスト応答を前記対称アルゴリズムにより解読するステップと、前記要求されたアセットを前記ローカルプロキシ及び前記ブラウザのうちの少なくとも1つへ送るステップとを実行させる命令を更に有する、ことを含むことができる。
例24において、例22乃至23のいずれかの対象は、任意に、前記命令が、実行される場合に前記プロセッサに、ダミーストリングを含むアカウント選択応答を生成するステップと、前記アカウント選択応答を前記ブラウザへ送るステップと、前記ロードされたウェブページにおいてウェブページ入力フィールドに前記ダミーストリングを挿入するステップと、前記ダミーストリングを含む第2リクエストを前記ブラウザから受けるステップと、実時間において前記ダミーストリングを、前記遠隔のサーバから読み出されたパスワードにより置換するステップとを実行させる命令を更に有する、ことを含むことができる。
例25において、例23の対象は、任意に、実行される場合に前記プロセッサに挿入スクリプトを生成させる前記命令が、実行される場合に前記プロセッサに暗号キーをセキュアに生成させる命令を有し、前記対称アルゴリズムが、前記セキュアに生成された暗号キーを用いて、前記アセットリクエストを暗号化し且つ前記アセットリクエスト応答を解読する、ことを含むことができる。
例26において、例23の対象は、任意に、実行される場合に前記プロセッサにロードされたウェブページにおいてログインフォームの存在を確立させる前記命令は、実行される場合に前記プロセッサに、少なくとも1つのアカウント選択を含むアカウント選択フォームを前記ブラウザへ送るステップと、前記少なくとも1つのアカウント選択の1つを含むアカウント選択リクエストを生成するステップと、前記アカウント選択リクエストを前記ブラウザから受けるステップとを実行させる命令を有する、ことを含むことができる。
例27は、プロセッサと、該プロセッサと結合され、命令が記憶されているメモリとを有するプログラム可能なデバイスであって、前記命令が、実行される場合に前記プロセッサに、ブラウザによるリクエストに応答してローカルプロキシをダウンロードするステップと、コンフィグレーションプロファイルを取得しインストールするステップと、内部仮想プライベートネットワークサービスをアクティブにするステップと、前記内部仮想プライベートネットワークサービスを通じて前記ローカルプロキシを確立するステップと、前記ローカルプロキシを実行するステップとを実行させる命令を有する、プログラム可能なデバイスである。
例28において、例27の対象は、任意に、前記リクエストがHTTPリクエストである、ことを含むことができる。
例29において、例27乃至28のいずれかの対象は、任意に、前記ローカルプロキシが遠隔の仮想プライベートネットワークサーバと相互作用する、ことを含むことができる。
上記の説明は、制限ではなく、実例であるよう意図されることが理解されるべきである。例えば、上記の実施形態は、お互いと組み合わされて使用されてよい。多くの他の実施形態は、上記の説明を読むことで当業者に明らかであろう。従って、本発明の適用範囲は、添付の特許請求の範囲を参照して、斯様な特許請求の範囲が権利を付与される等価な全範囲とともに決定されるべきである。
[関連出願の相互参照]
本願は、2014年1月24日付けで出願された、「Automatic placeholder finder-filler」と題された米国特許仮出願第61/931247号に基づく優先権を主張するものである。なお、この先の特許出願は、その全文を参照により本願に援用される。

Claims (28)

  1. 命令を含むプログラムであって、
    前記命令は、マシンによって実行される場合に、該マシンに、
    ローカルプロキシ及び該ローカルプロキシとブラウザとの間の接続を確立するステップと、
    遠隔のサーバと前記ローカルプロキシとの間の接続を確立するステップと、
    サーバプロキシを確立するよう前記遠隔のサーバをシミュレートするステップと、
    前記ブラウザ及び前記サーバプロキシのうちの少なくとも1つからリクエストを受け、該リクエストを前記遠隔のサーバへ送るステップと、
    前記遠隔のサーバから前記ブラウザへ送られたサーバ応答を受けるステップと、
    前記サーバ応答に基づく肯定的なスクリプトインジェクション応答を前記ブラウザから受けるステップと、
    前記サーバ応答をバッファリングするステップと、
    挿入スクリプトを生成するステップと、
    前記挿入スクリプトを前記ブラウザへ送るステップと
    を実行させる命令を有する、プログラム。
  2. 実行される場合に前記マシンに前記挿入スクリプトを前記ブラウザへ送らせる前記命令は、実行される場合に前記マシンに、
    前記バッファリングされたサーバ応答を前記挿入スクリプトにより変更して、変形サーバ応答を生成するステップと、
    前記変形サーバ応答を前記ブラウザへ送るステップと
    を実行させる命令を有する、請求項に記載のプログラム。
  3. 前記命令は、実行される場合に前記マシンに、
    変更されたウェブページを前記ブラウザでレンダリングするステップ
    を実行させる命令を更に有する、請求項又はに記載のプログラム。
  4. 前記命令は、実行される場合に前記マシンに、
    ロードされたウェブページにおいてログインフォームの存在を確立するステップと、
    アセットリクエストを生成するステップと、
    前記アセットリクエストを対称アルゴリズムにより暗号化するステップと、
    前記アセットリクエストを前記遠隔のサーバへ送るステップと、
    要求されたアセットを含むアセットリクエスト応答を前記遠隔のサーバから受けるステップと、
    前記アセットリクエスト応答を前記対称アルゴリズムにより解読するステップと、
    前記要求されたアセットを前記ローカルプロキシ及び前記ブラウザのうちの少なくとも1つへ送るステップと
    を実行させる命令を更に有する、請求項に記載のプログラム。
  5. 実行される場合に前記マシンに挿入スクリプトを生成させる前記命令は、実行される場合に前記マシンに暗号キーをセキュアに生成するステップを実行させる命令を有し、
    前記対称アルゴリズムは、前記セキュアに生成された暗号キーを用いて、前記アセットリクエストを暗号化し且つ前記アセットリクエスト応答を解読する、
    請求項に記載のプログラム。
  6. 実行される場合に前記マシンにロードされたウェブページにおいてログインフォームの存在を確立させる前記命令は、実行される場合に前記マシンに、
    少なくとも1つのアカウント選択を含むアカウント選択フォームを前記ブラウザへ送るステップと、
    前記少なくとも1つのアカウント選択の1つを含むアカウント選択リクエストを生成するステップと、
    前記アカウント選択リクエストを前記ブラウザから受けるステップと
    を実行させる命令を有する、請求項に記載のプログラム。
  7. 前記アカウント選択リクエストは暗号化される、
    請求項に記載のプログラム。
  8. 前記アカウント選択リクエストは、対称暗号化アルゴリズムを用いて暗号化される、
    請求項に記載のプログラム。
  9. 前記命令は、実行される場合に前記マシンに、
    ダミーストリングを含むアカウント選択応答を生成するステップと、
    前記アカウント選択応答を前記ブラウザへ送るステップと、
    前記ロードされたウェブページにおいてウェブページ入力フィールドに前記ダミーストリングを挿入するステップと、
    前記ダミーストリングを含む第2リクエストを前記ブラウザから受けるステップと、
    実時間において前記ダミーストリングを、前記遠隔のサーバから読み出されたパスワードにより置換するステップと
    を実行させる命令を更に有する、請求項に記載のプログラム。
  10. プロセッサと、
    命令が記憶されているメモリと
    を有し、
    前記命令は、前記プロセッサによって実行される場合に、該プロセッサに、
    ローカルプロキシ及び該ローカルプロキシとブラウザとの間の接続を確立するステップと、
    遠隔のサーバと前記ローカルプロキシとの間の接続を確立するステップと、
    サーバプロキシを確立するよう前記遠隔のサーバをシミュレートするステップと、
    前記ブラウザ及び前記サーバプロキシのうちの少なくとも1つからリクエストを受け、該リクエストを前記遠隔のサーバへ送るステップと、
    前記遠隔のサーバから前記ブラウザへ送られたサーバ応答を受けるステップと、
    前記サーバ応答に基づく肯定的なスクリプトインジェクション応答を前記ブラウザから受けるステップと、
    前記サーバ応答をバッファリングするステップと、
    挿入スクリプトを生成するステップと、
    前記挿入スクリプトを前記ブラウザへ送るステップと
    を実行させる命令を有する、プログラム可能なデバイス。
  11. 実行される場合に前記プロセッサに前記挿入スクリプトを前記ブラウザへ送らせる前記命令は、実行される場合に前記プロセッサに、
    前記バッファリングされたサーバ応答を前記挿入スクリプトにより変更して、変形サーバ応答を生成するステップと、
    前記変形サーバ応答を前記ブラウザへ送るステップと
    を実行させる命令を有する、請求項10に記載のプログラム可能なデバイス。
  12. 前記命令は、実行される場合に前記プロセッサに、
    変更されたウェブページを前記ブラウザでレンダリングするステップ
    を実行させる命令を更に有する、請求項10又は11に記載のプログラム可能なデバイス。
  13. 前記命令は、実行される場合に前記プロセッサに、
    ロードされたウェブページにおいてログインフォームの存在を確立するステップと、
    アセットリクエストを生成するステップと、
    前記アセットリクエストを対称アルゴリズムにより暗号化するステップと、
    前記アセットリクエストを前記遠隔のサーバへ送るステップと、
    要求されたアセットを含むアセットリクエスト応答を前記遠隔のサーバから受けるステップと、
    前記アセットリクエスト応答を前記対称アルゴリズムにより解読するステップと、
    前記要求されたアセットを前記ローカルプロキシ及び前記ブラウザのうちの少なくとも1つへ送るステップと
    を実行させる命令を更に有する、請求項10又は11に記載のプログラム可能なデバイス。
  14. 実行される場合に前記プロセッサに挿入スクリプトを生成させる前記命令は、実行される場合に前記プロセッサに暗号キーをセキュアに生成するステップを実行させる命令を有し、
    前記対称アルゴリズムは、前記セキュアに生成された暗号キーを用いて、前記アセットリクエストを暗号化し且つ前記アセットリクエスト応答を解読する、
    請求項13に記載のプログラム可能なデバイス。
  15. 実行される場合に前記プロセッサにロードされたウェブページにおいてログインフォームの存在を確立させる前記命令は、実行される場合に前記プロセッサに、
    少なくとも1つのアカウント選択を含むアカウント選択フォームを前記ブラウザへ送るステップと、
    前記少なくとも1つのアカウント選択の1つを含むアカウント選択リクエストを生成するステップと、
    前記アカウント選択リクエストを前記ブラウザから受けるステップと
    を実行させる命令を有する、請求項13に記載のプログラム可能なデバイス。
  16. 前記アカウント選択リクエストは暗号化される、
    請求項15に記載のプログラム可能なデバイス。
  17. 前記アカウント選択リクエストは、対称暗号化アルゴリズムを用いて暗号化される、
    請求項16に記載のプログラム可能なデバイス。
  18. 前記命令は、実行される場合に前記プロセッサに、
    ダミーストリングを含むアカウント選択応答を生成するステップと、
    前記アカウント選択応答を前記ブラウザへ送るステップと、
    前記ロードされたウェブページにおいてウェブページ入力フィールドに前記ダミーストリングを挿入するステップと、
    前記ダミーストリングを含む第2リクエストを前記ブラウザから受けるステップと、
    実時間において前記ダミーストリングを、前記遠隔のサーバから読み出されたパスワードにより置換するステップと
    を実行させる命令を更に有する、請求項16に記載のプログラム可能なデバイス。
  19. 請求項乃至のうちいずれか一項に記載のプログラムを記憶しているマシン読み出し可能な媒体。
  20. ローカルプロキシ及び該ローカルプロキシとブラウザとの間の接続を確立するステップと、
    遠隔のサーバと前記ローカルプロキシとの間の接続を確立するステップと、
    サーバプロキシを確立するよう前記遠隔のサーバをシミュレートするステップと、
    前記ブラウザ及び前記サーバプロキシのうちの少なくとも1つからリクエストを受け、該リクエストを前記遠隔のサーバへ送るステップと、
    前記遠隔のサーバから前記ブラウザへ送られたサーバ応答を受けるステップと、
    前記サーバ応答に基づく肯定的なスクリプトインジェクション応答を前記ブラウザから受けるステップと、
    前記サーバ応答をバッファリングするステップと、
    挿入スクリプトを生成するステップと、
    前記挿入スクリプトを前記ブラウザへ送るステップと
    を有する方法。
  21. 前記挿入スクリプトを前記ブラウザへ送る前記ステップは、
    前記バッファリングされたサーバ応答を前記挿入スクリプトにより変更して、変形サーバ応答を生成するステップと、
    前記変形サーバ応答を前記ブラウザへ送るステップと
    を含む、請求項20に記載の方法。
  22. 変更されたウェブページを前記ブラウザでレンダリングするステップ
    を更に有する、請求項20又は21に記載の方法。
  23. ロードされたウェブページにおいてログインフォームの存在を確立するステップと、
    アセットリクエストを生成するステップと、
    前記アセットリクエストを対称アルゴリズムにより暗号化するステップと、
    前記アセットリクエストを前記遠隔のサーバへ送るステップと、
    要求されたアセットを含むアセットリクエスト応答を前記遠隔のサーバから受けるステップと、
    前記アセットリクエスト応答を前記対称アルゴリズムにより解読するステップと、
    前記要求されたアセットを前記ローカルプロキシ及び前記ブラウザのうちの少なくとも1つへ送るステップと
    を更に有する、請求項20に記載の方法。
  24. 挿入スクリプトを生成する前記ステップは、暗号キーをセキュアに生成するステップを含み、
    前記対称アルゴリズムは、前記セキュアに生成された暗号キーを用いて、前記アセットリクエストを暗号化し且つ前記アセットリクエスト応答を解読する、
    請求項23に記載の方法。
  25. ロードされたウェブページにおいてログインフォームの存在を確立する前記ステップは、
    少なくとも1つのアカウント選択を含むアカウント選択フォームを前記ブラウザへ送るステップと、
    前記少なくとも1つのアカウント選択の1つを含むアカウント選択リクエストを生成するステップと、
    前記アカウント選択リクエストを前記ブラウザから受けるステップと
    を含む、請求項23に記載の方法。
  26. 前記アカウント選択リクエストは暗号化される、
    請求項25に記載の方法。
  27. 前記アカウント選択リクエストは、対称暗号化アルゴリズムを用いて暗号化される、
    請求項26に記載の方法。
  28. ダミーストリングを含むアカウント選択応答を生成するステップと、
    前記アカウント選択応答を前記ブラウザへ送るステップと、
    前記ロードされたウェブページにおいてウェブページ入力フィールドに前記ダミーストリングを挿入するステップと、
    前記ダミーストリングを含む第2リクエストを前記ブラウザから受けるステップと、
    実時間において前記ダミーストリングを、前記遠隔のサーバから読み出されたパスワードにより置換するステップと
    を更に有する、請求項26に記載の方法。
JP2016535707A 2014-01-24 2014-12-23 自動プレースホルダファインダ及びフィラー Active JP6216458B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201461931247P 2014-01-24 2014-01-24
US61/931,247 2014-01-24
PCT/US2014/072147 WO2015112301A1 (en) 2014-01-24 2014-12-23 Automatic placeholder finder-filler

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2017182159A Division JP6449399B2 (ja) 2014-01-24 2017-09-22 自動プレースホルダファインダ及びフィラー

Publications (2)

Publication Number Publication Date
JP2017503249A JP2017503249A (ja) 2017-01-26
JP6216458B2 true JP6216458B2 (ja) 2017-10-18

Family

ID=53681828

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2016535707A Active JP6216458B2 (ja) 2014-01-24 2014-12-23 自動プレースホルダファインダ及びフィラー
JP2017182159A Active JP6449399B2 (ja) 2014-01-24 2017-09-22 自動プレースホルダファインダ及びフィラー
JP2018228011A Active JP6591650B2 (ja) 2014-01-24 2018-12-05 自動プレースホルダファインダ及びフィラー

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2017182159A Active JP6449399B2 (ja) 2014-01-24 2017-09-22 自動プレースホルダファインダ及びフィラー
JP2018228011A Active JP6591650B2 (ja) 2014-01-24 2018-12-05 自動プレースホルダファインダ及びフィラー

Country Status (6)

Country Link
US (3) US10291585B2 (ja)
EP (2) EP3097658B1 (ja)
JP (3) JP6216458B2 (ja)
KR (1) KR101882115B1 (ja)
CN (1) CN105874742B (ja)
WO (1) WO2015112301A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6216458B2 (ja) 2014-01-24 2017-10-18 マカフィー, エルエルシー 自動プレースホルダファインダ及びフィラー
RU2638710C1 (ru) 2016-10-10 2017-12-15 Акционерное общество "Лаборатория Касперского" Способы обнаружения вредоносных элементов веб-страниц
CN106713335B (zh) * 2016-12-30 2020-10-30 山石网科通信技术股份有限公司 恶意软件的识别方法及装置
CN107733847B (zh) * 2017-07-25 2020-06-09 深圳壹账通智能科技有限公司 平台登录网站方法、装置、计算机设备以及可读存储介质
US11283763B2 (en) 2018-12-28 2022-03-22 Mcafee, Llc On-device dynamic safe browsing
US11405237B2 (en) 2019-03-29 2022-08-02 Mcafee, Llc Unencrypted client-only virtual private network
US11362999B2 (en) * 2019-03-29 2022-06-14 Mcafee, Llc Client-only virtual private network
CN111046368B (zh) * 2019-12-30 2023-04-21 重庆长安汽车股份有限公司 基于人脸识别登录智能汽车云平台的方法
US11356415B2 (en) * 2020-03-09 2022-06-07 Arbor Networks, Inc. Filter for suspicious network activity attempting to mimic a web browser
US11880451B2 (en) * 2021-01-29 2024-01-23 Blackberry Limited Secured code package for browser plugin
CN113076550B (zh) * 2021-04-16 2022-10-18 顶象科技有限公司 脚本文本的更新方法、脚本文本的加密方法及装置

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6266681B1 (en) * 1997-04-08 2001-07-24 Network Commerce Inc. Method and system for inserting code to conditionally incorporate a user interface component in an HTML document
US7496670B1 (en) 1997-11-20 2009-02-24 Amdocs (Israel) Ltd. Digital asset monitoring system and method
US20020062342A1 (en) * 2000-11-22 2002-05-23 Sidles Charles S. Method and system for completing forms on wide area networks such as the internet
US7216173B2 (en) * 2001-06-12 2007-05-08 Varian Medical Systems Technologies, Inc. Virtual private network software system
TW550467B (en) 2002-04-15 2003-09-01 Htc Corp Method and electronic device allowing an HTML document to access local system resource
US7383339B1 (en) * 2002-07-31 2008-06-03 Aol Llc, A Delaware Limited Liability Company Local proxy server for establishing device controls
US8332464B2 (en) * 2002-12-13 2012-12-11 Anxebusiness Corp. System and method for remote network access
US20040158746A1 (en) * 2003-02-07 2004-08-12 Limin Hu Automatic log-in processing and password management system for multiple target web sites
US20050183003A1 (en) * 2004-02-17 2005-08-18 Checkpoint Software Technologies Ltd. Automatic proxy form filing
US20050273849A1 (en) 2004-03-11 2005-12-08 Aep Networks Network access using secure tunnel
EP1763776B1 (en) 2004-05-21 2019-07-31 Oracle International Corporation Service oriented architecture
US20060248575A1 (en) 2005-05-02 2006-11-02 Zachary Levow Divided encryption connections to provide network traffic security
JP4353487B2 (ja) * 2006-05-30 2009-10-28 インターナショナル・ビジネス・マシーンズ・コーポレーション ローカル・プロキシにより通信情報を共有する方法
JP5205380B2 (ja) * 2006-08-22 2013-06-05 インターデイジタル テクノロジー コーポレーション アプリケーションおよびインターネットベースのサービスに対する信頼されるシングル・サインオン・アクセスを提供するための方法および装置
US8255696B2 (en) 2007-05-01 2012-08-28 Microsoft Corporation One-time password access to password-protected accounts
US9098481B2 (en) * 2007-06-15 2015-08-04 Microsoft Technology Licensing, Llc Increasing accuracy in determining purpose of fields in forms
US8281147B2 (en) 2007-06-21 2012-10-02 Microsoft Corporation Image based shared secret proxy for secure password entry
US8359319B2 (en) 2007-08-27 2013-01-22 Sudhir Pendse Tool for personalized search
US20130304637A1 (en) * 2007-10-02 2013-11-14 American Express Travel Related Services Company, Inc. Fraud control integrated form filling tool
US20090172824A1 (en) * 2007-12-28 2009-07-02 Marcovision Corporation Corruption of swarm downloads in a decentralized network employing advanced intelligent corruption handling
US8910272B2 (en) * 2008-02-28 2014-12-09 Hob Gmbh & Co. Kg Computer communication system for communication via public networks
US20100329149A1 (en) * 2009-06-29 2010-12-30 Fiberlink Communications Corporation Universal connections data collection
US8370933B1 (en) 2009-11-24 2013-02-05 Symantec Corporation Systems and methods for detecting the insertion of poisoned DNS server addresses into DHCP servers
US8453225B2 (en) 2009-12-23 2013-05-28 Citrix Systems, Inc. Systems and methods for intercepting and automatically filling in forms by the appliance for single-sign on
US8813167B2 (en) * 2010-12-30 2014-08-19 Apple Inc. Dynamic device configuration using predicates
US9210127B2 (en) * 2011-06-15 2015-12-08 Mcafee, Inc. System and method for limiting data leakage
EP2541861A1 (en) * 2011-06-30 2013-01-02 British Telecommunications Public Limited Company Server security systems and related aspects
US8438635B2 (en) 2011-09-15 2013-05-07 Microsoft Corporation Single sign-on for remote desktops
US9083703B2 (en) * 2012-03-29 2015-07-14 Lockheed Martin Corporation Mobile enterprise smartcard authentication
US9094413B2 (en) * 2012-08-27 2015-07-28 Vmware, Inc. Configuration profile validation on iOS Using SSL and redirect
US8595810B1 (en) 2013-01-13 2013-11-26 Mourad Ben Ayed Method for automatically updating application access security
US9787686B2 (en) * 2013-04-12 2017-10-10 Airwatch Llc On-demand security policy activation
WO2015042547A1 (en) * 2013-09-20 2015-03-26 Oracle International Corporation Web-based interface integration for single sign-on
JP6216458B2 (ja) 2014-01-24 2017-10-18 マカフィー, エルエルシー 自動プレースホルダファインダ及びフィラー
US9613204B2 (en) * 2014-12-23 2017-04-04 Document Storage Systems, Inc. Computer readable storage media for legacy integration and methods and systems for utilizing same

Also Published As

Publication number Publication date
EP3731458A1 (en) 2020-10-28
KR20160089472A (ko) 2016-07-27
US10291585B2 (en) 2019-05-14
JP2019046496A (ja) 2019-03-22
US10666622B2 (en) 2020-05-26
US20200259798A1 (en) 2020-08-13
EP3097658A1 (en) 2016-11-30
JP6591650B2 (ja) 2019-10-16
WO2015112301A1 (en) 2015-07-30
CN105874742A (zh) 2016-08-17
JP2017224357A (ja) 2017-12-21
KR101882115B1 (ko) 2018-07-25
US20160330173A1 (en) 2016-11-10
JP6449399B2 (ja) 2019-01-09
CN105874742B (zh) 2019-11-08
US20190253394A1 (en) 2019-08-15
US11349814B2 (en) 2022-05-31
EP3097658A4 (en) 2017-07-26
JP2017503249A (ja) 2017-01-26
EP3097658B1 (en) 2020-07-01

Similar Documents

Publication Publication Date Title
JP6591650B2 (ja) 自動プレースホルダファインダ及びフィラー
JP6687641B2 (ja) サーバまたは他の装置からのエントロピーに基づくクライアント装置の認証
US20210004453A1 (en) Device-specific authentication credentials
JP6358549B2 (ja) セッション共有によるセッションの自動ログインおよびログアウト
JP6348661B2 (ja) サードパーティの認証サポートを介した企業認証
TWI439103B (zh) 網路資源之單一登入以及安全存取的政策導向憑證授權
US9813382B2 (en) Cryptographic binding of multiple secured connections
US20080276098A1 (en) One-time password access to password-protected accounts
US10911485B2 (en) Providing cross site request forgery protection at an edge server
WO2017053577A1 (en) Remote authentication and passwordless password reset
US10045212B2 (en) Method and apparatus for providing provably secure user input/output
US11212083B2 (en) Slave secure sockets layer proxy system
Ajay et al. Packet encryption for securing real-time Mobile cloud applications
Mortágua et al. VPN User Authentication Using Centralized Identity Providers
Eigelis Cloud Computing Applications in Tunnel Servers
Hussain et al. SLOGS: Security through predicate LOGic in SSH
Baker Secure Web Application Development

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170530

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170818

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170829

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170922

R150 Certificate of patent or registration of utility model

Ref document number: 6216458

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250