一种基于群组密码体制的电子邮件认证方法与系统与流程

文档序号:14634856发布日期:2018-06-08 19:35阅读:449来源:国知局
一种基于群组密码体制的电子邮件认证方法与系统与流程

本发明涉及信息技术领域,特别是指一种基于群组密码体制的电子邮件认证方法与系统,用于安全数据交换。



背景技术:

电子邮件是目前互联网中使用最广的交流工具和服务,通过它,用户可以以非常低廉的价格快速与世界上任何一个角落的网络用户联系。然而,目前邮件系统中缺乏有效的验证机制,使得垃圾邮件、邮件欺骗、基于邮件的DoS攻击等安全事件频繁发生。采用数字签名机制验证电子邮件来源是解决上述问题的一个有效方式。尽管这种想法不是新的,已有电子邮件系统采用了公钥认证机制,然而,这些系统通常被建立在传统公钥密码系统(如RSA、ElGamal、DSA等)基础上,其密钥结构是1:1结构,即1个用户公钥对应1个私钥,这种密码属于个人密码体制,即,邮件系统用户自行管理自身的密钥,并在客户端进行邮件签名,邮件服务器不参与此过程,这被称为“客户端电子邮件认证方法及系统”。上述的签名机制存在以下不足:

1)密钥管理复杂:用户需自己完成密钥的生成、存储、签注、分发及注销等功能,维护开销大;

2)证书验证繁琐:用户需对获取到的发信者公钥证书的合法性进行验证,PKI或PGP验证过程需要客户端额外开销;

为了解决客户端认证的弊端,采用基于服务器端的电子邮件认证被认为是更好的认证方式,也就是在电子邮件中添加“发送服务器签名”,而邮件接收方只需要依据发送服务器的公钥证书对邮件的来源进行验证,就可有效地抵抗各种邮件攻击。这种认证过程被称为“服务器端电子邮件认证方法及系统”,它不需要用户参与,减少了密钥管理开销和证书验证的次数。

构造服务器端电子邮件认证系统的难点在于以下方面:

1)实现密钥管理方与签名操作方的分离,由于服务器端密钥管理中心是系统安全中枢,常规数字签名方案业务需部署到该管理中心,增加了它的负载和交互成本,因此,将签名业务转移到新的职能模块更能提高签名与认证效率,但这必须在签名方案上解决“签名密钥不能脱离密钥管理中心”的问题,增加了系统设计的难度。

2)鉴于服务器端邮件加密易于采用群组密码体制予以实现,将签名方案融入到群组密码体制内是一种现实需要,而群组密码系统与传统密码系统有本质的不同,它的密钥结构是1:n,也就是1个公钥对应于n个不同私钥,而生成该签名必须使用系统主私钥,过于频繁的使用主私钥必然会带来它的泄露问题,这对保障主私钥安全不利。因此群组密码系统在密码结构上更加复杂,设计签名方案难度大。



技术实现要素:

针对上述技术问题,本发明提供一种基于群组密码体制的电子邮件认证方法与系统适,用于验证邮件来源,提升电子邮件及其系统的安全性。适用于国家、军队、政府、企事业等机构和单位,能够为这些部门提供邮件的来源认证和完整性验证功能,可有效防范邮件欺骗、企业邮件诈骗、邮件DDoS攻击等安全威胁,保证电子政务安全、移动办公安全等方面具有重要现实意义。

本发明是通过以下技术方案实现的:

一种基于群组密码体制的电子邮件认证系统,所述电子邮件认证系统基于群组密码系统,所述群组密码系统管理一个群组公钥,并为每次发送的邮件生成不同的签名令牌,通过所述群组公钥实现签名认证机制SBS;

所述电子邮件认证系统包括:

协议与接口模块PIM:实现所述电子邮件认证系统与外界实体之间的连接与数据交换;所述外界实体包括终端用户、其它邮件系统、公钥证书交换与认证机构中的任意一种或任意两种或两种以上;

电子邮件管理模块MMM:用于实现邮件系统的基本功能;所述邮件系统的基本功能包括:用户账号管理、通过协议与接口模块PIM实现邮件的收信与发信、邮件存储中的任意一种或任意两种或两种及两种以上;

密钥管理模块KMM:负责维护所述电子邮件认证系统内群组密码系统的群组公钥以及所有用户的私钥,并根据收件人信息通过服务器公钥证书交换接口PEI获取收件人所在邮件服务器的群组公钥。

服务端认证模块SAM:作为服务器的认证代理,提供服务器端邮件的签名与认证服务;

进一步地,所述签名认证机制SBS包括:

签名初始化算法SBS-Setup:用于生成系统公钥和主私钥及签名者私钥;

签名令牌生成算法SBS-GenToken:用于生成系统签发的签名令牌,该令牌用于暂时性的签名授权;

签名算法SBS-Sign:该签名算法SBS-Sign由签名者使用所述签名令牌、所述签名者私钥和所述系统公钥,对给定消息生成签名;

验证算法SBS-Verify:该验证算法SBS-Verify由验证者使用所述系统公钥、接收到消息及签名以及时变参数,最终判定该接收到消息和签名是否有效。

进一步地,所述密钥管理模块KMM,包括:

系统密钥管理单元KMU:负责群组密码系统的初始化,通过调用系统参数生成SBS-Setup算法,产生群组系统的主私钥msk和群组公钥mpk;

私钥管理单元SMU:在邮件认证中用于生成签名的临时性令牌;

公钥管理单元PMU:维护本群组密码系统的群组公钥;与公钥证书交换接口PEI交互获取公钥证书并完成公钥证书的有效性验证。

进一步地,所述服务端认证模块SAM包括服务器签名代理单元SSPU和服务器认证代理单元SVPU,用于提供服务器端邮件的签名与认证服务。

进一步地,所述电子邮件管理模块MMM包括:

账户管理单元AMU:管理所述电子邮件认证系统下的所有账户,对每一个账户,实现新建、删除、设置保护密码以及账户属性的功能;

收信代理单元RPU:接收传递到所述电子邮件认证系统的邮件,并存储和管理所述电子邮件认证系统的邮件;

发信代理单元SPU:将待发送邮件发送出所述电子邮件认证系统,并对发送邮件进行备份存储;

邮件存储单元MSU:负责邮件信息的存储、检索。

进一步地,所述协议与接口模块PIM,包括:

用户端连接协议与接口UPI:邮件客户端使用具体通信协议,通过特定接口与所述电子邮件管理模块MMM进行连接实现邮件交换;所述具体通信协议包括POP3、IMAP、SMTP、Exchange中的任意一种或任意两种及两种以上,所述特定接口包括TCP协议端口、UDP协议端口中的中的任意一种或任意两种及两种以上;

服务器端连接协议与接口SPI:电子邮件认证系统使用具体通信协议与其它电子邮件系统相连接实现邮件交换,该处具体通信协议包括SMTP、MIME中的任意一种或两种;

公钥证书交换接口PEI:与公钥证书Cert的存储与认证机构CA相连接获取和验证公钥证书;所述公钥证书Cert的存储与认证机构CA包括其它基于群组密码体制的电子邮件系统、公钥基础设施PKI中的证书机构、PGP架构下的证书机构中的任意一种或任意两种及两种以上。

一种基于群组密码体制的电子邮件认证方法,采用所述电子邮件认证系统,包括服务器签名代理和服务器认证代理;

所述服务器签名代理具体为:所述服务端认证模块SAM中的所述服务器签名代理单元SSPU从所述密钥管理模块KMM获取服务器签名代理私钥以及所述电子邮件认证系统中邮件服务器的签名公钥证书,执行以下操作:

1)获取临时令牌:所述密钥管理模块KMM获取当前计算机的时间,使用所述签名公钥证书、所述系统主私钥以及系统当前时间,调用签名令牌生成算法SBS-GenToken生成签名临时令牌;

2)邮件签名:使用所述签名公钥证书、所述系统当前时间、所述签名临时令牌以及所述服务器签名代理私钥,调用签名算法SBS-Sign对待签名邮件进行签名生成签名内容;

3)邮件发送:将签名内容以及签名时的系统当前时间追加到邮件内容中,将邮件送往服务器端连接协议与接口SPI。

所述服务器认证代理具体为:所述服务端认证模块SAM中的所述服务器认证代理单元SVPU,执行以下操作:

1)签名检测:对邮件进行检测判断是否包含邮件签名,如果包含签名进入步骤2),如果不包含签名则进入步骤6);

2)证书获取及有效性判断:密钥管理模块KMM获取签名所在的邮件服务器的签名公钥证书并对每个证书中颁发者的签名进行验证;

3)签名时间有效判断:获取邮件中包含的签名时间,并根据时间验证规则判断邮件的签名时间是否有效,如果时间有效进入步骤4),如果时间无效则进入步骤6);

4)签名有效判断:使用所述签名公钥证书、邮件中包含的邮件内容、签名内容以及签名时间,调用验证算法SBS-Verify对邮件进行邮件签名验证,如果签名有效进入步骤5),如果签名无效则进入步骤6);

5)邮件接受:将邮件送达收信代理单元RPU,同意接受该邮件;

6)邮件丢弃:将邮件进行丢弃处理。

进一步地,所述签名时间有效判断步骤中,所述时间验证规则为:签名时间小于系统当前时间且大于系统当前时间与设定时间值之差将被视为属于签名有效期内。

本发明的有益技术效果:

本发明所述方法及系统基于群组密码体制进行电子邮件认证,具有以下优点:

1)采用服务器端签名认证:服务器对发送出去的邮件都可进行签名;对接收邮件都进行签名验证来证明邮件的来源;

2)协作签名:邮件签名需要密钥管理模块与服务器端认证模块协作完成邮件签名操作,避免传统签名必须由密钥管理模块完成,运算负载大的问题;

3)保障主私钥安全:签名系统的签名令牌由服务器进行生成,由签名令牌形式替代密钥管理模块输出主私钥,保障主私钥的私密性,任意数目的签名令牌也无法获取主私钥信息,从而保证它的安全。

附图说明

图1为本发明实施例提供的基于群组密码体制的电子邮件认证系统的模块结构示意图。

图2为本发明实施例提供的基于群组密码体制的电子邮件认证方法的邮件签名方法流程图。

图3为本发明实施例提供的基于群组密码体制的电子邮件认证方法的邮件签名验证方法流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。

相反,本发明涵盖任何由权利要求定义的在本发明的精髓和范围上做的替代、修改、等效方法以及方案。进一步,为了使公众对本发明有更好的了解,在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。

在实施例中,将采用常见的双线性对(Bilinear Pairing)进行构造,具体定义如下:

令G1,G2和GT是三个阶为素数p的乘法循环群,元素G是群G1的生成元,元素H是G2的生成元;那么就有双线性映射且具有以下性质:

1)双线性:对任意的a,b属于使得e(Ga,Hb)=e(G,H)ab

2)非退化性:e(G,H)≠1;

3)可计算性:存在多项式时间内算法可快速计算e(G,H),

令该双线性映射系统表示为S={p,G1,G2,GT,e(·,·)}。

实施例1

基于所述基于群组密码体制的电子邮件认证方法包含一个邮件签名方案,该方案的一个实施例如下:

首先,服务器签名代理单元SSPU进行模块初始操作如下:从密钥管理模块KMM获取由“实施例3”中的签名初始化算法SBS-Setup输出的服务器签名代理私钥ssk;并通过密钥管理模块KMM获取本邮件服务器的签名公钥证书Cert,并加以保存。然后,对每封邮件执行下面步骤:

1)获取邮件操作:电子邮件管理模块MMM中的发信代理单元SPU将待发送邮件Mail送达服务器签名代理单元SSPU。

2)获取当前时间操作:密钥管理模块KMM获取当前计算机的时间t,使用前述签名公钥证书Cert、系统主私钥msk以及系统当前时间t,调用“实施例3”中签名令牌生成算法SBS-GenToken生成签名临时令牌,计算:

SBS-GenToken(mpk,msk,t)→token (1),

得到签名临时令牌token并将签名临时令牌token返回给服务器签名代理单元SSPU。

3)邮件签名操作:服务器签名代理单元SSPU使用前述签名公钥证书Cert、前述系统当前时间t、签名临时令牌token以及服务器签名代理私钥ssk,调用“实施例3”中签名算法SBS-Sign对待签名邮件M进行签名生成签名内容σ,计算:

SBS-Sign(mpk,ssk,M,token)→σ (2),

得到签名内容σ。

4)邮件发送操作:服务器签名代理单元SSPU输出签名内容σ以及签名时的系统当前时间t,即:

Signature=(σ,t),

服务器签名代理单元SSPU将Signature追加到邮件内容M中:

Signed-Mail=(M,Signature),

最后,将Signed-Mail送往服务器端连接协议与接口SPI。

本实施例密钥管理模块KMM中的公钥管理单元PMU与公钥证书交换接口PEI交互获取签名系统公钥证书,所述公钥证书根据X.509证书规定,证书:

cert={DN,version,SN,mpk,CA,flag,Sign},

其中,DN为证书持有人的唯一标识符,version代表X.509证书版本号,SN为证书的序列号,mpk为主公钥信息,CA为证书的签发机构,flag为签名算法标识符,Sign为证书发布者的数字签名。

实施例2

基于所述基于群组密码体制的电子邮件认证方法包含一个邮件签名验证方案,该方案的一个实施例如下:

1)收取邮件操作:通过服务器端连接协议与接口SPI接收本邮件系统的邮件Mail。

2)签名检测操作:服务器认证代理单元SVPU对邮件Mail进行签名检测,如果包含签名则进入步骤3);否则执行步骤8),其中,包含签名的邮件Mail定义如下:

Mail=(M,Signature),

其中,M为邮件内容,Signature的定义见“实施例1”中邮件发送操作。

3)获取证书操作:通过密钥管理模块KMM获取签名所在邮件服务器的群组公钥证书Cert。

4)证书有效判断操作:密钥管理模块KMM对证书中颁发者的签名进行验证,如果验证通过,则视为该证书有效;否则执行步骤8)。

5)签名时间有效判断操作:服务器认证代理单元SVPU获取邮件Mail中Signature包含的签名时间t。根据时间验证规则,判断邮件Mail的签名时间是否有效,若有效则进入步骤6);否则执行步骤8)。时间验证规则定义如下:

timenow-timeconstant<t<timenow

其中,timenow为系统当前时间,timeconstant为设定的一个时间值,即签名时间t小于系统当前时间timenow并且签名时间t大于系统当前时间timenow与设定时间值timeconstant之差将被视为属于签名有效期内。

6)签名有效判断操作:服务器认证代理单元SVPU使用前述群组公钥证书Cert、邮件Mail中包含的邮件内容M、签名内容σ以及签名时间t,调用“实施例3”中的验证算法SBS-Verify对邮件Mail进行邮件签名验证,计算:

SBS-Verify(mpk,M,σ,t)→{0,1} (3),

验证算法返回1代表验证通过,0代表验证失败。如果签名验证通过则进入步骤7);否则执行步骤8)。

7)邮件接受操作:服务器认证代理单元SVPU将邮件Mail送达收信代理单元RPU,同意接受该邮件。

8)邮件丢弃操作:服务器认证代理单元SVPU将邮件Mail进行丢弃处理,如放入垃圾信箱。

实施例3

基于所述基于群组密码体制的电子邮件认证方法含有签名机制,该机制的一个实施例如下:

1)签名初始化算法(SBS-Setup(S)→(mpk,ssk,msk)):给定素数p阶双线性群系统S={p,G1,G2,GT,e(·,·)},分别随机选择G1,G2下的生成元G,H,以及随机选择和哈希函数输出系统主私钥msk=(γ)、服务器签名代理私钥ssk=(λ)和系统主公钥mpk=(Gλ,Gλγ,H,e(G,H),hash(·))。

2)签名令牌生成算法(SBS-GenToken(mpk,msk,t)→token):由主私钥msk生成临时性令牌其中,t=hash(str||T),str为指定字符串的二进制表示,如字符串为“This is a tempor token”,T为当前时间的二进制表示。

3)签名算法(SBS-Sign(mpk,ssk,M,token)→σ):签名者随机选择计算和

由消息M生成签名σ=(η,υ,μ)。

4)验证算法(SBS-Verify(mpk,M,σ,t)→{0,1}):验证者得到签名σ后,由签名者的公钥mpk计算:

当且仅当等式γ=Hash(M||t||w)成立返回1;否则返回0。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1