Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
高校のChromebookでも自由なネット環境を!
Search
らすぴー
May 16, 2026
180
0
Share
高校のChromebookでも自由なネット環境を!
らすぴー
May 16, 2026
More Decks by らすぴー
See All by らすぴー
電子辞書Brainをネットに繋げてみた(自力編)
raspython3
0
380
限界環境CPython rev. seccamp2025
raspython3
0
49
kernel-vm-ittekita-yuukousai
raspython3
0
110
kernelvm-brain-net
raspython3
0
1.1k
pyconjp2024-wince
raspython3
0
54
seccamp2024-edictionary-python-TLS
raspython3
0
47
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
180
Mobile First: as difficult as doing things right
swwweet
225
10k
Odyssey Design
rkendrick25
PRO
2
650
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
370
Navigating Team Friction
lara
192
16k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
190
We Are The Robots
honzajavorek
0
240
The Art of Programming - Codeland 2020
erikaheidi
57
14k
How to make the Groovebox
asonas
2
2.2k
Transcript
Chromebook らすぴー / RasPython3 (@RasPython3) 1
• 本スライドの内容は、発表者の高校時代(3~5年前)の話になります。 • 本スライドの内容は、現在は修正され使用できなくなっています。 • いわゆる脆弱性を突く、といったものではありません。 (この辺り@puhitakuさんに相談に乗っていただきました。感謝!) 2
活動名 RasPython3 / らすぴー X: @raspython3 seccamp’24 全国 seccamp’25 チューター
普段やってること 各種ウェブツールづくり 電子辞書いじり ゲーム内コーディング ネットワーク関連 etc. 3 SHARP Brain SH-PW7-W 自分が持ってる機体の色違い
• 昨今のICT教育推進の流れ • 高校入学時に学校の指示でChromebookを購入 • Google Play: 使用不可 • 拡張機能:
使用不可 • Linux: 使用不可 • フィルタリング拡張機能が強制インストール済み • DiscordやQiita等多数のサイトが閲覧不可 • 「不便すぎる!!!」 4 NEC Chromebook Y2
5 実際の規制画面
今回は「フィルタリングの無効化」を目標にする 1. 拡張機能の削除 2. 拡張機能を介さないルートの開拓 3. 拡張機能の検出回避 6
1: 拡張機能はポリシーによりインストールされている →もちろん普通のやり方では削除できない なので、「ポリシーの解除」と「ごり押し抹消」のどちらか これを行うには、Chrome(Chromium)の穴を探すことになる →難易度がかなり高い 7
2: • 拡張機能が介入できるルート 1. ブラウザのアドレスバーにURLを入れてアクセス 2. リンクをクリックしての遷移 3. JavaScriptでwindow.open()やnavigation.navigate() (2とほぼ同じ)
• 介入できないルート 1. 外部サーバでレンダリング 2. 自前でEthernet等を喋って通信・レンダリング・JavaScript処理 →ちょっと大変 (開拓はしていたが今回はスルー) 8
3: そもそも... 拡張機能はどうやってフィルタリングをしているのか? • WebRequestBlocking API • Manifest v2(とv3では一部拡張機能、今回の拡張機能も該当)まで使えたAPI •
HTTPリクエストを動的にブロックできる • DeclarativeNetRequest API • Manifest v3で使えるAPI • HTTPリクエストを静的にリダイレクトやブロックなどができる 9
3: この拡張機能は、前述の2つのAPIを使ってフィルタリングを実現してい るっぽい →ページ自体のloadイベント等を監視しているわけではないので イベントリスナーの削除などでの無効化は難しい 抜け穴があるとすれば、「想定外」を突くしかない ページ遷移のやり方も直リンや戻る/進む、history APIなど複数ある (ソフトナビゲーションとかもね) →できるだけ特殊なページ/手順を探そう!
10
URIスキームって知ってますか? 大雑把に言うと「どんな種類/手段のURIか」を示すもので、 URIの「:」とその手前の部分を指す http:, https:, mailto:, ssh:, ftp: などなど... 11
URI 拡張機能は基本的には http: または https: のみ動作可(のはず) →file: などから見たいページに飛べば回避できるのでは? 結果: 失敗
ちゃんとブロックされました • もっと特殊なスキームを! • Chromeブラウザで使われるスキーム • http:, https:, file:, chrome:(about:), chrome-untrusted: 12 ん?
chrome-untrusted • chrome://よりも権限が弱い、ブラウザ内蔵だが信用が低いページ 用のスキーム • 権限以外は chrome: とほぼ同じ挙動をしている(っぽい) • Chromebook以外では(自分は)見たことがない
...これってかなりレアスキームでは? 13
• 今回のやり方で都合がいいターミナルのページ (chrome-untrusted://terminal/html/terminal.html)を開く • 開発者ツールを立ち上げ、コンソールに「location.href=...」で 見たいページのURLを入力 • Enter! 14
ktkr 見れちゃった~~~~~ 15 けしからん じゃないか!!
• 制限の多い環境だと何かと力がつくのでおススメ • 例えば電子辞書 (この環境下で電子辞書にPython移植したりしていた) • 良い子のみんなは真似しちゃだめだぞ! 16