Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CQPToolkit — QKDデバイスを制御し、対称鍵を管理するためのフレームワーク。 [プロジェクトページはこちら](https://qcomms.gitlab.io/cqptoolkit/) | Kitploit
ツール/GitLabGitLab/qcomms/cqptoolkit
組み込みシステムセキュリティ暗号化/復号化ツールネットワークセキュリティ暗号化ハードウェアセキュリティ
GitLabqcomms/cqptoolkit

CQPToolkit

QKDデバイスを制御し、対称鍵を管理するためのフレームワーク。 [プロジェクトページはこちら](https://qcomms.gitlab.io/cqptoolkit/)

リポジトリを見る
61124年前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ウェブサイト

CQP Tool kit

このシステムは、QKDをセキュリティシステムに統合するための様々なコンポーネントを提供します。C++11で記述されていますが、[GRPC][]インターフェースを使用しているため、多くの異なる言語と統合できます。

クイックスタート

ソフトウェアをネイティブで実行するには、以下のいずれかの方法を実行します:

  • Ubuntu debパッケージをダウンロードしてインストールする
  • サブモジュールが更新されていることを確認しながらソースをクローンし、ローカルでビルドする

サブモジュールを含むソースをクローンするには:```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

クイックテスト

ビルドフォルダから、2つのサイト(同一ローカルコンピュータ上)をそれぞれQKDデバイスで実行するには、まず、サイトエージェントを起動し、それにAliceの「ダミードライバ」を接続してサイト「A」を起動します: (バイナリがインストールされている場合は、指示にあるコマンドへのパスを省略してください。)```bash ./src/Tools/SiteAgentRunner/SiteAgentRunner -p 8000 & ./src/Drivers/DummyQKDDriver/DummyQKDDriver -r localhost:8000 -a

以下のパッケージが必要です:

- [Python3](https://www.python.org/downloads/release/python-397/) - Python インタプリタ、YAML と Jinja2 の組み込みサポート
- [rsync](https://rsync.samba.org/) - リモートのファイルとフォルダの同期
- [aria2c](https://aria2.github.io/) - 高速ダウンロードユーティリティ
- [fzf](https://github.com/junegunn/fzf) - コマンドラインのあいまいファインダー
- [md5sum](http://www.microbrew.org/tools/md5sum/)

これらは任意ですが推奨します:

- [rofi](https://github.com/davatorium/rofi) - アプリケーションランチャー、ウィンドウスイッチャー、および dmenu 代替
- [tmux](https://github.com/tmux/tmux) - ターミナルマルチプレクサ
- [megatools](https://megatools.megous.com/) - Mega 向けコマンドラインクライアントアプリケーション
- [gallery-dl](https://github.com/mikf/gallery-dl) - イメージギャラリーやコレクションをダウンロードするためのコマンドラインプログラム

すべての機能を利用するには、上記のすべてのパッケージが必要です。```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

これにより、あるサイトから次のサイトへのシングルホップが作成されます。より複雑なルートは、パスを指定したJSON文字列を-aオプションで使用することで定義できます。

数秒後、キーが利用可能になるはずです。これはキーを要求してテストできます。

注: -k パラメータは、2番目のサイトの詳細に表示される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

なお、鍵の生成が停止しても、サイトエージェントが実行中である限り、その鍵は引き続き利用可能です。 同じ鍵要求コマンドを使用して要求することができます。

暗号化の例

  • まず、bob側で「VPN」の一端を起動します。これによりポート9010で待機し、Bobのキーストアに接続します。``` ./src/Tools/QTunnelServer/QTunnelServer -p 9010 --keystore-url=hostname:8001
では、VPNのAlice側を起動し、作成するトンネルを定義します。2つのポートが開かれ、各側に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の代わりに、他の形式の接続を作成できます:

| Example | 説明 | | ============================= | ===================================================== | | tcpserv://0.0.0.0:1234 | ポート1234に待受ポートが作成されます | | tcp://127.0.01:1234 | ローカルホストの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 | 生のソケットを作成します。レベルはtcp、ip、ethのいずれかです。 |

進捗

計画済みおよび完了済みの機能

  • Device Drivers
    • Compatibility drivers for IDQ Clavis 2
      • Device feedback
    • Compatibility drivers for IDQ Clavis 3
    • University of Bristol handheld free space device
    • University of Bristol on chip device
  • Post processing
    • Alignment for asynchronous systems
    • Sifting for synchronous systems
    • Error correction
    • Privacy amplification
  • Multi-site key management (Site Agents)
    • Control QKD devices to exchange key
    • Provide pre-shared key on a standard Interface: cqp::remote::IKey
      • Keys can be restricted for use by specific users
    • Creation of indirect key based on XOR'ing key from other sites
    • Configuration through config file, command line arguments or network interface.
    • Automatic Site Agent discovery using [Zeroconf][]
    • Resolve keys across links between trusted sites (issue #8)
  • Network Management of site agents
    • Sites can be controlled through interfaces
    • Static/Dynamic control of site agents to create keys between sites based on rules
  • Encrypted tunnel controller (like stunnel)
    • Uses the IKey interface to get shared keys.
    • Setup of encryption tunnels using
      • TCP/UDP socket
      • TUN/TAP device (aka VPN)
      • Dedicated physical interface
    • Configuration through config file, command line arguments or network interface.
    • Automatic Site Agent and Tunnel Controller discovery using [Zeroconf][]
  • Multiple Platforms
    • Linux
    • Windows (see issue #2)

このプロジェクトが科学研究と大規模プロジェクトの両方に有用であることが期待されています。プロジェクトの詳細はこの論文をご覧ください。

このプロジェクトに貢献するには、Contributionファイルを参照してください。

インストール

現在のシステムはLinux上で動作します。Windowsは将来対応予定です。現時点ではソースからビルドするのが最も簡単です

Dockerイメージ

すぐに実行可能なDockerイメージが[gitlab registry][]にあります。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](https://gitlab.com/QComms/cqptoolkit/-/jobs/artifacts/master/download?job=package%3Adeb) からバイナリパッケージをインストールできます。zip ファイルを展開し、`dpkg` でツールをインストールします。依存関係が不足していると警告されますが、心配はいりません。2行目で修正されます。```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 を実行してください。

ソースから

ツールをダウンロード