La especificación SRP original usó H (s, P) para una descripción no exhaustiva - Esquema de derivación de contraseña especificada, que incluye el salt y la contraseña juntos (pero no la identidad). El primer borrador para RFC 2945 (eso es SRP-3, predecesor de SRP-6) ya incluye el nombre de usuario en el hash .
Por lo general, la inclusión del nombre de usuario en un esquema de derivación de contraseña tiene por objeto simplificar las pruebas de seguridad; con la inclusión de la identidad del usuario, se puede estudiar la seguridad de SRP sin tener que molestar (mucho) con lo que sucede cuando un atacante juega trucos entre un servidor y varios clientes (por ejemplo, engañando a dos usuarios para que hablen) entre sí, cada uno creyendo que el otro es el servidor). Los protocolos con más de dos partes son exponencialmente más difíciles de analizar; El nombre de usuario como parte del hash hace que la seguridad de todo sea más sencilla (lo que no significa simple , solo es posible estudiar ).
Por lo tanto, las implicaciones de omitir el nombre de usuario del hash no son, en el mejor de los casos, investigadas. Por lo tanto, no lo hagas . Este es también el consejo general sobre algoritmos y protocolos criptográficos: no juegues con ellos, porque la seguridad es algo sutil y no puedes saberlo por ti mismo (incluso si eres un criptógrafo competente), si todavía lo tienes o no. modificación menor (se necesitan muchos criptógrafos competentes para saberlo).
Para su problema específico, le aconsejaría registrar varios "usuarios" para todos los identificadores que el usuario desee utilizar y vincularlos lógicamente a la misma identidad una vez que se haya ejecutado el protocolo.