データ暗号化は、サイバーセキュリティの基本的な構成要素であり、保存データまたは転送中のデータの読み取り、窃取、改ざんといったことができないようにします。オンラインに移行するデータが増えるにつれて、データ暗号化がサイバーセキュリティでますます重要な役割を果たすようになっています。これは、特に金融、医療、政府機関など機密データに対処するセクターに当てはまります。
この記事では、データ暗号化の概要を示します。つまり、データ暗号化とは何か、どのような利点があるか、今日使用されているデータ暗号化にはどのようなタイプがあるかを説明します。
データ暗号化とは
データの暗号化とは、プレーンテキストをエンコードされた形式に変換して、データへの不正アクセスから保護することです。つまり、暗号化アルゴリズムを使用して、読み取り可能な形式を理解不可能な形にエンコードするため、対応するデコードキーを保持していない当事者は理解できなくなります。外部の当事者には、エンコードされた形式(暗号テキスト)がランダムに見えるため、ブルートフォース攻撃によってデコードするのは困難です。
データを暗号化する利点とは
データ暗号化は、データプライバシーを維持し、機密性を保護して、規制を遵守するうえで不可欠です。まず、データ暗号化は不正な第三者から機密情報を保護します。暗号テキストは暗号化キーがなければ判読できないため、データ侵害や偶発的な漏洩によってこのデータが盗まれたとしても、攻撃者がデータを使用することはできません。このようにデータ暗号化により、データの窃取や損失のリスクを軽減できるようになります。
第二に、データを暗号化すると、機密性を保護できるようになります。例えば、仮想プライベートネットワーク (VPN) では暗号化を使用して、ユーザーのオンラインアクティビティを保護し、インターネットサービスプロバイダーがユーザーのアクティビティを解読または追跡するのを防ぎます。他に医療といった業界では、データを暗号化することで、個人情報を保護しています。
最後に、データ暗号化により、機密データを扱う組織は所属するセクターに適用される規制条項を遵守できるようになります。例えば、米国の場合、情報をオンラインで処理する組織はSystem and Organization Controls (SOC 2) 監査の対象になります。SOC 2の遵守を維持するには、機密データを暗号化する必要があります。
とはいえ、コンプライアンス対策が必要ない場合でも、組織は暗号化の恩恵が受けられます。お客様との信頼を築きたいのであれば、データ保護を真剣に考える必要があります。その際、堅牢な暗号化基準が重要な役割を果たします。
対称と非対称のデータ暗号化
暗号化の主なタイプには、対称と非対称の2つがあります。両者の主な違いは、暗号化に使用されるキーが復号化に使用されるキーと同じかどうかです。
対称暗号化では、データの暗号化と復号化の両方に同じキーを使用します。通常、対称暗号化の方が動作が速くなります。ただし、この方法の主な欠点は、悪意のある攻撃者に暗号化キーを盗み出されると暗号化されたすべてのメッセージが復号化されてしまうことです。また、対称暗号化には認証や整合性チェックの機能がなく、暗号化されたメッセージの送信者やメッセージの改ざんの有無を検証できません。
対称暗号化アルゴリズムの例として、Advanced Encryption Standard (AES) やData Encryption Standard (DES) などがあります。
一方、非対称暗号化では、2種類のキー(公開キーと秘密キー)を使用してデータを保護します。公開キーはデータの暗号化に使用され、対応する秘密キーはデータの復号化に使用されます。
非対称暗号化は、複雑な数学的手順でリンクされた複数のキーを使用するため、対称暗号化よりも動作が遅くなります。ただし、公開キーは暗号化にのみ使用されるため、リスクなしで自由に共有できます。秘密キーの保有者が秘密キーを安全に保護している限り、その保有者がメッセージを復号できる唯一の当事者になります。
また、非対称暗号化では、デジタル署名を利用して送信者のアイデンティティとメッセージの整合性を容易に検証できます。デジタル署名は、送信者がメッセージの一意のハッシュを作成し、秘密キーでそのハッシュに署名することで機能します。受信者は、送信者の公開キーを使用して署名を検証して、送信者のアイデンティティとメッセージの整合性を確認します。
非対称暗号化アルゴリズムの例として、Rivest-Shamir-Adleman (RSA) や楕円曲線暗号 (ECC) などがあります。非対称暗号化と対称暗号化という概念はデータをどのように暗号化するかに関わるものですが、データをいつ暗号化するかという問題でもあります。この問題では、「転送中の暗号化」と「保存時の暗号化」という用語をよく目にすることになります。
転送中のデータと保存データの暗号化
転送中のデータ(転送している最中)を保護することは、保存時(保存するとき)にデータを保護するのと同じくらい重要です。
転送中の暗号化では、データが2つのシステム間で移動するときにデータを保護します。例としてよく挙げられるのが、WebブラウザとWebサーバー間の対話です。ブラウザからのリクエストがサーバーに伝播されると、Transport Layer Security (TLS) などのプロトコルを使用してデータが暗号化されます。TLSは、暗号化の他にもセキュリティ対策を提供する複雑なプロトコルです。
- 公開キー/秘密キーによるサーバーとクライアントの認証、およびデジタル証明書の交換。
- 対称暗号化アルゴリズムと非対称暗号化アルゴリズムを組み合わせた暗号化。
- メッセージダイジェストの計算によるデータ整合性の検証。
HTTPSで保護されているWebサイトではTLSを使用することで、ブラウザとサーバー間で安全にデータを交換しており、転送中の暗号化という概念の典型的な例を示しています。
保存時の暗号化は、データを保存するときにデータを保護します。例えば、医療や金融サービスのプロバイダーであれば、データベースを使用して、医療記録やクレジットカードデータを保存します。ただし、デジタルの時代となった今、データはデータベースやエンドユーザーデバイスだけでなく、いくつもの場所に保存されます。こうした場所には、クラウドストレージサービス、バックアップディスク、オフサイトストレージなどがあります。
非構造化データは、事前定義されたデータモデルに準拠せず、データベースに存在しないことがよくあるため、新たに別の課題が浮上します。非構造化データには、Eメール、テキストドキュメント、画像、映像といった情報があります。このタイプのデータは通常クラウドやネットワークロケーションに保存され、組織の貴重なアセットのかなりの部分を占めることが少なくありません。この形式の機密データが承認されていない個人によってアクセスされた場合、組織は重大な損害や損失を被る可能性があります。そのため、非構造化データを保護することは重要です。
組織によっては、保存時にデータを保護するために数種類の手法を導入することがあります。
- ファイルレベルの暗号化:個々のファイルを暗号化します。
- ストレージレベルの暗号化:ストレージデバイス全体を暗号化します。
- データベース暗号化:通常、構造化データを暗号化するために使用されます。
- データトークン化:機密データを不明瞭なトークンに置き換えます。
- クラウドストレージ暗号化:通常、クラウドサービスプロバイダーによって提供され、ファイルごとまたはパケットごとにデータを暗号化します。
データ暗号化基準
数多くのデータ暗号化基準が存在しており、ますます巧妙化する攻撃に対抗するために常に新しいアルゴリズムが開発されています。コンピューティング能力が増すにつれて、ブルートフォース攻撃が成功することになれば、安全性の低い基準にとって深刻な脅威となります。このため、ソフトウェアには最新の安全性の高い基準を使用することが重要です。
データ暗号化基準 (DES)
DESは、1970年代初めにIBMによって開発され、1977年から2005年まで米国立標準技術研究所 (NIST) によって連邦規格として採用された対称暗号化アルゴリズムです。56ビットキーを使用して、一連の複雑な演算によって64ビットのプレーンテキストブロックを暗号化します。ただし、キーのサイズが比較的小さく、ブルートフォース攻撃に対して脆弱であることから、安全とは見なされなくなりました。
Triple Data Encryption Algorithm (3DES)
3DES(またはTriple DES)はDESプロトコルの亜種であり、DES暗号アルゴリズムが3回適用されます。DESのセキュリティは向上しますが、2016年にリリースされた共通脆弱性識別子 (CVE) により、3DESのセキュリティに大きな脆弱性があることが明らかになりました。中間者攻撃者がプレーンテキストデータの一部にアクセスできてしまうというものです。そのため、3DESは非推奨になり、AESが優先されるようになりました。
Advanced Encryption Standard (AES)
AESは、ベルギーの暗号技術者Joan DaemenとVincent Rijmenの名前にちなんでRijndaelブロック暗号とも呼ばれ、128ビットまたは256ビットのより大きなキーとブロックサイズを使用します(それぞれAES-128、AES-256といいます)。AESは、Substitution-Permutation Networkを使用して、データを対称的に暗号化することで機能します。
Rivest-Shamir-Adleman (RSA)
RSAは、1977年に初めて一般公開された最も古い非対称アルゴリズムの1つです。RSAシステムは、2つの大きな素数に基づいて秘密キーを作成します。次に、その素数の補助値で公開キーが導出されます。RSAは処理に時間がかかるアルゴリズムであるため、RSAを共有対称キーの暗号化に使用し、その後共有対称キーを使用して暗号化プロセスを速めることが多くなっています。
Twofish
ブロックサイズが128ビットの対称キーブロック暗号。キーサイズは最大256ビットですが、キーのサイズを変えることで、アプリケーションの要件に応じて異なるレベルのセキュリティを実現できます。Twofishは非常に安全であると考えられ、パブリックドメインにアクセスできるオープンソース設計になっています。
まとめ
この記事では、膨大なトピックであるデータ暗号化をめぐる数多くの基本概念を見てきました。データ暗号化とは何か、ビジネス用途でのその利点は何かについて説明しました。また、対称暗号化と非対称暗号化、転送中の暗号化と保存時の暗号化という概念、さらには今日使用されているよく知られたいくつかの暗号化基準を取り上げて具体的に詳しく説明しました。