Open3

nest: GitHub Pages のサイトをCross Origin Isolationしつつローカルのデバイスに接続させる

okuokuokuoku

とりあえずやりたい事はできた:

ページ( https://okuoku.github.io/fnest-toplevel/index.html )をロードすると:

  • coi-serviceworker のようなサービスワーカーが常駐し、ヘッダをCOIを満たすように書き換える = SharedArrayBufferが使用できるようになる(WasmLinuxの必須要件)
  • 前書いたHTTPシグナリングによりWebRTCでローカルデバイスと通信できる

https://zenn.dev/okuoku/articles/978347df73117f

セキュリティ

素のHTTPでローカルデバイスと通信できちゃダメじゃんという気はするが、Cross Origin Isolationの要件である、ブラウザコンテキストの分離自体は達成しているのでOKということのようだ。

window.open でポップアップは開いているものの、特にOpenした先ではopenerを介した通信はしていない。localStorageに対しては書き込んでるけど。

okuokuokuoku

素HTTPシグナリング

今回はbuild lessにしたかったのでJOSEの実装を node-jose から jose に乗り換えている。

node-jose と違ってデフォルトで暗号アルゴリズムを設定したりしないので自分で設定を行う必要がある。

https://github.com/okuoku/fnest-toplevel/blob/cc5bf6b3c528b8f3ff4be00257f1b5e34eb6df55/cnt.mjs#L235-L238

https://github.com/okuoku/fnest-toplevel/blob/cc5bf6b3c528b8f3ff4be00257f1b5e34eb6df55/cnt.mjs#L290