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

7.0 KiB
Raw Blame History

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天 重要性: 极重要