暗号化について

企業がクラウドに移行する理由一般的に、クラウド環境には拡張性と信頼性があり、また可用性が高いといった点が挙げられます。しかし、それ以上に、セキュリティ面で優れています。だからこそ、クラウドプロバイダーは包括的なセキュリティ戦略を定める必要があるのです。Zohoのセキュリティ戦略は、様々な側面を対象としていますが、なかでも暗号化は、その重要な要素です。このページでは、Zohoの暗号化に関する戦略と、当社がその戦略によってお客さまのデータを安全に保つ方法について説明します。

最終更新日: 2024年3月18日

暗号化とは

暗号化は、主にメッセージの内容を保護するために使用され、意図された受信者だけがメッセージを読めるようにするものです。つまり、宛先の受信者のみが理解できるように、メッセージの内容を識別不能なデータに置き換えます。このように、暗号化はデータを盗用しようとする人からデータを守る手段として使用されるようになりました。

暗号化とは、データが識別不能(暗号化された状態)になるように特別なエンコードプロセスでデータを変換することです。その後、特別なデコードプロセスを適用することで元の識別可能なデータ形式に戻すことができます(復号化)。デコードの鍵は秘密に保持されるため、暗号化されたデータから元のデータを復元することはできません。

エンコードプロセスは、AES 256のような公開されている暗号化アルゴリズムに従います。しかし、プロセス自体は、データの暗号化と復号化に用いる鍵に依拠しています。

その鍵は非公開であるため、他者が暗号化されたデータへのアクセスに成功したとしても、その鍵がなければ、実質的に意味のない「暗号文」にしか見えません。データはこのように保護されています。

お客さまのデータを暗号化する理由

保護の最後の砦:包括的なセキュリティ戦略によって組織的にハッカーからデータを保護することはできますが、データ盗用の試みに対する最終的な砦となるのは暗号化です。セキュリティ侵害が発生してしまったとしても、データはダメージを受けず、また盗み取られることもないため、完全なデータ保護が可能です。

プライバシー: 暗号化により、インターネットを取り巻くプライバシー問題に安心して対応することができます。暗号化は、その情報を必要とする者を除き、他者が通信の内容を理解できないようにすることで、プライバシーを保護します。当社とのやり取りやサーバーに保存されるデータを暗号化することによって、お客さまのプライバシーは確実に保護されます。

「データ」の定義

当社が取り扱うデータには2種類あります。

  1. お客さまデータ-お客さまがZohoサービスを介して当社に保存するデータ。通常、こうしたデータは、当社IAM(IDおよびアクセス管理)データベースにおいて識別可能なお客さまのアカウントを通じて、Zohoサービスによって処理されます。秘密データとは、万が一公開された場合に、関係する個人や組織に損害が発生する可能性のある情報をいいます。お客さまデータを暗号化するか否かは、データの秘密度と該当するZohoサービスにおけるユーザーの要件によって決まります。
  2. 派生データ-お客さまから直接提供されたデータではなく、提供されたデータから派生したデータをいいます。例えば、認証トークン、一意のID、URL、レポートなどが当社のデータベースに保存されます。派生データを暗号化するか否かは、データの秘密度によって決まります。

以下、「データ」は、暗号化されたデータを意味します。

転送時の暗号化

Zohoサービスをご利用いただく際に、お客さまのデータは、お使いのブラウザーからインターネットを経由して当社のデータセンターや他のサードパーティーサービス(サードパーティー統合を使用している場合)に移動します。転送中のデータは、暗号化することで中間者攻撃から保護されます。

以下のいずれかに該当する場合、転送中のデータは暗号化されます。

  • データがお使いのブラウザーから当社のサーバーに移動するとき
  • データが当社サーバーからZoho以外(第三者)のサーバーに移動するとき

お客さまとZohoサーバー間の安全な接続

Zohoは、すべての接続にトランスポートレイヤーセキュリティ(TLS)を適用する厳しい方針を定めています。TLSは、その接続に関連する両当事者の認証を認め、転送されるデータを暗号化することで、お客さまとZohoサーバー間に安全な接続を確立します。TLSプロトコルにより、お客さまとZohoサーバー間の通信に、第三者による盗聴や改ざんが起こらないようにしています。

当社は、TLSプロトコルの最新バージョン1.2/1.3に従って、SHA 256を用いて発行される証明書と暗号(暗号化にはAES_CBC/AES_GCMの256ビット/128ビット鍵、メッセージ認証にはSHA2、鍵交換メカニズムとしてECDHE_RSA)を使用しています。また、PFS(Perfect Forward Secrecy)を実装し、すべてのサイトにHSTS(HTTP Strict Transport Security)を実行しています。

Zohoと第三者との間

当社は、HTTPSプロトコルに従い第三者との通信を行っています。秘密データやユースケースなどが関わるトランザクションに対しては、データの暗号化と復号化に公開鍵と秘密鍵のシステムを利用する、非対称暗号化システムを用いています。

この方法では、KMS(鍵管理サービス)で公開鍵と秘密鍵のペアを生成します。これによりすべてのサービスで鍵が作成、保存、管理されます。この鍵のペアは、マスター鍵を使用して暗号化された後、KMSに保管されます。マスター鍵自体は、別のサーバーに保管されます。

公開鍵は、秘密鍵をKMSに保管したまま、証明書を通じて第三者が利用できるようにし、認証後は、暗号化されたデータがKMSで復号化されます。

保存データの暗号化

暗号化には、主に以下の2つのレベルがあります。

  1. アプリケーションレイヤーでの暗号化
  2. ディスク全体に対するハードウェアベースの暗号化

アプリケーションレベルでのデータ暗号化戦略は、データの保存場所と保存方法によって異なります。

  • データベース(DB)- テーブルとして保存されます
  • 分散ファイルシステム(DFS)- ファイルとして保存されます
  • URLの暗号化
  • バックアップ
  • ログ
  • キャッシュ

下の図は、当社の暗号化戦略のおおまかなイメージを表しています。

encrpytion strategy

アプリケーションレベルの暗号化

Zohoサービス(またはアプリケーション)を利用する際に、お客さまから提供されるデータと、当社がサービスの一環としてお客さまに代わって収集するデータが保存されます。データは、1つのファイルとして受信される場合と、複数のデータフィールドとして受信される場合があります。暗号化の方法は、それぞれのカテゴリーで異なります。

ここでは、アプリケーションレベルでの保存データの暗号化について説明します。

フィールドレベルの暗号化

お客さまがアプリケーションに入力した秘密データや秘密のサービスデータは、該当するZohoサービスのデータベースで保存されます。これらのデータは、AES 256に従い、AES/CBC/PKCS5Padding方式で暗号化されます。保存時に暗号化されるデータは、お客さまが選択するサービスに応じて異なります。当社サービスで暗号化するデータの詳細については、こちらをご覧ください

暗号化は、アプリケーションレイヤーで行われ、認証されたアプリケーションユーザーのみがこのデータを閲覧することが可能です。保存データの暗号化はアプリケーションレイヤーで行われるため、通常のデータベースやサポートのユーザーは、KMSから暗号鍵へのアクセス権を得なければそのデータを見ることはできません。暗号化されたデータを見ることができるのは、SQLのような通常のデータベースツールにおいて直接閲覧する場合に限られます。

暗号化の種類は、データフィールドの秘密度、ユーザーの選択や要件に応じて異なります。

フィールドレベルの暗号化は、以下の2つのタイプに分けられます。

  1. データの秘密度を基準とするもの
  2. 検索機能を基準とするもの

注:以下、Zohoサービスを利用し、一定数のユーザーアカウントをお持ちのお客さままたは組織を、「組織」といいます。

データの秘密度を基準とするもの

タイプ1-あらゆる組織から受け取るデータに対して行われるデフォルトの暗号化です。このタイプの暗号化では、当社のKMSは、各組織に1つの鍵を割り当てます。その組織のデータはこの鍵を使用して暗号化されます。鍵は、マスター鍵を使用して暗号化された後、別のサーバーに保管されます。

タイプ2-秘密情報や個人識別情報(PII)に対して行われる暗号化です。銀行口座番号、ID番号、生体認証データなどの項目がこれに該当します。

このタイプでは、KMSによってテーブルの各列に一意の鍵が生成されます。特定の列にあるすべてのデータが、その列のために生成された鍵を使用して暗号化されます。これらの鍵は、マスター鍵を使用して再び暗号化され、別のサーバーに保管されます。

検索機能を基準とするもの

暗号化の際に使用された初期化ベクトル(IV)に応じて、暗号化されたデータを検索することができます。初期化ベクトルは、暗号化プロセスを開始するランダムな値です。このランダム値により、各データのブロック/ユニットに異なる暗号化が行われます。つまり、同じデータを2回暗号化した場合、1回目と2回目では異なる暗号文が生成されるということです。

初期化ベクトルが重要な理由

もし初期化ベクトルがなく、自身の鍵だけで暗号ブロックチェーン(CBC)モードを使用すると、同一のデータで始まる複数のデータセットに生成される先頭ブロックは同じになります。初期化ベクトルを使用することにより、2つの異なるデータの暗号化(ブロック暗号レベルで同じ鍵を使用)を行った場合に、一方のデータがもう一方のデータと何らかの関連性がある(先頭ブロックが同じである場合など)としても、同一の入力/出力ペアが生成される可能性はほとんどなくなります。

暗号化のリクエストの都度、ランダムな初期化ベクトルを使用すると、同じ先頭ブロックは生成されません。よって攻撃者は、暗号化されたデータを復号化する手がかりを何も見つけることができません。

等値保持暗号化(Equality Preserving Encryption): このタイプでは、1つの鍵に対応する初期化ベクトルは1つだけになります。つまり、暗号文のブロック全体が検索クエリーで使用できるということです。初期化ベクトルは、組織/列のすべてのデータについて同じとなるため、検索することでデータを取得することができます。

標準暗号化:このタイプでは、各データエントリーが、一意の初期化ベクトルを有します。すべてのデータを1つの鍵で暗号化したとしても、暗号化された各データエントリーは、一意の暗号文を生成します。また、初期化ベクトルは、データごとにランダムかつ一意に生成されるため、検索してもそのデータを取得することはできません。よって、等値保持(Equality Preserving)の場合よりも、安全なオプションです。

各タイプが使用される状況

通常、特定のタイプを使用するか否かの判断は、要件によって左右されます。データを最高水準で保護する必要がある場合は、タイプ2を選び、標準暗号化を使用します。

ただし、要件は、保護に関するものだけとは限りません。要件によっては、ユーザーが「メールアドレス」などの項目を検索して取得しなければならないこともあります。この場合、標準オプションでは意味をなさないため、タイプ1を選択し、「等値保持」の暗号化を使用することが適しています。

ファイルの暗号化

作成したまたは添付したファイルは、当社の分散ファイルシステム(DFS)に保存されます。保存時に暗号化されるファイルは、お客さまが選択するサービスに応じて異なります。当社サービスで暗号化するデータの詳細については、こちらをご覧ください。 暗号化は、アプリケーションレイヤーで行われ、認証されたアプリケーションユーザーのみがこのデータを閲覧することが可能です。

暗号化は標準のAES 256アルゴリズムに基づいて行われ、暗号化はCTRモード、もしくはGCMモードのいずれかで行われます。AES 256では、暗号化する必要のある平文がデータパケットまたはデータブロックに分散されます。ここでファイルの内容を暗号化しているので、アルゴリズムによりブロックごとの暗号化が確実に他から独立して実行されるようにする必要があります。そのため、ブロックの暗号が侵害されたとしても、攻撃者がファイルに関する情報を取得することはできません。

ガロア/カウンターモード(GCM)は、ブロック暗号アルゴリズムを用いた典型的なブロック暗号動作モードです。CTRで可能なのは暗号化のみですが、GCMでは暗号化と認証が可能です。

暗号化されたファイルが破損している場合、CTRモードでファイルを復号化する際にジャンク値が返されます。一方、GCMモードでは、暗号化されたファイルの真正性が認証タグによって検証され、その後はじめてデータが復号化されます。GCMモードによって、ファイルの完全性にレイヤーが追加されます。

フィールドレベルの暗号化と同様に、ファイルの暗号化にも以下の2つのタイプがあります。

タイプ1-このタイプでは、各組織に1つの鍵が割り当てられます。その組織の各ファイルは、この鍵を使用して暗号化されますが、ファイルそのものと共に一意のランダム初期化ベクトルが保存されます。この鍵は、マスター鍵を用いて再び暗号化された後、KMSに保管されます。

タイプ2-このタイプでは、各ファイルに一意の鍵が割り当てられ、ファイルはその鍵を使用して暗号化されます。ファイルの暗号化に用いられた個々の鍵は、KEKを用いて再び暗号化された後、Zohoサービスのデータベースに保管され、ファイルはDFSに保管されます。このKEKは、各組織に一意のもので、KMSによって保管、管理されます。

URLの暗号化

招待リンクなど、Zohoサービス内での通信内容には、秘密データが含まれるURLが記載されている場合があります。この通信内容を保護するため、URLの一部は暗号化されます。URLの中にドキュメントのIDなど識別可能なものがあれば、その部分が暗号化されます。

この暗号化には2つのタイプがあり、組織ごとに1つの鍵、または機能ごとに1つの鍵が割り当てられます。どちらが割り当てられるかは、URLに含まれるデータの秘密度により決定されます。

バックアップ暗号化

当社は、頻繁にデータのバックアップを行っており、バックアップサーバーには、メインサーバーと同水準の保護機能が実装されています。当社がバックアップとして保存するデータは、すべて暗号化されます。

ログの暗号化

Zoho Logsは、ログを保存し管理するためにHDFS(Hadoop Distributed File System)を使用しています。Hadoopの暗号化技術を使用してデータを暗号化し、当社KMSによって鍵の管理を行っています。

キャッシュの暗号化

キャッシュデータの保存と管理には、オープンソースソフトウェアのRedisを使用しています。キャッシュには、サービスの稼働に繰り返し使用され、一定期間の保存を必要とするデータが含まれています。サービスの向上やトラブルシューティングのために、お客さまのデータのキャッシュが生成されることもあります。データに秘密性の高い個人情報が含まれている場合は、それを暗号化しています。

鍵の管理

当社内の鍵管理サービス(KMS)は、すべてのサービスにおいて鍵の作成、保管および管理を行っています。当社は、KMSを用いて鍵を所有および管理しています。現在、お客さまが所有する鍵でデータを暗号化する機能はありません。

注: 当社は現在、「独自の鍵の持ち込み(BYOK)」に対応する新機能の導入に取り組んでいます。BYOKを利用すると、お客さまが選択した外部の鍵管理者の暗号鍵を提供することができます。

暗号化の様々な段階で用いられる鍵には、以下の異なるタイプがあります。

データ暗号化鍵(DEK):この鍵は、データを平文から暗号文に変換するため、またはデータを暗号化するために使用されます。

鍵暗号化鍵(KEK): この鍵は、DEKの暗号化に使用され、Zohoサービスに固有のものです。KEKは、別個のサーバーで生成され、セキュリティにレイヤーを追加します。

マスター鍵: この鍵は、KEKの暗号化に使用され、隔離されたサーバーで安全に保管されます。

KMSの役割

すべてのタイプの暗号化は、AES 256アルゴリズムに従っています。このアルゴリズムに従い、データは「ブロック」として取り扱われ、このブロックが暗号化されます。データベースの項目であるかDFSのファイルであるかを問わず、データのブロックがDEKを使用して暗号化された時から暗号化が開始されます。

このDEKは、KEKを用いてさらに暗号化されます。KEKは、別のサーバーに保管されているマスター鍵を使用して再び暗号化されます。下記は、管理を必要とする要素です。

  • 暗号化されたデータ
  • DEK
  • 暗号化されたDEK
  • KEK
  • 暗号化されたKEK
  • マスター鍵

KMSは、これらの要素を以下のように管理します。

kms1

1
リクエストを開始する

ユーザーはzohoサービスに認証され、データを要求します

2
転送中の暗号化

TLSベースの暗号化

3
アプリケーションフロントエンド

トラフィックをアプリケーションサーバーに転送します

4
アプリケーション・サーバー

暗号化プロセスを開始します

5
鍵管理サービス

データ暗号化鍵(DEK)を生成/取得します

6
マスターサーバー

鍵暗号化(KEK)を生成/取得します

7
KMSデータベース

暗号化されたDEKを保存します

8
鍵管理サービス

暗号化のためにDEKを返します

9
暗号化エージェント

DEKを使用してデータを暗号化します

10
ストレージ

暗号化されたデータを保存します

鍵の生成方法

KMSは、初期化ベクトル(IV)と共に、AES 256プロトコルに準拠した256ビット鍵を生成します。先に説明したとおり、初期化ベクトルによって、暗号化されたデータの先頭ブロックをランダムにすることができます。このため、同じ平文であっても、初期化ベクトルにより異なる暗号文に暗号化されます。

KMSは、Javaセキュリティのライブラリーと乱数ジェネレーターであるSecureRandomを使用して、これらの鍵と初期化ベクトルを生成します。

鍵の保管場所

KMSで生成されたDEKは、KEKを使用して暗号化されます。これによりセキュリティレイヤーが追加されます。暗号化されたDEKは、KMSデータベースに保管されます。

Key Stored

鍵は物理的に分離(異なる場所に保管)されるため、攻撃者は、1つの鍵を入手しても関連する他の鍵を入手することができません。当社は、KEKをマスター鍵を使って暗号化した後、別のサーバーに保管します。

Zoho WorkDriveでは、保存されたドキュメントにセキュリティレイヤーを追加します。

Key Stored

攻撃者は、KMS単体を標的とするだけでは、データを侵害することはできません。

鍵の安全性

物理的分離-先に説明したとおり、マスター鍵は、物理的に分離された安全なサーバーに保管されます。そのため、攻撃者がDEKとKEKの両方を侵害するのは容易ではありません。

アクセス管理-アクセス管理により、鍵の不正使用や前例のないアクセスを防止することができます。アクセス管理リスト(ACL)により、特定のサービスだけが特定の鍵にアクセスすることができます。鍵へのアクセスがあったときはその都度、認証を行い処理を記録します。これらの記録を定期的に監査することで、プロセスを監視することができます。

KMSへのアクセスはデフォルトで制限されており、Zohocorp社の限られた社員のみがアクセスを認められています。その他のアクセスにはチケット申請による承認プロセスが必要とされ、幹部から承認された場合に限り許可されます。

鍵のローテーション-より強固なセキュリティを確保するため、マスター鍵を定期的に変更する、鍵のローテーションシステムを採用しています。マスター鍵と初期化ベクトルが新規に生成される場合、データベース内の鍵も変更しなければなりません。そのため、まず、データベースにあるすべての鍵を取得し、古いマスター鍵を用いて復号化し、新しいマスター鍵で再び暗号化し、データベース内で更新するという処理が行われます。

鍵のローテーションは現在、KMSの鍵が危殆化した場合にのみ実行されます。

鍵の可用性-1つのデータセンターにあるディスクのプライマリーストレージに障害が発生した場合に備えて、マスターデータセンターと同じデータを保持するバックアップ用のスレーブとセカンダリースレーブがあります。マスターと同様に、スレーブおよびセカンダリースレーブの両方に暗号化されたDEKが存在します。

当社サービスで暗号化するデータの種類

保存時に暗号化されるデータは、お客さまが選択するZohoサービスに応じて異なります。特定のデータエントリーに対する暗号化のタイプは、お客さまか当社により、または双方の合意により決定されます。

以下の表では、各種Zohoサービスで暗号化されるデータについて説明します。

サービス暗号化される項目
CRMカスタム項目、CRMを通じて送受信されたすべてのファイルとメールコンテンツ。
詳細はこちら
Workdriveすべてのファイル。詳細はこちら
Creator項目。詳細はこちら
Campaigns個人情報を含む項目、ユーザーがアップロードしたファイル。詳細はこちら
CliqChatTranscript(チャット内容)と個人情報。詳細はこちら
Peopleカスタム項目、すべてのファイル。詳細はこちら
Connectタイトル、フィードのURLとその内容、フォーラム投稿、記事、質疑応答、グループ、お知らせ、タスクとコメント、ビデオファイルと添付ファイル。詳細はこちら
Deskチケットスレッドの内容、添付ファイル、カスタム項目、およびトークン。詳細はこちら
Finance銀行口座情報、個人情報を含むカスタム項目、秘密性の高い個人情報を含む従業員情報、渡航書類、銀行取引明細書、添付書類
Projects添付書類、個人情報を含む項目、トークン。詳細はこちら
Sprintsファイル、添付書類、トークン、および個人情報を含む項目。詳細はこちら
Notebookメモカードおよび添付書類。詳細はこちら
Signドキュメント、署名画像およびトークン。詳細はこちら
Reportsカスタム項目、ユーザーがアップロードしたファイル、カスタムクエリー
Mailすべてのメールコンテンツ、添付書類および個人情報を含む項目
Recruitカスタム項目、ユーザーがインポートしたドキュメント。詳細はこちら
Socialトークン、個人情報を含む項目。詳細はこちら
Service Desk Plus Cloudトークン、メールサーバーパスワードとカスタム項目。詳細はこちら
SalesIQ添付ファイル、トークン、メディア記録とチャットの記録。詳細はこちら
Assistスクリーンショットおよびセッション記録。詳細はこちら
Surveyカスタム項目、応答者がアップロードしたファイルおよび共有機能で提供されたメールアドレス。詳細はこちら
Showプレゼンテーション、アップロードされたファイルおよび個人情報。詳細はこちら
Directoryカスタム項目。詳細はこちら
Contracts契約文書、契約書類、交渉リンクのパスワード、組織と相手方担当者の電話番号。
詳細はこちら
Learn記事の内容、レッスン、添付書類、テンプレートおよび個人情報。詳細はこちら
Sites24x7携帯電話番号、電子メールアドレス、ホスト名、IPアドレス、URL、アクセストークン、ドメイン名、ユーザーが提供するクレデンシャル、サービスアカウントの設定およびユーザーがアップロードしたファイル。詳細はこちら
Dataprep個人識別情報(PII)、電子的に保護される医療情報(ePHI)およびクレデンシャル。
詳細はこちら

ディスク全体の暗号化

当社は、自己暗号化ドライブ(SED)を採用し、ハードウェアベースでディスク全体の暗号化に対応しています。SEDは、暗号化回路が組み込まれたハードディスクドライブ(HDD)またはソリッドステートドライブ(SSD)です。

自己暗号化とは、記憶媒体に書き込まれるすべてのデータが書き込み前にディスクドライブにより暗号化され、読み出しの時はディスクドライブにより復号化されることを意味します。

ドライブに書き込まれるデータは、データ暗号化鍵(DEK)を用いて暗号化/復号化され、DEKはディスク上に保管されます。メーカーから提供されるデフォルトのDEKは、当社のセキュリティ基準を維持するために、セットアップ時に再生成されます。

認証鍵を使用することで、SEDのセキュリティをさらに強化しています。認証鍵(AK)は、DEKを暗号化し、ドライブのロック/ロック解除に使用されます。AKの管理には、ローカル鍵管理システム(LKMS)を使用しています。

サーバーで暗号化を有効にした場合は、各サーバーにAKが安全な方法で転送されます。盗用やディスクへの不正な物理的アクセスが発生した場合でも、DEKは、AKなしでは復号化ができないため、ドライブ上のデータはアクセスも読み出しもできません。このように、AKによってデータ保護のためのレイヤーが追加されます。

現在、ハードウェアベースのディスク全体の暗号化は、インド(IN)、オーストラリア(AU)、および日本(JP)のデータセンター上にある全Zohoサービスで採用されています。その他のデータセンターでは、ディスク全体の暗号化は、特定のZohoサービスにおいてのみ採用されています。詳細については、サービス固有の暗号化を説明したこちらのページをご参照ください。

おわりに

暗号化は、秘密性の高いお客さまデータを保存する時、インターネット経由でそのデータを転送する時、さらに当社のデータセンター間でデータをやり取りする時に行われます。しかし、暗号化は当社のセキュリティ戦略の一部にすぎません。当社は、最新のプロトコルと技術を導入するなど継続的に改善し、データ保護の強化に取り組んでいます。当社のセキュリティ戦略の全文は、https://www.zoho.com/jp/security.htmlをご確認ください。

お客さまと弊社の契約関係には、本文書の英語版が適用されます。本文書はお客さまの利便性の向上を目的として提供されており、本文書の英語版が規定する契約関係には影響を与えません。本文書の英語版についてはこちらをご覧ください。