世界を動かす技術を、日本語で。

Discord/Twitch/Snapchat年齢確認のバイパス

概要

  • Discord や他のプラットフォームでの 年齢認証バイパス方法 の解説
  • k-idFaceAssure の仕組みと対策の説明
  • スクリプト を使った手順と注意点のまとめ
  • メタデータ操作 による認証突破の仕組み
  • セキュリティリスク と倫理的注意点の指摘

Discordでの年齢認証バイパス方法

  • k-id (xyzevaとDziurwa製)を利用した 自動年齢認証スクリプト の存在
  • Discord のコンソール(discord.com/app → F12 → Console)で スクリプト貼り付け による実行
  • 必要に応じて「allow pasting」と入力し、 Captcha認証 をクリア
  • スクリプト内容
    • Webpack chunk からAPIクライアントを抽出
    • /age-verification/verify へリクエスト送信
    • 取得した verification_webview_url へリダイレクト
  • ページで「success」と表示されれば 年齢認証完了
  • この方法は UK以外の地域今後のグローバル展開 にも対応

他プラットフォーム(Twitch, Kick, Snapchatなど)での認証

  • 年齢認証ページ で「selfie」方式を選択
  • QRコードのURL を取得し、指定の入力欄に貼り付けて「verify」を押す
  • 同様の仕組みで 認証バイパス が可能

仕組みの詳細と技術的背景

  • k-id は顔画像自体をサーバーに送信せず、 顔のメタデータ のみを送信
  • これにより、 本物そっくりのメタデータ を送信すれば認証突破が可能
  • FaceAssure の導入により難易度が上昇
  • 暗号化パラメータ (encrypted_payload, auth_tag, timestamp, iv)が必要
    • AES-GCM で暗号化し、 HKDF(sha256) で鍵を導出
  • prediction配列 (outputs, primaryOutputs, raws)の正確な生成が必要
    • raws → age outputsへのマッピング
    • z-score による外れ値除去
    • xScaledShiftAmt, yScaledShiftAmt の値は限定的
    • media name がデバイスリストと一致
    • 状態遷移タイムライン と完了時間の整合性チェック
  • これらの情報は GitHubで公開されているオープンソース コードで確認可能

セキュリティ・倫理的注意点

  • この手法は Discordやk-idの利用規約違反
  • アカウント停止・法的措置 のリスク
  • 個人情報漏洩や悪用 の危険性
  • 技術検証や研究目的 以外での利用は非推奨
  • 正規の年齢認証 を推奨

注意 :本内容は技術解説・セキュリティ啓発を目的としたものであり、実際の利用や悪用を推奨しません。

Hackerたちの意見

デジタル年齢確認の猫とネズミのゲームは、ほんとに大きなコンプライアンスの頭痛だよね。これらのガードがこんなに簡単にバイパスできるなら、プラットフォームはただ規制当局を満足させるためにチェックボックスを押してるだけで、実際の責任は丸裸って感じ。こんな脆い確認レイヤーじゃ、信頼を築くのは難しいよ。

完璧になることは絶対なかったよね。こういうものの目的は、一般の人がバイパスするのを難しくするために、プロセスに追加の摩擦を加えることだと思う。

ほとんどの人が大丈夫な方法があるんだよね。[0] でも、組織は確認済みの成人ユーザーのアイデンティティをキャッチできないから、ユーザーデータプロファイルの価値を膨らませられないんだよね… [0] https://blog.google/company-news/inside-google/around-the-gl...

本当に強力な方法は、リアルなウェブカメラの代わりに人工的な動画入力を生成することだと思う。これに対抗できるプラットフォームはないんじゃないかな。もし、偽造が難しいカメラ入力を持つ電話を使うことが求められたら、高解像度のスクリーンの前にカメラを置くだけで済むし。猫とネズミのゲームは長続きしないよ。

すでに顔認証の代わりにIDチェックをサポートしてるから、もし顔認証が無理なら、IDを要求するのはスイッチをひねるだけの話だね。

現実で本人確認をするためには人間が必要で、それを強力な認証ツールでデジタルアイデンティティに結びつける必要があるんだ。詐欺防止システムは、回避行為が検出されたらアカウントを一時停止したり禁止したりすることができる。完璧である必要はないし、目指すべきでもないよ。例えば、Login.gov(USPSのオフライン確認)や他の国のアイデンティティシステムを見てみて。

代わりに、誰かに20ドル渡して、あなたの電話で確認してもらうのもありだよ。

それに対抗するには、login.govやokta verifyのような本人確認済みのサービスを使うのがいいよ。それが最終的な目標で、EUが本当に望んでいることなんだ。面倒なミームで逮捕されない限り、投稿はできないってわけ。

デス・ストランディング2のフォトモードはこれにぴったりだね。

Windows Helloのカメラデバイスって、何かハードウェアの証明があるんじゃないの?こういう検証スキームは、すぐにその方向に進むと思う。多分、GoogleがPlayストア専用アプリを推進しようとした理由の一つだと思うよ。こういうののために、測定可能で検証可能なソフトウェアチェーンを提供したかったんじゃないかな。

オレゴンでのイベントでOBSバーチャルカメラを使ったら、うまくいったよ。

ちらつく光を使って、PWMで動画にアーティファクトを作り出して、それを謝らせるって、ウォーターマークを壊すための試みだね。昨日からLEDライトの調子が悪くて、他の電球がないんだよね。

銀行みたいに、みんなのIDをチェックスシステムで確認すればいいんじゃない?これを打破するのは本当に難しいよ。偽の身分はシステムに存在しないし、盗まれたものは地理的、使用時間、速度のルールでフラグが立つから。

「どのプラットフォームもこれに対抗できるとは思えない。プラットフォームは対抗したいのか?」不安定なビデオセルフィーによる年齢確認で、 * 常識のある合理的な人は運転免許証やパスポートのスキャンをアップロードする必要がない * プラットフォームはあまり手間をかけずにユーザーを維持できる * ポルノサイトのユーザーはアカウントを作成することを強いられる;これにより追跡が可能になり、広告収入や成長数値が増える * 政治家は年齢制限を導入したと発表できる * 年齢確認がプライバシーを侵害しないと言っていた人たちは間違っていることが証明されない * ティーンエイジャーは年齢確認を回避してアクセスを維持できる;親からポルノを隠そうとするのは昔からの伝統だし * 親は自分のティーンエイジャーがポルノにアクセスしているのを見ない。気まずい会話をすることもなく、スマホの親子設定を理解する必要もなく、安心している。みんなハッピーだね。

わあ、面白い記事だった!こういう確認システムの技術的な実装について考えたことなかったな。

うーん、試してみたら https://age-verifier.kibty.town/webview?url=null にリダイレクトされて、「{"error":"error parsing webview url"}」って表示された。追記:どうやら、僕のDiscordアカウントは別の確認プロバイダー、Personaを使ったA/Bテスト中みたい。

あなたのコメントが上に上がるといいな。ブログのセキュリティ担当者に見てもらいたい。

ペルソナは「バーに入るにはID見せてね、あとデータも収集するよ…必要なら他の人と共有するから」っていうちょっと怖い感じのやつだよ。もっと知りたいなら、ペルソナでググってみて。

確かに機能してるみたい。Discordから「あなたは成人グループにいると判断しました。」ってメッセージが来たよ。ナレーター> そして彼は自分のアカウントがハッキングされていることに気づく… ;)

私にも効果があったよ。11年以上のアカウントがこれでペナルティを受けないことを願ってる。顔やIDを送ることを強制されたら、どうせ辞めるし、あんまり関係ないけどね。

念のため、後でパスワードを変更したよ。

ハーフライフのGマンを使って確認するのほど楽しくないね。

どうして(主に)若い人たちが、自分たちに対して敵対的なサービスの顧客であり続けるために、そんなに努力するのか理解できない。嫌いな管理のサービスに留まる便利さが、代替案を見つけるためのちょっとした努力を上回るのかな?

私が入っているDiscordコミュニティのほとんどは管理してないよ。長いこと続いているものもあって、プラットフォームの移行のたびにメンバーが減ったり壊れたりする。古いコミュニティを新しいプラットフォームに移すための「ちょっとした努力」が、コミュニティを潰すことが多いんだ。

それが発展途上の心にとっての魅力の一部なんだろうね、対立的な性質が。

大多数の人は、自分のプライバシーが侵害されてることにあんまり気にしてないよね。せいぜい「まあ、そういうことしてるのは明らかだけど、どうしようもないよね!」って感じ。誰もいないところに移っても意味ないし。

代替案を見つけるための軽い努力?「軽い努力」って言うのは、昔の世代が当たり前に思ってたスキルを前提にしてるけど、最近の若者はそういうのを積極的に学ばなくなってるみたい。今は、プログラマー志望の子たちにターミナルやシェルの基本を説明するのが当たり前じゃなくなって、ファイルシステムやパスの基本を説明しないといけない時代になってる。タッチタイピングできる子がほとんどいないって聞いても驚かないよ。(携帯のテキスト入力のスピード記録ってどれくらいなんだろう…)確かに、検索エンジンを使ったり、最近ならChatGPTに聞いたりはできるけど、それだけじゃ代替案を設定するのは難しいよね。代替案が存在するかもしれないって考えも必要だし。(結局、彼らはChatGPTに聞いてるわけで、Googleサービスの代替を提供する会社の代替案じゃないからね…)

自分たちに敵対的で、好きでもないサービスの残りの顧客たち それでも、GitHubがダウンするたびにみんな大騒ぎしてるよね。変化は遅いし、みんなが一日でGitHubを離れることはできない。同じことがDiscordユーザーにも言えるね。

中年層は、なぜ他のプラットフォームではなくFacebookマーケットプレイスを使い続けるの?違うものを使うために努力しても、結局自分一人だけになっちゃうから。みんなが同時に移動するための調整はほぼ不可能に近いよ。

「なんで(主に)若い人たちが、自分たちに敵対的なサービスの顧客であり続けるために、そんなに努力するのかわからない」ネットワーク効果だね。それだけ。

「自分たちに敵対的なサービスの顧客であり続ける理由は、彼らがそう考えてないからだ」ほとんどのZ世代やそれ以下の世代にとって、デジタルアイデンティティはすでに自分のアイデンティティだから、ソーシャルネットワークで匿名でいることの意味がないって思ってるんだよね。

彼らは生まれた時から制限に従ってきたから、時間はたっぷりあるんだよね。

本当に追い詰められたら、いつでも去る準備はできてるよ。これが初めてじゃないしね。経験上、去ったら友達の中でついてくるのは少ないってわかってるから、抵抗する気持ちも理解できる。

俺は回避策には反対だな。「デジタルIDが必要なくなるまで放置しておく」派だよ。

他の人がどこでコミュニティをホストするかは選べないからね。

このプロジェクトは早めにアーカイブしたいな。サービス側がそれが露見するのを気にするのがわかるよ。

DiscordやTwitchが本当に気にしてると思ってるの?あんまりそうは思えないな。規制のハンマーを避けるためにあるだけで、こういう面倒な回避策が主流に届かなければ影響はないよ。もし届いたら、パッチを当てればいいだけだし。

Discordのあのコードスニペット、結構脆いから将来のアップデートで壊れそうだよね。

これを使って人のアカウントをトークンログすることってできるのかな?