admin 管理员组

文章数量: 1184232


2024年3月19日发(作者:抱组词三年级上册)

维普资讯

第7卷 第12期2007年6月 

科 学 技 术 与 工 程 

V0L 7 No.12 Jane 2007 

1671.1819(2007)12-2974-.04 

ScieTechnology and Engineering 

2007 Sci.Tech.Engng. 

基于Socket的安全即时通讯软件的设计 

李延松 余隋怀 吴 博 

(西北工业大学软件与微电子学院,西安710065;神州数码西安研发中心‘;西安710072) 

摘 要 在开放式网络为人们远程通信带来便利的同时,也因为其先天存在的问题导致网络传输的安全性日益下降,开放 

式网络存在的安全问题越来越引起人们的广泛关注。如何保证敏感信息在网络上安全的传输成为一个重要的研究课题。基于 

网络通信的软件在设计过程中就应该考虑到如何才能最大限度上对用户的敏感信息进行保护,本系统使用密码学中的 

DH(Difife--Hellman)算法和DES算法,在Socket编程的基础上设计安全的即时通讯功能。 

关键词Difie-Hellman DES serializable 

中图法分类号TN915.08;文献标志码:B 

目前中国的即时通讯软件主要面向的是个人用户, 

1.1.1 Server端 

即时通讯软件的主导力量是个人即时通讯软件,而企业 

负责监听、处理、响应客户端的请求。 

即时通讯软件市场还处于初步发展阶段。与电子邮件相 

Server端分为消息服务和公钥服务两个部分: 

比,即时通讯更加即时、方便、高效,维护成本也相对更 消息服务主要用来处理与用户消息相关的请求;公 

低。因此,即日寸j置讯市场在未来有着巨大的发展空间。 

钥服务主要用来处理与用户发布、下载公钥的相关 

市场流行的各种集中即时聊天软件各具利弊, 请求。 

但绝大多数都是盈利为目的,服务器端往往是普通 

消息服务监听在2136端口(默认),以多线程的 

用户无法触及的,数据交换的流程对于用户是透明 方式对用户端发起的请求予以处理。当一个用户请 

的,因此其安全性也有一定的局限性。其次,这些商 

求与服务器进行连接时,如果用户合法,则服务程序 

业用途的聊天软件服务程序都是不公开,因此无法 为该用户创建一个独立的线程和独立的用户服务类 

使用于普通小群体内部。最后,对于不同的用户,有 

(ServerClass)用于处理和该用户有关的信息,直到 

着不同的功能需求,而这些商用即时通讯软件的功 用户退出客户端或服务器端要求清空在线列表。 

能只能简单地依赖于服务商的更新升级,或者定制 

公钥服务程序监听在3247端口(默认),同样以 

功能需要付出高昂的代价。 多线程的方式响应用户的与公钥操作相关的命令, 

因此,设计一个开放源码的、安全的即时聊天软 

如上传公钥、保存用户公钥、发送给用户指定的公钥 

件,具有相当的市场前景和意义。本文集中讨论基于 文件等。与消息服务程序相同,公钥服务程序会为每 

Socket的安全即时通讯软件的设计过程,并着重阐 

个合法的连接用户穿件一个KeyServer类用于保 

述对数据传输安全的加解密方案的选择。 

持与用户的连接,随时对用户的相关命令作出响应, 

在用户退出或服务器端刷新的情况下该线程会被强 

1 系统设计 

制结束。 

1.1.2 Client部分 

1.1 系统组成 

Client作为用户界面主要用来向用户提供系统 

系统主要分为两大部分:Server和Client; 

的各种功能,同时Client也是用来取得与Server连 

接的唯一途径,通过与Server的通信间接的实现多 

2007年1月16日收到 

用户之间的通信。 

第一作者简介:李延松,西北工业大学软件与徽电子学院硕士研 

究生。E—mail:ger1.1ys@gmail.conl。 

维普资讯

12期 李延松,等:基于Socket的安全即时通讯软件的设计 2975 

1.2 模块设计 

系统的用户界面上主要采用JavaSwing组件进 

行设计;在Socket的设计上,对于普通用户的消息和 

命令采用统一封装成Hashtable后以Object流的形 

请求后,如果同意与A交谈,首先要从服务器上下载 

A的公钥文件到本地,然后结合B的密钥生成共享 

密钥,成功后,发送回应给B,同时交谈开始。交谈过 

程中双方都将使用各自生成的共享密钥进行消息的 

加密/解密,保证在网络上传送的是第三方无法理 

解的内容。 

式传输,而对于公钥文件采用适合于文件传输的 

Data流形式传输,其中有关文件的信息统一封装到 

指定流的指定位数(offset)。 

1.3.2 公钥发布流程 

系统在功能的设计上,依照常用通信软件的基 

用户通过连接公钥服务程序取得公钥上传通 

本功能进行设计的同时,也设计了具有特色的功能 

部分。 

系统的后台支持数据库采用了XML文件,这样可以 

充分考虑到系统的可移植性和扩展性,在对XML文 

件处理上使用的是DOM方式。 

1.3 系统运行流程 

每个用户在运行客户端时都要求产生一对密钥 

(Diffie—Hellman密钥对)存放在用户目录中,在登 

录到服务器时,客户端会自动将自己产生的公钥信 

息,同用户注册信息一起封装到数据包中,发送到 

Server端的消息服务程序。Server程序会将用户的注 

册信息以及公钥信息存放在XML文件中,此时真正 

的公钥文件并没有传送到服务器端,服务程序同时 

要对该用户的相关信息进行保存。 

当一个新的用户成功登录后,首先向Server端 

发送Regedit命令,同时附加上用户自身的注册信 

息。Server端将根据用户信息文件(Clientlnfo.xm1) 

和Socket池中的信息返回给用户在线用户列表,该 

数据以Hashtable的形式发送给用户,用户得到用户 

列表后就表示成功登陆到服务器。为了能够及时更 

新在线用户列表,客户端程序内置了一个时钟 

(Timer对象),该时钟以一定的时间间隔(20s)向服 

务器发送“ReLoadUser”的命令以获得最新的用户 

列表,这个时间间隔可以根据用户需求自定义。 

客户端在退出时,首先向Server端发送“DEL” 

命令,表示用户要求删除自己存储在用户端的所有 

信息,得到服务器相应客户端方可下线。 

1.3.1 消息发送流程 

首先A从服务器端获取B的公钥文件,并保存 

到本地,这一过程主要通过与公钥服务程序进行通 

信来完成;成功下载后,结合A自身的密钥生成共享 

密钥,以后的通信都将用此共享密钥进行加解密;A 

向B发送交谈请求,等待B回应;B在收到A的交谈 

道,将公钥文件传送到服务器指定目录中予以发布。 

客户端完成这步后,其他的在线用户才能下载到该 

用户的公钥文件。 

下面是A要求与B进行对话的操作流程: 

(1)用户A在本地产生DH密钥对并串行化到 

文件中,用户登录服务器时,读取公钥信息与用户登 

录信息一起封装成各式固定的数据包发送到 

Server,Server的消息服务程序接收用户数据包分解 

后以固定的格式保存到XML文件中; 

(2)成功登录后,客户端连接指定的公钥服务 

器(程序),使用客户端的公钥上传功能上传自己的 

公钥文件到服务器; 

(3)用户B登录到Server,执行(1)、(2)步骤, 

此时A和B的公钥都已发布在服务器; 

(4)用户A等到在线用户列表中成功刷新后, 

选择用户 获取用户公钥”从服务器上下载用户B 

的公钥文件; 

(5)用户A发起交谈请求,用户B在收到请求 

后,可以下载用户A的公钥文件到本地; 

(6)交谈开始。此过程不需要用户执行任何有 

关加密或解密的步骤,加密和解密的过程都由程序 

自身完成。 

2加密/解密方案的分析 

为了使研究有可比性,在此比较RSA和Diffie- 

Hellman它们之间各自的优势,以及如何运用它们。 

2.1 RSA+DES的安全通信 

首先创建各自的RSA密钥对,然后互相向对方 

发送自己公钥。当需要通信时,一方生成一个DES 

密钥,并用对方的公钥加密此密钥。为了对方判断这 

是不是自己发的密钥,所以用自己的私钥再加密被 

维普资讯

科 学 技 术 与 工 程 7卷 

对方公钥加密后的密钥。 

时眭,其次才考虑到信息的安全性,因此系统在设计 

与实现中使用的是DH+DES方案。 

针对该方案存在的不足在系统的设计与实现中 

作出以下的处理方案予以弥补: 

将此密钥传给对方,对方先用得到的公钥进行数 

字签名验证,如果密钥正确,再用自己的私钥解密已 

被验证后的密钥,得到DES密钥。此时,双方有相同的 

DES密钥。它们可以进行对称加密通信,传送数据了。 

2.2 Difife—Hellman+DES的安全通信 

1)在交谈发起时,交谈发起方必须先向另一方发送 

交谈请求,否则交谈无法开始,这样可以保证用 

户在需要交谈的情况下才会生成相应的会话密 

钥,否则不予生成,从而防止非法用户的阻塞性 

当需要通信时,首先创建各自的Diffie— 

Hellman密钥对,并互相向对方发送自己公钥。然后 

用自己的私钥和对方的公钥通过一定算法生成共享 

密钥。此时双方的共享密钥完全相同,以后就可以用 

共享密钥进行通信。 

2.3 加密方案分析 

通过对比,RSA算法在理论上的安全性是显而 

易见的。但在实际中,由于非对称算法的复杂度,因 

此能获得多大的优势,是最关键的问题。而Difie— 

Hellman的优点和缺点并存,都比较突出。 

2.3.1 RSA算法+DES算法 

1)RSA的安全性很好,能很好防止中间人攻击。 

2)RSA的速度很慢,数据通信必然要依靠DES 

等对称加密算法 

2.3.2 Diffie—Hellman+DES算法 

具有以下吸引力的特征: 

1)当需要时才生成密钥,减小了将密钥存储很 

长一段时间而致使遭受攻击的机会。 

2)对全局参数的约定外,密钥交换不需要事先 

存在的基础结构。 

3)建立通信速度快。 

然而,该技术也存在许多不足: 

1)比如没有双方身份的任何信息。 

2)算法是计算密集性的,因此容易遭受阻塞性 

攻击,即对手请求大量的密钥。受攻击者花 

费了相对多的计算资源来求解无用的幂系 

数而不是在做真正的工作。 

3)容易遭受中间人的攻击。第三方C在和A通 

信时扮演B;和B通信时扮演A。A和B都与 

c协商了一个密钥,然后C就可以监听和传 

递通信量。 

2.3.3 DH+DES方案 

即时通信软件在应用上首先考虑的是信息的即 

攻击; 

2)对于遭受中间人攻击的缺陷,解决方案:所有用 

户将自己的公钥发布在一个可信的服务器端,服 

务器来维护这些公钥文件,保持文件的安全性和 

唯一性,任何企图通过篡改用户公钥文件的操 

作,都将被服务器拒绝;同时系统在设计方案中 

规定通信仅限于双方通信,并没有多方通信的机 

制或处理程序,因此可以防止中间人攻击。 

3 结束语 

本文阐述了基于Socket的安全即时通讯软件的 

设计过程,其中主要介绍了数据传输安全部分的设 

计,通过多个方案的对比,提出了适合即时通讯软件 

的数据传输安全方案。 

参 考 文 献 

l 徐迎晓.Java安全性编程实例,北京:清华出版社,2003:l4—54 

2 [美]Stallings W著,杨 明,等译.密码编码学与网络安全:原理 

与实践(第二版).北京:电子工业出版社,2001:5l—6o, 

l3O—l54 

3 魏海萍.标准Java2类库使用手册,北京:电子工业出版社,2005: 

82一lo4,l08一l55,204--232 

4[美]Walrath K,Campione M,Huml A,著,邓一凡,余 

勇,罗云峰。等译.JFCSwing标准教材,北京:电子工业出版社, 

2005:¨4—_345,504--506 

5 卢开澄.计算机密码学——计算机网络中的数据保密与安全.北 

京:清华大学出版社,1998 

6 冯登国,裴定一.密码学导引.北京:科学出版社,1999 

7 Salomma A著.公钥密码学.丁存生,单炜娟,译.北京:国防工业 

出版社。1985 

维普资讯

l2期 李延松,等:基于Socket的安全即时通讯软件的设计 2977 

Design of Security Real-Time Chat Software Based on Socket 

LI Yan-song,YU Sui-huai,WU Bo 

(Software and IC college ofNWPU,Xi’an 710065,P.R.China;DCFS。,Xi’an 710072,P.R.China) 

『Abstract] As the advantage taken by the open—network,on the other hand,the limitation at security is 

the congenita1 limitation to open—network,the security of the open一‘network declines day—by—day, 

therefore more and more specialists issue this point.How to protect the sensitive information which transmitted 

bv the open—network become a important question for discussion.The communications software which based 

on open—network must think over that how to protects the sensitive information of the users by whole hog. 

Depends on the arithmetic of DH and DES.and based on the Socket of Java it easy can take.The course be 

Wil1 introdUced. 

[Key words]Diffie—Hellman DES serializable 

(上接第2973页) 

Full——diversity STBCs from Cyclic-codes in Block——fading Channels 

WANG Lan-xun,LI Wei—zhen,YUAN Lin 

(The College of Electronic and Information Engineering,Hebei University,Baoding 071000,P.R.China) 

[Abstract]According to the theory,it has been proved that a complex orthogonal space—time block code that 

provides full diversity and ful transmission rate is not feasible for more than two antennas.Whereas the performance 

of non——orthogonal space——time block codes which obtain full transmission rate at the cost of orthogonality and par- 

tial diversity gain may be degraded.In this report,we obtain designs for Full—diversity Space Time Block Codes 

fading channels from n length cyclic codes over Fq .The scheme has better coding 

(STBCs)suiatble for Block 

rate. 

[Key words] finite fields 

cyclic codes diversity space——time block codes 


本文标签: 用户 公钥 密钥 软件 信息