WPA3OpenWrtのメジャーアップデートがありました。今回の目玉となるのはWPA3です。SAEでピンときました。以前メッシュネットワークでWPA2では暗号化に失敗してtincを使ってメッシュネットワークを構築しました。暗号化方式のSAEは詳しくはわかりませんがメッシュとは相性がいいので、もしかしたらと考えて試してみました。結果はすんなりと接続できました。150Mbit/sが限界ですが、以前よりシンプルにネットワークが構成できるようになりました。暗号化していないデバイスからアクセスしても繋がらなかったのでWPA3は機能しているようです。不安なので調べてみました。RSNの項目をみるとCCMP、SAEとあり、WPA3は機能しています。CPUでHW暗号化できるとのことで試してみました。私自身、HWの暗号化について全く知識はないのですが、作るだけは作ることができました。結論は全然だめでした。開発途上なので、今使っているデバイス、WiFiやディスクの暗号化には使えないということです。いまのところaes-cbcが使えるようですが、残念ながら私の暗号化ディスクはaes-xtsでした。offset:4096カーネルオプションは次のようにしました。ビルドしてdmesgのアウトプットです。/proc/cryptoで暗号のリストを表示できます。追記2リサーチしてみました。aes-xtsが速くこれが正解のようです。サイトによるとaes-cbcがHW支援が有効ということですが、不可解なことにソフトウェアエンコードより遅くなっているという結果になってます。WSR-1166DHPのOpenWrt化TV-boxが802.11ac対応なのでルータもアップグレードしてみました。TV-boxのWi-Fiチップはシングルアンテナなので433Mbpsまで可能です。802.11aだとシングルアンテナで150Mbpsなので約3倍くらい通信速度があがります。802.11aだとかなり遅くてストレスなのでちょっとした投資で快適なネットワーク化ができます。WSR-1166DHPは最上級機種ではありませんが、バランスから考えて使ってみることにしました。OpenWrtのインストールは各機種独特でやり方は検索等で調べるわけですが、この機種は比較的楽にインストールできます。できればサーバセットアップが必要なtftpブートやシリアル回線でインストールはしたくないですね。フォーラムによれば次の手順によります。1.lede-ramips-mt7621-wsr-1166dhp-initramfs-factory.binをダウンロードします。オフィシャルレポジトリにopenwrt-18.06.5-ramips-mt7621-wsr-1166-initramfs-kernel.binというのがありますがこれでは使えません。2.オフィシャルリポジトリから最新のFWをダウンロードします。openwrt-18.06.5-ramips-mt7621-wsr-1166-squashfs-sysupgrade.bin3.ルーターのバッファロー製のダッシュボードでfactory.binをアップグレードします。メモリー上にインストールするので電源はそのままです。4.scp等でsysupgrade.binを192.168.1.1にファイル転送します。sysupgrade.binでファームウエアのアップグレードをします。以上で簡単にできます。転送速度を検証してみましたが残念な結果でした。10mb/sを少し超えるくらいでした。以前より2,3mb/s速くなってますが、予想値の半分程度でした。Wi-Fiの接続速度はたしかに速くなってるのですが原因がわかりません。追記1802.11ac対応したのになぜ遅いのかいろいろ思いを巡らした結果、今のカーネル5.4.yは暗号のHWエンコード対応していないせいかもしれないと思いつきました。そこでパワーとHWエンコードできるインテル製PCで802.11anで接続してみたらかなりの速度が出たので、その線が濃厚のようです。HW暗号化対応は5.5.yからなのでしばらくリサーチしてみることにします。WLI-UC-AG300NドライバーのビルドビルトインのWiFiデバイスでWPAエンタープライズが使えなかったので比較するためにUSBのWiFIドングルを使ってみました。カーネルモジュールがなかったので作ることから始めます。https://github.com/shekhei/RT2870USB.gitソースをダウンロードしてソースを編集します。ネットで調べてそれを参考にさせてもらいました。MagangerHAS_NATIVE_WPA_SUPPLICANT_SUPPORT=yArmbianのカーネルヘッダーだけだとビルドできないのでソースをインストールします。modules追記1ソースをビルドしているときになにかおかしいことに気がついて見直してみました。そもそもネットの情報はかなり古い情報でソースも覗いてみたらかなり古そうでした。古いドライバーはたいていメインラインカーネルに組み込まれているはずなので、カーネルソースを調べてみました。CONFIG_RT2800USB_UNKNOWN=yこのオプションを有効にして再ビルドしたら使えるようになりました。このデバイスでもやはりWPAエンタープライズは使えませんでした。いうことはビルトインのデバイスの方も問題ない可能性が高いということになります。WPAエンタープライズ(eap-tls)の接続問題の原因の絞り込みはまだしばらく掛かりそうです。追記2問題の切り分けをしてどうもTLSの互換性に問題がありそうだったので整理してみました。NGx86_64CPUとArm64CPUの2台UbuntuだけがともにNGでした。TLSバージョンが古いせいだと推論してみました。サーバのFreeradiusの設定を見てみるとTLSv1.2で設定してあり今まではArchlinuxのノートPCでは問題が起こりませんでした。UbuntuはTLSv1.2に対応しておらず接続ができなかったようです。原因がわかってきたので次のようにFreeradiusを設定してみました。"1.2"再起動してArmbianから接続してみたところ問題が解消しました。追記3もう少し調べてみたらUbuntu18.04のOpenSSLののバージョンは1.1.1でTLSv1.2に対応しているようです。Freeradiusに通らない原因は不明です。(0x0000ffff85930000)追記4なんとなくしっくりこないのでもう一度、頭の中で整理してみました。bionicより新しいopensslなので明示的に指定しないと最新のv1.2より上のTLSを使ってしまう。bionicのopensslはTLSv1.2対応である。いうことは明示的にTLSv1.1でなくTLSv1.2を明示的に指定すれば良い。この推論でもう一度、freeradiusを設定してみたらうまく行きました。"1.2"ついでにテストの過程でコマンドラインからの接続も試してみました。pootlepress.。