Аутентификация адреса электронной почты без возможности просмотра адреса электронной почты - PullRequest
2 голосов
/ 23 марта 2012

Предположим следующий воображаемый сценарий:

  • У меня есть сайт, который используется для призывников.
  • На этом сайте могут зарегистрироваться только военные призывники и только военные. - Самый простой способ аутентификации - получить список предварительно авторизованных адресов электронной почты. Однако военные явно не выпустят свой список адресов электронной почты.
  • Как я мог бы аутентифицировать этих людей, чтобы зарегистрироваться?

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

Похоже ли это на реалистичный подход, который обеспечил бы анонимность адреса электронной почты? Есть лучшие идеи для этого?

Ответы [ 3 ]

1 голос
/ 24 марта 2012

Звучит хорошо, пока «военные» убеждены, правильно или нет, что хеширование действительно необратимо и готово доверять вам хешированный список адресов.(Кстати, что такое sha5? Afaik sha3 - последнее поколение).

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

0 голосов
/ 24 марта 2012

Это работоспособное доказательство с нулевым знанием. Однако, если у вас есть сотрудничество с военными, можно подумать, что вы могли бы добиться большего ... Вы могли бы получить (иначе бессмысленный) серийный номер и исходный пароль от военных, а затем сделать так, чтобы новобранцы входили в систему, используя что.

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

0 голосов
/ 24 марта 2012

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

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

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

Вероятно, лучший способ убедиться, что электронная почта новобранца действительно действительна, это дать новобранцам уникальные регистрационные коды на «военной» стороне, чем они должны дать вампары регистрационного кода и хеш-кода и соответствующий адрес электронной почты.Чем каждый новобранец должен будет предоставить этот регистрационный код, и вы сможете пересчитать личный хеш новобранца по его электронной почте и регистрационному коду.

Преимущество второго способа заключается в том, что даже вы не сможете легкоbrute форсирует хэши в электронные письма, если «военный» даст вам не только пары кодов / хэшей, но и список кодов для каждого хэша, только один из которых будет правильным.

Обновление: Путь кульминации паранойи.Вы получаете всего несколько хешей от «военных» в два раза больше, чем число новобранцев.Каждый новобранец получает уникальный регистрационный код.Затем вам нужно сначала вычислить хэш регистрационного кода и проверить, есть ли он у вас.Затем вам нужно объединить этот хэш с письмом и проверить, есть ли у вас второй хэш.Таким образом, вы никогда не сможете самостоятельно переписываться по электронной почте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...