De modo que los IP pueden, de hecho, considerarse PII (o información de identificación personal) en algunos casos, por lo que tiene derecho a considerar si necesita protegerlos. En general, esto no significa, sin embargo, ir a cualquier longitud adicional más allá de cómo protegería otra PII, por ejemplo, las direcciones de correo electrónico, por ejemplo.
En cualquier caso, el hashing tradicional probablemente será un mecanismo ineficaz. Hay solo 4 mil millones de direcciones IP v4 potencialmente en existencia, y la realidad es que probablemente estés tratando con un espacio de direcciones mucho más pequeño que eso. Esto significa que es relativamente fácil para un atacante con hashes calcular las direcciones IP que resultan en esos hashes. Por lo general, en este caso no es útil utilizar la salazón, ya que es probable que desee saber cuándo se asocian dos solicitudes con la misma dirección IP, y no podrá comparar fácilmente los hashes existentes con el hash de la dirección IP asociada con una nueva solicitud. Si todos los hashes están salados de forma única.
Podrías, potencialmente, usar un hash con clave sin un salt, usando una función como HMAC. Esto, suponiendo que pueda mantener la clave segura, llevará a hashes que pueden compararse entre sí, pero que tampoco pueden asociarse a las direcciones IP que fueron utilizadas por un atacante que tiene hashes, pero no a la clave. Sin embargo, si el atacante obtiene la clave, esto no es más seguro que el hash tradicional.
En términos generales, sugeriría que el riesgo aquí no exige la complejidad de una mitigación de este nivel. Creo que la complejidad que agrega (y necesita mantener) probablemente supera la seguridad adicional que obtendría. Sin embargo, si su aplicación requiere que considere que las direcciones IP sean lo suficientemente sensibles para garantizar una protección extraordinaria, considere usar una función de clave codificada.