Как защитить cookie с незащищенным каналом?

Рейтинг: 1Ответов: 1Опубликовано: 05.04.2011

Всем известно, что использование алгоритма хеширования md5 уже давно не является решением всех проблем.

В задаче: отсутствует SSL, незащищенный канал, может быть запросто реализована атака Man in the Middle.

  1. Как в таком случае защитить cookie?

  2. Собственно, каким бы алгоритмом (алгоритмами) хеширования воспользовались бы вы при разработке web-страницы, а точнее проектировки базы данных и системы аутентификации, в таких "условиях"?

  3. Что скажете о связке sha(md5(pass))?

Ответы

▲ 3Принят

Если вас не устраивает MD5, то вы можете попробовать SHA-256 или SHA-512 в случае, если речь идёт о какой-то параное.

Использовать SHA + MD5 не следует. Скрещивать два криптографических алгоритма вообще не рекомендуется, так как безопасность может не вырасти, а наоборот снизиться. Поэтому просто выберите себе хороший алгоритм и пользуйтесь.

А ещё вы можете попробовать зашифровать все пароли каким-нибудь ключём, спрятанным в надёжном месте.

Если же речь идёт о каком-то действительно параноидальном случае, то, как уже заметили ранее здесь, то в действительности есть куча разных схем аутентификации (например, паттерн Auth Token) и они не обязывают вас использовать именно хэш-функцию.

И вот ещё: сессии тречатся чаще всего либо через куки и иногда через IP+куки. Таким образом, от кражи куков защититься нельзя никак кроме как выдавать на каждый запрос новые куки (генерировать новый сессионный ключ)

Совсем другое дело - хранение в БД. Если вы боитесь, что кто-то украдёт саму базу.. то это совсем другая задача. Стоит разделить эти две проблемы.

UPD

И помните, что один из принципов криптостойкости гласит, что секретность алгоритма или каких-то начальных данных (например, соль) не гарантируют безопасность.