Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CQPToolkit — Framework para controlar dispositivos QKD y gestionar claves simétricas. Vea la [página del proyecto aquí](https://qcomms.gitlab.io/cqptoolkit/) | Kitploit
Herramientas/GitLabGitLab/qcomms/cqptoolkit
Seguridad de Sistemas EmbebidosHerramientas de Cifrado/DescifradoSeguridad de RedesCriptografíaSeguridad de Hardware
GitLabqcomms/cqptoolkit

CQPToolkit

Framework para controlar dispositivos QKD y gestionar claves simétricas. Vea la [página del proyecto aquí](https://qcomms.gitlab.io/cqptoolkit/)

Ver Repositorio
6112hace 4 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Sitio web

CQP Tool kit

El sistema proporciona varios componentes para integrar QKD en un sistema de seguridad. Está escrito en C++11 pero utiliza interfaces [GRPC][] por lo que puede integrarse con muchos lenguajes diferentes.

Inicio rápido

Para ejecutar el software de forma nativa, ya sea:

  • descargar e instalar los paquetes deb de Ubuntu o
  • clonar el código fuente, asegurándose de que los submódulos estén actualizados y compilar localmente

Para clonar el código fuente incluyendo los submódulos:```bash git clone --recurse-submodules [email protected]:QComms/cqptoolkit.git

> Si clonaste sin usar `--recurse-submodules`, los submódulos pueden actualizarse ejecutando `git submodule update --init` desde dentro de la carpeta fuente.

Aquí tienes una lista de dependencias que necesitas para compilar el proyecto (lee más abajo para más detalles sobre la instalación):```bash
sudo apt install pkg-config ca-certificates file build-essential cmake ninja-build libusb-1.0-0-dev libcurl4-openssl-dev \
	libcrypto++-dev libcap-dev uuid-dev libssl-dev libsqlite3-dev libprotobuf-dev libgrpc++-dev \
	libssl-dev protobuf-compiler protobuf-compiler-grpc checkinstall
mkdir build-cqptoolkit
cd build-cqptoolkit
cmake -G Ninja ../cqptoolkit && ninja

Prueba rápida

Desde la carpeta de compilación, para ejecutar dos sitios (en la misma computadora local) cada uno con un dispositivo QKD, primero inicie el sitio "A" iniciando un agente de sitio y conectando un controlador simulado de Alice a él: (Si los binarios han sido instalados, omita las rutas a los comandos de las instrucciones.)```bash ./src/Tools/SiteAgentRunner/SiteAgentRunner -p 8000 & ./src/Drivers/DummyQKDDriver/DummyQKDDriver -r localhost:8000 -a

INPUT:```bash
./src/Tools/SiteAgentRunner/SiteAgentRunner -p 8001 &
./src/Drivers/DummyQKDDriver/DummyQKDDriver -r localhost:8001 -b

Esto no comenzará a producir clave inmediatamente, ya que este sistema está diseñado para ser controlado por un sistema de gestión; la conexión debe establecerse con el comando SiteAgentCtl.

  • Primero, puede verificar la lista de dispositivos disponibles con:```bash ./src/Tools/SiteAgentCtl/SiteAgentCtl -d -c localhost:8000
lo que debería producir algo similar a esto por defecto, si *SiteAgentRunner* y *DummyQKDDriver* se lanzaran sin especificar un argumento de archivo de cadena JSON de configuración:```json
{
 "url": "<hostname>:8000",
 "devices": [
  {
   "config": {
    "id": "dummyqkd__0__16_alice",
    "kind": "dummyqkd"
   },
   "controlAddress": "<hostname>:34219"
  }
 ]
}

y el puerto 8001 debería producir algo similar a```json { "url": ":8001", "devices": [ { "config": { "id": "dummyqkd__0__16_bob", "side": "Bob", "kind": "dummyqkd" }, "controlAddress": ":38367" } ] }

- Ahora, la conexión se puede realizar llamando a:```bash
./src/Tools/SiteAgentCtl/SiteAgentCtl -c localhost:8000 -j localhost:8001

Esto creará un único salto de un sitio al siguiente; de nuevo, se pueden definir rutas más complejas usando la opción -a con una cadena JSON que especifique la ruta.

Después de unos segundos, debería haber una clave disponible que se puede probar solicitando una clave.

NOTA: El parámetro -k debe ser la URL que se muestra en los detalles del segundo sitio, no "localhost:8001"```bash ./src/Tools/SiteAgentCtl/SiteAgentCtl -c localhost:8000 -k hostname:8001

El enlace puede detenerse con el comando unjoin:```bash
./src/Tools/SiteAgentCtl/SiteAgentCtl -c localhost:8000 -u localhost:8001

La clave aún está disponible aunque la generación se haya detenido, siempre que los agentes del sitio estén en ejecución. Se puede solicitar con el mismo comando de solicitud de clave anterior.

Ejemplo de cifrado

  • Primero, inicie un lado de la "VPN" en Bob que escuchará en el puerto 9010 y se conectará al almacén de claves de Bob:``` ./src/Tools/QTunnelServer/QTunnelServer -p 9010 --keystore-url=hostname:8001
- Ahora inicia el lado de Alice de la VPN, definiendo el túnel a crear. Se abrirán dos puertos, uno para cada lado en 9000 y 9001, cualquier cosa que entre por estos puertos será encriptada, transferida al otro lado, descifrada y producida en el otro puerto.```
./src/Tools/QTunnelServer/QTunnelServer --keystore-url=`hostname`:8000 --remote=localhost:9010 --start-node=tcpsrv://0.0.0.0:9000 --end-node=tcpsrv://0.0.0.0:9001

Cualquier cosa que use comunicaciones tcp puede entonces usar este puerto, netcat es un programa simple que enviará datos a través de los puertos, inicie uno en un lado:``` nc localhost 9000

y uno en el otro:```
nc localhost 9001

Cualquier texto escrito en un lado aparecerá en el otro al presionar Enter. Inspeccionar los paquetes que viajan a través de los puertos 9000 y 9001 con una herramienta como Wireshark mostrará los datos siendo cifrados y el ID de clave utilizado.

Se pueden crear otras formas de conexión, en lugar de tcpserv:

| Ejemplo | Descripción | | ============================= | ===================================================== | | tcpserv://0.0.0.0:1234 | Se crea un puerto de escucha en el puerto 1234 | | tcp://127.0.01:1234 | Se realiza una conexión al puerto tcp 1234 en localhost | | udp://0.0.0.0:1234 | Los paquetes UDP se envían desde este puerto | | tun://192.168.101.1/?netmask=255.255.255.0 | Se crea un dispositivo de túnel a nivel IP con una dirección IP | | tap://192.168.101.1/?netmask=255.255.255.0 | Se crea un dispositivo de tap a nivel Ethernet | | eth://eth0/?level=tcp | Crear un socket raw, el nivel puede ser tcp, ip o eth. |

Progreso

Características planificadas y completadas

Descargar herramienta