一、AI问答
问:
作为计算机专家,密码学家,给研究生一年级学生设计20个实践项目,具体要求如下:
一. 总体要求
- 必须使用 Linux 系统调用,要求使用文件I/O,多进程或多线程,一定要用到 Socket 系统调用
- 项目类型必须是C/S架构,使用QT
- 项目程序设计语言可以是C,Rust等
二. 功能要求 - 给出系功能结构,每个功能给出详细的要求
- 系统要有身份鉴别,访问控制,审计功能
三. 安全要求 - 身份鉴别口令只保存使用sm3计算的Hash值,要加盐,数据库使用 Sqlite 或 MySQL
- 密钥应用体现混合密码系统要求,密码算法要使用商用密码算法,至少要用到:sm2,sm3,sm4三种
答:
20 个实践项目设计
项目 1:安全文件传输系统
功能结构
- 客户端 :具备文件选择、上传、下载、删除等功能,能显示文件传输进度和状态,可查看服务器文件列表。
- 服务器端 :负责接收客户端连接请求,验证客户端身份,根据指令进行文件接收、发送、删除等操作,记录操作日志。
安全要求
- 使用 sm2 算法进行身份认证,sm4 算法加密文件传输内容,sm3 算法对传输指令等进行哈希处理保证完整性。
项目 2:加密聊天系统
功能结构
- 客户端 :实现文本输入、发送、接收显示,支持图片、文件等多媒体消息发送,有用户登录注册功能。
- 服务器端 :管理客户端连接,转发消息,存储聊天记录,进行用户身份验证和访问控制。
安全要求
- 用 sm2 算法进行用户身份认证,sm4 算法加密聊天内容,sm3 算法对消息摘要进行计算保证完整性。
项目 3:安全远程命令执行系统
功能结构
- 客户端 :输入要执行的命令,发送到服务器,并接收显示服务器执行结果。
- 服务器端 :接收客户端命令,验证客户端身份和权限,执行合法命令,将结果返回给客户端,记录命令执行日志。
安全要求
- 通过 sm2 算法认证客户端身份,sm4 算法加密命令传输和结果返回过程,sm3 算法确保命令完整性和服务器响应的完整性。
项目 4:安全任务调度系统
功能结构
- 客户端 :提交任务请求,查询任务状态和结果,可设置任务优先级和执行时间。
- 服务器端 :接收任务请求,根据调度策略分配任务,执行任务并反馈结果,管理任务队列,进行用户身份和任务权限验证。
安全要求
- 利用 sm2 算法进行身份鉴别,sm4 算法加密任务数据和结果,sm3 算法保证任务指令和调度信息的完整性。
项目 5:安全数据采集与上报系统
功能结构
- 客户端 :采集本地数据(如传感器数据等),按照规定格式整理后上报给服务器,可接收服务器反馈和指令。
- 服务器端 :接收客户端数据,验证客户端身份和数据合法性,存储数据,生成报表和分析结果,向客户端发送反馈和指令。
安全要求
- 用 sm2 算法认证客户端身份,sm4 算法加密数据传输,sm3 算法对数据进行哈希处理保证完整性,防止数据篡改。
项目 6:安全文件共享系统
功能结构
- 客户端 :浏览共享文件目录,下载文件,上传文件到共享目录,设置文件共享权限。
- 服务器端 :管理共享文件存储,处理客户端文件操作请求,验证用户身份和权限,记录文件访问日志。
安全要求
- 基于 sm2 算法进行身份认证,sm4 算法加密文件传输和共享目录信息,sm3 算法确保文件元数据和操作指令的完整性。
项目 7:安全在线考试系统
功能结构
- 客户端 :考生登录,接收试题,作答并提交答案,查看考试结果和成绩。
- 服务器端 :管理考试科目和试题库,向客户端发送试题,接收答案并评分,记录考试过程和成绩,进行考生身份验证和考试权限控制。
安全要求
- 运用 sm2 算法对考生身份进行认证,sm4 算法加密试题和答案传输,sm3 算法保证试题完整性,防止试题泄露和篡改。
项目 8:安全日志管理系统
功能结构
- 客户端 :查询日志,设置日志筛选条件,导出日志报表。
- 服务器端 :收集各服务模块产生的日志信息,存储日志,根据权限提供日志查询服务,进行用户身份验证和访问控制。
安全要求
- 采用 sm2 算法进行身份鉴别,sm4 算法加密日志内容,sm3 算法确保日志的完整性和不可抵赖性。
项目 9:安全软件更新系统
功能结构
- 客户端 :检查软件更新,下载并安装更新包,查看更新历史和版本信息。
- 服务器端 :存储软件更新包,管理版本信息,向客户端推送更新通知,验证客户端身份和更新请求合法性。
安全要求
- 使用 sm2 算法认证客户端身份,sm4 算法加密更新包传输,sm3 算法对更新包进行哈希处理保证完整性,防止更新包被篡改。
项目 10:安全用户管理系统
功能结构
- 客户端 :管理员登录,添加、删除、修改用户信息,设置用户权限,查询用户列表。
- 服务器端 :存储用户信息和权限数据,处理客户端管理操作请求,验证管理员身份和操作权限,记录用户管理操作日志。
安全要求
- 运用 sm2 算法进行管理员身份认证,sm4 算法加密用户敏感信息传输,sm3 算法确保用户数据和操作指令的完整性。
项目 11:安全图片分享系统
功能结构
- 客户端 :上传图片,浏览和搜索图片,对图片进行评论、点赞等互动操作,设置图片隐私权限。
- 服务器端 :存储图片和相关元数据,处理客户端图片操作请求,验证用户身份和权限,记录图片访问和操作日志。
安全要求
- 用 sm2 算法认证用户身份,sm4 算法加密图片传输和存储,sm3 算法保证图片元数据和操作指令的完整性,防止图片被非法篡改。
项目 12:安全视频点播系统
功能结构
- 客户端 :浏览视频列表,搜索视频,播放视频,查看视频详情和评论,进行用户登录注册。
- 服务器端 :存储视频资源,处理客户端视频点播请求,验证用户身份和权限,记录视频播放日志。
安全要求
- 基于 sm2 算法进行用户身份认证,sm4 算法加密视频传输和部分敏感信息,sm3 算法确保视频元数据和操作指令的完整性。
项目 13:安全在线存储系统
功能结构
- 客户端 :上传、下载、删除文件,管理文件夹,设置文件共享链接和权限。
- 服务器端 :存储用户文件,处理文件操作请求,验证用户身份和权限,记录文件操作日志。
安全要求
- 利用 sm2 算法进行身份鉴别,sm4 算法加密文件传输和存储,sm3 算法保证文件元数据和操作指令的完整性,防止文件被篡改和非法访问。
项目 14:安全智能家居控制系统
功能结构
- 客户端 :远程控制家中智能设备(如灯光、空调等),查看设备状态,设置定时任务和自动化场景。
- 服务器端 :接收客户端控制指令,与智能设备通信,验证客户端身份和控制权限,记录设备操作日志。
安全要求
- 采用 sm2 算法对客户端身份进行认证,sm4 算法加密控制指令和设备状态信息传输,sm3 算法确保指令完整性和设备状态数据的准确性。
项目 15:安全即时通讯群组系统
功能结构
- 客户端 :加入和创建群组,发送文字、图片、文件等消息到群组,查看群组成员和聊天记录。
- 服务器端 :管理群组信息,转发群组消息,验证用户身份和群组权限,记录群组聊天日志。
安全要求
- 运用 sm2 算法进行用户身份认证,sm4 算法加密群组消息传输,sm3 算法保证消息完整性和群组操作指令的完整性。
项目 16:安全在线办公系统
功能结构
- 客户端 :编辑和处理文档、表格、演示文稿等办公文件,在线协作编辑,文件版本管理。
- 服务器端 :存储办公文件,处理客户端文件操作请求,验证用户身份和权限,记录文件操作日志。
安全要求
- 使用 sm2 算法认证用户身份,sm4 算法加密文件传输和存储,sm3 算法确保文件元数据和操作指令的完整性,防止文件被非法篡改和泄露。
项目 17:安全在线商城系统
功能结构
- 客户端 :浏览商品,搜索商品,加入购物车,下单购买,查看订单状态和历史订单。
- 服务器端 :管理商品信息,处理客户端购物请求,验证用户身份和支付权限,记录交易日志。
安全要求
- 基于 sm2 算法进行用户身份认证,sm4 算法加密用户个人信息和交易数据传输,sm3 算法保证商品信息和订单数据的完整性,防止数据被篡改。
项目 18:安全在线学习系统
功能结构
- 客户端 :学习课程视频,阅读学习资料,完成作业和测试,参与讨论和互动。
- 服务器端 :存储课程资源,管理学习进度和成绩,验证用户身份和学习权限,记录学习行为日志。
安全要求
- 运用 sm2 算法进行用户身份认证,sm4 算法加密课程资源传输和用户敏感信息,sm3 算法确保课程资源完整性和学习操作指令的完整性。
项目 19:安全在线医疗系统
功能结构
- 客户端 :患者预约挂号,查看医生信息,查询检验报告,在线问诊。
- 服务器端 :管理医疗资源,处理患者预约和问诊请求,验证用户身份和医疗权限,记录医疗操作日志。
安全要求
- 采用 sm2 算法对患者和医生身份进行认证,sm4 算法加密患者病历和检验报告等敏感信息传输,sm3 算法确保医疗数据的完整性和操作指令的准确性。
项目 20:安全物联网设备管理系统
功能结构
- 客户端 :查看连接的物联网设备状态,远程配置设备参数,接收设备报警信息。
- 服务器端 :与物联网设备通信,收集设备数据,处理客户端管理操作请求,验证客户端身份和权限,记录设备操作日志。
安全要求
- 使用 sm2 算法认证客户端身份,sm4 算法加密设备数据传输和配置信息,sm3 算法保证设备数据完整性和操作指令的完整性,防止设备数据被篡改和非法访问。
二、选题和项目设计
1.选题
选择 安全文件传输系统
2.功能设计(AI)
问:请你针对"安全文件传输系统",设计需要20 学时可以完成的功能。
答:
安全文件传输系统 20 学时功能设计
学时分配
模块 | 学时 | 内容 |
---|---|---|
环境搭建与准备 | 2 | 安装 QT Creator、OpenSSL、GmSSL 和 MySQL,配置开发环境 |
服务器端基础开发 | 3 | 创建服务器程序框架,实现 Socket 监听和多线程处理 |
客户端基础开发 | 3 | 创建客户端程序框架,实现连接服务器和基本界面设计 |
文件传输功能开发 | 5 | 实现文件选择、上传、下载、删除和列表查看功能 |
安全机制集成 | 5 | 集成 sm2、sm3、sm4 算法,实现身份认证、数据加密和完整性校验 |
测试与优化 | 2 | 进行功能测试,修复 bugs,优化性能和用户体验 |
功能清单
环境搭建与准备
- 安装软件 :在 Ubuntu 22.04 上安装 QT Creator、OpenSSL、GmSSL 和 MySQL 数据库,确保所有软件版本兼容。
- 配置环境变量 :设置环境变量,使开发工具能够正确找到库文件和头文件。
- 创建项目目录 :在合适位置创建项目目录,用于存放服务器端和客户端的源代码、配置文件等。
服务器端基础开发
- 创建服务器程序框架 :使用 C 语言创建服务器程序,设置主函数和基本的程序结构。
- Socket 监听实现 :使用 Socket 系统调用创建监听套接字,绑定端口,监听客户端连接请求。
- 多线程处理 :为每个客户端连接创建新线程,实现多线程并发处理多个客户端请求。
客户端基础开发
- 创建客户端程序框架 :使用 C 语言和 QT 创建客户端程序,设计基本的图形用户界面。
- 连接服务器实现 :使用 Socket 系统调用连接到服务器,处理连接成功和失败的情况。
- 基本界面设计 :设计文件选择、上传、下载、删除等按钮和显示区域,用于与用户交互。
文件传输功能开发
- 文件选择功能 :在客户端实现文件选择对话框,允许用户选择本地文件进行上传。
- 文件上传功能 :将选中的文件通过 Socket 发送到服务器,处理文件传输过程中的错误和中断情况。
- 文件下载功能 :从服务器接收文件并保存到本地,显示下载进度。
- 文件删除功能 :向服务器发送删除文件的指令,服务器执行删除操作并反馈结果。
- 文件列表查看功能 :从服务器获取文件列表信息并在客户端显示,包括文件名、大小、修改时间等。
安全机制集成
- sm2 身份认证集成 :在客户端和服务器端实现 sm2 算法,对用户身份进行认证,确保只有授权用户才能进行文件传输。
- sm4 数据加密集成 :使用 sm4 算法对传输的文件内容进行加密和解密,保证文件在传输过程中的保密性。
- sm3 完整性校验集成 :在文件传输前后,使用 sm3 算法对文件和传输指令进行哈希计算,确保数据的完整性和未被篡改。
测试与优化
- 功能测试 :对系统的各项功能进行全面测试,包括文件传输的准确性、速度、安全性等,记录测试结果和发现的问题。
- Bugs 修复 :根据测试结果,修复发现的 bugs,确保系统稳定运行。
- 性能优化 :对系统性能进行优化,如提高文件传输速度、降低资源占用等,提升用户体验。
安全功能详细设计
身份鉴别
- 用户注册 :客户端提供用户注册功能,用户输入用户名和密码。密码在客户端使用 sm3 算法进行加盐哈希处理后存储在 Sqlite 数据库中。
- 用户登录 :用户输入用户名和密码,客户端将密码进行同样的 sm3 加盐哈希处理后发送给服务器。服务器从数据库中获取该用户的哈希值进行比对,验证身份。
- 会话管理 :登录成功后,服务器为该用户创建一个会话,生成会话 ID 并发送给客户端。后续通信中,客户端使用会话 ID 进行身份标识,服务器验证会话 ID 的有效性。
访问控制
- 用户权限设置 :在数据库中为每个用户设置不同的权限级别,如普通用户、管理员等。不同权限级别的用户具有不同的文件操作权限。
- 文件权限管理 :对服务器上的文件设置访问权限,如只读、读写等。用户根据其权限级别和文件权限进行相应的操作。
- 操作验证 :服务器在接收到客户端的文件操作请求时,验证用户是否具有相应的权限。如果没有权限,拒绝请求并返回错误信息。
审计功能
- 日志记录 :服务器记录所有用户的操作日志,包括登录、文件上传、下载、删除等操作的时间、用户、操作对象和结果等信息。
- 日志存储 :将操作日志存储在 MySQL 数据库中,方便后续的查询和分析。
- 日志查询 :提供日志查询功能,管理员可以按照时间、用户、操作类型等条件进行日志查询,以便对系统进行审计和监控。
三、设计系统原型
1、系统功能图

2、系统原型图
