無線LANのセキュリティについて図解でざっくり理解する

こんにちは！
TechCommitアドベントカレンダー8日目を担当するあみぃです。
![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2339830/8bfff677-68df-95e0-bda0-2459ccdad6c7.png)
私は今CCNAの勉強をしているのですが、無線LANのセキュリティで訳の分からない略語がたくさん出てきて理解しにくかったので、図解してみました。

CCNA勉強中の人はぜひ参考にしてほしいですし、そうでない人も、普段何気なく使っている無線LANはこうして守られているんだというのを知る機会にしていただけたらと思います！!


#無線LANの危険性
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2339830/9637f9a4-1394-f7f8-5c25-23b27a30e991.png)
無線LANでは、データが有線を伝ってではなく、空気中を飛び交います。
ということは、

・盗み見
・不正接続
・改ざん

などの危険性があるわけです。
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2339830/680f9a77-dd7c-eff1-d327-43d95e2a5071.png)
そのため、それぞれの対策として、

・暗号化
・認証
・整合性の検証

という仕組みがあります。

具体的には、以下のような技術です。
![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2339830/3c95990b-3ef9-55c9-e5e5-dd3ec340a9dc.png)
訳が分かりませんね。
順を追って見ていきましょう。

#暗号化
###共通鍵暗号方式
まずは暗号化についてですが、その前に「共通鍵暗号方式」というものについて説明しておきます。

これは、データの暗号化の際に「鍵」と呼ばれる値を使うことで、後ほど説明する「アルゴリズム」が分かっても、「鍵」の値が分からないと復号することができない技術のことです。
![6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2339830/d1cf4b70-9de0-7cda-9a30-593f68f27fea.png)
暗号化と復号に**同じ鍵**を使うため、**「共通鍵暗号方式」**と呼ばれています。

ちなみに、暗号化と復号で**違う鍵**を使う方式のことを、**「公開鍵暗号方式」**と呼びます。こちらについては、以前私の[ブログ記事](https://amybunny.work/post/crypto/)で解説したので余裕のある方は見てみてください。

###アルゴリズムと方式
さてここから本題です。
暗号化の技術は「アルゴリズム」と「方式」の2種類から構成されます。
![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2339830/54db8d0d-4256-0489-4da9-34032b9d06e5.png)
**アルゴリズム**とは、例えば「文字を1つ後ろにずらす」などのように、元の内容を暗号にするための手順や規則のようなものです。

・RC4
・AES
・CNSA

などといった技術が挙げられます。

それぞれがどんな規則なのかというと・・・
>RC4では暗号鍵を元に1ビットずつ擬似乱数列を発生させ、平文とXOR（排他的論理和）を取ったものが暗号文となる。復号時には暗号文に対して同じ擬似乱数列とXORを取れば平文を取り出すことができる。鍵長は40ビットから2048ビットまでの範囲で選択することができる。
>出典：[IT用語辞典e-Words　RC4【Rivest’s Cipher 4】Ron's Code 4 / ARCFOUR](https://e-words.jp/w/RC4.html)

・・・よく分かりません！！！（暗号化警察の人来ないで！！）
ここは、「そういうものだ」ととらえた方が良さそうです。

対して**方式**とは、アルゴリズムを使ってどうやって暗号化するかを決めている規格のことです。

・TKIP
・CCMP
・GCMP

などが挙げられます。

アルゴリズムに比べて少し分かりにくいですが、暗号化に使う鍵が毎回変わったり、とても長かったりすると押さえればよいと思います。
![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2339830/5e2a99f2-3b06-b1d3-8b28-473a9a9c1285.png)
以上が暗号化についての説明です。

#認証
次は認証についてです。

認証とは、悪意を持った人や部外者の接続を防ぐために、接続しようとする人が本物かどうかをチェックする仕組みのことです。

・PSK認証
・SAE
・IEEE802.1x認証

などが挙げられます。
![7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2339830/3210ef64-d18f-2c72-48df-f07cc42be08f.png)
**PSK認証**は、一般家庭でよく使われている、パスワードを入力するタイプの認証です。

**SAE**は、パスワードを総当たり攻撃や辞書攻撃から保護してくれるものです。
これら2つは別名**WPAパーソナル**とも呼ばれます。
![8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2339830/a3790b62-08d7-4d5c-2d36-6d29369c8132.png)
そしてもう一つは**IEEE(アイトリプルイー)802.1x認証**で、図に示したようにそれぞれの役割を持った3種類の端末が相互にやり取りをすることで認証する方式です。別名**WPAエンタープライズ**と呼ばれ、その名の通り社内LANや通信会社の公衆Wi-Fiなど大きなネットワークで使われます。

以上が認証についての説明です。

#整合性の検証
セキュリティ技術の最後は整合性の検証です。
これは、受信したデータに誤りがないかを確かめるためのものです。

・CRC32
・MIC
・CCM

などが挙げられます。
![9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2339830/61a36243-77cd-216a-a1f8-c3dab78c56ff.png)

試しにCRC32とはどんなものか調べてみましょう。
>CRCとは、誤り検出方式の一つで、データを値とみなしてある定数で割った余り（余剰）を用いて誤りの検知を行なうもの。その検査用の値をCRC値、CRC符号、巡回冗長符号などと呼ぶが、値自体をCRC（Cyclic Redundancy Code）と呼ぶこともある。
>出典：[IT用語辞典e-Words　CRC【巡回冗長検査】Cyclic Redundancy Check](https://e-words.jp/w/CRC.html)

・・・ここら辺も、「そういうものだ」ととらえておきましょう。
ちなみにCRCの詳しい説明は情報処理試験のテキストに載っていた気がします。

以上が整合性の検証についての説明です。

#無線LANのセキュリティ規格 

さて、これまで説明してきた技術（暗号化のアルゴリズムと方式、認証、整合性の検証）が組み合わさって、無線LANのセキュリティ規格ができています。
![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2339830/4033947c-2b75-5a4a-bfbb-787e4f3db130.png)
安全性については、表の下に行くほど高まっています。
WEPは脆弱性が見つかったため推奨されておらず、現在もっとも普及しているのはWPA2です。

#おわりに
今までなんとなく見たことがあった単語が少しは身近に感じられたでしょうか？
ざっくりとした理解を目指したため、少々不正確な面もあるかと思います。
もし重大な誤りなどありましたら**優しく**ご意見ください。
お読みいただきありがとうございました。