トークン化と暗号化は、インターネット上での送信や保存時に情報を保護する手段として、しばしば一緒に語られることがあります。トークン化と暗号化は、組織独自のデータ・セキュリティ・ポリシーを満たすだけでなく、PCI DSS、HIPAA-HITECH、GLBA、ITAR、EU GDPRなどの規制要件を満たすためにも役立ちます。トークン化と暗号化はどちらも効果的なデータ難読化技術ですが、同じものではありませんし、互換性があるわけでもありません。それぞれの技術には長所と短所があり、それらに基づいて、さまざまな状況下でデータを保護するためにどちらか一方を優先的に使用する必要があります。電子決済データのように、暗号化とトークン化の両方を使用してエンドツーエンドプロセスを保護するケースもあります。
暗号化 |
トークン化 |
- 暗号化アルゴリズムと暗号鍵を用いて、プレーンテキストを暗号テキストに数学的に変換する。
|
- プレーンテキストのトークン値をランダムに生成し、そのマッピングをデータベースに保存する
|
- 小さな暗号鍵でデータを復号化するだけで、大容量のデータにも対応できる。
|
- データベースの規模が大きくなると、安全な拡張や性能維持が難しい
|
- 構造化されたフィールドだけでなく、ファイル全体のような非構造化データにも使用される
|
- ペイメントカードや社会保障番号などの構造化データフィールドに使用します。
|
- 暗号化キーを持つ第三者との機密データのやりとりに最適
|
- トークン値をマッピングしたトークン保管庫に直接アクセスする必要があるため、データ交換が難しい
|
- フォーマット保持型の暗号化方式は、強度の低下というトレードオフを伴う。
|
- セキュリティの強度を落とすことなく、フォーマットを維持することができる。
|
|
- オリジナルデータが組織外に出ることはなく、特定のコンプライアンス要件を満たすことができます。
|
暗号化の定義
暗号化とは、アルゴリズムを使用して、平文情報を暗号文と呼ばれる読めない形に変換するプロセスである。情報を解読し、元のプレーンテキストに戻すには、アルゴリズムと暗号化キーが必要です。今日、SSL暗号化は、インターネット上で送信される情報を保護するために一般的に使用されています。オペレーティングシステムに内蔵された暗号化機能やサードパーティ製の暗号化ツールを使って、何百万人もの人が自分のコンピューター上のデータを暗号化し、万が一コンピューターが盗まれた場合に機密データを誤って失うことがないように保護しています。また、暗号化は、政府による監視や企業の機密データの盗難を阻止するために使用することができます。
"暗号は機能する。適切に実装された強力な暗号システムは 頼りになる数少ないものの一つです"- エドワード・スノーデン
非対称鍵暗号化(公開鍵暗号化とも呼ばれる)では、暗号化処理と復号化処理に2つの異なる鍵を使用する。公開鍵は、データをロックするためにのみ使用され、ロックを解除することはないため、自由に配布することができる。例えば、加盟店は、決済処理会社が承認するトランザクションを送信する前に、公開鍵を使用して決済データを暗号化することができます。決済代行会社は、カードデータを復号化するための秘密鍵を持っていなければ、決済を処理することができません。非対称鍵暗号化は、SSL証明書を使用してインターネット上で身元を確認するためにも使用されます。
鍵の種類にかかわらず、暗号化のユーザーは、漏洩した鍵を使用してすべての機密データを復号化する可能性を減らすために、通常、定期的な鍵のローテーションを実施しています。鍵のローテーションを行うことで、1つの鍵で暗号化されるデータ量を制限することができます。暗号化キーが漏洩した場合、そのキーで暗号化されたデータのみが危険にさらされることになります。
これまで、アプリケーション内でデータを暗号化することの欠点は、暗号化によってソートや検索などのアプリケーションの機能が失われることでした。暗号テキストは元のデータとは異なる形式であるため、アプリケーションでペイメントカード番号や電子メールアドレスなどのフィールドに特定の形式が必要な場合、暗号化によってフィールドバリデーションが破られる可能性もあります。新しい順序保持、フォーマット保持、検索可能な暗号化スキームにより、企業はビジネスクリティカルなアプリケーションのエンドユーザー機能を犠牲にすることなく、情報を保護することが容易になりました。しかし、通常、アプリケーションの機能と暗号化の強度との間にはトレードオフの関係があります。
トークン化の定義
トークン化とは、口座番号のような意味のあるデータを、トークンと呼ばれるランダムな文字列に変換するプロセスのことで、侵入されても意味のない値です。トークンは元のデータへの参照として機能しますが、その値を推測するために使用することはできません。暗号化とは異なり、トークン化では、機密情報をトークンに変換するための数学的プロセスを使用しないためです。トークンの元データを導き出すためのキー(アルゴリズム)は存在しません。その代わり、トークナイゼーションでは、トークン保管庫と呼ばれるデータベースを使用し、機密値とトークンの関係を保存します。保管庫内の実データは、多くの場合、暗号化によって保護されます。
トークン値は、実データの代用として様々なアプリケーションで使用することができます。例えば、クレジットカードの定期的な支払いを処理する場合など、実データを取得する必要がある場合、トークンは保管庫に提出され、インデックスを使用して実データを取得し、承認プロセスで使用します。エンドユーザーにとって、この操作はブラウザやアプリケーションによってシームレスに、ほぼ瞬時に実行されます。エンドユーザーは、データが別のフォーマットでクラウドに保存されていることにさえ気づかないでしょう。
トークンの利点は、それらが表す実際のデータとは数学的な関係がないことです。もしそれが破られた場合、何の意味も持ちません。どんな鍵でも、トークンを実際のデータ値に戻すことはできません。また、トークンをより有用なものにするために、トークンのデザインに配慮することも可能です。例えば、ペイメントカード番号の下4桁をトークンに保存しておき、トークン化した番号(またはその一部)を顧客のレシートに印刷し、実際のクレジットカード番号への参照を確認できるようにすることができます。印刷される文字は、アスタリスクと最後の4桁かもしれません。この場合、加盟店はセキュリティのために、実際のカード番号ではなくトークンを持っているに過ぎません。
暗号化とトークン化の使用例
トークン化の最も一般的な使用例は、ペイメントカードのデータを保護し、加盟店がPCI DSSに基づく義務を軽減できるようにすることです。暗号化を使用してアカウントデータを保護することもできますが、データは暗号文形式とはいえ存在するため、組織はこのデータの保存と送信に使用する技術インフラ全体がPCI DSSの要件に完全に準拠していることを確認する必要があります。
トークンは、社会保障番号、電話番号、電子メールアドレス、口座番号など、他の種類の機密情報や個人を特定できる情報を保護するために使用されることが多くなってきています。多くの組織のバックエンドシステムは、社会保障番号、パスポート番号、運転免許証番号などを固有の識別子として利用しています。この固有識別子はこれらのシステムに織り込まれているため、これを取り除くことは非常に困難です。そして、これらの識別子は、請求、注文状況、顧客サービスのための情報へのアクセスにも使用されています。トークン化は、PIIを攻撃者にさらすことなくバックエンドシステムの機能を維持するために、このデータを保護するために使用されるようになりました。
暗号化は、ペイメントカードデータやPIIを含むような構造化されたフィールドを保護するために使用できますが、段落や文書全体のような長いテキストの通路の形で非構造化データを保護するために使用することができます。また、暗号化は、第三者が小さな暗号鍵を必要とするだけなので、第三者と交換するデータを保護し、オンラインでデータを保護し、身元を確認するための理想的な方法です。SSLまたはSecure Sockets Layerは、今日のインターネット上で安全にデータを共有するための基盤であり、エンドユーザーとウェブサイトの間に安全なトンネルを作るために暗号化に依存しています。非対称鍵暗号化は、本人確認に使用されるSSL証明書の重要な構成要素でもあります。
暗号化とトークン化は、クラウド・サービスやアプリケーションに保存されたデータを保護するために、今日定期的に使用されている。ユースケースに応じて、組織は暗号化、トークン化、またはその両方を組み合わせて、さまざまな種類のデータを保護し、さまざまな規制要件を満たすことができます。例えば、SkyhighCloud Access Security Broker (CASB)は、不可逆的な一方向プロセスを利用して、構内のユーザー識別情報をトークン化し、企業のアイデンティティを難読化します。
より多くのデータがクラウドに移行するにつれ、クラウドサービスに保存されたデータを保護するために、暗号化とトークン化が使用されています。最も注目すべきは、政府機関がクラウドに保存されているデータを召喚した場合、サービスプロバイダーは暗号化またはトークン化された情報しか引き渡すことができず、実際のデータを解除する方法がないことです。また、サイバー犯罪者がクラウドサービスに保存されているデータにアクセスした場合も同様です。