La autenticación mutua TLS es su opción más segura y es lo que generalmente recomiendo para la autenticación de servidor a servidor, excepto por una situación muy específica y menos común que explicaré más adelante. La autenticación de certificado mutuo de TLS es más segura que la autenticación de contraseña porque con la autenticación de certificado de TLS, las claves privadas nunca se envían en la comunicación. Con una autenticación de clave precompartida (también conocida como contraseña), el token secreto puede verse comprometido solo por una intercepción exitosa, y dado que ambos lados del servidor necesariamente manejan el token secreto en un punto u otro, por lo que puede comprometer a ambos autenticadores simplemente comprometiendo Un lado de la conexión. La autenticación de certificados limita el impacto, ya que solo un lado de la credencial está comprometido.
Con la autenticación mutua TLS de servidor a servidor, tiene la opción de utilizar una CA pública, que cuesta una pequeña cantidad de dinero pero le permite externalizar la complejidad de ejecutar una entidad de certificación raíz a alguien con la experiencia adecuada para hacerlo. , o puede ejecutar una raíz privada, por lo que no tiene que confiarle a un tercero la seguridad de su red de sistemas. Hay ventajas y desventajas de cada uno, y debes considerarlos cuidadosamente.
Sin embargo, mi entendimiento es que el certificado del cliente también puede ser robado.
Cualquier credencial puede ser robada, es por eso que debe proteger sus servidores y hacer planes de contingencia para estas situaciones. Si tiene una situación en la que le preocupa el robo de una clave privada, tiene dos opciones:
- En la mayoría de los casos, puede diseñar procesos y procedimientos para que pueda revocar y reemplazar rápidamente el certificado robado. Esto puede significar que debe usar un certificado raíz que genere los certificados de pares y / o que necesite una manera de revocar y desplegar de forma relativamente rápida en todos los servidores que necesitan autenticarse entre sí.
- Si tiene una situación en la que es extremadamente difícil reemplazar la raíz de la confianza, por ejemplo, si tiene millones de máquinas administradas por cientos o miles de empresas / individuos diferentes, entonces realmente desea asegurar la raíz de la confianza. En este caso, debe hacer # 1, y también usar un módulo de seguridad de hardware. Un HSM es un token de hardware que almacena su clave privada y realiza operaciones criptográficas para que la clave nunca abandone el HSM. HSM le permite convertir el riesgo de asegurar el servidor a la seguridad física del robo físico del propio HSM.
Mi otra recomendación puede ser necesaria si tiene una situación en la que necesita autenticación de extremo a extremo, donde su modelo de seguridad es tal que los servidores no se consideran una parte confiable en la comunicación entre los usuarios de cualquiera de los servidores. El ejemplo más común de esto es el correo electrónico y el chat cifrados de extremo a extremo. En este caso, desea agregar una autenticación y cifrado a nivel de la aplicación, de manera que los servidores nunca tengan la clave privada del usuario y, por lo tanto, no puedan hacerse pasar por sus usuarios. En este modelo de seguridad, los usuarios confían en otros usuarios directamente, pero no necesariamente confían en el servidor, excepto como un simple agente de entrega. Mi recomendación para esto es usar GPG o cualquier cosa que implemente Double Ratchet como el protocolo Signal.
Como alternativa, OAuth / OAuth2 puede ser necesario cuando necesite una autenticación de tres patas: usuario / aplicación, servidor de identidad y servidor de recursos. A menos que realmente tenga una situación de tres patas, probablemente no necesite la complejidad de OAuth / OAuth2.
Además, si hacemos una restricción de IP, ¿hará la integración mucho más segura?
Si ya tiene la autenticación adecuada, la integración será un poco más segura, pero no mucho. La restricción de IP realmente solo es útil contra los ataques DoS porque el firewall IP es relativamente barato de implementar con un firewall de capa 3, pero por sí solo, no es suficiente para ningún tipo de autenticación y el hecho de no tener restricciones de IP generalmente no es el fin del mundo.