Одна идея, которая мне всегда нравилась (не только потому, что это моя идея), это то, что вы можете решить эту проблему, не позволяя пользователю иметь свой собственный пароль. Стратегия заключается в том, что для входа пользователь посещает веб-сайт, на который он хочет войти, и запрашивает токен аутентификации. Затем токен отправляется им по электронной почте, действительный в течение некоторого времени, и они просто нажимают на ссылку, чтобы войти.
Очевидные проблемы этого подхода, однако, заключаются в следующем: ваша электронная почта не может этого сделать. Таким образом, это немного меняет проблему. Но, если вы проходите аутентификацию у своего провайдера электронной почты или кого-либо еще, используя подход сертификата на стороне клиента: http://en.wikipedia.org/wiki/Mutual_authentication, и немного подумаете над некоторыми вещами (т. Е. Обеспечение передачи деталей ссылки входа в систему не перехвачен и т. д.), по крайней мере, «интересно» подумать.
Но, в общем случае, способ решения вашей проблемы: аутентификация обеих сторон транзакции; Т.е. убедитесь, что веб-сайт, с которым вы общаетесь, именно тот, который вам нужен, прежде чем отправлять на него все, что вам нужно.