PythonとSimple-Matrix-Bot-Libを使用してMatrix Botをセットアップする方法
PythonとSimple-Matrix-Bot-Libを使用してMatrixボットを構築し、認証とデプロイのオプションを比較し、コマンドをテストし、代わりにmatrix-nioを使用すべき場合を理解します。
具体例:マヤはスマートフォンで新しい暗号化メッセージを読むことができますが、新しいノートパソコンでElement Webにログインした後、古いメッセージのいくつかが「復号化できません」と表示されます。この架空のケースは、新しいブラウザにキーが欠落している問題と、アカウントに共有されていないメッセージキーの問題を区別するのに役立ちます。この区別が重要なのは、前者の問題はブラウザセッションを確認してキーのバックアップを復元することで解決できる可能性があるのに対し、後者の問題は実際にキーを持っている別の参加者またはデバイスが必要になる可能性があるためです。
Elementは暗号化されたMatrixイベントを受信しましたが、現在のセッションではそのセッションで使用可能なキーで復号化できませんでした。テキストは、Elementが再読み込みによって簡単に表示できる形式でホームサーバーに保存されていません。エンドツーエンド暗号化では、必要なルームキーは参加デバイスまたは暗号化されたキーバックアップに保持されます。Elementによると、キーストレージは新しいデバイスでの履歴の復号化をサポートしており、リカバリキーでそのバックアップをロック解除できます。Elementの暗号化とキーストレージに関するFAQを参照してください。
メッセージの送信に失敗する理由はいくつか考えられます。現在のブラウザがバックアップキーにアクセスできない新規または未検証のセッションである場合、キーがこのデバイスに送信されていない場合、特定のイベントがデバイスまたはユーザーがルームキーを受信できる時期よりも前に発生した場合、またはローカルブラウザのデータやクライアントの問題が干渉している場合などです。表示されるエラーだけでは、どの原因が該当するかを特定することはできません。まず、この失敗が特定のイベント、過去の履歴の範囲、またはすべての暗号化されたルームに影響しているかどうかを確認してください。
マヤの例では、彼女のスマートフォンがまだ会話を開始しています。これは貴重な情報です。新しいウェブセッションには存在しない鍵を保持する、検証済みのセッションである可能性があるからです。調査中は、そのスマートフォンにログインしたままにして、暗号化IDのリセットや鍵のバックアップの削除は避けてください。
これらのチェックは非破壊的です。これにより、Maya は単一イベントキーの欠落を、破損したアカウントバックアップのように扱うことを避けることができます。
Element は、たとえ 2 つのセッションが同じ物理コンピュータを使用している場合でも、各ログイン セッションを個別のデバイスとして扱います。新しいブラウザー セッションでは、バックアップされた暗号化キーにアクセスする前に検証が必要になる場合があります。Element の現在の Web 手順では、セッション検証はプロファイル メニューの「すべての設定」と「セッション」の下にあります。「現在のセッション」から「セッションの検証」を選択します。利用可能な検証オプションには、別のデバイスまたは回復キーが含まれます。メニュー名はリリースやホスト型デプロイメントによって異なる場合があるため、インストールされているバージョンに表示されているラベルに従ってください。Elementのデバイス検証ガイド
Mayaの場合、検証とキーの復元が成功すれば、バックアップされた履歴がブラウザで読み取れるようになる可能性があります。ただし、バックアップに含まれていなかった、またはデバイスと共有されていなかったキーは復元されません。Elementのドキュメントには、新しいログインを検証すると、クロス署名とシークレットストレージに接続され、バックアップされたメッセージキーにアクセスできるようになると記載されています。Elementの新しいログイン検証ガイド
バックアップをリセットしてリカバリキーをテストしないでください。Element では、保存したキーが機能するかどうかを Element Web でのデバイス検証プロセス中に使用して確認することを推奨しています。サインイン済みで検証済みのデバイスをお持ちの場合は、Element の最新ガイドで、[すべての設定] > [暗号化]でリカバリキーの状態を確認し、キーを取得または変更する方法も説明しています。交換したキーは安全な場所に保存し、新しいキーが承認されたことを確認してから使用してください。Elementのリカバリキーチェックリスト
リカバリキーは暗号化されたキーストレージへのアクセスを保護するものであり、対応するルームキーがバックアップされていない場合は、リカバリキー自体ではコンテンツを復号化しません。ルームを復号化できるデバイスでサインインしている場合は、Elementのバージョンに応じた公式のエクスポートまたはバックアップ手順に従う間、そのデバイスを使用できる状態にしておいてください。
Matrixの暗号化ルームメッセージはグループセッションを使用し、デバイスには関連するセッションキーが必要です。Matrixの実装ガイドでは、ルームキーが特定のデバイスに配信される仕組みと、クライアントが不足しているキーを他のクライアントに要求できる仕組みについて説明しています。キーの共有はデバイスの信頼関係と共有ルールによって管理されます。クライアントは、検証されていない要求者すべてに自動的にキーを送信すべきではありません。Matrixのエンドツーエンド暗号化実装ガイドを参照してください。
正当なタイミングの問題も存在します。例えば、以前の暗号化セッションが開始された後に参加したデバイスには、そのセッションのキーが渡されていない可能性があります。Matrixのガイドによると、新しく追加されたユーザーは通常、今後のメッセージのために現在のセッション状態を受け取りますが、以前のメッセージについては、サポートされ許可されている場合に履歴共有が必要になります。Mayaの仮説的なケースでは、彼女の携帯電話が古いイベントを復号化できるにもかかわらず、バックアップ復元後も検証済みのブラウザが復号化できない場合、その携帯電話にそのルームキーの唯一のコピーが保存されている可能性があります。デバイスやバックアップにそのコピーがない場合、復元できない可能性があります。
Elementがキー要求プロンプトを表示する場合は、アクセスを要求しているデバイスを確認し、可能であればセッションを検証してから使用してください。送信者またはルーム管理者に、信頼できるデバイスがまだキーを保持しているかどうかを確認してください。エラーを解消するためだけに、見慣れないセッションを承認しないでください。
Element のサポートドキュメントには、アクティブなセッションがない状態でクロス署名をリセットすると、過去の暗号化されたメッセージへのアクセスが失われる可能性があると記載されています。そのため、Maya はブラウザを検証している間、作業用電話にログインしたままにしています。クロス署名のリセットに関する Element の警告
キーバックアップが利用できない場合、バックアップでエラーが報告された場合、サーバー移行後に複数のユーザーが復号化に失敗したと報告した場合、またはホームサーバーの復元後に問題が発生した場合は、管理者に連絡してください。Element のサーバーバックアップに関するドキュメントには、Synapse データベースが失われると、暗号化されたイベントが「復号化できません」と表示される可能性があると記載されています。これはブラウザの設定ではなく、サーバー復旧の問題です。Element Server Suite のバックアップと復元に関するドキュメントを参照してください。
問題を報告する際は、Element Webのバージョン、ブラウザ、ホームサーバー、別の検証済みデバイスで同じイベントが復号できるかどうか、影響を受けるメッセージが最近のものか過去のものかを含めてください。メッセージの内容や復旧キーは絶対に送信しないでください。イベントが1つだけ利用できず、どのデバイスもそのキーを保持していない場合は、その旨を明確に説明してください。サポートでは配信やサーバーの問題を診断できますが、信頼できるデバイスやバックアップに保持されていないエンドツーエンド暗号化キーを取得することはできません。
失敗したのと同じ部屋とイベントに戻ります。ブラウザセッションが検証済みと表示されていること、キーバックアップが接続されていること、問題が範囲に関係している場合は影響を受けた複数の履歴イベントが開いていることを確認します。次に、最近暗号化されたメッセージを確認します。最近のメッセージは正常に動作するのに、古いイベントが1つだけ利用できない場合は、そのイベント固有のキーがまだ見つからない状態でも、ブラウザの設定が修正されている可能性があります。
マヤにとって、有益な結果は単にエラーバナーが消えることだけではありません。Element Webが彼女が期待する履歴を復号化でき、新しいセッションが検証され、回復キーが安全に保存されることです。すべてのデバイスで利用できないイベントを除いてこれらのチェックに合格した場合、作業中のセッションを保持し、送信者または管理者にそのイベントのルームキーが他の場所に存在するかどうかを問い合わせます。
PythonとSimple-Matrix-Bot-Libを使用してMatrixボットを構築し、認証とデプロイのオプションを比較し、コマンドをテストし、代わりにmatrix-nioを使用すべき場合を理解します。
DNS、ファイアウォールルール、公式リポジトリ、Let's Encrypt SSL、サービスチェック、NATトラブルシューティングを含むJitsi MeetをUbuntu 24.04にインストールします。
ownCloud Desktopの同期証明書エラーを修正するには、サーバーURL、証明書名と証明書チェーン、システムクロック、クライアントバージョン、および信頼済みCAストアを確認してください。
PhpRedis、APCu、ループバック専用のRedisサービス、および実践的な検証手順を使用して、Ubuntu 24.04上でNextcloud向けにRedisファイルロックと分散キャッシュを設定します。
デバイス認証、キーのバックアップ、リカバリキー、および紛失したルームキーを確認することで、メッセージ履歴を損なうことなく、Element Webの復号化エラーをトラブルシューティングします。
Nextcloudの2要素認証プロバイダーを有効にする方法、ユーザーまたはグループに対して2要素認証を強制する方法、復旧を準備する方法、ログインとクライアントアプリを検証する方法を学びましょう。
zimbraMtaMyNetworks を使用すると、Zimbra で認証されていない送信メールのリレーを信頼できる IP アドレスに制限できます。許可リストを安全に検査、更新、再読み込み、検証する方法を学びましょう。
Nextcloud の PHP メモリ制限を少なくとも 512M に設定し、適切な Web PHP 設定を見つけて、Apache または PHP-FPM を再起動し、警告が解消されたことを確認してください。
CoturnをSynapseと連携させて、Matrix WebRTC通話を設定します。共有認証情報、NAT、ファイアウォールポート、TLSオプションを設定し、従来のTURNとMatrixRTCおよびLiveKitを区別します。
Nextcloud MailをGmailまたはMicrosoft 365向けにOAuth2で設定し、IMAP/SMTPアクセスを確認し、リダイレクトの問題をトラブルシューティングし、制限事項を把握します。