Безопасность и конфиденциальность
Утверждение, сформулированное точно
Передачи защищены сквозным шифрованием, кодовая фраза аутентифицирует обе стороны, а релей видит только зашифрованный текст. Это всё утверждение целиком.
Формального стороннего аудита безопасности croc не проводилось, и CrocApp не заявляет об этом. Не считайте CrocApp прошедшим аудит, сертифицированным или верифицированным по принципу нулевого разглашения.
Как это работает
- Один код, одна передача. Каждая передача использует короткую одноразовую кодовую фразу. Тот, у кого есть код, и есть партнёр по передаче; делитесь им через канал, которому вы доверяете, и он истекает вместе с передачей.
- Сильные ключи из коротких кодов. Оба устройства выполняют PAKE (аутентификацию по паролю с обменом ключами), чтобы превратить кодовую фразу в сильный ключ шифрования. Сам код никогда не передаётся по сети, и неверный код сразу приводит к ошибке.
- Сквозное шифрование. Всё шифруется на вашем устройстве и расшифровывается только на другом. Ничто посередине не может это прочитать.
- Релей — это просто труба. Когда устройства не могут соединиться напрямую, интернет-релей пересылает зашифрованный поток. Релей никогда не имеет ключа — он видит только зашифрованный текст. Можно также запустить собственный релей и указать его в настройках.
- Локальная сеть, когда это возможно. Устройства в одной сети передают данные напрямую; данные никогда не покидают вашу сеть. Локальный путь и релей соревнуются, и побеждает более быстрый.
- Контроль остаётся за вами. Ничего не сохраняется без вашего согласия: входящие передачи показывают предпросмотр файлов, который вы принимаете или отклоняете. Автоприём выключен, пока вы сами его не включите.
Чего CrocApp не делает
- Нет телеметрии, нет аналитики, нет рекламы, нет учётных записей.
- История передач хранится локально на устройстве — что именно записывается, см. в разделе История.
- Вы можете указать CrocApp на собственный релей croc вместо публичного по умолчанию.
- Зависимости в Go-движке сканируются
govulncheckпри каждом запуске CI, а также еженедельно по расписанию.
Сообщение об уязвимости
Сообщайте приватно через GitHub Security Advisories. Никогда не открывайте публичный issue, обсуждение или pull request для предполагаемой уязвимости.
Полезно указать: что получит атакующий и какой доступ ему для этого нужен, шаги воспроизведения (поток кодовой фразы, релей, платформа), версию CrocApp или коммит, а также версию ОС и устройство, и воспроизводится ли то же поведение с оригинальным croc CLI.
Полная политика, область действия и что в неё не входит (сам протокол передачи принадлежит проекту croc): SECURITY.md на GitHub.