KeyFactorの研究報告によると、IoTなどネットワークデバイスの多くに、攻撃に対する脆弱性を持った弱いディジタル認証が使用されているという。研究者のJonathan Kilgallin、Ross Vasko両氏が7,500万のRSA認証を分析したところ、172に1つの割合で、鍵に共通因数が存在した。つまりそれらは、簡単にクラック可能ということだ。
実際に2つの素数が因数を共有しているかどうかは、それらの最大公約数(GCD)を計算すれば知ることができる。これが分かれば、両方の素数の残りの約数を計算することが可能で、そこからその証明書に関連付けられた秘密鍵を導出することができるのだ。GCDの計算は比較的容易であるため、このアプローチは、インターネット上で広く利用されている公開鍵の多くへと拡張できる可能性がある。言い換えれば、公開鍵をマイニングしてそのペアのGCDを計算し、もし共通因数が見つかれば、それを簡単に破る手段が手に入る、ということだ。
この結論と、それを利用したRSA鍵の攻撃が行われる可能性については、以前から知られていたが、現実的に大きな問題であるという認識はされていなかった。
この攻撃によって、これまでに多くの鍵が破られましたが、十分なエントロピーを持って適切に生成された鍵をこのテクニックで破ることができる可能性は高くありません。
Kilgallin、Vasko両氏は今回の報告で、十分なエントロピーで鍵が生成されているというこの仮定が、依然として十分な数のケースにおいて検証されていない点を指摘している。この問題は特に、高度な乱数性による十分なエントロピーを備えた鍵の生成が難しいIoTアプライアンスでは、発生する可能性が高いものと思われる。
限られたリソースを使っただけで、インターネット上で実際のトラフィック保護に使用されている何億というRSA鍵を収集することが可能でした。クラウド上の仮想マシンひとつと十分に考慮されたアルゴリズムがあれば、これらの鍵を使って、200個中1個以上の認証を数日間で破ることができるのです。
不十分なエントロピーの他にも、IoTデバイスをこの種の攻撃に対して脆弱なものにしている理由は数多くある。そのひとつは、この攻撃の成功率が、分析に使用可能な証明書のペア数の増加によって向上するということだ。IoT市場の成長により、証明書の数は劇的に増加している。さらに、IoTsデバイスはパッチが難しいため、十分にサポートされなくなったデバイスの脆弱性を見つけることが容易になる。
KeyFactorの調査ではRSAを中心にしているが、この結果はECC(楕円暗号)など、乱数生成に依存する他のアルゴリズムにも当てはまるものだ,と氏らは言う。
IoTのセキュリティに関する懸念が持ち上がったのは、今回が初めてではない。わずか1週間前にも、多くのクラスのIoTデバイスに影響する脆弱性が公開されたばかりだ。Kilgallin、Vasko両氏の今回の発表は、プロジェクトの開始時点からセキュリティのベストプラクティスを使用することと、IoTデバイスのソフトウェアと暗号化の両方をタイムリに更新するためのサポートを含めることのを重要性を再認識させる。