CodeGym /Blog Java /Random-ES /Seguridad primero. ¿Se llama Java un lenguaje seguro por ...
John Squirrels
Nivel 41
San Francisco

Seguridad primero. ¿Se llama Java un lenguaje seguro por una buena razón?

Publicado en el grupo Random-ES
Hay muchas cosas buenas sobre Java como lenguaje de programación. Es elegante pero potente, multifuncional e independiente de la plataforma. Con ser orientado a objetos y portátil como sus fortalezas más mencionadas, otra gran ventaja de Java tiende a permanecer en la sombra, por lo que los recién llegados a menudo tienen una comprensión limitada de todos los beneficios de estudiar Java en lugar de otro lenguaje de programación, para tomar la decisión correcta. ¿Alguna vez ha escuchado que se llame a Java un lenguaje de programación seguro? Lo es, y con razón. Seguridad primero.  ¿Se llama Java un lenguaje seguro por una buena razón?  - 1 Así que pensamos que puede ser el momento de arrojar algo de luz sobre esto y explicar por qué Java se llama un lenguaje seguro y de qué manera es seguro exactamente.

¿Qué hace que Java sea un lenguaje seguro?

¿Java es seguro? Hay una serie de razones para llamar a Java un lenguaje de programación seguro, aunque decir que Java es más seguro en comparación con otros lenguajes sería la forma correcta de decirlo, ya que estas funciones en realidad no hacen que Java sea absolutamente seguro, sino que principalmente mejorar la seguridad de la ejecución del código Java.
  • Verificación de código de bytes.
La verificación de bytecode es una de las funciones principales que garantiza la seguridad del código Java. Una verificación de código de bytes significa que Java usa un compilador, que lee el código de Java y lo traduce a una representación de código de bytes independiente de la máquina. Esto permite asegurarse de que solo se ejecuten bytecodes legítimos y que ningún código malicioso pueda ingresar al sistema. El compilador verifica que los códigos de bytes se ajusten a la especificación del lenguaje Java y no violen las reglas del lenguaje Java ni las restricciones del espacio de nombres. El código también se verifica en busca de una serie de otras "señales de alerta", como encasillamientos de datos ilegales, subdesbordamientos y desbordamientos de pila, o violaciones de administración de memoria. Para explicarlo de una manera más simple, los programas Java se compilan como código de mordida, que luego se ejecuta dentro de una máquina virtual y no puede acceder a la computadora en la que se ejecuta. Hace que este código sea mucho más seguro de usar,
  • Gestión de memoria automatizada.
Otra característica importante de Java como lenguaje seguro es la gestión automática de la memoria y la recolección de basura, que también hace que Java sea un lenguaje mucho más fácil para un programador, ya que Java se ocupa automáticamente de todos los problemas de memoria interna y sistemas de gestión de datos. Esto permite que el programador no se preocupe en absoluto por los problemas de memoria al crear un programa, sino que se concentre en otras cosas importantes. La recolección de basura, por ejemplo, libera automáticamente la memoria cuando es necesario. Por cierto, otra gran ventaja de toda esta automatización de la gestión en Java es el hecho de que reduce los costes generales de desarrollo (ya que se automatizan varias funciones y procesos importantes).
  • Sin punteros.
A diferencia de muchos otros lenguajes de programación, C y C+ por ejemplo, que utilizan valores de puntero para administrar la memoria de la aplicación, no existe el concepto de punteros en Java. Aunque originalmente se diseñó como una medida de seguridad (para proteger los datos privados de los ladrones), los punteros también pueden ser una gran vulnerabilidad en el caso de que algún tipo de malhechores logre acceder a ellos, ya que los punteros no tienen forma de verificar la autorización en ellos. , básicamente permitiendo que cualquier persona acceda a la memoria de la aplicación. Java, como dijimos, no usa punteros, sino que se basa en sus sistemas de administración de datos y memoria interna, como una forma de proteger los datos de cualquier acceso no autorizado. Esto hace que sea prácticamente imposible que los piratas informáticos se infiltren en la memoria de la aplicación Java. Comprensiblemente, esta es otra razón por la cual Java es popular en el desarrollo empresarial,
  • El compilador de Java verifica, detecta y corrige automáticamente los errores en el código.
La verificación automática del código en busca de errores es otra característica importante de Java que lo hace más seguro. El compilador verifica el código, detecta errores, advierte al programador sobre estas flechas y sugiere formas de corregirlas. Esto, nuevamente, simplifica el trabajo del programador, hace que las aplicaciones Java sean mucho más estables y, en última instancia, reduce los costos de desarrollo (razón número 1 para casi cualquier empresa). En cuanto a la parte de seguridad, esto también minimiza las posibilidades de que un código malicioso externo ingrese a su programa y realice modificaciones no autorizadas en él.
  • Java realiza una verificación automática del tipo de datos.
Además de verificar el código en busca de errores, Java Compiler también examina automáticamente las variables en el código, para asegurarse de que no haya problemas de seguridad que puedan surgir de los errores de entrada de datos en las variables. Esta es otra forma de proteger el sistema contra la infiltración y el robo de datos.

¿Qué componentes de Java realmente lo hacen seguro?

En cuanto a los componentes específicos de Java que juegan el papel más importante en su seguridad, aquí hay una lista rápida solo para darle una comprensión más clara, en un nivel básico, de cómo funciona y qué es exactamente lo que hace que Java sea seguro.
  • Máquina Virtual Java (JVM).
JVM, al ser una máquina virtual que ejecuta la representación de código de bytes de un programa Java, obviamente juega un papel muy importante en la seguridad general de Java. El uso de JVM le permite bloquear cualquier operación potencialmente insegura de un programa.
  • Arquitectura criptográfica Java (JCA).
Java Cryptography Architecture es un marco que le permite agregar funcionalidad criptográfica para la plataforma Java. El uso de Java Cryptography Architecture garantiza que sus datos se cifrarán y permanecerán seguros.
  • Infraestructura de clave pública (PKI).
La infraestructura de clave pública es otro marco que le permite aplicar criptografía de clave pública para lograr un intercambio seguro de datos. Con PKI, puede vincular identidades a certificados digitales y verificar la autenticidad de los certificados cuando sea necesario.
  • Gerente de seguridad.
El administrador de seguridad en Java es básicamente una clase que permite que las aplicaciones implementen una política de seguridad, define la política de seguridad para ellas y permite que un programador establezca un nivel de seguridad para una aplicación.
  • Caja de arena de Java.
Java sandbox es un área de programa para ejecutar subprogramas de Java, que restringe lo que puede hacer un subprograma para asegurarse de que no comprometa la seguridad y no pueda acceder a los recursos del sistema sin la verificación de seguridad.

Opiniones

¿Los desarrolladores profesionales de Java con años de experiencia creen que este lenguaje es seguro? Aquí hay un par de citas. “Diría que Java no es seguro como tal (ningún lenguaje de programación lo es), pero la JVM ofrece características que brindan seguridad. Entonces, si bien Java no lo protegerá de todo, lo protegerá de toda una clase de problemas causados ​​por desbordamientos del búfer”, dijoGarry Taylor, programador experimentado y CTO de la empresa Black Spark Media. “Java mejora la seguridad al confinar un applet al entorno de ejecución de Java y no permitirle acceder a otras partes de la computadora. Muchos consideran que la capacidad de descargar applets con la confianza de que no se producirá ningún daño y que no se infringirá la seguridad es el aspecto más innovador de Java”, señaló Smit Prakash, ingeniero de software de IBM.

Resumen

Entonces, ¿Java es seguro? En resumen, Java definitivamente tiene una serie de excelentes características y herramientas integradas que lo hacen más seguro. Muchas de estas funciones desempeñan un papel importante en la popularidad general de Java, especialmente en el mercado empresarial, ya que permiten a las empresas proteger eficazmente sus datos contra el acceso no autorizado, al tiempo que automatizan una serie de procesos de desarrollo que otros lenguajes no automatizan. Pero, por mucho que nos guste jactarnos de Java y de lo bueno que es, Java aún está lejos de ser completamente seguro. De hecho, ninguno de los lenguajes de programación es completamente seguro, y cada uno tiene sus propias fortalezas y debilidades (vulnerabilidades). En términos generales, C se consideraser el lenguaje de programación más vulnerable que existe. Java, a pesar de tener una serie de excelentes funciones de seguridad descritas anteriormente, sigue siendo vulnerable en el lado del servidor y puede sufrir vulnerabilidades, dicen los expertos .
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION