どうも。BITAでインターン中のいちきです。
Web業界で働いていながら、「鍵」について知らないなんて方はいませんよね?
僕ですか?もちろん知ってますよ!当たり前じゃないですか!
それはですね!・・・あれ・・・
いやー。まいった。知らない。知らないよ。
今まで知ったかぶっていただけだった…
自分が恥ずかしい…
というわけで、Web業界で働くにあたり、
知らないではすまされない「鍵」のお話を今回はしていきたいと思います。
暗号化と鍵について
最近のニュースでセレブのなんとも言えない写真が世に出回ってしまいましたが、現在ではデータをいかに安全に保持するか。またいかに安全に相手に渡すかがかなり重要視されています。
通常のインターネットを利用している状態では、データが傍受される可能性は十分にありうるわけですね。
ただ、傍受されるのを防げないなら、内容を暗号化して他の人が盗んでもわかりにくいモノにしてやろうと。
暗号化の方式は色々とありますが、今回は主に使われている共通鍵暗号方式、公開鍵暗号方式の説明をしていきたいと思います。
共通鍵暗号方式と公開鍵暗号方式の仕組み
共通鍵暗号方式
これは、家の鍵と同じように開ける鍵と閉める鍵が同じというものです。
大抵、家の鍵は家族全員が持っていますよね。
それと同じで共通鍵暗号方式では複数の人が同じ鍵を持てます。
これが共通鍵暗号方式の仕組みです。
ただ、共通鍵暗号方式のデメリットは、インターネットを使って安全に鍵を渡すのが難しいということです。
受け渡しの際に鍵自体が盗まれてしまうと、あとから渡すモノ自体も、盗まれた鍵で開けられてしまう危険性が出てしまいます。
この点も一般的な鍵と同じですね。
家族で使っている鍵が一個でも盗まれたら、家に入られてしまう危険性は出てしまいますよね。共通鍵暗号方式も同じ仕組みをしています。
公開鍵暗号方式
では、
先ほどのデメリットであった「受け渡しの際になるべく安全に鍵を渡す」もうひとつの方法があるので、そちらもご説明します。
これは、開ける鍵と締める鍵が別のものになります。
公開鍵暗号方式の一番の魅力は開けるための鍵を外部に出していないところです。
南京錠が例え受け渡しの際に盗まれてしまったとしても、開けるための鍵は自分しか持っていないため、他人が開けることはできません。
こうしてデータを安全に受け渡すことが出来ます。
ただ、公開鍵暗号方式のデメリットは受け渡しが一方通行になりがちなところです。
相手の人と相互にデータをやりとりする場合は、相手にも別で開ける鍵と南京錠を作ってもらう必要があります。
ただ、その分暗号化の処理も長くなってしまうので、データ量が多い場合や受け渡しを素早くしたい場合には向かないので注意してください。
公開鍵認証の仕組み
先ほどまで鍵を使ってデータを暗号化する方法について説明してきましたが、鍵は暗号化だけではなく、認証にも利用することが出来ます。
方法は先ほどの公開鍵暗号と少し似ているため、暗号と認証についての考え方が混ざってしまわぬように注意してください。
認証方式とは言葉の通り認証をどうやって行うかです。
みなさんがご存知のパスワードを使ってログインする方法も認証のひとつです。
しかし、鍵を使ってパスワード認証よりもさらにセキュリティを高く保てる方法があるので、そちらをご説明します。
公開鍵認証
本当はもっと複雑な処理をしているのですが、ここでは簡単な説明にしておきたいので、省略しています。
ただ、パスワード認証よりもこの方がセキュリティが高いのがわかりますね。
現在では鍵とさらにパスフレーズ(パスワード)を組み合わせたものも存在します。
今はそれが一般的です。
しかし、ここで注意していただきたいのが、認証方式はあくまで認証なので、渡すデータを暗号化しているわけではありません。
どこにどういう暗号化の仕組みを利用しているのか等を意識していただければOKです。
まとめ
今まで、説明してきた内容をまとめると
-
共通鍵暗号方式
- 開け閉めが同じ鍵
- 鍵の開け閉めの時間が速い
- ネットを使って鍵を渡すのが難しい
-
公開鍵暗号方式
- 開け閉めが別の鍵
- 鍵の開け閉めの時間が遅い
- ネットを使って安全に鍵を渡せる
-
公開鍵認証
- サーバログインなどに使われる
- パスワード認証よりもセキュリティが高い
-
公開鍵暗号方式と公開鍵認証の相違
- どちらも公開鍵と秘密鍵を使う
- 暗号化をするのか認証するのかの違い
- 認証の場合は暗号化するために、SSHといったプロトコルを利用する
さーこれで皆さんも公開鍵暗号方式がどういうものかわかり、何をしていいかわかりましたね?
なので、これからサーバ用に鍵を作っても決して秘密鍵をメールで受け渡したりしないで下さいね。(逆に公開鍵はOKです!)
さいごに
最近ハッキング被害や情報漏洩のニュースを見かけますが、セキュリティを少しでも気にしている人が多ければ未然に情報漏洩なんかも防げるんじゃないかなと。
あまりwebに関して知らない方や非エンジニアの方でも理解しておいて損はないと思います。
今回の記事で鍵の仕組みについて理解して頂ければ、僕はそれで幸せです。
ではまた。