Идентификация и аутенцтификация с веб-страницы
Хотел бы спросить. Как лучше всего сделать утентификацию с веб-страницы, по типу, как в WebMoney, если кто сталкивался. У меня есть ключи пользователя. Что нужно передать на сервер, чтобы его идентифицировать и допустить к веб-ресурсу? Подписанную строку? Какая строка это должна быть, чтобы злоумышленник не мог ее повторить?
комментариев: 11558 документов: 1036 редакций: 4118
А вообще, конечно, лучше используйте взаимную SSL-аутентификацию (аналогично аутентификации в WebMoney Keeper Light). С WebMoney Keeper Classic история немного иная — используется компонент ActiveX, — поскольку ключ аутентификации пользователя передаётся из стороннего приложения.
комментариев: 30 документов: 4 редакций: 0
комментариев: 11558 документов: 1036 редакций: 4118
Т.е. я предполагаю, что у Вас есть некий веб-сайт, на котором пользователь должен авторизоваться, чтобы подтвердить свои полномочия (допустим, интернет-магазин). Если есть поддержка SSL, пользователь просто открывает страницу авторизации по протоколу HTTPS, вводит своё имя и пароль в форму и вводит эти данные на сервер. Благодаря SSL они будут переданы в зашифрованном виде. SSL обеспечивает шифрование на уровне транспортного протокола, поэтому Ваши веб-приложения во многих случаях даже не будут догадываться, что данные передаются в защищённом виде.
(Один нюанс: после авторизации сервер, как правило, должен передать пользователю куку (например, с номер сессии или с хэшем пароля), по которой он в дальнейшем будет подтверждать полномочия пользователя. Ваша веб-программа обязана задать в куке secure-бит, чтобы, если пользователь откроет страницу сайта по HTTP, эти идентификационные данные из кука не были переданы по открытому каналу.)
Если Вам требуется что-то другое, формализуйте свою задачу или приведите больше деталей.
комментариев: 30 документов: 4 редакций: 0
изначально задача немного не такая. у пользователя есть ключи (собственно сгенерированные), необходимо организовать его идентификацию с помощью этих ключей. SSL испльзуется только в качестве шифрования данных в канале, но не как механизм идентификации. пока использование сертификатов SSl не предполагается. можете ли подсказать, как подобное реализовать. пример использования – Web Money Keeper Classic. Мне не понятно, что между ActiveX и сервером передается и что подписывать этими ключами.
комментариев: 11558 документов: 1036 редакций: 4118
Какие ключи: симметричные или асимметричные? Есть ли у сервера копия этих ключей?
Вся документация по протоколу WebMoney есть на официальном сайте.
комментариев: 30 документов: 4 редакций: 0
ключи ассиметричные, на сервере есть открытый ключ клиента.
по внутреннему устройству? Я не видел. поищу, но, если Вам не сложно, киньте ссылочку.
комментариев: 30 документов: 4 редакций: 0
комментариев: 30 документов: 4 редакций: 0
комментариев: 11558 документов: 1036 редакций: 4118
комментариев: 30 документов: 4 редакций: 0
чем может грозить перехват открытого ключа? Ведь его содержимое не является секретным.
нО, ведь время у сервера может быть другое, нежели у клиента. я подумываю о том, чтобы запрашивать у сервера некоторую строку, GUID – индентификатор сессии, что ли. Который остается валидным для входа некоторый промежуток времени. Затем я подписываю его + еще некоторое число (увеличивающееся при каждой операции), защищающее от прямого дублирования пересылаемой информации. И передаю это дело на сервер. На сервере происходит индентификация и авторизация, а данная строка входа становится не валидной. Если в течении времени жизни, GUID был отослан, но не подписан, мы с ним прощаемся – сессия для входа умирает (на сервере).
Что имеется в виду под "тривиальными" ?
спасибо за обсуждение, Вы мне здорово помагаете!
Еще хотелось бы услышать мнение по поводу
Насколько хуже, что мы получаем доступ к строке для входа.
комментариев: 11558 документов: 1036 редакций: 4118
Это грозит тем, что ключ может быть подменён для последующего проведения атаки "человек посередине".
Нормально, это по сути ничем не отличается от предложенного варианта. Только убедитесь, что сессия инвалидируется корректно, иначе будет угроза атаки с повторной передачей.
Это и т.п.
Не хуже, я бы сделал именно так. Конечно, если требуется автоматизировать процесс авторизации, придётся писать какой-то клиентский модуль, будь то на javascript, AcriveX или чём-то ещё.
комментариев: 30 документов: 4 редакций: 0
Можно ли этого избежать, используя для сайта сертификат SSL? И как правильно организовать защиту?
комментариев: 11558 документов: 1036 редакций: 4118
комментариев: 30 документов: 4 редакций: 0
Кстати, на лекции по безопасности сказали, что 1024 битный ключ RSA – недостаточно. Если предполагается ключи системы использовать достаточно долго – несколько лет, лучше сделать ключи 2048 бит, чтобы потом их не менятЬ?
а где про это можно подробнее почитать?
комментариев: 30 документов: 4 редакций: 0