先日、iOS 11.1が公開されました。これで、WPA2に対する脆弱性対策もできたのかなと思っていたら、このWPA2脆弱性対策はiPhone 7以降に向けてのものだそうで、iPhone 5s/6/6sに対しては依然として脆弱性対策が行われていないとのこと。
WPA2の脆弱性は、通信内容を覗き見されてしまう危険があると聞きます。おそらくWPA2内でやりとりされるプロトコルが、HTTPS等で通信内容が暗号化されていれば覗き見される可能性も低くなると考えられます。当サイトは先日、常時SSL化しましたし、昨今では多くのサイトがそうしているようですので、そういった意味では危険性は低くなっているのかも知れません。
しかし、家庭内のページとなると別です。
例えば現在、家庭内にはホームカメラ用にRaspberry Pi 3 model BでWebページを立ち上げていますが、家庭内だから良いかと、HTTP通信にしています。
ホームカメラはiPhone 6sから閲覧するものなわけなので、脆弱性対策なしのWPA2上で、通信が暗号化されていないホームカメラ動画がやりとりされていることになります。これはヤバイ。
なんとかしてHTTPS化したい・・・ところですが、MJPG-streamerの配信プロトコルをHTTPSにするなんて、どうしたらよいんだろう・・・?
と、思って探してみたら、stunnelというプログラムを使って、間に入ってSSL化してしまえば良いという方法が見つかりました。
なお、事前にApacheとMJPG-streamerによる配信体制が整っているものとします(これらのインストール方法は、ググって別のサイトで調べてください)
■まずは、アップデート $ sudo apt-get update $ sudo apt-get upgrade ■stunnelの導入と設定変更 $ sudo apt-get install stunnel4 $ sudo cp /usr/share/doc/stunnel4/examples/stunnel.conf-sample /etc/stunnel/stunnel.conf $ sudo vi /etc/stunnel/stunnel.conf ■次の内容を追加する(httpsについては、既にコメントアウト状態で記載済みかもしれないので、その場合はコメントアウトを解除する)
[https] accept = 443 connect = 80 [mjpg-streamer] accept = 9001 connect = 9000
■いわゆるオレオレ証明書の作成。期限切れ再作成が面倒なので、証明書の有効期間を約100年(36500日)にしています $ cd /etc/stunnel $ sudo openssl req -new -x509 -nodes -days 36500 -out mail.pem -keyout mail.pem
Country Name (2 letter code) [XX]:JP State or Province Name (full name) [Berkshire]:→適当に入力 Locality Name (eg, city) [Newbury]:→適当に入力 Organization Name (eg, company) [My Company Ltd]:→適当に入力 Organizational Unit Name (eg, section) : →何も入力せずEnter Common Name (eg, your name or your server's hostname) :→適当に入力 Email Address []:→適当に入力
$ sudo vi /etc/default/stunnel4 ■次の部分を変更
ENABLED=1
■試しに立ち上げてみる $ sudo /etc/init.d/stunnel4 start ■上手くいったら、いったんリブート $ sudo reboot
これで、ApacheのWebページは https://~ で表示され、MJPG-streamerは https://(IPアドレス):9001/~ で表示できるようになります。
注意しなければならないのは、次の2点。