Olm

Olm — криптографічна бібліотека та протокол Matrix для наскрізного шифрування приватних (один-на-один) повідомлень, заснований на алгоритмі Double Ratchet.

Опис

Olm — це реалізація протоколу Double Ratchet (розробленого командою Signal), адаптована для екосистеми Matrix. Він забезпечує шифрування сесій між двома конкретними пристроями: кожна пара "пристрій A — пристрій B" встановлює незалежну Olm-сесію.

Double Ratchet поєднує два механізми: Diffie-Hellman ratchet (для оновлення ключів при кожному повідомленні) та symmetric-key ratchet (для деривації ключів шифрування). Результатом є властивість forward secrecy: компрометація поточного ключа не дозволяє розшифрувати попередні повідомлення. Також забезпечується break-in recovery — після компрометації ключа система автоматично відновлює безпеку через наступні DH-оновлення.

Для встановлення Olm-сесії використовується протокол X3DH (Extended Triple Diffie-Hellman). Кожен пристрій публікує на homeserver набір one-time prekeys — одноразових публічних ключів. Коли відправник хоче ініціювати сесію з новим пристроєм, він забирає один із цих prekeys і виконує X3DH для отримання спільного секрету без попередньої взаємодії сторін.

Olm використовується лише для приватних чатів та для передачі ключів Megolm-сесій у групових кімнатах. Це пов'язано з тим, що Double Ratchet погано масштабується на велику кількість учасників — для кожної пари пристроїв потрібна окрема сесія.

В контексті UMTC

У UMTC Olm автоматично активується в Element при будь-якому приватному чаті між двома користувачами. Адміністратори не мають доступу до вмісту цих переписок навіть через базу даних Synapse.

При підключенні нового пристрою до облікового запису Matrix, Olm-сесії встановлюються заново для кожного активного співрозмовника. Саме тому після втрати пристрою рекомендується верифікувати новий пристрій через cross-signing, щоб не переривати шифровані сесії.

💡 Порада
Якщо повідомлення відображається як "Unable to decrypt" — скоріш за все, Olm-сесія не встановлена або ключі не синхронізовані. Спробуйте запустити верифікацію пристрою або запросити відправника повторно надіслати ключі сесії.

Пов'язані терміни

  • megolm — протокол для групових кімнат, доповнює Olm
  • e2ee — загальна концепція наскрізного шифрування
  • matrix — протокол, в якому використовується Olm
  • element — клієнт, що реалізує Olm/libolm

Посилання

Шлях: glossary/olm.md

UMTC Wiki © 2026 | Ukrainian Military Tactical Communications