以下の内容はhttps://asnokaze.hatenablog.com/entry/2025/02/17/005350より取得しました。


Chromeの提案しているセキュリティ機能『Local Network Access』について

W3CのWeb Application Securityワーキンググループにおいて、Chromeチームから『Local Network Access』というセキュリティ機構の提案がされています。

これは、パブリックなWebページからローカルネットワークへのアクセスを保護するための仕組みです。ただし通信をすべてブロックするのではなく、特定のユースケースにおいては安全に通信を許可する必要があります。

背景

簡単に、パブリックなWebページからプライベートネットワークへの通信に関しておさらいしておきます。

攻撃の例とユースケース

パブリックなWebページから、プライベートネットワーク(例 http://192.168.0.1 )へリクエストを送信することができます。

  • imgタグやフォームでプライベートネットワーク宛にPOSTリクエストを送信する
  • JavaScriptのfetchでGETリクエストを送る (Simple requests)

クロスドメインのHTTPリクエストでは、CORS無しにはSimple requestsしか送れません。それでもCSRF攻撃が可能なルータの存在が知られています。 (参考URL)。

一方でパブリックなWebアプリケーションからプライベートネットワークの機器へ通信を許可したいユースケースもあります。例としてあげられているのは、機器側に複雑なWeb機能を持たせずに、パブリックなWebアプリケーションにUI機能を持たせるというものです。

そのため、通信をブロックすべきものはブロックし、許可されるものは通信を許可したいという背景があります。

Private Network Access (CORS-RFC1918)

プライベートネットワークへのCSRF攻撃の対策として、同じくChromeチームから『Private Network Access』という保護機能が実装されています。
developer.chrome.com

プライベートネットワークへの通信を許可する場合、Private Network Accessではプリフライトを伴います。これにより通信を意図してないプライベートネットワーク機器へのリクエストはブロックされます。

一方で、プライベートネットワークへの通信を許可したい場合は、プライベートネットワーク側の機器にも対応が必要でした。また、Mixed Contentsのリクエストへの対応についても課題がありました(プライベートネットワーク機器はhttpsに対応できないことも多く、httpになります)。

このPrivate Network Accessについて、MozillaWebkitからは好意的な反応は得られなかったようです。

Local Network Access

新しく提案されている Local Network Access の仕組みは単純です。これらのプライベートネットワーク側へのリクエストにパーミッションを設けることです。

HTMLでカメラアクセス等と同様に、ユーザエージェントが『ローカルネットワークリクエスト』許可のプロンプトを表示し、パーミッションを取ります。

パーミッションがなければ通信はブロックされます。

この仕組みについて、もちろんユーザが誤って許可することもSecurity & Privacy Considerationsに掲げられていますが、、、難しい問題のように感じます
GitHub - explainers-by-googlers/local-network-access: A proposal to restrict sites from accessing a users' local network without permission

おわりに

この提案は、2/19に行われるW3C WebAppSec WG MTGで初めて議論されるものです。今後の動向については追っていければと思います。
github.com




以上の内容はhttps://asnokaze.hatenablog.com/entry/2025/02/17/005350より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14