Joven hacker sonriendo

Cero falsos positivos

Inteligencia experta + automatización eficaz

Transmitir Información por HTTPS

Nuestros ethical hackers explican en que consiste el protocolo HTTPS el cual es utilizado con el fin de transmitir la información de manera segura ya que esta viaja cifrada. Además, mediante un ejemplo, enseñan como utilizarlo usando el framework HttpClient.

Necesidad

Transmitir por un canal seguro información a un servidor web.

Contexto

A continuación se describen las circunstancias bajo las cuales la siguiente solución tiene sentido:

  1. La aplicación está construida en Java.

  2. Se debe tener instalado el JDK 1.4 o superior.

  3. La aplicación requiere transmitir información a un servidor web.

  4. Se va a utilizar el framework HttpClient de Apache.

Solución

Desde actividades de ocio como ver vídeos musicales, ver películas o leer las noticias, entre otras, hasta actividades de carácter más serio como realizar transacciones bancarias, Internet, es sin duda, al día de hoy Internet es una herramienta fundamental para casi todas las personas.

Pues bien, gracias a tan alta demanda y, además, debido a la cantidad e importancia de la información que puede llegar a ser transmitida, es imperativo implementar medidas de seguridad que prevengan la exposición de todo tipo de información.

Entonces, para poder transmitir la información de una manera segura y cifrada, se utiliza el protocolo HTTPS. HTTPS, es un protocolo de aplicación basado en el protocolo HTTP, destinado a la transferencia segura de datos de Hipertexto, es decir, es la versión segura de HTTP. Eso se debe a 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. De este modo se consigue que la información sensible no pueda ser usada por un atacante que haya conseguido interceptar la transferencia de datos de la conexión, ya que lo único que obtendrá será un flujo de datos cifrados que le resultará imposible de descifrar.

En el siguiente ejemplo se verá la manera de transmitir información a través de el protocolo HTTPS usando el framework HTTPClient de Apache. Específicamente se enviarán las credenciales de autenticación (usuario y contraseña) a un sitio web de ejemplo.

  1. Primero, es necesario importar las siguientes clases httpclient.

    example.java
    1
    2
    3
    4
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.UsernamePasswordCredentials;
    import org.apache.commons.httpclient.auth.AuthScope;
    import org.apache.commons.httpclient.methods.GetMethod;
    
  2. Segundo, es necesario crear un objeto de la clase HttpClient().

    1
    HttpClient client = new HttpClient();
    
  3. Tercero, se debe establecer el ámbito de autenticación. Es decir, es necesario especificar el servidor con el cual se establecerá la comunicación HTTPS, el nombre del dominio, el puerto y el nombre del esquema de autenticación.

    1
    2
    3
    4
    client.getState().setCredentials(
      new AuthScope("www.fluidattacks.com", 443, "Secure Area"),
      new UsernamePasswordCredentials("user", "password")
    );
    
  4. Como cuarto paso, se necesita crear el objeto GetMethod. Dicho objeto accederá al recurso expuesto por el servidor web después de que el usuario se haya autenticado. Además, también controlara, de manera automática, la autenticación.

    1
    2
    GetMethod get = new GetMethod("https://www.fluidattacks.com/example.html");
    get.setDoAuthentication( true );
    
  5. Por último, se ejecuta el método generando la solicitud al servidor.

    1
    2
    3
    4
    5
    6
    7
    8
    try {
      int status = client.executeMethod( get );
    }
    catch(PersonalException e) {
      //  code for trying possible exceptions
    finally {
      get.releaseConnection();
    }
    



Haz un comentario

Estado de los servicios - Términos de Uso