Как сохранить имена пользователей в секрете

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

Это сделает брутфорс-аккаунты намного проще, когда они знают половину запроса.

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

Я предпочитаю не использовать проверки электронной почты для новых учетных записей.

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

Я использую PHP 7 и PDO.

-1

Решение

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

Пользователь: «щенки» и «бабочки».
Система: хотите ли вы использовать в качестве логина имя «много щенков» или «щенок-бабочка»?

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

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

3

Другие решения

Просто идея: если имена пользователей должны быть супер секретными. Вы можете генерировать случайный GUID в качестве имени пользователя при регистрации пользователя.

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

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

2