Как бы вы внедрили анонимную аутентификацию?

Я создаю веб-приложение, ориентированное на безопасность, конфиденциальность и анонимность. Одним из ключевых принципов приложения является то, что пользователи могут хранить конфиденциальные данные анонимно.

В результате я ожидаю полностью передать аутентификацию системы, предпочтительно используя OAuth или OpenID.

Это вообще возможно? Я хотел бы избежать хранения адресов электронной почты или любой другой информации, идентифицирующей пользователя, на моей стороне.

2 ответа

Решение

Мой друг работал над этим несколько лет назад. Его идея состояла в том, чтобы хешировать адрес электронной почты и большой палец или отпечаток пальца в уникальное изображение (биометрические данные - это просто поток битов, и в теории довольно уникальный по сравнению с вводимым человеком паролем, таким как "123456").

Затем это изображение может быть сохранено на устройствах этого человека с использованием его собственного пароля или средства блокировки битов или даже распечатано и заблокировано физически. Изображение будет ключевым при показе на веб-камеру или при загрузке, что-то вроде обращения QR-кодов.

Конечно, создание изображения будет потенциальной точкой отслеживания. Но если бы это было сделано полностью в памяти или с помощью бесплатного и широко распространенного инструмента генерации ключей, то у вас, вероятно, была бы некоторая юридическая защита от того, чтобы вас заставляли раскрывать данные или идентификаторы оригинальных пользователей. (все это закрывает глаза на необходимость широкого использования биометрических сканеров и безопасных соединений вокруг)

Редактировать:

Потоки биометрических данных немного отличаются каждый раз, когда они взяты. Нет никакого "восстановления пароля", если вы хэшируете поток как этот, он, скорее всего, никогда не будет прежним. Большинство мер по уменьшению размерности сделало бы его гораздо менее безопасным и, тем не менее, могло бы оставить шанс, что его невозможно воспроизвести.

Начнем с того, что OAuth - это совершенно другая вещь, отдельная от объема вашего проекта.

Я думаю, это зависит от вашего определения "анонимный". Если вы используете OpenID, вы будете сохранять URL-адреса своих пользователей. Другими словами, ваша система будет точно такой же анонимной, как и OpenID ваших пользователей.

Более анонимным решением может быть просто позволить вашим пользователям вводить произвольную строку для идентификации себя. Возвращающиеся пользователи просто снова наберу эту же строку. Если вы хотите отобразить "личность" пользователя, вы можете запустить эту строку через хеш-функцию. Регистрация не требуется (и не в отличие от безопасных кодов 4chan).

Другие вопросы по тегам