冲刺分析

系统的设计和实现

系统目标分析

作为一个安全文件传输系统,系统必须达到以下目标:

①保障数据机密性:系统必须确保只有预期的文件接收方才能读取文件信息;

②保障数据完整性:文件接收方能够验证他所接收到的文件是否完整,是否在传输过程中被非法篡改过,以保证他接收到的文件与发送方发送出来的文件完全相同;

③对数据源的身份验证:文件接收方可以验证文件是否确实是由指定的发送方发送过来的;

④网络信息成功收发:系统必须确保发送方能够成功地将文件以及必要的即时消息传输给接收方。

 

系统设计概述

为了实现上述目标,系统将通过高强度的、安全可靠的加密技术对文件进行加密,以防止攻击者截获文件数据后能成功进行破解而导致文件信息泄漏,完善的加密技术尽可能做到使攻击者无法解读其所截获的数据包中的信息。

系统还将对文件进行数字签名以及相应的验证签名处理,以使文件接收方可以判断出文件在传输的过程中是否已被篡改以及文件是否确实是由指定的发送方发送过来的。数字签名技术还保证了文件信息的不可否认性,即如果用户确实向其他用户发送了某一文件,他将无法对此进行否认。

通过引入 PKI技术,利用数字证书对文件进行数字签名、加密等安全处理后再通过网络进行传输,接收方接收到文件之后相应地对文件进行解密、验证签名等安全处理,系统将能够保障文件的机密性、完整性并验证文件的真实来源,实现文件的安全传输。

在网络数据的传输方面,系统通过 Socket 套接字编程技术建立通信双方之间的连接,并自定义一个简单的通信协议,这一协议的核心是双方所发送的数据包的格式、采用的加密算法等,通信双方将严格按照这一协议进行通信、传输文件、即时消息和连接控制消息。

 

3.3系统分层设计

本系统按分层次设计如下:

 

1、TCP/IP层:Socket套接字工作所在的层,为上一层提供可靠的点对点网络数据传输服务;

2、STP层:自定义STP(SecurityTransferProtocol)通信协议,负责通信双方的握手及协商,在该层进行数据的加密解密处理,确保在该层流动数据具有安全性,为上一层提供公文安全传输服务;

3、应用层:使用STP提供的服务进行远程安全公文传输;

系统设计概述
为了实现上述目标,系统将通过高强度的、安全可靠的加密技术对文件进行加密,以防止攻击者截获文件数据后能成功进行破解而导致文件信息泄漏,完善的加密技术尽可能做到使攻击者无法解读其所截获的数据包中的信息。
系统还将对文件进行数字签名以及相应的验证签名处理,以使文件接收方可以判断出文件在传输的过程中是否已被篡改以及文件是否确实是由指定的发送方发送过来的。数字签名技术还保证了文件信息的不可否认性,即如果用户确实向其他用户发送了某一文件,他将无法对此进行否认。

关于文件的传输
对文件进行安全处理之后我们就可以利用系统的网络传输模块将它发送给接收方了,系统的网络传输模块不仅可以发送和接收文件,还可以发送和接收即时消息,这使得用户在传输文件的同时还可以进行点对点的即时交流。系统的网络传输模块是通过 Windows Socket 套接口编程技术来实现的,其核心工作是创建通信双方之间的连接,并利用这一连接传输文件和即时消息。由于在传输数据时我们每次所发送和接收的都是一个个的数据包,所以一个关键的问题是一方如何让对方理解他所发送的数据包中包含的是什么数据,对方只有在知道这一点的情况下才能对数据采取相应的措施。为此,系统为通信双方定义了一个简单的通信协议。

系统分模块设计

根据上述的系统目标以及系统设计概述,我们将系统划分成三大模块,即安全处理模块、IO模块、用户界面模块。

安全处理模块主要负责对文件进行数字签名、加密、解密和验证签名等安全处理;由于系统使用了数字证书,所以访问公钥基础设施,辅助用户申请、查询和下载数字证书,将数字证书安装到操作系统证书库中,查看和删除用户已安装的数字证书等,也是安全处理模块所要兼顾的功能。此模块也是本系统中的要实现的模块。

IO传输模块则主要负责建立和管理通信双方之间的通信连接,读取写入本地文件。

用户界面模块向用户提供友好易用的使用界面;

 

 

为保证传输安全,我们组在讨论系统设计初期设想使用openssl,数字签名是以电子形式存在于数据单元之中,逻辑上与之有关联的数据。数字签名可以用来确认数据单元的完整性和数据单元的来源,能够用于进行消息认证,有效防止他人伪造数据。

 

在前期学习中,我们尝试设计使用基于openssl的CA构建

(1)证书申请。用户提交自己的相关信息到认证中心申请证书。
(2)证书颁发。CA 检查并核实用户提交的申请信息,决定是否为其颁发证书。
(3)证书撤销。在证书的有效期内,若用户的私钥泄露或用户的职责发生变更,必须有一个方法使这些证书无效,此时就需要 CA 对证书进行撤销操作。
(4)证书更新。用户的证书到期或用户需要更新证书的部分信息时,就要进行证书的更新操作,发放新的证书。
(5)密钥生成和管理。CA 的特殊地位决定了它需要产生和管理系统中的密钥。

 

版本号(Version):指明证书的版本格式。根据是否使用扩展项,或扩展项的数目来确定版本号。
证书序列号(Certificate serial number):证书颁发机构给每一个证书分配的唯一的整数值,是与此证书明确联系的。
签名算法标识符(Signature algorithm identifier):用来签发证书的算法以及一些与之相关的参数。
颁发机构名称(Issuer name):生成和签名这个证书的证书颁发机构的 X.500 名称,包括国家、省市、地区、组织机构、单位部门和通用名等。
有效期(Not before/Not after):证书的有效时间段(除非证书被撤销),含有两个时间值:指定在某时间前无效和指定在某时间之后无效。 

主体名称(Subject name):此证书提到的实体的名称,该实体也是拥有与证书公钥对应的私钥的主体。
主体公钥信息(Subject public key information):主体的公开密钥、该密钥使用算法的标识符,以及算法的相关参数。
颁发者唯一标识符(Issuer unique identifier):可选项,一个可选的比特串字段用来唯一证实颁发机构。
主体唯一标识符(Subject unique identifier):可选项,一个可选的比特串字段用来唯一证实主体。
扩展(Extensions):包含一个或多个扩展字段的集合,扩展仅在 v3 版本中加入。
签名(Signiture):包含用颁发机构对上述字段的签名值

 

(1)公文编辑
公文编辑是用户和系统进行数据交互的媒介,采用自定义的结构实现公文信息的数字化,为电子公文传输提供有效的信息来源。用户通过客户端系统界面录入信息数据系统支持导入方式载入附件。
(2)公文发送
公文的发送采用基于自定义协议的网络数据发送方式。
(3)公文接收
公文的接收采用基于自定义协议的网络数据接收方式,公文在接收的过程中需要验证公文的签名,如果签名验证失败,该公文将会被拒收。

 

posted @ 2020-11-29 21:56  regina1st  阅读(110)  评论(0编辑  收藏  举报