HMAC-SHA1 es un algoritmo de código de autenticación de mensaje (MAC), RSA-SHA1 es un algoritmo de firma. Aunque las MAC a veces se llaman incorrectamente firmas, son fundamentalmente diferentes.
Con un MAC, cualquiera que conozca la clave secreta puede crear y verificar los MAC. Por otro lado, con las firmas, cualquier persona con la clave pública puede verificar una firma, pero solo una persona con la clave privada puede crear una firma.
Las firmas se utilizan cuando se desea que la parte que verifica la firma no pueda crear firmas. PGP los usa para verificar la autoría del mensaje, TLS los usa para verificar las cadenas de certificados.
Los MAC se utilizan cuando todas las partes involucradas simplemente quieren saber que el mensaje no fue modificado por otra parte válida. TLS los usa para verificar que los mensajes no se alteren entre el cliente y el servidor.
Los MAC son generalmente mucho más rápidos que las firmas. Una firma en la que ambas partes saben que las claves públicas y privadas podrían usarse como MAC, pero el rendimiento sería mucho peor.
Tenga en cuenta que SHA1 está en desuso en la mayoría de los lugares debido a ataque de colisión . El ataque de colisión no afecta a HMAC-SHA1 , pero puede ser conveniente usar HMAC-SHA256 en su lugar, solo para evitar preguntas innecesarias. SHA1 debe evitarse con firmas RSA si el atacante tiene algún control sobre lo que está firmando, y ya que puede que no siempre quede claro si este es el caso (o podría ser el caso en el futuro debido a los cambios), es mejor usar SHA256.