Mini-tor: una pequeña herramienta que implementa Tor usando Microsoft CNG/CryptoAPI

Mini-tor es una utilidad de prueba de concepto para acceder a contenidos de Internet y a contenidos ocultos (.onion) a través de los routers tor. Esta herramienta está optimizada para ser lo más pequeña posible (actualmente ~45kb, comprimido con kkrunchy ~19kb), que se logra mediante el uso de Microsoft CryptoAPI/GNC en lugar de embeber OpenSSL.

Uso

Accediendo a Internet a través de mini-tor:
> mini-tor.exe "http://torstatus.blutmagie.de/router_detail.php?FP=847b1f850344d7876491a54892f904934e4eb85d"

Accediendo a Servicios Ocultos a través de mini-tor:
> mini-tor.exe "http://duskgytldkxiuqc6.onion/fedpapers/federndx.htm"

Características

- Mini-tor es compatible con handshakes TAP y NTOR:
      . TAP utiliza DH de 1024 bits.
      . NTOR es un handshake más nuevo y utiliza curve25519.
- Mini-tor puede utilizar CryptoAPI o el más reciente API GNC.
      . es configurable a través de mini/crypto/COMMON.H.
      . ten en cuenta que curve25519 es soportado por GNC sólo en win10+.
    - se incluye una implementación de curve25519-donna. Se puede activar mediante el establecimiento de MINI_CRYPTO_CURVE25519_NAMESPACE a ext para ponerlo en marcha en sistemas antiguos.
      . ten cuenta que GNC::dh<> funcionará sólo en win8.1+, debido al uso de BCRYPT_KDF_RAW_SECRET para ir a buscar secreto compartido.
   - se puede utilizar CAPI::dh<> configurando MINI_CRYPTO_DH_NAMESPACE a CAPI.
 . todo lo demás debe funcionar correctamente en Win7+ (versiones anteriores no son compatibles).
- Mini-tor crea conexiones TLS a través de SCHANNEL (mira en mini/net/ssl_socket.cpp & mini/net/detail/ssl_context.cpp).
- Mini-tor no utiliza CRT o STL por defecto, todo se realiza a partir de cero.
- la versión anterior de mini-tor basada puramente en CryptoAPI se puede encontrar en el git con la etiqueta ms_crypto_api (sin mantenimiento).

Compilación

Se puede compilar mini-tor con Visual Studio 2017, el archivo de solución está incluido. No se requieren otras dependencias.

Proyecto: https://github.com/wbenny/mini-tor

4 comentarios :

  1. Os maneja bien SSL? Porque por HTTP sí, pero si hago una consulta HTTPS la aplicación se queda esperando a que llueva café.

    ResponderEliminar
  2. No me maneja bien las conexiones por SSL. Por http sí que funciona, pero al manejar https se queda a la espera de yo qué sé. ¿A alguno más le pasa?

    ###PASTE
    C:\Users\superman\Desktop\mini-tor\bin\x86\Release>mini-tor.exe "http://check.torproject.org"
    [HTML REMOVED]301 Moved Permanently[HTML REMOVED]
    Moved Permanently[HTML REMOVED]
    The document has moved [HTML REMOVED]here[HTML REMOVED].[HTML REMOVED]Apache Server at check.torproject.org Port 80[HTML REMOVED]

    C:\Users\superman\Desktop\mini-tor\bin\x86\Release>mini-tor.exe "https://check.torproject.org"

    ### FIN PASTE

    ResponderEliminar
    Respuestas
    1. Awesome! Thanks a lot, wbenny!
      It's running fine and very fast now.
      Twoje zdrowie!

      Eliminar