(57)【特許請求の範囲】
【請求項１】
１つ以上のサービスを実施する少なくとも１つのコンピューティングデバイスを備えるシステムであって、前記１つ以上のサービスは、
暗号化保護された通信セッションを介して、宛先に送られるデータオブジェクト集合を受信し、
前記データオブジェクト集合のうちのデータオブジェクト部分集合が機密データを含むことを、構成情報に少なくとも部分的に基づいて判定し、前記構成情報は、機密データの検出を可能にし、機密データを送信するエンドポイントを、前記機密データに対応付けられたタイプに少なくとも部分的に基づいて示し、
前記データオブジェクト部分集合を難読化して、前記エンドポイントに対応付けられたバックエンドサービスにより復号化することができる暗号化されたデータオブジェクト集合を生成し、
前記データオブジェクト集合が前記暗号化されたデータオブジェクト集合を含むように修正し、これにより修正されたデータオブジェクト集合を生成し、
前記修正したデータオブジェクト集合をエンドポイントに送信する、
システム。
【請求項２】
前記暗号化されたデータオブジェクト集合を生成することはさらに、対称暗号化アルゴリズムに従って暗号化キーにより、前記データオブジェクト部分集合を暗号化することを含み、
前記暗号化保護された通信セッションはさらに、ハイパーテキスト転送プロトコルセキュア（ＨＴＴＰＳ）接続を含み、
前記宛先はさらに、公的にアドレス指定可能な通信ネットワークを介して顧客デバイスがアクセス可能なサービスエンドポイントを含む、
請求項１に記載のシステム。
【請求項３】
前記構成情報はさらに、前記エンドポイントが属するエンドポイント集合に対して、機密データを暗号化するために使用する、前記機密データに対応付けられたセキュリティポリシーを満たす暗号化アルゴリズムと、１つ以上の暗号化キーを定義する、請求項１または２に記載のシステム。
【請求項４】
前記少なくとも１つのコンピューティングデバイスは、前記１つ以上のサービスを、前記構成情報に少なくとも部分的に基づいて、前記少なくとも１つのコンピューティングデバイスにより実行される少なくとも１つの別のプロセスから隔離された環境において、実施し、
前記構成情報は、機密データであるデータのタイプを示し、前記暗号化されたデータオブジェクト集合を生成することはさらに、前記構成情報から取得された暗号化材料を使用して、前記データオブジェクト部分集合を暗号化することを含む、
請求項３に記載のシステム。
【請求項５】
前記構成情報において識別された暗号化キーを使用して前記データオブジェクト部分集合を暗号化することにより、前記データオブジェクト部分集合は難読化される、請求項１〜４の何れか一項に記載のシステム。
【請求項６】
前記修正されたデータオブジェクト集合は、前記機密データが保護されていることを示す情報と共に、前記エンドポイントへ送信される、請求項１〜５の何れか一項に記載のシステム。
【請求項７】
別のコンピュータシステムにより実施されるサービスエンドポイントに送られる暗号化されたデータオブジェクト集合を含む要求を、前記別のコンピュータシステムにより生成されたデータストリームにおいて受信することと、
前記暗号化されたデータオブジェクト集合を復号化して、データオブジェクト集合を生成することと、
前記要求に含まれる構成情報に少なくとも部分的に基づいて、前記別のコンピュータシステムと前記サービスエンドポイントとの間の１つ以上の経路沿いの１つ以上の仲介者に公開されるべきではないデータを、前記データオブジェクト集合のうちの１つ以上のデータオブジェクトが含むと判定することであって、前記構成情報は、前記１つ以上のデータオブジェクトの検出を可能にし、前記サービスエンドポイントを、前記１つ以上のデータオブジェクトに対応付けられたタイプに少なくとも部分的に基づいて示す、判定することと、
前記１つ以上のデータオブジェクトを暗号化して、１つ以上の暗号化されたデータオブジェクトを生成することと、
前記データオブジェクト集合のうちの前記１つ以上のデータオブジェクトを、前記１つ以上の暗号化されたデータオブジェクトで少なくとも置き換えることにより、前記要求を修正することと、
前記要求を前記サービスエンドポイントに転送することと
を含む、コンピュータ実施方法。
【請求項８】
前記要求の送信を担当するクライアントデバイスと前記サービスエンドポイントと、暗号化保護された通信セッションを確立することをさらに含む、請求項７に記載のコンピュータ実施方法。
【請求項９】
前記サービスエンドポイントは、複数のサービスのうちのサービスに対応付けられ、前記別のコンピュータシステムは、前記サービスの要求を処理する、請求項７または８に記載のコンピュータ実施方法。
【請求項１０】
前記要求は、ＨＴＴＰ  ＰＯＳＴ要求である、
請求項７〜９の何れか一項に記載のコンピュータ実施方法。
【請求項１１】
前記データオブジェクト集合のうちの前記１つ以上のデータオブジェクトが、公開されるべきではないデータを含むと判定することは、前記１つ以上のデータオブジェクトが、支払情報または前記要求に対応付けられたユーザの支払情報のうちの１つ以上を含むと判定することを含む、請求項７〜１０の何れか一項に記載のコンピュータ実施方法。
【請求項１２】
前記別のコンピュータシステムは、ネットワークエッジデバイスである、請求項７〜１１の何れか一項に記載のコンピュータ実施方法。
【請求項１３】
暗号化保護された通信セッションを介して、第２のデータオブジェクト集合を受信することと、
前記第２のデータオブジェクト集合が機密データを含まないと判定することと、
前記第２のデータオブジェクト集合を含む第２の要求を、前記サービスエンドポイントに送信することと
をさらに含む、請求項７〜１２の何れか一項に記載のコンピュータ実施方法。
【請求項１４】
前記コンピュータ実施方法は、プロセスと他のリソースとの間の対話を制限するカーネルモジュールを含む安全な環境内で実施される、請求項７〜１３の何れか一項に記載のコンピュータ実施方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１６年１２月１６日に出願された"ＳＥＣＵＲＥ  ＤＡＴＡ  ＩＮＧＥＳＴＩＯＮ  ＦＯＲ  ＳＥＮＳＩＴＩＶＥ  ＤＡＴＡ  ＡＣＲＯＳＳ  ＮＥＴＷＯＲＫＳ"と題する米国特許出願第１５／３８２，５７１号の利益を主張するものであり、その内容全体は参照により本明細書に組み込まれるものとする。
【背景技術】
【０００２】
様々なネットワークが様々なレベルのセキュリティを提供し、ユーザは様々なネットワークを他のネットワークよりも信頼し得る。さらに、コンピューティングリソースサービスプロバイダの大規模分散コンピューティングシステム（例えば複数の分散データセンタ）では、コンピューティングリソースサービスプロバイダの様々な顧客、ユーザ、サービス、及びリソースが、様々なネットワーク及び仲介者を介して、互いに頻繁に通信している。システムを安全に保つことは、これらの大規模分散コンピューティングシステムにサービス及びコンピューティングリソースが加えられるほど、ならびにこれらのシステムの複雑さ及び使用が増すほど、より困難となる。このような分散コンピューティングシステムにおいて、システムの全ての脆弱性を特定することは難しくあり得る。特定のコンピューティングデバイス及び／またはコンピューティングリソースは、異なるネットワークに配置され得る。さらに、システムの問題を隔離しトラブルシューティングすることも難しくあり得、問題が特定されたとしても、システムを確実に保護することは困難であり得る。さらに、インターネットなどのネットワークを介してデータが送信される場合、様々な規格及び規制によりデータの安全性が要求され得る。
【０００３】
図面を参照して、様々な技術が説明される。
【図面の簡単な説明】
【０００４】
【図１】実施形態による、セキュアプロキシフリートが機密データを保護し得る環境を示す。
【図２】実施形態による、セキュアプロキシフリート及びプロキシフリートが、機密データ、及びウェブサイトとの対話のために受信したデータを、プロキシし得る環境を示す。
【図３】実施形態による、セキュアプロキシフリートが、バックエンドサービスへ送られる機密データを保護し得る環境を示す。
【図４】実施形態による、セキュアプロキシフリートが機密データを保護し得る環境を示す。
【図５】実施形態による、セキュアプロキシフリートが、クライアントデバイスへ送られる機密データを保護し得る環境を示す。
【図６】実施形態による、保護された機密データを含むデータストリームを示す図である。
【図７】実施形態による、セキュアプロキシフリートが機密データを保護し得る環境を示す。
【図８】実施形態による、コンテンツ配信ネットワークのセキュアプロキシフリートが機密データを保護し得る環境を示す。
【図９】実施形態による、コンテンツ配信ネットワークのセキュアプロキシフリートが機密データを保護し得る環境を示す。
【図１０】実施形態による、セキュアプロキシフリートが、バックエンドサービスへ送られる機密データを保護する実施例を示すブロック図である。
【図１１】実施形態による、セキュアプロキシフリートが、クライアントデバイスへ送られる機密データを保護する実施例を示すブロック図である。
【図１２】実施形態による、セキュアプロキシフリートが、データ暗号化を使用して機密データを保護する実施例を示すブロック図である。
【図１３】実施形態による、機密データを保護するために、暗号化材料がセキュアプロキシフリートにより使用される実施例を示すブロック図である。
【図１４】様々な実施形態を実施することができる環境を示す。
【発明を実施するための形態】
【０００５】
下記の様々な実施例では、データの不正アクセスを防止する技術が説明される。コンピューティングリソースサービスプロバイダにより運用される様々なネットワークに入る及び／またはそのようなネットワークに沿って移動するデータは、暗号化され、バックエンドサービスまたは機密データの他の休止ポイントへのネットワーク経路沿いの様々な仲介者による不正アクセスから保護される。さらに、コンピューティングリソースサービスプロバイダにより運用される様々なネットワークから出る暗号化された機密データは、クライアントデバイスにより機密データがアクセス可能となるように、復号化され得る。この機密データには、クレジットカード番号、電子メールアドレス、物理的住所、パスポート番号、電話番号、連絡先、パスワード、銀行取引情報、顧客識別情報、通信、あるいは顧客が個人的及び／または機密的であるとみなし得る任意の他の情報が含まれ得る。コンピューティングリソースサービスプロバイダは、顧客にサービスを提供する他のエンティティに対し、様々なサービス及び／またはサポートを提供し得る（例えばコンピューティングリソースへのアクセスを提供することにより）。
【０００６】
これらのサービスは、顧客に様々なサービスエンドポイントを公開する（例えば公衆通信ネットワーク介してインターフェースを利用可能にする）ことができ、サービスエンドポイントは、インターネットなどの公衆ネットワークに接続され得る。例えば、顧客は、顧客に対しウェブサイトとして公開された小売サービスと対話することができる。顧客対話は、小売サービス、または要求に対応する他のバックエンドサービスへ送信されるハイパーテキスト転送プロトコル（ＨＴＴＰ）要求（例えばＧＥＴ及びＰＯＳＴ要求）を含み得る。さらに、要求は、様々なプロキシデバイス及び／またはプロキシフリートにより、バックエンドサービスへ送られ得る。前述のように、機密データは様々な暗号化技術、例えばトランスポートレイヤセキュリティ（ＴＬＳ）、セキュアソケットレイヤ（ＳＳＬ）、及び／またはハイパーテキスト転送プロトコルセキュア（ＨＴＴＰＳ）、並びに後述されるような他の技術を使用して保護される。しかしながら、方法は、例えば好適なバックエンドサービスへデータがルーティングされ得るように、プロキシデバイス及び／またはプロキシフリートによりデータが復号化されること、並びに／あるいは機密データが復号化されること、または暗号化データストリームに対し他の修正が行われことを、伴う。従って、結果的に機密データが公開されないことを確保するため、下記にさらに詳しく説明されるように、プロキシデバイス及び／またはプロキシフリートの動作が修正され、セキュリティ及び効率性が向上され得る。
【０００７】
本開示で説明されるように、機密データの保護を提供するために、データ保護モジュールがプロキシデバイス及び／またはプロキシフリートにより実行され得る。データ保護モジュールは、隔離された環境で実行され得る、あるいはデータ保護モジュールの外部からのアクセスから保護され得る。バックエンドサービスに少なくとも部分的に基づいて、構成情報が生成され、プロキシデバイス及び／またはプロキシフリートにより実行されるデータ保護モジュールへ提供され得る。構成情報は、暗号化材料、機密データの様々な定義、ポリシー情報、または機密データを保護するのに好適な他の情報など、下記にさらに詳しく説明される様々な情報を含み得る。各データ保護モジュールは、単一のバックエンドサービスまたは複数のバックエンドサービスに対し、サービスを提供し得る。さらに、データ保護モジュールは、公開キー暗号化標準（ＰＫＣＳ）などの下記にさらに詳しく説明される様々な暗号化アルゴリズムを実施し得る。
【０００８】
データ保護モジュールは、コンピューティングリソースサービスプロバイダ環境を出入りするデータに対し、異なる動作を実行し得る。例えば、バックエンドサービスからクライアントデバイスへ送られた機密データは、クライアントデバイスへ送られた機密データを復号化する前に、クライアントデバイスによる表示のために、まずレンダリングされ得る、あるいはフォーマット化され得る。様々な実施形態において、機密データは、署名、またはデータ保護モジュールが機密データを復号化する前に検証されるべき他の情報を含み得る。上記のように、機密データは、ＴＬＳなどの安全なリンクを使用して、コンピューティングリソースサービスプロバイダ環境の外部で保護され得る。機密データを保護するための他の機構も本開示の範囲に含まれるとみなされ、例えば、顧客に対応付けられたクライアントデバイスへ機密データを送信する前に、機密データは、顧客に対応付けられた公開キーにより暗号化され得る。
【０００９】
様々な実施例では、プロキシデバイス及び／またはプロキシフリートは、様々なコンテンツ配信ネットワーク（ＣＤＮ）の一部であり得る、またはその中に統合され得る。これらのＣＤＮにより、顧客と遅延の少ない通信が可能となり、顧客の要求に対し効率的な処理が提供される。前述のように、ＣＤＮに含まれるプロキシデバイス及び／またはプロキシフリートにより、データ保護モジュールが実施され得る。さらに、コンピューティングリソースサービスプロバイダまたは他のエンティティは、暗号化材料及び／または暗号化機能への効率的なアクセスを提供するために、下記にさらに詳しく説明されるキー管理システムを運用し得る。例えば、暗号化または復号化する機密データを受信すると、データ保護モジュールは、キー管理サービスによる動作の実行を要求し得る。キー管理サービスは、プロキシデバイス及び／またはプロキシフリートのプロセスであり得る、またはデータ保護モジュールによりアクセス可能な別個のコンピューティングデバイス上で実行され得る。
【００１０】
上記または下記の説明において、様々な技術が説明される。説明目的で、技術を実施する可能な方法の完全な理解をもたらすために、具体的な構成及び詳細が明記される。しかしながら、下記に説明される技術は、具体的な詳細なしに異なる構成で実施されてもよいことも明らかであろう。さらに、説明される技術が曖昧になることを避けるために、よく知られている特徴は、省略または簡略化され得る。
【００１１】
図１は、実施形態による、セキュアプロキシフリート１０６が機密データを保護して、コンピューティングリソースサービスプロバイダ環境との仲介者に公開されないようにし得る環境１００を示す。コンピューティングリソースサービスプロバイダ１０４は、顧客１０２に様々なバックエンドサービス１０８へのアクセスを提供し得る。バックエンドサービス１０８は、コンピューティングリソースサービスプロバイダ１０４または他のエンティティにより運用され得る。例えば、コンピューティングリソースサービスプロバイダ１０４は、ストリーミングメディアサービス、ウェブサイト、または他のアプリケーションなど、顧客１０２に公開される様々なサービスを実施するために、コンピューティングリソースサービスプロバイダ１０４により提供されるコンピューティングリソースへのアクセスを有する組織を提供し得る。コンピューティングリソースサービスプロバイダ１０４は、様々なネットワーク、コンピューティングデバイス、サービス、アプリケーション、または他のコンピューティングリソースを運用し、顧客１０２及び他のエンティティに、様々な動作を実行するためのアクセスを提供し得る。
【００１２】
図１に示されるように、顧客１０２は、コンピューティングリソースサービスプロバイダ１０４によりホストされる１つ以上のバックエンドサービス１０８と、機密データを送受信し得る。さらに、機密データは、１つ以上のバックエンドサービス１０８へのネットワーク経路沿いの１つ以上の仲介者１１０に、公開され得る。様々な実施形態において、仲介者１１０は、機密データにアクセスすることを認可され得ない。さらに、仲介者１１０は、コンピューティングリソースサービスプロバイダ１０４または他のエンティティにより運用される任意のコンピューティングリソースを含み得る。例えば、特定の仲介者は、ネットワーク上を移動するパケットへのアクセスを有するコンピューティングリソースサービスプロバイダ１０４のネットワーク輻輳サービスを含み得る。
【００１３】
機密データに対応付けられた顧客１０２または他のエンティティは、信頼性のあるエンティティ、すなわちコンピューティングデバイス及び個人の両方に限定された、機密データに対する読み出しアクセス及び／または書き込みアクセスを行うことを所望し得る。前述のように、コンピューティングリソースサービスプロバイダ１０４は、規制、法的特権、競合性、契約（例えばベンダとの価格設定もしくは他の条件）、または機密データを保護する任意の他の必要性により、機密情報のセキュリティ及びプライバシーを維持するための様々な要件を定義及び特定し得る。機密データには、住所、パスポート番号、納税者識別番号、法的情報、財務情報、顧客リスト及び／または特定の顧客識別情報、合併吸収、従業員健康記録及び人事ファイル、ならびに顧客支払手段が含まれる。さらに、機密データには、機密として分類され得る、あるいは保護対象データとして分類され得る任意のデータが含まれ得る。機密データを保護するために、コンピューティングリソースサービスプロバイダ１０４は、セキュアプロキシフリート１０６を運用し得る。セキュアプロキシフリート１０６は、機密データがコンピューティングリソースサービスプロバイダ環境（例えばデータセンタ、ネットワーク、及びコンピューティングリソースサービスプロバイダ１０４により運用される他のコンピューティングリソース）に入ってくる時に暗号化し、暗号化した機密データを、コンピューティングリソースサービスプロバイダ環境内部の信用できる単一ポイント（例えば１つ以上のバックエンドサービス１０８の保護されたリソース）へ送り得る。
【００１４】
機密データは暗号化され、これにより、機密データを暗号化するのに使用した暗号化材料へのアクセスを制御することにより、機密データへのアクセスは制御され得る。例えば、機密データへのアクセスは、下記にさらに詳しく説明されるキー管理サービスにより提供され得、キー管理サービスは、機密データを暗号化するために使用する暗号化キーを配布する。暗号化は、ＰＫＣＳなどの本開示に記載される様々な暗号化規格を使用して行われ得る。さらに、機密データを保護するために、他の保護手段が使用されてもよい。例えば、必ず機密データが最大２０秒しかメモリに記憶されず、それ以降は要求が不履行となり、再試行されなければならないようにするため、セキュリティポリシーまたは他の機構が使用される。ネットワークデバイス及びサーバコンピュータシステムを含むコンピューティングリソースサービスプロバイダ１０４の物理的コンピューティングリソースを使用して、セキュアプロキシフリート１０６は実施され得る。
【００１５】
セキュアプロキシフリート１０６は、アプリケーション、または物理コンピューティングリソースにより実行される他の実行可能コードを含み得る。下記にさらに詳しく説明されるように、セキュアプロキシフリート１０６は、機密データを暗号化するための暗号化材料を管理し保持し得る。さらに、セキュアプロキシフリート１０６は、１つ以上のバックエンドサービス１０８と顧客１０２との間で、要求をプロキシする、あるいは転送する。例えば、特定のサービスは、インターネットなどの公衆ネットワーク上のエンドポイントを公開し得る。エンドポイントは、顧客１０２が、公衆ネットワーク上で公開されているエンドポイントにサービス要求を送ることにより、特定のバックエンドサービスと通信することを可能にし得る。セキュアプロキシフリート１０６は、エンドポイントへ送られたサービス要求を取得し、サービス要求に含まれる情報に少なくとも部分的に基づいて、要求を特定のバックエンドサービスへ転送し得る。本開示の目的のため、要求、サービスコール、または他のデータは、要求、サービスコール、または他のデータの「送信先」であるエンティティに対応付けられた宛先アドレス（例えばＩＰアドレス、電子メールアドレス、ＳＭＳ番号など）へ送られ得る。
【００１６】
さらに、セキュアプロキシフリート１０６は、各バックエンドサービス及び／または顧客１０２に公開されているエンドポイントに対し、単一のプロキシを運用し得る。例えば、特定のバックエンドサービスは、顧客識別情報用の第１のエンドポイント及び顧客支払情報用の第２のエンドポイントなど、様々な種類の機密データのための異なるエンドポイントを公開する。セキュアプロキシフリート１０６は、例えば物理的隔離（例えば異なる物理的コンピューティングハードウェアにより分離された処理）または論理的隔離（例えばサンドボックスを使用したプロセス隔離）により、各エンドポイントへ送られる要求の処理を隔離し得る。
【００１７】
バックエンドサービス１０８は、前述のように、コンピューティングリソースサービスプロバイダ１０４により提供されてもよく、またはコンピューティングリソースサービスプロバイダ１０４のコンピューティングリソースを利用する１つ以上の他のエンティティにより提供されてもよい。バックエンドサービス１０８には、小売サービス、コンピューティングインスタンスサービス、オンデマンドストレージサービス、ブロックレベルストレージサービス、ネットワークサービス、通知サービス、ドキュメント管理サービス、メッセージサービス、またはコンピューティングリソースサービスプロバイダ１０４のコンピューティングリソースを使用して実施される任意の他のサービスなど、多数のサービスが含まれ得る。例えば、バックエンドサービス１０８は、内部ウェブサービスを通して、図７及び図１４に示されるデータストアにアクセスし得る。
【００１８】
仲介者１１０は、コンピューティングリソースサービスプロバイダ１０４の任意の数のコンピューティングリソース及び／またはサービスを含み得る。さらに、仲介者は、コンピューティングリソースサービスプロバイダ１０４とは別の他のエンティティにより、運用されてもよい。例えば、特定の仲介者は、顧客１０２とデータを送受信するために、コンピューティングリソースサービスプロバイダ１０４の様々なネットワークを利用するデータストレージサービスを含み得る。仲介者１１０はまた、様々なセキュリティポリシー及び／またはセキュリティレベルを施行し得る。
【００１９】
図２は、実施形態による、セキュアプロキシフリート２０６及びプロキシフリートが、保護された機密データをバックエンドサービス２０８と送受信し得る環境２００を示す。コンピューティングリソースサービスプロバイダ２０４は、顧客にバックエンドサービス２０８へのアクセスを提供し得る。顧客は、ウェブページ２０２を通して、またはスタンドアロンアプリケーションもしくはモバイルアプリケーションなど、ネットワークを介してバックエンドサービスにデータを通信する他のアプリケーションを通して、バックエンドサービス２０８にアクセスし得る。バックエンドサービス２０８は、コンピューティングリソースサービスプロバイダ２０４または他のエンティティにより運用され得る。例えば、コンピューティングリソースサービスプロバイダ２０４は、ストリーミングメディアサービス、ウェブサイト、または他のアプリケーションなど、顧客に公開される様々なサービスを実施するために、コンピューティングリソースサービスプロバイダ２０４により提供されるコンピューティングリソースへのアクセスを有する組織を提供し得る。コンピューティングリソースサービスプロバイダ２０４は、様々なネットワーク、コンピューティングデバイス、サービス、アプリケーション、または他のコンピューティングリソースを運用し、顧客及び他のエンティティに、様々な動作を実行するためのアクセスを提供し得る。
【００２０】
図２に示されるように、顧客は、コンピューティングリソースサービスプロバイダ２０４によりホストされる１つ以上のバックエンドサービス２０８と、機密データ及び非機密データを送受信し得る。さらに、機密データ及び非機密データは、バックエンドサービス２０８へのネットワーク経路沿いの１つ以上の仲介者２１０に、公開され得る。様々な実施形態において、仲介者２１０は、機密データにアクセスすることを認可され得ない。さらに、仲介者２１０は、コンピューティングリソースサービスプロバイダ２０４または他のエンティティにより運用される任意のコンピューティングリソースを含み得る。例えば、特定の仲介者は、ネットワーク上を移動するパケットへのアクセスを有するコンピューティングリソースサービスプロバイダ２０４のネットワーク輻輳サービスを含み得る。
【００２１】
図２に戻ると、顧客のコンピューティングデバイスは、コンピューティングリソースサービスプロバイダ２０４のオンラインプロキシフリート２１６またはセキュアプロキシフリート２０６に対し、１つ以上のＨＴＴＰ要求を送信し得る。オンラインプロキシフリート２１６及びセキュアプロキシフリート２０６は、実行可能命令を含むコンピューティングリソースの集合（例えば論理グループまたは物理グループ）であり得、実行可能命令は、コンピューティングリソースの１つ以上のプロセッサにより実行されると結果的に、コンピューティングリソースに、ＨＴＴＰ要求を受信させ、これらのＨＴＴＰ要求をコンピューティングリソースサービスプロバイダ２０４の１つ以上のバックエンドサービス２０６に送らせる。オンラインプロキシフリート２１６及びセキュアプロキシフリート２０６は、処理のために、コンピューティングリソースサービスプロバイダ２０４の好適なバックエンドサービス２０８に要求を送ることを担当し得る。
【００２２】
オンラインプロキシフリート２１６及びセキュアプロキシフリート２０６は、ウェブページ２０２との顧客対話の結果得られた顧客の要求を、ストリーミング及び／または送信し得る。オンラインプロキシフリート２１６及びセキュアプロキシフリート２０６は、同じコンピューティングリソースにおいて実行され得る、またはコンピューティングリソース内で実行される同じプロセスにおいて実行され得る。このように、機密データまたは非機密データを含む要求は、好適に処理され得る。例えば、機密データを含む要求は、他のデータを含む要求と同じプロキシデバイス（例えばオンラインプロキシフリート２１６及びセキュアプロキシフリート２０６の両方を実行するコンピューティングデバイス）に送信され得る。要求の送信先であるエンドポイントに少なくとも部分的に基づいて、プロキシデバイスにてトラフィックが区別され得る。例えば、機密データを含むＨＴＴＰ要求は、セキュアプロキシフリート２０６により監視されるエンドポイントへ送られるように、ウェブページ２０２は構成され得る。さらに、ウェブページ２０２は、非機密データを含むＨＴＴＰ要求を、オンラインプロキシフリート２１６により監視されるエンドポイントに送り得る。
【００２３】
図３は、実施形態による、セキュアプロキシフリート３０６が、機密データを受信し、機密データをバックエンドサービス３０８に転送する前に機密データを保護する環境３００を示す。コンピューティングリソースサービスプロバイダ３０４は、顧客３０２にバックエンドサービス３０８へのアクセスを提供し得る。顧客３０２は、ウェブページ、サービスコール、ユーザインターフェース、またはネットワークを介してバックエンドサービス３０８にデータを通信するスタンドアロンアプリケーションもしくはモバイルアプリケーションなどのアプリケーションを通して、バックエンドサービス３０８にアクセスし得る。バックエンドサービス３０８は、コンピューティングリソースサービスプロバイダ３０４または他のエンティティにより運用され得る。例えば、コンピューティングリソースサービスプロバイダ３０４は、ストリーミングメディアサービス、ウェブサイト、または他のアプリケーションなど、顧客３０２に公開される様々なサービスを実施するために、コンピューティングリソースサービスプロバイダ３０４により提供されるコンピューティングリソースへのアクセスを有する組織を提供し得る。コンピューティングリソースサービスプロバイダ３０４は、様々なネットワーク、コンピューティングデバイス、サービス、アプリケーション、または他のコンピューティングリソースを運用し、顧客及び他のエンティティに、様々な動作を実行するためのアクセスを提供し得る。
【００２４】
図３に示されるように、顧客３０２は、コンピューティングリソースサービスプロバイダ３０４によりホストされる１つ以上のバックエンドサービス３０８に、機密データを送信し得る。機密データは、バックエンドサービス３０８により運用される信頼性のあるエンティティまたは場所に送られ得る。さらに、１つ以上のバックエンドサービス３０８へのネットワーク経路沿いの１つ以上の仲介者３１０に、機密データが公開されないように、機密データは、セキュアプロキシフリート３０６のデータ保護モジュール３１２により暗号化され得る。様々な実施形態において、仲介者３１０は、機密データにアクセスすることを認可され得ない。さらに、仲介者３１０は、コンピューティングリソースサービスプロバイダ３０４または他のエンティティにより運用される任意のコンピューティングリソースを含み得る。例えば、特定の仲介者は、コンピューティングリソースサービスプロバイダ環境のコンピューティングリソースへのアクセスを有するコンピューティングリソースサービスプロバイダ３０４のストリームサービスを含み得る。
【００２５】
仲介者３１０は、コンピューティングリソースサービスプロバイダ３０４の任意の数のコンピューティングリソース及び／またはサービスを含み得る。さらに、仲介者３１０は、コンピューティングリソースサービスプロバイダ３０４とは別の他のエンティティにより、運用されてもよい。例えば、特定の仲介者は、顧客３０２とデータを送受信するために、コンピューティングリソースサービスプロバイダ３０４の様々なネットワークを利用するデータストレージサービスを含み得る。仲介者３１０はまた、様々なセキュリティポリシー及び／またはセキュリティレベルを施行し得る。
【００２６】
下記にさらに詳しく説明されるように、データ保護モジュール３１２は、バックエンドサービスへ送られる要求またはデータストリームから取得される機密データを検出し得る。さらに、セキュアプロキシフリート３０６及び／またはデータ保護モジュール３１２は、ＴＬＳまたは他の安全な接続のためのターミネータであり得る。言い換えると、セキュアプロキシフリート３０６及び／またはデータ保護モジュール３１２は、顧客３０２とバックエンドサービス３０８との間の安全なリンクの一端を確立し維持することを担当し得る。いくつかの実施例では、セキュアプロキシフリート３０６は、ＴＬＳ接続を用いて、暗号化されたネットワーク接続を確立する。他の実施例では、キー交換アルゴリズムを用いて対称キーを交渉することにより、暗号化されたネットワーク接続が確立される。
【００２７】
データ保護モジュール３１２は、セキュアプロキシフリート３０６を実行する同じコンピュータシステムにより実行されるプロセスまたはアプリケーションであり得る。さらに他の実施形態では、セキュアプロキシフリート３０６は、セキュアプロキシフリート３０６の構成要素としてデータ保護モジュール３１２も実行する専用ハードウェアにより実行され得る。下記にさらに詳しく説明されるように、データ保護モジュール３１２は、バックエンドサービス３０８、コンピューティングリソースサービスプロバイダ３０４、または他のエンティティにより生成される構成情報を用いて、実施され得る。構成情報は、データ保護モジュール３１２に対し、機密データ、機密データの検出方法、機密データの処理及び／または保護方法、機密データの暗号化方法、機密データを暗号化する暗号化アルゴリズム、暗号化キー、暗号化データの送信先であるエンドポイント、または機密データを保護するのに好適な任意の他の情報を示し得る。
【００２８】
図３に示されるように、機密データは暗号化され、１つ以上の仲介者３１０を介して、バックエンドサービス３０８へ送信され得る。バックエンドサービス３０８は、機密データを復号化するのに必要な暗号化材料を取得し得る、または既に含み得る。後述される他の実施形態では、バックエンドサービス３０８は、キー管理サービスのために、暗号化材料または暗号化材料の復号化を要求し得る。さらに、セキュアプロキシフリート３０６は、機密ではないデータは平文で、バックエンドサービス３０８に送信し得る。例えば、顧客は、顧客の電話番号を含むＨＴＴＰ  ＰＯＳＴ要求を、特定のバックエンドサービスに送信することができ、セキュアプロキシフリート３０６は、ＨＴＴＰ  ＰＯＳＴ要求に含まれる電話番号を暗号化して、暗号化キーなしでは電話番号を解読できないようにするが、ＨＴＴＰ  ＰＯＳＴ要求の残りは平文のままにして、要求が好適なバックエンドサービスへルーティングされ得、要求全体の復号化を求めることなく少なくとも部分的に処理され得るようにすることができる。
【００２９】
図４は、実施形態による、セキュアプロキシフリート４０６が、機密データを受信し、機密データをバックエンドサービス４０８に転送する前に、暗号化キーサービス４２０を使用して機密データを保護する環境４００を示す。コンピューティングリソースサービスプロバイダ４０４は、顧客４０２にバックエンドサービス４０８へのアクセスを提供し得る。顧客４０２は、ウェブページ、サービスコール、ユーザインターフェース、コマンドラインインターフェース、または１つ以上のネットワーク４１０を介してバックエンドサービス４０８にデータを通信するスタンドアロンアプリケーションもしくはモバイルアプリケーションなどのアプリケーションを通して、バックエンドサービス４０８にアクセスし得る。バックエンドサービス４０８は、コンピューティングリソースサービスプロバイダ４０４または他のエンティティにより運用され得る。例えば、コンピューティングリソースサービスプロバイダ４０４は、オンライン小売りサービス、ウェブサイト、または他のアプリケーションなど、顧客４０２に公開される様々なサービスを実施するために、コンピューティングリソースサービスプロバイダ４０４により提供されるコンピューティングリソースへのアクセスを有する組織を提供し得る。コンピューティングリソースサービスプロバイダ４０４は、様々なネットワーク、コンピューティングデバイス、サービス、アプリケーション、または他のコンピューティングリソースを運用し、顧客及び他のエンティティに、様々な動作を実行するためのアクセスを提供し得る。
【００３０】
図４に示されるように、顧客４０２は、コンピューティングリソースサービスプロバイダ４０４または他のエンティティによりホストされる暗号化キーサービス４２０の使用を通じて保護された機密データを送受信し得る。機密データは、バックエンドサービス４０８により運用される信頼性のあるエンティティまたは場所に送られ得る。さらに、１つ以上のバックエンドサービス４０８への１つ以上のネットワーク４１０のネットワーク経路沿いで機密データが公開されないように、機密データは、セキュアプロキシフリート４０６の暗号化モジュール４１４により暗号化され得る。様々な実施形態において、暗号化モジュール４１４は、機密データを暗号化するために、暗号化キーサービス４２０にＡＰＩコールを送信し得る。一実施例では、暗号化モジュール４１４は、機密データを暗号化するために使用するキー材料を、暗号化キーサービス４２０に要求し得る。
【００３１】
さらに、キー材料は、暗号化キーサービス４２０により暗号化され得る。言い換えると、暗号化キーサービス４２０に送信されたデータは、単に暗号化キーサービス４２０から暗号化キーを取得して暗号化することにより、縮小され得る。別の実施例では、暗号化モジュール４１４は、暗号化要求内で機密データを暗号化キーサービス４２０に送信することができ、これに応じて、暗号化キーサービス４２０は、暗号化された機密データを返し、いくつかの実施形態では、暗号化キーサービス４２０は暗号化キー（暗号化された、または平文の暗号化キー）を暗号化モジュール４１４へ返す。
【００３２】
図４に描かれる暗号化キーサービス４２０は別個のエンティティとして示されるが、暗号化キーサービス４２０の機能の全てまたは一部は、セキュアプロキシフリート４０６及び／またはバックエンドサービス４０８に含まれ得る。例えば、暗号化キーサービス４２０の一部は、セキュアプロキシフリート４０６により、カーネルレベルプロセスまたはマイクロサービスとして実行され得る。これらの事例では、暗号化モジュール４１４は、セキュアプロキシフリート４０６により実行される暗号化キーサービス４２０のカーネルレベルプロセスに対し、暗号化材料を取得する要求を送信し得る。さらに、暗号化キーサービス４２０は、セキュアプロキシフリート４０６により実行される暗号化キーサービス４２０のカーネルレベルプロセスが保持する暗号化キー材料を、定期的または非定期的に送信し及び／または更新し得る。
【００３３】
図４に戻ると、コンピューティングリソースサービスプロバイダ環境内に１つ以上のネットワーク４１０が示されるが、１つ以上のネットワーク４１０は、様々なエンティティにより実施される様々な異なるネットワークを含み得る。例えば、１つ以上のネットワーク４１０には、インターネットなどの公的にアドレス指定可能なネットワークの一部であるネットワークバックボーンまたは他のネットワーク構造が含まれ得る。下記にさらに詳しく説明されるように、ネットワーク４１０には、公衆ネットワーク、プライベートネットワーク、コンテンツ配信ネットワーク、ならびに異なるエンティティ及び／またはサービスにより実施され得、異なるセキュリティポリシーを施行し得、異なるエンティティ及び／またはサービスによりアクセス可能であり得る他のネットワークが含まれ得る。さらに、様々なコンピューティングデバイスは、顧客４０２とバックエンドサービス４０８との間にルーティングされると、機密データを含む要求及び／またはデータオブジェクトを受信し得る。例えば、要求処理デバイスは、特定のバックエンドサービスに送られた暗号化済み機密データを含む要求を、セキュアプロキシフリート４０６から受信し、要求をバックエンドサービスの好適なインスタンスにルーティングし得る。
【００３４】
検出モジュール４１２により、セキュアプロキシフリート４０６は、機密データを検出することが可能となり得る。検出モジュール４１２及び暗号化モジュール４１４の両者は、単一プロセスもしくは複数のプロセス、アプリケーション、または実行可能コードであり得、セキュアプロキシフリート４０６の１つ以上のプロセッサにより実行されると、セキュアプロキシフリート４０６に、本開示で説明される動作を実行させる。さらに、検出モジュール４１２及び暗号化モジュール４１４の両者は、構成情報がプッシュされ得る、あるいは提供され得る。構成情報は、バックエンドサービス４０８、またはバックエンドサービス４０８に対応付けられた管理者もしくは他のエンティティにより生成されたテンプレート情報を含み得る。検出モジュール４１２及び暗号化モジュール４１４を実行するプロセスのプロビジョニングまたはインスタンス化にて、構成情報は、検出モジュール４１２及び暗号化モジュール４１４に提供され得る。さらに、構成情報は、機密データを識別するのに好適な情報を含むことができ、各バックエンドサービス、ウェブサイト、アプリケーション、及び／または顧客は、自身の構成情報を提供し得る。構成情報は、機密データに対応付けられたデータタイプ、フィールド、フォーマット、またはフラグを示すことができ、これらは、機密データを検出するために検出モジュール４１２により使用され得る。
【００３５】
図４には示されていないが、ＴＬＳターミネータは、暗号化セキュア通信チャネル（例えばＨＴＴＰＳ接続）を介して送信された暗号化済みデータを平文に変換し、検出モジュール４１２へ復号化済みデータを転送あるいは提供し得る。様々な実施形態において、検出モジュール４１２は、受信したデータ（例えば平文）を構文解析し、受信したデータが機密データを含むと検出モジュール４１２が判定した場合、検出モジュール４１２は、暗号化すべきデータを暗号化モジュール４１４に転送あるいは提供し得る。例えば、検出モジュール４１２は、ＴＬＳターミネータからＨＴＴＰ要求を受信し、ＨＴＴＰ要求を構文解析して、ＨＴＴＰ要求が顧客識別情報フィールドを含むと判定し、顧客識別情報フィールド内のデータの複製を、暗号化モジュールに提供し得る。
【００３６】
データ暗号化モジュール４１４は、暗号化された機密データを返し得る。暗号化された機密データは、データオブジェクトまたは下記にさらに詳しく説明される他のフォーマットで返され得る。様々な実施形態において、データ検出モジュール４１２は、暗号化された機密データを受信し、次いで機密データを暗号化された機密データで置き換え得る。セキュアプロキシフリート４０６の別のサービスまたはプロセスは、暗号化された機密データを含むデータをバックエンドサービスに転送あるいは提供する前に、ＴＬＳターミネータから受信したデータを、フォーマット化あるいは処理し得る。例えば、セキュアプロキシフリートは、平文の機密データを暗号化された機密データで置き換えた結果として要求に含まれる長さ情報を修正し得る。
【００３７】
バックエンドサービス４０８はまた、クライアントデバイスへ送られる機密データを暗号化し保護し得る。このような実施形態において、バックエンドサービス４０８は、暗号化キー管理サービス４２０に対するライブラリコールまたはＡＰＩコールを生成し得る。クライアントデバイスへ送信する機密データを暗号化する要求は、前述と同じであり得る。コンピューティングリソースサービスプロバイダ４０４のサービスであり得る暗号化キー管理サービス４２０は、ホストコンピュータシステムへの暗号化キー（例えば秘密キー）の透過的な配布を管理し得る。バックエンドサービス４０８は、機密データを暗号化するために、単にＡＰＩコールまたは他のコールを暗号化サービスに送信し得、暗号化キー管理サービス４２０は、１つ以上の暗号化ワークフローを実行して、暗号化された機密データを返し得る。
【００３８】
一実施例では、バックエンドサービス４０８は、顧客パスポート番号を、遠隔サービスまたはローカルサービス（例えばバックエンドサービス４０８のホストコンピュータシステムを実行させるデーモン）であり得る暗号化管理サービス４２０へ送信し得、次に暗号化管理サービス４２０は、暗号化したパスポート番号をバックエンドサービス４０８に返す。暗号化キー管理サービス４２０により返される暗号化済みデータは、タイムスタンプまたは署名などの他の情報を含み得る。バックエンドサービス４０８は次に、顧客４０２により運用されるクライアントデバイスなどのエンドポイントへ送信するための、暗号化された機密データを含む応答、要求、及び／またはコンテンツを生成し得る。
【００３９】
暗号化された機密データは、処理のために、１つ以上のネットワーク４１０を介して、セキュアプロキシサービス４０８または他のサービスまたはコンピュータシステムに向けてルーティングされ得る。例えば、バックエンドサービス４０８は、顧客４０２へウェブページを送信し得、レンダリングフリートは、バックエンドサービス４０８から暗号化された機密データを含むデータを受信し、データをハイパーテキストマークアップ言語（ＨＴＭＬ）または他のフォーマットに変換し得る。さらに、セキュアプロキシフリート４０６は、機密データの復号化及び挿入の前、または機密データの復号化及び挿入と共に、データの追加処理を実行し得る。前述のように、セキュアプロキシフリート４０６は、顧客に送られるウェブページが機密データを含むことを、セキュアプロキシフリート４０６により送信及び／または傍受されたデータに含まれるフラグまたは他のマーカの存在に少なくとも部分的に基づいて、判定し得る。セキュアプロキシフリート４０６は、要求／応答のアンラッピング及び修正などの様々な処理動作を実行し得る。
【００４０】
暗号化キー管理サービス４２０は、暗号化キーに対応付けられたメタデータを保持し得、セキュリティポリシー及び／またはメタデータに少なくとも部分的に基づいて、暗号化キーへのアクセス権を判定し得る。さらに、特定の暗号化材料は、特定のデータタイプに対応付けられ得る。暗号化キー管理サービス４２０はまた、ローカルまたは集中型の暗号化キーストアを保持し得る。キーストアは、非対称キーまたは対称キーを含み得る。さらに、暗号化キー管理サービス４２０を使用して、デジタル封筒暗号化が提供され得る。さらに、秘密キー（非対称の場合）または対称キー（デジタル封筒暗号化の場合）の安全な帯域外送信の様々な方法が、暗号化キー管理サービス４２０により維持され得、定期的監査及び非定期的監査の両方の対象となり得る。
【００４１】
図５は、実施形態による、機密データを顧客５０２に転送する前に、セキュアプロキシフリート５０６が、１つ以上のバックエンドサービス５０８から機密データを受信する環境５００を示す。コンピューティングリソースサービスプロバイダ５０４は、バックエンドサービス５０８が顧客５０２と通信することを可能にするために、セキュアプロキシフリート５０６を提供し得る。バックエンドサービス５０８は、ウェブページ、ウェブサイト、サービスコール、ユーザインターフェース、コマンドラインインターフェース、または１つ以上の仲介者５１０を介してバックエンドサービス５０８から顧客５０２へデータを通信するスタンドアロンアプリケーションもしくはモバイルアプリケーションなどのアプリケーションを通して、顧客５０２と通信し得る。バックエンドサービス５０８は、コンピューティングリソースサービスプロバイダ５０４または他のエンティティにより運用され得る。例えば、コンピューティングリソースサービスプロバイダ５０４は、オンライン小売りサービス、ウェブサイト、または他のアプリケーションなど、顧客５０２に公開される様々なサービスを実施するために、コンピューティングリソースサービスプロバイダ５０４により提供されるコンピューティングリソースへのアクセスを有する組織を提供し得る。コンピューティングリソースサービスプロバイダ５０４は、様々なネットワーク、コンピューティングデバイス、サービス、アプリケーション、または他のコンピューティングリソースを運用し、顧客及び他のエンティティに、様々な動作を実行するためのアクセスを提供し得る。
【００４２】
図５に示されるように、バックエンドサービス５０８は、機密データを含むデータを顧客５０２に送り得る。機密データは、前述のように、バックエンドサービス５０８により暗号化され得る。さらに、暗号化された機密データは、セキュアプロキシフリートにより傍受され、機密データが顧客５０２によりアクセス可能となり得るように、処理あるいは復号化され得る。セキュアプロキシフリート５０６は、レンダリングモジュール５１２と、復号化モジュール５１４とを含み得る。レンダリングモジュール５１２及び復号化モジュール５１４は、セキュアプロキシフリート５０６の１つ以上のプロセッサにより実行されるアプリケーションまたはプロセスであり得る。さらに、本開示で説明される様々なモジュール及びコンピューティングリソースは、物理的もしくは仮想的なコンピューティングリソース、またはこれらの組み合わせを含み得る。例えば、セキュアプロキシフリート５０６は、物理ホストコンピュータシステムによりサポートされる仮想コンピュータシステムインスタンスにより実行され得る。
【００４３】
図５に戻ると、レンダリングモジュール５１２は、顧客５０２のクライアントデバイスへ送られる機密データを含むデータをレンダリングし得る。例えば、レンダリングされるデータは、機密情報を含むウェブページを含み得る。レンダリングモジュールは、暗号化された機密情報を含むウェブページをレンダリングすることができ、暗号化されたコンテンツを復号化するために、レンダリングされたウェブページを復号化モジュール５１４に提供し得る。さらに他の実施形態では、レンダリングモジュール５１２は、レンダリングされたウェブページ内の暗号化された機密データを検出し、暗号化された機密データを復号化モジュール５１４に提供し得る。復号化モジュールは、レンダリングされたウェブページにレンダリングモジュール５１２により挿入され得る機密データの平文を返し得る。いくつかの実施形態では、ウェブページの全てまたは一部は、セキュアプロキシフリートに到達する前にレンダリングされ得る。例えば、１つ以上の仲介者５１０は、レンダリングフリートを含むことができ、レンダリングフリートは、バックエンドサービス５０８からウェブページデータを受信し、セキュアプロキシフリートへ転送され得るレンダリングされたウェブページコンテンツを生成する。さらに、仲介者５１０は、セキュアプロキシフリート５０６に送信されるデータに、コンテンツを挿入し得る。
【００４４】
図５にバックエンドサービス５０８からの機密データのエンドポイントとして顧客５０２が示されているが、機密データは、例えばサービス間コールにおいて、セキュアプロキシフリート５０６により別のサービスに配布されてもよい。さらに、顧客５０２は、様々な異なるコンピューティングデバイスまたはシステムを含み得る。例えば、顧客５０２は、顧客５０２により運用されるデータセンタに含まれる安全なストレージ場所を含み得る。前述のように、セキュアプロキシフリート５０６、レンダリングモジュール５１２、及び復号化モジュール５１４は、様々な構成要素の動作を定義し得る構成情報を受信し得る。例えば、構成情報は、レンダリングモジュールが暗号化されたデータを検出することを可能にする仕組みを示し得る。別の実施例では、構成情報は、暗号化された機密データを復号化するために復号化モジュールにより使用される暗号化アルゴリズムまたは暗号化キーを示し得る。
【００４５】
バックエンドサービス５０８はまた、図７に関連して下記にさらに詳しく説明される認可データストレージを保持し得る。これらの認可データストレージは、バックエンドサービス５０８内に存在してもよく、またはバックエンドサービス５０８に対し遠隔位置に存在してもよく、単一のデータストアまたは分散されたデータストアを含み得る。バックエンドサービス５０８は、認可データストレージにアクセスするための暗号化キー及び／またはクレデンシャル情報を保持し得る。バックエンドサービス５０８は、様々なコンピューティングデバイス（例えばベアメタルハイパバイザー、仮想マシン、または仮想化コンテナ）を使用して実行され得る。
【００４６】
仲介者５１０は、データの機密レベルに関して信頼性のない、または機密情報への認可されたアクセス権を有さない、任意の数の信頼性のない仲介コンピュータシステムもしくはサービスを含み得る。さらに、仲介者５１０は、バックエンドサービス５０８からセキュアプロキシフリート５０６に要求を送ることを担当し得る。例えば、バックエンドサービス５０８により送信されたデータは、仲介者により認証及び認可され、次いでセキュアプロキシフリート５０６へ転送され得る。セキュアプロキシフリート５０６は、暗号化された機密データが送信先で使用されるかどうかを判定し得る。例えば、クライアントデバイスは、機密データを受信することを認可され、次いでセキュアプロキシフリートは、送信先が機密データを使用することが可能であることを判定し得る。データが送信先（例えばサービスまたは顧客デバイス）により使用される場合、機密データは復号化される。例えば、機密データは、セキュアプロキシフリート５０６により安全なストレージ場所でローカルに、または例えば前述のように暗号化キー管理サービスにより遠隔に格納され得る秘密キーにより、復号され得る。様々な実施形態では、セキュアプロキシフリート５０６は、復号化された機密データを、５〜２０秒などの短い時間間隔の間、メモリに保持する。
【００４７】
バックエンドサービス５０８は、ページレット、ウィジェット、及び／またはサーブレットを含む、プロキシウェブサイトページへのサービスコールを含むセキュアプロキシフリート５０６へのサービスコールを生成し得る。各バックエンドサービスは、セキュアプロキシフリートのテナントとみなすことができ、テナント識別子を有し得る。各テナントは、セキュアプロキシフリート５０６内に指定され隔離されたコンテナを有することができ、これは、他のテナント及びセキュアプロキシフリート５０６により実行される任意の他のプロセス（例えばオペレーティングシステム）から、隔離され得る。下記にさらに詳しく説明されるように、オペレーティングシステムに含まれるプロセス分離及び強制アクセス制御を伴うランタイムは、このようなプロセス隔離を施行する。その結果、セキュアプロキシフリート５０６または構成要素の動作に任意の変更があった場合には、プロセスの終了及び新しい構成情報でのプロセスの再プロビジョニングが求められ得る。
【００４８】
各テナントコンテナ（例えばテナントに対応付けられた各隔離プロセス）は、復号化のための秘密キーもしくはデジタル封筒対称キー、提示フォーマット、公開エンドポイントのアドレス情報（例えば公的にアドレス指定可能なアドレス）、または保護された機密情報を配布するのに好適な他の情報を含む構成情報により定義され得る。遠隔デバイス及びシステムに機密データを提供する時、セキュアプロキシフリート５０６は、暗号化保護された通信チャネルを確立し得る。いくつかの実施形態では、セキュアプロキシフリート５０６は、顧客５０２がバックエンドサービス５０８に要求を提出したことに応じて生成されたＴＬＳ接続を、再確立または再使用し得る。機密データが復号化モジュール５１４により一度復号化されており、これから顧客に送信される場合、機密データを保護するために他の機構が使用され得る。例えば、復号化された機密データを含む、顧客に送信されるデータは、顧客の公開キーにより暗号化され得る。
【００４９】
図６は、実施形態による、データストリーム６０２を示す図６００である。データストリーム６０２は、前述のようにセキュアプロキシフリートで受信され得る。データストリーム６０２は、前述のように顧客のクライアントデバイスまたはバックエンドサービスから取得され得る。データストリーム６０２は、様々な圧縮アルゴリズムを使用して圧縮され得る。さらに、データストリームは、暗号化されたペイロード６０６を含み得る。暗号化された機密データ６０６及びデータストリーム６０２は、様々な異なるフォーマット化規則に従って、ソースによりフォーマット化され得る。フォーマット化規則は、コンピューティングリソースサービスプロバイダにより確立され得、データストリーム６０２、及びデータストリーム６０２に含まれる情報の効率的な処理を可能にし得る。
【００５０】
例えば、バックエンドサービスは、顧客に送るＨＴＴＰ応答を生成し、ＨＴＴＰ応答をフォーマット化して圧縮データストリームを生成し、圧縮データストリームを顧客に送信する。前述のように、セキュアプロキシフリートが要求を処理し、暗号化済み機密データを復号化することを可能にするために、応答は、特定のフォーマットに従って暗号化され得た暗号化済み機密データを含み得る。暗号化されたペイロード６０６は、任意の長さを有し得、暗号化されたペイロード６０６をデータストリーム６０２において送信する前に、把握されていなくても、あるいは特定されていなくてもよい。
【００５１】
暗号化されたペイロード６０６の存在を示すために、フラグまたはマーカ６０４がデータストリームに含まれ得る。例えば、実施形態において、暗号化されたペイロード６０６の前のフラグまたはマーカ６０４は、フラグまたはマーカ６０４に続くデータが、暗号化されたペイロード６０６を含む機密データであることを示す。暗号化されたペイロード６０６に続くフラグまたはマーカ６０４は、暗号化されたペイロード６０６の終わりを示し得る。代替的実施形態では、暗号化されたペイロード６０６の前のフラグまたはマーカ６０４は、暗号化されたペイロード６０６のデータ長を含み、このようにして、暗号化されたペイロード６０６の終わりは、暗号化されたペイロード６０６に続く別のフラグまたはマーカ６０４に頼ることなく特定され得る。
【００５２】
特定のフォーマットに従って、またはバックエンドサービスの動作に少なくとも部分的に基づいて、暗号化されたペイロード６０６に含まれる他の情報には、サービスタイプ、ウェブサイトタイプ、タイムスタンプ、署名、キー材料、ルーティング情報、アクセスポリシー、認証情報、認可情報、または暗号化されたペイロード６０６に含めるのに好適な任意の他の情報が含まれる。暗号化されたペイロードのフォーマットは、１つ以上のバックエンドサービス、コンピューティングリソースサービスプロバイダ、ウェブサイト運営者、顧客、公的基準設定委員会、または任意の他のエンティティにより設定され得る。
【００５３】
ペイロード６０６及び／またはデータストリーム６０２は、認可のないコンピューティングリソースには解読不可能なメタデータを含み得る。特定の実施形態では、ペイロード６０６は、メタデータがなければ解読不可能であり得、メタデータは、ペイロード６０６の暗号化に使用したキー材料に対応付けられた情報、ペイロードの暗号化を担当するエンティティ、監査情報、認証情報、または他のこのような情報を含む様々な情報を示し得る。
【００５４】
図７は、実施形態による、セキュアプロキシフリート７０６が１つ以上の公開エンドポイント７０２から機密データを受信し、１つ以上のバックエンドサービス７０８の１つ以上の認可データストア７１８に機密データを送信する前に、機密データを暗号化する環境７００を示す。コンピューティングリソースサービスプロバイダは、前述のように、バックエンドサービス７０８が公開エンドポイント７０２を通して顧客と通信することを可能にするために、セキュアプロキシフリート７０６を提供し得る。公開エンドポイント７０２は、ウェブページ、ウェブサイト、サービスコール、ユーザインターフェース、コマンドラインインターフェース、またはスタンドアロンアプリケーションもしくはモバイルアプリケーションなどのアプリケーションを介した通信を可能にするネットワークの公的にアドレス指定可能なリソースを含み得る。例えば、公開エンドポイント７０２は、アドレス「ｓｅｃｕｒｅ．ｅｘａｍｐｌｅ．ｃｏｍ」を含み得る。
【００５５】
バックエンドサービス７０８及び認可データストア７１８は、コンピューティングリソースサービスプロバイダ７０４または他のエンティティにより運用され得る。例えば、コンピューティングリソースサービスプロバイダ７０４は、安全なストレージサービスなど、顧客に公開される様々なサービスを実施するために、コンピューティングリソースサービスプロバイダ７０４により提供されるコンピューティングリソースへのアクセスを有する組織を提供し得る。コンピューティングリソースサービスプロバイダ７０４はまた、様々なネットワーク、コンピューティングデバイス、サービス、アプリケーション、または他のコンピューティングリソースを運用し、顧客及び他のエンティティに、様々な動作を実行するためのアクセスを提供し得る。認可データストア７１８は、様々なストレージリソースを含むことができ、オンデマンドストレージサービスまたはブロックレベルストレージサービスなどの１つ以上のサービスにより実施され得る。さらに、認可データストア７１８は、機密データを保持するための安全なストレージ場所を提供し得る。
【００５６】
図７に示されるように、セキュアプロキシフリート７０６は、オペレーティングシステム７１０を実施し得る。さらに、オペレーティングシステム７１０は、複数の隔離された実行環境７１２を提供し得る。オペレーティングシステム７１０は、セキュア実行Ｌｉｎｕｘ（登録商標）などの隔離及び／またはセキュア実行をサポートするオペレーティングシステムであり得る。例えば、オペレーティングシステム７１０は、プロセスを制御し、認可されていないプロセスの通信及び動作を防止するカーネルレベルのアプリケーションを含む。これらのオペレーティングシステムは、隔離された実行環境７１２内で実行されるプロセスへのアクセスを防止し得る。セキュアプロキシフリートは、公開エンドポイント７０２に送信されたＨＴＴＰ要求が取得され復号化されるように、ＴＬＳターミネータを実行し得る。
【００５７】
さらに、オペレーティングシステム７１０により実行されるセキュアプロキシフリート７０６または他のプロセスは、プロキシ７１４を使用して、隔離された実行環境７１２に要求を送信し得る。オペレーティングシステム７１０は、プロセスが保護された方法で、隔離された実行環境７１２と通信できるように、プロキシ７１４を提供し得る。例えば、プロキシ７１４は、ＵＮＩＸ（登録商標）ドメインソケットを含み得、これは、ＴＬＳターミネータなどのオペレーティングシステム７１０により実行されるプロセスからのデータを、隔離された実行環境７１２に送信する。様々な実施形態において、検出モジュール、暗号化モジュール、レンダリングモジュール、復号化モジュール、または本開示で説明される他のプロセスは、オペレーティングシステム７１０の隔離された実行環境７１２内で実行される。
【００５８】
図７に戻ると、バックエンドサービス７０８は、バックエンドサービス７０８への要求及び／またはコールが相互に認証され認可されていることを検証し得る。バックエンドサービス７０８を呼び出す各コンピュータシステム自体は、名前、アドレス、タイプ、及び／または要求されるペイロードフォーマットにより識別され得る。機密データを受信すると、セキュアプロキシフリート７０６は、キャッシュまたは永続ストレージから、バックエンドサービス７０８のための暗号化キーを取得し、ペイロードフォーマットに従ってペイロードを構築する。このフォーマット情報は、隔離された実行環境内でプロセスをプロビジョニングするのに使用される構成情報に含まれ得る。さらに、構成及び／またはフォーマット情報は、宛先システムに対するヘッダフォーマットを示す情報、及びバックエンドサービス７０８に送信する機密データの処理方法に関する他の情報を含み得る。公開エンドポイント７０２を介して取得された要求は、直接またはＡＰＩを介して、バックエンドサービス７０８に送られ得る。適切に認証され認可されているのであれば、バックエンドサービス７０８は、ウェブサイトもしくは他のサービスの場合は要求システムへ、またはクライアントコンピューティングサービスと識別され認可されている場合はクライアントコンピューティングサービスへ、データを返し得る。
【００５９】
図８は、実施形態による、コンテンツ配信ネットワーク８１６に統合されたセキュアプロキシ８０６が、顧客８０２から機密データを受信し、機密データを１つ以上のバックエンドサービス８０８に送信する前に、機密データを暗号化する環境８００を示す。コンテンツ配信ネットワーク８１６は、前述のようにコンピューティングリソースサービスプロバイダにより実施されるバックエンドサービス８０８が、顧客８０２と通信することを可能にするために、セキュアプロキシ８０６を提供し得る。バックエンドサービス８０８は、コンピューティングリソースサービスプロバイダまたは他のエンティティにより運用され得る。例えば、コンピューティングリソースサービスプロバイダは、安全なストリーミングメディアサービスなど、顧客に公開される様々なサービスを実施するために、コンピューティングリソースサービスプロバイダにより提供されるコンピューティングリソースへのアクセスを有する組織を提供し得る。コンピューティングリソースサービスプロバイダはまた、様々なネットワーク、コンピューティングデバイス、サービス、アプリケーション、または他のコンピューティングリソースを運用し、顧客及び他のエンティティに、様々な動作を実行するためのアクセスを提供し得る。
【００６０】
図８に示されるように、１つ以上のネットワーク８１０は、様々なエンティティにより実施される様々な異なるネットワークを含み得る。例えば、１つ以上のネットワーク８１０には、インターネットなどの公的にアドレス指定可能なネットワークの一部であるネットワークバックボーンまたは他のネットワーク構造が含まれ得る。下記にさらに詳しく説明されるように、ネットワーク８１０には、公衆ネットワーク、プライベートネットワーク、コンテンツ配信ネットワーク、ならびに異なるエンティティ及び／またはサービスにより実施され得、異なるセキュリティポリシーを施行し得、異なるエンティティ及び／またはサービスによりアクセス可能であり得る他のネットワークが含まれ得る。
【００６１】
コンテンツ配信ネットワーク８１６を使用して、地理的近接度及び／またはネットワーク近接度（例えばネットワークホップ数）が顧客８０２により近いネットワーク場所から、顧客８０２に対し、高速コンテンツがキャッシュされ供給され得る。顧客８０２は、バックエンドサービス８０８からのコンテンツを要求することができ、これは、利用可能なコンテンツの全てを保持し得るデータセンタ内で実行されることができる。一方、コンテンツ配信ネットワーク８１６は、遅延を短縮するために、顧客８０２のより近くで、利用可能なコンテンツの一部を記憶またはキャッシュし得る。遅延は一往復時間（ＲＴＴ）で測定することができ、よって、頻度の高い要求は、顧客のより近くでコンテンツを提供することで、ネットワーク費用が削減され、顧客８０２により良い体験が提供され得る。
【００６２】
コンテンツ配信ネットワーク８１６は、接続ターミネータ８０４を使用して、セッションの確立及び終了を行い得る。顧客８０２からネットワークエッジデバイス（例えば存在点（ＰＯＰ）デバイス）への接続が確立され得る。様々な実施形態において、ネットワークエッジデバイスと顧客８０２との間で送信されるコンテンツ及び／または要求は、ＴＬＳまたはＳＳＬなどの暗号化保護された通信チャネルを介して送信され得る。ネットワークエッジデバイス及び顧客８０２は、相互に認証が行われ得る。さらに、ＴＬＳ接続などの暗号化保護された通信チャネルによる接続は、長命のセッションであり得る。
【００６３】
コンテンツ配信ネットワーク８１６は、顧客８０２とは異なるエンティティ、及びコンピューティングリソースサービスプロバイダにより運用され得る。接続ターミネータ８０４は、前述のように、顧客８０２から要求を取得し、要求を復号化し得る。これにより、機密データを含み得る要求の平文表現が公開され得る。接続ターミネータ８０４及びセキュアプロキシ８０６は、前述のように、隔離された実行環境をサポートするオペレーティングシステムにおいて実行され得る。さらに、セキュアプロキシ８０６は、前述のように、データ保護モジュールを含み得る。様々な実施形態において、接続ターミネータ８０４は、顧客からの要求を復号化し、要求をセキュアプロキシ８０６に提供する。
【００６４】
前述のように、データ保護モジュールは、機密データを検出し、バックエンドサービス８０８に要求を送信する前に、機密データを暗号化し得る。さらに、コンピューティングリソースサービスプロバイダ、または暗号化キーサービスなどのコンピューティングリソースサービスプロバイダのサービスは、キー材料をセキュアプロキシ８０６に提供し得る。キー材料は、前述のように、機密データを暗号化及び復号化するために使用され得る。さらに、キー材料は、セキュアプロキシ８０６が接続ターミネータ８０４から要求を取得することとは分離して送信され得る。セキュアプロキシ８０６が機密データを検出することを可能にするために、要求は、ＨＴＴＰ  ＰＯＳＴ、マルチパートＰＯＳＴ、ＪＳＯＮ、ＸＭＬ、または検出可能で、所有者を示し得るトークンもしくはフィールドを含む他のフォーマットなど、構造化されたフォーマットに従い得る。次いでデータ保護モジュールは、データの所有者を示す情報に少なくとも部分的に基づいて、暗号化または復号化を行い得る。例えば、データの公開キーでデータを暗号化すること、または所有者の秘密キーでデータを暗号化するのに使用される対称キーを暗号化して、暗号化した対称キーを所有者に送ることが挙げられる。
【００６５】
コンテンツ配信ネットワーク８１６は、機密データのセキュリティ及び保護を強化するために、プロセス隔離及び強制アクセス制御を伴うランタイムによりオペレーティングシステムを実行する１つ以上のサーバラックを含み得る。さらに別の実施形態では、各ベアメタルサーバが１つのエンティティにのみ割り当てられるコンテンツ配信ネットワーク環境において実行される仮想ホストにより、コンテンツ配信ネットワーク８１６は実行され得る。さらに、ハードウェア層（例えば専用ラック及び／または専用ホスト）における十分な隔離により、セキュアプロキシ８０６は、コンテナインスタンス内で実行され得る。
【００６６】
図９は、実施形態による、コンテンツ配信ネットワーク９１６に接続されたセキュアプロキシ９０６が、顧客９０２から機密データを受信し、機密データを１つ以上のバックエンドサービス９０８に送信する前に、機密データを暗号化する環境９００を示す。コンテンツ配信ネットワーク９１６は、前述のようにコンピューティングリソースサービスプロバイダにより実施されるバックエンドサービス９０８が、顧客９０２と通信することを可能にするために、セキュアプロキシ９０６との接続を確立する。バックエンドサービス９０８は、コンピューティングリソースサービスプロバイダまたは他のエンティティにより運用され得る。例えば、コンピューティングリソースサービスプロバイダは、安全なストリーミングメディアサービスなど、顧客に公開される様々なサービスを実施するために、コンピューティングリソースサービスプロバイダにより提供されるコンピューティングリソースへのアクセスを有する組織を提供し得る。コンピューティングリソースサービスプロバイダはまた、様々なネットワーク、コンピューティングデバイス、サービス、アプリケーション、または他のコンピューティングリソースを運用し、顧客及び他のエンティティに、様々な動作を実行するためのアクセスを提供し得る。
【００６７】
図９に示されるように、１つ以上のネットワーク９１０は、様々なエンティティにより実施される様々な異なるネットワークを含み得る。例えば、１つ以上のネットワーク９１０には、インターネットなどの公的にアドレス指定可能なネットワークの一部であるネットワークバックボーンまたは他のネットワーク構造が含まれ得る。下記にさらに詳しく説明されるように、ネットワーク９１０には、公衆ネットワーク、プライベートネットワーク、コンテンツ配信ネットワーク、ならびに異なるエンティティ及び／またはサービスにより実施され得、異なるセキュリティポリシーを施行し得、異なるエンティティ及び／またはサービスによりアクセス可能であり得る他のネットワークが含まれ得る。
【００６８】
コンテンツ配信ネットワーク９１６を使用して、地理的近接度及び／またはネットワーク近接度（例えばネットワークホップ数）が顧客９０２により近いネットワーク場所から、顧客９０２に対し、高速コンテンツがキャッシュされ供給され得る。顧客９０２は、バックエンドサービス９０８からのコンテンツを要求することができ、これは、利用可能なコンテンツの全てを保持し得るデータセンタ内で実行されることができる。一方、コンテンツ配信ネットワーク９１６は、遅延を短縮するために、顧客９０２のより近くで、利用可能なコンテンツの一部を記憶またはキャッシュし得る。遅延は一往復時間（ＲＴＴ）で測定することができ、よって、頻度の高い要求は、顧客のより近くでコンテンツを提供することで、ネットワーク費用が削減され、顧客９０２により良い体験が提供され得る。
【００６９】
コンテンツ配信ネットワーク９１６は、接続ターミネータ９０４を使用して、セッションの確立及び終了を行い得る。顧客９０２からネットワークエッジデバイス（例えば存在点（ＰＯＰ）デバイス）への接続が確立され得る。様々な実施形態において、ネットワークエッジデバイスと顧客９０２との間で送信されるコンテンツ及び／または要求は、ＴＬＳまたはＳＳＬなどの暗号化保護された通信チャネルを介して送信され得る。ネットワークエッジデバイス及び顧客９０２は、相互に認証が行われ得る。さらに、ＴＬＳ接続などの暗号化保護された通信チャネルによる接続は、長命のセッションであり得る。図９に示されるように、接続ターミネータ９０４はまた、セキュアプロキシ９０６との接続を確立し得る。セキュアプロキシ９０６は、コンピューティングリソースサービスプロバイダにより実行されてもよく、コンテンツ配信ネットワーク９１６とは異なるネットワークに接続されてもよい。
【００７０】
コンテンツ配信ネットワーク９１６は、顧客９０２とは異なるエンティティ、及びコンピューティングリソースサービスプロバイダにより運用され得る。接続ターミネータ９０４は、前述のように、顧客９０２から要求を取得し、要求を復号化し得る。これにより、機密データを含み得る要求の平文表現が公開され得る。接続ターミネータ９０４は次に、要求を暗号化し、暗号化保護された通信チャネルを介してセキュアプロキシ９０６に要求を送信し得る。例えば、接続ターミネータ９０４は、セキュアプロキシ９０６と、長命ＴＬＳ接続を確立し得る。これにより、接続ターミネータ９０４とセキュアプロキシ９０６との間でデータを送信する時に、キー材料を再交渉する必要性が削減され得る。このような実施形態において、セキュアプロキシは、自身のＴＬＳターミネータを実行させ得るが、説明を簡潔にするため図９には示されていない。さらに、セキュアプロキシ９０６は、前述のように、データ保護モジュールを含み得る。様々な実施形態において、接続ターミネータ９０４は、顧客からの要求を復号化し、要求をセキュアプロキシ９０６に提供する。
【００７１】
前述のように、データ保護モジュールは、機密データを検出し、バックエンドサービス９０８に要求を送信する前に、機密データを暗号化し得る。さらに、コンピューティングリソースサービスプロバイダ、または暗号化キーサービスなどのコンピューティングリソースサービスプロバイダのサービスは、キー材料をセキュアプロキシ９０６に提供し得る。キー材料は、前述のように、機密データを暗号化及び復号化するために使用され得る。さらに、キー材料は、セキュアプロキシ９０６が接続ターミネータ９０４から要求を取得することとは分離して送信され得る。セキュアプロキシ９０６が機密データを検出することを可能にするために、要求は、ＨＴＴＰ  ＰＯＳＴ、マルチパートＰＯＳＴ、ＪＳＯＮ、ＸＭＬ、または検出可能で、所有者を示し得るトークンもしくはフィールドを含む他のフォーマットなど、構造化されたフォーマットに従い得る。次いでデータ保護モジュールは、データの所有者を示す情報に少なくとも部分的に基づいて、暗号化または復号化を行い得る。例えば、データの公開キーでデータを暗号化すること、または所有者の秘密キーでデータを暗号化するのに使用される対称キーを暗号化して、暗号化した対称キーを所有者に送ることが挙げられる。
【００７２】
図９に示される環境において、機密データを保護するプロセスは、コンテンツ配信ネットワーク９１６とセキュアプロキシ９０６との間に追加のネットワークホップが加えられたことを除いては、前述と同じであり得る。いくつかの実施形態では、コンテンツ配信ネットワークは、図８に関連して前述されたように、セキュアプロキシ９０６を含む。これらの実施形態では、所与の要求に関して、コンテンツ配信ネットワークまたはそのプロセスは、コンテンツ配信ネットワーク９１６内で実行されるセキュアプロキシにて要求を処理するか、コンピューティングリソースサービスプロバイダにより実行されるセキュアプロキシ９０６へ、処理のために要求を転送するかを、決定し得る。
【００７３】
例えば、コンテンツ配信ネットワーク９１６が機密データを暗号化する場合、コンテンツ配信ネットワーク９１６は、フラグを追加することで、機密データが保護されているためデータを無視することができることを、ダウンストリームデータ保護モジュールに知らせ得る。コンテンツ配信ネットワーク９１６は、公開が許容できない状況の場合、機密データを暗号化することを決定し得る。別の実施例では、コンテンツ配信ネットワーク９１６は、機密データに対応付けられたデータタイプに基づいて、機密データを暗号化することを決定し得る。従って、機密性の低いデータタイプであると示されるデータに関しては、コンテンツ配信ネットワーク９１６は、機密データを含む要求を、保護のためにセキュアプロキシ９０６に転送し得る。コンテンツ配信ネットワーク９１６による機密データの暗号化は、前述の仕組みのうちのいずれかを使用して実行され得る。
【００７４】
さらに、コンテンツ配信ネットワーク９１６はまた、顧客９０２にデータを提供するために使用され得る。暗号化された機密データを顧客に提供する時、コンテンツ配信ネットワーク９１６は、前述のように、要求を構文解析し、機密データを復号化し、暗号化された機密データを復号化された機密データで置き換え得る。しかし、コンテンツ配信ネットワーク９１６の場合、データは、構造化されていないフォーマットまたはデータストリームに含まれていてもよい。データに含まれるフラグまたは他のマーカを使用して、機密データ、機密データを復号化するか否か、機密データを無視するか否か、機密データをコンテンツ配信ネットワーク９１６において復号化するか、コンピューティングリソースサービスプロバイダ環境内で復号化するか、または機密データの処理方法に関する任意の他の指示が示され得る。
【００７５】
図１０は、実施形態による、バックエンドサービスへ送る機密データを保護するプロセス１０００の実施例を示すブロック図である。プロセス１０００は、図３に関連して前述されたセキュアプロキシフリートなどの任意の好適なシステムにより実行され得る。プロセス１０００（または説明される任意の他のプロセス、あるいはこれらのプロセスの変形及び／または組み合わせ）のうちの一部または全ては、実行可能命令及び／または他のデータを含む１つ以上のコンピュータシステムの制御の下で実行され得、１つ以上のプロセッサ上で集合的に実行される実行可能命令として実施され得る。実行可能命令及び／または他のデータは、非一時的なコンピュータ可読記憶媒体上に記憶され得る（例えば磁気媒体、光学媒体、またはフラッシュ媒体に永続的に記憶されるコンピュータプログラム）。
【００７６】
プロセス１０００は、暗号化保護送信の要求を受信すること（１００２）を含む。暗号化保護送信には、ＴＬＳまたはＳＳＬなど、データを暗号化して、安全ではないネットワークを介してデータを送信する様々な方法が含まれ得る。さらに、要求は、顧客とアプリケーションとの対話に応じて、クライアントデバイスにより実行されるアプリケーションにより生成され得る。例えば、顧客は、ウェブブラウザを使用して、特定のウェブページに移動し得る。要求は、前述のように、セキュアプロキシフリート、または接続ターミネータなどのセキュアプロキシフリートの構成要素にて、受信され得る。次に、セキュアプロキシフリートまたは接続ターミネータは、暗号化保護送信を確立し得る（１００４）。暗号化保護送信は、前述のように、アルゴリズムのプロトコルに少なくとも部分的に基づいて確立され得る。
【００７７】
暗号化保護送信が一度確立されると、セキュアプロキシフリートは、暗号化保護送信を介してデータを受信し得る（１００６）。データには、要求、サービスコール、フォーマット化及び非フォーマット化データ（例えばデータストリーム）、または顧客によりバックエンドサービスに提出され得る任意の他の情報が含まれ得る。次に、接続ターミネータがデータを復号化し得る（１００８）。例えば、データがＨＴＴＰＳ要求を含む場合、接続ターミネータは、暗号化されたデータを復号化し、ＨＴＴＰ要求を生成し得る。次に、セキュアプロキシフリート、またはルーティング構成要素などのセキュアプロキシフリートの構成要素が、復号化されたデータに少なくとも部分的に基づいて、エンドポイント及びルーティング情報を特定し得る（１０１０）。エンドポイント及びルーティング情報は、データを送る特定のバックエンドサービス及びネットワーク経路を示し得る。さらに、この情報は、データを処理するセキュアプロキシフリートの特定のデータ保護モジュールを決定するために使用され得る。前述のように、セキュアプロキシフリート及び／またはデータ保護モジュールは、単一のテナント（例えば単一のバックエンドサービスまたはバックエンドサービスの公開エンドポイント）のために構成され得、よって単一のテナントに送られる要求のみを処理し得る。
【００７８】
図１０に戻ると、プロセス１０００を実行するシステムは次に、データ保護モジュールにデータを提供し得る（１０１２）。復号化されたデータは、安全なチャネルを介してストリーミングされ得る、あるいはデータ保護モジュールに提供され得る。例えば、セキュアプロキシフリートは、復号化されたデータを、ＵＮＩＸ（登録商標）ドメインソケットを介してデータ保護モジュールにデータを提供し得る。データ保護モジュールは、データを受信し、データの構成オプションを選択し得る（１０１４）。構成オプションは、前述の構成情報に少なくとも部分的に基づいて選択され得る。例えば、データ保護モジュールは、要求フォーマットなどのデータのフォーマット、及び機密データを暗号化するために使用する暗号化キーを選択し得る。
【００７９】
次にデータ保護モジュールは、構成オプションに少なくとも部分的に基づいて、データを暗号化し得る（１０１６）。データ保護モジュールは、構成オプションにより示される機密データのみを暗号化し得る。前述のように、データ保護モジュールは、暗号化キーサービスを使用して、暗号化ワークフローの様々な動作を実行し得る。セキュアプロキシフリートは次に、暗号化されたデータを、１つ以上の仲介者を介して、エンドポイントへ送信し得る（１０１８）。仲介者は、前述のように、様々なネットワーク及びコンピュータシステムを含み得る。さらに、暗号化されたデータは、バックエンドサービスへの要求に挿入され、バックエンドサービスに対応付けられたエンドポイントに送信され得る。
【００８０】
１００２〜１０１８において行われる動作のうちの１つ以上は、同時実施を含む様々な順序及び組み合わせで行われてもよいことに留意されたい。例えば、いくつかの実施形態において、動作１００２〜１００８は省略されてもよく、単にセキュアプロキシがクライアントデバイスから平文データを受信してもよい。さらに、いくつかの実施態様において、セキュアプロキシフリートは、複数のデータ保護モジュール及び／または複数のプロキシを保持してもよく、このような場合、セキュアプロキシフリートにて、プロセス１０００の複数のインスタンスが同時に実行され得る。
【００８１】
図１１は、実施形態による、バックエンドサービスからクライアントデバイスへ送られる機密データを保護するプロセス１１００の実施例を示すブロック図である。プロセス１１００は、図５に関連して前述されたセキュアプロキシフリートなどの任意の好適なシステムにより実行され得る。プロセス１１００（または説明される任意の他のプロセス、あるいはこれらのプロセスの変形及び／または組み合わせ）のうちの一部または全ては、実行可能命令及び／または他のデータを含む１つ以上のコンピュータシステムの制御の下で実行され得、１つ以上のプロセッサ上で集合的に実行される実行可能命令として実施され得る。実行可能命令及び／または他のデータは、非一時的なコンピュータ可読記憶媒体上に記憶され得る（例えば磁気媒体、光学媒体、またはフラッシュ媒体に永続的に記憶されるコンピュータプログラム）。
【００８２】
プロセス１１００は、データの要求を受信すること（１１０２）を含む。要求は、顧客により運用されるクライアントデバイス、コンピューティングリソースサービスプロバイダの別のサービス、または第三者から、受信され得る。例えば、顧客は、第１のサービスへのアクセスを要求し得、これは次に、第１のサービスによる顧客への応答に含める機密データを、バックエンドサービスに要求し得る。次にバックエンドサービスは、データが機密データであると判定し得る（１１０４）。バックエンドサービスは、データに対応付けられたカテゴリまたはタイプに少なくとも部分的に基づいて、データが機密であると判定し得る。その結果、バックエンドサービスは、機密データを暗号化し得る（１１０６）。前述のように、機密データを保護するために、任意の数の暗号化アルゴリズム及び規格が使用され得る。例えば、バックエンドサービスは、機密データを暗号化するために使用された暗号化キーを、デジタル封筒暗号化を使用して保護し得る。
【００８３】
次にバックエンドサービスは、暗号化されたデータを含むデータストリームを、エンドポイントに送信し得る（１１０８）。データストリームは、セキュアプロキシフリートにより、送信、再送信、及び／または傍受され得る。さらに、前述のような１つ以上の仲介者が、データストリームを取得し修正し得る。例えば、レンダリングフリートは、データストリームを取得し、データストリームに含まれるデータに少なくとも部分的に基づいて、ＨＴＭＬを生成し得る。次にセキュアプロキシフリートが、データストリームを受信し得る（１１１０）。セキュアプロキシフリートは、コンテンツ配信ネットワークに統合され得る、またはコンピューティングリソースサービスプロバイダのコンピューティングリソースを使用して実行され得る。
【００８４】
次にセキュアプロキシフリートは、暗号化されたデータを検出し得る（１１１２）。暗号化されたデータは、前述のように、データストリームに含まれるフラグまたはマーカに少なくとも部分的に基づいて、検出され得る。次にセキュアプロキシフリート、またはレンダリングモジュールなどのセキュアプロキシフリートの構成要素は、データストリームをレンダリングし得る（１１１４）。データストリームをレンダリングすることは、クライアントデバイスにより使用されるデータを処理し編成する任意の数の動作を含み得る。例えば、データをレンダリングすることは、データから全ての実行可能コードを削除することを含み得る。セキュアプロキシフリート、または復号化モジュールなどのセキュアプロキシフリートの構成要素は、データを復号化し得る（１１１６）。前述のように、セキュアプロキシフリートのメモリに記憶され得る、または暗号化キーサービスから取得され得る暗号化キーを使用して、データが復号化され得る。
【００８５】
次にセキュアプロキシフリートは、レンダリングされたデータストリームに復号化されたデータを挿入し得る（１１１８）。レンダリングされたデータストリームは、特定のクライアントデバイスにより使用されるために編成されて特定のクライアントデバイスへ送られるデータを含み得る。例えば、レンダリングされたデータストリームは、顧客によるウェブページコンテンツ要求を含み得る。復号化されたデータを挿入することは、暗号化されたデータを、レンダリングデータストリーム内の復号化されたデータで上書きすることを含み得る。次にセキュアプロキシフリートは、レンダリングされたデータストリームをエンドポイントに送信し得る（１１２０）。例えば、セキュアプロキシフリートは、顧客に対応付けられたＩＰアドレスを使用して、インターネットを介して、顧客にレンダリングされたデータストリームを送信し得る。
【００８６】
１１０２〜１１２０において行われる動作のうちの１つ以上は、同時実施を含む様々な順序及び組み合わせで行われてもよいことに留意されたい。例えば、いくつかの実施形態において、動作１１０２〜１１０８は省略されてもよく、単にセキュアプロキシが暗号化されたデータを受信してもよい。さらに、いくつかの実施態様において、セキュアプロキシフリートは、複数のデータ保護モジュール及び／または複数のプロキシを保持してもよく、このような場合、セキュアプロキシフリートにて、プロセス１１００の複数のインスタンスが同時に実行され得る。
【００８７】
図１２は、実施形態による、データ保護モジュールにより機密データを保護するプロセス１２００の実施例を示すブロック図である。プロセス１２００は、図３に関連して前述されたデータ保護モジュールなどの任意の好適なシステムにより実行され得る。プロセス１２００（または説明される任意の他のプロセス、あるいはこれらのプロセスの変形及び／または組み合わせ）のうちの一部または全ては、実行可能命令及び／または他のデータを含む１つ以上のコンピュータシステムの制御の下で実行され得、１つ以上のプロセッサ上で集合的に実行される実行可能命令として実施され得る。実行可能命令及び／または他のデータは、非一時的なコンピュータ可読記憶媒体上に記憶され得る（例えば磁気媒体、光学媒体、またはフラッシュ媒体に永続的に記憶されるコンピュータプログラム）。
【００８８】
プロセス１２００は、構成情報を取得すること（１２０２）を含む。構成情報は、前述のようにバックエンドサービスから取得され得、機密データ及びバックエンドサービスとの通信を保護するのに好適な情報を含み得る。例えば、構成情報は、バックエンドサービスの公開キーと、バックエンドサービスに対応付けられた要求フォーマットとを含み得る。次にデータ保護モジュールは、接続ターミネータから平文データを含む要求を受信し得る（１２０４）。要求は、前述のようにセキュアプロキシフリートまたはエッジネットワークデバイスから、転送あるいは提供され得る。要求には、ＨＴＴＰ要求またはサービス要求を含む任意の数の要求が含まれ得る。
【００８９】
次にデータ保護モジュールは、要求が機密データを含むかどうかを判定し得る（１２０６）。データ保護モジュールは、前述のようにフラグまたはデータタイプにより示され得る構成情報に少なくとも部分的に基づいて、機密データを検出し得る。要求が機密データを含まない場合、データ保護モジュールまたはセキュアプロキシフリートは、要求をエンドポイントに送信し得る（１２０８）。しかし、データ保護モジュールが機密データを検出した場合、データ保護モジュールは、機密データを暗号化モジュールに提供し得る（１２１０）。暗号化モジュールは、前述のように、セキュアプロキシフリートにより実行される別個のプロセスであり得る。暗号化モジュールはまた、機密データを暗号化するために、暗号化キーサービスと対話し得る。
【００９０】
次にデータ保護モジュールは、暗号化モジュールから暗号化された機密データを受信し得る（１２１２）。次にデータ保護モジュールは、バックエンドサービスへの要求をフォーマット化し得る（１２１４）。要求は、構成情報に少なくとも部分的に基づいてフォーマット化され得る。要求が一度フォーマット化されると、データ保護モジュールは、平文の機密データを暗号化された機密データで置き換え得る（１２１６）。これにより、修正された要求で要求が行われ得る。データ保護モジュールは次に、バックエンドサービスに対応付けられたエンドポイントへ、要求を送信し得る（１２１８）。
【００９１】
１２０２〜１２１８において行われる動作のうちの１つ以上は、同時実施を含む様々な順序及び組み合わせで行われてもよいことに留意されたい。例えば、いくつかの実施形態において、動作１２０２〜１２０６は省略されてもよく、単にデータ保護モジュールが、データ保護モジュールに提供されるデータ全てを暗号化してもよい。さらに、いくつかの実施態様において、セキュアプロキシフリートは、複数のデータ保護モジュール及び／または複数のプロキシを保持してもよく、このような場合、セキュアプロキシフリートにて、プロセス１２００の複数のインスタンスが同時に実行され得る。
【００９２】
図１３は、実施形態による、セキュアプロキシフリートのためのキー管理を実行するプロセス１３００の実施例を示すブロック図である。プロセス１３００は、図４に関連して前述された暗号化キー管理サービスなどの任意の好適なシステムにより実行され得る。プロセス１３００（または説明される任意の他のプロセス、あるいはこれらのプロセスの変形及び／または組み合わせ）のうちの一部または全ては、実行可能命令及び／または他のデータを含む１つ以上のコンピュータシステムの制御の下で実行され得、１つ以上のプロセッサ上で集合的に実行される実行可能命令として実施され得る。実行可能命令及び／または他のデータは、非一時的なコンピュータ可読記憶媒体上に記憶され得る（例えば磁気媒体、光学媒体、またはフラッシュ媒体に永続的に記憶されるコンピュータプログラム）。
【００９３】
プロセス１３００は、キー材料を受信すること（１３０２）を含む。前述のように、暗号化キー管理サービスは、定期的または非定期的にキー材料を受信し得るカーネルレベルのアプリケーションを、セキュアプロキシフリート上で実行し得る。暗号化キー管理サービスは次に、機密データを暗号化する要求を受信し得る（１３０４）。要求は、前述のように、データ保護モジュールまたは暗号化モジュールから取得され得る。暗号化キー管理サービスは次に、対称キーにより機密データを暗号化し得る（１３０６）。対称キーは、プロセス１３００を実行するシステムにより生成され得る、またはキー材料から取得され得る。
【００９４】
さらに、暗号化キー管理サービスは、検証情報を生成し得る（１３０８）。検証情報は、前述のようにタイムスタンプまたは署名を含み得る。次に暗号化キー管理サービスは、エンドポイントキー情報を特定し得る（１３１０）。エンドポイントキー情報は、公開キーなどのエンドポイントに対応付けられた特定の暗号化キーを示すメタデータまたは他の情報を含み得る。暗号化キー管理サービスは次に、エンドポイントキーにより対称キーを暗号化し得る（１３１２）。例えば、暗号化キー管理サービスは、エンドポイントにのみアクセス可能なキーで、対称キーを暗号化し得る。
【００９５】
次に暗号化キー管理サービスは、暗号化されたデータを返し得る（１３１４）。暗号化されたデータは、データ保護モジュールまたはセキュアプロキシフリートの他の構成要素に返され得る。さらに、暗号化されたデータは、暗号化された機密データ、暗号化された対称キー、及び検証情報を含み得る。１３０２〜１３１４において行われる動作のうちの１つ以上は、同時実施を含む様々な順序及び組み合わせで行われてもよいことに留意されたい。例えば、いくつかの実施形態において、動作１３０８は省略されてもよく、単に暗号化キー管理サービスが、検証情報を生成せずに、機密データを暗号化してもよい。
【００９６】
図１４は、様々な実施形態による態様を実行する例示的な環境１４００の態様を示す。説明のためにウェブベースの環境が使われているが、様々な実施形態を実行するために、異なる環境が適宜使用され得ることが理解されよう。環境は電子クライアントデバイス１４０２を含み、電子クライアントデバイス１４０２には、好適なネットワーク１４０４を介して要求、メッセージ、または情報を送信及び／または受信し、いくつかの実施形態ではデバイスのユーザに情報を返送するように作動可能な任意の好適なデバイスが含まれ得る。このようなクライアントデバイスの実施例には、パーソナルコンピュータ、携帯電話、手持ち型メッセージングデバイス、ラップトップコンピュータ、タブレットコンピュータ、セットトップボックス、パーソナルデータアシスタント、埋め込み式コンピュータシステム、及び電子書籍リーダなどが含まれる。ネットワークには、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、衛星ネットワーク、または任意の他のこのようなネットワーク、並びに／あるいはこれらの組み合せを含む、任意の好適なネットワークが含まれ得る。このようなシステムに使用される構成要素は、選択されるネットワーク及び／または環境の種類に少なくとも部分的に依拠し得る。このようなネットワークを介して通信を行う多数のプロトコル及び構成要素はよく知られているため、本明細書では詳しく論述しない。ネットワークを介した通信は、有線接続、または無線接続、及びこれらの組み合せにより、可能となり得る。この実施例では、ネットワークにはインターネット及び／または公的にアドレス指定可能な他の通信ネットワークが含まれ、よって要求を受信し、それに応じてコンテンツを提供するウェブサーバ１４０６が環境に含まれるが、当業者には明らかであるように、他のネットワークでは、同様の目的にかなう代替的なデバイスが使用され得る。
【００９７】
例示的環境には、少なくとも１つのアプリケーションサーバ１４０８と、データストア１４１０とが含まれる。例示的環境には、いくつかのアプリケーションサーバ、レイヤもしくは他の要素、プロセス、または構成要素が存在し得、これらは、好適なデータストアからデータを取得するといったタスクを実行するために対話できるように、連結あるいは構成され得ることを理解されたい。本明細書において使用されるサーバは、ハードウェアデバイスまたは仮想コンピュータシステムなど、様々な方法で実施され得る。いくつかの文脈では、サーバは、コンピュータシステム上で実行されるプログラミングモジュールを指し得る。本明細書において使用される用語「データストア」は、特に明記されないまたは文脈から明らかでない限り、データ記憶、データアクセス、及びデータ取得が可能な任意のデバイスまたはデバイスの組み合わせを指し、これには、任意の標準環境、分散環境、仮想環境、またはクラスタ環境における任意の組み合わせ及び数のデータサーバ、データベース、データストレージデバイス、及びデータ記憶媒体が含まれ得る。アプリケーションサーバには、クライアントデバイス用の１つ以上のアプリケーションの態様を実行するために必要に応じてデータストアと統合し、アプリケーション用のデータアクセス及びビジネスロジックの一部または全てを処理する、任意の好適なハードウェア、ソフトウェア、及びファームウェアが含まれ得る。アプリケーションサーバは、データストアと協働してアクセス制御サービスを提供することができ、テキスト、画像、音声、映像、及び／またはユーザに提供される利用可能な他のコンテンツを含むがこれに限定されないコンテンツを生成可能であり、生成されたコンテンツは、ハイパーテキストマークアップ言語（「ＨＴＭＬ」）、拡張マークアップ言語（「ＸＭＬ」）、ジャバスクリプト、階層式スタイルシート（「ＣＳＳ」）、ジャバスクリプトオブジェクト表記（ＪＳＯＮ）、及び／または別の好適なクライアント側構造化言語の形式で、ウェブサーバによりユーザへ提供され得る。クライアントデバイスへ転送されるコンテンツは、クライアントデバイスにより処理され、ユーザが聴覚、視覚、及び／または他の感覚を通して知覚可能な形式を含むがこれに限定されない１つ以上の形式で、コンテンツが提供され得る。クライアントデバイス１４０２とアプリケーションサーバ１４０８との間の全ての要求及び応答の処理、ならびにコンテンツ配信は、ＰＨＰ：ハイパーテキストプリプロセッサ（「ＰＨＰ」）、Ｐｙｔｈｏｎ、Ｒｕｂｙ、Ｐｅｒｌ、Ｊａｖａ（登録商標）、ＨＴＭＬ、ＸＭＬ、ＪＳＯＮ、及び／または当実施例における別の好適なサーバ側構造化言語を使用して、ウェブサーバにより処理され得る。さらに、単一デバイスにより実行されると本明細書で説明される動作は、文脈から明らかでない限り、分散及び／または仮想システムを形成し得る多数のデバイスにより集合的に実行されてもよい。
【００９８】
データストア１４１０は、本開示の特定の態様に関連するデータを記憶するために、いくつかの別個のデータテーブル、データベース、データ文書、動的データストレージスキーム、及び／または他のデータストレージ機構及び媒体を含み得る。例えば、示されるデータストアは、生成データ１４１２及びユーザ情報１４１６を記憶する機構を含むことができ、これらは、コンテンツを生成側に提供するために使用され得る。データストアはまた、ログデータ１４１４を記憶する機構も含むことが示され、これは、報告、分析、または他のこのような目的のために使用され得る。ページ画像情報及びアクセス権限情報など、データストアに記憶される必要があり得る多数の他の態様が存在し得、これらは、上記の機構のうちの好適ないずれかに適宜記憶され得る、またはデータストア１４１０内の追加機構に記憶され得ることを、理解されたい。データストア１４１０は、データストア１４１０に対応付けられたロジックを通して、アプリケーションサーバ１４０８から指示を受信し、それに応じてデータを取得、更新、あるいは処理するように作動可能である。アプリケーションサーバ１４０８は、受信された指示に応じて、静的データ、動的データ、または静的データ及び動的データの組み合わせを提供し得る。ウェブログ（ブログ）に使用されるデータなどの動的データ、ショッピングアプリケーション、ニュースサービス、及び他のこのようなアプリケーションは、本明細書において説明されるようにサーバ側構造化言語により生成され得る、あるいはアプリケーションサーバ上で作動するまたはアプリケーションサーバの制御下で作動するコンテンツ管理システム（「ＣＭＳ」）により提供され得る。一実施例では、ユーザは、ユーザが操作するデバイスを通して、ある種類のアイテムの検索要求を提出し得る。この場合、データストアは、ユーザ情報にアクセスしてユーザの身元を確認し、カタログ詳細情報にアクセスしてその種類のアイテムに関する情報を取得し得る。その後、取得された情報は、ユーザデバイス１４０２のブラウザを介してユーザが見ることができるウェブページ上の結果一覧などで、ユーザに返され得る。特定の注目アイテムに関する情報は、ブラウザの専用ページまたは専用ウィンドウで見ることができる。しかしながら、本開示の実施形態は、必ずしもウェブページという状況に限定されず、一般的要求の処理に、より汎用的に適用可能であり得、要求は必ずしもコンテンツの要求とは限らないことに、留意されたい。
【００９９】
各サーバは、そのサーバの一般管理及び動作に関する実行可能プログラム命令を提供するオペレーティングシステムを通常含み、命令を記憶するコンピュータ可読記憶媒体（例えばハードディスク、ランダムアクセスメモリ、読み取り専用メモリなど）を通常含み、命令がサーバのプロセッサにより実行された場合（すなわち実行された結果）、サーバはその想定される機能を実行することが可能となる。
【０１００】
一実施形態における環境は、１つ以上のコンピュータネットワークまたは直接接続を使用して、通信リンクを介して相互接続されたいくつかのコンピュータシステム及び構成要素を利用する分散及び／または仮想コンピューティング環境である。しかし、このようなシステムは、図１４に示される構成要素よりも少ないまたは多い数の構成要素を有するシステムにおいても、同等に良く作動し得ることが、当業者には理解されよう。従って、図１４におけるシステム１４００の描写は、本来例示としてみなされるべきであり、開示範囲を限定するものではない。
【０１０１】
様々な実施形態はさらに、多様な動作環境において実施することができ、いくつかの事例では動作環境は、多数のアプリケーションのうちのいずれかを作動させるのに使用され得る１つ以上のユーザコンピュータ、コンピューティングデバイス、または処理デバイスを含み得る。ユーザデバイスまたはクライアントデバイスには、標準のオペレーティングシステムを実行するデスクトップ、ラップトップ、またはタブレットコンピュータ、ならびにモバイルソフトウェアを実行し、多数のネットワーク及びメッセージ通信プロトコルに対応可能なセルラーデバイス、無線デバイス、及び手持ち型デバイスなど、多数のコンピュータのうちのいずれかが含まれ得る。このようなシステムはまた、開発及びデータベース管理などの目的で、様々な市販のオペレーティングシステム及び他の周知のアプリケーションのうちのいずれかを実行する多数のワークステーションを含み得る。これらのデバイスには、ダミー端末、シンクライアント、ゲーム機、及びネットワークを介して通信可能な他のデバイスなど、他の電子デバイスも含まれ得る。これらのデバイスには、仮想マシン、ハイパーバイザ、及びネットワークを介して通信可能な他の仮想デバイスなど、仮想デバイスも含まれ得る。
【０１０２】
伝送制御プロトコル／インターネットプロトコル（「ＴＣＰ／ＩＰ」）、ユーザデータグラムプロトコル（「ＵＤＰ」）、開放型システム間相互接続（「ＯＳＩ」）モデルの様々なレイヤで作動するプロトコル、ファイル転送プロトコル（「ＦＴＰ」）、ユニバーサルプラグアンドプレイ（「ＵｐｎＰ」）、ネットワークファイルシステム（「ＮＦＳ」）、共通インターネットファイルシステム（「ＣＩＦＳ」）、及びアップルトークなど、様々な市販のプロトコルのうちのいずれかを使用する通信に対応する、当業者によく知られる少なくとも１つのネットワークを、本開示の様々な実施形態は利用する。ネットワークは、例えば、ローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、衛星ネットワーク、及びこれらの任意の組み合わせであり得る。いくつかの実施形態では、コネクション型プロトコルは、ネットワークエンドポイント間で通信するために使用され得る。コネクション型プロトコル（時にコネクションベースプロトコルと呼ばれる）は、順序付きストリームでデータを送信することができる。コネクション型プロトコルは、信頼性のあるものでも信頼性のないものでもよい。例えば、ＴＣＰプロトコルは、信頼性のあるコネクション型プロトコルである。非同期転送モード（「ＡＴＭ」）及びフレームリレーは、信頼性のないコネクション型プロトコルである。コネクション型プロトコルは、保証された順序付けなしでパケットを送信するＵＤＰなどのパケット型プロトコルとは対照的である。
【０１０３】
ウェブサーバを使用する実施形態において、ウェブサーバは、ハイパーテキスト転送プロトコル（「ＨＴＴＰ」）サーバ、ＦＴＰサーバ、共通ゲートウェイインタフェース（「ＣＧＩ」）サーバ、データサーバ、Ｊａｖａ（登録商標）サーバ、Ａｐａｃｈｅサーバ、及びビジネスアプリケーションサーバを含む様々なサーバまたは中階層アプリケーションのうちのいずれかを実行することができる。サーバ（複数可）はまた、Ｊａｖａ（登録商標）、Ｃ、Ｃ＃、もしくはＣ＋＋などの任意のプログラミング言語、またはＲｕｂｙ、ＰＨＰ、Ｐｅｒｌ、Ｐｙｔｈｏｎ、もしくはＴＣＬなどの任意のスクリプト言語、ならびにこれらの組み合せで書かれた１つ以上のスクリプトもしくはプログラムとして実装され得る１つ以上のウェブアプリケーションを実行することなどにより、ユーザデバイスからの要求に応じてプログラムまたはスクリプトを実行可能であり得る。サーバ（複数可）には、Ｏｒａｃｌｅ（登録商標）、Ｍｉｃｒｏｓｏｆｔ（登録商標）、Ｓｙｂａｓｅ（登録商標）、及びＩＢＭ（登録商標）から市販されるデータベースサーバ、ならびにＭｙＳＱＬ、Ｐｏｓｔｇｒｅｓ、ＳＱＬｉｔｅ、ＭｏｎｇｏＤＢなどのオープンソースサーバ、及び構造化データまたは非構造化データの記憶、取得、及びアクセスを実行可能な任意の他のサーバを含むがこれに限定されないデータベースサーバも含まれ得る。データベースサーバには、テーブルベースサーバ、文書ベースサーバ、非構造化サーバ、リレーショナルサーバ、非リレーショナルサーバ、もしくはこれらの組み合わせ、及び／または他のデータベースサーバが含まれ得る。
【０１０４】
環境には、前述のように、様々なデータストア、ならびに他のメモリ及び記憶媒体が含まれ得る。これらは、コンピュータのうちの１つ以上のコンピュータのローカルにある（及び／または中に存在する）記憶媒体上、あるいはネットワーク上でコンピュータのうちのいずれかまたは全てから遠隔にある記憶媒体上など、様々な場所に存在し得る。実施形態の特定集合において、情報は、当業者によく知られるストレージエリアネットワーク（「ＳＡＮ」）に存在し得る。同様に、コンピュータ、サーバ、または他のネットワークデバイスに属する機能を実行するために必要な任意のファイルは、ローカル及び／または遠隔に適宜記憶され得る。システムがコンピュータ化デバイスを含む場合、そのようなデバイスはそれぞれ、例えば少なくとも１つの中央処理装置（「ＣＰＵ」または「プロセッサ」）と、少なくとも１つの入力デバイス（例えばマウス、キーボード、コントローラ、タッチスクリーン、またはキーパッド）と、少なくとも１つの出力デバイス（例えばディスプレイデバイス、プリンタ、またはスピーカ）とを含む、バスを介して電気的に接続され得るハードウェア要素を含み得る。このようなシステムはまた、ディスクドライブ、光学ストレージデバイス、及びランダムアクセスメモリ（「ＲＡＭ」）もしくは読み出し専用メモリ（「ＲＯＭ」）、ならびに着脱可能媒体デバイス、メモリカード、フラッシュカードなどのソリッドステートストレージデバイスといった、１つ以上のストレージデバイスを含み得る。
【０１０５】
このようなデバイスはまた、前述のように、コンピュータ可読記憶媒体リーダ、通信デバイス（例えばモデム、ネットワークカード（無線または有線）、赤外線通信デバイスなど）、及び作業メモリを含み得る。コンピュータ可読記憶媒体リーダは、コンピュータ可読情報を一時的及び／またはより永久的に保有、記憶、送信、及び取得するための遠隔、ローカル、固定、及び／または着脱可能のストレージデバイスならびに記憶媒体に相当するコンピュータ可読記憶媒体と接続され得る、またはそのようなコンピュータ可読記憶媒体を受け入れるように構成され得る。システム及び様々なデバイスはまた、通常、クライアントアプリケーションまたはウェブブラウザなどのオペレーティングシステム及びアプリケーションプログラムを含む、少なくとも１つの作業メモリデバイス内に配置された多数のソフトウェアアプリケーション、モジュール、サービス、または他の要素を含む。さらに、カスタマイズされたハードウェアも使用され、及び／または特定要素がハードウェア、ソフトウェア（アプレットなどのポータブルソフトウェアを含む）、またはその両方に実装され得る。さらに、ネットワーク入力／出力デバイスなどの他のコンピューティングデバイスへの接続が、採用され得る。
【０１０６】
コードまたはコードの一部を含む記憶媒体及びコンピュータ可読媒体には、当技術分野において既に知られている、または使用されている任意の好適な媒体が含まれ、好適な媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、または他データなどの情報の記憶及び／または送信に関する任意の方法または技術で実施される揮発性及び不揮発性、着脱可能及び着脱不可能の媒体が挙げられるがこれに限定されない記憶媒体及び通信媒体が含まれる。これには、ＲＡＭ、ＲＯＭ、電気的消去可能プログラマブル読み出し専用メモリ（「ＥＥＰＲＯＭ」）、フラッシュメモリ、もしくは他のメモリ技術、読み出し専用コンパクトディスク（「ＣＤ−ＲＯＭ」）、デジタル多用途ディスク（ＤＶＤ）、もしくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、または所望の情報を記憶するために使用可能であり、システムデバイスによりアクセス可能である任意の他の媒体が含まれる。本明細書において提供される開示及び教示に基づいて、当業者は、様々な実施形態を実施する他のやり方及び／または方法を理解するであろう。
【０１０７】
従って、明細書及び図面は、限定的ではなく例示的な意味で解釈されるべきである。しかしながら、明細書及び図面に対し、特許請求の範囲に明記される本発明のより広い趣旨及び範囲から逸脱せずに、様々な修正及び変更が行われてもよいことは、明白である。
【０１０８】
前述のように、多数の暗号化技術が使用され得、多数の変形形態は、対称及び／または非対称暗号プリミティブを利用する。対称キーアルゴリズムは、ブロック暗号、ストリーム暗号、及び電子署名スキームを含む、データに暗号動作を行う様々なスキームを含み得る。例示的な対称キーアルゴリズムには、高度暗号化規格（ＡＥＳ）、データ暗号化規格（ＤＥＳ）、トリプルＤＥＳ（３ＤＥＳ）、Ｓｅｒｐｅｎｔ、Ｔｗｏｆｉｓｈ、ｂｌｏｗｆｉｓｈ、ＣＡＳＴ５、ＲＣ４、及び国際データ暗号化アルゴリズム（ＩＤＥＡ）が挙げられる。対称キーアルゴリズムにはまた、一方向関数の出力を生成するのに使用されるものも含まれ、ハッシュベースメッセージ認証符号（ＨＭＡＣ）、一般のメッセージ認証符号（ＭＡＣ）、ＰＢＫＤＦ２、及びＢｃｒｙｐｔを使用するアルゴリズムも含まれ得る。非対称キーアルゴリズムも、データに暗号動作を行う様々なスキームを含み得る。例示的なアルゴリズムには、Ｄｉｆｆｉｅ‐Ｈｅｌｌｍａｎキー交換プロトコル、電子署名規格（ＤＳＳ）、電子署名アルゴリズム、ＥｌＧａｍａｌアルゴリズム、様々な楕円曲線アルゴリズム、パスワード認証されたキー共有技術、Ｐａｉｌｌｉｅｒ暗号システム、ＲＳＡ暗号アルゴリズム（ＰＫＣＳ＃１）、Ｃｒａｍｅｒ‐Ｓｈｏｕｐ暗号システム、ＹＡＫ認証キー共有プロトコル、ＮＴＲＵＥｎｃｒｙｐｔ暗号システム、及びＭｃＥｌｉｅｃｅ暗号システムなどを利用するものが挙げられる。楕円曲線アルゴリズムには、楕円曲線Ｄｉｆｆｉｅ‐Ｈｅｌｌｍａｎ（ＥＣＤＨ）キー共有スキーム、楕円曲線統合暗号化スキーム（ＥＣＩＥＳ）、楕円曲線電子署名アルゴリズム（ＥＣＤＳＡ）、ＥＣＭＱＶキー共有スキーム、及びＥＣＱＶ暗黙的証明書スキームが含まれる。他のアルゴリズム及びアルゴリズムの組み合わせもまた、本開示の範囲内であるとみなされ、前述が網羅的なリストであることは意図されていない。他の例示的な暗号化アルゴリズムには、ブロック暗号、及び初期化ベクトルを利用する様々なモードが含まれ、例えば、暗号ブロック連鎖（ＣＢＣ）モード、伝搬暗号ブロック連鎖（ＰＣＢＣ）モード、暗号フィードバックモード（ＣＦＢ）、出力フィードバック（ＯＦＢ）モード、カウンタ（ＣＴＲ）モード、及び他のモードなどが挙げられる。他のモードには、認証された暗号化モードなどがあり、例えば、拡張暗号文ブロック連鎖（ＸＣＢＣ）モード、完全性認知ＣＢＣ（ＩＡＣＢＣ）モード、完全性認知並列化可能（ＩＡＰＭ）モード、オフセットコードブック（ＯＣＢ）モード、ＥＡＸ及びＥＡＸプライムモード、Ｃａｒｔｅｒ‐Ｗｅｇｍａｎ＋ＣＴＲ（ＣＷＣ）モード、ＣＢＣ‐ＭＡＣによるカウンタ（ＣＣＭ）モード、ガロア／カウンタ（ＧＣＭ）モードが挙げられる。一般に、本開示の実施形態は、暗号化通信セッションを確立するために、ＳＳＬまたはＴＬＳプロトコルなどの様々なプロトコル、及びこれらに対する拡張、例えばコメント要求（Ｒｅｑｕｅｓｔ  ｆｏｒ  Ｃｏｍｍｅｎｔｓ（ＲＦＣ））２２４６、ＲＦＣ２５９５、ＲＦＣ２７１２、ＲＦＣ２８１７、ＲＦＣ２８１８、ＲＦＣ３２０７、ＲＦＣ３２６８、ＲＦＣ３５４６、ＲＦＣ３７４９、ＲＦＣ３９４３、ＲＦＣ４１３２、ＲＦＣ４１６２、��ＦＣ４２１７、ＲＦＣ４２７９、ＲＦＣ４３４７、ＲＦＣ４３６６、ＲＦＣ４４９２、ＲＦＣ４６８０、ＲＦＣ４６８１、ＲＦＣ４７８５、ＲＦＣ５０５４、ＲＦＣ５０７７、ＲＦＣ５０８１、ＲＦＣ５２３８、ＲＦＣ５２４６、ＲＦＣ５２８８、ＲＦＣ５２８９、ＲＦＣ５７４６、ＲＦＣ５７６４、ＲＦＣ５８７８、ＲＦＣ５９３２、ＲＦＣ６０８３、ＲＦＣ６０６６、ＲＦＣ６０９１、ＲＦＣ６１７６、ＲＦＣ６２０９、ＲＦＣ６３４７、ＲＦＣ６３６７、ＲＦＣ６４６０、ＲＦＣ６６５５、ＲＦＣ７０２７、及びＲＦＣ７３６６に定義されているものを使用することができ、これらは参照により本明細書に組み込まれる。開放型システム間相互接続（ＯＳＩ）モデルのアプリケーション層の下で実施される他のプロトコルも、本明細書で説明される技術を利用するために、使用及び／または適合され得る。本明細書で説明される技術は、リアルタイムメッセージングプロトコル（ＲＴＭＰ）、ポイントツーポイントトンネリングプロトコル（ＰＰＴＰ）、レイヤ２トンネリングプロトコル、様々な仮想プライベートネットワーク（ＶＰＮ）プロトコル、インターネットプロトコルセキュリティ（例えばＲＦＣ１８２５〜１８２９、ＲＦＣ２４０１、ＲＦＣ２４１２、ＲＦＣ４３０１、ＲＦＣ４３０９、及びＲＦＣ４３０３に定義されるもの）、及び他のプロトコル、例えばハンドシェイクを含む安全な通信のためのプロトコルなど、別のプロトコルにも適応可能であることに、留意されたい。
【０１０９】
本開示の実施形態は、以下の条項を考慮して説明され得る。
１．クライアントとの暗号化保護された通信セッションを確立することと、
前記クライアントから前記暗号化保護された通信セッションを介して、バックエンドサービスエンドポイントへ送られる通信において、データオブジェクトを受信することと、
機密データを検出することを可能にする構成情報に少なくとも部分的に基づいて、前記データオブジェクトの一部が機密データを含むと判定することと、
前記部分的データオブジェクトを暗号化して、暗号化部分を得ることと、
前記暗号化部分を含むように前記データオブジェクトを更新し、これにより修正されたデータオブジェクトを得ることと、
前記修正されたデータオブジェクトを含む、前記バックエンドサービスエンドポイントへの要求であって、前記機密データが保護されたことを示す情報を含む前記要求を生成することと、
前記要求を前記バックエンドサービスエンドサービスに送信することと
を含む、コンピュータ実施方法。
【０１１０】
２．前記暗号化保護された通信セッションを介して、第２のデータオブジェクトを受信することと、
前記第２のデータオブジェクトが機密データを含まないと判定することと、
前記第２のデータオブジェクトを含む第２の要求を、前記バックエンドサービスエンドポイントに送信することと
をさらに含む、条項１に記載のコンピュータ実施方法。
【０１１１】
３．前記コンピュータ実施方法は、プロセスと他のリソースとの間の対話を制限するカーネルモジュールを含む安全な環境内で実施される、条項１または２に記載のコンピュータ実施方法。
【０１１２】
４．データが機密であると特定されることを示す構成情報、機密であると特定されたデータを暗号化するための暗号化情報、及び前記バックエンドサービスに対応付けられた暗号化キーを受信することを、さらに含む、条項１〜３のいずれか１項に記載のコンピュータ実施方法。
【０１１３】
５．１つ以上のサービスを実施する少なくとも１つのコンピューティングデバイスを備えるシステムであって、前記１つ以上のサービスは、
暗号化保護された通信セッションを介して、宛先に送られるデータオブジェクト集合を受信し、
前記データオブジェクト集合のうちのデータオブジェクト部分集合が機密データを含むことを、構成情報に少なくとも部分的に基づいて判定し、前記構成情報は、機密データの検出を可能にし、前記機密データに対応付けられたタイプに少なくとも部分的に基づいて、機密データを送信するエンドポイントを示し、
前記データオブジェクト部分集合を難読化して、前記エンドポイントに対応付けられたバックエンドサービスにより、前記バックエンドサービスにより指定された前記暗号化キーで、復号化することができる暗号化されたデータオブジェクト集合を生成し、
前記データオブジェクト集合が前記暗号化されたデータオブジェクト集合を含むように修正し、これにより修正されたデータオブジェクト集合を生成し、
前記修正したデータオブジェクト集合をエンドポイントに送信する、
前記システム。
【０１１４】
６．前記暗号化されたデータオブジェクト集合を生成することはさらに、対称暗号化アルゴリズムに従って前記暗号化キーにより、前記データオブジェクト部分集合を暗号化することを含む、条項５に記載のシステム。
【０１１５】
７．前記暗号化保護された通信セッションはさらに、ハイパーテキスト転送プロトコルセキュア（ＨＴＴＰＳ）接続を含む、条項５または６に記載のシステム。
【０１１６】
８．前記宛先はさらに、公的にアドレス指定可能な通信ネットワークを介して顧客がアクセス可能なサービスエンドポイントを含む、条項５〜７のいずれか１項に記載のシステム。
【０１１７】
９．前記構成情報はさらに、前記エンドポイントが属するエンドポイント集合に対して、機密データを暗号化するために使用する、前記機密データに対応付けられたセキュリティポリシーを満たす暗号化アルゴリズムと、１つ以上の暗号化キーを定義する、条項５〜８のいずれか１項に記載のシステム。
【０１１８】
１０．前記少なくとも１つのコンピューティングデバイスは、前記１つ以上のサービスを、前記構成情報に少なくとも部分的に基づいて、前記少なくとも１つのコンピューティングデバイスにより実行される少なくとも１つの別のプロセスから隔離された環境において、実施する、条項５〜９のいずれか１項に記載のシステム。
【０１１９】
１１．前記構成情報は、機密データであるデータのタイプを示す、条項５〜１０のいずれか１項に記載のシステム。
【０１２０】
１２．前記暗号化されたデータオブジェクト集合を生成することはさらに、前記構成情報から取得された暗号化材料を使用して、前記データオブジェクト部分集合を暗号化することを含む、条項５〜１１のいずれか１項に記載のシステム。
【０１２１】
１３．前記構成情報において識別された暗号化キーを使用して前記データオブジェクト部分集合を暗号化することにより、前記データオブジェクト部分集合は難読化される、条項５〜１２のいずれか１項に記載のシステム。
【０１２２】
１４．実行可能命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記実行可能命令がコンピュータシステムの１つ以上のプロセッサに実行されることにより、前記コンピュータシステムは少なくとも、
別のコンピュータシステムにより実施されるサービスエンドポイントに送られる暗号化されたデータオブジェクト集合を含む要求を、前記別のコンピュータシステムにより生成されたデータストリームにおいて受信し、
前記暗号化されたデータオブジェクト集合を復号化して、データオブジェクト集合を生成し、
前記コンピュータシステムと前記サービスエンドポイントとの間の１つ以上の経路沿いの１つ以上の仲介者に公開されるべきではないデータを、前記データオブジェクト集合のうちの１つ以上のデータオブジェクトが含むと判定し、
前記１つ以上のデータオブジェクトを暗号化して、１つ以上の暗号化されたデータオブジェクトを生成し、
前記データオブジェクト集合のうちの前記１つ以上のデータオブジェクトを、前記１つ以上の暗号化されたデータオブジェクトで少なくとも置き換えることにより、前記要求を修正し、
前記要求を前記サービスエンドポイントに転送する、
前記非一時的コンピュータ可読記憶媒体。
【０１２３】
１５．前記命令はさらに、前記１つ以上のプロセッサに実行されることにより、前記コンピュータシステムに、前記要求の送信を担当するクライアントデバイスと前記サービスエンドポイントと、暗号化保護された通信セッションを確立させる命令を含む、条項１４に記載の非一時的コンピュータ可読記憶媒体。
【０１２４】
１６．前記サービスエンドポイントは、複数のサービスのうちのサービスに対応付けられ、前記コンピュータシステムは、前記サービスの要求を処理する、条項１４または１５に記載の非一時的コンピュータ可読記憶媒体。
【０１２５】
１７．前記要求は、ＨＴＴＰ  ＰＯＳＴ要求である、条項１４〜１６のいずれか１項に記載の非一時的コンピュータ可読記憶媒体。
【０１２６】
１８．前記命令はさらに、前記１つ以上のプロセッサに実行されることにより、前記コンピュータシステムに、前記要求に含まれる１つ以上のヘッダに少なくとも部分的に基づいて、前記要求が前記サービスエンドポイントに送られることを判定させる命令を含む、条項１４〜１７のいずれか１項に記載の非一時的コンピュータ可読記憶媒体。
【０１２７】
１９．前記データオブジェクト集合のうちの前記１つ以上のデータオブジェクトが公開されるべきではないデータを含むことを、前記コンピュータシステムに判定させる前記命令はさらに、前記１つ以上のデータオブジェクトが、前記要求に対応付けられたユーザの支払情報を含むことを、前記コンピュータシステムに判定させる命令を含む、条項１４〜１８のいずれか１項に記載の非一時的コンピュータ可読記憶媒体。
【０１２８】
２０．前記データオブジェクト集合のうちの前記１つ以上のデータオブジェクトが公開されるべきではないデータを含むことを、前記コンピュータシステムに判定させる前記命令はさらに、前記１つ以上のデータオブジェクトが、支払情報を含むことを、前記コンピュータシステムに判定させる命令を含む、条項１４〜１９のいずれか１項に記載の非一時的コンピュータ可読記憶媒体。
【０１２９】
２１．前記データオブジェクト集合のうちの前記１つ以上のデータオブジェクトが公開されるべきではないデータを含むことを、前記コンピュータシステムに判定させる前記命令はさらに、前記１つ以上のデータオブジェクトが公開されるべきではないデータを含むことを、前記１つ以上のデータオブジェクトに対応付けられた１つ以上のフィールドに少なくとも部分的に基づいて、前記コンピュータシステムに判定させる命令を含む、条項１４〜２０のいずれか１項に記載の非一時的コンピュータ可読記憶媒体。
【０１３０】
２２．前記コンピュータシステムはネットワークエッジデバイスである、条項１４に記載の非一時的コンピュータ可読記憶媒体。
【０１３１】
２３．バックエンドサービスによりクライアントデバイスに向けて送信されたデータストリームから、データを受信することと、
前記データストリームから取得された前記データ内に、暗号化されたデータオブジェクトを検出することと、
前記暗号化されたデータオブジェクトを復号化して、復号化されたデータオブジェクトを取得することと、
前記復号化されたデータオブジェクトを前記データストリームに挿入して、修正されたデータストリームを得ることと、
前記修正されたデータストリームを、前記クライアントデバイスに送信することと
を含む、コンピュータ実施方法。
【０１３２】
２４．前記修正されたデータストリームはさらにウェブページを含み、前記方法は、前記復号化されたデータオブジェクトを前記データストリームに挿入する前に、前記データストリームをレンダリングすることを含む、条項２３に記載のコンピュータ実施方法。
【０１３３】
２５．前記暗号化されたデータオブジェクトを復号化することはさらに、前記暗号化されたデータオブジェクトから取得された暗号化された暗号化キーを復号化するように、要求を暗号化キー管理サービスに送信することを含む、条項２３または２４に記載のコンピュータ実施方法。
【０１３４】
２６．前記暗号化されたデータオブジェクトを検出することはさらに、前記データストリームから、前記暗号化されたデータオブジェクトを示すフラグを取得することを含む、条項２３〜２５のいずれか１項に記載のコンピュータ実施方法。
【０１３５】
２７．１つ以上のサービスを実施する少なくとも１つのコンピューティングデバイスを備えるシステムであって、前記１つ以上のサービスは、
エンドポイント宛てのデータオブジェクト集合を、コンテンツに埋め込むために、バックエンドサービスから受信し、
前記データオブジェクト集合内に、プロパティを有する前記データオブジェクト集合のデータオブジェクト部分集合を検出し、
前記データオブジェクト部分集合を修正して、修正されたデータオブジェクト集合を生成し、
前記修正されたデータオブジェクト集合を前記コンテンツに含めて、更新されたコンテンツを取得し、
前記更新されたコンテンツを、前記エンドポイントに転送する、
前記システム。
【０１３６】
２８．前記データオブジェクト部分集合を修正することはさらに、前記データオブジェクト部分集合を復号化することを含む、条項２７に記載のシステム。
【０１３７】
２９．前記データオブジェクト部分集合を復号化することはさらに、前記データオブジェクト部分集合を復号化するように、アプリケーションプログラムインターフェース（ＡＰＩ）コマンドをキー管理サービスに送信することを含む、条項２７または２８に記載のシステム。
【０１３８】
３０．前記データオブジェクト部分集合を復号化することはさらに、前記少なくとも１つのコンピューティングシステムの処理により実行される復号化モジュールから、復号化されたデータを取得することを含む、条項２７〜２９のいずれか１項に記載のシステム。
【０１３９】
３１．前記プロセスは、前記少なくとも１つのコンピューティングデバイスにより実行されるオペレーティングシステムが維持する隔離されたコンピューティング環境において実行される、条項２７〜３０のいずれか１項に記載のシステム。
【０１４０】
３２．前記システムは、前記データオブジェクト集合を含むデータストリーム内のフラグにより、前記データオブジェクト部分集合を検出し、前記フラグは、前記データオブジェクト部分集合の開始位置及び終了位置を示す、条項２７〜３１のいずれか１項に記載のシステム。
【０１４１】
３３．前記１つ以上のサービスはさらに、前記データオブジェクト集合の第２のデータオブジェクト部分集合を、前記第２のデータオブジェクト部分集合内の個別データオブジェクトを修正することなく、前記エンドポイントに転送する、条項２７〜３２のいずれか１項に記載のシステム。
【０１４２】
３４．前記データオブジェクト部分集合を修正することはさらに、前記データオブジェクト部分集合により表示される値を、ウェブページの要素としてレンダリングされたものに修正することを含む、条項２７〜３３のいずれか１項に記載のシステム。
【０１４３】
３５．実行可能命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記実行可能命令がコンピュータシステムの１つ以上のプロセッサに実行されることにより、前記コンピュータシステムは少なくとも、
宛先に対応付けられたデータストリームを受信し、
前記データストリーム内の難読化されたデータを検出し、
前記難読化されたデータを難読化解除して、平文データを取得し、
前記データストリーム内の前記データの少なくとも一部を、前記平文データで置き換え、
前記宛先に前記データストリームを提供する、
前記非一時的コンピュータ可読記憶媒体。
【０１４４】
３６．前記命令はさらに、前記１つ以上のプロセッサに実行されることにより、前記コンピュータシステムに、前記平文データが生成されるまで、前記データストリームの処理を遅延させる命令を含む、条項３５に記載の非一時的コンピュータ可読記憶媒体。
【０１４５】
３７．前記難読化データは、暗号化により難読化されており、前記命令はさらに、前記１つ以上のプロセッサに実行されることにより、前記コンピュータシステムに、前記暗号化された難読化データを復号化するためのキー材料を含む構成情報を取得させる命令を含む、条項３５または３６に記載の非一時的コンピュータ可読記憶媒体。
【０１４６】
３８．前記命令はさらに、前記１つ以上のプロセッサに実行されることにより、前記コンピュータシステムに、バックエンドサービスに対応付けられた署名を検証させて、前記宛先が前記データストリームの受信を認可されていることを判定させる命令を含む、条項３５〜３７のいずれか１項に記載の非一時的コンピュータ可読記憶媒体。
【０１４７】
３９．前記命令はさらに、前記１つ以上のプロセッサに実行されることにより、前記コンピュータシステムに、前記署名の検証に失敗した結果、前記データストリームから前記平文データを削除させる命令を含む、条項３５〜３８のいずれか１項に記載の非一時的コンピュータ可読記憶媒体。
【０１４８】
４０．前記命令はさらに、前記１つ以上のプロセッサに実行されることにより、前記コンピュータシステムに、前記宛先と暗号化保護された通信を確立させる命令を含み、
前記データストリームは、前記暗号化保護された通信を介して前記宛先に提供される、
条項３５〜３８のいずれか１項に記載の非一時的コンピュータ可読記憶媒体。
【０１４９】
４１．前記データストリームはウェブサイトのコンテンツを含む、条項３５〜４０のいずれか１項に記載の非一時的コンピュータ可読記憶媒体。
【０１５０】
４２．前記難読化されたデータは、機密データに分類されるデータを含む、条項３５〜４１のいずれか１項に記載の非一時的コンピュータ可読記憶媒体。
【０１５１】
４３．前記コンピュータシステムはネットワークエッジデバイスである、条項３５〜４２のいずれか１項に記載の非一時的コンピュータ可読記憶媒体。
【０１５２】
４４．ネットワークエッジデバイスにて、複数のバックエンドサービスのうちのバックエンドサービスに送られる第１の要求を受信することと、
機密データの検出を可能にする前記バックエンドサービスに関する構成情報に少なくとも部分的に基づいて、前記要求に含まれる平文形式の機密データアイテムを検出することと、
前記機密データアイテムをデータ暗号化モジュールに提供して、暗号化された機密データアイテムを取得することと、
前記暗号化された機密データアイテムを含むが、平文形式の前記機密データアイテムは有さないように、前記第１の要求に少なくとも部分的に基づいて、第２の要求を生成することと、
前記第１の要求を前記バックエンドサービスに送信することなく、前記第２の要求を前記バックエンドサービスに送信することと
を含むコンピュータ実施方法。
【０１５３】
４５．前記コンピュータ実施方法はさらに、構成情報を取得して、前記ネットワークエッジデバイス内で隔離された環境を実行させることを含み、
前記暗号化モジュールは、前記隔離された環境内で実行される、
条項４４に記載のコンピュータ実施方法。
【０１５４】
４６．前記バックエンドサービスに対する前記第２の要求を生成することはさらに、前記バックエンドサービスが前記機密データを他のデータから区別することを可能にするために、前記機密データの長さを前記要求内で示すことを含む、条項４４または４５に記載のコンピュータ実施方法。
【０１５５】
４７．前記第２の要求を生成することはさらに、長さ情報により前記機密データが、長さ情報を有さない他の情報から区別可能となるように、前記第２の要求のフォーマットを修正することを含む、条項４４〜４６のいずれか１項に記載のコンピュータ実施方法。
【０１５６】
４８．１つ以上のサービスを実施する少なくとも１つのコンピューティングデバイスを備えるシステムであって、前記１つ以上のサービスは、
エッジデバイスにて、バックエンドサービスにより生成されたデータストリームに対応付けられた要求を取得し、
構成情報に少なくとも部分的に基づいて、前記要求が機密データを含むと判定し、
前記機密データを難読化して、難読化された機密データを生成し、
前記要求に含まれる前記機密データを、前記難読化された機密データで置き換えるように、第２の要求を生成し、
前記第２の要求を、前記バックエンドサービスに送信する、
前記システム。
【０１５７】
４９．前記機密データを難読化することはさらに、前記バックエンドサービスに対応付けられた公開キーを使用して、前記機密データを暗号化することを含む、条項４８に記載のシステム。
【０１５８】
５０．前記要求が機密データを含むと判定することはさらに、前記要求に含まれるデータオブジェクトのデータタイプに少なくとも部分的に基づいて、前記要求が機密データを含むと判定することを含む、条項４８または４９に記載のシステム。
【０１５９】
５１．前記要求が機密データを含むと判定することは、前記要求に含まれるデータの一部に対応付けられたフラグに少なくとも部分的に基づき、前記フラグは前記構成情報内に示される、条項４８〜５０のいずれか１項に記載のシステム。
【０１６０】
５２．前記機密データを難読化することはさらに、コンピューティングリソースサービスプロバイダにより実施される暗号化キー管理サービスに、アプリケーションプログラムインターフェース（ＡＰＩ）要求を送信することを伴うプロセスを使用して、前記機密データを暗号化することを含む、条項４８〜５１のいずれか１項に記載のシステム。
【０１６１】
５３．前記機密データは、第１のキーで暗号化され、前記キー管理サービスは、前記第１のキーを第２のキーで暗号化して、暗号化された第１のキーを生成し、
前記第２の要求を生成することはさらに、前記暗号化された第１のキーを前記第２の要求に含めることを含む、
条項５２に記載のシステム。
【０１６２】
５４．前記第２の要求を生成することはさらに、前記バックエンドサービスに対応付けられた認証情報を前記第２の要求に含めることを含む、条項４８〜５３のいずれか１項に記載のシステム。
【０１６３】
５５．前記エッジデバイスは、コンテンツ配信ネットワークのコンピューティングデバイスである、条項４８〜５４のいずれか１項に記載のシステム。
【０１６４】
５６．実行可能命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記実行可能命令がコンピュータシステムの１つ以上のプロセッサに実行されることにより、前記コンピュータシステムは少なくとも、
ネットワークエッジデバイスにて、データストリームに含まれる要求を受信し、
前記要求が機密データを含むことを示す前記要求に含まれる情報に少なくとも部分的に基づいて、前記要求の一部を難読化することを決定し、
前記機密データを難読化して、難読化された機密データオブジェクトを生成し、
前記機密データを前記難読化された機密データオブジェクトで置き換えるように前記要求を処理して、修正された要求を生成し、
前記修正された要求を、宛先に送信する、
前記非一時的コンピュータ可読記憶媒体。
【０１６５】
５７．前記コンピュータシステムに前記要求を受信させる前記命令はさらに、前記コンピュータシステムに、クライアントデバイス及び前記ネットワークエッジデバイスと暗号化保護された通信セッションを確立させ、前記暗号化保護された通信セッションを介して前記要求を受信させる命令を含む、条項５６に記載の非一時的コンピュータ可読記憶媒体。
【０１６６】
５８．前記ネットワークエッジデバイスは、複数のバックエンドサービスに関する異なる構成情報を含む、条項５６または５７に記載の非一時的コンピュータ可読記憶媒体。
【０１６７】
５９．前記複数のバックエンドサービスに関する前記異なる構成情報は、前記ネットワークエッジデバイスに、前記異なる構成情報に少なくとも部分的に基づいて、複数の隔離されたプロセスを実行させる、条項５６〜５８のいずれか１項に記載の非一時的コンピュータ可読記憶媒体。
【０１６８】
６０．前記ネットワークエッジデバイスとは異なるコンピューティングデバイスにより実行され、かつ前記ネットワークエッジデバイスに接続された暗号化モジュールを使用して、機密データは難読化される、条項５６〜５９のいずれか１項に記載の非一時的コンピュータ可読記憶媒体。
【０１６９】
６１．前記コンピューティングデバイスは、暗号化保護された通信チャネルを使用して前記ネットワークエッジデバイスに接続される、条項６０に記載の非一時的コンピュータ可読記憶媒体。
【０１７０】
６２．前記機密データを難読化することはさらに、暗号化モジュールがサービスコールを暗号化キー管理システムに送信することを含む、条項５６〜６１のいずれか１項に記載の非一時的コンピュータ可読記憶媒体。
【０１７１】
６３．前記暗号化モジュールはさらに、前記ネットワークエッジデバイスにより実行されるモジュールを含む、条項５６〜６２のいずれか１項に記載の非一時的コンピュータ可読記憶媒体。
【０１７２】
他の変形形態は、本開示の趣旨の範囲に含まれる。
【０１７３】
従って、開示される技術は、様々な修正及び代替的構造を許容可能であるが、これらのうちの特定の例示的な実施形態が、図面に示され、詳しく前述されている。しかしながら、開示される特定の形式（複数可）に本発明を限定する意図はなく、それとは逆に、添付の特許請求の範囲で定義される本発明の趣旨と範囲に入る全ての修正、代替的構造、及び同等物を対象とする意図があることを、理解されたい。
【０１７４】
開示される実施形態を説明する文脈における（特に以下の特許請求の範囲の文脈における）用語「ａ」、「ａｎ」、「ｔｈｅ」、及び同様の指示語の使用は、本明細書において特に指示がないまたは明らかに文脈と矛盾しない限り、単数と複数の両方を対象にすると解釈されるべきである。「ｃｏｍｐｒｉｓｉｎｇ」、「ｈａｖｉｎｇ」、「ｉｎｃｌｕｄｉｎｇ」、及び「ｃｏｎｔａｉｎｉｎｇ」の用語は、特に断りのない限り、無制限用語（すなわち「含むがこれに限定されない」という意味）として解釈されるべきである。用語「接続される（ｃｏｎｎｅｃｔｅｄ）」は、修飾されず物理的結合を指す場合、介在するものがあるとしても、部分的または全体的に、何かの中に含まれる、何かへ取り付けられる、または何かと共に結合される、と解釈されるべきである。本明細書における値の範囲の詳述は、本明細書において特に指示のない限り、範囲内に入る個々の値を個別に指す簡略な方法として用いられることを単に意図し、そして個々の値は、本明細書において個別に詳述されているかのように明細書に組み込まれるものとする。用語「集合（ｓｅｔ）」（例えば「アイテムの集合」）または「部分集合（ｓｕｂｓｅｔ）」の使用は、特に明記がないまたは文脈と矛盾しない限り、１つ以上の要素を含む非空集合として解釈されるべきである。さらに、特に明記がないまたは文脈と矛盾しない限り、対応集合の「部分集合（ｓｕｂｓｅｔ）」の用語は、必ずしも対応集合の真部分集合を示すとは限らず、部分集合と対応集合が等しい場合もある。
【０１７５】
形式「Ａ、Ｂ、及びＣのうちの少なくとも１つ」または「Ａ、Ｂ及びＣのうちの少なくとも１つ」の語句などの接続的文体は、特に明記がないまたは明らかに文脈と矛盾しない限り、アイテム、名辞などが、ＡまたはＢまたはＣのいずれか、あるいはＡ及びＢ及びＣの集合の任意の非空部分集合であり得ることを示すように通常使用される文脈により理解される。例えば、３つの要素を有する集合の実施例において、接続的語句「Ａ、Ｂ、及びＣのうちの少なくとも１つ」及び「Ａ、Ｂ及びＣのうちの少なくとも１つ」は、｛Ａ｝、｛Ｂ｝、｛Ｃ｝、｛Ａ、Ｂ｝、｛Ａ、Ｃ｝、｛Ｂ、Ｃ｝、｛Ａ、Ｂ、Ｃ｝の以上の集合のうちのいずれかを指す。従って、このような接続的文体には通常、少なくとも１つのＡ、少なくとも１つのＢ、及び少なくとも１つのＣがそれぞれ、ある実施形態に存在する必要があることを意味する意図はない。
【０１７６】
本明細書において説明されるプロセスの動作は、本明細書において特に指示がないまたは明らかに文脈と矛盾しない限り、任意の好適な順序で行うことができる。本明細書において説明されるプロセス（あるいはそれらの変形形態及び／または組み合わせ）は、実行可能命令で構成される１つ以上のコンピュータシステムの制御下で実行され得、ハードウェアまたはそれらの組み合わせにより、１つ以上のプロセッサ上で集合的に実行されるコード（例えば実行可能命令、１つ以上のコンピュータプログラム、もしくは１つ以上のアプリケーション）として、実施され得る。コードは、例えば、１つ以上のプロセッサにより実行可能な複数の命令を含むコンピュータプログラムの形式で、コンピュータ可読記憶媒体に保存され得る。コンピュータ可読記憶媒体は、非一時的であり得る。いくつかの実施形態において、コードは、１つ以上の非一時的コンピュータ可読記憶媒体の集合に記憶され、非一時的コンピュータ可読記憶媒体は、コンピュータシステムの１つ以上のプロセッサにより実行されると（すなわち実行された結果）、前記コンピュータシステムに本明細書で説明される動作を実行させる実行可能命令を記憶している。非一時的コンピュータ可読記憶媒体の集合は、複数の非一時的コンピュータ可読記憶媒体を含み得、複数の非一時的コンピュータ可読記憶媒体の個々の非一時的記憶媒体のうちの１つ以上は、コードを全く有さない場合があり、一方、複数の非一時的コンピュータ可読記憶媒体は、コード全てを集合的に記憶する。さらに、いくつかの実施例では、実行可能命令は、異なる命令が異なるプロセッサにより実行されるように、実行される。実施例として、非一時的コンピュータ可読記憶媒体は、命令を記憶し得る。メインＣＰＵは、命令の一部を実行し得、グラフィックプロセッサユニットは、その他の命令を実行し得る。通常、コンピュータシステムの異なる構成要素は、別個のプロセッサを有し得、異なるプロセッサは、命令の異なる部分集合を実行し得る。
【０１７７】
従って、いくつかの実施例では、コンピュータシステムは、本明細書で説明されるプロセスの動作を単一または集合で実行する１つ以上のサービスを実施するように構成される。このようなコンピュータシステムは、例えば、動作の実行を可能にする適用可能なハードウェア及び／またはソフトウェアで構成され得る。さらに、本開示の様々な実施形態を実施するコンピュータシステムは、いくつかの実施例では、単一のデバイスであり得、他の実施例では、分散コンピュータシステムが本明細書で説明される動作を実行するように、及び単一のデバイスが全ての動作を実行し得ないように、異なる動作を行う複数のデバイスを備える分散コンピュータシステムであり得る。
【０１７８】
本明細書において提供されるあらゆる全ての実施例または例示的文体（例えば「など」）の使用は、単に本発明の実施形態をより分かり易くすることを意図し、特に請求のない限り本発明の範囲を限定するものではない。本明細書におけるどの文体も、いずれの非請求要素が本発明の実行に必須であるかのように解釈されるべきではない。
【０１７９】
本明細書において説明される本開示の実施形態には、本発明者には既知の、本発明を実行するための最適な形態が含まれる。これらの実施形態の変形形態は、前述の説明を読むことで、当業者に明らかとなるだろう。本発明者は、当業者がこのような変形形態を適宜採用することを見込み、また本発明者は、本開示の実施形態が本明細書において具体的に説明される以外の方法で実践されることを想定する。従って、本開示の範囲は、本明細書に添付される特許請求の範囲において詳述される内容の全ての修正物及び均等物を、適用法令により認可したものとして含む。さらに、これらの全ての可能な変形形態における前述の要素のいずれの組み合わせも、本明細書において特に指示がないまたは明らかに文脈と矛盾しない限り、本開示の範囲に含まれる。
【０１８０】
本明細書において引用される公報、特許出願、及び特許を含む全ての参考文献は、各参考文献が参照により組み込まれるように個別に具体的に示され、かつその全体が本明細書において記載されるのと同程度に、参照により本明細書に組み込まれるものとする。
【図１】
0006844876.tif 000002
【図２】
0006844876.tif 000003
【図３】
0006844876.tif 000004
【図４】
0006844876.tif 000005
【図５】
0006844876.tif 000006
【図６】
0006844876.tif 000007
【図７】
0006844876.tif 000008
【図８】
0006844876.tif 000009
【図９】
0006844876.tif 000010
【図１０】
0006844876.tif 000011
【図１１】
0006844876.tif 000012
【図１２】
0006844876.tif 000013
【図１３】
0006844876.tif 000014
【図１４】
0006844876.tif 000015