id: Гость   вход   регистрация
текущее время 14:54 28/03/2024
Автор темы: forkostya, тема открыта 30/05/2019 11:40 Печать
Категории: инфобезопасность
создать
просмотр
ссылки

Online PGP-шифрование в WEB


Здравствуйте, товарищи по оружию.
Предлагаю вашему вниманию мой проект и жду здравой критики.


https://vtaine.com


Пользователю для регистрации необходимо лишь придумать название своего аккаунта (например, user, не обязательно уникальное в рамках ресурса) и название устройства (например, home-firefox, так же не обязательно уникальное).


После чего аккаунт зарегистрирован. Где же пароль? А нигде. Войти можно только с этого браузера. Так же можно подключить другие устройства (браузеры) к аккаунту, например, браузер мобильного телефона или рабочего компа.


Что можно делать дальше?


Сохранять какой-либо текст в заметках, добавлять в друзья другие аккаунты на ресурсе, обмениваться с ними сообщениями. Прикреплять к сообщениям файлы. Возможно, в будущем появится голосовая связь через web-rtc


Абсолютно всё зашифровано и подписано PGP. Приватные ключи хранятся только на ваших устройствах (local storage браузера), таким образом даже имея доступ к серверу никто не сможет прочитать ваши заметки или переписку.
Пройти аутентификацию можно так же только имея нужный приватный ключ в local storage браузера.


Сейчас проект – просто прототип. Что с ним будет дальше зависит от того, интересен он кому-нибудь или нет:)


Шифрование реализовано с помощью OpenPGP.js


Если нужны детали – я готов рассказать.


 
Комментарии
— гыук (12/06/2019 14:01)   профиль/связь   <#>
комментариев: 271   документов: 0   редакций: 0
Один основной вопрос – Для чего?
1. Сохранять текст на стороннем ресурсе – Зачем?
2. Общаться с другими контактами ресурса – Зачем?
3. Передавать файлы – Зачем?
4. Голосовая связь через web-rtc – 3 раза Зачем?

Сервисов передавать зашифрованные данные более чем достаточно.
Чем ваш проект отличается или, так скажем, что он может дать того, чего нет у других?
— forkostya (14/06/2019 09:58)   профиль/связь   <#>
комментариев: 9   документов: 1   редакций: 5
Здравствуйте, уважаемый User.
Спасибо за Ваши вопросы, они все очень логичны, я почему-то не догадался сразу в своём описании дать на них ответы.
Сервис этот делался мной под конкретного заказчика – под меня же. Я в своё время не нашёл достойных сервисов, которые могли бы и описанный функционал выполнять и при этом были бы достаточно удобными с точки зрения управления своими ключами. Либо ключи безвозвратно терялись после переустановки браузера/ОС, либо было трудно для тех, с кем я общаюсь подключать другие устройства к аккаунту (экспорт/импорт приватного ключа).

С этим же сервисом всё гораздо проще и при этом на достаточном уровне безопасности. Пользователям, с которыми мне приходится общаться, не нужно вникать в ключи, шифрование, эцп, технические детали. Они не сталкиваются с такими трудностями, как "ой, я сейчас за другим устройством, по-этому у меня нет под рукой моих ключей. Давай я новую пару сгенерирую" и прочее прочее прочее. И ты каждый раз думаешь: "Хорошая попытка, товарищ майор, но нет".

Если за последнее время что-то поменялось или я не нашёл достойных сервисов, прошу Вас, приведите ссылки на такие.
Напомню, они должны позволять:
1. сохранять текст на ресурсе для того, чтобы можно было с разных устройств получить к этому тексту доступ (комп дома, комп на работе, мобильник, ноут и т.п.)
2. общаться с другими контактами ресурса для того, чтобы осуществлять письменную коммуникацию с важными для меня людьми, при этом быть уверенным, что информационная безопасность (конфиденциальность, целостность, доступность, невозможность отказа) нашей переписки обеспечена надёжными техническими средствами (p2p pgp)
3. передавать файлы для того, чтобы в рамках нашей коммуникации можно было отправить непередаваемые текстом артефакты, например, фото или xls.
4. голосовая связь через web-rtc (хотя без разницы через что она будет, это вопрос технологии и реализации, главное, чтобы трафик шифровался всё тем же pgp p2p) для того, чтобы в рамках нашей коммуникации можно было оперативно обмениваться информацией с помощью сформулированных мыслей, преобразованных в звуковые волны. Это иногда сильно увеличивает эффективность коммуникации. Сначала хотел написать это 3 раза, раз уж Вы написали "3 раза Зачем?", но потом подумал, что Вы и с первого раза в принципе должны понять.

Спасибо.
— SATtva (14/06/2019 10:16)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
PGP по сегодняшним меркам считается неадекватной криптосистемой, особенно для применения в вебе — отсутствуют механизмы PFS, не соответствует другим современным требованиям безопасности и приватности. Применительно к рассматриваемому здесь конкретному сервису это означает, что при компрометации пользовательского ключа будут раскрыты все текущие и прежние данные, когда-либо хранившиеся на сервере.

Несмотря на то, что криптооперации выполняются на стороне клиента, их выполняет код, получаемый от сервера. Раз компрометация сервера входит в модель угрозы, то в рамках последней противник может взломать сервер и модифицировать библиотеку OpenPGP.js с тем, чтобы клиент сам передавал ему закрытый ключ и пароль.

TL;DR: Всё это крайне небезопасно.
— forkostya (14/06/2019 10:50)   профиль/связь   <#>
комментариев: 9   документов: 1   редакций: 5
SATtva, спасибо, c этим я согласен. Как панацею, конечно, рассматривать не стоит, но куда лучше, чем смс, вацап и gsm.
У сервиса есть фронт и бэк с апи. Технически возможно написать клиента (с открытыми исходниками для пущей убедительности), который будет миновать фронт с OpenPGP.js, таким образом гарантировать, что приватный ключ никуда не уедет по инициативе взломанного сервера.
— SATtva (14/06/2019 11:22)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118

WhatsApp в этом списке совершенно лишний — это один из немногих мессенджеров с настоящим современным end-to-end-шифрованием.
— forkostya (14/06/2019 12:31)   профиль/связь   <#>
комментариев: 9   документов: 1   редакций: 5
end-to-end подразумевает устройство-устройство? Если я пройду аутентификацию, скажем, с компьютера, то я не смогу прочитать свою шифрованную переписку, которую инициировал с мобильного клиента? Если так, то это для меня не подходит.
— SATtva (14/06/2019 12:57)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118

Да.


Сможете. Веб-клиент WhatsApp — это типа терминала, у него нет непосредственного доступа к ключам клиента. При аутентификации веб-клиента мобильное приложение перешифровывает переписку отдельными краткосрочными ключами и через сервер передаёт их браузеру. То же самое происходит с axolotl-ключами, если пользователь хочет отправить сообщение через веб-клиент — ключи генерируются и хранятся на мобильном устройстве. По этим причинам мобильное приложение должно иметь доступ в сеть, пока пользователь залогинен в веб-клиент — без приложения клиент превращается в тыкву.
— forkostya (14/06/2019 13:49)   профиль/связь   <#>
комментариев: 9   документов: 1   редакций: 5


Вот именно этот момент для меня оказался неприемлем. Особенно после прочтения следующей статьи:
https://habr.com/ru/post/317630/
— sentaus (17/06/2019 10:40)   профиль/связь   <#>
комментариев: 1060   документов: 16   редакций: 32
А я вот что-то не понимаю, почему особенно после прочтения статьи. :)
И кстати, на мой взгляд, в статье несколько сумбурно в кучу накидано описание нескольких не совсем связанных между собой проблем протокола OpenPGP.
— forkostya (17/06/2019 12:24)   профиль/связь   <#>
комментариев: 9   документов: 1   редакций: 5
Потому что автор описывает проблемы PGP, с которыми он сталкивается на значительно бОльших масштабах практики применения данной технологии, с которыми я на своих маленьких масштабах не сталкивался. К примеру, я могу только предполагать и додумывать, как отреагирует большинство моих друзей на фразу "я тебе сейчас новый ключ пришлю, т.к. я не за своим ноутбуком". Например, предположить, что они скажут "Ой не, ув. тов. майор, не надо нам тут ляля". А он пишет уже реальный опыт, что большинство ему ответило "да, ок, присылай".
— sentaus (17/06/2019 13:01)   профиль/связь   <#>
комментариев: 1060   документов: 16   редакций: 32
Вот я как раз не улавливаю, как это всё связано с вотсапом, который e2e, и у которого сообщения на десктоп доставляются по этой причине через телефон. Что в статье такого, что из-за этого не годится такая схема в вотсапе?

В статье у автора упомянуто глобально три проблемы:

1) Сложность защиты долговременных ключей. Проблема на самом деле глобальна, а не специфична для openpgp. У нас везде где-то есть если не ключ, то какой-то идентификатор, подлинность которого корреспондентам будет необходимо подтвердить. Проблема тут в том, что pgp-ключ – это ещё один такой объект в дополнение к имеющимся.

2) Отсутствие PFS. Это проблема чисто openpgp. Хотя, надо заметить, что вполне можно было бы использовать долговременные ключи подписи для согласования эфемерных ключей в чат-приложениях. Просто не нужно использовать именно шифрование с открытым ключом.

3) Люди плюют на безопасность и доверяют новым ключам. Это суровая объективная реальность. Точно так же эти люди будут доверять, если им написать с нового аккаунта мессенджера/email/итд.
— forkostya (17/06/2019 13:10)   профиль/связь   <#>
комментариев: 9   документов: 1   редакций: 5
Мне кажется, что 3) связано с культурой ИБ, которая на достаточно низком уровне с технической точки зрения.
Ну типа пользователи готовы поверить в то, что если у них сложный/длинный пароль от почтового ящика, то их ящик не взломают, но не готовы принять, что их переписка в ящике хранится в открытом виде на почтовом сервере, и админы сервера могут эту переписку легко заполучить.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3