皆さんは普段、意識して「暗号化」を利用していますか?
これらの例は何れも「クライアントサイド暗号化」と呼ばれる方式です。
今回はこれに加えて「サーバサイド暗号化」と呼ばれる、普段、意識されない暗号方式を紹介します。
クライアントサイド暗号化 (Client Side Encryption: CSE) は名前の通り「クライアント(またはユーザ)」側で暗号化や復号化を行う暗号化方式です。 皆さんが想像する「暗号化」の多くはこれに該当します。
代表的な利用例としては以下のようなものが挙げられます。
クライアントサイド暗号化では復号化に必要な秘密(鍵やパスワード)を受信側クライアントやユーザが保持します。 これにより、通信経路上の暗号化データを第三者が復号化することを防ぎ、 経路(通信機器や中継サーバ)上での盗聴や改ざんを防止します。
サーバサイド暗号化(Server Side Encryption: SSE)は名前の通り「サーバ(またはクラウド基盤)」側で暗号化や復号化を行う暗号方式です。
サーバサイド暗号化は以下のような動作をします。
代表的な利用例としては以下のようなものが挙げられます。
これらの利用例ではデータは格納時に自動的に暗号化され、また、利用時には自動的に復号化されます。このため、利用者が暗号化を意識することはありません。
サーバサイド暗号化では復号化に必要な秘密(鍵やパスワード)はサーバサイドで管理されます。 クライアントサイド暗号化では「復号化に必要な秘密」を保持していることによりアクセス権の制御が自ずとできますが、 サーバサイド暗号化では別途、認証とアクセス制御を実装する必要があります。
一方で、暗号化・復号化をサーバサイドで集中管理できるため、利用者のセキュリティレベルに依存せず、一貫したセキュリティを維持しやすいというメリットがあります。
例えば、AWS上のストレージサービスである S3 は様々なWebアプリケーションや外部サービス等と連携してデータの格納や利用ができます。複数の外部サービス間で格納データの暗号化ポリシーを強制したり、復号鍵を管理することは一般的に困難ですが、 サーバサイド暗号化を利用することで、ストレージ上での暗号化を一貫して管理することが可能になります。
クライアントサイド暗号化とサーバサイド暗号化の特徴を表にすると以下のようになります。
観点 | クライアントサイド | サーバサイド |
---|---|---|
復号化の秘密管理 | ユーザ/クライアント | サーバ/クラウド基盤 |
データへのアクセス制御 | 復号化の秘密で管理 | 別途、認証・アクセス制御が必要 |
経路上での保護 | 保護される | 別途、保護が必要 |
保管時の保護 | 別途、保護が必要 | 保護される |
暗号化責務 | 送信側(ユーザ)の責務 | サーバ/クラウド基盤の責務 |
経路上/保管時の保護からも分かる通り、クライアントサイド暗号化とサーバサイド暗号化は 「どちらが優れている」というものではなく、両方を適切に組み合わせることが求められます。
特に、クラウド基盤 や 大規模データベース 等、 利用者に依存せずに一貫したセキュリティレベルの維持が求められる場合にはサーバサイド暗号化は有効な技術になります。
一方で、サーバサイド暗号化では以下の点に注意が必要です。
暗号化を適切に利用するには、基盤上の設定確認(クラウド診断/監視)や、プラットフォーム、Webアプリケーションに対する各種診断も合わせて重要となります。
お見積り・ご相談など、お気軽にご相談ください
サイトTOPへ