はじめに
これは基本情報技術者試験を勉強した際に「セキュリティ意外と面白い」と思ったことがきっかけに書いた記事です。
僕の専門ではないですm(__)m
(ちなみに僕の専門はReal Time Strategyです)
セキュリティの三大要素
単にセキュリティといっても、攻撃の目的などはいくつかあります。多くの人(特にハッカーに憧れる子供とか)は攻撃と言うと情報を盗むことを想像するかもしれません。しかし、それ以外にも情報の改ざん・サービスの停止のために攻撃することもあるのです。
これから、情報の漏洩・改ざん・サービスの停止を狙う攻撃について、セキュリティ側が大切にするポイントを見ていきたいと思います。
機密性
これは情報の漏洩がされない、情報が盗み出されないことを示す言葉です。例えば、あなたが今から国のサーバにアクセスして全国民の住所や氏名を入手したとしましょう。これは情報を盗み取っているから国のサーバの機密性は低いといえるでしょう。ほかにも、AさんからBさんへのメールの中身をあなたが盗み見た。これも情報漏洩といえます。
さて、これはどのようにして解決できるでしょうか。例えば、そのデータを暗号化するのはどうでしょうか? AさんからBさん宛てに出した、暗号化されたメールをあなたが盗み見たとしましょう。中身がわからないのでは情報の盗みようがありません。これで情報の漏洩を防ぐことが出来ます。
完全性
次に完全性の話をします。これはデータが改ざんされていないことを示す言葉です。先ほど、あなたはAさんからBさんに宛てられた暗号化されたメールを入手しました。もちろん中身は見られません。しかし、もしも中身を書き換えてBさんに何食わぬ顔で送った場合どうなるでしょう。Bさんは虚偽の情報に踊らされるでしょう。
この問題点はメールが改ざんされていたことに気づかなかったことに問題があるといえるでしょう。では、このメールに何か約束をつけたとしたらどうでしょうか? 例えば、メール全体の文字列のビットごとの数字の合計を一番最後につけるとか。そのようなルールを知らない場合、せっかくメールを改ざんしてもBさんには気づかれるでしょうね。
可用性
これはサービスが停止をしないことをさす言葉です。数年前、Twitterが「バルス」という言葉で落ちたことはご存じですか? 金曜ロードショーで「天空の城ラピュタ」を上映したところ、多くのTwitter民が主人公の「バルス」のタイミングで「バルス」とツイートしたところ、ラピュタ城と同時にTwitterのサーバも負荷で落ちたそうです。これは可用性に関わる問題です。
これの対策は・・・
まあサーバを強化・多重化するのが定番でしょうか(何故か深く書かれていないのです。もしかして対策方法はないのか!?)
教えていただいた方法として、縮小運転があるそうです。提供するサービスの質を下げることでサーバへの負荷を下げて解決することです(要するに手抜き運転・・・)(2019/12/19更新)
最後に
いかがでしたか? とても軽い内容ですが、これがセキュリティで大切にされていることです。単にセキュリティと言わずに何から守りたいか分かっているだけでも、ちょっとだけ自慢げな態度を取れるのではないでしょうか?
ちなみに加筆・修正要請があればじゃんじゃん言ってください!
僕もセキュリティは浅いし、何よりも勉強になりそうです。