尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Outside-in post-quantum cryptography readiness scanner: ML-KEM key exchange, certificates, TLS versions and SSH, with PDF reports (Bahasa Indonesia UI)
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗SecScan PQC checks how ready a server is for post-quantum cryptography (PQC) by probing it from the outside. It looks at the TLS key exchange (ML-KEM), the certificate, the TLS versions on offer, and SSH, scores each one, and produces a PDF report. The scans are read-only: SecScan sends protocol hellos, reads the server's first reply, and disconnects.
The web UI, findings and PDF reports come in Bahasa Indonesia (at /) and English (at /en).
A hosted instance runs at sec-scan.miraestudio.id. The method and reference values are at
/en/methodology (/metodologi in Indonesian).
| Check | Weight | Full marks when |
|---|---|---|
| PQ key exchange (TLS 1.3) | 100 | The server accepts a standard ML-KEM group such as X25519MLKEM768 |
| Certificate | 60 | The leaf certificate uses ML-DSA or SLH-DSA |
| SSH (ports 22, 2222) | 50 | SSH is closed, or offers mlkem768x25519-sha256 with an ed25519 host key and no RSA host key |
| TLS versions | 40 | Only TLS 1.3 is enabled |
The composite score is the weighted average of the selected checks. Grades: A ≥ 90, B ≥ 80, C ≥ 65, D ≥ 50, E < 50.
The highest score a public website can reach today is 92. No public CA issues ML-DSA certificates yet, so every classical certificate (RSA ≥ 2048, ECDSA ≥ 256, EdDSA) scores 65% on the certificate check. Shor's algorithm breaks RSA and ECC alike, so SecScan scores them the same: a bigger RSA key earns nothing.
KEXINIT message, then disconnects before authentication.Targets must resolve to public addresses. Private, loopback and link-local addresses are refused.
With Docker:
cp .env.example .env # optional: set SCAN_PASSWORD, PORT, SITE_NAME
docker compose up -d --build
The app listens on 127.0.0.1:${PORT:-8000}. Put a reverse proxy with TLS in front of it. Host-specific settings can also
go in a compose.override.yaml, which git ignores.
For local development (Python 3.12+):
python -m venv .venv
.venv/bin/pip install -r requirements-dev.txt
cd app && ../.venv/bin/uvicorn main:app --reload
All variables are optional. See .env.example.
| Variable | Default | Purpose |
|---|---|---|
SCAN_PASSWORD | empty | Shared password, sent in the X-Scan-Password header. Empty disables it. |
PORT | 8000 | Host port in compose.yaml |
BRAND_NAME | SecScan PQC | Name printed on PDF reports |
SITE_NAME | empty | Hostname printed on PDF reports, which also link to /metodologi |
MAX_CONCURRENT_HOSTS | 4 | Hosts scanned in parallel |
RATE_LIMIT_HOSTS | 40 | Hosts per client IP per 10 minutes |
The client IP used for rate limiting comes from the CF-Connecting-IP header when present, then from the proxy headers
(uvicorn runs with --proxy-headers). If you do not run behind Cloudflare, make sure your proxy strips or overwrites
CF-Connecting-IP, or clients can spoof it to dodge the rate limit.
| Method | Path | Description |
|---|---|---|
POST | /api/scan | Body {"targets": ["example.com", "host:8443"], "checks": ["kex", "cert", "tls", "ssh"], "lang": "en"}. Up to 4 targets; lang is id (default) or en and sets the language of findings, errors and the PDF. Returns the results and a scan id. |
GET | /api/report/{id}.pdf | PDF report for a recent scan (the last 200 are kept in memory) |
GET | /healthz | Health check |
Scan only systems you own or have permission to test. The probes are light, but they are still unsolicited connections.
See CONTRIBUTING.md. Report security issues privately as described in SECURITY.md.
SecScan PQC memeriksa kesiapan kriptografi tahan kuantum sebuah server dari sisi luar: key exchange ML-KEM, sertifikat, versi TLS, dan SSH, lalu membuat laporan PDF. Penjelasan lengkap cara menilai dan dasar teorinya ada di halaman Metodologi & landasan teori. Laporan bug dan kontribusi boleh dalam Bahasa Indonesia.