Справка
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 часа. Создать инвайт может авторизованный пользователь в настройках.
В личном кабинете можно сменить имя, аватар, пароль, настроить приватность профиля и управлять ключами.