Skip to main content

Chat Requirements

Overview

チャットシステムにおける要件定義。

要件定義

チャットの種類を明確にする

  • グループチャット
  • Facebook Messengerみたいな1対1のチャット

対象サービスの確認

  • Webアプリ
  • モバイルアプリ
  • どちらも対象

DAU確認

  • デイリーアクティブユーザーの想定

MAU確認

  • マンスリーアクティブユーザーの想定

グループチャット

  • グループチャットの参加人数の上限

メッセージのサイズ制限

  • サイズ制限はする

メッセージの中身

  • テキストメッセージのみなのか
  • 添付ファイル(画像)などは付与できるのか

チャットの履歴

  • どのくらい保持するのか
  • またユーザーが退会した時のデータはどうするのか

マルチデバイス対応

  • 同一アカウントで複数アカウントの同時ログインが可能なのか

設計規模の同意

  • どのくらいのDAUやMAUを想定しているのか合意を得ておく

エンドツーエンドの暗号化(End-to-End)

  • 暗号化は必要か

エンドツーエンドの暗号化(End-to-End)とは

エンドツーエンドの暗号化(End-to-End Encryption、E2EE)は、通信の両端(送信者と受信者)だけがメッセージ内容を復号できるようにする暗号化方式。
この仕組みをチャットシステムに組み込むことで、通信経路にあるサーバーやネットワーク運営者がメッセージの内容を確認できないように保護される。

具体的には以下のような特徴。

  1. メッセージの暗号化 送信者がメッセージを作成すると、その内容は自動的に暗号化される。
    この暗号化は、受信者だけが持つ秘密鍵によって復号できるよう設定されている。
  2. メッセージの送信 暗号化されたメッセージがサーバーを経由して受信者に届く。
    この段階でメッセージは暗号化されたまま。
    サーバー側には、復号するための鍵情報がないため、内容を読むことができない。
  3. メッセージの復号 受信者のデバイスで、受信者が持っている秘密鍵を使ってメッセージを復号し、内容を表示する。

エンドツーエンド暗号化のメリット。

  • プライバシーの保護: サーバー管理者や第三者がメッセージの内容を確認できないため、プライバシーが確保される
  • データのセキュリティ向上: 万一メッセージが途中で盗聴された場合でも、暗号化されているため内容が保護される。
  • 法的保護: 政府機関などがデータへのアクセスを要求する場合でも、通信サービス側に復号鍵がないため、メッセージの内容をできない

チャットシステムでの使用例。

WhatsAppやSignalといったチャットアプリでは、エンドツーエンドの暗号化が既定で有効になっている。
これにより、送信者と受信者以外はメッセージの内容にアクセスできない設計となっている。
エンドツーエンドの暗号化を導入することで、ユーザーの個人情報が漏洩しにくくなるため、特にプライバシーが重視されるチャットシステムに適している。