サービスに関するお問い合わせ

緊急対応 専用窓口

セキュリティの緊急事態が発生したらご遠慮なくお問い合わせください。ご相談は無料です。

セキュリティの
学び場

SHIFT SECURITY セキュリティの学び場 用語・国際規格 サーバサイド暗号化とクライアントサイド暗号化

サーバサイド暗号化とクライアントサイド暗号化

サーバサイド暗号化とクライアントサイド暗号化
目次
  • 暗号化の「目的」と「方式」
  • クライアントサイド暗号化
  • サーバサイド暗号化
  • クライアント/サーバサイド暗号化の特徴

暗号化の「目的」と「方式」

皆さんは普段、意識して「暗号化」を利用していますか?

  • 「Webサイトにアクセスする際は https を使う」
  • 「重要なデータをパスワードで保護する」

これらの例は何れも「クライアントサイド暗号化」と呼ばれる方式です。

今回はこれに加えて「サーバサイド暗号化」と呼ばれる、普段、意識されない暗号方式を紹介します。

クライアントサイド暗号化

クライアントサイド暗号化 (Client Side Encryption: CSE) は名前の通り「クライアント(またはユーザ)」側で暗号化や復号化を行う暗号化方式です。 皆さんが想像する「暗号化」の多くはこれに該当します。

代表的な利用例としては以下のようなものが挙げられます。

  • ユーザ間での送受信データの保護
    • 暗号化したUSBメディアによるデータ搬送
    • 暗号化したZipファイルの送受信
    • エンドツーエンド暗号化を有効化したメッセンジャーによる通信
  • クライアント/サーバ間の通信データの保護
    • HTTPSによるブラウザとWebサーバ間の通信の保護
    • SSHによる作業端末とサーバ間の通信の保護

クライアントサイド暗号化では復号化に必要な秘密(鍵やパスワード)を受信側クライアントやユーザが保持します。 これにより、通信経路上の暗号化データを第三者が復号化することを防ぎ、 経路(通信機器や中継サーバ)上での盗聴や改ざんを防止します。

サーバサイド暗号化

サーバサイド暗号化(Server Side Encryption: SSE)は名前の通り「サーバ(またはクラウド基盤)」側で暗号化や復号化を行う暗号方式です。

サーバサイド暗号化は以下のような動作をします。

  • 「サーバ側の特定の範囲」では暗号化された状態でデータを保持する
  • 「サーバ側の特定の範囲」からデータを取り出す際に自動で復号化する
  • 「当該の範囲外」ではクライアントサイド暗号化等、別の方法でデータを保護する

代表的な利用例としては以下のようなものが挙げられます。

  • クラウドストレージ(AWS S3, Azure Blob 等)のデータ保護
  • バックアップデータの保護
  • データベース内のデータ保護

これらの利用例ではデータは格納時に自動的に暗号化され、また、利用時には自動的に復号化されます。このため、利用者が暗号化を意識することはありません。

サーバサイド暗号化では復号化に必要な秘密(鍵やパスワード)はサーバサイドで管理されます。 クライアントサイド暗号化では「復号化に必要な秘密」を保持していることによりアクセス権の制御が自ずとできますが、 サーバサイド暗号化では別途、認証とアクセス制御を実装する必要があります。

一方で、暗号化・復号化をサーバサイドで集中管理できるため、利用者のセキュリティレベルに依存せず、一貫したセキュリティを維持しやすいというメリットがあります。

例えば、AWS上のストレージサービスである S3 は様々なWebアプリケーションや外部サービス等と連携してデータの格納や利用ができます。複数の外部サービス間で格納データの暗号化ポリシーを強制したり、復号鍵を管理することは一般的に困難ですが、 サーバサイド暗号化を利用することで、ストレージ上での暗号化を一貫して管理することが可能になります。

クライアント/サーバサイド暗号化の特徴

クライアントサイド暗号化とサーバサイド暗号化の特徴を表にすると以下のようになります。

観点 クライアントサイド サーバサイド
復号化の秘密管理 ユーザ/クライアント サーバ/クラウド基盤
データへのアクセス制御 復号化の秘密で管理 別途、認証・アクセス制御が必要
経路上での保護 保護される 別途、保護が必要
保管時の保護 別途、保護が必要 保護される
暗号化責務 送信側(ユーザ)の責務 サーバ/クラウド基盤の責務

経路上/保管時の保護からも分かる通り、クライアントサイド暗号化とサーバサイド暗号化は 「どちらが優れている」というものではなく、両方を適切に組み合わせることが求められます。

特に、クラウド基盤 や 大規模データベース 等、 利用者に依存せずに一貫したセキュリティレベルの維持が求められる場合にはサーバサイド暗号化は有効な技術になります。

一方で、サーバサイド暗号化では以下の点に注意が必要です。

  • アクセス権限等のサーバ/クラウド基盤の設定を適切に保つ必要がある
  • 復号化済みデータを扱うサービスのセキュリティを適切に保つ必要がある

暗号化を適切に利用するには、基盤上の設定確認(クラウド診断/監視)や、プラットフォーム、Webアプリケーションに対する各種診断も合わせて重要となります。

あなたの疑問を一緒に解決します!

解説してほしい用語や技術、仕組みについての疑問、
みなさまのクラウドセキュリティのお悩みに関して技術者が記事にして回答します!
ぜひご気軽にご投稿ください。

クラウドの脆弱性診断にご興味があるかたはこちら

この記事の著者 中村 丈洋

形式手法および高信頼ソフトウェアの研究に従事、博士号(工学博士)を取得。
2013年より株式会社SHIFTにてソフトウェアテスト支援ツール開発および非機能テストに従事。
SHIFT SECURITY の設立に携わる。同社では脆弱性診断手法とツール開発、およびセキュリティコンサルティング業務に従事。
2018年よりSHIFT SECURITY 執行役員に就任。現在に至る。

\ 記事をシェアする /

サービスに関するお問い合わせ