StarDictがクリップボードをリモートサーバーに送信!まさかの仕様か?
引用元:https://news.ycombinator.com/item?id=44872313
メンテナが「パッケージの説明を読め」って言ってるけど、何百もあるパッケージの説明を全部読むなんて無理じゃん?
Debian Trixieが数日前にリリースされた時に全部読み始めたら、今もまだ読んでるはずだよ、って批判してるね。
そういう返答って、私にとっては悪意があるって証拠だよ。
これはHanlon’s razorが当てはまると思うな。悪意じゃなくて単なる無知だよ。メンテナがこの機能で得するとも思えないし、辞書サイトから圧力を受けてるとも考えにくいね。でも、XZ incidentの件もあったし、FOSSも脆弱だってことは警戒しなきゃ。
“計画と取り壊し命令は、君たちの地球時間で50年間、Alpha Centauriの地方計画事務所に展示されていたんだ。地域のことに興味を持つ気になれないのなら…”だってさ。これって皮肉だよね。
https://www.youtube.com/watch?v=Z1Ba4BbH0oY
念のため言っておくけど、これ「The Hitchhiker’s Guide to the Galaxy」からの引用だよ。
Hanlon’s razorって、もう古いと思うな。「もっともらしい否認」が新しいMetaだよ。それに、メンテナは問題を直すつもりがなさそうだしね。
その返答はあんまり考えられてないとは思うけど、「悪意の証明」って言うのは言い過ぎじゃないかな。
この問題って、ソフトを使い物にならなくせずに直せるのかな?
ヒッチハイク・ガイドを読んでない20歳以上の人もいるし、覚えてない部分もあるだろうな。俺もそうだよ。
GDPRでは、プライバシー権は生命権と同じで放棄できないんだ。同意があったとしても有効な防御にはならないよ。
Chrome拡張には翻訳機能で信頼できないサーバーにデータ送ってるのが多いよね。ユーザーはリスクを承知で使ってるってことになってる。GoogleとかのAPIキーを隠してプロキシしてるからさ。セキュリティに無知なだけ?悪意はないだろ。無知と悪意が同じかどうかってのは議論の余地があるね。
プライバシー権を放棄できないって言うけど、EUではインフォームドコンセントがあれば、生命権もプライバシー権も文字通り放棄できるんだぜ。
いや、できないよ。インフォームドコンセントは常に具体的で、法的な処理の根拠がなくなったら終わりだからね。
それを無知のせいにできないから、Hanlon’s razorは当てはまらないね。明らかなセキュリティ侵害があるんだから。
TLSが有効な辞書サービスを使えよ。なければ、その機能はいらないね。ユーザーが影響を理解してないかもしれないから、クリックさせたり明示的に有効にさせるのも難しいんだ。平文でデータ送る意味や、何ができるかを理解してないかもな。
確かに。辞書ソフトは昔からあったのに、サービスが必要ないものにまでサービスを追加する今の流行はマジで迷惑だな。
今の分極化した世界では、互いの過ちや失敗を認め、憎み合わないことが必要だと思うね。でも、この問題は2009年から知られてるんだから、対処しなきゃ。こんなに長く放置されてたなんて馬鹿げてるよ。
俺は確実にセキュリティ侵害だと思うな。でも、無知が原因だとも考えてる。Debianのメンテナーは2009年からこれを放置してるんだ(https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=534731)。彼らも悪意があるのか?ただ誰も気にしなかっただけじゃないかな。
それは単に、今日のラッキーな10,000人の一人ってことだね。これ見てみてよ!https://xkcd.com/1053/
この件では意見は合わないだろうね。彼らの返答は、UIで改善すると言う代わりに、言い訳してるだけだ。このソフトは、より多くのデータを得るために意図通りに動いてる。クリップボードのデータはあらゆるものになり得るし、貴重なデータセットだ。特にデータ元が気づいてないなら尚更だよ。それに履歴もないから、何を失ったかも分からない。
パッケージの説明に悪意があるなんて、それはありえないと思うね。これは単に文化の違いじゃないかな。Windows、iOS、Android向けの超人気の中国語入力プログラムSogouも、入力した内容全てで同じことをしてるけど、誰も気にしてないよ。
私は反対だね。それは「”お気の毒に”」って弁護士言葉だよ。メインや依存パッケージのドキュメントを全部確認しないと分からないような重要な詳細を明確に書かないのは悪意がある。「使用している依存関係がクリップボードデータを取得してリモートサーバーに送信します」なんて書いたらユーザーが減るから警告しないんだ。「…ユーザーは説明を読め…」みたいな非謝罪や、「パッケージを分けろ」って対応も悪質だ。
私も同じ!最後に本を読んだのは17年前くらいだけど、そんな仕様は全然覚えてなかったよ。
>辞書プログラムが辞書提供ウェブサイトと通信するコードを含むのは当然。って言うけど、apt-get で辞書をインストールしたら、全部ローカルで完結するって期待するだろ。何世紀も前から紙の辞書があったんだし。
StarDict はかなりオンライン依存みたいだけど、legit だとしても、全体的に何か罠みたいに感じるね。
たとえ「legit」だとしても、暗号化されてない HTTP を使うべきじゃないよ。
バカな質問だけど…チェックする単語を明かさずに、単語ごとの Bloom filter でオンラインのスペルチェックはできないかな?
なんで?じゃあ dict プロトコルを使うべきなの?
これは世代的な問題だね。アプリケーションがローカルで動くのに、わざわざ外部と通信するのを当然だと思う人は、ローカルインストールソフトが何も外部と話さない世界を知らない、かなり若い人だろうね。筆者の bio を見ると、CS の資格もある人だし、オフライン辞書があるのも当然知ってる。でも、彼はまさにその時代の人間で、「当然」の基準が違うんだよ。今日では、ローカルにインストールされてオフラインで動くアプリなんて、ドン・キホーテが提唱する古風な騎士道みたいなものだ。(悲しいけどね、この例えも面白くないわ。)
HTTPSじゃないと、HTTP経由で常に送られるクリップボードの内容は MITM で簡単に盗み見されるからだよ。カフェの同じ WiFi にいる人にも読まれちゃうんだ。TCP/IP の仕組みや Firesheep の件が15年前にあったことを知らない人もいるのはわかる。でも、よく HN に投稿する人がそれを疑問視するのはちょっと心配だね。だから今、HTTPS everywhere を推進してるんだよ。
Bloom filter の検索はハッシュで行われるし、英語の単語セットが比較的少ないことを考えると、サーバーが送られたハッシュを逆変換するのはかなり簡単だよ。だから、Bloom filter はあまりプライベートじゃない。それに、一般的なスペルチェッカーの機能って、単語が正しくスペルされてるか教えるだけじゃなくて、代替の正しいスペルを提案することだよね。ゼロ知識証明や同型暗号を使えば、何かクールな方法があると思うけどね!
もっとコメントを表示(1)
>カフェの同じ WiFi にいる人にも読まれちゃう。って言うけど、WEP はもう20年以上前に非推奨になってるぞ。
〜” wc -cl /usr/share/dict/words
235976 2493885 /usr/share/dict/words
プログラムはUnixにプリインストールされてる辞書を使うもんだろって期待する人もいるかもな。
多くの言語では、フリーソフトウェアのオフライン辞書アプリとして合法的に再配布できる、網羅的な辞書ファイルは単純にないんだ。数千語しかないボランティアが作った辞書で我慢するか、市販の辞書を違法に再配布するか、十分なカバー範囲を合法的に提供するためにオンラインサービスに接続するしかないんだよ。
”words”は単なる単語のリストだよ。辞書に期待されるような単語の定義は含まれてないんだ。
HTTPS Everywhereは良いスタートだけど、カフェにいる他の連中を君のビジネスから締め出すだけだ。CAを強制する力がある奴にはまだ開かれてるし、そっちの方がよっぽど懸念される敵対者だ。だからHTTPS Everywhereは必要だけど、そこで止まるべきじゃないね。
もっとシンプルな方法もあるよ。ハッシュのプレフィックスをサーバーに送って、一致するリストを受け取るんだ。Google Safe BrowsingがURLでこれをやってるのが例だね。
ああ、でも僕らにはCertificate TransparencyやCert Pinningみたいな広く展開されてる取り組みがあるぜ。前者はそんな攻撃を広く知られるイベントにして、ブラウザはデフォルトで報告するし、証明可能だ。とても珍しいケースだよ。後者はアプリが特定の証明書やCAだけを信頼できるようにして、システムルートの信頼を無視するんだ。実際のHTTPSはかなり安全だってことを明確にしたかったんだよ。
あの由緒あるdingはローカル辞書でちゃんと動くよ。Debianにもパッケージされてるしね。https://www-user.tu-chemnitz.de/~fri/ding/
Wiktionaryは140万語のEnglishエントリーがある巨大な辞書だよ〔1〕。Merriam Webster’s Unabridged辞書の3倍の規模だね〔2〕、平均的な品質は低いけど。そしてCC-BY-SAライセンスだよ〔3〕。
〔1〕: https://en.wiktionary.org/wiki/Wiktionary:Statistics
〔2〕: https://www.merriam-webster.com/help/faq-how-many-english-wo…
〔3〕: https://en.wiktionary.org/wiki/Wiktionary:Copyrights
辞書なんて小さいんだよ!辞書にネットワークアクセスが必要だって考えるなんておかしいだろ。もしそうなら、なんでローカルにインストールするんだ?
”今日、アプリケーションがローカルにインストールされてオフラインデータで動作することは、コンピューティングの数少ない残りのDon Quixotesによって広められた古風な騎士道の声明のようなものだ。”
でも辞書パッケージにはオンラインである正当な理由なんてないね。
でも、残念ながらEnglishとGermanだけなんだよな。
「root of trust」への嫌悪感は変わらないけど、君の言いたいことはわかる。この「transparency」ってやつ、もっと学ばなきゃね。
>世代的なものだって?違うでしょ?辞書アプリは20年以上前からこうだったよ。StarDictの元になったBabylon Proは2000年にはもう何百万ものユーザーがいたし、Kindleも同じように動くよ!
>>もちろん辞書プログラムは辞書提供Webサイトと通信するコードを含むだろうね。でも、それは辞書をダウンロードするためであって、プログラムがローカルで提供するのと同じサービスを提供するためじゃないでしょ。
うーん、君が正しいね。
ある時点から、ネットワークアクセスなしでGUIアプリを動かすようになったんだ。最初はfirejailで、それからbubblewrapを使ったよ。Flatpakが登場する前だね。今でも、時間をかけて作ったbashスクリプト集を使って、アプリをサンドボックスで動かしてるんだ。
アプリの性質と必要なデータによるんじゃない?僕は、アプリはネットワークからしか取得できないリソースが必要じゃない限り、ネットワークにアクセスしないと思う。「Yelp」やWebブラウザ、FTP、git(リモート用)みたいに、それがコア機能ならネットワーク要求は当然だよね。でも、スペルチェッカーはローカルで完結するし、頻繁に辞書更新もいらないからネットワークアクセスは期待しない。ましてやデータを送信するなんて思わない。電卓がネットワークから関数要求したり、計算式を送信して結果をもらうとかも期待しないよ。
それは悪意のあるアクセスポイントの所有者には関係ないね。WPA2上のHTTPは、APが復号化した瞬間に再び平文になるんだから。
「words」の下に「dict」を誤用してるってバグ報告はどこに出せばいいんだろうね。
それ、僕も気になったよ。シンプルな機能でもライブサービスだと人々が期待するなんて、悲しい世の中だよね。
英語データは多いけど、他の言語はそうじゃないから指摘したかったんだ。Wiktionaryの生データは、同じ単語の低品質なエントリが多いから誤解を招くかもね。
全てのゲストWi-FiがPSKを使うわけじゃないし、ネットワークがサーバーまで全部暗号化されてるって思い込むのは、ユーザーにとって危ない考え方だよ。
プラグインシステム自体は必要かもしれないけど、アプリのデフォルトとは別問題だよ。Debianみたいな環境なら、FOSSファーストが合理的だし、ほとんどのユーザーにはローカル辞書がデフォルトで十分だろ。
Samsungスマホがパスワード含むクリップボードの全てを他のSamsungデバイスと共有してて、履歴も残ってた時はマジで驚いたわ。共有はオフにできたけど、クリップボード履歴はオフにできないんだよ。別のキーボードに変えてもSamsungに戻すと全部履歴が残るから、次はSamsung買わないわ。
そうそう、Samsung TVが個人情報や視聴履歴を売ってるのは有名だよね。Samsungのプライバシーポリシーって、スマホもTVも同じなんだよ。
SamsungデバイスではSamsungアカウントを作ったりログインしたりしない方がいいっていつも勧めてるよ。企業にデータが渡るチャンスを増やすだけだからね。
KDE Connect経由で、LinuxでコピーしたパスワードがAndroidのクリップボード履歴に出るのに気づいたよ。クリップボード共有を全部オフにしないで、パスワードだけ転送させない方法ってないのかな?
KDE Connectは個別のプラグインをオフにできるから、「Clipboard sync」を無効にすればいいよ。パスワードかどうかの判断は難しいと思うし、そもそも多くのツールキットやブラウザはパスワード入力欄からはコピーしないんだ。
ちなみにKDEのクリップボード履歴もオフにした方がいいかもね。パスワードはコピーせずに、選択を使ったり、クリップボードじゃない方法で自動入力したりするんだ。
君は短気な被害妄想野郎で、すぐに決めつけデマを広めて恥を知るべきだ。俺もHNのコメントガイドラインを読んでほしいよ。君の意見は思慮深ければ素晴らしい訂正になったのに、罵倒や個人攻撃で台無しだね。
もっとコメントを表示(2)
そうだね、穏やかに議論できたらよかったのに。Samsungはデバイスを同じSamsungアカウント、Bluetooth有効で同じWiFiに接続する必要があるって言うけど、通信方法や外部へのデータ送信の詳細は不明なんだ。検索してもわからなかったよ。でも、共有機能は無効にできたから、俺の主な不満は、Samsungがクリップボードデータを収集してることさ。[1]: https://cybersecuritynews.com/samsung-one-ui-security-flaw/[2]: https://www.tomsguide.com/computing/online-security/samsung-...[3]: https://windowsforum.com/threads/samsung-clipboard-security-…
各クリップボードでローカル辞書を調べたり、リモート辞書を要求したりするのはOKだね。両方を簡単に組み合わせられるのは怪しいけど理解できるよ。でも、デフォルトで結合されてるなんて、それはほとんど悪質だ!
これはYoudaoについて話してるよ、あれは翻訳サービスだね。俺はStarDictを使わないけど、もっと多くのことを翻訳するなら期待される機能だと思うよ。この記事全体は、中国語の翻訳プログラムがクリップボードデータを自社サイトや中国語翻訳サービスに、しかもhttpで送ってるってことさ。
これは悪意のある意図だ!開発者は子供じゃないし、世界中で使えるソフトを出してるんだから。ユーザーにちゃんと聞かずに個人データをリモートサーバーに送るべきじゃないよ!
さらに言えば、これはあからさまな中国のSIGINTだよ。
君にはそう見えるかもしれないけど(俺も同感だけどね)、人それぞれプライバシーに対する価値観や考え方は違うんだよ。
「中国の価値観」なんて言い訳は通用しないよ。俺たちが話してるのは普通の中国人じゃなく、Debianのパッケージャーなんだ。彼らはDebianプロジェクトの理念に沿った価値観を持つべきだよ。Debianの価値観に合わない人が、どうやってDebianのパッケージャーになれるのか想像できないね。
気にしないでほしいんだけど、Debianのパッケージ担当者としては許されないって言ってるわけじゃないんだ。でも悪意よりは、うっかりやっちゃった可能性の方がずっと高いと思うんだよね。<Debianの価値観に馴染みのない人がどうしてDebianのパッケージ担当者の地位に偶然にたどり着くのか想像しがたい>って意見だけど、俺には関係ないね。
もしそれが許されるなら、プライバシーに影響を与えるような役職に、そういう文化の奴らを受け入れるべきじゃないぜ。それか、単に「文化の違い」を悪い行いを誤魔化すための棒として使うのをやめるべきだろ。
それって、アフガンの奴らは同意の考え方が違うって言うのと一緒だよな。
別にそうじゃないね。「Chinese」はここで国籍を示すのに使われてるんだ、民族性じゃなくね。俺はそういう使い方に反対だ。それはCPCのプロパガンダ作戦を助長するし、「漢」の民族性とPRCの市民権を混同させる。それが彼らの文化帝国主義を助けるんだ(「台湾は“Chinese”で、俺たちは“China”だから、台湾の奴らは俺たちの人間だ!」)。あと、その定義はPRCが支配する領土や歴史的帝国からの漠然とした民族的祖先を持つ人すべてを含むように引き伸ばされてるんだ(「China」って言葉は基本的に「帝国」を意味するからね)。
まあ、PRCの奴らはプライバシー侵害に慣れてるっていうのは同意するよ。政府が生活を完全に把握してるのが当たり前だし、多くの人にとっては良いことだと思ってる(それが安全を保つと信じてるのかもね)。あと、10億人のうちの1人として育つと、無用な匿名感があると思うんだ。誰かがクリップボードを見ても気にしない、人が多すぎるからどうでもいいって感じかな。
中国企業と西洋企業の間には、プライバシーに対する期待に文化的な違いがあるのは確かみたいだね。もちろん、Debianのパッケージでこんなことが許されるわけじゃないけど、どうしてこんなことが起こったのかは理解できる気がするよ。
こんなの、悪意がないって思わないのは本当に難しいぜ。メンテナーの言ってること見てみろよ。「Stardictには「Scan」機能があるんだ、ユーザーがこの機能を有効にすると、ユーザーがテキストを選択したら、Stardictがこの選択されたテキストを翻訳するんだ… なぜユーザーは機密データを選んで辞書で調べるんだ?」だってさ。
外国語のテキストが機密だって見分けられなかったらウケるな…多分「秘密」ってスタンプされてたんだろうな。「司令官、敵は翻訳サーバーエラーを起こしています!」だってさ。
Waylandのフレーミングは誤解を招くと思うぜ。これがまさにその通りだね:<もしかしたらStarDictはWaylandで動くために特別な許可を求め始めて、ユーザーは今と同じようにそのデフォルトを受け入れただろう。>そう、そうするだろうね。インストーラーがユーザーの介入なしにその特別な許可を自動的に設定するかもしれないしな。マルウェアはマルウェアだ。Waylandは一部の事柄に対しては防衛に役立つかもしれないけど、ディストロの一部としてインストールされたパッケージに対しては防衛してくれないだろう。
誤解を招くどころか、Waylandはこの特定の点でXorgよりも優れてるぜ。でも、もう一つの懸念はシステム的な問題の一部なんだ。送信されたデータが平文で送られたってこと考えてみろよ!<StarDict…X11で動いてる間、Debianのデフォルト設定を使って、ユーザーのテキスト選択を暗号化されてないHTTPで2つのリモートサーバーに送ってたんだ。><パッケージの説明を読んで、YouDaoプラグインが何をするか知ってたユーザーでも、結果として行われる通信は少なくとも暗号化されてるだろうと期待したかもしれない。でも、このプラグインは実際にはバックエンドサーバー—dict.youdao.comとdict.cn—に安全でないHTTPで接続してるんだ。だから、これらのサーバーにユーザーが選択したテキストが送られるだけでなく、その経路のどこかでトラフィックを見れる奴なら誰でも同じものを見れるんだよ。
さらに誤解を招くぜ。「Wayland」はこんなポリシーに関しては関係ないんだ。コンポジタがアプリがクリップボードへのアクセスを要求したときにユーザーの承認/拒否UIを実装しない限り、Wayland上のアプリもX11と同じくらい簡単にクリップボードを覗けるからな。俺はGNOMEやKDEをWaylandモードで動かしたことはないけど、多分そうしてるのかもしれないけど、俺が試したwlrootsベースのコンポジタはどれもやってないぜ。