概要
前回: 記事: Threadsの第一印象は安定・安全・推薦 | GNU social JP Web、公式: 5日で1億人の急成長を支えたアプリのコアとなるThreadsのインフラ構成 | GNU social JP Web。
「役務: Threadsの被ドメインブロック一覧サイトfedipact.veganism.social | GNU social JP Web」で先日Threadsの被ドメインブロックについて紹介しました。今回は、Threadsによるドメインブロックとその対策について、Alex Gleasonが投稿していたので紹介します。内容からして、重要なものに感じます。
2023-12-25 Monに「Threads is blocking servers on the Fediverse. Here’s how we unblocked ourselves. | Soapbox」と以下の投稿群で発表されました。
Alex Gleason|alex@gleasonator.comHey everyone, Merry Christmas!
I’m pleased to announce that I have unblocked the Mostr Bridge, Spinster, Neenster, and Poast from Threads. Read more here: https://soapbox.pub/blog/threads-server-blocking/
This Christmas, let’s make the world more open and connected.
Enjoy your freedom!
Threads is blocking servers on the Fediverse. Here’s how we unblocked ourselves. https://t.co/aAG7MTwOnj
— Soapbox.pub (@SoapboxTech) December 25, 2023
A major part of a healthy tech ecosystem is challenging the gatekeepers. Today one of those challenges has been thrown down by my friends at @SoapboxTech@Meta Threads has been apparently blocking specific servers from federating with Threads. The Head of Instagram, @mosseri, has expressed that the purpose of Threads integrating with ActivityPub is to allow creators to “own your audience”But The wholesale blocking of servers doesn’t seem like it supports the idea that you are supporting creators. I’d be interested in hearing why Meta is blocking these servers?And If Threads/Instagram recognize how much of a contradiction their actions represent vs their stated objective to empower creators to own their audience. From my perspective the blocking of these servers represents censorship not moderation. The simple request of these communities is for Meta to moderate users, not servers. Merry Christmas ? and I look forward to hearing a response from Adam Mosseri.,… https://t.co/PyNdBnYCEs
— Billy Boozer (@Billy_Boozer) December 25, 2023
Here’s an explanation of the situation @mosseri https://t.co/2SdfhI0Nd6
— Billy Boozer (@Billy_Boozer) December 25, 2023
One more link for the @hackernews community https://t.co/5eDQKkd10Z
— Billy Boozer (@Billy_Boozer) December 25, 2023
M. K. Fain|mk@spinster.xyz“Liberals” siding with Big Tech Mega Corp just because they don’t like the people on the other side? :pika:
RT: https://gleasonator.com/objects/fac5d848-b605-4846-86a3-33be541321d2
「Threads is blocking servers on the Fediverse. Here’s how we unblocked ourselves. | Hacker News」でも話題だったようです。
内容としては、Threadsが連合開始直後から5のサーバーをドメインブロックしていることが判明。Alex Gleason管轄のMostrとRebasedは対策を取り込み、現在は連合。Pleromaにも近日取り込み予定とのこと。
「機能: ThreadsのEU対応、ActivityPub対応のテスト開始、Webアプリの絵文字検索、ファクトチェック予告 | GNU social JP Web」のThreadsのActivityPub対応直後に本人が騒いでいたのを覚えており、それを記事にまとめてくれた形です。
Threads is blocking servers on the Fediverse. Here’s how we unblocked ourselves.
先日ThreadsがActivityPubのテストを開始しました。しかし、いくつかのサーバーを既にブロック (ドメインブロック) していることを発見しました。
少なくとも以下の5のサーバーがThreadsにブロックされていました。
- mostr.pub: Nostrとのブリッジサーバー。実質的にNostr全体のブロック。
- spinster.xyz: Soapbox上の最大のフェミニストサーバー。おそらくオンラインで最大のフェミニストコミュニティー。
- neenster.org: アニメーターのNina Paleyの専用サーバー。spinster.xyzの個人アカウントにより思想の排除。
- poa.st: くそ投稿コミュニティー。Soapboxの最大サーバー。Metaの利用規約に反している。
- mitra.social: RustのActivityPub実装Mitraの公式サーバー。Ethereum/Moneroが統合されている。
上記のドメインからThreadsの投稿にフェッチができません。Threads側に問い合わせたが、返事がありません。意図的にブロックしているかどうかがわからない。おそらく、Threads側のバグだと考えています。理由は、別のドメインからのリクエストに署名することで、対応できたからです。
Fighting back
「Configuring the Service Actor domain on Rebased ($3634512) · Snippets · Soapbox / Rebased · GitLab」のパッチをRebasedのサーバーに適用して、リクエストへの署名用の別のドメインを用意することで、Threadsのフォローが可能になります。
Threadsでは、MastodonがAuthorized fetchと呼ぶ機能を採用しています。これは存在していたものの、公式には制定されていませんでした。
Authorized fetchは2019年に「Add ActivityPub secure mode by Gargron · Pull Request #11269 · mastodon/mastodon · GitHub」でMastodonに導入されました。理論的には、他のサイトでブロックされているユーザーがあなたの投稿を閲覧不能にできます。また、ブロックされたサーバー全体が投稿を閲覧で聞くできる可能性があります。
ActivityPubは基本的にオープンなので、回避方法はもちろんあります。いくつかは非常に簡単です。新しいドメインを作成して、そのドメインでデータを取得して元のドメインにデータを転送できます。
パッチの内容はまさにこれです。サーバー管理者が、リクエスト署名用の別のドメインを設定できます。ドメインがブロックされても、別のドメインに簡単に切替可能です。
私としては、Metaの思い通りにさせるつもりはなく、彼らの公開データを今後も無料で全員に公開されるようにするつもりです。ただし、Metaがブロックリストを公開する場合、この対策を解除します。
Authorized fetchの回避ツールは、新しいソフトに同梱済みです。Metaによる検閲が、分散SNSの継続的な成長に必要と考えるからです。
How to tell if your server is blocked
Threadsからのブロックは、サーバー管理者の場合@mosseriのアカウントにアクセス後、サーバーログにfacebookexternaluaのユーザーエージェントのログがあるからで確認可能です。
grep facebookexternalua /var/log/nginx/access.log
facebookexternaluaからのリクエストがあるのに、Threadsのプロフィールを閲覧できない場合、自分のサーバーのバグの可能性があります。
facebookexternaluaからのリクエストがない場合、ブロックされている可能性があります。
というのも、Authorized fetchは2段階プロセスだからです。まずThreadsへのデータのリクエスト時に自分を識別します。次に、Threadsはfacebookexternaluaユーザーエージェントを使用してサーバーにリクエストを送信し、あなたのサーバーを検証します。サーバーがブロックされていたら、リクエストがされません。
Mastodonでは、Fediblockなどの巨大なブロックリストを使用して、サーバーをブロックすることが非常に一般的です。これはネットワークの断絶を生むため大問題です。
人々はThreadsの動向を疑問に思っています。
Threadsは3300万人に日間アクティブユーザーを抱えているとの報告があります。ある推定ではActivityPubの分散SNS全体の月間アクティブユーザー数は120万人とあります。3300万人を個別モデレートできるなら、3400万人の個別モデレートも余裕でしょう。
したがって、不正な動作がない限り、Threadsはドメインブロックすべきではないと私は主張します。サーバー単位ではなく、ユーザー単位でモデレートすべきです。そうしない場合、あまりに政治的でオープンな性質に反しており、Threadsの怠慢としかいいようがないです。
現状、Threads関係者はまともだと思っており、正しいことをすると願っています。
ActivityPubの検閲は、Nostrの必要性を浮き彫りにしています。Nostrへの闘志が息づいており、良い未来に向けて構築を続けています。今後のプロジェクトのDittoでは、Nostrユーザーが様々なドメインでActivityPubにアクセスできるようになり、ドメインブロックが困難になります。
結論
Threadsによるドメインブロックととその対策でした。
ドメインブロックの対策として、他のドメイン経由というのは私もアイデアとしては思い浮かんでいて、Misskey.ioなどからのドメインブロック対策でどこかでGNU socialにも機能を入れたいとは思っていました。Alex Gleasonが先にやってくれたので、こちらの修正を真似すればよさそうです。
ドメインブロックはあまり好ましくありません。が、ブロック対象が軒並み右派系で左派寄りのThreadsに露骨な対応でした。左派からすればブロックは順当には思いました。
「機能: ThreadsのEU対応、ActivityPub対応のテスト開始、Webアプリの絵文字検索、ファクトチェック予告 | GNU social JP Web」でも触れた通り、ThreadsがActivityPubに参加すれば、ほぼ確実に何らかの問題が起こるだろうとは予想していました。まずは、ドメインブロックで最初の問題です。
いろいろ賛否はあるものの、分散SNSの成長には欠かすことのできない存在だろうというのはたぶんその通りです。好き勝手にされないように、今回のように注意深く見守り、いざというときには受け身を取れるようにしておくとよさそうです。
資料
分類して整理するのが手間なので、今回の記事作成の元となった、ブロック発覚とその対策・適用の投稿群を以下にまとめて掲載します。けっこう文量が多いので会員限定のおまけです。
詳細プロフィール。SNS: X Twitter/GS=gnusocialjp@gnusocial.jp/WP=gnusocialjp@web.gnusocial.jp。2022-07-17からgnusocial.jpとweb.gnusocial.jpのサイトを運営しています。WordPressで分散SNSに参加しています。このアカウントの投稿に返信すると、サイトのコメント欄にも反映されます。
Comments