新規投稿のお知らせを受信されたい方は、サブスクリプションをご登録ください:

SaaS向けZero Trust:カスタムホスト名でのmTLSデプロイ

2022-03-22

4分で読了
この投稿はEnglish한국어Español简体中文でも表示されます。

Cloudflareは、SaaS(Software-as-a-Service)の大規模な顧客基盤を持ち、そのSaaSサービスを利用する顧客の数千から数百万のドメインを管理しています。Cloudflare for SaaSという製品を通して、私たちのインフラとサービスを顧客のドメインに拡張し、SaaSプロバイダーの成長を支援してきました。本日、私たちはSaaSプロバイダーに新しいツールを提供し、顧客セキュリティのレイヤーを追加できることをうれしく思います。これにより、Access製品を通じて、顧客のドメインで相互のTLS認証を有効にできるようになりました。

相互TLS入門

Webサイトに接続すると、アドレスバーに鍵のアイコンが表示されます。これはWebサイトに安全に接続しており、そのWebサイトが有効なパブリックTLS証明書を持っていることをブラウザが知らせているものです。TLS証明書はトラフィックの暗号化と復号化に公開鍵と秘密鍵をペアで使用し、インターネットトラフィックの暗号化を維持します。また、クライアントが正しいサーバーに接続していることを証明するための認証も行います。

安全な接続を行うには、TLSハンドシェイクを行う必要があります。ハンドシェイク中、クライアントとサーバーは暗号鍵を交換し、クライアントはサーバーの身元を認証し、クライアントとサーバーの両方は、後にトラフィックを暗号化するために使用するセッション鍵を生成します。

TLSハンドシェイクとは次のようなものです。

TLSハンドシェイクでは、クライアントは常にサーバーから提供された証明書を検証し、正しい宛先にリクエストを送信している確認を行います。クライアントがサーバーの身元を認証する必要があるのと同じように、サーバーがクライアントを認証する必要がある場合があります。これは許可されたクライアントのみがサーバーにリクエストを送信していることを確認するためです。

例えば、いくつかのサービスを管理する場合、サービスAはデータベースに情報を書き込むとします。このデータベースはかなり重要なデータベースで、サービスAから送信されたエントリのみを持つようにしなければなりません。そこへ、システムにバグがあり、サービスBが誤ってそのデータベースへの書き込み呼び出しを行ってしまったとしたらどうなるでしょう。

あるサービスがデータベースへの呼び出しを許可されているかどうかをチェックする、警備員が必要になります。警備員はVIPリストを持っていて、そのリストと身分証明書を照らし合わせて、会場に入れるかどうかを確認することができます。サーバーも同様に、TLS証明書をIDとして使用するモデルを使用することができます。

警備員がVIPリストを持つように、サーバーも証明書を発行する認証局(CA)ルートを持つことができます。CAルートから発行された証明書は、その後、クライアントにプロビジョニングされます。これらのクライアント証明書は、クライアントを識別し、承認に使用されます。クライアントが有効な証明書を提示している限り、つまりサーバーがルートCAに対してバリデーション可能な証明書を提示している限り、クライアントはリクエストを行うことを許可されます。クライアントがクライアント証明書を提示しない(VIPリストにない)場合、または未承認のクライアント証明書を提示した場合、サーバーはリクエストを拒否することができます。クライアントとサーバーの証明書のバリデーションを行うこのプロセスは、 相互TLS 認証 (mTLS) と呼ばれ、TLS ハンドシェイク中に実行されます。

mTLSを使用しない場合、サーバーだけが証明書を提示する責任を負い、クライアントはそのバリデーションを行います。mTLSでは、クライアントとサーバーの両方が、下の写真のように互いの証明書を提示してバリデーションを行います。

mTLS + Access = Zero Trust

数年前、当社はAccessという製品にmTLSサポートを追加し、お客様がZero Trustポリシーをアプリケーションで有効にできるようにしました。Accessをご利用のお客様は、すべてのクライアントがリクエスト時に有効な証明書を提示しなければならない、というポリシーをデプロイすることができます。つまり、有効な証明書を持たないリクエスト(通常、未承認のクライアントからのもの)はブロックされ、追加の保護レイヤーが加えられます。Cloudflareは、顧客がアクセスポリシーを設定することで、CloudflareドメインにmTLSの設定を許可します。唯一の注意点があるとすれば、この機能を使うにはドメインの所有者である必要があるということでした。それでは、ドメインのオーナーではないが、そのドメインのオリジンを管理している場合はどうでしょうか。このようなケースは、私たちの顧客の大きな基盤であるSaaSプロバイダーが、自社で所有していない顧客のドメインにサービスを拡張している場合に多く見受けられます。

SaaSプロバイダーによるCloudflareのメリット拡張

Cloudflare for SaaSにより、SaaSプロバイダーはCloudflareネットワークのメリットを顧客のドメインに拡張できるようになります。これらのドメインはSaaSプロバイダーの所有ではありませんが、SaaSプロバイダーのサービスを利用し、SaaSプロバイダーのオリジンへのトラフィックをルーティングします。

これにより、SaaSプロバイダーは、最高のアップタイム、超高速パフォーマンス、比類のないセキュリティを顧客に提供する責任を負うことになります。つまり、Cloudflareを利用することで、簡単に拡張できるのです。

実際にはCloudflare for SaaSは、SSL for SaaSとしてスタートしました。当社はSaaSプロバイダーが顧客用TLS証明書を発行し、安全かつセキュアに保つ能力を提供することを目指し、SSL for SaaSを構築しました。

その後、SaaSをご利用のお客様から、私たちが直接のお客様のために構築したmTLSサポートを顧客にも拡張してほしいという新しい要望をお寄せいただくようになりました。

SaaSプロバイダーがmTLSの使用を希望するのはなぜでしょうか。

SaaSプロバイダーとして提供できるサービスは多岐にわたります。そうしたサービスの中には、さらに高度なセキュリティ管理が必要なものがあります。

たとえば、構築しているSaaSソリューションが、決済処理業者であるとします。各顧客は独自のAPIエンドポイントを取得し、そのユーザーは_pay.<business_name>.com_のようなリクエストを送信します。決済処理業者として、どのようなクライアントやデバイスもが自社のサービスにリクエストを出すのではなく、許可されたデバイスのみがリクエストを出すようにしたい。そんな場合こそmTLSの出番なのです。

SaaSプロバイダとして、顧客のAPIエンドポイントごとにルートCAを設定することができます。次に、各ルートCA が、許可されたデバイスにインストールされるクライアント証明書を発行します。クライアント証明書のインストールが完了したら、あとは有効な証明書のチェックを実施するだけです。

要約すると、SaaSプロバイダーとしてこれを行うことで、顧客は決済処理APIエンドポイントへのリクエストが有効なデバイス経由のみであることを保証できるようになるのです。また、顧客ごとに個別のルート認証局を導入することで、ある顧客のAPIエンドポイントへのリクエストを許可されたクライアントが、許可されていない別の顧客のAPIエンドポイントにリクエストを行うことを防止できます。

Cloudflareにおける設定について

SaaSプロバイダーとして、Cloudflare for SaaSを設定し、お客様のドメインをカスタムホスト名として追加してください。その後、Cloudflare for Teamsのダッシュボードで数回クリックすれば、mTLS認証を追加できます。

この機能は現在ベータ版で、Enterpriseプランのお客様がご使用になれます。ご意見・ご感想がございましたら、担当アカウントまでお寄せください。

Cloudflareは企業ネットワーク全体を保護し、お客様がインターネット規模のアプリケーションを効率的に構築し、あらゆるWebサイトやインターネットアプリケーションを高速化し、DDoS攻撃を退けハッカーの侵入を防ぎゼロトラスト導入を推進できるようお手伝いしています。

ご使用のデバイスから1.1.1.1 にアクセスし、インターネットを高速化し安全性を高めるCloudflareの無料アプリをご利用ください。

より良いインターネットの構築支援という当社の使命について、詳しくはこちらをご覧ください。新たなキャリアの方向性を模索中の方は、当社の求人情報をご覧ください。
ゼロトラストCloudflare for SaaSSaaSCloudflare Zero Trust製品ニュース

Xでフォロー

Dina Kozlov|@dinasaur_404
Cloudflare|@cloudflare

関連ブログ投稿

2024年10月24日 13:00

Durable Objects aren't just durable, they're fast: a 10x speedup for Cloudflare Queues

Learn how we built Cloudflare Queues using our own Developer Platform and how it evolved to a geographically-distributed, horizontally-scalable architecture built on Durable Objects. Our new architecture supports over 10x more throughput and over 3x lower latency compared to the previous version....

2024年10月23日 13:00

Fearless SSH: short-lived certificates bring Zero Trust to infrastructure

Access for Infrastructure, BastionZero’s integration into Cloudflare One, will enable organizations to apply Zero Trust controls to their servers, databases, Kubernetes clusters, and more. Today we’re announcing short-lived SSH access as the first available feature of this integration. ...

2024年10月15日 13:00

Protect against identity-based attacks by sharing Cloudflare user risk scores with Okta

Uphold Zero Trust principles and protect against identity-based attacks by sharing Cloudflare user risk scores with Okta. Learn how this new integration allows your organization to mitigate risk in real time, make informed access decisions, and free up security resources with automation....