2024年3月9日发(作者:)
维普资讯
魏洪波 梁毅周建国 晏蒲柳
(武汉大学电子信息学院武汉430072)
摘要随着互联网安全性地位的迅速提高,企业内部对安全电子邮件的呼声也越来越高。本文给出了以
Linux+Qmail+Php为掏架的邮件服务器,实现在各客户端通过lnternetExpk唧收发安全电子邮件。
关键词安全加密数字签名lnternet Explorer电子邮件
一
1 前言
个企业来说却不大适用。为此,我们采用PGP来
实现企业内部电子邮件的安全。PGP具有以下优
随着lnternet的迅速普及,E—mail得到了广泛
势:
的应用.并且已成为lntemet上不可缺少的部分 但 (I)可 在各种平台上运行,而且各种版本都
由此也带来了很多的不安全因素 在lnternet上,为
可以免费使用。同时,商业版本也能满足特殊用户的
了提高邮件通信的安全性,先后提出了针对安全电
要求。
子邮件的PGP、PEM和S/M1ME标准。但PEM和
(2)采用经过大量的公共审查且被认为绝对
S/M1ME都需要第三方认证中心,也即CA,这对于
安全的算法
职位变化快的特点 本文通过一个采用Web技术和C/S结合方式
本系统在有30多名员工的该地产策划公司运 开发的中小企业办公自动化系统实例分析了中小
行良好,使公司的运作完全规范化和制度化。简洁
企业办公自动化系统的设计与实现。采用这种方式
明了的登录界面增强了系统的安全性;特别是行政
既发挥了Web技术的优势,使信息流转、信息发布、
管理子系统中的用餐管理、考勤管理和用车管理等 查询和维护更加方便;系统的功能扩展和规模扩展
功能大大提高了工作效率;工作管理子系统的个人 更加便利;系统开发速度更快、开发成本更低;又发
日志、【 作报表和员工考核功能既有利于员工提高 挥了C/S结构有利于大数据量(如图形数据)的传
r作效率,又有利于领导对员工进行全面而准确的
输的优点。这种开发方式更加贴近中小企业的实际
考核;项目管理子系统则对企业核心业务是以项
需求,也符合中小企业的实际情况 既满足中小企
目、以单位的地产策划进行了规范化管理;而特色
业对日常办公的需要,又满足其对业务办公的部分
功能内部电子邮件功能和公告板功能增进r员工
需求 另外,采用这种开发方式充分考虑了投人,产
之间的交流与合作,活跃了企业的文化氛嗣。 出比。节约了成本 而且,采用这种开发方式开发的
3结语
办公自动化系统具有良好的扩充升级功能,能够适
应企业未来发展的需要。
DATA(投 翻刃 脚 肋.4
维普资讯
(3)应用范围很广,包括个人和公司
(4)免去了对中间机构不信任的困惑。
序,可以处理多种ExplorerBar的注销。
整个IE插件是以Delphi开发的进程内COM
本文是在以Linux+Qmail+Php为构架的邮件服
务器上实现的。把邮件的加密和数字签名嵌入IE
服务器,其中Delphi自动生成4个标准函数:Dll—
RegisterServer,DllUnregisterServer,DllGetClassObject
中,当客户启动IE后,点击“查看/浏览栏/Mail Se-
cure”
,
和DllCanUnloadNow DllRegisterServer可采用两种
会在IE底部出现邮件加密和数字签名的功
方式自动调用,把COM对象注册到Windows注册
表中。DllUnregisterServer用来移走DllRegisterServer
放在Windows注册表中的所有条目。DllGetClass-
能选项栏。
2 lE界面编程
这一部分主要是COM对象的编程。所有的
COM接口都需要唯一的GUID(Globally Unique I—
dentiifel")才能正常运行。
利用web Accessories技术可以以Interact Ex-
Object负责提供给COM一个类厂,该类厂用来创建
个COM对象。DllCanUnloadNow是从内存中卸载
一
cOM服务器。
3邮件的加密和解密
3.1邮件加密的实现
plorer浏览器为蓝本开发商用浏览器。Intcrnet Ex—
plorer本身预留了4个扩展类型,它们分别为Ex—
plorer Bar、工具栏按钮、主菜单项和上下文菜单项
本文主要是利用Explorer Bar。
Explorer Bar是由Internet Explorer浏览器窗口
1.实现机制
用户在选择“加密”后,先向服务器请求公钥,
通过遍历网页中的所有元素,取出文本内容(即客
户写信的内容),利用DES加密,然后用请求的
RSA公钥对DES的密钥进行加密,并附在密文的后
面,最后把这些密文发给邮件服务器。
2.实现过程
写完信后,选中“加密”,点击“发送”按钮,这
代表的子窗口 打开一个Explorer Bar时,该栏以水
平或垂直的方式显示在浏览器窗口中,垂直的Ex—
plorer Bar被称为Explorer区,水平的Explorer Bar
被称为Communication区,或称为Connn区 Ex—
plorer区和Connn区都有唯一的CLSID(每一个
CLSID都代表一个COM接口的实现),Explorer区
, p0o21493
时客户向服务器发出请求RSA公钥文件的命令。客
户下载公钥,利用HBEventseliek截获“发送”这个
事件,并完成加密工作。其中包括编写一个自动产生
DES密钥的函数AutoProduceDESKey,利用这个密
钥对取出信的内容进行加密,同时利用导人的RSA
公钥对DES密钥进行加密,最后把加密后的字串再
回送给发送页面中的文本区域,完成发送加密邮件
的过程。如图1所示。
在程序中,TForm1.HBEventsclick是其中最重要
的函数。HBEvents是由第三方开发的控件,用来截
获按钮消息。在这采用了HBEvents的click事件。函
数定义为:
function TForm1.HBEventsclick(Sender:TObject):
WordBool;
区为{00021494—0000-0000-C000-000000000046}。
在编程中,自定义一个TIEClassFac类把COM组件
注册到f00021
子键下。TIEClassFac类的定义如下:
type
TIEClassFac=class(TComObjectFactory)
private
procedure AddKey
s;
.
//注册
procedure RemoveKeys; 注销
public
procedure UpdateRegistry(Register:Boolean):
override;
在这个函数中,主要用来处理两个方面的问题。
end;
过程AddKeys是一个通用程序,可以处理多种
Explorer Bar的注册 而RemoveKeys是一个通用程
其一就是向服务器申请公钥,其二就是加密、签名、
加密和签名的选择处理。在每个用户第一次使用时,
是由用户自己生成一对密钥。然后把自己的公钥上
毕营鼗据锺氆捌 ,4
维普资讯
procedure TFo ̄I.WBEventsDocumentComplete
(Sender:TObject;const pDisp:IDispatch;
varURL OleVariant);
在这个过程中,主要是在Web页面下载完成
后,通过分析weh页面的元素,确定该页面是否是
发邮件的Web页面。因为只有是发邮件的web页
面,我们才能取出邮件文本的内容,对其加密。在这
里,我们只分析web页面的标题来确定是不是发邮
件的页面。
3加密和签名的算法
我们在基于企业内部安全电子邮件的实现过
程中,主要是遵循PGP的标准。所以对邮件的加密、
签名,我们都采用了国际上通用的加密和签名算
法,主要有RSA、DES、SH-1、MD5等。虽然算法都是
公开的,是免费的,但被国际标准认为是安全的。在
具体实现中,我们通过过程GetHashString来得到邮
件明文128bit的报文摘要。过程定义如下:
procedure TForm1.GetH ̄hSmng(OrgStr:.stirng;
VO2"DigestStr:string);
过程AutoProdnceDESKey自动产生64bit DES
密钥,定义如下:
procedureTF0m1.AntoProdnceDESKey r varDES
图1安全邮件发送过程
Key:stirng);
DES算法中有四个函数:EncryStr、DecryStr、
EncryStrHex.DecryStrHex
,
它们定义如下:
传到服务器 服务器上专门有一个密钥库,用来记
function EncryStr(Str,Key:String):String;
录各公钥及其用户基本信息。以后当别的用户要向
ufnction DecryStr(Str,Key:String):String;
该用户发安全邮件时,只需向服务器申请该用户的
function Enc ̄StrHex(Str,Key:String):String;
公钥即可。服务器端通过识别用户名,查询到密钥
function DecryStrHex(StrHex,Key:String):String;
后下传到要发邮件的用户 为了使客户端识别到底
EncryStr将Str用密钥key加密,加密后的密文
是加密,或是签名还是加密和签名,我们在密文前 中包含不可见字符,DecryStr是EncryS ̄的解密函
加了1位,用来填充识别标志符。同时由于邮件服 数 EncryStzHex将s 用key加密,加密后的密文全
务器对发送邮件的文本长度有限制,我们还另外增 部转化为十六进制的字符表示,DecryStrHex就是
加了5位,用来保存文本长度。另外在签名中,我们
EncryStrHex的解密函数。
采用了GetHashString(PlainText,HashStr)函数来获
RSA算法中定义了两个过程:RSAEncrypt、
取邮件内容的摘要。
RSADecrypt
,
具体的定义为:
程序中另一个主要过程为TForm1.WBEvents—
Procedure RSAEncrypt(P:String;exp,modb:TGlnt;
DocumentComplete。WBEvents主要是截获Web页面
VarE:String);
的事件。而WBEventsDocumentComplete则用来截获
Procedure RSADecrypt(E:String;exp,modb:TGInt;
weh页面下载完毕的消息。过程定义为:
VarD:String);
CIlZ ̄A DATA 慢 翻Z陀 AFR No.,
维普资讯
RSAEncrypt中P是待加密的明文,E是加密后
的密文,exp、modb是密钥。RSADecrypt中E是密文,
D是解密后的明文,exp、modb是密钥。
3.2邮件的解密
邮件接收者在客户端首先检查邮件是否为加密
或是签名邮件(因为我们已在安全邮件的开头设置
了一位特殊标志符,通过检查标志符判断),如果是
安全邮件,客户端自动调用自己的私钥进行解密,最
后把明文送到客户端。过程如图2所示。
4邮件的数字签名
数字签名可以对消息的来源和数据的完整性作
出验证,防止邮件被篡改。具体的实现过程与加密相
仿,这里不再累述。
5小结
现在电子邮件的应用越来越广泛,特别是企业
内部对安全性的要求也越来越高,不同部门间的信
息有的是保密的。但毕竟是在企业内部,不需第三方
的认证中心。所以采用PGP标准是比较适合的。在本
文中,我们用Delphi实现了基于Web页面的企业内
部安全电子邮件的实现,既满足了安全性的要求,又
具有较好的可扩性。
匪
图2安全邮件接收过程
¨¨ i 曩 一
蕾
_ 潭霉蘸
_ 2002年国际电信技术研讨展示会在京举行. . .
由中太数据和美国西湖集团联合举办的“2002
年国际电信技术研讨展示会”于2002年3月29日
在北京中国大饭店举行.此次会议的主题为“中国
下一代的电信服务”,有超过100位来自中国各大
电信运营商的高级行政及技术主管,和10多家来自
美国并具有国际领先技术的电信设备、技术供应商
及其代表参加会展。
本次展会全方位展示了21世纪最新的通信科
技产品。“2002年国际电信技术研讨展示会”就电
信未来发展趋势和中国下一代电信服务所面临的机
遇与挑战进行了共同探讨。
“2002年国际电信技术研讨展示会”的另一重
点是展示来自硅谷的最新技术和成功案例。
季国鼗薷逯学撇.4
57


发布评论