Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CQPToolkit — QKD 장치를 제어하고 대칭 키를 관리하기 위한 프레임워크입니다. [프로젝트 페이지](https://qcomms.gitlab.io/cqptoolkit/)를 참조하세요. | Kitploit
도구/GitLabGitLab/qcomms/cqptoolkit
Embedded Systems SecurityEncryption/Decryption ToolsNetwork SecurityCryptographyHardware Security
GitLabqcomms/cqptoolkit

CQPToolkit

QKD 장치를 제어하고 대칭 키를 관리하기 위한 프레임워크입니다. [프로젝트 페이지](https://qcomms.gitlab.io/cqptoolkit/)를 참조하세요.

저장소 보기
61124년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

CQP Tool kit

이 시스템은 QKD를 보안 시스템에 통합하기 위한 다양한 구성 요소를 제공합니다. C++11로 작성되었지만 [GRPC][] 인터페이스를 사용하므로 다양한 언어와 통합될 수 있습니다.

Quick Start

이 소프트웨어를 네이티브로 실행하려면 다음 중 하나를 수행하세요:

  • Ubuntu deb packages를 다운로드하여 설치하거나
  • 서브모듈이 업데이트되었는지 확인한 후 소스를 클론하고 로컬에서 빌드하세요

서브모듈을 포함하여 소스를 클론하려면:```bash git clone --recurse-submodules [email protected]:QComms/cqptoolkit.git

> `--recurse-submodules`를 사용하지 않고 클론한 경우, 소스 폴더 안에서 `git submodule update --init`을 실행하여 서브모듈을 업데이트할 수 있습니다.

프로젝트를 컴파일하는 데 필요한 종속성 목록은 다음과 같습니다 (자세한 설치 방법은 아래에서 계속 읽어주세요):```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

빠른 테스트

빌드 폴더에서 로컬 컴퓨터에서 각각 QKD 장치가 있는 두 사이트를 실행하려면 먼저 사이트 에이전트를 시작하고 Alice "더미 드라이버"를 연결하여 사이트 "A"를 시작합니다. (바이너리가 설치된 경우 명령어에서 경로를 생략하세요.)```bash ./src/Tools/SiteAgentRunner/SiteAgentRunner -p 8000 & ./src/Drivers/DummyQKDDriver/DummyQKDDriver -r localhost:8000 -a

사전 인증 요청 전송
`_tgt`를 사용하여 responder에서 사용하는 TGT 프로토콜 값을 지정합니다
티켓을 가져옵니다.
**krbtgt 비밀번호**
위 명령의 출력을 보면, `ntds`와 다른 사용자의 TGT 티켓(예: krbtgt 사용자)을 덤프하는 데 성공했음을 알 수 있습니다.```bash
./src/Tools/SiteAgentRunner/SiteAgentRunner -p 8001 &
./src/Drivers/DummyQKDDriver/DummyQKDDriver -r localhost:8001 -b

이 시스템은 관리 시스템에 의해 제어되도록 설계되어 있으므로, 명령어 SiteAgentCtl을 사용하여 연결을 설정해야 하며, 즉시 키를 생성하지 않습니다.

  • 먼저, 다음 명령어로 사용 가능한 장치 목록을 확인할 수 있습니다:```bash ./src/Tools/SiteAgentCtl/SiteAgentCtl -d -c localhost:8000
이는 기본적으로 *SiteAgentRunner*와 *DummyQKDDriver*가 구성 JSON 문자열 파일 인수를 지정하지 않고 실행된 경우 이와 유사한 결과를 생성해야 합니다:```json
{
 "url": "<hostname>:8000",
 "devices": [
  {
   "config": {
    "id": "dummyqkd__0__16_alice",
    "kind": "dummyqkd"
   },
   "controlAddress": "<hostname>:34219"
  }
 ]
}

그리고 포트 8001은 다음과 유사한 결과를 생성해야 합니다.```json { "url": ":8001", "devices": [ { "config": { "id": "dummyqkd__0__16_bob", "side": "Bob", "kind": "dummyqkd" }, "controlAddress": ":38367" } ] }

- 이제, 호출을 통해 연결을 설정할 수 있습니다:```bash
./src/Tools/SiteAgentCtl/SiteAgentCtl -c localhost:8000 -j localhost:8001

이것은 한 사이트에서 다음 사이트로의 단일 홉을 생성합니다. -a 옵션에 경로를 지정하는 JSON 문자열을 사용하여 더 복잡한 경로를 정의할 수도 있습니다.

몇 초 후에 키를 요청하여 테스트할 수 있는 키가 생성되어야 합니다.

참고: -k 매개변수는 두 번째 사이트의 세부 정보에 표시된 URL이어야 하며, "localhost:8001"이 아닙니다.```bash ./src/Tools/SiteAgentCtl/SiteAgentCtl -c localhost:8000 -k hostname:8001

링크는 unjoin 명령어로 중지할 수 있습니다:```bash
./src/Tools/SiteAgentCtl/SiteAgentCtl -c localhost:8000 -u localhost:8001

Not that key is still available even though generation has stopped, as long as the site agents are running. It can be requested with the same key request command above.

Encryption example

With the launched site agents and drivers on the same local computer as described above and after having started the link for key exchange, one can also test the encryption features.

  • First, start one side of the "VPN" on the bob which will listen on port 9010 and connect to Bob's key store:``` ./src/Tools/QTunnelServer/QTunnelServer -p 9010 --keystore-url=hostname:8001
- 이제 VPN의 Alice 측을 시작하여 생성할 터널을 정의합니다. 두 개의 포트가 열리며, 각 측에 대해 9000과 9001 포트가 열립니다. 이 포트로 들어오는 모든 데이터는 암호화되어 상대방 측으로 전송된 후 복호화되어
다른 포트에서 출력됩니다.```
./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

tcp 통신을 사용하는 모든 것은 이 포트를 사용할 수 있습니다, netcat은 포트를 통해 데이터를 전송하는 간단한 프로그램입니다, 한쪽에서 시작하세요:``` nc localhost 9000

그리고 다른 하나는:```
nc localhost 9001

한쪽에 입력된 내용은 엔터를 누르면 다른 쪽에 나타납니다. 9000 및 9001 포트를 통과하는 패킷을 Wireshark와 같은 도구로 검사하면 데이터가 암호화되고 사용된 키 ID가 표시됩니다.

다른 형태의 연결도 tcpserv 대신 생성할 수 있습니다:

| 예시 | 설명 | | ============================= | ===================================================== | | tcpserv://0.0.0.0:1234 | 포트 1234에 수신 포트가 생성됩니다 | | tcp://127.0.01:1234 | localhost의 tcp 포트 1234로 연결이 이루어집니다 | | udp://0.0.0.0:1234 | 이 포트에서 UDP 패킷이 전송됩니다 | | tun://192.168.101.1/?netmask=255.255.255.0 | IP 주소로 IP 레벨 터널 장치가 생성됩니다 | | tap://192.168.101.1/?netmask=255.255.255.0 | 이더넷 레벨 탭 장치가 생성됩니다 | | eth://eth0/?level=tcp | Raw 소켓을 생성합니다. 레벨은 tcp, ip 또는 eth가 될 수 있습니다. |

진행 상황

계획 및 완료된 기능

  • 장치 드라이버
    • IDQ Clavis 2 호환 드라이버
      • 장치 피드백
    • IDQ Clavis 3 호환 드라이버
    • 브리스톨 대학교 휴대용 자유 공간 장치
    • 브리스톨 대학교 온칩 장치
  • 후처리
    • 비동기 시스템을 위한 정렬
    • 동기 시스템을 위한 시프팅
    • 오류 정정
    • 프라이버시 증폭
  • 다중 사이트 키 관리 (사이트 에이전트)
    • QKD 장치를 제어하여 키 교환
    • 표준 인터페이스에 사전 공유 키 제공: cqp::remote::IKey
      • 키는 특정 사용자만 사용하도록 제한 가능
    • 다른 사이트의 키를 XOR하여 간접 키 생성
    • 설정 파일, 명령줄 인수 또는 네트워크 인터페이스를 통한 구성
    • [Zeroconf][]를 사용한 자동 사이트 에이전트 검색
    • 신뢰된 사이트 간 링크를 통한 키 해결 (이슈 #8)
  • 사이트 에이전트의 네트워크 관리
    • 인터페이스를 통해 사이트 제어 가능
    • 규칙에 따라 사이트 간 키를 생성하기 위한 사이트 에이전트의 정적/동적 제어
  • 암호화된 터널 컨트롤러 (stunnel과 유사)
    • 공유 키를 얻기 위해 IKey 인터페이스 사용
    • 다음을 사용하여 암호화 터널 설정
      • TCP/UDP 소켓
      • TUN/TAP 장치 (일명 VPN)
      • 전용 물리적 인터페이스
    • 설정 파일, 명령줄 인수 또는 네트워크 인터페이스를 통한 구성
    • [Zeroconf][]를 사용한 자동 사이트 에이전트 및 터널 컨트롤러 검색
  • 여러 플랫폼
    • 리눅스
    • 윈도우 (이슈 #2 참조)

이 프로젝트가 과학 연구 작업과 대규모 프로젝트 모두에 유용하게 사용될 수 있기를 바랍니다. 프로젝트에 대한 자세한 내용은 이 논문에서 확인할 수 있습니다.

이 프로젝트에 기여하려면 기여 파일을 참조하십시오.

설치

이 시스템은 현재 리눅스에서 작동합니다 - 윈도우는 향후 계획입니다. 현재 가장 쉬운 방법은 소스에서 빌드하는 것입니다

Docker 이미지

[gitlab registry][]에 실행 준비가 된 Docker 이미지가 있습니다. sudo docker run -it --rm registry.gitlab.com/qcomms/cqptoolkit/runtime로 실행할 수 있습니다. 끝에 명령을 추가하여 직접 실행할 수 있습니다. 예를 들어 QKDSim으로 QKD 키 생성 시뮬레이션을 실행하려면:```bash sudo docker run -it --rm registry.gitlab.com/qcomms/cqptoolkit/runtime AlignmentTests

### Ubuntu 18.04+

Gitlab에서 바이너리 패키지를 설치할 수 있습니다. zip 파일을 추출하고 `dpkg`로 도구를 설치하면 종속성 누락에 대한 오류가 발생하지만 걱정하지 마세요. 두 번째 줄이 해결해 줍니다.```bash
sudo dpkg -i setup/*.deb build/gcc/CQP-*-Linux-{Algorithms,Networking,CQPToolkit,KeyManagement,QKDInterfaces,CQPUI,Simulate,Tools,UI,Drivers,IDQDevices}.deb
sudo apt install -fy

개발 파일(헤더 및 정적 라이브러리)을 설치하려면 대신 sudo dpkg -i build/gcc/CQP-*-Linux-*-dev.deb ; sudo apt install -fy를 실행하십시오.

소스에서

물론 시스템 라이브러리 및 종속성 버전을 변경하고 싶지 않다면, 모든 종속성이 이미 설치된 Docker 컨테이너 내에서 빌드할 수 있습니다. 다음 명령으로:```bash sudo docker run -it registry.gitlab.com/qcomms/cqptoolkit/buildenv

그렇지 않으면, 소스에서 빌드하려면 `setup/setupbuild.sh`에 나열된 종속성을 설치해야 하며, 현재 Ubuntu와 Arch Linux에서 작동합니다.
도구 다운로드