プログラミングと日々思ったことなど

ブログ名通りです。仕事でプログラミングをはじめました。

WEPとWPA【セキュリティ】

今回は、WiFiのセキュリティ(ワイヤレスセキュリティープロトコル)についてです。
WEPとWPA
WEP
RC4アルゴリズムをベースとした共通鍵暗号を採用している。
・64bitまたは128bitの共通鍵を使用
WPA
・4way Handshakeを用い、テンポラリーキー(PTK)を作成。
4way Handshakeとは、暗号鍵を交換する手順。無線AP(無線LANアクセスポイント)と無線クライアントのMACアドレス、etcの情報から一意の鍵を作る。
参考:
https://milestone-of-se.nesuke.com/nw-advanced/nw-security/krack/
無線LANの基本とセキュリティ技術 | 技術コラム集 | [技術コラム集]組込みの門 | ユークエスト株式会社

Beaconってどこかで聞いたことある用語だったのですが、定期的にAPがいるよ!って呼びかけるのためのパケットだったんですね。
WEPは弱点が多い(パケットを収集すると、WEPキーが解読できる。①秘密鍵が同じ②それが場合によって40bitしかない③IVの数値が暗号化されずデータに付加され送られる④IVに対して実際に毎回異なる数値を使用していたとしても、 データのやり取りで数時間で一巡、また同じ数値を使う)
IVというのは、initialization vectorの略で、初期値ベクターなんていう。RC4を使用して暗号化データを生成すると、同時に生成されるもの。24bitの乱数になる。
詳しくないのですが、24bitって少ないような。それが脆弱性を産むってことでしょうか。
このWEP・WPAという方法で生成される鍵を解析するために、aircrack-ngを使ってみます。
aircrack-ngはBackTrackに含まれているものです。
BackTrackとは、VMWareイメージの名前です。とうとうVMWare使わなきゃいけない時が来たか・・・。
が、現在はBackTrackはなく、後継としてKali Linuxがリリースされている。
というわけで、VMWareを入れてKali LInuxを入れた。
f:id:boa0203:20191122140154p:plain
入れました。
次に無線LANアダプラをMonitor modeにします。
無線LANアダプタはAPからの発信を受け取る機械で、Monitor modeはデータの送受信を行わず、無線LAN上を流れるパケットを監視するだけの特別なモードのことです。

airmon-ng start wlan0

これをすると、こんな文が出て来ました。
kill them using 'airmon-ng check kill' before putting the card in monitor mode, they will interfere by chaning channels and sometimes putting the interface back in managed mode.
カードをモニターモードにする前に「airmon-ng check kill」を使用してそれらを強制終了すると、チャネルを変更したり、インターフェイスをマネージモードに戻したりして干渉します。

説明ってことでいいんでしょうかね。

iwconfig

これは無線LANインターフェース設定用コマンドです。
しかし、これを叩くと
no wireless extensions.
え、拡張機能ないの・・・

ifconfig -a

で、システムが検出したすべてのネットワークインターフェイスを一覧表示。 出てくるethとかloはインターフェース名。
ethはイーサネット(データリンク名:直接接続された機器間で通信するためのプロトコルやネットワークをさす言葉)の場合振られる名前、loは説明があったので引用します。

「ローカルループバック」と呼ばれる特別な仮想インタフェースだ。eth0などとの違いはこうだ。eth0もloもホスト自身だが、eth0にはネットワークインタフェースの実体がある。loはOSのプロトコルスタックスタックが必ず提供することになっており、ネットワークインタフェースを全く設置していない場合にも、このloだけは存在する。そうした初期状態であっても仮想的にネットワークのテストなどに使えるように用意されているのだ。loのIPアドレスとして必ず127.0.0.1が割り当てられる。当然このIPアドレスを用いて外部と通信することはできない。

引用元:
ifconfig 〜(IP)ネットワーク環境の確認/設定を行う:ネットワークコマンドの使い方 - @IT
プロトコルスタックは、コンピュータ上で、通信を実現するための一連の通信プロトコル群を実装しているモジュール(プログラム部品)のこと。
※色々いじる前に、sources.list(パッケージ(ソフトのこと)をどこから取得するかが書かれているファイル)を確認した方がいいかも。自分のlistは空になっていたんで、ここに書いてあるミラーサーバ指定を自分で書き込まなければいけなかった。
ifconfigでネットワークを見ると、wlanがない。よく見るとmacからwifi飛ばしているのに、debianから見ると、有線になっている。
そのあと無線にならないか試行錯誤しましたが、結局無線にすることができなかったのでaircrack-ngを使って解析することはできませんでした。
そもそも仮想PCだとできないのか?ラズパイに入れて解析したらできたのか?
消化不良なので、続編書くかもしれないです。