尚未偵測到更新。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.