CAPICOM电子商务应用研究论文

时间:2022-03-16 03:40:00

导语:CAPICOM电子商务应用研究论文一文来源于网友上传,不代表本站观点,若需要原创文章可咨询客服老师,欢迎参考。

CAPICOM电子商务应用研究论文

摘要电子商务的出现变革了贸易方式,在带来便利的同时也带了很多安全隐患,如何构建电子商务的安全性成为商务信息化的研究热点。分析了电子商务交易模型的安全需求,探讨了密码中间件capicom在安全交易模型中的应用,讨论CAPICOM的数据结构和COM对象,指出使用标准接口的密码中间件能使电子商务应用零开销地本地化CSP。

关键字密码中间件;电子商务;交易模型;信息安全;CAPICOM

随着Internet的不断普及,人们的消费观念和商务模式也发生了巨大了变化,人们更希望通过网络的便利来进行网络采购和交易,从而导致了(ElectronicCommerce)电子商务的出现,并在世界范围内掀起了一股热潮。但是,美国密执安大学一个调查机构通过对23000名因特网用户的调查显示[1],超过60%的人由于担心电子商务的安全问题而不愿进行网上购物。因此,研究和分析电子商务的信息安全问题,特别是针对我国国情,充分借鉴国外的先进技术和经验,开发和研究出具有独立知识产权的电子商务信息安全产品,成为目前我国电子商务的热点。

电子商务中的安全隐患可分为如下几类[2],1.信息截获和窃取。如果没有采用加密措施或加密强度不够,攻击者可能通过因特网、电话网、电磁波辐射域内安装截收装置或在网关和路由器上截获数据等方式,窃取机密信息,或通过对信息流量和流向、通信频度和长度等参数的分析,导出有用信息,如银行帐号、密码等;2.信息篡改。如果攻击者熟悉了网络信息格式,可对网络传输的信息进行中途修改,并发往目的地,从而破坏信息完整性。如篡改信息流的次序,更改信息内容;3.信息假冒。当攻击者掌握了网络信息数据规律或解密了商务信息以后,可以假冒合法用户来欺骗其他用户,例如伪造电子邮件,虚开网站和商店,发送电子邮件,收定货单;伪造大量用户穷尽商家资源,使合法用户不能正常访问网络资源,使有严格时间要求的服务不能及时得到响应等;4.交易抵赖。交易抵赖包括多个方面,如发信者事后否认曾经发送过某条信息或内容,收信者事后否认曾经收到过某条消息或内容,购买者做了定货单不承认,商家卖出的商品因价格差而不承认原有的交易。

电子商务面临的威胁直接导致了电子商务对于信息安全的需求,也就是实现一个安全电子商务系统务必具备的信息安全品质,主要包括机密性、完整性、认证性和不可抵赖性。1.秘密性(Confidentiality),电子商务作为贸易的一种手段,其信息直接代表着个人、企业或国家的商业机密。传统纸面贸易都是通过邮寄封装的信件或通过可靠的通信渠道发送商业报文来达到保守机密的目的。电子商务是建立在一个较为开放的网络环境上的如Internet,维护商业机密是电子商务全面推广应用的重要保障。因此,要预防非法的信息存取和信息在传输过程中被非法窃取。2.完整性(DataIntegrity),电子商务简化了贸易过程,减少了人为的干预,同时也带来维护贸易各方商业信息的完整、统一的问题。由于数据输入时的意外差错或欺诈行为,可能导致贸易各方信息的差异。此外,数据传输过程中信息丢失、信息重复或信息传送的次序差异也会导致混乱。因此,要预防对信息的随意生成、修改和删除,同时要防止数据传送过程中信息的丢失和重复并保证信息传送次序的统一。3.认证性(VerificationofIdentity),网络电子商务交易系统的特殊性,企业或个人的交易通常都是在虚拟的网络环境中进行,所以对个人或企业实体进行身份性确认成了电子商务中得很重要的一环。对人或实体的身份进行鉴别,为身份的真实性提供保证,即交易双方能够在相互不见面的情况下确认对方的身份。这意味着当某人或实体声称具有某个特定的身份时,鉴别服务将提供一种方法来验证其声明的正确性。4.不可抵赖性(Non-repudiationofDisputedCharges)。电子商务可能直接关系到贸易双方的商业交易,如何确定要进行交易的贸易方的确是进行交易所期望的贸易方这一问题则是保证电子商务顺利进行的关键。在传统纸面贸易中,双方通过在交易合同、契约或贸易单据等书面文件上手写签名或印章来鉴别贸易伙伴,确定合同、契约、单据的可靠性并预防抵赖行为的发生。这也就是人们常说的"白纸黑字"。在无纸化的电子商务方式下,通过手写签名和印章进行贸易方的鉴别已是不可能的。因此,要在交易信息的传输过程中为参与交易的个人、企业或国家提供可靠的标识[3]。

中间件是独立的系统软件或服务程序,它屏蔽了操作系统和网络协议的差异,并提供相应的平台以满足不同领域的需要。它成功地解决了网络计算和分布计算环境下资源的通信,共享,管理,控制等问题[3]。其技术本身很复杂,技术标准多,产品多。在Windows技术体系下,应用最为广泛的是DEC/RPC标准下的COM/DCOM,和DNA标准下的COM+。在诸多行业应用中,信息安全特性已成为软件的一个重要品质,密码服务也成为一个重要的构件支撑,基于中间件技术来构造密码中间件成为当前的主流技术路线,涌现出相当成功的产品,如微软的CAPICOM,SUN的CryptoJava。

Windows操作系统采用分层的加密体系模型CSP密码服务提供者(CryptographicServiceProvider)架设系统安全。CSP提供了齐全的具有密码功能的Win32API函数供程序员调用,称为CryptoAPI。然而,调用CryptAPI完成密码操作仍然相当复杂。[5]使用COM,开发人员可以把注意力集中在解决用户所需要的问题上.而不用关心网络协议等底层结构的细节。[4]微软提供了CAPICOM组件,它以COM对象的形式封装了上述的复杂操作,使用它获取密码服务更方便。因为在不同的开发环境中,往往先要对API函数进行某种封装或转换,这增加了使用难度,CAPICOM以中间件的形式提供了一个标准的密码应用层接口,是介于应用与CSP之间的中间层,使得应用与CSP具有逻辑独立性。

在工作时,CAPICOM按一定顺序列检索CSP。首先检查缺省CSP是否支持用户指定的算法及密钥长度,如果失败,则搜索系统提供的CSP,并判断其是否支持指定的算法和密钥长度,直至遍历完所有CSP。两者关系如图1所示。

安全电子商务交易模型从组成来讲一般有以下几个组件[6]:(1)电子商店作为电子经济中买卖发生的场所,它从传统的市场渠道中取得价值。(2)信息中介是内容、信息、知识及经验的商,能够成为某一特定电子商务领域增加价值。(3)信用中介是在买卖双方建立信用的机构。(4)电子商务实施者为其他电子商店或信息中介提供组件、功能及相关服务,使得电子商务得以进行或者进行得更好。(5)基础设施供应商作为由跨越不同领域机构,如NII(国家信息化设施),PKI(公钥基础设施)等,它们来提供网络应用平台和安全交易全环境。

从电子商务系统的架构上来分类[6],主要有B2B和B2C。B2B模式下参与的双方都是企业,特点是定单数量大,平均在75000美元,需要商业洽谈,按照固定合同条款和商业规则进行交易。信用开始是依托信用卡,尔后需要更复杂的银行信用管理系统,基础设施包括局域网、定制的目录和流程规则;B2C模式下是顾客直接与商家接触,特点是定单数量小,平均在75美元,主要是按价目表或者固定价格,属于冲动购买或者偶尔购买,所以广告的作用很大。信用依靠消费者信用卡,基础设施主要是互联网的链接。

仅就交易工作流而言,它有很多业务需求如:客户管理,商品浏览,身份认证,订单管理,配送和转账等,本文当中,重点讨论在密码服务和安全性上的需求,通过实施安全性措施,确保在交易的生命周期当中,在交易信息的运动过程中,敏感信息不会丧失信息安全性。

在交易流程中,证书的操作主要有:证书库的打开,证书检索,证书验证,证书加密数据和数字签名CryptoAPI只提供了基本的密码函数,对于数字证书很少涉及,而CAPICOM组件对这些高层应用服务提供了方便的接口。

图2十六进制形式密文和解密结果

图3签名过程

图4十六进制形式密文和解密结果

WINDOWS平台中,证书存于证书库CertStore的结构中,使用时必检索证书库,取得证书句柄,获得证书的基本信息如:有效期,公钥等,同时,还要对证书的有效性进行验证。私钥存于密钥容器中(KeyContainer),有对应私钥的证书,还存有私钥容器的句柄。[4]默认的证书库有4个:Trust,My,CA,Root,其中My存放了个人的证书,其中还有私钥容器句柄,Trust存放了通信群体中其它人的证书,仅公钥。证书的管理必须用到CAPICOM的几个接口:IStorePtr指向证书库,ICertificates2Ptr指向证书集合,ICertificatePtr指向证书,三个接口形成操作证书的三级索引。

图5验证过程

证书加密实际是用接收方证书的公钥加密,过程有两步:用公钥加密对称密钥,用对称密钥加密数据如支付的信息:客户帐号和PIN码等。CAPICOM定义的对象IenvelopedDataPtr对两步进行了包装,对于编程人员是透明的。

⑴定义数据信封

IEnvelopedDataPtrpEncryptIEnvelopedData(__uuidof

(EnvelopedData));

IEnvelopedDataPtrpDecryptIEnvelopedData(__uuidof

(EnvelopedData));

⑵设定算法参数和对称密钥长度

CAPICOM对密码算法的标识标准和密钥长度进行了定义,以常量形式给出。这里以RC4为例。

pEncryptIEnvelopedData->Algorithm->Name=CAPICOM_ENCRYPTION_ALGORITHM_RC4;

pEncryptIEnvelopedData->Algorithm->KeyLength=CAPICOM_ENCRYPTION_KEY_LENGTH_40_BITS;

⑶加密

bstrtemp=SysAllocStringByteLen("HelloCapicom!",14);

_bstr_ta.Assign(bstrtemp);

pEncryptIEnvelopedData->Content=_bstr_ta;bstrciphertext

=pEncryptIEnvelopedData->Encrypt(

CAPICOM_ENCODE_BINARY);

⑷取出密文

bstrtemp是BSTR指针,指向双字节的字符串,即以两个Bytes来存一个ASCII字符,_bstr_t类型对双字节字符串进行了对象装箱,字节数是字符数据量的两倍。加密"HelloCapicom!"后,以字符形式看密文则呈乱码形式。二进制形式则如图2所示。

PCHARpCiphertext=NULL;pCiphertext

=(PCHAR)bstrciphertext;printf("密文字符流:\n");

PVOIDpchartemp=malloc(24);

for(intk=0;k<bstrciphertext.length()*2;k++)

{if(k%24==0){memcpy((PVOID)pchartemp,pCiphertext,24);

}pCiphertext++;}

⑸解密

pDecryptIEnvelopedData->Decrypt(bstrciphertext);printf("解密后:%s\n",

(PCHAR)pDecryptIEnvelopedData->Content.copy());结果如图4所示。

签名是对消息哈希值进行签名,先算出数据的哈希值,再用签名者的私钥对哈希值签名,通过这个过程来保证订单信息如商品数量,品名等的完整性和非抵赖性。此步骤中,会检索MY证书库的证书,找证书公钥对应的私钥的容器句柄,再找到私钥,这对于程序员是透明的。签名和数据可以“依附”发送也可“独立”发送,接收者收到数据和签名后,重算数据的哈希值,将哈希值和数据的签名送进验证运算将会得出验证结果。CAPICOM组件,用接口ISignedDataPtr和IHashedDataPtr来封装此功能。

⑴定义哈希对象和设定哈希算法

IHashedDataPtrpIHashedDataPtr(__uuidof(HashedData));

pIHashedDataPtr->Algorithm=

CAPICOM_HASH_ALGORITHM_SHA1。

⑵哈希和取哈希值

哈希对象的哈希值是字符串形式的以十六进制的格式返回,SHA-1算法的哈希值为160位,即20字节,表示成HEX格式一个字节表示为两个字符,共40个ASCII字符,再用双字节字符表示。则为40个宽字符,80字节,所以哈希值的字节长度变成了80字节。如图3所示。

bstrtemp=SysAllocStringByteLen("HelloCapicom!",14);_bstr

_ta.Assign(bstrtemp);

PCHARpchar=NULL;pIHashedDataPtr->Hash(_bstr_ta);

bstrHashValue=pIHashedDataPtr->Value;

⑶签名

签名加入时间戳和签名者信息,还要编码成一定的格式,有时还加入了签名者的证书,故签名消息的长度取决于多个因素。而不只取决签名者的公钥长度。如以二进制编码为格式则为898字节,如图5所示。

ISignedDataPtrpISignedDataPtr(__uuidof(SignedData));pISignedDataPtr->Content=pIHashedDataPtr->Value;

bstrSignature=pISignedDataPtr->Sign(0,TRUE,CAPICOM

_ENCODE_BINARY);

⑷验证

pISignedDataPtr->Content=pIHashedDataPtr->Value;

pISignedDataPtr->Verify(bstrSignature,TRUE,

CAPICOM_VERIFY_SIGNATURE_ONLY);

如果验证不通过则会抛出异常,验证失败。如图3所示。

信息安全如果涉及到国家利益和经济利益,密码算法往往需要本地化,而算法模块CSP的变动会对直接调用CSP的商务应用产生藕合变动,这是开发者所不愿见到的。有了CAPICOM中间件,[7]可以通过本地化CSP,实现本地化的密码算法,将其设定为默认的CSP,只要其遵照CSP的规范,可以和CAPICOM无缝挂接,而对上层的电子商务交易模型不要做任何修改。做到密码服务消费和密码服务生产的分隔与独立,从而实现CSP的零开销本地化。文章创新性地将CAPICOM密码中间件技术和电子商务交易模型相结合,很好地满足了电子商务的信息安全保密需求,解决应用层安全需求和底层密码服务模块本地化之间的藕合矛盾。

参考文献

1张硕阳等.电子商务交易中的风险来源与风险认知[A].广东:中山大学出版社,2002:187~196

2张楚等.电子商务与交易安全[A].北京:中国法制出版社289~296

3/library/default.asp?url=/library/en-us/seccrypto/security/setting_the_computer_default_csp.asp

4微计算机信息(高世伟等,基于DCOM技术实现的控制系统,2005,21,1-2,23)

5张楚等.电子商务与交易安全[A].北京:中国法制出版社276~286

6冯登国.2001.密码工程实践指南.北京:清华大学出版社.[M]13~15.