Keybase как создать зашифрованное сообщение

Обновлено: 01.06.2024

В мессенджерах со сквозным шифрованием (E2E) пользователь отвечает за свои ключи. Когда он теряет их, то вынужден переустанавливать учётную запись.

Даже если вы серьёзно относитесь к номерам безопасности, многих партнёров по чату вы видите только раз в год на конференции, так что вы застряли.

Как часто происходит сброс? Ответ: в большинстве E2E-приложений для чата всё время.

В этих мессенджерах вы отбрасываете криптографию и просто начинаете доверять серверу: (1) всякий раз, когда переключаетесь на новый телефон; (2) всякий раз, когда какой-либо собеседник переключается на новый телефон; (3) когда производите сброс к заводским настройкам телефона; (4) когда любой собеседник производит сброс к заводским настройкам; (5) всякий раз, когда удаляете и переустанавливаете приложение, или (6) когда любой собеседник удаляет и переустанавливает его. Если у вас десятки контактов, сброс будет происходить каждые несколько дней.

Сброс происходит настолько регулярно, что эти приложения делают вид, что это не проблема:


Похоже, у нас апгрейд безопасности! (Но не совсем)

IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff
Please contact your system administrator.
Add correct host key in /Users/rmueller/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/rmueller/.ssh/known_hosts:12
RSA host key for 8.8.8.8 has changed and you have requested strict checking.
Host key verification failed.

Вот правильное поведение. И помните: это не TOFU, если он позволяет работать дальше с маленьким предупреждением. Вы должны увидеть гигантский череп со скрещёнными костями.

Конечно, эти мессенджеры будут утверждать, что всё нормально, потому что пользователь предупреждён. Если хочет, то он может проверить номера безопасности. Вот почему мы не согласны:

  1. Проверка не выполняется, так как происходит слишком часто.
  2. Проверка отстой.
  3. Даже беглый опрос наших друзей, которые озабочены безопасностью, показал, что никто не беспокоится об этой проверке.
  4. Так что это просто доверие к серверу и доверие SMS (ну-ну!) снова, снова и снова.
  5. Наконец, эти приложения не должны работать таким образом. Особенно при изменении устройств. Типичный нормальный случай можно обрабатывать гладко и безопасно, а чем более редкая ситуация, тем она должна выглядеть страшнее. Через минуту покажем решение Keybase.

Есть очень эффективная атака. Предположим, Ева хочет ворваться в существующий разговор Алисы и Боба и встать между ними. Алиса и Боб в контакте в течение многих лет, давным-давно пройдя TOFU.

Ева просто заставляет Алису думать, что Боб купил новый телефон:

Алиса: Йо, Боб! Похоже, у тебя новые номера безопасности.

Боб (Ева): Да, купил iPhone XS, хороший телефон, очень доволен им. Давай обменяемся номерами безопасности на RWC 2020. Эй, у тебя есть текущий адрес Кэролайн? Хочу удивить её, пока я в Сан-Франциско.

Алиса: Тут не сравнюсь, Android 4 life! Да, Кози Стрит 555.

Поэтому большинство мессенджеров с шифрованием вряд ли заслужили соответствие TOFU. Это больше похоже на TADA — доверие после добавлений устройств. Это реальная, а не выдуманная проблема, поскольку создаёт возможность для злонамеренного внедрения в ранее существовавший разговор. В реальном TOFU ко времени, когда кто-то заинтересован в вашем разговоре, он не сможет внедриться в него. С TADA такое возможно.

В групповых чатах ситуация ещё хуже. Чем больше людей в чате, тем чаще будут происходить переустановки аккаунтов. В компании из всего 20 человек это будет происходить примерно каждые две недели, по нашей оценке. И каждый человек в компании должен встретиться с этим человеком. Лично. В противном случае весь чат скомпрометирован одним кротом или хакером.

В результате, вам не нужно доверять серверу или встречаться лично, когда собеседник или коллега получает новое устройство. Точно так же вам не нужно доверять серверу или встречаться лично, когда он удаляет устройство, если оно не было последним. Единственное, когда вам нужно увидеть предупреждение, — когда кто-то действительно теряет доступ ко всем своим установкам. И в таком случае вы увидите серьёзное предупреждение, как и должно:


Специально максимально уродливое

В результате сбрасывается и переустанавливается гораздо меньше аккаунтов. Исторически на Keybase общее количество добавлений и отзывов устройств в десять раз больше количества сбросов аккаунтов (вам не нужно верить нам на слово, это общедоступно в нашем дереве Меркла). В отличие от других мессенджеров, мы можем показать поистине ужасающее предупреждение, когда вы разговариваете с кем-то, кто недавно переустановил ключи.

Управление устройствами — сложная инженерная операция, которую мы дорабатывали несколько раз. Существующее устройство подписывает открытые ключи нового устройства и шифрует все важные секретные данные для открытого ключа нового устройства. Эта операция должна производится быстро (в течение секунды), так как речь идёт о диапазоне внимания пользователя. В результате Keybase использует иерархию ключей, так что при передаче 32 байт секретных данных со старого устройства новое устройство может видеть все долгоживущие криптографические данные (подробнее см. FAQ ниже). Это может показаться немного удивительным, но именно в этом смысл криптографии. Она не решает ваших проблем управления секретами, она просто делает систему более масштабируемой.

Теперь мы можем сформулировать четыре основных свойства безопасности для приложения Keybase:

Основные функции безопасности Keybase никто никогда не реализовывал ранее и даже не описывал в научных статьях. Нам пришлось самим изобретать некоторые криптографические протоколы. К счастью, готовых, стандартизированных и широко используемых криптографических алгоритмов в избытке для любой ситуации. Весь наш клиентский код открыт. Теоретически, любой может найти ошибки проектирования или реализации. Но мы хотели продемонстрировать внутреннее устройство и наняли лучшую аудиторскую фирму по безопасности для полного анализа.

Сегодня мы представляем отчёт NCC Group и чрезвычайно воодушевлены результатами. Keybase потратила на аудит более $100 000, а NCC Group наняла экспертов по безопасности и криптографии высшего уровня. Они нашли в нашей реализации две важные ошибки, и мы быстро их исправили. Эти баги могли проявиться только если бы наши серверы действовали злонамеренно. Можем заверить, что они не будут так действовать, но у вас нет причин нам верить. В том-то и дело!

Мы считаем, что команда NCC проделала отличную работу. Респект за время, которое они потратили, чтобы полностью понять нашу архитектуру и реализацию. Они нашли тонкие ошибки, которые прошли мимо внимания наших разработчиков, хотя мы в последнее время многократно смотрели эту часть кодовой базы. Рекомендуем посмотреть отчёт здесь, или переходите к нашему FAQ.

Как вы СМЕЕТЕ атаковать продукт XYZ?

Мы уже удалили из статьи упоминания конкретных продуктов.

Что ещё?

Мы гордимся тем, что Keybase не требует телефонных номеров и может криптографически проверять идентификаторы Twitter, HackerNews, Reddit и Github, если вы кого-то знаете.

И… очень скоро… появится поддержка Mastodon.

Что насчёт атак с переадресацией телефона?

Я слышал, Keybase отправляет некоторые приватные ключи на сервер?

В первые дни (2014 и начало 2015) Keybase работал как веб-приложение PGP, и пользователь мог выбрать функцию хранить свои закрытые ключи PGP на наших серверах, зашифрованные парольными фразами (которые Keybase не знал).

В сентябре 2015 года мы представили новую модель Keybase. Ключи PGP никогда не используются (и никогда не использовались) в чате или файловой системе Keybase.

Как старые чаты мгновенно появляются на новых телефонах?

Подробнее о синхронизации в следующем пункте.

Расскажите о PUK'ах!

Всякий раз, когда Алиса отзывает устройство, оно меняет её PUK, так что все её устройства, кроме самого последнего отозванного, получают новый PUK.

Эта схема синхронизация кардинально отличается от ранней системы Keybase PGP. Здесь у всех задействованных ключей 32 байта истинной энтропии, они не ломаются брутфорсом в случае взлома сервера. Правда, если сломан Curve25519 или ГПСЧ от Go, то всё ломается. Но PUK-синхронизация не делает никаких других значимых криптографических предположений.

Что насчёт больших групповых чатов?

tL;dr У групп собственные аудируемые цепочки подписей для изменения ролей, добавления и удаления членов.

Недавно мы также представили Sigchain V2: эта система решает проблемы масштабируемости, которые мы не совсем корректно предусмотрели в первой версии. Теперь клиенты более экономны с криптографическими данными, которые они стягивают с сервера, получая только одну подпись с хвоста цепочки подписей, а не подпись каждого промежуточного звена. Таким образом, клиенты потеряли возможность зациклиться в поиске конкретного хеша подписи, но мы ранее использовали эти хеши для поиска плохих чейнлинков в этом списке жёстко закодированных исключений. Мы готовили к выпуску Sigchain V2, забыв об этой детали, похороненной под несколькими слоями абстракций, так что система просто доверяла полю из ответа сервера.

Как только NCC обнаружил эту ошибку, исправление было достаточно простым: поиск жёстко закодированных исключений хешем чейнлинка, а не хешем подписи чейнлинка. Клиент всегда может напрямую вычислить эти хэши.

Мы также можем приписать эту ошибку дополнительной сложности, необходимой для одновременной поддержки Sigchain V1 и Sigchain V2. Современные клиенты записывают ссылки Sigchain V2, но все клиенты должны поддерживать устаревшие ссылки v1 в течение неограниченного времени. Напомним, что клиенты подписывают ссылки своими закрытыми ключами для каждого устройства. Мы не можем в разумные сроки координировать всех клиентов, переписывающих исторические данные, так как эти клиенты могут быть просто в офлайне.

Как и в 001 (см. выше), нас подвело определённое сочетание одновременной поддержки устаревших решений и оптимизации, которые казались важными по мере того, как мы получали больше опыта реальной работы с системой.

В Sigchain V2 мы также приняли предложение Адама Лэнгли о том, чтобы подписывающие предваряли свои пакеты с подписями префиксом контекстной строки и байтом \0 , чтобы верификаторы не путались в намерениях подписывающего. На верифицирующей стороне этой контекстно-префиксной идеи были ошибки, которые могли привести к другим polyglot-атакам. Мы быстро исправили этот недостаток с помощью белого списка.

После исправления обоих багов сервер отклоняет вредоносные нагрузки polyglot-атаки, так что эксплуатация данных уязвимостей возможна только с помощью скомпрометированного сервера.

Где документация?

В ближайшие месяцы мы уделим больше времени работе на документацией.

Keybase активно использует неизменяемые append-only структуры общедоступных данных, которые заставляют серверную инфраструктуру фиксировать одно истинное представление идентификаторов пользователей. Мы можем гарантировать отзыв устройств и удаление членов группы таким образом, что скомпрометированный сервер не сможет выполнить откат. Если сервер решает показать несогласованное представление, это отклонение становится частью неизменяемой общедоступной записи. Клиенты Keybase или сторонний аудитор могут обнаружить несоответствие в любое время после атаки. Мы считаем, что эти гарантии намного превосходят гарантии конкурирующих продуктов и являются почти оптимальными с учётом практических ограничений мобильных телефонов и клиентов с ограниченной вычислительной мощностью.

Проще говоря, Keybase не может изобретать чьи-то подписи. Как и любой сервер, он может удерживать данные. Но наше прозрачное дерево Меркла сконструировано для хранения их в течение очень короткого периода времени, и это всегда обнаружимо.

Как Keybase обрабатывает сбросы учётной записи?

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

Может ли сервер просто поменять чей-то лист дерева Меркла, чтобы рекламировать совершенно другой набор ключей?

Keybase

Поначалу шифрование может быть немного сложным, особенно для нетехнических людей. Но шифрование информации — это дело всех, а не только людей, связанных с технологиями. (Рассмотрим, например, журналистов-расследователей, для которых защита данных может иметь решающее значение.)

Представляем Keybase

Keybase — это платформа с открытым исходным кодом для шифрования, которая работает как социальная сеть. Он пытается упростить шифрование, преодолев технологический барьер и добавив к нему социальный аспект. Вы можете начать шифрование, просто используя имя пользователя социальной сети.

На Keybase вы можете искать людей и следить за ними, как в Twitter. Keybase также сопоставляет вашу идентификацию с вашим открытым ключом: вы можете связать свои другие социальные учетные записи, такие как Reddit, GitHub, Twitter, с вашим профилем Keybase.

Keybase предлагает шифрование через веб-клиент, а также предлагает локальные клиенты командной строки для всех основных операционных систем.

Получение и настройка учетной записи

На момент написания этой статьи Keybase все еще находится в альфа-фазе, и вам нужно приглашение, чтобы получить там учетную запись. (У меня есть приглашения, так что пингуйте меня в Твиттере, если вам интересно.) Вы также можете зарегистрироваться через форму, но есть очередь, поэтому вам, возможно, придется подождать некоторое время.

Быстрый совет: вы можете найти много людей, отправляющих приглашения в Twitter.

Keybase зарегистрироваться форму

Настройка вашего профиля

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

После этого вы можете запустить Keybase:

база ключей установлена

Yay, у нас есть белка. Это подтверждает, что у нас есть Keybase, готовая для шифрования.

Проверка ваших профилей

Шифрование с помощью Keybase

Keybase Web Encryption

Если вы впервые шифруете информацию и у вас нет ключа PGP , Keybase может сгенерировать ключи для вас.

Нажмите на добавить ключ PGP .

Чтобы сгенерировать ключ, нам нужно использовать приложение с открытым исходным кодом, предоставляемое Keybase:

Вы можете легко сгенерировать ключ или импортировать его.

поиск по ключевой базе

Это может занять пару секунд, и он выведет зашифрованный текст:

Keybase Web Encryption

Расшифровка с помощью Keybase

Расшифровка веб

Расшифрованный текст

Шифрование с подписанными ключами

Примечание: я использую две учетные записи здесь.

Давайте посмотрим наш расшифрованный текст сейчас:

Расшифрованный текст с подписанными ключами

Приложение командной строки Keybase

Теперь давайте попробуем приложение командной строки Keybase. С приложением Keybase, установленным в вашей системе, вы можете запустить run_keybase

Ваш первый шаг — войти в Keybase с помощью keybase login

Введите свое имя пользователя Keybase или адрес электронной почты. Затем вы должны подготовить ваше устройство. Если вы уже вошли в систему с другого компьютера и имеете доступ к нему, вы можете использовать этот компьютер для выполнения подготовки. Другой вариант — использовать бумажный ключ (который вы изначально получаете при регистрации на keybase.io). Если у вас нет доступа ни к одному из них, вы все равно можете использовать ключевую фразу Keybase.

Вы увидите что-то вроде этого:

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

Это попросит вас написать конкретный твит, связанный с вашим именем пользователя Keybase. Приятно, что этот процесс не требует авторизации oAuth от Twitter. Вы получаете электронное письмо от Keybase, в котором сообщается, что доказательство идентификации прошло успешно. Если бы вы зашли в мой профиль, вы бы увидели, что мой профиль в Твиттере добавлен, и вы даже можете просмотреть твит. Процесс связывания других социальных учетных записей с вашей учетной записью Keybase в основном такой же, и Keybase предоставляет инструкции для каждой из них.

Приложение командной строки имеет гораздо больше функций. Используйте справку keybase, чтобы получить список всех доступных опций.

Вывод

Keybase превратил шифрование в простой и удобный вариант для новичков.

Так что ты думаешь? Это то, что вы бы использовали? Вы уже пробовали это? Если так, что ты думаешь? Не стесняйтесь обсуждать или задавать любые вопросы ниже.

Как Keybase гарантирует конфиденциальность?


Если вы хотите начать использовать это приложение как можно скорее, мы рекомендуем вам загрузить его на свой компьютер для Windows, Mac, Google Chrome или Firefox, в зависимости от используемого вами ПК.

Если вы планируете использовать его со своего смартфон вы можете загрузить приложение чата для iOS и Android из их магазинов приложений соответственно.

Как использовать Keybase?

L ' локальная установка этого приложения требует, чтобы на вашем компьютере были установлены Node.js и PGP. Однако, как мы упоминали ранее, это приложение также имеет веб-страницу, с которой вы можете полностью использовать его без каких-либо неудобств.

После создания вашего профиль на Keybase , первое, что вам понадобится, это открытый ключ PGP. Если он у вас уже есть, вам необходимо загрузить его на веб-сайт, а если, наоборот, у вас его нет, вы можете создать его прямо с веб-сайта, где вам придется набраться терпения, поскольку генерация ключей PGP может занять какое-то время.

Keybase дает вам возможность иметь собственный закрытый ключ которые вы также можете скопировать и сохранить самостоятельно или на веб-сайте. Как только вы это сделаете, вы сможете подтвердить свою личность в Twitter, разместив твит или на своем собственном веб-сайте.

о базе

Keybase предлагает пользователям сквозной зашифрованный чат и облачная система хранения, который называется Keybase Chat и файловой системой Keybase. Файлы, размещенные в общедоступной части файловой системы, обслуживаются с общедоступной конечной точки и локально из файловой системы, смонтированной клиентом Keybase, который мы используем на нашем устройстве.

Основные характеристики Keybase

Keybase социальные сети

Установите Keybase в системах Ubuntu

Keybase о

Если кто-то хочет узнать об установке этого программного обеспечения в других операционных системах, он может взглянуть на Установки GNU / Linux на сайте проекта.

Мы можем установить последнюю версию База ключей как в 64-битных, так и в 32-битных операционных системах Ubuntu. Нам нужно будет только открыть терминал (Ctrl + Alt + T) и следовать следующим инструкциям в соответствии с необходимой нам архитектурой.

64 биты

32 биты

Примечание: установка Keybase добавит собственный репозиторий пакетов. При этом при обновлении системы будет обновлен и пакет Keybase. Если вы предпочитаете избегать этого, запустите в терминале (Ctrl + Alt + T) перед установкой:

к перезапустить Keybase после обновления пишет:

Эта команда уничтожит и сбросит все, включая сборку предохранителя KBFS. Код ключа для подписи вы можете получи это здесь y проверьте это здесь.

Удалить Keybase

Удалить эту программу из нашей операционной системы так же просто, как открыть терминал (Ctrl + Alt + T). В нем нам останется только написать следующую команду:

Если кому-то нужно узнать больше об этом проекте, они могут проконсультируйтесь с сайтом проекта. Любой пользователь может сообщить об ошибке на случай, если он будет обнаружен во время выполнения программы.

Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Читайте также: