3 ポイント 投稿者 GN⁺ 2026-02-12 | 1件のコメント | WhatsAppで共有
  • 複数のプラットフォームで、年齢認証手続きを自動で成人として通過させるスクリプト
  • Discordのコンソールにコードを貼り付けて実行すると、自動で/age-verification/verify APIリクエストを送り、認証完了ページへ移動
  • Twitch、Kick、Snapchatなど他のプラットフォームでも、QRコードのURLを入力して同じ方式で認証可能
  • このツールは、k-idシステムの顔データ処理構造を悪用し、実際の顔がなくても正当なメタデータを生成する
  • AES-GCM暗号化と予測データ構造を複製して検証手続きを通過する方式で、グローバルな年齢認証拡大に合わせて作られた

Discordでの認証手続き

  • Discordウェブアプリの**開発者コンソール(F12)**に特定のスクリプトを貼り付けて実行する方式
    • スクリプトはDiscordのwebpackモジュールキャッシュを抽出し、内部APIクライアントを見つけて/age-verification/verifyエンドポイントにリクエストを送る
    • リクエスト結果として受け取ったverification_webview_urlage-verifier.kibty.townへリダイレクトする
  • ユーザーはCAPTCHAを解いた後、ページが「success」と表示するまで待機すれば認証完了
  • この過程によって、Discordアカウントが成人認証済みの状態として表示される

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

  • 各プラットフォームの年齢認証ページで「selfie」オプションを選択し、表示されたQRコードのURLをコピー
  • そのURLをage-verifier.kibty.townの入力欄に貼り付け、「verify」ボタンをクリック
  • その後、自動で認証手続きが進行し、成功メッセージが表示される

動作原理

  • Discordが使用するk-id年齢認証システムは、顔映像をサーバーへ送信せず、顔関連のメタデータとプロセス詳細だけを送信する
    • この構造により、正当なものに見えるメタデータを改変して送信すれば、実際の顔がなくても認証を通過できる
  • 過去にamplitudesのk-id verifierが公開された後、パートナー企業faceassureが検証を強化したが、今回のツールは新しい方法でこれを回避する

技術的な詳細ステップ

  • 1段階: 暗号化パラメータの複製
    • 正当なリクエストと比較した際に欠けていたencrypted_payloadauth_tagtimestampivを確認
    • AES-GCM暗号化で、キーはnonce + timestamp + transaction_idを**HKDF(SHA-256)**で導出して生成
    • 同一の構造を再現して欠落したパラメータを生成する
  • 2段階: 予測データの改変
    • 暗号化を完全に複製しても失敗したため、検証が「prediction arrays」(outputs, primaryOutputs, raws)に依存していることを確認
    • rawsデータを基にz-scoreを使って外れ値を除去し、outputsprimaryOutputsを生成
    • さらに次の条件も検証される
      • xScaledShiftAmtyScaledShiftAmtの値は2通りのうちいずれかのみ可能
      • メディア名(カメラ)が実際のデバイス一覧と一致していなければならない
      • 状態完了時刻がタイムラインと一致していなければならない
  • これらすべての過程を実装したオープンソースコードが公開されており、誰でも確認できる

公開と制作背景

  • 制作者はxyzevaDziurwa、そして以前に関連作業を行ったamplitudesへ謝意を示している
  • Discordがグローバル年齢認証を3月に全面実施する予定であるため、それに合わせて新しい検証回避手法を探求したと説明されている

1件のコメント

 
GN⁺ 2026-02-12
Hacker Newsのコメント
  • 本当に堅牢な方法は、実際のWebカメラの代わりに人工的な映像入力を生成することだと思う
    これを防げるプラットフォームはないはず
    たとえプラットフォームがスマートフォンのようななりすまししにくいカメラ入力を要求しても、高解像度ディスプレイの前にカメラを置けば終わり
    こうしたいたちごっこは長続きしないだろう

    • プラットフォームが本当にこれを防ぎたいのか疑問がある
      不完全な動画セルフィーベースの年齢認証は、むしろ誰にとっても得になる
      常識的な人は運転免許証やパスポートをアップロードしなくて済み、プラットフォームはユーザー維持がしやすくなる
      ポルノサイトはユーザーアカウントを作らせて追跡や広告収益を増やせる
      政治家は「年齢制限ポリシーを導入した」と発表でき、親は子どもがポルノを見ていないと安心する
      結局みんなが得をする構図
    • Windows Helloカメラのようにハードウェア認証機能を持つデバイスはすでに存在する
      こうした検証方式も結局はその方向に進む気がする
      おそらくGoogleがPlay Store専用アプリを推してきた理由の一つも、この種の検証可能なソフトウェアチェーンを作るためだったのだろう
    • 顔スキャンが不可能ならID確認に切り替えられる
      結局はスイッチを一つ切り替えるだけの問題だ
    • Appleが次世代iPhoneにマルチスペクトル画像センサーを追加するという噂がある
      3Dマッピングと組み合わせれば、単に画面を映すだけのトリックは通用しない
      問題は、Discordのような年齢認証サービスが本気で取り組んでいないこと
    • こういうゲームは長続きしないという意見には同意するが、理由は違う
      自分はそのゲームに参加せず、プラットフォームの利用をやめるだけだ
  • この方法には3つの問題がある

    1. 年齢認証の不便さを減らして、人々を閉じたエコシステムにとどめる
    2. 「プライバシーに配慮した方式は簡単に回避される」という理由で、より侵襲的な認証を正当化する
    3. アカウントに紐づいた状態で任意のコードを実行させるよう誘導する
    • 何かが可能だと証明することと、それを推奨することは別だ
      これはリバースエンジニアリングの優れた事例であり、プライバシーを侵害せずに検証することがどれほど難しいかを示している
      コードは公開されているので、任意コード実行の問題(#3)は当てはまらない
      もし企業がより侵襲的な方法(#2)で対応するなら、ユーザーはいつでも別のプラットフォームへ移れる
  • かなり巧妙なアイデアだと思う
    Discordは、規制当局に「子どもを守る対策をしている」と言える程度にだけ年齢認証を緩めているようだ
    だが政府が本気で監視するなら、こうしたアプローチは長くはもたない
    すでに一部の国ではより強力な生体認証を求めており、一部のサービスはモバイルアプリベースの認証へ移行している
    単純なJavaScriptベースのトリックはますます通用しなくなるだろう

  • コードを実行する際は即時実行関数(IIFE)でラップすることを勧める
    macOS Safariではtop-level awaitがサポートされていないので動作しない
    関連情報は caniuse.com/wf-top-level-await を参照

    • Safariは現代的なWeb標準をサポートしたがらない姿勢を見せている
      すでに5年は遅れている
  • 試してみたら https://age-verifier.kibty.town/webview?url=null にリダイレクトされ、
    {"error":"error parsing webview url"} というメッセージが出た
    自分のDiscordアカウントはA/Bテスト中で、別の認証事業者であるPersonaを使っているようだ

    • Personaは、バーに入るときに身分証を見せるのと同じようにデータを収集して共有する会社として知られている
      検索すればもっと情報が見つかる
    • 関連ツイート: https://x.com/xyz3va/status/2021734252505604108
    • このコメントが上位に来て、セキュリティ担当者が確認してくれるといいのだが
  • 実際に動いた
    Discordから「成人グループに分類されました」というメッセージを受け取った
    (ナレーション)そしてその瞬間、アカウントがハッキングされたことに気づく ;)

    • 自分でも動いた
      11年もののアカウントに問題が起きないといいが、顔やIDの提示を求められるなら、もう退会するつもり
    • Half-LifeのG-Manキャラクターで認証するほうが面白そうだ
    • 念のため後でパスワードを変更した
  • なぜ若い世代が、自分たちに敵対しているサービスにそこまでしがみつくのか理解できない
    嫌いなプラットフォームに残る利便性のほうが、代替を探す手間より大きいのだろうか?

    • 「代替を探すのは軽い努力だ」という言い方は、技術的な基礎力があることを前提にしている
      今の若い世代は、ターミナルやファイルパスの概念すらなじみが薄い
      検索はできても、代替を自分でセットアップするのは別問題だ
      何より、代替が存在しうるという認識そのものが乏しい
    • ネットワーク効果に加えて、実質的な代替の不足もある
      Matrixのようなオープンプラットフォームはまだ機能不足で、Discordがいちばんましな選択肢という状況だ
    • 結局のところ理由は単純で、ネットワーク効果のためだ
      友人たちがそこにいるから、自分もそこにいる
    • たいていのDiscordコミュニティは自分ではコントロールしていない
      プラットフォームを移るたびにメンバーが減って共同体が崩れる
      「軽い努力」は実際にはコミュニティを壊すことになる
    • 中年層がいまだにFacebook Marketplaceを使う理由と同じだ
      別のプラットフォームを使っても自分だけが取り残されるからだ
      全員を同時に移行させるのはほぼ不可能だ
  • DiscordでCAPTCHAは通過したが、
    {"error":"failed to execute k-id privately action (status=404)"} というエラーが出た
    自分は間違いなく成人なのに、こんな手続きはばかげている
    ブロックされても構わない

    • 自分も同じエラーを見たが、リロードしたら動いた
    • コードに示されている別の段階があるようだ
  • 関連ニュースまとめ

  • デジタル年齢認証のいたちごっこは莫大な規制負担だ
    これほど簡単に回避できるなら、プラットフォームは単に規制対応のチェックボックスを埋めているだけで、
    実際の信頼基盤は非常に脆弱だ

    • みんなが満足できる方法もある
      だが企業は認証済みの成人ユーザーデータを確保できないので好まない
      関連内容は GoogleのAge Assurance Europeブログ を参照
    • 完璧にはなりえない
      こうしたシステムの目的は完全な遮断ではなく、一般大衆が簡単には回避できないよう摩擦を加えること