情報セキュリティの世界には魅力的なトピックがたくさんあるが、(これは純粋に個人的な意見だが)私が他のどのトピックよりも優れているものを1つ挙げるとすれば、暗号技術が最も高いレベルを占めるだろう。
このトピックは純粋数学に最も深く根ざしているが、現在では何千人もの人々の日常生活におけるテクノロジーの多くの分野に触れている。 それは複数のレベルで存在し、私たちの電子的な秘密を守る鍵なのだ。
しかし…暗号とは何なのか?
暗号は、権限のない人には読めない形式でコンテンツを暗号化する方法である。 これは、データの安全を守るための一連のテクノロジーで構成されている。 暗号化という用語は、暗号技術とほぼ同義である。
元のテキストは誰でも読むことができ、クリアテキストまたはプレーンテキストと呼ばれる。 暗号化は暗号化されたテキストを生成する。
保護されていない接続を使用する場合、適切な暗号化プロトコルがなければ、転送中のデータを平文で見ることで、スヌーパーが個人情報を盗むことは比較的容易です。 例えば、あなたがカフェで暗号で保護されていない接続で電子メールを送信すると、他のテーブルのコンピュータにいる人があなたのトラフィックを拾い、あなたの電子メールを読むことができる。
様々な暗号の種類を対称型と非対称型に分類することができる。
対称暗号は、同じ1つの秘密鍵を使ってクリアな情報を暗号化し、それを復号化する。 テキストが個人間で送信される場合、送信者と受信者の両方が同じキーを使用する。
実際には、送信者は秘密の鍵でメッセージを暗号化し、通信チャネルを通じてメッセージを送信する。 受信者はメッセージを受け取り、秘密鍵で復号する。 受信者は通常、あらかじめ定義された安全な送信チャネルを通して送信者から鍵を受け取る。 安全な送信チャネル……メッセージに使われたのと違うチャネル。 というのも、定義上、そのチャネルは攻撃者に閲覧可能であると想定されているからだ。
鍵は、当事者間で共有される秘密を表し、情報のプライベート・リンクを維持するために使用できる。
対称暗号は比較的単純で(鍵を作るための数学は非常に高度だが)、実装が簡単で、全体的な性能も高い。
対称暗号をサポートするアルゴリズムの中には、次のようなものがある:
その中でもAESは現在最も近代的で堅牢であり、政府機関でも非常に機密性の高い情報によく使われている。
公開鍵暗号としても知られる非対称暗号は、2つの異なる鍵を用いてデータを暗号化・復号化する。 この2つの鍵は「公開鍵」と「秘密鍵」と名付けられる。 公開鍵は、送信者がメッセージを読めるようにしたい場所であればどこにでも配布することができるが、秘密鍵はもちろん秘密にしておかなければならない。
2つの鍵のどちらかがメッセージを暗号化した場合、もう一方の鍵でしか復号化できない。
非対称暗号は、鍵が長く、実行される関連計算がはるかに複雑であるため、対称暗号に比べて著しく遅い。
使用されている鍵の長さが非常に長いため、関連する公開鍵から秘密鍵を導き出すことは事実上不可能である。
公開鍵は、攻撃者が奪取できるような経路で安全に送信できるため、対称暗号で使用する秘密鍵の交換には非対称暗号が使われることが多い。
非対称暗号をサポートするアルゴリズムには次のようなものがある:
RSAは、その使いやすさと、計算エントロピーに由来する本質的な堅牢性から、メッセージの暗号化と署名に好まれるアルゴリズムである。
非対称鍵は、暗号化におけるもう一つの基本的なインフラ概念である: 公開鍵基盤(PKI)である。
PKI は、「信頼できる」権威ある第三者がユーザーの身元を決定し、公開鍵がそのユーザーに正当に帰属 することを検証できるようにする一連のプロセスとツールである。
PKIの背景にあるのは、ユーザーがオンライン上で最初のコンタクトを取るとき、例えば小売店のウェブサイトにログインするとき、彼らが望む実在の人物や企業に接触しているかどうかわからないということである。 悪意のある “中間者 “攻撃者は、大手小売サイトを名乗ることができ、暗号化キーだけでは、正規のサイトがキーを送信していることを保証できない。
以前はお互いを知らなかった当事者間のインターネット通信に必要な信頼を提供するために、PKIは少なくとも一方の当事者の身元を登録する。
IDは、X.509と呼ばれる規格のデジタル公開鍵証明書で定義される。
認証局(CA)と呼ばれるサイトは、双方から認められ信頼されており、サイトを公開鍵に安全に結びつけるデジタル証明書を作成する。 ウェブ・ユーザーは一般にCAを信頼するが、それはCAのアイデンティティがユーザーのブラウザにハードコードされているからである。
PKIの実装は、たとえば以下のような文脈で見られる:
これで暗号とその価値について大まかに理解できたはずだ。 ここでは、暗号を使うためのさまざまな文脈を見ていこう:
主な電子メール暗号化プロトコルはS/MIMEとPGP/MIMEです。
S/MIMEは、Secure/Multipurpose Internet Mail Extensionsの略で、ほとんどのデバイスに統合されており、使用する暗号化アルゴリズムと鍵を決定するために中央管理CAを使用する。 S/MIMEは、主に大規模なウェブベースの電子メールプラットフォームで使用されている。
PGP/MIMEは、Pretty Good Privacy/Multipurpose Internet Mail Extensionsの略で、分散型権威モデルを使用している。 S/MIMEとは対照的に、鍵の管理はCAによって管理されるのではなく、ユーザーの責任となります。 このプロトコルは、サードパーティの暗号化ソフトウェアに依存している。
PGP/MIMEはプロプライエタリなものだ。 フリーの再実装であるGnuPG(GPGとも呼ばれる)は、大きな違いなく同じタスクを実行する。
ユーザーは、HTTPの代わりにHTTPSで始まるURLを入力またはクリックすることで、ウェブサイトへの暗号化された接続を確立する。 HTTPSはハイパーテキスト伝送プロトコルで、インターネット上で送信されるすべてのトラフィックが暗号化されるため、安全です。 したがって、接続がHTTPSに基づいている場合、データのプライバシーと完全性が保証される。
HTTPSは、日付をプレーンテキストで送信するHTTPの後継であり、(ごく稀な使用例を除き)徐々に非推奨となっている。
HTTPSプロトコルは、HTTPをTLS暗号プロトコル(ウェブ暗号化のための別のプロトコル、SSLの後継)と統合し、有効なデジタル証明書を追加する。 SSLとTLSは基本的に同じプロトコルで、時代とともに進化してきた。
安全なHTTPSでデータを送受信するブラウザには、緑色のロックが表示されることが多い。
データは複数のレベルで暗号化することができる。電子メールやウェブを使用する際の送信だけでなく、ハードドライブ、USBドライブ、テープドライブなどのストレージデバイスのローカルでも暗号化することができる。
ストレージ側またはファイル側の暗号化を使用することで、データ損失のリスクを大幅に相殺することができる。 ネットワーク上で使用される暗号化と同様に、ストレージ側の暗号化も、物理メディアのタイプ、インターフェイス、データ・プライバシー・クラスに関係なく、すべてのデバイス上のすべてのデータを保護する非常に強力なツールである。
ストレージ側の暗号化は、特にデバイスが盗難にあった場合にデータの安全性を確保するための素晴らしい方法だ。
Linuxユーザーは、Linux Unified Key Setup (LUKS)によってデータを安全に保つことができる。 ブルートフォース(総当たり)暗号化アルゴリズムを採用し、強力なパスワードが使用されればデータを完全に保護する。 LUKSは現在、バージョン2である。
新しいLinuxディストリビューションでは、オペレーティング・システムのインストールの最後に、ディスクの内容へのアクセスを制御するための強力なパスワードを設定するフルディスク暗号化(FDE)も提供されている。 フルディスク暗号化を使ってディスク上のデータを暗号化した場合、パスワードを紛失すると内部のデータを復元するのは非常に困難になる。
絶対的な安全は夢物語だが、J・W・フォン・ゲーテの言葉を借りれば、”確かな一歩を踏み出したい者は、ゆっくりと歩かなければならない”。
サイバーセキュリティについて、またデータと評判を守る方法についてもっと知りたい方は、Linux Professional Institute Security Essentialsをご覧ください。