Open WebUIに、参加者のブラウザーで内容を暗号化し、サーバーには保存しない一時チャットが追加された。同僚と1対1や非公開グループで会話するユーザーは、記録を残す代わりに、その場限りで話す選択肢を得た。
1. サーバーは内容を保管せずに中継する
2026年10月16日に公開された0.12.3のリリースノートと変更履歴は、エンドツーエンド暗号化チャットを新機能として紹介している。エンドツーエンド暗号化は、会話の両端にいる参加者側で内容を保護する方式だ。今回の機能ではメッセージをブラウザーで暗号化し、サーバーは暗号文を保存せずに中継する。
メッセージの保護にはMLSという暗号化方式を使う。
メッセージ1件のサイズは最大16 KiBだ。これは転送速度や処理量を示す性能値ではなく、メッセージ1件に適用されるサイズ制限だ。
2. 非公開の会話で開始し、参加者を確認する
この機能は1対1のメッセージと非公開グループチャンネルで使える。メンバーの1人がチャンネルメニューで暗号化チャットを選ぶと、ほかのメンバーに進行中の案内と参加リンクが表示される。別の会話相手リストを作るのではなく、既存のチャンネルで一時チャットを開く流れだ。
参加者はコードを互いに比較して相手を確認できる。ここでのコードはプログラムの命令ではなく、参加者同士で照合する確認値だ。
チャット画面では、ほかの人が入力中かどうかも確認できる。
チャットは退出するか画面を再読み込みすると消える。チャンネルのメンバーやアクセス権が変わっても終了する。参加者が変わった後も同じ暗号化チャットを続けられる機能と理解してはならない。
3. 機能の有効化とユーザー権限を別々に設定する
管理者は管理者設定の一般項目で暗号化チャンネル機能をオンにするか、環境変数で有効化できる。利用許可は別の暗号化チャンネル権限で付与し、この権限は初期状態ではオフだ。機能を公開する設定と、ユーザーに利用を許可する設定を区別する必要がある。
以下は、順に機能の有効化とユーザー権限に対応する環境変数名を原文どおりに記したものだ。実行コマンドや値を指定したコード例は、このリリースの原文には示されていない。
ENABLE_ENCRYPTED_CHANNELS
USER_PERMISSIONS_FEATURES_ENCRYPTED_CHANNELS運用にはWebSocket接続が必要だ。WebSocketはブラウザーとサーバーが接続を維持し、メッセージをやり取りする通信方式だ。原文はWebSocketサーバーのログ記録を無効にし、本番環境ではHTTPSを使うよう求めている。ユーザーにメニューを公開するだけでなく、接続と記録の設定も併せて確認すべき事項だ。
4. 保管負担の軽減と引き換えに運用者の確認が必要になる
利点は、サーバーに会話内容を蓄積しないことにある。一方、導入の負担は、運用者が利用権限と通信環境を整える作業へと移る。既存のチャンネルでメニューを1つ選ぶユーザー体験だけを見て、単なる画面上の機能として扱ってはならない理由だ。
サーバーに保存しないという説明だけで、セキュリティ保証の範囲を広く解釈してはならない。参加者の端末での画面キャプチャー防止や外部セキュリティ監査の結果は、このリリースの原文には示されていない。そのため、組織のセキュリティ要件を満たすかどうかは、機能名ではなく、公開された動作と必要な運用条件に基づいて判断すべきだ。
今回の追加の意義は、チャット全体がより安全だと宣言することではなく、記録の保管と切り離された一時チャットの方式を選べるようにしたことにある。
