No hay ninguna razón técnica para no permitir ningún carácter en una contraseña. Supongo que en el caso que describa, solo permitiría que los caracteres alfanuméricos eviten problemas del lado del usuario (por ejemplo, al ingresar un carácter que no está disponible en los teclados de otro país).
Muchos proveedores y sitios obligan a los usuarios a elegir contraseñas muy complejas que contienen un número mínimo de números y, a veces, incluso caracteres especiales para evitar la fuerza bruta o dictionary attacks.
No creo que forzar personas para elegir una contraseña compleja es sabio. Contraseñas que no puede recordar, las anotará en algún lugar, lo que a menudo crea un riesgo de seguridad mucho mayor en la vida real.
Un límite de velocidad simple en el sistema de inicio de sesión (por ejemplo, denegar el acceso durante 15 minutos después de 3 intentos fallidos de inicio de sesión) quita la amenaza de forzar la fuerza mucho más elegante.
Uno no tiene que estar de acuerdo al 100% con él, pero encontré este documento provocativo sobre el tema de Microsoft Research muy interesante. So Long, And No Thanks for the Externalities: The Rational Rejection of Security Advice by Users
Del resumen:
A menudo se sugiere que los usuarios están irremediablemente perezoso y desmotivado las cuestiones de seguridad. Eligen las contraseñas débiles , ignoran las advertencias de seguridad y olvidan a errores de certificados. Argumentamos que el rechazo de los usuarios de las recomendaciones de seguridad que reciben es completamente racional desde una perspectiva económica. El consejo ofrece a protegerlos de los costos directos de los ataques, pero les carga con costos indirectos mucho mayores en forma de esfuerzo.
No recuerdo que ningún carácter sea un problema si está usando marcadores de posición, pero podría estar equivocado ya que no conozco a todo el guardabosques ni a otros idiomas ... pero quizás si está usando UTF-8 y el marcador de posición debería ser lo suficiente como para aceptar cualquier cosa. – Prix