jueves, 26 de febrero de 2015

Web Socket

Los Web Sockets son una nueva tecnología en el modelo Cliente-Servidor, la principal diferencia entre ellos y los Sockets que antiguamente se usaban es que un sólo Web Socket permite una comunicación bi-direccional, dúplex (simultánea), y ofrecen mayor rapidez; todo esto nos permite declarar un único Web Socket y dejarlo latente hasta que en cualquier momento se le vuelva a necesitar, y cerrarlo cuando el Cliente o el Servidor lo indiquen.

Los Web Sockets ya se usan en Google Chrome, Mozila Firefox, Opera y en Safari de forma nativa. En Internet Explorer estpan disponibles a partir de la versión 10 como un plug-in.

A continuación se describe el ciclo de vida de un Web Socket:

  1. El Cliente le envía al servidor una solicitud en la forma de una actualización de encabezado de HTTP con la información del Web Socket al que se quiere conectar.
  2. El Servidor responde a la solicitud con otro encabezado de HTTP.
  3. Si la solicitud fue aceptada, el Servidor, por medio de otro encabezado de HTTP, indica al Cliente que está cambiando al protocolo de Web Socket.
  4. Ahora se ha abierto una conexión constante que permite tanto al Cliente como al Servidor enviar cualquier número de mensajes entre ellos hasta que se cierre la conexión. Estos mensajes generalmente solo ocupan 2 bytes.

RMI

RMI de por sus siglas en inglés, o Invocación de Métodos Remotos (Remote Method Invocation), nos permite que un objeto que esté ejecutándose en una JVM (Máquina Virtual de Java del inglés Java Virtual Machine), invoque métodos de otro objeto ejecutándose en otra JVM, ya sea local o de otra computadora en red. Exclusivamente para programas en Java.

Funciona basado en el esquema Cliente-Servidor; para que funcione se necesita una interfaz remota que tenga los métodos remotos, está será conocida tanto por el Cliente como por el Servidor. A continuación se necesita que el servidor implemente la interfaz remota, es decir, un servidor que proveerá los servicios de la interfaz remota; y después hay que instanciar el servidor y generar un stub mediante la Máquina Virtual de RMI. Finalmente, hay que implementar el cliente que hará uso de los servicios.

Para poder producir la conectividad entre el cliente y servidor se ocupa una herramienta de JAVA, llamada RMI Registry. El RMI Registry puede estar localizado en un lugar distinto al servidor, y se encarga de registrar un determinado objeto y asignarle un servidor que se encargará de procesar dicho objeto.

Ya en la práctica podemos ver el funcionamiento de RMI de la siguiente manera: 
  1. Se ejecuta el RMI Registry, en algún lugar de la red. 
  2. El servidor que desea manejar un objeto, se registra en dicho servidor.
  3. El RMI Registry registra el par: OBJETO/SERVIDOR.
  4. El cliente que necesita utilizar un determinado objeto, hace una consulta al RMI Registry, quien devuelve el STUB listo para la comunicación.

lunes, 23 de febrero de 2015

Certificado Digital

Un certificado digital es un método de seguridad que nos permite garantizar la identidad de alguien. 

El certificado digital permite cifrar las comunicaciones, es decir, que solamente el destinatario de la información podrá acceder al contenido de la misma. 

Un Certificado Digital consta de una pareja de claves criptográficas, una pública y una privada, creadas con un algoritmo matemático, de forma que aquello que se cifra con una de las claves sólo se puede descifrar con su clave pareja. El titular del certificado debe mantener bajo su poder la clave privada, ya que si ésta es sustraída, el sustractor podría suplantar la identidad del titular en la red. En este caso el titular debe revocar el certificado lo antes posible, igual que cuando se anula una tarjeta de crédito sustraída. 

La clave pública forma parte de lo que se denomina Certificado Digital en sí, que es un documento digital que contiene la clave pública junto con los datos del titular, todo ello firmado electrónicamente por una Autoridad de Certificación (AC), que es una tercera entidad de confianza que asegura que la clave pública se corresponde con los datos del titular. La Firma Electrónica sólo puede realizarse con la clave privada. 

La Autoridad de Certificación se encarga de emitir los certificados para los titulares tras comprobar su identidad. El formato de los Certificados Digitales está definido por el estándar internacional ITU-T X.509. De esta forma, los certificados pueden ser leídos o escritos por cualquier aplicación que cumpla con el mencionado estándar.

En un Certificado Digital, el par de claves (pública y privada) se vinculan con un nombre de usuario y otra información identificatoria. Una vez que un Certificado es instalado en un navegador, funciona como una credencial electrónica que los sitios de la web pueden verificar. Esto habilita a Certificado Digital para ser empleado en lugar de las contraseñas o passwords para acceder a información o servicios sobre la red que requieren membresía o cuyo acceso está restringido a usuarios específicos.

Para que un certificado sea reconocido, se verifican las siguientes características:

Integridad del certificado: Verifica que el certificado se encuentre íntegro, esto lo hace descifrando la firma digital incluida en él mediante la llave pública de la AC y comparándola con una firma del certificado generada en ese momento, si ambas son iguales entonces el certificado es válido. 

Vigencia del certificado: Revisa el periodo de validez del certificado, es decir, la fecha de emisión y la fecha de expiración incluidos en él.

Verifica emisor del certificado: Hace uso de una lista de Certificados Raíz almacenados en el ordenador y que contienen las llaves públicas de las ACs conocidas y de confianza.

martes, 17 de febrero de 2015

Cifrado Simétrico, Asimétrico y Autenticación



    1.-Menciona las diferencias entre cifrado simétrico y asimétrico (4).
    • En el cifrado simétrico se utiliza la misma clave tanto para cifrar como para descifrar, en el cifrado asimétrico se utilizan diferentes claves.
    • En el cifrado simétrico el emisor y el receptor utilizan una clave secreta para cifrar/descifrar el mensaje. En el cifrado asimétrico, el emisor utiliza una clave pública para cifrar el mensaje y el receptor utiliza una clave privada para descifrarlo.
    • En el cifrado simétrico la seguridad depende de las claves, si alguno ya sea emisor o receptor, revela la clave, se compromete la seguridad. En el cifrado asimétrico la seguridad depende de la clave privada del receptor.
    • El cifrado asimétrico garantiza que solo la persona a la que va dirigido el mensaje lo pueda descifrar.
    2.- Menciona las diferencias entre cifrado asimétrico y autenticación.
    • La autenticación garantiza que el emisor del mensaje es quien dice ser, para ello, el emisor envía un mensaje cifrado con su clave privada al receptor que tiene una clave pública. El cifrado asimétrico sirve para que sólo la persona a quien va dirigido pueda descifrar el mensaje, para ello el emisor envía un mensaje cifrado con una clave pública al receptor que lo descifrará con su clave privada.
    3.-¿Qué es HTTPS?
    • Llamado así por sus siglas en inglés (HyperText Transfer Protocol Secure), o en español Protocolo de Hipertexto de Transferencia Segura. Se podría decir que es la versión segura del HTTP ya que es un protocolo basado sobre el mismo, pero que utiliza un cifrado basado en SSL/TLS para crear un canal cifrado más apropiado para el tráfico de información sensible que el protocolo HTTP. Así se intenta garantizar que la información sensible no pueda ser usada por un atacante que haya podido interceptar la transferencia de datos de la conexión, ya que lo único que obtendrá será un flujo de datos cifrados que le resultarán imposibles de descifrar.
    4.-Diferencias entre certificado y firma digital.
    • La firma digital es una forma de autenticación encargada de garantizar la confidencialidad de la información transmitida. La firma digital se agrega al mensaje usando una "clave privada". El mensaje se transmite luego al receptor en una versión distorsionada, y el destinatario puede descifrar el mensaje recibido mediante el uso de una "clave pública" correspondiente que verifica la integridad de los mensajes recibidos y la identidad del remitente.
    • El certificado digital es emitido y firmado por una empresa certificadora autorizada. Los certificados digitales son documentos digitales que verifican que tanto la "clave privada" como la "clave pública" utilizadas para autentificar al remitente y verificar la integridad de un mensaje transmitido son genuinas y aprobadas por una autoridad certificadora. El papel del certificado digital es salvaguardar la seguridad y fiabilidad de las firmas digitales, ya que sin un certificado digital, una firma digital puede falsificarse fácilmente. Un certificado digital es como la prueba de identidad de un individuo o empresa.