| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Технологии защиты программного обеспечения > Доступ к серверу по паролю |
| Автор: Deepthroat 3.12.2007, 01:26 |
| Предлагаю такую задачу, если есть стандартное описанное в литературе решение, или, если эта задача уже где-то решена, ткните, пожалуйста. Значит так, есть клиент и сервер. Клиент имеет имя пользователя и пароль, по которым он должен обращаться к серверу. На сервере эти данные хранить нельзя, поэтому я храню их хеши (есть возможность использовать md5 или более стойкий SHA-512). Так, взломав сервер, получить пароль пользователя невозможно. Все бы хорошо, но можно перехватить трафик клиента, а там пароль передается в открытом виде. Можно использовать схему, в которой сервер дает клиенту случайное число, тот его подписывает (да хоть так: md5(Password + Random)) и отправляет уже подпись. При перехвате трафика пароль узнать не выйдет. Но зато на сервере надо хранить пароль в открытом виде (либо зашифрованный, но ключем, который все равно хранится где-то на сервере в открытом виде). Т.е. при взломе сервера хакер получает пароль. Работа проходит на PHP и JavaScript, так что выбор криптографических функций несколько ограничен (AES 256, SHA-512, md5). Можно хранить на сервере пароль в зашифрованном виде, а ключ для шифрования пароля хранить на другом сервере. Но взломав наш сервак, можно получить место хранения ключа и расшифровать им сам пароль. К тому же, иметь 2 сервера - это слишком геморно. Итак, вопрос: как мне организовать аутентификацию пользователя не храня пароль на сервере и не передавая его в открытом виде? |
| Автор: SaDFromSpb 3.12.2007, 02:36 |
| Deepthroat, я не особо разбираюсь в этих всяких криптографических штуках, но вроде можно просто шифрованным канал между клиентом и сервером сделать. Либо все соединение через ssl (или что-нибудь там аналогичное - хз) делать, либо только акт передачи пароля, как в gmail'е по умолчанию. Поснифать пассворд на гмэйл не получится, в отличие от многих других мыльных серверов. =) |