目录
一.编译与运行
在你的电脑上编译小组项目,提交截图。
在你的电脑上运行小组项目,提交截图。
页面及代码部分展示
二.信息资产的存放与保护
你们小组项目要保护的信息资产都有哪些数据?
这些数据在数据库中的什么表中?提交数据库相关表的截图。
保护的信息资产
- 加解密所使用的基础密钥
- 用户的个人信息和口令
- 文件的内容信息
- 会话使用的会话密钥
保护形式
- 图片传输sm4加密
- 文件传输sm2算法
- 用户基本信息hash存放
- 会话加密
信息资产的存放
- 用户的口令和个人信息做hash(sha256)存放于数据库中
- 加解密的密钥存放于txt文件并置于Key U盘中,确保保存的唯一性,使用时从U盘中自动读取
- 文件密态存储(实现中),目前使用pdf加密
三.实现方案
你们小组项目中为了保护数据资产用了什么密码算法?
如果用到了对称算法,提交相关生成密钥和对数据加密的代码截图
如果用到了非对称算法,提交相关生成密钥对和对数据加密,签名验签的代码截图
如果用到了其他算法,提交相关的代码截图
方案集合
- 图片传输sm4加密
- 文件传输sm2算法
- 用户基本信息(口令)保密:使用hash sha256存放
- 会话安全sm2
- 注意文件密态存储(可使用sm4算法)
- 在源代码中不能出现密钥的信息(从外界读取文件或者设置key)
- 访问控制
四.根据GMT0054标准 实行安全性措施
访问控制
1.1 访问控制 access control
按照特定策略,允许或拒绝用户对资源访冋的一种机制
1.2 设置基于级别的强制访问控制
针对文件设定两种密级“公开”和“秘密”,用户的身份也分为两个等级“普通级”和“系统级”,普通级的用户可以查看公开的文件和上传秘密的文件,系统级的用户既可以上传公开和秘密级文件,又可以查看公开和秘密级文件。用户间级别权限的区分由数据库系统授予,统一交由数据库系统管理员admin进行。
详情见图
机密性
2.1 机密性 confidentiality
保证信息不被泄露给非授权的个人、进程等实体的性质
2.2 设置用户登录密码和查看密钥
- 对于所有用户,想要登录需要认证自己的身份信息,是否是政务系统人员,同时使用自身独特的口令登录。
系统采取了一定防止sql注入的功能,当用户的输入口令或id中含有空格等敏感符号时会自动报错,跳转到错误页面。保证系统信息不泄露给非授权的个人和进程。
- 同时,为保证传输过程中的安全,我们建立会话密钥,并对上传文件的内容和图片进行了sm2和sm4加密,确保无法在链路上抓取到明文的文件信息
- 对于已经存放的文件,设置了对应的密钥加密明文口令,只有获取了明文口令,才有可能读取文件的内容。
详情见图
加密
3.1 加密 encipherment encryption
对数据进行密码变换以产生密文的过程
- 在文件传输过程中使用sm2算法
- 在图片传输过程中使用sm4算法
- 在会话进程中使用sm2算法
- 对数据库中存储的用户口令和信息进行了哈希处理,存放密文
详情见图
解密
4.1 解密 decipherment decryption
加密过程对应的逆过程
- 各环节由对应密钥进行解密
- 且基础密钥存放在key U盘中,只有拿到key才能够进行解密操作
详情见图
五.心得体会
本次设计电子公文传输系统,是基于上个学期已有的传输系统完成的情况下,加强对安全性方面的保护,包括公文在传输过程中的安全问题,存储过程中的安全问题,用户基本信息存放的安全问题,密钥的存储保护等问题,利用了国密算法sm2和sm4来保证安全性,并对用户和服务器之间的会话进行了加密保护。
本次实验在安全性和安全性的具体实施中收获良多,在后续的时间里仍会不断进行改进完善,对照国密标准0054,考虑到安全性的方方面面。