steadytao/surveyor
GitHub: steadytao/surveyor
后量子 readiness 与加密库存工具,通过 TLS 连接分析厘清经典公钥依赖与迁移优先级。
Stars: 1 | Forks: 0
# Surveyor
Surveyor 是一个加密库存与迁移就绪性工具,最初专注于显式 TLS 面向目标。
它从一个狭窄的问题开始:TLS 面向的服务今天实际呈现了什么?这对未来量子迁移工作意味着什么?
重点不是生成一个模糊的“PQ 分数”。重点是向团队提供清晰的库存,明确它们正在运行什么、哪些经典公钥依赖仍然存在,以及哪些最需要优先关注。
## 状态
Surveyor 处于早期开发阶段。
第一个里程碑被有意设定为较窄的范围。它已完成作为显式提供目标的 TLS 库存 MVP。
当前仓库已包含:
- 目标解析与验证
- TLS 连接与协议检查
- 证书链解析
- 公钥与签名算法库存
- 保守的就绪性分类
- 机器可读与人类可读的报告
该仓库现在包含一个可用的 CLI 路径用于 TLS 库存切片,支持配置驱动和显式命令行目标。
## 发布
发布的版本出现在这里:
当发布版本时,附带资源包括 Linux、macOS 和 Windows 的 amd64 与 arm64 可下载二进制文件。
## 为什么这个项目存在
量子迁移主要不是一个加密库问题。对大多数团队来说,这是一个库存与优先级问题。
在迁移任何内容之前,有人需要回答实际问题:
- 经典公钥加密在何处使用
- 哪些服务、证书和信任路径依赖它
- 什么是对外暴露的
- 什么可以直接替换
- 什么需要人工审查或架构变更
Surveyor 的存在是为了让这些可见。
## 当前范围
版本一有意限制为显式提供的 TLS 面向服务。
这意味着 Surveyor 目前旨在:
- 连接到显式 TLS 目标
- 收集握手与证书事实
- 保守分类迁移姿态
- 输出结构化结果与可读报告
它目前不旨在:
- 实现后量子加密
- 替换 PKI 系统
- 默认扫描任意地址范围
- 作为通用漏洞扫描器
- 生成利用工具
- 将复杂的迁移工作简化为二进制的“量子安全”标签
## 当前实现
Surveyor 当前已实现内部切片,包括:
- YAML 配置解析与验证,用于显式 TLS 目标
- 针对显式目标的 TLS 握手收集
- X.509 证书与链元数据提取
- 保守的就绪性分类
- 规范 JSON 报告组装
- 派生的 Markdown 报告
当前代码与文档围绕 JSON 作为规范结果契约,Markdown 作为派生输出进行组织。
## CLI
当前 CLI 支持 TLS 库存路径:
```
surveyor scan tls -c examples/targets.yaml -o report.md -j report.json
```
对于临时本地或一次性扫描,也支持显式命令行目标:
```
surveyor scan tls -t example.com:443,127.0.0.1:8000,[::1]:443
```
规则:
- 仅使用 `--config` 或 `--targets` 之一
- `--targets` 需要显式的 `host:port` 条目
- IPv6 目标必须使用括号形式,例如 `[::1]:443`
- 如果未提供输出路径,Markdown 将写入标准输出
本地验证示例:
```
go build -o surveyor ./cmd/surveyor
./surveyor scan tls -c examples/targets.yaml -o report.md -j report.json
```
有关当前实现边界,请参见:
- [docs/architecture.md](docs/architecture.md)
- [docs/discovery.md](docs/discovery.md)
- [docs/output-schema.md](docs/output-schema.md)
- [docs/classification.md](docs/classification.md)
- [docs/references.md](docs/references.md)
- [docs/safety.md](docs/safety.md)
- [docs/release-checklist.md](docs/release-checklist.md)
## 路线图
### 里程碑 1:TLS 库存 MVP
状态:里程碑完成
- 仓库基线
- 配置加载与验证
- TLS 目标连接
- 证书链解析
- 公钥与签名算法库存
- 初始就绪性分类
- JSON 报告
- Markdown 报告
后续里程碑可能会扩展到其他加密表面,但不会在 TLS 路径稳固之前进行。
下一步计划是围绕 `surveyor discover local` 进行发现基础工作,而不是立即扩展到更多扫描器特定表面。
## 开发
Surveyor 使用 Go 编写。
当前仓库包含一个可用的 `cmd/surveyor` 入口点用于 TLS 库存切片,以及其后的内部包与测试。
目前最有用的验证命令是:
```
go build -o surveyor ./cmd/surveyor
go vet ./...
go test ./...
```
预期的本地构建流程是:
```
git clone https://github.com/steadytao/surveyor.git
cd surveyor
go build -o surveyor ./cmd/surveyor
```
然后运行:
```
./surveyor scan tls -c examples/targets.yaml -o report.md -j report.json
```
在 Windows 上,运行 `.\surveyor.exe` 而不是 `./surveyor`。
## 贡献
范围明确的贡献受到欢迎。
如果你想参与 Surveyor,请先阅读 [.github/CONTRIBUTING.md](.github/CONTRIBUTING.md)。对于较大的变更,请在开始前先打开问题,以便讨论范围与方向。
## 安全
如果你认为在 Surveyor 本身发现了安全问题,请不要公开提交问题。
请参考 [.github/SECURITY.md](.github/SECURITY.md) 获取报告说明。
## 许可证
Surveyor 根据 Apache License 2.0 许可。请参阅 [LICENSE](LICENSE)。
## 更新日志
请参阅 [CHANGELOG.md](CHANGELOG.md)。
标签:amd64, API集成, arm64, CLI 工具, EVTX分析, TLS 扫描, 云存储安全, 人机可读报告, 公钥算法, 协议分析, 可观测性, 后量子迁移, 安全报告, 密码库存, 开源安全工具, 日志审计, 显式目标, 服务端加密, 权限提升, 算法盘点, 网络扫描, 证书分析, 证书链解析, 迁移就绪, 逆向工程平台, 配置驱动