ai-jail
다중 OS 샌드박스로 AI 에이전트를 제한된 환경에서 실행, 완전 안전은 아니지만 충분히 안전
서버가 양자 컴퓨터에 대비했는지 확인하고 결과를 읽는 방법을 안내합니다: ML‑KEM 키 교환, 인증서, TLS 버전, SSH
Periksa kesiapan sebuah server menghadapi komputer kuantum, lalu pelajari cara membaca hasilnya: key exchange ML-KEM, sertifikat, versi TLS, dan SSH.
보안Python · HTMLGitHub @Nael-Nathanael온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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.