я наткнулся this документа в Интернете, а оттуда есть слайд о проверке подлинности GWT на форуме:Offline Аутентификация с использованием GWT
Когда в Интернете, проверка подлинности выполняется на сервере.
- Затем мы должны иметь возможность повторно аутентифицировать его/ее без сервера. Будьте осторожны! Местное хранилище совершенно небезопасно!
Таким образом, мы сохраняем пароль пользователя в браузере, соленый и , зашифрованный SHA-3.
Найти реализацию Java SHA-3, скопировать-вставить в проект:
String shaEncoded = SHA3.digest (String clearString);
Offline HTML5-приложений с помощью GWT 18
Вопросов:
- Действительно ли можно надежно проверить подлинность приложения GWT с таким подходом? Если он закодирован SHA-3, он действительно сделает его безопасным?
- Когда пользователь получает аутентификацию в браузере, пользователь использует офлайн-приложение, скажем, сохранить материал, а затем, конечно, он просто хранится в хранилище HTML5, однако информация о пользователе встроена, возможно, в что-либо сохраненное. Таким образом, когда приложение возвращается в сеть, оно будет синхронизироваться с сервером. Как это безопасно? Будет ли сервер просто соглашаться с тем, что вещь, которую она синхронизирует, действительно от правильного пользователя?
Должна быть соль где-то сохранено? Или соль есть на сервере? – xybrek
Вы можете использовать соль, чтобы предотвратить атаку [хайв] [rainbow table] (http://en.wikipedia.org/wiki/Rainbow_table). В этом случае вы сохраните значение соли на сервере и используйте его для генерации хеша: добавьте соль в пароль и хешируйте его. Обычно я обычно добавляю имя пользователя в хэш. В результате даже два пользователя с одинаковым паролем получат другой хеш. –