Middle .Net в DevCom
  • Як я створив анонімний чат з наскрізним шифрування на Blazor та з якими викликами зіткнувся

    Я трохи детальніше дослідив це питання і хотів би уточнити свій підхід.

    Щодо ECDHE та ефемерності ключів у моєму випадку ключі фактично є ephemeral. Пара ключів генерується локально при створенні сесії й існує лише в межах активного чату. Після завершення сесії (закриття вкладки, розриву з’єднання або timeout) всі ключі та повідомлення знищуються, а наступна сесія створює вже нову пару ключів і новий shared secret.

    Тобто forward secrecy в межах окремих сесій фактично зберігається, оскільки ключовий матеріал не перевикористовується між чатами та не зберігається сервером.

    Також я свідомо обрав модель ephemeral-session чату без persistence. Середня тривалість сесії кілька хвилин(за відгуками користувачів), тому ротація ключів всередині однієї короткоживучої сесії наразі не виглядає для мене критично необхідною.

    Але загалом згоден, що з точки зору більш mature messenger architecture можна рухатись далі в сторону HKDF, key ratcheting та більш складних протоколів, але не впевнений в реальні користі їх враховуючи особливість мого чату.

    Підтримав: Корнєєв Дмитро
  • Як я створив анонімний чат з наскрізним шифрування на Blazor та з якими викликами зіткнувся

    Дякую за рекомендації, я обов’язково перегляну запропоновані ресурси.
    Це поки по факту перша версія чату, і я планую покращувати і вдосконалювати його, шукати кращі шляхи реалізації криптування і загальної безпеки.