У вас противоречивые требования:
Пользователи должны иметь возможность обновлять свои собственные устройства, и они не очень хорошо запоминают сложные процедуры или пароли.
и:
Также, если вы знаете пароль пользователя, любой, у кого есть устройство, может обновить эту информацию о пользователе.
Если можно ожидать, что ваши пользователи будут использовать только (едва ли) пароль, то вы не можете рассчитывать на возможность защиты в любом случае от кого-либо еще, у кого есть их пароль.
Не существует «волшебной» аутентификации, которая скажет вам, что конкретный пользователь или устройство является законным, помимо того, что вы предоставляете.
Вы можете защитить паролем загрузку, вы можете загрузить сертификаты, вы можете получить информацию о КПК (и даже информацию о сотовой связи), но если вы не добавите другой механизм аутентификации, в конце концов, все, что у вас есть, - это пароль.
Пароль - ваше самое слабое звено, и вы, кажется, указываете, что не можете предоставить более строгий доступ, но он вам почему-то нужен?
Если у вас есть другой канал аутентификации (телефон, электронная почта, SMS), вы можете обеспечить более надежную и содержательную аутентификацию.
Например, вы можете сделать работу вашей программы зависимой от файла «public.key» с открытым ключом для каждого пользователя, который требуется вашему серверу для использования. После того, как пользователь войдет на ваш веб-сайт, попросите его дать вам свой номер телефона (теперь у вас есть номер телефона и пароль) и отправьте SMS со ссылкой на временную загрузку ключа. Создайте новый ключ для каждого пользователя, храните их закрытый ключ на сервере и шифруйте (или, по крайней мере, аутентифицируйте) каждую транзакцию между устройством и сервером с использованием этой пары ключей.
Теперь, если кто-то другой хочет представить себя их пользователем, он должен получить этот файл одним из трех способов:
- Берут прямо с КПК (им тоже нужен пароль, так как открытый ключ должен быть защищен паролем пользователя)
- Они заставляют пользователя запрашивать новую ссылку для SMS и каким-то образом получают ссылку, не имея телефона.
- Они меняют номер телефона и запрашивают новую ссылку для СМС
В любом случае вы подтверждаете не только пароль, но и соответствующий номер телефона. Вы можете усложнить пользователям изменение номера телефона (также проверяйте их адрес электронной почты, когда они запрашивают изменение номера телефона, заставляют их звонить и т. Д.).
Конечно, вы можете сделать то же самое с другими каналами связи, но пользователи все больше и больше привыкают к аутентификации и загрузке по SMS, так что это не создает особых хлопот.
-Адам
person
Adam Davis
schedule
29.01.2009