Files
markbase/docs/SSH_PHASE9_SECURITY_AUDIT_PLAN.md
Warren 1300a4e223
Some checks failed
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
MarkBase架构升级:Multi-Volume Virtual Tree + Dual-View Management + Git Remote修正
核心功能:
-  Categories/Series双视图管理(category_view.rs + import_markdown.rs)
-  FUSE Multi-Volume支持(tree_type参数)
-  SSH/SFTP/SCP/rsync协议完整实现(4042行)
-  NFS/SMB Module Phase 1-3完成
-  Archive Module Phase 1-4完成(2916行)
-  Download Center API完整实现
-  S3兼容API实现(560行)

Git配置修正:
-  删除错误origin(gitea.momentry.ddns.net)
-  删除m5max128(指向机器名)
-  设置origin = m5max128gitea.momentry.ddns.net/admin/markbase
-  设置m4minigitea = m4minigitea.momentry.ddns.net/warren/markbase

数据清理:
-  删除38个临时SQLite(保留accusys.sqlite、demo.sqlite)
-  删除.bak、test_*.bin、调试脚本等临时文件
-  删除临时目录(build/、download files/、raid_test/等)
-  更新.gitignore排除临时文件

架构优化:
- 52个文件修改,2434行新增,4739行删除
- Workspace成员整合(16个crate)
- 数据库状态:accusys.sqlite保留(主demo测试)

远程同步:
-  准备推送到m5max128gitea(远程Gitea)
-  准备推送到m4minigitea(本地Gitea)
2026-06-12 12:59:54 +08:00

239 lines
7.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SSH协议Phase 9安全审计计划 ⭐⭐⭐⭐⭐
## 目标
- 验证Phase 1-8所有实现的正确性和安全性
- 确保OpenSSH完全兼容
- 为生产使用做准备
---
## Phase 9工作量预估
**预计时间**约10天
**预计代码量**约1784行审计报告 + 测试代码)
**模块划分**
1. 密钥交换验证报告约200行
2. 加密通道验证报告约200行
3. 认证验证报告约150行
4. Channel验证报告约150行
5. SFTP验证报告约300行
6. SCP验证报告约150行
7. rsync验证报告约100行
8. 代码审计报告约400行
9. 安全审计总结约134行
---
## Phase 9审计项目详细计划
### 1. 密钥交换验证 ⭐⭐⭐⭐⭐
**验证项目**
- ✅ Curve25519密钥交换正确性x25519-dalek
- ✅ Ed25519服务器签名正确性ed25519-dalek
- ✅ Exchange Hash计算正确性参考OpenSSH kex_hash
- ✅ NEWKEYS处理正确性参考OpenSSH kex_input_newkeys
- ✅ Session Keys生成正确性AES-256、HMAC-SHA256
**测试方法**
- 与OpenSSH客户端测试密钥交换
- 验证Exchange Hash与OpenSSH一致
- 验证Session Keys可以正确加密/解密
**安全性检查**
- ⭐⭐⭐⭐⭐ 检查密钥交换是否有漏洞(前向保密)
- ⭐⭐⭐⭐⭐ 检查签名是否有漏洞(重放攻击)
- ⭐⭐⭐⭐⭐ 检查Exchange Hash是否有漏洞篡改
---
### 2. 加密通道验证 ⭐⭐⭐⭐⭐
**验证项目**
- ✅ AES-256-CTR加密/解密正确性aes + ctr crate
- ✅ HMAC-SHA256 MAC计算/验证正确性hmac crate
- ✅ 加密packet封装正确性EncryptedPacket
- ✅ 解密packet解析正确性双向
- ✅ 序列号管理正确性(防重放攻击)
**测试方法**
- 与OpenSSH客户端测试加密通道
- 验证加密/解密packet与OpenSSH一致
- 验证MAC计算与OpenSSH一致
**安全性检查**
- ⭐⭐⭐⭐⭐ 检查加密是否有漏洞(密钥泄露)
- ⭐⭐⭐⭐⭐ 检查MAC是否有漏洞篡改
- ⭐⭐⭐⭐⭐ 检查序列号是否有漏洞(重放攻击)
---
### 3. 认证验证 ⭐⭐⭐⭐⭐
**验证项目**
- ✅ password认证正确性bcrypt
- ✅ 密码存储正确性bcrypt hash
- ✅ 密码验证正确性bcrypt verify
- ✅ SSH_MSG_USERAUTH_REQUEST处理正确性
- ✅ SSH_MSG_USERAUTH_SUCCESS/FAILURE正确性
**测试方法**
- 与OpenSSH客户端测试password认证
- 验证bcrypt hash与OpenSSH一致
- 验证认证流程与OpenSSH一致
**安全性检查**
- ⭐⭐⭐⭐⭐ 检查密码存储是否有漏洞(弱密码)
- ⭐⭐⭐⭐⭐ 检查密码验证是否有漏洞(暴力破解)
- ⭐⭐⭐⭐⭐ 检查认证流程是否有漏洞(重放攻击)
---
### 4. Channel验证 ⭐⭐⭐⭐⭐
**验证项目**
- ✅ SSH_MSG_CHANNEL_OPEN处理正确性session channel
- ✅ SSH_MSG_CHANNEL_REQUEST处理正确性exec、subsystem、pty
- ✅ SSH_MSG_CHANNEL_DATA传输正确性
- ✅ SSH_MSG_CHANNEL_CLOSE处理正确性
- ✅ ChannelManager状态管理正确性
**测试方法**
- 与OpenSSH客户端测试Channel流程
- 验证Channel ID分配与OpenSSH一致
- 验证Channel数据传输与OpenSSH一致
**安全性检查**
- ⭐⭐⭐⭐⭐ 检查Channel ID是否有漏洞冲突
- ⭐⭐⭐⭐⭐ 检查Channel数据是否有漏洞溢出
- ⭐⭐⭐⭐⭐ 检查Channel状态是否有漏洞篡改
---
### 5. SFTP验证 ⭐⭐⭐⭐⭐
**验证项目**
- ✅ SSH_FXP_INIT处理正确性版本协商
- ✅ SSH_FXP_OPEN/READ/WRITE/CLOSE正确性文件操作
- ✅ SSH_FXP_OPENDIR/READDIR正确性目录操作
- ✅ SSH_FXP_MKDIR/RMDIR/REMOVE/RENAME正确性文件管理
- ✅ SSH_FXP_STAT/LSTAT/FSTAT正确性文件查询
- ✅ SSH_FXP_REALPATH正确性路径解析
**测试方法**
- 与OpenSSH sftp客户端测试SFTP操作
- 验证SFTP packet格式与OpenSSH一致
- 集成测试:文件上传、下载、列表
**安全性检查**
- ⭐⭐⭐⭐⭐ 检查路径是否有漏洞(路径遍历)
- ⭐⭐⭐⭐⭐ 检查文件操作是否有漏洞(权限)
- ⭐⭐⭐⭐⭐ 检查Handle是否有漏洞泄露
---
### 6. SCP验证 ⭐⭐⭐⭐⭐
**验证项目**
- ✅ SCP -f/-t/-r/-p模式正确性
- ✅ SCP C/D/E/T命令处理正确性
- ✅ SCP文件传输正确性发送/接收)
- ✅ SCP目录传输正确性递归
- ✅ SCP时间设置正确性mtime/atime
**测试方法**
- 与OpenSSH scp客户端测试SCP传输
- 集成测试:文件上传、下载、目录传输
**安全性检查**
- ⭐⭐⭐⭐⭐ 检查路径是否有漏洞(路径遍历)
- ⭐⭐⭐⭐⭐ 检查文件大小是否有漏洞DoS
- ⭐⭐⭐⭐⭐ 检查权限是否有漏洞(篡改)
---
### 7. rsync验证 ⭐⭐⭐⭐
**验证项目**
- ✅ rsync --server/--sender模式正确性
- ✅ rsync协议版本协商正确性version 30
- ✅ rsync文件列表传输正确性
- ✅ rsync文件内容传输正确性
**测试方法**
- 与rsync客户端测试rsync传输简化实现
- 集成测试:文件同步
**安全性检查**
- ⭐⭐⭐⭐⭐ 检查路径是否有漏洞(路径遍历)
- ⭐⭐⭐⭐⭐ 检查文件操作是否有漏洞(权限)
---
### 8. 代码审计 ⭐⭐⭐⭐⭐
**审计项目**
- ✅ 代码安全性审计(漏洞检查)
- ✅ 代码性能审计(性能优化)
- ✅ 代码兼容性审计OpenSSH兼容
- ✅ 代码质量审计(代码规范)
- ✅ 依赖库安全性审计RustCrypto库
**审计方法**
- 使用cargo audit检查依赖库安全性
- 使用cargo clippy检查代码质量
- 手动审查关键代码(密钥交换、加密、认证)
**安全性检查**
- ⭐⭐⭐⭐⭐ 检查依赖库是否有漏洞CVE
- ⭐⭐⭐⭐⭐ 检查代码是否有漏洞unsafe代码
- ⭐⭐⭐⭐⭐ 检查性能是否有问题(内存泄露)
---
## Phase 9实施流程
### 审计步骤:
1. 密钥交换验证第1-2天
2. 加密通道验证第3-4天
3. 认证验证第5天
4. Channel验证第6天
5. SFTP验证第7-8天
6. SCP/rsync验证第9天
7. 代码审计第10天
### 输出文档:
- 密钥交换验证报告
- 加密通道验证报告
- 认证验证报告
- Channel验证报告
- SFTP验证报告
- SCP验证报告
- rsync验证报告
- 代码审计报告
- 安全审计总结
---
## Phase 9安全审计重要性 ⭐⭐⭐⭐⭐
**为什么Phase 9极重要**
- Phase 1-8已完成3997行代码69%进度)
- 生产使用前必需的安全验证
- 防止密钥交换、加密、认证漏洞
- 确保OpenSSH完全兼容
- 验证所有协议实现的正确性
**安全性保证**
- ⭐⭐⭐⭐⭐ 使用权威加密库RustCrypto
- ⭐⭐⭐⭐⭐ 参考OpenSSH源码实现
- ⭐⭐⭐⭐⭐ 全面的安全审计流程
---
**Phase 9安全审计计划完成 ✅**
**预计工作量约1784行代码**
**预计时间约10天**
**重要性:⭐⭐⭐⭐⭐ 极重要**