強力な暗号化は不正アクセスからデータを安全に保護します。しかし、コンピューティング能力の向上や、暗号化を破る新たな手法の研究に伴い、強力な暗号化とみなされる具体的なアルゴリズムは時間とともに変化します。実際には、セキュリティツールが数多くの暗号化オプションを提供するため、十分な知識のないユーザーは混乱しがちです。その中には、すでに破られている暗号化方式も含まれます。それでも、最も強力な暗号化でさえ、効果的に導入するには重要なベストプラクティスに依存します。
暗号化アルゴリズムを強力にする要素とは?
強力な暗号化アルゴリズムには、強力な暗号鍵、強力な数学的アルゴリズム、複雑な暗号化プロセスが必要です。
強力な暗号鍵は、暗号化に使うパスワードです。パスワードが長いほど、または複雑であるほど、推測は難しくなります。ただし、暗号鍵は2進数であるため複雑さには限界があり、長さが必要になります。ほとんどの暗号化アルゴリズムでは、最低128ビット(128個の0と1の組み合わせ)が必要です。
強力な数学的アルゴリズムは、単純な数学的処理で構成されたアルゴリズムに鍵を入力します。現在の暗号化アルゴリズムは、楕円上の点、大きな素数の乗算、データの一部に対する排他的論理和(XOR)演算などをアルゴリズムの基礎として利用します。
複雑な暗号化プロセスは、暗号鍵と数学的アルゴリズムを複雑に組み合わせ、データのブロックに対して複数ラウンドの暗号化を実行します。たとえば、Blowfishアルゴリズムは単純なXOR関数を使用し、16ラウンドの暗号化それぞれで次の4つの処理を行います。
- データの左半分と18エントリーのP配列をXORする。
- XORのデータをF関数(データを変換する関数)の入力として使用する。
- F関数の出力とデータの右半分をXORする。
- 結果の左右の半分を入れ替え、次のラウンドの入力として使用する。
個々の要素は部分的な保護を提供します。鍵、アルゴリズム、暗号化プロセスを組み合わせることで、暗号化プロセス全体の強度が生まれます。暗号化は、データを発見されないよう変換するものであり、単にデータをマスクするトークン化や、ハッシュ化のように改ざんを確認するための出力を提供するものではない点に注意してください。
強力な暗号化が弱くなるとき
あらゆる強力な暗号化方式は当初、解読不能に見えます。しかし、暗号解析技術の進歩とコンピューティング能力の向上により、すべての暗号化方式はいずれ弱くなります。この組み合わせは古い暗号化アルゴリズムの能力を低下させる一方で、将来開発される新しいアルゴリズムの原動力にもなります。
たとえば、政府が承認した最初期の暗号化アルゴリズムであるDESは、64ビットのブロック、16ラウンドの暗号化、わずか56ビットの鍵を使って暗号化していました。当初、この56ビット鍵は既存のコンピューティングリソースに大きな負荷をかけましたが、コンピューティング能力の向上に伴い、総当たり攻撃による推測に対して脆弱になりました。
1997年、AES暗号化はDESに取って代わりました。AESは、ブロックサイズを128ビットに拡大し、10~14ラウンドの暗号化を使用し、鍵のサイズを最低128ビットに拡大する、より強力な暗号化方式です。National Institute of Standards and Technology(NIST)は現在、AESを強力な暗号化標準として推奨していますが、量子コンピューティングによって今後20年以内のいずれかの時点でAESが脆弱になる可能性も認めています。
ますます強力になるコンピューティング能力は暗号化アルゴリズムの有効性を脅かします。しかし現在、弱い暗号化アルゴリズムの強度よりも、暗号化プロセスの不備によってさらされるデータの方が多くなっています。ベストプラクティスを採用すれば、暗号鍵の窃取、漏えい、推測を防ぎ、暗号化プロセスを保護できます。
強力な暗号化を導入するためのベストプラクティス6選
他のセキュリティツールと同じく、ネットワークやクラウドセキュリティでも、不適切な導入は最も強力な機能の効果を損ないます。重要度は同じですが、ほとんどの組織では、暗号化のベストプラクティス上位6項目を実装する際に、実務上の優先順位が明らかになるでしょう。
セキュリティチームは通常、まず適切な暗号化を使用し、暗号化環境を把握し、運用可能な範囲で最も長い鍵を使用します。これらのベストプラクティスは追加のツールを必要とせず、セキュリティにすぐ効果をもたらします。次に、組織は暗号化を多層化し、鍵管理を保護・一元化し、アプリとWebの暗号化を保護します。この第2の3項目も、第1の3項目と同程度に重要で効果がありますが、実装には追加のツール、リソース、関係者の賛同が必要になることが多くあります。

適切な暗号化を使用する
既知の不良な暗号化や弱い暗号化を排除し、用途に適した暗号化を使用します。弱い暗号化アルゴリズム(後述)は、攻撃者が現代のコンピューティング能力で簡単にアルゴリズムを破ったり、鍵を推測したりできるため、もはやデータを保護できません。セキュリティツールには、過去に暗号化されたデータとの後方互換性を確保するため、今も弱い方式が含まれています。しかし、既知の不良な暗号化を現在使用することは排除すべきです。
また、用途によって必要な暗号化の種類は異なります。たとえば、非対称暗号化は公開暗号鍵を使ってデータの送信や共有を強力に保護しますが、データベースのフィールド、フルディスクドライブやローカルファイルを効率的かつ実用的に暗号化するには、運用上の負荷が大きすぎます。
暗号化環境を把握する
暗号化の利用状況を全体的に評価・棚卸しし、古い保護機能を置き換えるとともに、他の暗号化ベストプラクティスを例外なく適用できるようにします。資産の検出やデータ分析など、他のセキュリティ対策と同様、未知の対象は監視も制御もできません。
同様に、現在暗号化されているデータの利用状況を、組織全体のデータ利用状況と比較します。ほぼすべての組織が、保存中の重要データを保護するためにサーバーへフルディスク暗号化を適用しています。しかし、機密データには継続的な保護が必要であり、データの利用には追加のファイル、メール、データベース暗号化が必要になる場合があります。
運用可能な範囲で最も長い暗号鍵を使用する
人間がパスワードを記憶できる能力の限界を補い、コンピューティング能力を高めて運用上の制約を解消するため、パスワードマネージャーまたは一元化された暗号化管理を導入します。鍵が長いほど、セキュリティは強固になります。
ただし、暗号鍵を一律に長くするとコストが増加し、すべてのデータに最も強力な方式を使用する余裕のない組織もあります。通常は、データを特定のシステムに限定し、目的ごとに異なる鍵長を適用するのが最善です。たとえば、ノートパソコン上の機密性が低いデータは短い鍵で保護し、サーバーに保存された機密データは長い鍵で保護します。
暗号化を多層化する
複数の種類と複数の層の暗号化を使用し、攻撃への耐性を高めます。他のセキュリティ技術と同様、暗号化にも多層防御が必要です。暗号化を複数層にすることで、単一の暗号化ソリューションが失敗した場合の被害を抑えられます。特に重要なデータでは有効です。
層を重ねるごとに環境は強化され、不正な復号の試みに対する耐性も高まります。たとえば、Microsoftは保存中のデータを暗号化するディスク暗号化、独立したデータベース暗号化、データ送信用の暗号化VPNゲートウェイを使用することを推奨しています。
鍵管理を保護・一元化する
セキュリティを向上させるため、暗号化の専門家を活用し、暗号鍵管理を一元化します。攻撃者は最も弱い箇所を狙うため、鍵を簡単に盗めるなら、暗号化アルゴリズムを破るためにリソースを費やす必要はありません。データの重要性が高いほど、セキュリティ専門家が暗号鍵のプロセスを管理・統制することが重要になります。
十分な訓練を受けたセキュリティチームは、暗号鍵の生成、ローテーション、更新、廃棄を専門的に行う一元的な鍵管理を実施できます。一元管理により、アクセスや監査ログの定期的な確認、長期バックアップ内の暗号化状況の追跡、暗号化リソースへの安全なアクセス管理など、より高いセキュリティレベルと改善されたセキュリティプロセスを実現できます。
アプリとWebの暗号化を保護する
専門的なツールと暗号化に関する教育を通じて、アプリケーションとWebサイトの暗号化を強化します。OWASP Top 10は、開発者(DevOps)とWebアプリケーションセキュリティにとって最も深刻かつ一般的な脆弱性をまとめたリストです。暗号化コンポーネントの管理不備、弱い暗号化アルゴリズムの使用、暗号化アルゴリズムの不適切な導入などにより、暗号化の失敗はこのリストで2番目に位置しています。
弱い暗号化アルゴリズムはセキュリティを損ないますが、DevOpsのプログラマーが弱い暗号化を見分ける専門知識を持っているとは限りません。セキュリティチームは、承認済みおよび使用禁止の暗号化アルゴリズムやライブラリのリストを使って開発チームを教育し、弱い暗号化のリスクを低減します。DevOpsはさらに、暗号化の不適切な使用を検出するアプリケーション脆弱性スキャナーによって、このリスクを低減できます。
暗号化コンポーネントの管理不備は、鍵の漏えいや証明書の不適切な管理によって、安全で一元化された鍵管理の原則から逸脱するものです。たとえば、暗号化された接続を実現し、攻撃者が企業の証明書を盗んでなりすまし攻撃に利用するのを防ぐため、Webサーバーのセキュアソケットレイヤー(SSL)デジタル証明書を維持・保護します。
暗号化の不適切な導入は、プログラミング上のミスや、複雑な暗号化アルゴリズムの処理方法に関する誤解から生じる傾向があります。確立された暗号化ソリューションを使用し、変数の変更漏れ、鍵生成用の乱数の不適切な生成、アルゴリズムへの悪意ある入力や想定外の入力によって脆弱になるコードの使用など、一般的な問題を回避します。
最も強力な暗号化オプション
ベストプラクティスを整えたうえで、最も強力な暗号化オプションを選択します。多くの場合、暗号化ツールは、既知の不良なアルゴリズム(後述)、良好なアルゴリズム、より優れたアルゴリズムを含む選択肢を提供します。しかし、メニューの選択肢だけでは、どのカテゴリに属するのか、また安全でない可能性があるのかを判断できる手掛かりがほとんどありません。
「良好」とされる暗号化は十分な保護を提供しますが、時間、性能、予算が許す限り、より優れた暗号化を選択してください。データ窃取のリスクが高いほど、またはデータの機密性が高いほど、より優れた暗号化への移行を急ぐべきです。
現在、「最善」の暗号化について合意はありません。組織が導入できる方式を決めるうえで、コストとユースケースが大きな役割を果たすためです。新しい量子耐性アルゴリズムでさえ、商用利用の可能性が限られ、十分なテストを行えるほど長く使われていないため、まだ優れたソリューションとはみなされていません。
さらに、システムに組み込まれているアルゴリズムを調査し、組織がより強力な暗号化オプションに投資する必要があるかを判断します。たとえば、UNIXに組み込まれたbcrypt暗号化ライブラリはBlowfish暗号(良好な暗号化)を使用し、Password-Based Key Derivation Function 2(PBKDF2)はRSA鍵標準(より優れた暗号化)を使用します。
良好な暗号化オプション
Blowfish、Triple DES、WPA2などの良好な暗号化アルゴリズムは、組織が暗号化のベストプラクティスも守ることを前提に、許容可能な暗号化を提供します。
- Blowfishは、ファイル暗号化やフルディスク暗号化向けに、多くのUnixおよびLinuxライブラリに組み込まれたオープンソースの共通鍵暗号です。ただし、ブロックサイズが小さいため、実用上は4 GB未満のファイルに用途が限られます。
- Triple DES(TDESまたは3DES)は、古い決済システムやATMの暗証番号の保護に今も使われていますが、Sweet32 Birthday攻撃に対して脆弱とみなされており、Microsoftによって2019年にOffice 365から廃止されました。
- Wi-Fi Protected Access Version 2(WPA2)は、ほとんどの無線ルーターに搭載されており、暗号化通信に妥当な保護を提供します。
現在これらのプロトコルで暗号化されているデータのうち、機密性の低いものは保持し、機密性の低いデータの送信にはこれらの暗号化アルゴリズムを使用できます。
より優れた暗号化オプション
AES、ECC、RSA、Twofish、WPA3などのより優れた暗号化は、広く利用可能な現行のベストプラクティスであり、上記の良好な暗号化アルゴリズムより優れています。
- Advanced Encryption Standard(AES)はNISTが承認した方式で、128~256ビットの暗号鍵サイズに対応し、暗号化に置換変換と転置変換の両方を使用します。
- 楕円曲線暗号(ECC)は楕円上の点を使い、192ビットから始まる鍵サイズ(デフォルトは256ビット)で強力な暗号化を実現します。
- Rivest-Shamir-Adleman(RSA)暗号化は、512~4096ビットの範囲の大きな素数を暗号鍵として使用します。
- Twofish暗号化はBlowfishアルゴリズムの後継であり、128~256ビットの鍵サイズによって暗号化を強化します。
- Wi-Fi Protected Access Version 3(WPA3)はWPA2よりも暗号化機能が向上しており、対応するWi-Fiハードウェアで採用すべきです。
これらのより優れた暗号化標準を重要なデータ、機密データ、規制対象データに適用し、総当たり攻撃やアルゴリズム攻撃への耐性を高めます。
弱い暗号化の例
専門家は、DES、WEP、WPAなど、破られている、または既知の弱点がある暗号化標準を避けます。これらの標準で以前に暗号化されたデータは、より強力なアルゴリズム(前述)を使って積極的に再暗号化すべきです。
- Data Encryption Standard(DES)はNIST初の暗号化標準を提供しましたが、56ビットの鍵は短すぎ、総当たり攻撃による推測に対して脆弱です。
- Wired Equivalent Privacy(WEP)はIEEE 802.11無線標準の一部として無線セキュリティを導入しましたが、アルゴリズム設計上の重大な欠陥により、このアルゴリズムは時代遅れで危険なものになっています。
- Wi-Fi Protected Access(WPA)はWEPを改良された暗号化で置き換えましたが、なりすまし攻撃に対して脆弱なままであり、WPA2とWPA3に置き換えられました。
セキュアソケットレイヤー(SSL)や初期のトランスポート層セキュリティ(TLS)標準など、多くの古いコンピュータープロトコルにも、時代遅れの暗号化アルゴリズムが組み込まれています。ITセキュリティチームは、組織全体でこれらの古いプロトコルの使用を特定し、無効化しなければなりません。
結論:暗号化ソリューションを定期的に評価する
1970年代に最も強力だった暗号化も、1990年代にはより強力な暗号化に置き換えられ、存続できませんでした。しかし、90年代に最も強力だった暗号化オプションも、現在では最新のコンピューティング能力に対する弱点を示しています。幸い、コンピューティング能力の向上が古い暗号化標準を弱体化させる一方で、より大きな鍵サイズを持つ、より強力で複雑な暗号化の採用も可能にしています。
ベストプラクティスを効果的に導入すると、暗号化プロセスを継続的に管理・評価できるセキュリティ環境が構築されます。暗号化ツールをアップグレードすれば、通常はあらゆるセキュリティスタックの基本レイヤーとして暗号化を維持するのに十分ですが、安全を保つため、暗号化オプションの定期的な評価も続けてください。





