信息安全课程设计

信息安全课程设计

目录




一、 小组信息

**** - 20165211 丁奕 - 20165310 徐雯 - 20165226 刘香杉

二、课设进展

(一)第一周

## 1、任务理解与分工 ## (1)团队任务

①小组讨论对课程设计任务的理解

  • miniCA主要是实现CA的功能:签发证书,分为签发加密证书和签名证书
  • 通过与老师的沟通,我们实现对加密证书的签发即可
  • 主要功能有:
    • 生成CA自己的密钥对,通过openssl来生成
    • 对用户传来的公钥,进行CA签名,证书签发,主要涉及了三种算法:SM2,ECC,RSA。
    • 对用户申请的数据进行编码转换,符合PKCS10标准
    • 实现B/S架构,用户通过网页进行访问,证书申请
  • 对此任务,我们主要要实现的是
    • PKCS证书格式,编码的学习和认识
    • B/S架构,web编程
    • 证书的签名算法
    • Openssl生成密钥的应用

②进行任务的功能划分和分工

  • 丁奕、徐雯:整体设计、代码编写、程序测试
  • 刘香杉:整体设计、资料信息收集整理、报告撰写

③任务的进度安排

第11周:实现对技术知识的积累,理论学习,

第12周:对Openssl,GMSSL的应用,生成CA密钥对,实现SM2,ECC,RSA加密算法,实现PKCS10编码转换

第13周:实现使用加密算法进行证书签名,生成证书。实现B/S架构,证书申请

第14周:整体功能测试,优化用户体验,书写论文。

(2)个人任务

①给出自己对分配任务的理解

  • 徐雯

对任务的初步认识,要实现以下的功能:

  1. 调用openssl生成密钥对
  2. 熟悉使用SM2,ECC,RSA,还可以顺带理解其他的国密算法
  3. 理解PKCS10,实现编码转换
  4. web编程,考虑用户体验,如有需要,可进一步提供一些安全性保护

项目的意义在于,学习openssl的使用方式,学习PKCS#10的相关理论体系,熟悉PKCS#10以及证书的编码格式,练习使用B/S架构,仿照老师给的参考网站进行模拟CA签发流程。

  • 丁奕

对任务的初步认识,要实现以下的功能:

  1. 调用openssl生成密钥对
  2. 熟悉使用SM2,ECC,RSA,还可以顺带理解其他的国密算法
  3. 理解PKCS10,实现编码转换
  4. web编程,考虑用户体验,如有需要,可进一步提供一些安全性保护

项目的意义在于,学习openssl的使用方式,学习PKCS#10的相关理论体系,熟悉PKCS#10以及证书的编码格式,练习使用B/S架构,仿照老师给的参考网站进行模拟CA签发流程。

  • 刘香杉

对任务的初步认识,要实现以下的功能:

  1. 学习web编程理论以及如何调用openssl生成密钥对
  2. 学习如何使用SM2,ECC,RSA,同时理解其他的国密算法
  3. 学习PKCS10,以及编码转换的实现
  4. 每周资料搜集,每周情况汇总博客以及报告文稿撰写

项目的意义在于,学习openssl的使用方式,学习PKCS#10的相关理论体系,熟悉PKCS#10以及证书的编码格式,练习使用B/S架构,仿照老师给的参考网站进行模拟CA签发流程。

②给出会遇到的问题及解决方案

  • 徐雯

PKCS理论理解和编程实现之间存在的问题,关于PKCS10的资料太少
解决方案:进行资料搜集,询问老师等,理清编程逻辑

加密的实现和加密应用
解决方案:寻找是否有加密代码或API,进行理解学习实现

考虑传输过程的安全性问题
解决方案:主要考虑完整性问题,可以利用https,hash等方式实现,具体由实际编程情况决定

  • 丁奕

PKCS理论理解和编程实现之间存在的问题,关于PKCS10的资料太少
解决方案:进行资料搜集,询问老师等,理清编程逻辑

加密的实现和加密应用
解决方案:寻找是否有加密代码或API,进行理解学习实现

考虑传输过程的安全性问题
解决方案:主要考虑完整性问题,可以利用https,hash等方式实现,具体由实际编程情况决定

  • 刘香杉

在实现PKCS理论理解和编程中出现问题,关于PKCS10的资料太少
解决方案:进行资料搜集,询问老师等,理清编程逻辑

③给出自己的进度安排

  • 徐雯
    • 第11周:技术知识的积累,理论学习,
    • 第12周:编程实现对Openssl,GMSSL的应用,生成CA密钥对,实现SM2,ECC,RSA加密算法,实现PKCS10编码转换
    • 第13周:编程实现使用加密算法进行证书签名,生成证书。实现B/S架构,证书申请
    • 第14周:整体功能测试,优化用户体验
  • 丁奕
    • 第11周:技术知识的积累,理论学习,
    • 第12周:编程实现对Openssl,GMSSL的应用,生成CA密钥对,实现SM2,ECC,RSA加密算法,实现PKCS10编码转换
    • 第13周:编程实现使用加密算法进行证书签名,生成证书。实现B/S架构,证书申请
    • 第14周:整体功能测试,优化用户体验
  • 刘香杉
    • 第11周:技术知识的积累,理论学习,
    • 第12周:学习如何编程实现通过Openssl、GMSSL的应用来生成CA密钥对,如何实现SM2,ECC,RSA加密算法以及如何实现PKCS10编码转换,将论文架构搭好同时撰写论文中相关理论学习内容
    • 第13周:学习如何使用加密算法进行证书申请、证书签名、生成证书,并完善论文中相关内容
    • 第14周:进行整体功能测试、优化用户体验,完成报告撰写

2、第一周进展

①本周计划完成的任务

  • 了解PKCS#10标准
  • 对老师给的示例网站进行学习研究
  • 敲定作品的答题框架及实现功能
  • 对SM2,ECC,RSA进行进一步学习,寻找加密代码

②本周实际完成情况

1、了解PKCS#10标准

2、对老师给的示例网站进行学习研究

  • 已进行讨论学习,明确了实现的功能。
  1. 敲定作品的大体框架及实现功能
  • 大体框架定为B/S架构,减少客户端压力。
  • 主要功能有:
    • 生成CA自己的密钥对,通过openssl来生成
    • 对用户传来的公钥,进行CA签名,证书签发,主要涉及了三种算法:SM2,ECC,RSA。
    • 对用户申请的数据进行编码转换,符合PKCS10标准
    • 实现B/S架构,用户通过网页进行访问,证书申请
  • 对此任务,我们主要要实现的是
    • PKCS证书格式,编码的学习和认识
    • B/S架构,web编程
    • 证书的签名算法
    • Openssl生成密钥的应用
  1. 对SM2,ECC,RSA进行进一步学习

③本周遇到的问题与解决过程

本周主要是理论知识及大体框架的思考,并不存在太多的问题,主要就是在信息搜索过程,可能有些方面理解需要时间,资料并不详细。
返回目录



(二)第二周

## 1、本周计划任务 对Openssl,GMSSL的应用,生成CA密钥对,实现SM2,ECC,RSA加密算法,实现PKCS10编码转换

2、本周实际完成任务

  • 学习如何编程实现通过Openssl、GMSSL的应用来生成CA密钥对,如何实现SM2,RSA加密算法理论知识,详情见博客[https://www.cnblogs.com/musea/p/10891515.html]
  • 实现了生成ECC,SM2,RSA公私钥对
  • 实现了生成ECC,SM2,RSA证书申请请求的PKCS10格式的转换
  • 实现了ECC,SM2,RSA CA根证书的生成。
  • 实现了ECC,SM2,RSA 对用户请求证书的生成

代码链接:https://gitee.com/eratoding/Mini_CA内SRC为代码,Lib为所用到的支持库

  • 以SM2为例,用户证书和CA根证书的展示

  • 生成的所有证书,以SM2为例,用户证书和CA根证书展示

返回目录



posted on 2019-05-12 23:14  musea  阅读(1160)  评论(0编辑  收藏  举报