AndroidのIPsec

外出先でalcatel IDOL3(Android 6)から
VPNで自宅にアクセスできているのですっかり忘れていましたが、
実はAndroid6以降にはL2TP/IPsecでVPN接続できない不具合があります。
最近Android 6.0のVPN接続問題、見えてきた解決の道筋
なる記事をみて思い出しました。

そこで手元でNexus7(2013)を使って実験してみたところ、
Android 5.1でも6.0.1でも特に問題もなく接続できます。
HGW(ホームゲートウェイ)のPR-500MIがうまいことやってるんでしょうかね?

さて、このAndroid6以降でのVPN接続問題。
原因はRFC4868に準拠していないことにあるようです。
いろいろ歴史的経緯はあるようですが、
Linuxカーネル(net/xfrm/xfrm_algo.c)で、
IPsecのHMACのSHA256を使用した認証において、
ハッシュ値の切り出し幅(icv_truncbits)が正式な128ビットではなく
96ビットにされて失敗するようです。

いろいろ調べているとこの不具合、
どうやらAndroid 7.1.2で修正されているらしく、
旧バージョンとの互換性維持のためVPNの設定メニューで
[Backward compatible mode]オプションが追加されているみたいです。
まあ私は対応端末を持っていないので確認できていませんが。

余談ですがAndroidのフラグメント、もうちょっとなんとかしてほしいですね。
公式サポートによれば、
Google社製Android端末でさえ、

Android バージョン アップデートが提供される期間は、その端末の販売が Google ストアで開始された時点から最低 2 年間です。2 年間が過ぎた後のアップデートは保証できません。

となっていますし、
セキュリティ アップデートについても

セキュリティ アップデートが提供される期間は、Google ストアでのその端末の提供開始から最低 3 年間、または Google ストアで最後にその端末が販売された時点から最低 18 か月間のいずれか長いほうです。その後のアップデートは保証できません。

とのことです。
しかも最近のGoogle純正端末はハイエンド過ぎて高価格。
そうであればITに詳しくない方には無用なトラブルを避けるためにも、
まずiPhoneを勧めるのが無難です。
その辺Googleも理解してそれなりの戦略を立ててほしいところです。
あっ、Google以外のAndroid端末については
アップデートなど期待していませんよ。
Androidはミドルレンジ以下の端末を
1~2年で買い換えるのが結局のところいろいろな意味で安くつきます。
あくまでも個人的な見解ですが。

広告