Обновить
8
0
Александр@lostpassword

Конторский пенсионер

Отправить сообщение
Спасибо за статью, интересно.
Подскажите, а сам DGA не разбирали? Есть в нем привязка к каким-то дням, времени, еще чему-то?
Вы разбиваете мои мечты…
:-(
Теперь понятней, спасибо.)
В ответе выше написал, что меня так удивило в варианте с подписью:
  • если подписывать на сервере, то клиент не сможет объект менять. На хрена бы клиенту неизменяемый объект?)
  • если подписывать на клиенте, то клиент сможет объект менять, как хочет. На хрена бы нужна такая подпись?)
Спасибо за ответ. А можно еще три вопроса?)

1. Понятно, что нагрузка выполняется во время вызова метода readObject(). А что случится при попытке приведения внедренного злоумышленником объекта к классу MyClass?
MyСlass obj = oin.readObject();
Получается, здесь может вылететь Exception, если десериализованный объект не удастся привести к типу MyСlass?

2. Все равно не могу осознать часть про подпись.
Объект проходит сериализацию/десериализацию только на сервере
Мне все время казалось, что в данном случае главный смысл сериализации — это преобразование объектов в форму, удобную для передачи по сети клиенту. То есть клиент проводит какие-то расчеты/операции, записывает результаты в экземпляр класса и отправляет сгенерированный/модифицированный объект на сервер.
Если подписать объект на сервере, а потом переслать клиенту, то мы гарантируем подлинность объекта, но лишаем при этом клиента возможности как-то модифицировать объект (меняется объект => меняется подпись). А в чем смысл передавать на клиент неизменяемые объекты?

3. Также непонятно, почему хранение объектов в сессии обезопасит схему. Клиент же должен иметь возможность модифицировать объект для отправки данных на сервер!

Единственный вариант, который позволяет мне объяснить происходящее, такой: в серверном приложении PayPal есть класс, который используется этим приложением (и только им). Для каждой пользовательской сессии генерируется свой экземпляр такого класса, но клиент не изменяет этот объект напрямую — всю обработку ведет серверное приложение. И несмотря на то, что клиенту абсолютно не нужен доступ к этому экземпляру класса, разработчики PayPal решили хранить этот объект в качестве одного из параметров запроса.
Такой вариант вроде бы объясняет происходящее, но…
Почитаю, спасибо.
Мало с этим работал, каюсь. Но все равно не очень понятно, почему так.

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

Но не понимаю, как получается на базе этого провести атаку. Сервер не проверяет подпись => мы можем загрузить экземпляр класса любого типа => мы загружаем экземпляр класса заданного типа, который позволяет выполнить произвольную команду при вызове метода readObject — так, что ли?

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

Что-то я не врубаюсь.)
на сервере будет вызван метод “readObject” (или “readResolve”) нового класса
А может кто-нибудь пояснить, почему это происходит? Почему при десериализации Java вызывает эти методы?
Не могу понять: а если электричество кончилось — шарик упадет?
Насколько я помню, получить имя файла можно не всегда. Например, RAR-архив с установленной опцией «Шифровать имена файлов» нельзя просмотреть, не зная пароль. ZIP-архив, вложенный в запароленный ZIP-архив, также открыть не получится (по крайней мере Проводником).
Если будет желание — можешь попробовать какой-нибудь онлайн-сервис, типа этого.
А можете рассказать, почему именно ремантадин?
Коллега на позапрошлой работе мне тоже его рекомендовал, а в аптеке недавно ингаверин советовали… Что выбрать?

И еще хотел спросить:
накатить ремантадин сразу, лучше от начала возможного контакта
Мы же в городе живем, тут каждый день кто-нибудь рядом кашляет… Каждый день пить, что ли?)
Что, манипуляторопожатие заселфить?)
Только после премьеры в кинотеатрах.
Среднестатистический террорист, который о шифровании ничего не знает.)
Если спиральки красивые и модные — сами оденутся.
Поясните, пожалуйста.)
Навскидку — упаковка различных товаров, куда частенько засовывают пенопласт, который потом никому не нужен и оказывается на свалке.
Ссылкой неинтересно — через день уже почти все будут определять.
Скриншот надежнее.)
Лично мне сначала показалось, что это — сауна.)

Информация

В рейтинге
Не участвует
Откуда
Дубаи, Дубаи, О.А.Э.
Дата рождения
Зарегистрирован
Активность