[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Проиграна ли борьба за вычислительную свободу?



On Sun, Aug 04, 2019 at 09:41:20PM +0300, artiom wrote:
   Интересно это прежде всего как неожиданный поворот для модели
   безопасности, основанной на 509х сертификатах.
   Поскольку API всех популярных браузеров на сегодняшний день
   не позволяют получить в javascript'e информацию о сертификате,
   то владельцу сайта непросто защитить всех своих посетителей от
   опасности местечкового MitM.

Это естественная проблема всякого централизованного доверительного центра.
И никакая "информация в JS" эту проблему не решит.
Если браузеры выполнят требования о добавлении сертификата, значит имеется
рычаг давления, позволяющий сделать что-угодно, в том числе не возвращать
информацию о "левом" корневом сертификате в JS вызове.

  Вы не поняли. Если бы в JS была возможность получить атрибуты сертификата,
  то владелец сайта мог бы запрограммировать дополнительные проверки на то,
  что браузер получил именно тот сертификат, который принадлежит его сайту.
> Теоретически любую такую проверку можно обойти, но практически
государству
  легче будет поломать ключи всех корневых сертификатов брутфорсом, нежели
  бороться с тысячами "вражеских" сайтов, постоянно меняющих код. :)


Да всё я понял.
Не будет государство ничего ломать.
Когда есть рычаг давления, позволяющий внедрить чужой сертификат, можно обязать браузер возвращать JS коду владельца поля его сертификата, даже если он подписан "вражеским" и есть госмитм.
Вариантов, как сделать подобное, - множество.
Эта проблема не решается технически.


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

Так уже есть токены.

  Токен это хранилище ключа, а клиента в модели x509 удостоверяет сертификат.
  Независимо от того, как клиент хранит свой ключ, в файле или в тукене.


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


   Кто-нибудь знает более простое решение?

Ну так известный же вам и всем остальным факт: всякая система основывается
на доверии, и не имея доверенного канала (хотя бы защищённого от MitM)
невозможно гарантированно надёжно обменяться ключами.

  Нет, всё гораздо сложнее. Есть, например, известный факт, что любое сколь
  угодно длинное число может быть разложено на простые множители. Вот только
  времена всех известных алгоритмов для решения этой задачи так быстро растут
  с длиной числа, что на этом основан метод шифрования RSA. Так что один лишь
  факт разложимости числа на практике оказывается недостаточен, есть ещё
  другие факторы, и они ЗНАЧИМЫ. Точно так же наличие MitM недостаточно,
  чтобы читать любую переписку, оно даёт такую возможность лишь для цензоров
  на сферических конях в вакууме, то есть в том случае, если другие значимые
  факторы считать не существующими. :)


MitM с подменой ключей? Достаточно конечно. Как для чтения, так и для искажения.


Reply to: