安全文件传输系统的设计与实现
- 格式:docx
- 大小:243.40 KB
- 文档页数:11
摘 要随着网上办公的普及化,网络安全问题受到越来越多的关注。
本文主要研究PKI技术在文件传输中的应用,通过将PKI技术应用到文件传输系统中,实现文件的安全传输。
此安全文件传输系统能够保证传输文件的机密性、文件的完整性以及收发双方的非否认性。
使用对称密钥加密文件,可以实现文件内容的机密性,即文件内容不被泄露给第三方;对文件内容生成消息摘要,接收方通过将自己生成的文件的消息摘要,与接收到的发送方生成的文件消息摘要作对比,可保证接收文件的完整性,即不被第三方篡改;通过使用签名技术,即用户使用自己的私钥生成签名,可以保证收发双方的非否认性。
通过应用PKI技术,可以实现了一个安全的文件传输服务。
本系统主要分为密钥管理系统和文件传输系统。
密钥管理系统主要包括CA认证机构、证书库以及证书撤销三个模块。
密钥管理系统主要负责用户公钥的管理,其CA认证机构为用户颁发证书,通过将证书与公钥的绑定可以保证公钥的安全性。
密钥管理系统的证书库提供证书查询,而证书撤销模块提供对不需要的证书实行撤销服务。
文件传输系统包括文件传输管理、任务管理、安全事务管理、配置管理、用户管理等模块。
文件传输管理模块,实现用户对文件的发送、接收,以及查看文件的发送状态,取消正在发送的文件,续传上次未发送完成的文件。
任务管理模块,提供给用户查看已完成的任务、进行中的任务、未开时的任务、删除任务、启动任务等功能。
安全事务管理,该模块完成对客户端上传至服务器的文件进行加密、签名以及生成消息摘要。
用户管理模块,系统的用户必须由管理员进行添加,而不接受用户注册,管理员主要完成新用户的添加、用户信息的修改以及用户删除等操作。
通过对以上各功能模块的实现、集成,从而实现了一个安全的文件传输系统。
本课题通过将PKI技术应用到文件传输中,保证了文件的机密性、完整性以及收发双方的非否认性,从而很好的满足客户的安全性需求。
本课题实现的安全文件传输系统,能够为客户各部门机构之间提供安全的文件传输服务。
基于局域网的文件传输系统的设计与实现摘要随着互联网技术的迅猛发展,计算机通信给人类文明带来了翻天覆地的变化。
很多情况下,人们的日常工作需要借助文件传输来完成。
但大多数文件传输功能都需要借助移动磁盘等硬件设备或Internet上的服务器才能实现。
这就给那些具有大规模内部网络的用户造成了许多问题,如浪费资金、浪费网络资源、病毒入侵、降低了工作效率等。
为了方便局域网内主机的资源共享,需要开发一个基于局域网的文件传输工具,在内部网络中实现文件交换。
基于局域网的文件传输系统的设计选用Delphi 为开发工具,以C/S模式通过建立Socket连接后实现局域网快速,准确,安全的点对点文件以及文件夹传输功能。
本系统能够促进局域网内用户之间的文件资源共享,满足主机之间信息交流,确保文件及文件夹传输安全性,有效地提高工作效率。
设计共分为五大模块,分别为:一、介绍选题背景及意义和国内外研究现状;二、介绍TCP/IP点对点协议技术,C/S架构的Delphi程序设计技术和Socket网络编程技术;三、对当前局域网文件传输进行需求分析并提出解决方案;四、根据解决方案对系统进行设计;五、对基于局域网的文件传输系统进行测试并得到测试结果。
关键词:C/S结构;网络通讯组件;点对点;Socket连接The Design and Implementation of File TransferSystem Based on LANAbstractAlong with the Internet technology swift and violent development, the computer correspondence the human culture has brought the earth-shaking change for. In very many situations, people's routine work needs to draw support from the file transfer to complete. But the majority file transfer function all needs to draw support moves hardware equipment or the Internet and so in the floppy disk server can realize This gave these to have the large-scale internal network user to create many problems, like the waste fund, the waste network resources, the viral invasion, reduced the working efficiency and so on. In order to facilitate in the local area network main engine resources sharing, needs to develop one based on the local area network file transfer tool, realizes the document exchange in internal network.The design and implementation of file transfer system base on LAN uses Delphi development tool,C/S mode through the establishment of Socket after connecting LAN users fast, accurate, the point-to-point security files and folders transmission functions. The system can contribute to LAN users to share file resources to meet the exchange of information between mainframe, ensure that the filets and folders transmission security, effectively improving efficiency.The design is divided into five major module altogether, including: First, introduction selected topic background and significance and domestic and foreign research present situation; Second, introduces the TCP/IP point to point protocol technology, C/S overhead construction Delphi programming technique and the Socket network programming technology; Third, carries on the demand to the current local area network file transfer to analyze and to propose the solution; Fourth, carries on the design according to the solution to the system; Fifth, to carries on based on the local area network file transfer system tests and obtains the test result.Key words:C/S structure; Network communication module; Point-to-point; Socket connection.目录论文总页数:26页1 引言 (1)1.1 选题背景 (1)1.2 国内外研究现状 (1)1.3 课题研究的意义 (1)2 理论基础 (2)2.1 TCP/IP点对点协议技术 (2)2.2 C/S架构的DELPHI程序设计技术 (2)2.3 SOCKET网络程序设计技术 (3)3 系统需求分析 (4)3.1 现行业务系统描述 (4)3.2 现行系统存在的主要问题分析 (4)3.3 提出解决方案 (4)4 系统设计 (5)4.1 系统总体架构 (5)4.2 系统界面设计 (6)4.2.1 界面设计 (6)4.2.2 用户信息 (7)4.3 系统功能模块设计 (9)4.3.1 获取用户信息 (9)4.3.2 局域网内文件传输 (13)4.3.3 局域网内文件夹传输............................... 错误!未定义书签。
网络文件传输系统的设计与实现作者指导老师摘要:在科学技术飞速发展的今天,Internet已经和人们的日常生活息息相关,无论是工作,学习还是娱乐,都离不开网络。
比如有时候需要进行文件的传输,虽然现在的许多网络文件传输工具能基本满足人们对文件传输质量的要求,但是它们往往都存在安全性,工作效率低等问题。
本课程设计的文件传输系统是在Windows操作系统下,Visual C + + 6.0环境下借用WinSock控件实现的,是基于TCP/IP协议的C/S模式,在服务器和客户端分别以socket为中心进行编程,客户端和服务器端的界面分别是由文件发送模块和文件接收模块组成。
客户端先调用connect()与服务器建立连接,然后用send()发送数据;服务器端先调用listen()侦听客户端的连接请求,然后调用accept()对连接请求进行响应,如果需要接收数据,则会调用receive()接收。
本文件传输系统成功的实现了服务器和客户端的文件传输,不论是较小范围内的局域网还是远程网,而且还可以传输多种格式的文件,如word,视频,图像等。
相比其它文件传输工具而言,本系统有很多的优点。
首先,界面简单,易于操作;其次,传输较大的文件时,不需要花费很长时间。
关键词:文件传输;WinSock ; socket编程; C/S结构目录1 绪论 (3)1.1选题背景 (3)1.2选题意义 (3)2开发环境及相关技术简介 (4)2.1开发环境Visual C++ 6.0介绍 (4)2.2基于vc的socket网络编程的基本原理 (4)2.2.1 socket的基本概念 (4)2.2.2Winsock网络编程原理 (5)2.3 TCP/IP协议简介 (5)2.5 C/S结构 (6)2.5.1 C/S结构的概念 (6)2.5.2 C/S结构的工作模式 (6)2.5.3 C/S结构的优点 (6)3 网络文件传输系统的设计 (6)3.1服务器端和客户端界面介绍 (7)3.1.1服务器界面介绍 (7)3.1.2客户端界面介绍 (7)3.2服务器端,客户端程序分析 (8)3.2.1服务器端分析 (8)3.2.2客户端分析 (12)4实现 (16)4.1系统运行环境 (16)4.2文件传输系统的测试 (16)4.2.1实验一:局域网内文件传输 (16)4.2.2实验二:远程网络上文件传输 (18)4.2.3实验三:较大文件的传输 (20)4.2.4实验四:不同格式文件的传输 (20)4.3该文件传输系统的不足 (21)5结论 (21)致谢 (22)参考文献 (23)1 绪论1.1选题背景21世纪被称为信息时代,因为计算机技术的迅猛发展,给人们的日常生活以及工作,都带来翻天覆地的变化。
c++文件传输毕业设计摘要:本文描述了一个基于C++的文件传输系统的设计与实现。
该系统具有高效和安全的特点,并且采用了TCP/IP协议进行数据传输。
系统分为客户端和服务器端,客户端可以将本地文件传输到服务器端,服务器端可以接收并保存文件。
在设计过程中,使用了文件流、套接字编程和多线程技术。
通过对系统进行测试和评估,验证了其稳定性和可靠性。
最终结果表明,该文件传输系统能够快速、安全地传输大文件,并且能够满足用户的需求。
1. 引言文件传输是计算机网络中常见的任务之一。
随着互联网的发展和普及,文件传输系统需要具备高效、安全、稳定和可靠等特点。
本文设计了一个基于C++的文件传输系统,该系统通过TCP/IP协议进行数据传输,能够满足用户的需求。
2. 系统设计2.1 系统结构文件传输系统分为客户端和服务器端两部分。
客户端提供了文件选择和传输功能,服务器端则负责接收和保存文件。
2.2 数据传输系统基于TCP/IP协议进行数据传输,使用套接字编程进行通信。
客户端通过套接字将文件内容划分为较小的数据块并发送给服务器端,服务器端再将接收到的数据块组合成完整的文件。
2.3 多线程技术为了提高系统的传输效率,使用了多线程技术。
客户端和服务器端均开启多个线程进行文件传输,从而实现并发传输。
3. 系统实现3.1 客户端实现客户端使用C++编写,通过用户界面提供文件选择的功能。
客户端接收用户选择的文件,并将文件内容划分为数据块进行传输。
客户端还可显示传输进度和传输结果。
3.2 服务器端实现服务器端使用C++编写,通过套接字接收客户端传输的数据块。
服务器端将接收到的数据块组合成完整的文件,并保存到本地磁盘中。
服务器端还可显示传输进度和传输结果。
4. 系统测试与评估为了验证系统的稳定性和可靠性,对系统进行了测试。
通过传输大文件和多个文件,评估系统的传输速度和传输成功率。
测试结果表明,系统能够快速、安全地传输大文件,并且具有良好的稳定性和可靠性。
《基于ANDROID的蓝牙多点文件传输系统》篇一一、引言随着移动互联网的飞速发展,Android设备在人们的日常生活中扮演着越来越重要的角色。
其中,蓝牙技术以其无线传输的便利性,在Android设备间进行数据交换中得到了广泛应用。
本文旨在探讨基于Android的蓝牙多点文件传输系统的设计与实现,以实现高效、稳定、便捷的多点文件传输。
二、系统概述基于Android的蓝牙多点文件传输系统是一种利用蓝牙技术,在多个Android设备间进行文件传输的系统。
该系统能够实现在不依赖于网络连接的情况下,快速、安全地传输大量文件。
其核心功能包括文件选择、传输、接收和传输状态管理。
三、系统架构本系统的架构主要包括用户界面层、应用逻辑层和数据访问层。
用户界面层负责与用户进行交互,展示文件列表、传输进度等信息。
应用逻辑层负责处理文件传输的逻辑,包括文件选择、传输协议的实现等。
数据访问层负责与蓝牙设备进行通信,实现文件的发送和接收。
四、系统设计1. 硬件设计:本系统主要依赖于Android设备的蓝牙硬件模块进行文件传输。
在硬件设计上,需要保证蓝牙模块的稳定性和可靠性,以保证数据传输的稳定性。
2. 软件设计:软件设计包括Android应用的设计和蓝牙通信协议的设计。
Android应用需要实现用户界面、文件选择、传输管理等功能。
蓝牙通信协议需要实现数据的封装、解封装以及错误处理等功能。
五、系统实现1. 文件选择与传输:用户通过Android应用的用户界面选择要传输的文件,应用将文件列表发送给蓝牙模块。
蓝牙模块根据传输协议将文件封装成数据包,并通过蓝牙进行传输。
2. 接收与解封装:接收方设备上的Android应用通过蓝牙模块接收数据包,并由蓝牙模块将数据包解封装成原始文件。
然后,应用将文件保存到本地存储。
3. 传输状态管理:系统需要实时监控文件的传输状态,包括传输进度、是否完成等。
这些信息将通过用户界面展示给用户。
六、系统优化与安全性1. 系统优化:为了提高系统的性能和稳定性,可以对系统进行多方面的优化,如优化蓝牙通信协议以提高传输速度,优化存储管理以减少内存占用等。
文件传输协议的简单设计与实现摘要:文件传送是各种计算机网络都实现的基本功能,文件传送协议是一种最基本的应用层协议按照客户/服务器的模式进行工作,提供交互式的访问,是INTERNET使用最广泛的协议之一。
本设计是用JAVA语言简单实现文件传输协议,利用SOCKET 以及SERVERSOCKE等类方法,当中实现了上传、下载、获取服务器目录等基本文件传输功能。
关键字:文件传输、FTP。
1 具体设计任务1(1实验内容我们的计算机网络实验环境建立在TCP/IP 网络体系结构之上。
各计算机除了安装TCP/IP 软件外,还安装了TCP/IP 开发系统。
实验室各计算机具备Windows环境中套接字socket 的编程接口功能,可为用户提供全网范围的进程通信功能。
本实验要求学生利用这些功能,设计和实现一个简单的文件传送协议。
1(2具体要求用socket 编程接口编写两个程序,分别为客户程序(client.c)和服务器程序(server.c),该程序应能实现下述命令功能:get:取远方的一个文件put:传给远方一个文件pwd:显示远主当前目录dir:列出远方当前目录cd :改变远方当前目录, :显示你提供的命令quit :退出返回此命令的具体工作方式(指给出结果的形式)可以参照FTP 的相应命令,有余力的同学可以多实现几个命令。
2 基本思路及所涉及的相关理论2.1 文件传输协议网络协议是网络中计算机与终端之间正确传送信息和数据的规范格式,起包括语法、语义和时序这三部分。
文件传输协议(File Transfer Protocol, FTP)是在TCP/IP网络中传输文件的一种格式规范,其规定在用户和服务器之间开设两个通信端口:控制端口和数据端口。
前者生存周期为从用户登录开始直至用户登出,后者则在进行数据传送的时候打开,并且在数据传送完毕之后立即结束。
控制端口用来监听双方共同规定的控制字以达到及时提供服务或响应,数据端口则要先将文件拆分成分组再进行传送,这样做的目的是为了更加好的适应网络中的带宽限制,以及减少传送期间节点的延时,以达到高速传送。
建立安全的内部文件传输系统随着信息技术的不断进步和发展,各行各业都离不开电子文件的传输和存储。
然而,随之而来的数据安全问题也越来越受到关注。
为了保护公司的重要机密文件和数据资料,建立一个安全的内部文件传输系统是至关重要的。
本文将从以下几个方面探讨如何建立一个安全可靠的内部文件传输系统。
一、需求分析在建立安全的内部文件传输系统之前,首先需要进行需求分析。
不同公司的需求可能不尽相同,但有几个方面是共通的。
1. 传输速度:内部文件传输系统应该能够提供快速并且稳定的传输速度,以满足公司内部业务的需要。
2. 安全性:系统应该具备高度的安全性,能够防止非法访问、泄露和篡改。
3. 可靠性:系统应该具备高度的可靠性,确保文件传输的完整性和准确性。
4. 管理和授权:系统应该支持对用户的管理和授权,以确保只有授权人员可以访问和传输文件。
二、系统设计基于需求分析,下面是一个建立安全的内部文件传输系统的设计方案:1. 网络架构系统基于内部局域网构建,通过防火墙隔离内部局域网与公网,提高系统的安全性。
同时,可以通过虚拟专用网络(VPN)等技术,实现外部员工与内部系统的安全连接。
2. 身份认证系统应该有一个完善的身份认证机制,只有经过认证的用户才能够登录和使用系统。
认证方式可以包括用户名和密码,指纹识别,或者二次验证等。
3. 数据加密为了确保数据在传输过程中的安全性,系统应该采用加密技术对传输的文件进行加密。
常用的加密方式包括SSL/TLS协议、AES等。
4. 权限管理系统应该支持不同用户的权限管理,根据用户的身份和职位进行访问级别的设定。
只有具备相应权限的用户才能够访问特定的文件和文件夹。
5. 日志记录和审计系统应该具备日志记录和审计功能,记录每一次文件传输的时间、操作者和具体操作内容,以追踪和监测潜在的安全问题。
6. 文件传输方式系统可以提供多种文件传输方式,例如FTP传输、邮件附件、即时通讯工具的文件传输等。
根据实际需求选择合适的传输方式。
基于局域网的文件传输系统的设计与实现一、系统需求分析首先,我们需要明确系统的需求。
基于局域网的文件传输系统应该具备以下功能:1、快速传输:能够在局域网内实现高速文件传输,减少传输时间,提高工作效率。
2、安全性:对传输的文件进行加密处理,确保文件内容的保密性和完整性。
3、稳定性:在网络环境不稳定的情况下,依然能够保证文件传输的可靠性,不会出现文件丢失或损坏的情况。
4、多用户支持:允许多个用户同时使用系统进行文件传输,且每个用户都有自己的权限和存储空间。
5、操作简便:系统界面简洁直观,用户能够轻松上手,无需复杂的培训。
二、系统设计(一)总体架构设计系统采用客户端服务器(C/S)架构。
服务器端负责管理用户信息、文件存储和传输控制,客户端则负责与用户进行交互,实现文件的上传、下载等操作。
(二)功能模块设计1、用户管理模块:用于注册、登录、修改用户信息等操作。
2、文件传输模块:实现文件的上传、下载、删除等功能。
3、权限管理模块:为不同用户设置不同的权限,如只读、读写等。
4、加密模块:对传输的文件进行加密和解密,保障文件安全。
5、日志管理模块:记录系统的操作日志,便于追踪和审计。
(三)数据库设计建立数据库来存储用户信息、文件信息、权限信息等。
用户表包括用户 ID、用户名、密码等字段;文件表包括文件 ID、文件名、文件路径、文件大小等字段;权限表包括用户 ID、文件 ID、权限类型等字段。
(四)网络协议选择选用 TCP/IP 协议作为系统的网络通信协议,保证数据传输的可靠性和稳定性。
三、系统实现(一)服务器端实现1、使用 Java 或 C++等编程语言实现服务器端的逻辑。
2、建立监听端口,等待客户端的连接请求。
3、处理客户端的注册、登录等请求,并验证用户信息。
4、接收客户端上传的文件,存储到指定位置,并更新数据库中的文件信息。
5、响应客户端的下载请求,将文件发送给客户端。
(二)客户端实现1、使用相应的编程语言开发客户端界面,提供简洁直观的操作界面。
《安全加密即时通信系统的设计与实现》一、引言随着互联网技术的飞速发展,即时通信已成为人们日常交流的重要方式。
然而,在信息传输过程中,数据的安全性和隐私保护问题日益突出。
为了解决这一问题,安全加密即时通信系统的设计与实现显得尤为重要。
本文将详细介绍该系统的设计思路、实现方法及关键技术。
二、系统设计1. 需求分析在系统设计阶段,首先进行需求分析。
需求分析主要包括明确系统的功能需求和非功能需求。
功能需求包括用户注册、登录、好友添加、消息发送与接收等基本功能;非功能需求则包括系统的安全性、稳定性、易用性等。
2. 系统架构设计根据需求分析,设计合理的系统架构。
本系统采用C/S架构,将用户端与服务器端分离,以提高系统的安全性和稳定性。
同时,为了保障数据传输的安全性,系统采用端到端加密技术,确保信息在传输过程中不被窃取或篡改。
3. 加密算法选择加密算法是保障系统安全性的关键。
本系统采用AES(高级加密标准)算法进行数据加密。
AES算法具有较高的加密强度和较快的加密速度,能够满足即时通信系统的安全需求。
三、系统实现1. 开发环境搭建系统实现首先需要搭建开发环境。
开发环境包括操作系统、开发工具、数据库等。
本系统采用Linux操作系统、Java开发语言、MySQL数据库等构建开发环境。
2. 用户模块实现用户模块是实现即时通信系统的基础。
用户模块包括用户注册、登录、好友添加等功能。
用户注册和登录采用密码加密存储,确保用户信息的安全性。
好友添加则通过验证机制,确保添加的好友是可信的。
3. 通信模块实现通信模块是实现即时通信系统的核心。
通信模块采用TCP/IP 协议进行网络通信,并采用AES算法进行数据加密。
在数据传输过程中,通过握手协议建立通信连接,确保数据的完整性和真实性。
同时,为了防止恶意攻击,系统还采用了防火墙、入侵检测等安全措施。
四、关键技术1. 端到端加密技术端到端加密技术是本系统的核心技术之一。
通过端到端加密技术,确保信息在传输过程中不被窃取或篡改。
基于云计算的大型文件传输系统设计与实现随着社会的快速发展和科技的不断创新,数字化已经成为了日常生活中不可或缺的一部分。
而在数字化的大潮中,大型文件的传输所涉及到的问题也越来越引起了人们的重视。
云计算作为一种高效的计算和存储方式,正在逐步走进我们的生活。
本文就基于云计算技术,探讨如何设计和实现一款高效的大型文件传输系统。
一、云计算技术在大型文件传输中的应用云计算作为一种新兴的计算和存储方式,其为大型文件的传输提供了良好的支持条件。
云计算技术具有高并发、高可用、高容错、高可扩展性等特点,能够满足大型文件传输过程中的各种需求。
在基于云计算的大型文件传输系统中,云存储是不可缺少的一部分。
云存储通过互联网连接云服务商提供的存储设施,模拟网络文件系统架构,实现数据的全球访问和备份。
同时,云存储还具有安全性高、成本低等优点,能够实现大型文件的高效传输和备份。
二、基于云计算的大型文件传输系统的设计和实现1、需求分析在设计和实现大型文件传输系统之前,需要进行详细的需求分析,确定系统的功能和性能指标。
具体需求如下:(1)高效传输:系统可以在较短的时间内传输大量的文件数据。
(2)高安全性:系统需要具备较高的数据安全性和可靠性,能够防止数据丢失和泄露等问题。
(3)高可扩展性:系统需要具备强大的扩展性,可以根据需要进行灵活的扩容和缩容。
(4)易于操作:系统需要具备简单、易操作的界面,用户可以方便地进行文件传输等操作。
2、系统架构设计在确定系统需求后,需进行系统架构设计。
基于云计算技术,系统架构主要分为客户端和服务端两部分。
客户端主要用来进行用户的文件上传、下载、删除等操作。
通过云服务商提供的云存储,可以将文件上传到云存储进行存储,在需要的时候进行下载操作。
服务端主要用来处理用户的请求,包括文件上传、文件下载、备份、存储等一系列操作。
服务端需要具备高并发的能力,能够在多客户端的情况下保证服务的稳定性和高效性。
3、系统实现在进行系统实现时,需要根据需求和架构设计进行具体实现。
安全文件传输系统的设计与实现院系:计算机与通信工程学院班级:嵌入式软件10-01姓名:学号:*****指导老师:陈晓雷老师1.安全文件传输系统的软件设计框架安全文件传输系统由硬件和软件两部分组成。
硬件部分可以是普通的安装Linux操作系统的PC机,也可以是嵌入式系统。
本系统的硬件实现平台是S3C2440嵌入式开发板。
现代网络通信中,大部分网络协议的实现都由客户端(Client)和服务器端(Server)来协作完成。
这种模型本质上涉及两个不同的程序,通常这两个程序在不同机器上运行,这些机器之间都有网络连接。
服务器端程序提供服务并对来自客户程序的请求作成响应。
而客户端程序则是在使用者和服务器端程序之间建立某种沟通的渠道,或者是作为使用服务器端提供的某种网络服务的工具。
本文传输过程也是通过客户端和服务器端来实现,软件实现的总体框图如图:系统使用C和C++程序编写,支持将每个文件的元数据进行存储;支持从服务器中获取文件的元数据;服务器是多线程的,能够允许多个客户端同时连接;并且记录文件操作事件日志,能够支持用户名和密码的验证;客户端是QT应用程序,具有上传和下载两种能力,并且为了确保上传和下载是否成功,先检查碰盘空间。
系统的数据流如图:服务器端是数据流向的交汇点,也是系统数据存储的资源池。
各个客户端发起连接请求,服务端利用进程并发技术,相应多个客户端的请求。
因此服务端主要完成两个任务,检查客户端是否成功登录,以及判断客户端发来的信号,对该信号进行相应。
客户端是每个应用终端的实现方式也是外在表现,它主要包括:登录交互平台、检查信息是否完整喝客户端主窗口的配置。
用户根据自己的需要在成功登录系统以后,可以向服务器发出命令。
可以发出的命令包括:服务器List显示、服务器端List刷新、上传文件、下载文件、客户端List显示。
系统的内部设计是通过socket套接字建立连接,socket在所有的网络操作系统和网络应用程序中都是必不可少的,它是网络通信中应用进程和网络协议之间的接口。
在Linux操作系统中,socket属于文件系统中的一部分,网络通信可以被看作是对文件系统的读取。
这就使得用户对网络的控制,像对文件的控制一样方便。
Socket网络通信同样也分为服务器端和客户端两部分。
2.安全文件传输系统的服务器端设计服务器端的作用是响应用户连接请求,验证用户,对取到的命令进行解析,根据命令执行不同的操作。
根据输入的文件名打开文件并将文件数据读入缓冲区;将缓冲区内的数据写入文件。
并且对接收到的协议包解封,将数据缓冲区中的数据进行封装。
服务器端内部设计流程图如图:服务器端内部设计主要用到的连接函数有:(1) int socket(int family, int type, int protocol)该函数用于建立一个socket连接,可指定socket类型等信息。
在建立了socket连接之后,可对socketadd或sockaddr_in进行初始化,以保存所建立的socket信息。
(2) int bind(int sockfd, struct sockaddr *my_addr, int addrlen)该函数是用于将本地IP地址绑定端口号的,若绑定其他地址则不能成功。
另外,它主要用于TCP的连接,而在UDP的连接中则无必要。
本文基于TCP连接。
(3) int listen(int sockfd, int backlog)该函数用于通知内核,服务器将在某个套接口上监听并接受连接。
(4) int accept(int sockfd, void *addr, int *addrlen)该函数的作用是,当其被调用时,服务器端的程序会一直拥塞直到有一个客户程序发出了连接。
accept()调用成功时,返回连接进来的客户机的文件描述符,之后服务器端就可以利用该描述符向客户机读写信息了,失败时返回-1.(5)int send(int sockfd, const void *msg, int len, unsigned int flags) 和int recv(int sockfd, void *buf, int len, unsigned int flags) 这两个函数是在建立连接后用于完成发送与接收数据的系统调用。
3.安全文件传输系统的客户端设计客户端的作用是通过输入IP,port向服务器发起请求连接,然后将用户名和密码发给服务器进行验证,验证通过后通过选中客户端本地的目录来查看该目录下的文件列表,上传的时候根据输入的文件名找到文件并将文件数据读入缓冲区,下载的时候从保存有文件数据的缓冲区取出数据写入本地磁盘。
客户端在上传文件的时候将得到的文件数据缓冲区中的数据封装到协议包,下载文件的时侯根据得到的协议包解析出其中包含的文件有效数据。
客户端内部设计流程图:客户端内部设计主要用到的连接函数有:(1) int socket(int family, int type, int protocol)该函数的作用同服务器端socket()函数,用于建立socket连接。
(2) int bind(int sockfd, struct sockaddr *my_addr, int addrlen)该函数的作用同服务器端bind()函数,用于将本地IP地址绑定端口号。
(3) int connect(int sockfd, struct sockaddr *serv_addr, int addrlen)该函数用于与服务器端建立连接。
(4) int send(int sockfd, const void *msg, int len, unsigned int flags) 和int recv(int sockfd, void *buf, int len, unsigned int flags)这两个函数是在建立连接后用于完成发送与接收数据的系统调用。
系统的通信流程是:首先在服务器端使用socket()建立一个通信的断点,再用bind()命令把一个地址绑定到这个端点,然后,服务器端使用listen()侦听连接请求。
当远程的客户机试图使用connect() 连接listen()正在监听的端口时,连接将会在请求队列中等待,直到服务器使用accept()处理了连接请求后,将会产生一个新的描述这个连接端口的套接字,利用这个套接字旧可以发送或接收数据了。
如果listen()一直没有侦听到连接请求,那么服务器任务就会在accept()处阻塞,直到有连接请求到来。
对于客户任务来说,它也需要先用socket()建立一个通信端口,但是它不必用bind()把一个本地地址绑定到这个端口,而是直接使用connect()向指定的服务器发出连接请求,如果请求被接受,下一步就可以进行数据流通信了。
4.安全文件传输系统的安全策略设计目前常见的加密协议有以下几种:IPSec协议,SET协议,SSL协议。
其中IPSec协议可以提供很高的安全性,但是实现它却不是一件很容易的事,它需要对网络层的IP数据包进行重新封装,无论对服务器还是客户端都要做很大的改动,对于安全文件传输系统而言,代价很大且增加了通信两端的复杂度。
SET协议是应用层的安全协议,它是专门针对网上信用卡支付提出的一个标准,主要是保证通信信息的加密与安全,很有针对性。
本系统并未涉及电子交易方面的东西,因此不是网络通信系统安全协议的最佳选择。
SSL协议是一种在两台机器之间提供安全通道的协议,它具有保护传输数据喝识别通信机器的功能。
应用SSL协议所建立的通道是透明的,它对传输的数据不加更改,客户端和服务器之间的数据是经过加密的,这种透明性使得几乎所有基于TCP的协议稍加修改就可以运行于SSL之上,非常方便。
本系统就是利用SSL协议为Linux系统之间的文件传输打造一个安全的通道。
SSL可以看成是在应用层和传输层之间的一个层,SSL协议在应用层协议通信之前完成加密算法、通信密钥的协商以及服务器认证工作.应用层协议传送加密数据。
从而保证通信的私密性。
SSL协议堆栈图如图:SSL协议主要功能是在客户与服务器间提供了一条的安全通信连接,主要由握手协议和记录协议实现。
其中SSL握手协议负责客户与服务器间会话的加密。
当SSL客户端与服务器第一次通信时。
他们需要交换版本号、加密算法、身份认证并使用公钥技术来生成共享密钥:SSL 记录协议用于交换应用数据。
发送方SSL接收应用层数据。
对数据加密。
而后将加密数据送往TCP插口,接收方从TCP插口读取数据后。
解密交给应用层。
SSL协议提供一种加密的握手会话.使客户端和服务器端实现身份验证、协商加密算法和压缩算法、交换密钥信息。
如果两台计算机协商建立新的SSL会话.它们会使用数字证书来确认对方的身份、交换密钥材料。
密钥材料的交换利用网络服务器的公钥对材料进行加密。
一旦收到加密后的材料.网络服务器就用相应的私钥进行解密。
这种握手会话通过数字签名和数字证书来实现客户机和服务器双方的身份验证。
在用数字证书对双方的身份验证后。
双方就可以用密钥进行安全会话。
本系统的服务器端SSL协议实现过程如图:所示为服务器端SSL流程,客户端的SSL实现是服务器端实现的逆过程。
整体流程为:SSL客户端向SSL服务器发送连接请求.并要求验证服务器的身份;服务器发送数字证书响应以证明其身份;客户端验证证书的有效性;服务器发出客户端的证书验证请求;完成对客户端的证书的验证;协商用于加密的加密算法和用于完整性检查的哈希函数;客户端和服务器互发随机数并通过使用哈希函数从随机数中生成会话密钥。
SSL握手协议描述建立安全连接的过程。
而SSL记录协议则定义了数据传送的格式.上层数据包括SSL握手协议建立安全连接时所需传送的数据都通过SSL记录协议再往下层传送。
这样,应用层通SSL 协议把数据传给传输层时,已是被加密后的数据。
5.结论安全文件传输系统是手持式PDA的一个重要功能软件,它的成功实现为用户安全保密工作提供了一种可行的方法。
本文从软件的整体设计方法上依次介绍了系统服务端、客户端设计,并对系统安全策略进行了分析,介绍了本系统所使用的SSL协议的加密方法。
系统整体运行稳定,传输效率高。
6.参考文献[1] 卢开澄.计算机网络中的数据保密与安全[M].北京:清华大学出版社, 1998.[3] 王渊.赵宇.嵌入式Linux网络通信的实现[J].电子测量技术.3.实训总结:通过这半年的大实训,让我对本专业的知识运用有了进一步提高,在自学能力方面也有了不小的进步,对于项目的开发流程和相关知识的如何查找,如何运用也有了新的体会。
我觉得最重要的是,如何掌握做项目的方法,如何掌握解决问题的方法,这个过程才是我们大实训的最大意义所在,在老师的指导下,这也是我体会最深刻的地方。