
Сканировать кодовые базы на наличие криптографии, уязвимой к квантовым атакам. Обнаруживать RSA, ECDSA, Ed25519, ECDH до Q-Day. Вывод CycloneDX CBOM + SARIF.
Сканируйте кодовые базы на предмет квантово-уязвимой криптографии. Получите чёткое представление о том, что необходимо перенести до Q-Day.

pqaudit обнаруживает использование RSA, ECDSA, Ed25519, ECDH, DH и других алгоритмов, взламываемых алгоритмом Шора. Он также определяет уже перенесённые PQC-реализации (ML-KEM, ML-DSA, SLH-DSA), чтобы вы могли отслеживать прогресс миграции. Вывод доступен в виде читаемого текста, JSON, CycloneDX CBOM, SARIF для GitHub Code Scanning или самодостаточного HTML-отчёта.
31 марта 2026 года Google опубликовала исследование, показывающее, что для взлома ECDSA-256 требуется — примерно 1 200 логических кубитов и менее 500 000 физических кубитов. CNSA 2.0 от АНБ требует внедрения PQC для новых систем национальной безопасности к 2027 году. Окно для миграции открыто, но скоро закроется.
npx pqaudit ./my-project
Или глобальная установка:
npm install -g pqaudit
pqaudit ./my-project
# Сканирование текущего каталога, вывод в читаемом формате
pqaudit .
# Показать только критические и высокие результаты
pqaudit ./src --severity high
# Создание CycloneDX CBOM
pqaudit . --format cbom --output cbom.json
# Создание SARIF для GitHub Code Scanning
pqaudit . --format sarif --output results.sarif
# CI-режим — код завершения 1, если есть критические/высокие результаты
pqaudit . --ci
# Показать все результаты, включая совпадения комментариев с низкой достоверностью
pqaudit . --min-confidence 0
# Показывать каждое вхождение вместо свёртки по файлам
pqaudit . --no-dedupe
# Пропустить сканирование зависимостей
pqaudit . --no-deps
# Использовать собственные правила
pqaudit . --rules ./my-rules.yaml
# Сканировать конечные точки TLS/SSH на квантово-уязвимую криптографию
pqaudit . --scan-endpoint api.example.com:443 --scan-endpoint git.example.com:22
# Сканировать только конечные точки (без кода)
pqaudit --scan-endpoint example.com:443 --scan-endpoint example.com:22
| Флаг | Описание | По умолчанию |
|---|---|---|
-f, --format <format> | Формат вывода: text, json, cbom, sarif, html | text |
-o, --output <file> | Запись вывода в файл | stdout |
-s, --severity <level> | Минимальный уровень серьёзности: critical, high, medium, low, safe | safe |
--min-confidence <0-100> | Фильтрация результатов ниже этого порога достоверности | 50 |
--no-dedupe | Показывать все вхождения вместо свёртки по файлам | дедупликация включена |
--no-deps | Пропустить сканирование зависимостей | сканировать зависимости |
--include <patterns...> | Glob-шаблоны для включения | все исходные файлы |
--exclude <patterns...> | Дополнительные glob-шаблоны для исключения | node_modules, dist и т.д. |
--rules <path> | Путь к файлу пользовательских правил YAML | встроенные правила |
--scan-endpoint <endpoints...> | Конечные точки TLS/SSH для проверки (host:port) | нет |
--network-timeout <ms> | Тайм-аут сетевого соединения | 5000 |
--ci | Код завершения 1, если есть критические или высокие результаты | выкл |
pqaudit — Post-Quantum Cryptography Readiness Scanner
Scanned: ./my-project
NOT PQC READY — Quantum-vulnerable cryptography detected
Files scanned: 65 | Findings: 12
Critical: 7 High: 2 Medium: 1 Low: 0 Safe: 2
--- CRITICAL (7) ---
[!!] Ed25519 — Ed25519 signatures — vulnerable to Shor's algorithm (14 occurrences)
src/crypto/signing.ts:14
> import { sign, verify } from "@noble/ed25519";
Fix: ML-DSA-65 (FIPS 204) or hybrid Ed25519+ML-DSA-65
Confidence: 98% | Effort: moderate | Via: ast
[!!] RSA — RSA signature — vulnerable to quantum factoring (3 occurrences)
src/auth/jwt.ts:42
> jwt.sign(payload, key, { algorithm: "RS256" });
Fix: ML-DSA-65 (FIPS 204)
Confidence: 96% | Effort: complex | Via: ast
[!!] ECDSA — Certificate uses ECDSA 256-bit key — vulnerable to Shor's algorithm
tls://api.example.com:443
> ECDSA 256-bit key, TLSv1.3
Fix: Post-quantum certificate algorithms when available
Confidence: 100% | Effort: complex | Via: network
...
| Алгоритм | Угроза | Замена |
|---|---|---|
| RSA (любой размер ключа) | Алгоритм Шора | ML-KEM-768 / ML-DSA-65 |
| ECDSA / Ed25519 | Алгоритм Шора на эллиптических кривых | ML-DSA-65 (FIPS 204) |
| ECDH / X25519 / DH | Алгоритм Шора на обмене ключами | ML-KEM-768 (FIPS 203) |
| DSA | Алгоритм Шора | ML-DSA-65 (FIPS 204) |
| Алгоритм | Угроза | Замена |
|---|---|---|
| AES-128 | Grover снижает до 64 бит | AES-256 |
| TLS 1.0/1.1, SSLv3 | Устаревшие протоколы | TLS 1.3 |
| SSH (обнаружен через сеть) | Обмен ключами DH/ECDH | Гибридный обмен ключами PQC |
ML-KEM (Kyber), ML-DSA (Dilithium), SLH-DSA (SPHINCS+), AES-256, ChaCha20-Poly1305, SHA-256, SHA-3
Создаёт Cryptographic Bill of Materials, соответствующий CycloneDX 1.6. Каждый результат криптографического анализа становится компонентом crypto-asset с cryptoProperties, уровнями квантовой безопасности NIST и данными о расположении.
pqaudit . --format cbom --output cbom.json
Создаёт вывод SARIF 2.1.0, совместимый со сканированием кода GitHub. Загрузка через github/codeql-action/upload-sarif.
pqaudit . --format sarif --output results.sarif
Самодостаточный HTML-файл с визуальной панелью — разбивка по серьёзности, оценка готовности к PQC и таблица результатов. Без внешних зависимостей, работает офлайн.
pqaudit . --format html --output report.html
name: PQC Audit
on: [push, pull_request]
jobs:
pqaudit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20"
- run: npx pqaudit . --format sarif --output pqaudit.sarif --ci
- uses: github/codeql-action/upload-sarif@v3
if: always()
with:
sarif_file: pqaudit.sarif
category: pqaudit
pqaudit проверяет файлы манифестов на наличие известных криптографических библиотек в пяти экосистемах:
| Экосистема | Файлы манифестов | Примеры пакетов |
|---|---|---|
| npm | package.json | @noble/ed25519, node-rsa, jsonwebtoken, ethers |
| Rust | Cargo.toml | ed25519-dalek, rsa, ring, p256, pqcrypto |
| Go | go.mod | golang.org/x/crypto, cloudflare/circl |
| Python | requirements.txt, pyproject.toml | cryptography, pycryptodome, paramiko |
| Java | build.gradle, pom.xml | BouncyCastle, Google Tink |
Библиотеки, безопасные с точки зрения PQC (@noble/post-quantum, pqcrypto, cloudflare/circl), помечаются как безопасные для учёта.
Правила определяются в YAML:
- id: MY_CUSTOM_RULE
description: "Custom quantum-vulnerable pattern"
severity: critical
category: signature
algorithm: MyAlgo
replacement: ML-DSA-65
effort: complex
languages: ["javascript", "typescript"]
patterns:
- "myVulnerableFunction\\("
- "import.*myVulnerableLib"
Полную схему правил и инструкции по отправке новых правил см. в CONTRIBUTING.md.
pqaudit сканирует конфигурационные файлы на предмет квантово-уязвимых крипто-настроек:
sshd_config/ssh_configФайлы конфигураций без расширения (Dockerfile, sshd_config, ssh_config) автоматически обнаруживаются и сканируются.
Проверьте работающие конечные точки TLS и SSH на наличие квантово-уязвимых конфигураций:
pqaudit --scan-endpoint api.example.com:443 --scan-endpoint git.example.com:22
Конечные точки TLS (любой порт, или укажите tls://host:port):
Конечные точки SSH (порт 22 определяется автоматически, или укажите ssh://host:port):
Сетевые результаты имеют 100% достоверность (наблюдаемые факты, а не совпадения шаблонов) и отображаются вместе с результатами анализа кода во всех форматах вывода.
pqaudit использует четыре метода обнаружения:
Запланировано:
Рекомендации по отправке правил, исправлений ошибок и новых функций см. в CONTRIBUTING.md.
MIT