Esta es una pregunta sobre el alcance y la interacción de la aplicación. Entonces, donde uno es mejor que el otro depende del alcance del acceso a los datos.
Con la capa de aplicación, cifre los datos que solo se pueden ver en el espacio de memoria de sus aplicaciones. Si esto es lo que necesita, el cifrado a nivel de aplicación es el camino a seguir. Sin embargo, cuando se envía a otra aplicación, esa información se cifra y no pueden verla. Esto es útil en JSON Web Tokens donde el servidor encripta y descifra la información para verificaciones y balances mientras evita que otras capas del modelo OSI la modifiquen.
Sin embargo, el cifrado de la capa de transporte es similar a TLS / SSL / SSH y demás. Es donde lo codificas en el transporte para que las personas no puedan escucharlo a menos que accedan a la memoria compartida en la máquina que liberaría la información. Esto es útil para enviar información del usuario a un servidor que no necesita estar encriptado, pero aún así se puede ver en una página web.
Para condensar esas explicaciones un poco más lejos:
-
El cifrado de la capa de la aplicación se debe usar cuando NADA, de lo contrario, debería tener acceso a los datos, incluso en la misma máquina.
-
El cifrado de la capa de transporte se debe usar cuando no desea que las personas escuchen los datos cuando están en el transporte y ya no están en la máquina en la que se creó.
Ya mencioné un ejemplo de un sitio web anteriormente y esa es la manera perfecta de pensarlo, ya que todos los modelos OSI se aplican a eso en el lado del servidor.
Los sitios web son datos y están en transporte si contienen información específica del usuario que debe estar encriptada, pero que el usuario debe poder verla cuando la página aparezca nuevamente en la capa de la aplicación en su extremo. Aquí es donde ocurre el cifrado de la capa de transporte.
Sin embargo, para protegerse contra los ataques cuando un usuario está devolviendo información, a menudo incluyen una comprobación en forma de token web JSON o cookie / campo CSRF que el cliente no puede ver, y está cifrado en la capa de la aplicación para que nadie más pueda verlo o modificarlo. Entonces, si es lo mismo cuando regresa y la información que contiene es verificada, saben que todavía es válida y pueden cumplirla en el lado del servidor.