暗号化の概要 ~基礎編①~
今回の授業は、「暗号化の基礎」について学んでもらいます。暗号化と聞くと、「難しそうだな~」とか、「とりあえず、決められてた設定すればいいんでしょ?」と思われる方もいますが、概念をしっかりと抑えておくだけでもネットワークエンジニアとして深さは変わってきます。あまり警戒し過ぎずに、まずは暗号化の基本的な考え方から学んでいきましょう!
昨今の状況から、「暗号化」という言葉を聞いたことがない人はいないでしょう?ただ、「暗号化ってなんですか?」と質問されたら、ちゃんと答えられる人は多くないように思います。また「暗号化」と言われても、技術は日々変化していますし、その進化を追い続けることはとても大変なことです。ですので、まずは、基本的な概念を理解しておくことから始めましょうね!
Contents
暗号化とは
そもそも「暗号化」とはなんでしょうか?簡単に言ってしまうと、「データを望んだ人だけに伝えるための技術」をいいます。他人宛のデータを盗聴する悪いハッカー(ブラックハッカー)やクラッカーなどから、大切なデータを守る技術となります。この暗号化を学ぶためにはいくつかの言葉を知っておく必要があります。今回は、基本的な用語を解説していきますので、1つずつ理解していきましょうね。
必要なセキュリティ機能
世の中のあらゆる脅威から会社の情報を守るために、「機密性」、「完全性」、「認証」、「否認防止」などのセキュリティ機能が必要となります。データのセキュリティを確保するためには、「機密性」と「完全性」を確保して、データの送受信する相手を「認証」します。また、送信してきたデータに対して、否認出来ないようにすることが重要とされております。
機密性
セキュリティと言われると一番最初に頭に浮かぶのが、この「機密性」になる方が多いかもしれませんね。この「機密性」とは、送受信されているデータを途中経路で盗聴されたとしても、第三者に内容を知られないようにすることです。基本的なことかもしれませんが、機密性の対象となるのはデータだけではなく送信元・受信先のIPアドレスや使用しているプロトコルなども対象となります。
完全性
「完全性」とは、データが完全な状態であることを保証することです。例えば、ネットバンキングでAさんに10万円振り込みしている時に、データを途中で改ざんされてしまい、振込先をBさんに変更されてしまったら大変なことになりますよね?そんなことが発生しないように、途中でデータの改ざんが行われていないことを保証する機能が必要となります。それが、完全性と言われるものです。
認証
「認証」とは、データの送受信する相手が正当な相手であることを確認することを言います。その相手を認証するために、「ID」と「パスワード」などを使用します。これにより「なりすまし」などから大切なデータを守ることが出来ます。
否認防止
「否認防止」とは、データのやり取りする際に「認証」をすることで、後でデータを送受信したことを否認できなくすることが出来ます。例えば、悪意のあるデータを送信したことを隠そうとしても、データをやり取りした証跡が保存されることで、言い逃れ出来なくなります。
暗号化と複合化
次に知っておいてもらいたい言葉として、「暗号化」と「複合化」と言う言葉があります。(「複合化」と言う言葉はなく「複合」と言われている方もいますが、とりあえず文字数も揃ってキレイなので、ここでは「複合化」と言うようにします。)
まず暗号化処理されていないデータを「平文(ひらぶん)」と呼びます。このデータを受信先に送付する際に、途中で盗聴されても内容が知られないように処理することを「暗号化」と言います。そして、暗号化されたデータを読める状態に処理することを「複合化」と言います。それではデータを「暗号化」、「複合化」する場所について考えてみますので、黒板を見てください。
このように送信元に近い場所でデータは暗号化され、宛先の手前で複合化されるようになります。この暗号化されている区間は、盗聴されてもデータを読み取られることが不可能となるわけです。
特にこのような暗号化は、拠点間通信で使用されることが多くあります。そのため暗号化処理は送信元のビルで、複合化処理はは宛先のビルで行わるため、拠点間で盗聴されてもデータの中身を読み取られることがないようになるのです。
暗号化アルゴリズム
暗号化アルゴリズムとは、データを暗号化処理するためのルールのことを言います。その処理方法には大別して2種類があります。1つは「共通鍵暗号化方式」、もう1つが「公開鍵暗号化方式」となります。
共通鍵暗号化方式
共通鍵暗号化方式とは、暗号化する鍵と複合化する鍵が同じ鍵(共通鍵)を使用する暗号化方式のことを言います。例えば、以下のようなケースで暗合化する場合を考えてみましょう。(あくまでイメージです。)
<暗号化ケース>
・3個の数字「123」を暗号化する
・共通鍵を「右に3ずらす」にする
・暗号化する際に使用する数字は「0~9」までの数字とする
この場合、平文である「123」を右に「3」ずらして暗号文にすると「456」になります。
この暗号文を見ても、平文の中身はわからないので安心できます。続いてこの暗号文を複合化してみると、共通鍵で「3」ずらしていることは送受信の双方で合意しているので、元の平文に戻すだけになります。
このように、同じ「3」という数字を使って暗号化、複合化処理がされます。とてもシンプルな仕組みとなりますが、欠点もあります。それは、秘密鍵を事前に送受信間で交換しておく必要があることと、秘密鍵が盗まれてしまうと簡単に解読されてしまうということになります。
公開鍵暗号化方式
公開鍵暗号化方式とは、事前に「3で暗号化してください!」と送信元に暗号化鍵(公開鍵)を周知しておきます。この「3」で暗号化されたデータを別の複合化鍵(秘密鍵)で複合化する仕組みとなります。このように暗号化と複合化を別々の鍵で処理をします。イメージは以下のようになります。(あくまでイメージですので、ご注意を。)
<暗号化ケース>
・3個の数字「123」を暗号化する
・公開鍵を「右に3ずらす」にする
・秘密鍵を「右に7ずらす」にする
・暗号化する際に使用する数字は「0~9」までの数字とする
このようにすると先程の共通鍵方式と同様に、「123」が暗号化されて「456」に変換されます。
これを複合化する場合は、「右に7ずらす」形となりますので、そうすると「123」に戻って元の平文と同じデータになります。
これはすごく簡単に解説していますが、実際はすごい難しい計算がされています。中身を全て理解する必要はありませんが、仕組みのイメージだけでも理解しておきましょう!
まとめ
だいぶ長くなってきましたので、今回の授業はここまでとします。実際、コンフィグを書くのはある程度決められた設定を入れるだけになることが多いですが、ちゃんと概念を理解しておくことは大切です!少しずつ学んでいきましょう!次は、少し「IPsec」について解説していきたいと思います。
暗号化の概要 ~基礎編②~
IPsec徹底入門
ちょっと古い本ですが、IPsecの基本的な概念は変わっていませんので、一度、読んでおいた方がいいかと思いますよ。
![]() |
【中古】 IPsec徹底入門 /小早川知昭(著者),西田晴彦(その他) 【中古】afb 価格:1,650円 |
早速の授業化ありがとうございます!
IPsecを勉強・設定する前に概念クラスで
セキリティを意識しないとなんですね・・・( ..)φ
Souniさん
コメントありがとうございます!
また続きを書いていきますので、楽しみにお待ちくださいー( ´ ▽ ` )ノ