永发信息网

webservice怎么安全验证

答案:2  悬赏:0  手机版
解决时间 2021-01-23 20:37
webservice怎么安全验证
最佳答案
众所周知,WebService访问API是公开的,知道其URL者均可以研究与调用。那么,在只允许注册用户的WebService应用中,如何确保API访问和通信的安全性呢?本文所指的访问与通信安全性包括:
访问安全性:当前访问者是注册合法用户
通信安全性:客户端与服务器之间的消息即使被第三方窃取也不能解密
本文安全的基本思路是:
注册用户登录时使用RSA加密
Web API调用参数使用DES加密(速度快)
Web API调用中包含一个身份票据Ticket
Web服务器保存当前Ticket的Session,包括:Ticket、DES加密矢量、注册用户基本信息
1 WebService身份验证

确保注册用户的访问安全,需要如下步骤:1)产生一个当前客户端机器票据(Ticket);2)请求服务器RSA公钥(RSAPublicKey);3)使用RSA加密登录口令及发布DES加密矢量(DESCipherVector)。

1.1 产生客户端机器票据Ticket

一般而言,可以由客户端机器根据自己的MAC、CPU序列号等唯一标识产生一个本机器的Ticket字符串票据,其目的是:唯一标识当前客户端,防止其它机器模仿本客户端行为。

1.2 请求服务器公钥RSAPublicKey

客户端携带票据Ticket向服务器请求RSA公钥RSAPublicKey。在服务器端,一般采取如下策略产生RSA加密钥匙:
Application_Start时产生一个1024或更长的RSA加密钥匙对。如果服务器需要长久运行,那么Application_Start产生的RSA可能被破解,替代方案是在当前Session_Start时产生RSA加密钥匙对
保存当前票据对应的客户帐号对象,即:Session[Ticket] = AccountObject,在确认身份后在填写AccountObject具体内容:帐号、RSA加密钥匙对、DES加密矢量
完成上述步骤后,服务器将RSAPublicKey传回给客户端。

1.3 加密登录口令及DES加密矢量

客户端获得RSAPulbicKey后,产生自己的DES加密矢量DESCipherVector(至少要8位及以上,该加密矢量用于以后的常规通信消息加密,因为其速度比RSA快)。接着,客户端使用RSAPublicKey加密登录帐号、口令及DESCipherVector,连同Ticket,发送到服务器并请求身份验证。登录API格式如下:

public void Login(string Ticket, string cipherLongID, string cipherPassword);

如果验证成功,服务器将当前帐号信息、RSA钥匙、DESCipherVector等保存到会话Session[Ticket]中。

2 WebService通信安全性

2.1 加密WebService API参数

身份确认后,在客户端调用的WebService API中,必须包括参数Ticket,其它参数则均使用DESCipherVector加密。服务器端返回的消息也同样处理。例如,提交一个修改email的函数定义为:

public void ModifyEmail(string Ticket, string cipherEmai);

2.2 客户端解密消息

客户端接收到服务器返回消息后,先做解密操作,如果成功则进入下步处理。否则抛出加密信息异常。

2.3 服务器端解密消息

服务器接收到客户提交的API请求后,首先验证Ticket的合法性,即查找Session中是否有该票据以验证客户身份。然后,解密调用参数。如果成功则进入下不操作,否则返回操作异常消息给客户端。

需要指出,如果第三方截获全部会话消息,并保留其Ticket,此时服务器端仍然认可这个第三方消息。但是,第三方不能浏览,也不能修改调用API的参数内容,此时解密参数时将抛出异常。

上面探讨了一个基于加密的WebService访问与通信安全方法,即使第三方获取消息,不能查看原始内容,也不能修改内容,保证了WebService API的安全性。
全部回答
啥叫安全验证呢,可以自己定一套机制和签名来验证,比如根据参数进行签名,服务器对收到的请求验证~
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
请问一下开电脑的步骤?
三渡水村怎么去啊,我要去那办事
混凝土工程是什么
吉祥村地址好找么,我有些事要过去
杜伯仲为什么寄照片举报高育良
我就问道:“像这样一窝蜂,一年能割多少蜜?
华为买什么机型好
想考二级建造师大专毕业工作年限不够,可以用
瓦庄村地址在什么地方,我要处理点事
老舍的主要作品有什么
如图所示,将一把钢尺紧按在桌面上,一端伸出
怎么用at命令在18:00自动执行a.bat和b.exe两
请教各位大神,更新intel显卡驱动后,如何恢
1972年出生女,对异性怎么样呢
为什么每次累了的时候都觉得自己应该离开人世
推荐资讯
昆山市南港工商所地址有知道的么?有点事想过
润益合茶庄地址有知道的么?有点事想过去
泉州市锦安汽车贸易有限公司地址在什么地方,
被前男友和他现任女友侮辱和威胁,该怎么办
属猴的天蝎座男生
知恩学堂(银亭路)地址在什么地方,想过去办事
减肥期间中午可以吃凉皮和呼饼吗
东光县灯明寺镇郑集中学怎么去啊,我要去那办
单选题BecauseoftheterriblesituationinIra
求解释图中词语(憋说话,夸我)
为什么我的电脑用KEIL编译突然变慢了很多,之
消防喷淋系统维保有哪些
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?