Хочу поделиться своей идей. Возможно это будет изобретение велосипеда, и это уже давно реализовано. В любом случае хотелось бы услышать мнение со стороны.
Итак, суть идеи заключается в том, чтобы веб сервер при наличии в HTTP запросе определенного заголовка, X-ChkSum примеру, в заголовке своего ответа выдавал сmd5 контрольную сумму для запрошенного файла или его части, если была запрошена на загрузку часть файла.
Где это может быть полезно:
- сразу после загрузки файла мы точно можем сказать что файл был скачан корректно;
- контроль целостности и защита от атак Man-in-the-Middle;
- имея на руках битый файл, путем последовательных запросов контрольных сумм, можно вычислить часть файла, отличающуюся от версии на сервере, и скачать именно эту часть. Т.о. не нужно выкачивать заново весь образ диска;
- можно реализовать бинарный патч файлов с определенным содержимым, при условии что размер файла не изменился, а в нем поменялись какая-то его часть.
Недостатки:
- дополнительная нагрузка на сервер за счет подсчета контрольных сумм.
Реализовать это уже можно прямо сейчас, к примеру модулем веб-сервера Apache. А может стоит этим улучшением расширить протокол HTTP.
Запросы на получение кс "части" обрабатывать, имхо, нельзя, либо очень ограничивать. Ибо - куча запросов могут привести к DoS: for offset = 0 to len(BigFile); { getChkSumm(BigFile, offset, len-offset); }23.03.11 14:53 Автор: kstati <Евгений Борисов> Статус: Elderman Отредактировано 23.03.11 14:54 Количество правок: 3
И от Man-in-the-Middle все равно не спасет. Никто не мешает подделывать все, что угодно, в данном случае.23.03.11 19:27 Автор: Fighter <Vladimir> Статус: Elderman