摘 要:为了提高网上书店交易过程的安全性,利用ASP.NET提供的安全技术,构建了基于RSA公钥密码体系的安全网上书店系统。在系统中设计了一个CA认证子系统,给交易双方颁发数字证书,CA对含有公钥的证书进行数字签名,使证书无法伪造,用户使用私钥对所下订单进行数字签名,保证信息的完整性、真实性,从而防止交易抵赖。最后对CA认证子系统的关键技术,包括客户数字证书的生成、订单的生成给出具体的实现方法。该系统对网上书店的健康发展起到促进作用。
0 引 言
书店担心读者提交订单却不付款,或收到假订单;而读者担心付款后收不到书,或自己的金融信息被别人窃取等。在传统的购书过程中,买卖双方是面对面的,很容易建立起信任关系,但是在网上书店交易过程中,彼此远隔千山万水,由于互联网络既不安全,也不可信,很难建立起交易双方的信任。网上书店从最初发展开始,就摆脱不了网络带给它的安全问题。
随着信息化的深入,制约网上书店发展的安全问题更为突出。因此,本文着重在网上书店交易时引入CA认证系统而使交易双方不能抵赖,从而提高网上书店交易过程中的安全性。这将对网上书店的发展起到促进作用。
1 ASP.NET提供的安全技术
ASP.NET是Microsoft公司于2000年推出的一种Internet编程技术,是。NET Framework的组成部分,.NET Framework具有两个主要组件:公共语言运行库(CLR)和。NET Framework 基础类库(BCL)。
CLR的主要功能是把。NET语言编译成与机器无关的中间语言MSIL(Microsoft Intermediate Language),然后在执行代码时再用即时编译器JIT(Just In Time)将MSIL翻译成面向机器的二进制代码。BCL是一个综合性的、面向对象的和可重用类型的集合,可以使用它开发多种应用程序。
.NET Framework包括两种支持数字签名的非对称算法。一种是RSA算法:RSA支持数据加密和数字签名;另一种是数字签名算法(DSA):DSA仅支持数字签名,不支持数据加密。DSA 的应用没有RSA广泛。
目前RSA公钥密码算法在网络上广泛应用于保密通信和数字签名。RSA算法的安全性是基于数论中大素数分解的困难,所以RSA 需采用足够大的整数。因子分解越困难,密码就越难以破译,加密强度就越高。
RSA算法如下所述:
1.1 作为通信一方的A方生成公钥及私钥
(1)选择两素数p,q,这两个素数一定要保密,且要求一般为100~200十进制数,甚至更大,目的是使解密者难于分解p 与q 的乘积;计算n=pq.
(2)计算n的欧拉函数Φ(n)= (p-1)(q-1)(即n的Euler函数)。选择整数e,使e 与Φ(n)互质,且1
(3)计算d,使d×e=1modΦ(n),即求e的逆。然后A 方将以下数对作为公钥及私钥:公钥(PublicKey):PK= ?e,n?,私钥(Secret Key):SK= ?d,n?.
1.2 加密/解密过程
利用RSA加密,首先需将明文数字化,取长度小于log n位的数字作为明文块。对于明文块M 和密文块C,加/解密的形式如下:
(1)B方若给A 方传递秘密信息,则可能用A 方产生的公钥进行加密如下:
加密:C=Me mod n;此时,由于没有解密密钥d,因此即使是加密者B也不能将此密文C 再解密为明文M ,这就是公钥密码的特点。
(2)A方在收到B传来的信息C 后,用其自己的私钥(也称秘密钥)d 进行解密如下:
解密:M=Cd mod M;1.3 数字签名过程。
若A 方用自己的私钥对明文进行加密:S=Mdmod n,则任何人(知道A 方公钥的人)都可以进行解密,如:M=Se mod n,但是由于只有A方才能将信息M转变为S,因此S 相当于A方对信息M 的数字签名,是RSA最基本和原始的数字签名方案。这也是RSA 既作为数据加密算法,又可以作为数字签名算法的原因。
相对于散户而言,有一些网上书店的客户是长期、业务量大的合作伙伴,比如院校、个体书商、中小型书店等。这些客户的每笔业务量通常较大,要求网上书店所给予的服务应该是快捷、准确、无误的。伴随着业务量的增大,双方结账可能并不及时,这就要求这些大的客户在与网上书店进行电子交易的时候,双方的认证及信息都不可抵赖是至关重要的。为此,该系统采用ASP.NET作为开发工具,利用。NET提供的安全技术,构建基于RSA公钥密码体系的安全网上书店。在网上书店系统中设计了一个CA认证子系统,可以给交易双方颁发数字证书,并可以对订单进行数字签名,从而防止交易抵赖。
2 CA认证子系统的设计
网上书店系统划分为若干个子系统,包括前台销售子系统、后台管理子系统、网上银行子系统和CA 认证子系统[4-5].电子证书及其认证系统的设计是网上书店的重要安全保障,本文只讨论CA认证子系统的设计与实现。
CA认证子系统是保证书店安全的关键,在书店交易中,消费者、商家、银行都应向CA 中心申请数字证书,并在交易中使用数字证书,以确保交易过程中各方身份的真实性,保证信息安全性和交易的不可抵赖性。CA对含有公钥的证书进行数字签名,使证书无法伪造,每个用户可以获得CA的公开密钥,验证任何一张数字证书的数字签名,从而确定证书是否合法,在这样的安全体制保证下,消费者就可以放心地在网上购书了。
下面是系统设计的CA认证系统的工作步骤:
CA认证子系统的工作包括如下步骤:申请证书、下载订单、给订单签名、更新证书、撤销证书。
用户首先下载数字签名软件,然后安装在个人电脑上。在产生密钥对后,软件自动向外界传送公开密钥。
用户在获取公开密钥时,首先向鉴定中心请求数字确认,鉴定中心确认用户身份后,发出数字确认,同时鉴定中心向数据库发送确认信息。然后用户使用私有密钥对所下订单签名,保证信息的完整性、真实性,也使发送方无法否认信息的发送,之后上传到网上书店;书店方工作人员接收到信息后,使用公开密钥确认数字签名,进入数据库检查用户确认信息的状况;之后数据库返回用户的确认信息。如果验证签名成功,书店方就对订单附加一些确认信息,并使用自己的私钥对信息签名,然后放到网站上供用户下载,这就完成了数字签名过程,可以防止双方的抵赖。不过,在使用这种技术时,签名者必须注意保护好私有密钥,因为它是公开密钥体系安全的重要基础。如果密钥丢失,应该立即报告鉴定中心取消认证,将其列入确认取消列表之中。
3 CA认证子系统关键技术的实现
3.1 客户数字证书的生成过程
(1)注册客户信息。
由客户本身填写客户注册信息,并与网上书店经营方一起提供:主体名称(SubjectName)、证书注册日期(CreateDate)、有效期限(ValidDate),包括附加一些双方约定的信息(AddInfo)等,然后生成惟一的客户数字证书编码(SerialNumber)。
(2)生成客户惟一RSA公/私钥对
RSACryptoServiceProvider RSASubject=new RSACryptoServiceProvider();
SubjectPK=RSASubject.ToXmlString(false);//导出公钥
string SubjectPrivateKey = RSASubject.ToXmlString(true);
(3)将信息进行链接,以便计算数字摘要算法SHA1
sMSG=证书标识||版本号||证书序列号||发行者名称||主体名称||附加信息||建立日期||有效日期||主体公钥
即算法为:
sMSG=" CA" +Version.ToString()+SerialNumber.ToString()+IssuerName+SubjectName+AddInfo+CreateDate+ValidDate+SubjectPK;
(4)对链接的信息进行数字签名
① 发送方将此信息转换为字节序列;
② 计算数字摘要SHA1,将信息存入内存文件,然后以字节的形式读出,再计算数字摘要SHA1值;
③ 建立一个发送方RSA加密服务对象,并将自身的私钥导入;
④ 约定采用SHA1Hash算法,将数字摘要进行私钥加密,即数字签名;
(5)计算各信息段的字符长度,并依次写入数字证书文件。
至此,整个数字证书文件即告生成。该证书同时在网上书店的服务器上保留一个副本,由于此证书含有客户的基本信息及公钥,书店方可凭此证书验证客户对信息的数字签名,客户方可对书店方的确认信息的数字签名进行验证。
3.2 订单的生成
大客户在生成数字证书之前,已经将自己的信息注册到网上书店的服务器中。客户可在任何一台计算机上登录,进入自己的订单填写界面,用户在确定所购图书后,提交订单。一般情况下,订单的数量可能较大,为避免不必要的纠纷,以及防止恶意的攻击、信息变更、伪造假订单等,在这里要充分利用所签发数字证书的功能进行验证,而且双方都要进行签名,其基本步骤及协议如下:
(1)用户打开浏览器登录网站;
(2)填写订单信息,由服务器端程序自动生成一份订单的详细信息,分别用数据库的字段形式及文件形式进行存储;
(3)用户下载文件形式的订单信息,并采用生成数字证书时获得的本用户的私钥对此信息进行签名,将此文件及其签名链接后,上传至服务器;
(4)网上书店的工作人员登录进入服务器;检查大客户的订单,并对客户的订单信息进行核对及数字签名的验证。验证后,将所回复的信息及对信息的签名一并放入服务器,让客户下载;
(5)客户下载经店方签名的信息文件,并进行签名验证。通过后,保存此文件,以备以后发生纠纷时作为证据。
4 结 语
网上书店系统包括前台销售子系统、后台管理子系统、网上银行子系统和CA 认证子系统[10]几个不可或缺的子系统。在此只讨论CA 认证子系统的设计与实现。这里将ASP.NET提供的安全技术结合RSA公钥密码体系技术构建了安全网上书店,并将CA认证技术应用于网上书店。这里介绍CA 证书的实现过程以及应用流程,该研究内容对电子商务安全有促进作用,能够推动电子商务的发展。
全部0条评论
快来发表一下你的评论吧 !