Справка

Dead Cat — платформа для безопасного хранения и обмена данными с клиентским шифрованием

О платформе

Dead Cat — платформа для безопасного хранения и обмена данными. Контент статей, файлов и личной базы ключей шифруется на устройстве пользователя; сервер хранит только зашифрованные данные.

Ключи шифрования никогда не покидают ваше устройство. Даже владелец сервера не может прочитать зашифрованный контент.

Шифрование

Платформа использует три уровня криптографии:

  • AES-256-GCM — симметричное шифрование контента статей, файлов и сообщений
  • RSA-OAEP — асимметричный обмен ключами при установке сессии и в Secret-чатах
  • PBKDF2 — вывод ключа из пароля для защиты личной базы ключей (150K итераций на мобильных, 600K на десктопе)

Перед любым запросом к API выполняется обмен ключами: браузер генерирует AES-ключ сессии, шифрует его RSA-публичным ключом сервера и отправляет на сервер. Все последующие запросы шифруются этим ключом сессии.

Ключи

Мастер-ключ — основной AES-256 ключ пользователя. Вводится в поле в шапке сайта. Используется для шифрования статей и файлов, разблокировки личной базы ключей и в Secret-чатах.

База ключей — зашифрованное хранилище дополнительных AES-ключей на сервере. Разблокируется паролем и мастер-ключом. Можно синхронизировать базу с сервера — тогда выбранные ключи будут использоваться для автоматической расшифровки статей.

Генератор ключей позволяет создать случайный AES-256 ключ или вывести ключ из пароля через PBKDF2. Ключи можно сохранить в localStorage или sessionStorage браузера (зашифрованными паролем).

Статьи

Статьи пишутся в Markdown с использованием встроенного редактора на базе Tiptap. Поддерживаются таблицы, изображения, ссылки, подсветка кода и другие расширения.

При публикации можно включить клиентское шифрование: контент шифруется выбранными AES-ключами по цепочке (каждый ключ последовательно шифрует результат предыдущего). Для расшифровки нужны все те же ключи в обратном порядке.

Доступ к статье может быть публичным (доступна всем), приватным (только выбранным пользователям и группам) или по ключу.

Мессенджер

Два режима обмена сообщениями:

  • Обычные чаты — передача через WebSocket (основной канал) или HTTP (резервный). Сообщения шифруются ключом сессии.
  • Secret-чаты — end-to-end шифрование. Перед обменом выполняется handshake: RSA для обмена AES-ключом, затем шифрование сообщений. Даже сервер не может прочитать содержимое.

Файлы

Файлы загружаются напрямую в S3-хранилище через временные учётные данные, полученные от сервера. Метаданные сохраняются отдельно.

При загрузке можно включить клиентское шифрование: файл шифруется чанками (каждый по AES-256-GCM) перед отправкой. Для скачивания потребуется тот же ключ.

Видео

Раздел видео — библиотека роликов с просмотром через HLS.js и загрузкой. В отличие от статей и файлов, клиентское шифрование видео не предусмотрено.

Поддерживаются категории, поиск, теги и пагинация.

Группы и связи

Группы могут быть открытыми (доступны через поиск) и закрытыми (по приглашению). Участники имеют роли: Владелец, Админ, Модератор, Участник.

Связи — типы отношений между пользователями: home cat, cat, dog, dead dog. Задаются при запросе связи и отображаются рядом с именем в списке.

Аккаунт

Регистрация доступна только по одноразовой ссылке-приглашению, которая действует 24 часа. Создать инвайт может авторизованный пользователь в настройках.

В личном кабинете можно сменить имя, аватар, пароль, настроить приватность профиля и управлять ключами.