шифрование в браузере, говорите?
От: sin_cos Земля  
Дата: 06.10.16 22:46
Оценка:
допустим, я создал сервис, который что-то шифрует на клиенте с помощью js. то есть, на сервер отправляется уже зашифрованная информация и сервер никак не может ее расшифровать. таких сервисов полно. zero knowledge system.

как вы можете быть уверены, что сервер иногда умышленно не отдает какому-нибудь счастливчику слегка модифицированную версию js, которая, например, отправляет пароль в чистом виде на сервер? вы ведь не будете каждый ответ от сервера изучать?
Отредактировано 06.10.2016 22:46 sin_cos . Предыдущая версия .
Re: шифрование в браузере, говорите?
От: Anton Batenev Россия https://github.com/abbat
Дата: 07.10.16 01:16
Оценка:
Здравствуйте, sin_cos, Вы писали:

s> как вы можете быть уверены, что сервер иногда умышленно не отдает какому-нибудь счастливчику слегка модифицированную версию js


А разве кто-то играет в эти игры с верю-неверю? Отправляться должны всегда только шифрованные данные без вариантов.
Бэкапимся на Яндекс.Диск
Re[2]: шифрование в браузере, говорите?
От: sin_cos Земля  
Дата: 07.10.16 01:39
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>Здравствуйте, sin_cos, Вы писали:


s>> как вы можете быть уверены, что сервер иногда умышленно не отдает какому-нибудь счастливчику слегка модифицированную версию js


AB>А разве кто-то играет в эти игры с верю-неверю? Отправляться должны всегда только шифрованные данные без вариантов.


ты понял, о чем вопрос? как сервер стянет у тебя пароль, когда он пошлет тебе модифицированный js файл -- это уже дело техники. может и в зашифрованном виде отправить себе же.
Re: шифрование в браузере, говорите?
От: wildwind Россия  
Дата: 07.10.16 06:21
Оценка:
Здравствуйте, sin_cos, Вы писали:

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


Полной гарантии, разумеется, нет. А уверенность может базироваться на том, что

Нужно также заметить, что эта проблема актуальна для любого кода. Например, скачивая дистрибутив Debian, как ты можешь быть уверен, что там нет какой-то гадости? (А попытки взломать их сервера и внести изменения в репы реально были.) То есть тут браузер/не браузер не играет никакой роли.

Ну и еще можно заметить, что уже скоро должны разродиться с WebAssembly, и сборки клиентского кода будет подписываться, почти как в Дебиане. Плюс одно очко к уверенности.
Re[3]: шифрование в браузере, говорите?
От: Anton Batenev Россия https://github.com/abbat
Дата: 07.10.16 07:15
Оценка:
Здравствуйте, sin_cos, Вы писали:

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


Не важно какой js пошлет файл, если ты отправляешь изначально только зашифрованные данные. Если пришлет обычный js, то будет второй раунд шифрования. Если пришлет "пасхальный", то данные будут зашифрованы только один раз (тобой).
Бэкапимся на Яндекс.Диск
Re[4]: шифрование в браузере, говорите?
От: Слава  
Дата: 07.10.16 07:22
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>Не важно какой js пошлет файл, если ты отправляешь изначально только зашифрованные данные. Если пришлет обычный js, то будет второй раунд шифрования. Если пришлет "пасхальный", то данные будут зашифрованы только один раз (тобой).


Кем "тобой"-то? Если "ты" шифруешь тем, что сервер присылает.
Re[2]: шифрование в браузере, говорите?
От: wildwind Россия  
Дата: 07.10.16 07:22
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>А разве кто-то играет в эти игры с верю-неверю? Отправляться должны всегда только шифрованные данные без вариантов.


Я бы не был столь категоричен. Для веб-почты, например, это не вариант.
Re: шифрование в браузере, говорите?
От: andyp  
Дата: 07.10.16 07:29
Оценка:
Здравствуйте, sin_cos, Вы писали:

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


Так эта фишка полезна, чтобы общаться с доверенными серваками. Это всяко лучше, чем доверять шифрованию в браузере, скачанном в виде бинаря.
Re[4]: шифрование в браузере, говорите?
От: sin_cos Земля  
Дата: 07.10.16 08:21
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>Здравствуйте, sin_cos, Вы писали:


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


AB>Не важно какой js пошлет файл, если ты отправляешь изначально только зашифрованные данные.

я не понял, про что ты.
я сам не пишу js код, который эти данные шифрует. мне этот код приходит от сервера.
Отредактировано 07.10.2016 8:25 sin_cos . Предыдущая версия .
Re[2]: шифрование в браузере, говорите?
От: sin_cos Земля  
Дата: 07.10.16 08:25
Оценка:
Здравствуйте, wildwind, Вы писали:

W>код и процесс разработки открыт, его можно изучить и найти изъяны


ну нашел, их исправили, дальше что? ты внимательно прочитал мой вопрос?


W>Нужно также заметить, что эта проблема актуальна для любого кода. Например, скачивая дистрибутив Debian, как ты можешь быть уверен, что там нет какой-то гадости?


никак. но, у меня и исходного кода, который я скачал в бинарнике, нет.
Отредактировано 07.10.2016 8:26 sin_cos . Предыдущая версия . Еще …
Отредактировано 07.10.2016 8:26 sin_cos . Предыдущая версия .
Re: шифрование в браузере, говорите?
От: vsb Казахстан  
Дата: 07.10.16 08:53
Оценка:
Здравствуйте, sin_cos, Вы писали:

_>допустим, я создал сервис, который что-то шифрует на клиенте с помощью js. то есть, на сервер отправляется уже зашифрованная информация и сервер никак не может ее расшифровать. таких сервисов полно. zero knowledge system.


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


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

2. В браузере должен стоять аддон, считающий хеш-сумму страницы, всех её ресурсов.

3. Код на JavaScript не должен делать некоторые вещи, которые могут вызвать выполнение незагруженного ранее кода, например eval, добавление тегов <script> и тд. Тут надо хорошо подумать.

Конечно же всё должно быть доступно open-source с возможностью собрать идентичную версию.

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

"Из коробки" — никак. Только надеяться на честность владельца сервиса и то, что тобой не заинтересуются спецслужбы, которые могут надавить на него. А лучше пользоваться оффлайн-средствами вроде GPG.
Отредактировано 07.10.2016 8:56 vsb . Предыдущая версия . Еще …
Отредактировано 07.10.2016 8:54 vsb . Предыдущая версия .
Re[2]: шифрование в браузере, говорите?
От: sin_cos Земля  
Дата: 07.10.16 10:58
Оценка:
Здравствуйте, vsb, Вы писали:


vsb>2. В браузере должен стоять аддон, считающий хеш-сумму страницы, всех её ресурсов.


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


vsb>3. Код на JavaScript не должен делать некоторые вещи, которые могут вызвать выполнение незагруженного ранее кода, например eval, добавление тегов <script> и тд. Тут надо хорошо подумать.


это да. но. влюченое слово "иногда". допустим, владелец решил на каждый тысячный запрос присылать js с сюрпризом. то есть, это и не каждому, и довольно редко.


vsb>"Из коробки" — никак. Только надеяться на честность владельца сервиса и то, что тобой не заинтересуются спецслужбы, которые могут надавить на него. А лучше пользоваться оффлайн-средствами вроде GPG.


только если так.
Re[3]: шифрование в браузере, говорите?
От: vsb Казахстан  
Дата: 07.10.16 11:08
Оценка:
Здравствуйте, sin_cos, Вы писали:

vsb>>2. В браузере должен стоять аддон, считающий хеш-сумму страницы, всех её ресурсов.


_>и нужно эту хэш сумму как-то запомнить? и потом показывать alert, если она другая?


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

_>а если просто обновление дизайна было, плановое? или даже новая, улучшенная версия скрипта?


Ну тут ты уже сам решаешь — доверять этому обновлению или подождать, пока "тысячи глаз" просмотрят код (ну или самому просмотреть коммиты). Конечно на официальном сайте в каком-то виде должны быть эти хеши и их соответствия релизам.
Re[3]: шифрование в браузере, говорите?
От: wildwind Россия  
Дата: 07.10.16 12:09
Оценка:
Здравствуйте, sin_cos, Вы писали:

_>никак. но, у меня и исходного кода, который я скачал в бинарнике, нет.


Ты можешь собрать бинарники и сам. А гадость можно внести и в исходники.
Re[5]: шифрование в браузере, говорите?
От: Anton Batenev Россия https://github.com/abbat
Дата: 07.10.16 18:17
Оценка:
Здравствуйте, sin_cos, Вы писали:

s> AB>Не важно какой js пошлет файл, если ты отправляешь изначально только зашифрованные данные.

s> я не понял, про что ты.
s> я сам не пишу js код, который эти данные шифрует. мне этот код приходит от сервера.

Смотри. Ты задался вопросом — можно ли доверять инструменту шифрования (в изначальном сообщении это некий js код присылаемый из некоего недоверенного источника) и сам же дал вполне очевидный ответ — такому инструменту доверять нельзя.

Если инструменту нельзя доверять, то уже не имеет значения на сколько "честно" он шифрует. Т.е. твои данные должны шифроваться не этим кодом, а другим, которому ты доверяешь. А этому недоверенному js коду должны всегда скармливаться только зашифрованные данные (и становится не важно, будет ли он их честно шифровать или напрямую отправит злодею в открытом виде).

P.S. Все эти сервисы "шифровальщики" — чистый маркетинг. "Вот, мол, было изваяние, а теперь стала Марья Ивановна. Многие верят."
Бэкапимся на Яндекс.Диск
Re[3]: шифрование в браузере, говорите?
От: Anton Batenev Россия https://github.com/abbat
Дата: 07.10.16 18:17
Оценка:
Здравствуйте, wildwind, Вы писали:

w> Я бы не был столь категоричен. Для веб-почты, например, это не вариант.


По этому те, кому нужно шифрование, ей и не пользуются.
Бэкапимся на Яндекс.Диск
Re[6]: шифрование в браузере, говорите?
От: wildwind Россия  
Дата: 08.10.16 06:20
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>P.S. Все эти сервисы "шифровальщики" — чистый маркетинг.


Кроме тех, разумеется, которым доверяешь лично ты. Только не говори, что сам их пишешь.

Основная проблема в том, что делать простым юзерам. А если вспомнить принцип "don't roll your own crypto", то к этой категории можно отнести почти всех.
Re[6]: шифрование в браузере, говорите?
От: sin_cos Земля  
Дата: 08.10.16 14:24
Оценка:
Здравствуйте, Anton Batenev, Вы писали:



AB>А этому недоверенному js коду должны всегда скармливаться только зашифрованные данные (и становится не важно, будет ли он их честно шифровать или напрямую отправит злодею в открытом виде).


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

`шифр_функция_сервиса(моя_шифр_функция(чистый текст))`


что получится? зачем тут сервис вообща тогда нужен, если можно просто передать `моя_шифр_функция(чистый текст)` другому человеку напрямую?
Отредактировано 09.10.2016 23:48 sin_cos . Предыдущая версия .
Re: шифрование в браузере, говорите?
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 08.10.16 23:45
Оценка:
Здравствуйте, sin_cos, Вы писали:

_>как вы можете быть уверены, что сервер иногда умышленно не отдает какому-нибудь счастливчику слегка модифицированную версию js, которая, например, отправляет пароль в чистом виде на сервер?


Никак. Нельзя одновременно доверять (принимая и выполняя от сервера js) и не доверять (шифруя передаваемые на сервер данные) одному и тому же субъекту. Также, как ты не можешь быть уверен в том, что с очередным обновлением системы, у тебя не пропадёт вообще всё шифрование, буду отключённым или намеренно ослабленным на уровне крипто-API самой ОС.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[2]: шифрование в браузере, говорите?
От: wildwind Россия  
Дата: 09.10.16 07:37
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Нельзя одновременно доверять (принимая и выполняя от сервера js) и не доверять (шифруя передаваемые на сервер данные) одному и тому же субъекту.


Не совсем так. Этому субъекту мы можем и доверять, не доверяем мы больше другим субъектам, которые могут так или иначе получить данные у первого.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.