Как проверить, что фото зашифрованы
Не верьте нам на слово — проверьте сами. · English · Қазақша
Мы утверждаем три вещи: фото и видео шифруются на вашем устройстве до отправки; ключ никогда не попадает на наш сервер; без ключа файлы не может открыть никто, включая нас. Ниже — четыре способа убедиться в этом, от простого к дотошному.
1. Посмотрите прямо в приложении
Откройте любое своё фото и внизу карточки нажмите «🔍 Как это фото выглядит на сервере». Приложение скачает этот файл из хранилища без расшифровки и покажет его настоящие байты. Телефон попробует открыть их как картинку — и не сможет: это шифр. Рядом будет то же фото, открытое вашим ключом. Там же видно, во что превращаются подпись, дата, имена людей и место: для сервера это одна бессмысленная строка.
2. Посмотрите, что уходит в сеть
Для этого нужен компьютер. Откройте web.telegram.org в Chrome или Edge, зайдите в @MyAlbumsBot и нажмите «Открыть фото». Клавиша F12 открывает панель разработчика, вкладка «Сеть» (Network). Загрузите фото и щёлкните по запросу upload: в теле запроса — три двоичных файла и строка meta_enc. Попробуйте найти там своё фото, подпись или имя человека — их нет. Переберите все запросы: ключ и код восстановления не отправляются ни в одном.
3. Прочитайте код
Приложение — обычный JavaScript, без запутывания и без сборщиков. Его можно открыть и прочитать прямо сейчас:
- crypto.js — всё шифрование, около 120 строк: создание ключа, AES-256-GCM через стандартный WebCrypto браузера, код восстановления, ключи секретных альбомов (PBKDF2, 300 000 итераций).
- app.js — само приложение. Ищите слово
fetch: это все обращения к серверу. Убедитесь, что ключ (exportB64,recoveryCode) ни в одном из них не участвует, а сохраняется только в хранилище вашего Telegram и на устройстве. - faces.js и fileinfo.js — подсказки «кто на фото» и чтение даты и места съёмки. Всё это считается на устройстве; результат шифруется вместе с остальными сведениями о фото.
Если среди ваших знакомых есть программист — получаса ему хватит.
4. Проверка потерей ключа
Самая убедительная проверка. Заведите тестовый аккаунт, загрузите пару ненужных фото и не сохраняйте код восстановления. Затем откройте приложение там, где ключа нет (другой браузер на web.telegram.org), и попросите нас вернуть доступ. Мы не сможем: копии ключа у нас нет. Если бы сервер умел открывать ваши фото, эта проверка была бы невозможна.
Что сервер всё-таки видит
Честный список: ваш номер (ID) и имя в Telegram; сколько у вас файлов и какого они размера; когда каждый загружен; фото это или видео; ваш тариф и платежи звёздами. IP-адрес видит Cloudflare, через который идёт соединение. Всё остальное — содержимое, подписи, люди, даты и место съёмки, названия альбомов — зашифровано.
Чего мы доказать не можем
Это веб-приложение: его код каждый раз приходит с нашего сервера, и теоретически мы могли бы однажды подменить его. Эту проблему не решил полностью ни один веб-сервис со сквозным шифрованием. Мы закрываем её тем, что код открыт и читаем (способ 3), а когда проект вырастет — выложим его историю на GitHub и закажем независимый аудит. И ещё одно: шифрование не защитит, если чужой человек держит в руках ваш разблокированный телефон — для этого есть секретные альбомы под отдельным паролем.
Вопросы — @Azike или [email protected].
