Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Registered
- Activity
Specialization
Разработчик мобильных приложений
Средний
Разработка под Android
Kotlin
Android SDK
MVVM
Coroutines
Room
Разработка мобильных приложений
Клиент-серверные приложения
Конечно, никому не нужен сервер, который случайным образом неправильно отвечает :) Важно помнить, что задача - это упрощённая модель потенциально очень сложной системы. Серверов, которые просто проверяют паддинг на сообщениях, тоже по сути не делают. Но эти вещи могут быть скрыты в сложном поведении.
В голову приходит пример с немного противоположной разобранной задаче логикой. Пусть сервер выдаёт ошибку, если не может расшифровать сообщение. Это может возникать как из-за неправильного паддинга, так и из-за битых данных в первом блоке (напомню, что когда мы меняем один байт в первом блоке, весь этот блок расшифруется неправильно). В любом случае ошибка одна и та же. Но с некоторой вероятностью данные в первом блоке ломаются так, что сервер их примет и ошибку не пришлёт. То есть, если паддинг неправильный, то мы точно получаем ошибку. Но если паддинг правильный, то мы получаем ошибку с некоторой вероятностью. Получается, что сервер может работать вполне детерменированно, но со стороны атакующего его ответы будут иметь случайный характер и это необходимо учитывать при атаке.
Спасибо за замечание :) Коненчо, я согласен с тем, что, преследуя цели популяризации, необходимо было бы выбирать другой подход, с большим погружением в контекст области и объяснением определений. Вообще говоря, я думаю, что при написании любого текста следует держать в уме уровень осведомлённости целевого читателя материала и упрощать до терминов, ему понятных.
Что касается этой статьи, то целевым читателем при её написании, я видел людей владеющих базовыми понятиями модульной арифметики и уже предпринимающих самостоятельные попытки решения подобных задач. Т.е. материал рассчитан на людей примерно моего уровня (а может и большего), но недостающих инсайта для решения конкретно этой задачи.
Именно поэтому я нарочно опускаю определение кольца, не говорю об алгоритме НОД, не говорю почему я использую символы
и
и т. п. И конечно я совершенно не касаюсь ключевой для популяризации темы - "а зачем это нужно?"
Тут говорится о подборе на среднестатистическом домашнем компьютере, а что это за компьютер такой среднестатистический? Они ж не сказали конкретную скорость перебора
Ну и вообще не стоит считать пароль надёжной защитой, какой бы длины он ни был, однозначно нужно предпринимать дополнительные меры, например в виде двух- или даже трехфакторной аутентификации.