HTTPS: detección y corrección de fallas en conexiones a sitios web

Problema:
“Los sitios Web HTTPs cargan muy lentamente o no cargan bajo navegadores Firefox, Chrome, Midori, bajo GNU/Linux”

Sobre tiempos de acceso:

“Los sitios HTTP o HTTPS de buscadores no debieran demorar más de 10 s en cargar (documentos HTML livianos).”


Se observa que:

– Envío / recepción de paquetes ICMP a servidores externos presentan latencias menores a 50 ms (-15 ms a dns de google)
– La resolución DNS se mejoró a menos de 3 s
– La descarga HTTP de documentos funciona con retardos menores a 15 s

Las fallas se focalizan en sitios que obligan a los navegadores a transicionar a HTTPS, el cuál fuerza determinados esquemas de comunicación.


Para llegar a una solución, se realizará:

+ Verificaciones de servicio de conexión ISP.

– ICMP a servidores externos
– DNS query a servidores conocidos
– Uso de “web spider” de CLI
– Uso de navegadores de modo texto, en modo “batch”

– A través de estas pruebas, se podrá saber si el sistema se encuentra desactualizado o no, en especial al intentar descargar sitios usando “web spider” que requieran HSTS (HTTP strict transport security).
– Actualización de navegadores, verificación de bibliotecas de seguridad
en uso (OpenSSL, GNUTLS).


+ Prueba de navegadores:

– Mediante plugins propios de cada navegador de tipo “page load time plugin”
– Accediendo a sitios que permitan verificar detalles de conexión HTTPS (analizadores de “handshake” SSL, TLS).

Orig: 2017/08/27
      2017/08/30
Rev0: 2017/09/03

1. Información básica de sistema
1.1 Sobre estándar de seguridad a utilizar para HTTPS
2. Verificación de conexión con Internet
2.1 Consulta DNS
2.2 ICMP trace
2.3 Acceso a sitio web seguro (https) via "web spider"
2.3.1 Acceso a sitio web seguro (https) via "web spider" - Intento 2
2.3.2 Verificando conexión con web spider sitio de búsqueda "duckduckgo.com"
3. Verificación de falla en navegadores modo gráfico
3.1 Prueba de Chromium
3.2 Prueba de Firefox

 


Conclusiones

1. Información básica de Sistema


– Operating system / kernel version / architecture

  $ uname -a
  Linux kali-dafo 4.9.0-kali3-686-pae #1 SMP Debian 4.9.18-1kali1 (2017-04-04) i686 GNU/Linux

- Linux Standard Base (LSB) id - current release:
  $ cat /etc/lsb-release

  DISTRIB_ID=Kali
  DISTRIB_RELEASE=kali-rolling
  DISTRIB_CODENAME=kali-rolling
  DISTRIB_DESCRIPTION="Kali GNU/Linux Rolling"

- GLIBC:
  ..........................................................................

  $ ldd `which ls` | grep libc
  libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb7541000)

  $ gcc -g -Wall libcv.c

  #include 
  #include 
  #include 

  int main(void)
  {
    fprintf(stdout, "GLIBC family (__GNU_LIBRARY__)= %2i\n", __GNU_LIBRARY__);
    fprintf(stdout, "GLIBC major (__GLIBC__)= %2i\n", __GLIBC__);
    fprintf(stdout, "GLIBC minor (__GLIBC_MINOR__)= %2i\n", __GLIBC_MINOR__);

    exit(0);
  }

  SO Lib "C" major and minor version numbers...

  GLIBC family (__GNU_LIBRARY__)=  6
  GLIBC major (__GLIBC__)=  2
  GLIBC minor (__GLIBC_MINOR__)= 24

 


– Información de hardware

  $ cat /proc/cpuinfo

  processor	: 0
  vendor_id	: GenuineIntel
  cpu family	: 6
  model		: 28
  model name	: Intel(R) Atom(TM) CPU N270   @ 1.60GHz
  stepping	: 2
  microcode	: 0x218
  cpu MHz	: 1067.000
  cache size	: 512 KB
  physical id	: 0
  siblings	: 2
  core id	: 0
  cpu cores	: 1
  apicid	: 0
  initial apicid: 0
  fdiv_bug	: no
  f00f_bug	: no
  coma_bug	: no
  fpu		: yes
  fpu_exception	: yes
  cpuid level	: 10
  wp		: yes
  flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
                  cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe
                  nx constant_tsc arch_perfmon pebs bts aperfmperf eagerfpu
                  pni dtes64 monitor ds_cpl est tm2 ssse3 xtpr pdcm movbe
                  lahf_lm dtherm
  bugs		:
  bogomips	: 3199.74
  clflush size	: 64
  cache_alignment	: 64
  address sizes	: 32 bits physical, 32 bits virtual
  power management:

  $ cat /proc/meminfo
  MemTotal:        2057692 kB
  ...
  SwapTotal:       4104572 kB


  # smartctl --all /dev/sda
  smartctl 6.6 2016-05-31 r4324 [i686-linux-4.9.0-kali3-686-pae] (local build)
  Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

  === START OF INFORMATION SECTION ===
  Model Family:     Western Digital Scorpio Blue Serial ATA
  Device Model:     WDC WD1600BEVT-22ZCT0
  Serial Number:    WD-WXC908558009

  LU WWN Device Id: 5 0014ee 2acd71db0
  Firmware Version: 11.01A11
  User Capacity:    160.041.885.696 bytes [160 GB]
  Sector Size:      512 bytes logical/physical
  Rotation Rate:    5400 rpm
  Device is:        In smartctl database [for details use: -P show]
  ATA Version is:   ATA8-ACS (minor revision not indicated)
  SATA Version is:  SATA 2.5, 3.0 Gb/s
  Local Time is:    Sun Sep  3 13:24:36 2017 ART
  SMART support is: Available - device has SMART capability.
  SMART support is: Enabled

 

1.1 Sobre estándar de seguridad a utilizar para HTTPS

 


Refs:
https://en.wikipedia.org/wiki/Transport_Layer_Security#TLS_1.2

– TLS 1.2 was defined in RFC 5246 in August 2008. It is based on the earlier TLS 1.1 specification. Major differences include:

– The MD5-SHA-1 combination in the pseudorandom function (PRF) was replaced with SHA-256, with an option to use cipher suite specified PRFs.

– The MD5-SHA-1 combination in the finished message hash was replaced with SHA-256, with an option to use cipher suite specific hash algorithms.
However the size of the hash in the finished message must still be at least 96 bits.[18]

– The MD5-SHA-1 combination in the digitally signed element was replaced with a single hash negotiated during handshake, which defaults to SHA-1.

– Enhancement in the client’s and server’s ability to specify which hash and signature algorithms they accept.

– Expansion of support for authenticated encryption ciphers, used mainly for Galois/Counter Mode (GCM) and CCM mode of Advanced Encryption Standard encryption.

– TLS Extensions definition and Advanced Encryption Standard cipher suites were added.[16]:2

– All TLS versions were further refined in RFC 6176 in March 2011 removing their backward compatibility with SSL such that TLS sessions never negotiate the use of Secure Sockets Layer (SSL) version 2.0.

 


Refs:
https://www.howsmyssl.com/s/about.html

– “How’s My SSL? is a cute little website that tells you how secure your TLS client is. TLS clients just like the browser you’re reading this with.”

– TLS 1.2 is latest version of TLS and it is recommended for clients to implement. It is the new normal for highly secure websites.
– TLS 1.2 provides access to advanced cipher suites that support elliptical curve cryptography (large efficiency wins) and AEAD block cipher modes (like the very nice GCM cipher suites). Clients using TLS 1.2 may be set
to Probably Okay.

+ Clients are downgraded to Bad if any of the following are true:
– It uses TLS 1.0 (instead of 1.1 or 1.2), or, worse, SSLv3 or earlier.
– It supports known insecure cipher suites. Developers can find the list of known insecure cipher suites in the howsmyssl repository on GitHub.
– It supports TLS compression (that is compression of the encryption information used to secure your connection) which exposes it to the
CRIME attack.
– It is susceptible to the BEAST attack.

 

2. Verificación de conexión con Internet


2.1 Consulta DNS

  $ time nslookup en.wikipedia.org
  Server:		8.8.8.8
  Address:	8.8.8.8#53

  Non-authoritative answer:
  Name:	en.wikipedia.org
  Address: 208.80.154.224

  real	0m0.207s
  user	0m0.044s
  sys	0m0.008s


2.2 ICMP trace

  $ traceroute 8.8.8.8
  traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
  1  gateway (192.168.0.1)  107.840 ms  107.762 ms  107.697 ms
  2  10.20.0.1 (10.20.0.1)  107.634 ms  107.571 ms  107.507 ms
  3  10.172.104.5 (10.172.104.5)  107.441 ms  107.382 ms  107.320 ms
  4  10.170.0.9 (10.170.0.9)  107.275 ms  107.172 ms  107.132 ms
  5  72.14.202.235 (72.14.202.235)  107.078 ms  107.015 ms  106.958 ms
  6  108.170.248.225 (108.170.248.225)  106.892 ms  16.966 ms  15.528 ms
  7  108.170.227.23 (108.170.227.23)  24.597 ms 74.125.37.211 (74.125.37.211)  28.380 ms 108.170.227.9 (108.170.227.9)  28.210 ms
  8  google-public-dns-a.google.com (8.8.8.8)  28.187 ms  25.625 ms  27.960 ms

 

>> Conexión Ok

2.3 Acceso a sitio web seguro (https) via “web spider”


– Según documentación “man wget”

    HTTPS (SSL/TLS) Options
       To support encrypted HTTP (HTTPS) downloads, Wget must be compiled
       with an external SSL library. The current default is GnuTLS.  In
       addition, Wget also supports HSTS (HTTP Strict Transport Security).
       If Wget is compiled without SSL support, none of these options are
       available.

       --certificate=file
           Use the client certificate stored in file.  This is needed for
           servers that are configured to require certificates from the
           clients that connect to them.  Normally a certificate is not
           required and this switch is optional.

       --certificate-type=type
           Specify the type of the client certificate.  Legal values are PEM
           (assumed by default) and DER, also known as ASN1.

       --hsts-file=file
           By default, Wget stores its HSTS database in ~/.wget-hsts.  You
           can use --hsts-file to override this. Wget will use the supplied
           file as the HSTS database. Such file must conform to the correct
           HSTS database format used by Wget. If Wget cannot parse the
           provided file, the behaviour is unspecified.

           The Wget's HSTS database is a plain text file. Each line contains
           an HSTS entry (ie. a site that has issued a
           "Strict-Transport-Security" header and that therefore has
           specified a concrete HSTS policy to be applied). Lines starting
           with a dash ("#") are ignored by Wget. Please note that in spite
           of this convenient human-readability hand-hacking the HSTS
           database is generally not a good idea.

 


– Se ejecuta comando:

  $ /usr/bin/time -p wget --spider --timeout=20 wikipedia.org

 

>>> URL transformed to HTTPS due to an HSTS policy <<< Modo arácnido activado. Comprobar si el fichero remoto existe. –2017-09-02 22:49:41– https://wikipedia.org/ Resolviendo wikipedia.org (wikipedia.org)… 2620:0:861:ed1a::1, 208.80.154.224 Conectando con wikipedia.org (wikipedia.org)[2620:0:861:ed1a::1]:443… conectado. >>> No se pudo establecer la conexión SSL. Command exited with non-zero status 4 Problema con handshake TLS/SSL No es problema de proveedor de internet. <<
/usr/lib/i386-linux-gnu/libgnutls-deb0.so.28 (0xb7520000)

* Se requiere actualización de aplicación y paquetes asociados.
Esto se realiza en 2 etapas.

 


** Estado inicial:

    # dpkg -l | grep -i libssl
    ii  libssl1.0.2:i386                                  1.0.2h-1                               i386         Secure Sockets Layer toolkit - shared libraries
    ii  libssl1.1:i386                                    1.1.0e-1                               i386         Secure Sockets Layer toolkit - shared libraries

 


** Primera actualización

    # apt-get openssl upgrade

    1913 actualizados, 0 nuevos se instalarán, 0 para eliminar y
    449 no actualizados.
    Se necesita descargar 1.370 MB de archivos.
    Se utilizarán 411 MB de espacio de disco adicional después de esta
    operación.
    ...

 


*** 2da etapa: actualización de wget y asociados_

    # apt-get update
    Obj:1 http://old.kali.org/kali sana InRelease
    Obj:3 http://old.kali.org/kali moto InRelease
    ...
    Descargados 15,6 MB en 22s (686 kB/s)

    # apt-get upgrade wget
    69 actualizados, 4 nuevos se instalarán, 0 para eliminar y 468 no
    actualizados.
    Se necesita descargar 91,7 MB/98,0 MB de archivos.
    Se utilizarán 11,9 MB de espacio de disco adicional después de esta
    operación.
    ...

 

Ok


* Estado actual, versiones al 2017/09/03

    $ dpkg -l | grep libssl | grep -v "dev"
    ii  libssl1.0.2:i386                                  1.0.2l-2                             i386         Secure Sockets Layer toolkit - shared libraries
    ii  libssl1.1:i386                                    1.1.0f-4                             i386         Secure Sockets Layer toolkit - shared libraries

    $ dpkg -l | grep -i gnutls
    ii  libgnutls-deb0-28:i386                            3.3.20-1                             i386         GNU TLS library - main runtime library
    ii  libgnutls-openssl27:i386                          3.5.15-2                             i386         GNU TLS library - OpenSSL wrapper
    ii  libgnutls30:i386                                  3.5.15-2                             i386         GNU TLS library - main runtime library

 

2.3.1 Acceso a sitio web seguro (https) via “web spider” – Intento 2

 


– Verificando versión y capacidades:

  $ wget --version
  GNU Wget 1.19.1 hecho en linux-gnu.

  -cares +digest -gpgme +https +ipv6 +iri +large-file -metalink +nls
  +ntlm +opie +psl +ssl/gnutls

 


– Verificando versión de GnuTLS usada:

    $ ldd $(which wget) | grep -i tls
    libgnutls.so.30 => /usr/lib/i386-linux-gnu/libgnutls.so.30 (0xb74c9000)

 

Ok

 


– Se ejecuta comando:

  $ /usr/bin/time -p wget -v --spider --timeout=20 wikipedia.org

  >>> URL transformed to HTTPS due to an HSTS policy <<<
  Modo arácnido activado. Comprobar si el fichero remoto existe.
  --2017-09-03 00:26:27--  https://wikipedia.org/

  Resolviendo wikipedia.org (wikipedia.org)...
  2620:0:861:ed1a::1, 208.80.154.224
  Conectando con wikipedia.org (wikipedia.org)[2620:0:861:ed1a::1]:443...
  conectado.
  Petición HTTP enviada, esperando respuesta... 301 Moved Permanently

  Localización: https://www.wikipedia.org/ [siguiendo]
  Modo arácnido activado. Comprobar si el fichero remoto existe.
  --2017-09-03 00:26:28--  https://www.wikipedia.org/

  Resolviendo www.wikipedia.org (www.wikipedia.org)...
  2620:0:861:ed1a::1, 208.80.154.224

  Conectando con www.wikipedia.org
  (www.wikipedia.org)[2620:0:861:ed1a::1]:443... conectado.

  Petición HTTP enviada, esperando respuesta... 200 OK
  Longitud: no especificado [text/html]
  El fichero remoto existe y podría contener todavía más enlaces,
  pero la recursión está desactivada -- no se recupera.


  real 2.20
  user 0.18
  sys 0.02

 

Ok

Toda la salida generada por wget puede redirigirse a un archivo, junto
con la salida de “time” en modo portable (POSIX)

 

  $ /usr/bin/time -p wget -v --spider --timeout=20 \
  wikipedia.org 2>~/wget_log.txt

  $ echo $?
  0

 

2.3.1.1 Ejemplo de salida generada con problemas de red

 


– Se espera realizar conexión en menos de 20 s

  $ /usr/bin/time -p wget --spider --timeout=20 www.pinterest.com

 

Modo arácnido activado. Comprobar si el fichero remoto existe.
–2017-09-03 12:52:42– http://www.pinterest.com/
Resolviendo www.pinterest.com (www.pinterest.com)… falló: Expiró el tiempo de conexión.
wget: no se pudo resolver la dirección del equipo “www.pinterest.com”
Command exited with non-zero status 4

 

  real 20.25
  user 0.00
  sys 0.01

 


– Subiendo tiempo de conexión a:

  $ /usr/bin/time -p wget --spider --timeout=60 pinterest.com

  >>> Localización: https://pinterest.com/ [siguiendo]  Conectando con pinterest.com (pinterest.com)[151.101.0.84]:443... <<<
  conectado.

  Petición HTTP enviada, esperando respuesta... 302 FOUND
  Localización: https://ar.pinterest.com/ [siguiendo]


  Conectando con ar.pinterest.com (ar.pinterest.com)[151.101.0.84]:443...
  conectado.

  Petición HTTP enviada, esperando respuesta... 200 OK
  Longitud: no especificado [text/html]
  El fichero remoto existe y podría contener todavía más enlaces,
  pero la recursión está desactivada -- no se recupera.

  real 43.31
  user 0.20
  sys 0.02

 

Ok

 


-En otra sesión:

  $ /usr/bin/time -p wget --spider --timeout=60 es.wordpress.com
  ...
  Localización: https://es.wordpress.com/ [siguiendo]
  Conectando con es.wordpress.com (es.wordpress.com)[192.0.78.12]:443...
  conectado.

  GnuTLS: The TLS connection was non-properly terminated.
  No se pudo establecer la conexión SSL.
  Command exited with non-zero status 4

  real 61.13
  user 0.12
  sys 0.03

 


>>> Problemas de timeout de red.

2.3.2 Verificando conexión con web spider sitio de búsqueda “duckduckgo.com”

 

  $ /usr/bin/time -p wget --spider --timeout=20 duckduckgo.com

  Modo arácnido activado. Comprobar si el fichero remoto existe.
  --2017-09-03 10:01:54--  http://duckduckgo.com/
  Resolviendo duckduckgo.com (duckduckgo.com)...
  23.21.193.184, 184.72.115.86, 107.21.1.61, ...

 

Conectando con duckduckgo.com (duckduckgo.com)[23.21.193.184]:80…
conectado.

 

  Petición HTTP enviada, esperando respuesta... 301 Moved Permanently

 


Localización: https://duckduckgo.com/ [siguiendo]

  Modo arácnido activado. Comprobar si el fichero remoto existe.
  --2017-09-03 10:01:55--  https://duckduckgo.com/
  Conectando con duckduckgo.com (duckduckgo.com)[23.21.193.184]:443...
  conectado.

  Petición HTTP enviada, esperando respuesta... 200 OK
  Longitud: 5350 (5,2K) [text/html]
  El fichero remoto existe y podría contener todavía más enlaces,
  pero la recursión está desactivada -- no se recupera.

  real 3.28
  user 0.11
  sys 0.02

 

Ok

 

– Importante: duckduckgo.com parece no solicitar HSTS
Esto puede traer errores en los navegadores gráficos (firefox, chromium, etc).

 

2.4 Descarga de sitios web via navegador modo texto

 

– Versión de navegador y bibliotecas asociadas:

  $ lynx -version

  Lynx Version 2.8.9dev.16 (11 Jul 2017)
  libwww-FM 2.14, SSL-MM 1.4.1, GNUTLS 3.5.14, ncurses 6.0.20170715(wide)
  Built on linux-gnu.
  Copyrights held by the Lynx Developers Group,
  the University of Kansas, CERN, and other contributors.
  Distributed under the GNU General Public License (Version 2).
  See
  http://lynx.invisible-island.net/
  And the online help for more information.

  - Versión de GNUTLS:
    $ ldd $(which lynx) | grep -i gnutls
    libgnutls.so.30 => /usr/lib/i386-linux-gnu/libgnutls.so.30 (0xb7290000)

 

Ok

 

  $ time lynx http://en.wikipedia.org -accept_all_cookies -dump
  ...
    Hidden links:
    324. https://en.wikipedia.org/wiki/Main_Page
    325. https://creativecommons.org/licenses/by-sa/3.0/

  real	0m7.973s
  user	0m0.432s
  sys	0m0.088s

 

Ok

 

  $ time lynx http://www.google.com -accept_all_cookies -dump

  19. http://www.google.com.ar/setprefdomain?prefdom=US&sig=__vRCaUh2lyMSuH_gRX8MzgqkaU1Q=
  20. http://www.google.com.ar/intl/es-419/policies/privacy/
  21. http://www.google.com.ar/intl/es-419/policies/terms/

  real	0m3.402s
  user	0m0.084s
  sys	0m0.008s

 

2.4.1 Descarga mediante navegador modo texto de sitio de búsqueda

 

  $ /usr/bin/time -p lynx -dump -accept_all_cookies duckduckgo.com

  #[1]DuckDuckGo (Lite)

                                 DuckDuckGo
               ________________________________________ Search

  References

  1. https://duckduckgo.com/opensearch_lite.xml

  real 5.98
  user 0.34
  sys 0.03

 

Ok

 

3. Verificación de falla en navegadores modo gráfico

 


Datos de navegadores:

– Firefox:

 

  v55.0.2 - 32 bits

  $ firefox --version
  Mozilla Firefox 55.0.2

  Otras opciones importantes:
  -h or --help       Print this message.
  -v or --version    Print Firefox version.

  --jsconsole        Open the Browser Console.
  --jsdebugger       Open the Browser Toolbox.
  --wait-for-jsdebugger Spin event loop until JS debugger connects.
                     Enables debugging (some) application startup code paths.
                     Only has an effect when `--jsdebugger` is also supplied.

 

Desde el directorio tope de instalación de firefox portable (.tar.gz):
Se verifican bibliotecas dinámicas:

  $ find ./ -type f | xargs ldd '{}' > ldd_info_firefox_dist_55.0.2.txt

 

No utiliza GNUTLS, sino SSL3

  /usr/lib/i386-linux-gnu/libssl3.so
  /usr/lib/i386-linux-gnu/libnss3.so

 

Parte de:

  $ dpkg -l | grep -i openssl
  ii  openssl                                           1.1.0f-4                             i386         Secure Sockets Layer toolkit - cryptographic utility

  ii  libssl1.1:i386                                    1.1.0f-4                             i386         Secure Sockets Layer toolkit - shared libraries

  $ dpkg -L libssl1.1
  /usr/lib/i386-linux-gnu
  /usr/lib/i386-linux-gnu/engines-1.1
  /usr/lib/i386-linux-gnu/engines-1.1/capi.so
  /usr/lib/i386-linux-gnu/engines-1.1/padlock.so
  /usr/lib/i386-linux-gnu/libcrypto.so.1.1
  /usr/lib/i386-linux-gnu/libssl.so.1.1

  lrwxrwxrwx  1 root root       39 ago 29  2016 libssl1.0.0 -> /usr/lib/i386-linux-gnu/libssl.so.1.0.2
  -rw-r--r--  1 root root   342824 ago 27 19:39 libssl3.so
  -rw-r--r--  1 root root   634160 ago  6 20:08 libssl.a
  lrwxrwxrwx  1 root root       13 ago  6 20:08 libssl.so -> libssl.so.1.1
  -rw-r--r--  1 root root   435844 jun  4 14:15 libssl.so.1.0.2
  -rw-r--r--  1 root root   446676 ago  6 20:08 libssl.so.1.1

 

– Pasando a versión 55.0.3 (última al 2017/09/03)

    libnss3.so => /usr/lib/i386-linux-gnu/libnss3.so (0xb756d000)
    libssl3.so => /usr/lib/i386-linux-gnu/libssl3.so (0xb74ba000)
    Utiliza las mismas bibliotecas de seguridad.

 

– Chromium

  $ chromium --help

  $ chromium --version
  Chromium 59.0.3071.104 built on Debian 9.0, running on Debian kali-rolling

  $ ldd $(which chromium)
	no es un ejecutable dinámico

  El ser un ejecutable estático dificulta el verificar si está utilizando
  versiones actualizadas de bibliotecas de seguridad a nivel de socket
  (conexión IP).

 


– Se verifican actualizaciones disponibles:

  # apt-get upgrade chromium

 

Se actualizarán los siguientes paquetes:
chromium libavcodec57 libavformat57 openbsd-inetd python-pil
python-pil.imagetk tmux transmission transmission-common transmission-gtk

10 actualizados, 5 nuevos se instalarán, 0 para eliminar y
458 no actualizados.

Se necesita descargar 66,3 MB de archivos.
Se utilizarán 39,2 MB de espacio de disco adicional después de esta operación.

 

  $ chromium --version
  Chromium 60.0.3112.78 built on Debian buster/sid, running on
  Debian kali-rolling

  $ ldd $(which chromium)
	no es un ejecutable dinámico

 

3.1 Prueba de Chromium


* Verificando configuración de proxy:

  chrome://linux-proxy-config/

  When running Chromium under a supported desktop environment, the system
  proxy settings will be used.
  However, either your system is not supported or there was a problem
  launching your system configuration.

  But you can still configure via the command line.
  Please see "man chromium" for more information on flags and environment
  variables.

* De "man chromium"
  --no-proxy-server

  Disables  the proxy server.  Overrides any environment variables
  or settings picked via the options dialog.

- Se reinicia navegador con opción indicada
  $ chromium --no-proxy-server &

* Extensiones para medir performance dentro del navegador

 


– Refs:
https://stackoverflow.com/questions/17059078/page-load-time-in-google-chrome-or-mozilla-firefox#22144676


– Chrome -> Right Click -> Inspect Element -> Network Tab.

Pruebas realizadas:

www.google.com

– La consola pasa a ocupar la mitad de la pantalla.
– Al elegir tab “Network”, se muestra el tiempo de carga de cada elemento del sitio web y no un total fácil de leer.


– Page load time


https://chrome.google.com/webstore/detail/page-load-time/fploionmjgeclbkemipmkogoaohcdbig?hl=en

    Displays page load time in the toolbar
    This extension measures page load time and displays it in the toolbar.
    Web Timing API is used for precise measurement.
  
    Icons are from Human-O2 iconset
    http://schollidesign.deviantart.com/art/Human-O2-Iconset-105344123

    Source code available at
    https://github.com/alex-vv/chrome-load-timer  


– Pruebas realizadas:
mail.google.com -> login

    Load timings (ms)
    Event           When   How long Sum
    Redirect        0      0        0
    DNS             0      0        0
    Connect         0      0        0
    Request         5      224      224
    Response        229    2079     2303
    DOM             258    4528     6831
    Interactive     4384   0        -
    Content loaded  4385   0        -
    Load event      4799   0        6831

    - 4.8 s de carga de página

 

mail.google.com -> vista clásica

    Load timings (ms)
    Event           When   How long Sum
    Redirect        0      0        0
    DNS             0      0        0
    Connect         0      0        0
    Request         40     693      693
    Response        733    395      1088
    DOM             899    39287    40375
    Interactive     1442   0        -
    Content loaded  1443   0        -
    Load event      40187  3        40378

 

– 40.2 s de carga de página


* Prueba de SSL / TLs

https://www.howsmyssl.com/

2017/09/03 11:30

“Your SSL client is Probably Okay.
Check out the sections below for information about the SSL/TLS client
you used to render this page.
Yeah, we really mean “TLS”, not “SSL”. ”

– Your client is using TLS 1.2
– Ephemeral Key Support
– Session Ticket Support
– Your TLS client does not attempt to compress the settings that encrypt your connection, avoiding information leaks from the CRIME attack.
– Your client is not vulnerable to the BEAST attack because it’s using a TLS protocol newer than TLS 1.0. The BEAST attack is only possible against clients using TLS 1.0 or earlier using Cipher-Block Chaining cipher suites that do not implement the 1/n-1 record splitting mitigation.

– Given Cipher Suites
The cipher suites your client said it supports, in the order it sent them,
are:

  TLS_GREASE_IS_THE_WORD_5A
  TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
  TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
  TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
  TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
  TLS_RSA_WITH_AES_128_GCM_SHA256
  TLS_RSA_WITH_AES_256_GCM_SHA384
  TLS_RSA_WITH_AES_128_CBC_SHA
  TLS_RSA_WITH_AES_256_CBC_SHA
  TLS_RSA_WITH_3DES_EDE_CBC_SHA

 

Ok

3.2 Prueba de Firefox


* Extensiones para medir velocidad de operación / performance


– Refs
https://stackoverflow.com/questions/17059078/page-load-time-in-google-chrome-or-mozilla-firefox#22144676


– Menu -> Web Developer -> Network


– Pruebas realizadas:

    - Sitio "add-ons" de firefox:
      Respuestas en caché: 0
      Pedidos totales: 15
      Tamaño: 59,61 KB
      Tamaño transferido: 59,61 KB
      Tiempo: 1,63 segundos

    - stackoverflow.com
      94 pedidos
      2,25 MB / 684,32 KB transferido
      Finalizado: 2,65 min
      DOMContentLoaded: 30,26 s
      load: 49,00 s

    - Importante: el medidor de rendimiento trabaja desde la consola
      de Firefox, lo cuál impone una carga importante al CPU / memoria.
      No usar en sistemas de bajos recursos o del estilo "good enough
      computing"

- app.telemetry Page Speed Monitor:
  - Does not require you to open the web console first.
    It'll just show the load time in ms in the status bar
    (it'll even show details when you click it).
    https://addons.mozilla.org/en-US/firefox/addon/apptelemetry/

 


– Pruebas realizadas:

    - stackoverflow.com

      Page fully loaded after 16873 ms.
      Info              Offset  Duration
      Redirect          0       0
      App cache         12      0
      DNS lookup        12      0
      TCP connection    12      0
      TCP request       12      4
      TCP response      16      545
      Processing        211     16661
      onload event      16873   11

 


– mail.google.com

      Page fully loaded after 6544 ms.
      Info              Offset  Duration
      Redirect          0       0
      App cache         2885    0
      DNS lookup        2885    0
      TCP connection    2885    0
      TCP request       2893    714
      TCP response      3607    974
      Processing        3655    2889
      onload event      6544    6

 


– duckduckgo.com

      Page fully loaded after 7815 ms.
      Info               Offset  Duration
      Redirect           0 	0
      App cache          18      1
      DNS lookup         19      93
      TCP connection     112 	0
      TCP request        1281 	399
      TCP response       1680 	1
      Processing         1694 	6121
      onload event       7815 	3

 


– pinterest.com

>>> Caso de 3 redirecciones antes de conexión con ar.pinterest.com
Ver detalle en 2.3.1.1 con “wget”.

 

      Page fully loaded after 527487 ms.
      Info 	        Offset 	Duration
      Redirect          0       0
      App cache         31812   4
      DNS lookup        31816   8008
      TCP connection    39824   477917
      TCP request       517741  81
      TCP response      517822  950
      Processing        518106  9380
      onload event      527487  202

 


– stackoverflow.com

      Page fully loaded after 56473 ms.
      Info             Offset 	Duration
      Redirect         0 	0
      App cache        10181 	1
      DNS lookup       10182 	26
      TCP connection   10208 	0
      TCP request      19269 	186
      TCP response     19455 	851
      Processing       19478 	36995
      onload event     56473 	14

 

Ok


* Prueba de SSL / TLs

https://www.howsmyssl.com/

 

2017/09/03 10:00

– Your client is using TLS 1.2
– Ephemeral Key Support
– Session Ticket Support
– Your TLS client does not attempt to compress the settings that encrypt
your connection, avoiding information leaks from the CRIME attack.

– Your client is not vulnerable to the BEAST attack because it’s using a TLS protocol newer than TLS 1.0. The BEAST attack is only possible against clients using TLS 1.0 or earlier using Cipher-Block Chaining cipher suites that do not implement the 1/n-1 record splitting mitigation.

– Your client doesn’t use any cipher suites that are known to be insecure.

– The cipher suites your client said it supports, in the order it sent them,
are:

 

    TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
    TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
    TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
    TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
    TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
    TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
    TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
    TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
    TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
    TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
    TLS_DHE_RSA_WITH_AES_128_CBC_SHA
    TLS_DHE_RSA_WITH_AES_256_CBC_SHA
    TLS_RSA_WITH_AES_128_CBC_SHA
    TLS_RSA_WITH_AES_256_CBC_SHA
    TLS_RSA_WITH_3DES_EDE_CBC_SHA

 

Ok


Conclusiones

Luego de todas las pruebas realizadas, se observa que en general Chromium v59.0 trabaja mejor con los recursos de hardware disponible y realiza handshake TLS para HTTPS más rápido sobre conexiones lentas o inestables que Firefox 55.0.3.


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *