三种保证URL地址可信的加密方式.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
三种保证URL地址可信的加密方式

三种保证URL地址可信的加密方式近日接到一个需求,要求一台资源服务器不仅在可以暴露在公网环境下的同时,还要保证只接受并处理可信的http访问请求。 ? 需求场景如图: 为了访问资源文件,用户需要首先访问某一台Frontend Server进行用户身份认证———所有的用户信息均由Frontend Server保存,Frontend Server认证通过后返回真实的重定向地址,用户再根据重定向地址访问Resource Server获取资源文件。 具体的使用场景正如上面所述,下面是我的思考过程... ? 为了保证资源服务器收到的是一个可信的重定向地址,在安全性上有三点考虑: ? 重定向地址必须是可信的,即不可以被伪造,必须是由某一台Frontend Server返回的重定向地址。 为了防止盗链或资源被采集,每个Frontend Server返回的重定向地址应具有时效性。这个可以通过在链接地址上增加时间戳实现,但前提是该时间戳不可以被伪造。 最后,在必要的情况下,还可以不去响应某一台Frontend Server返回的重定向地址,即认为某一台Frontend Server的重定向地址不可信、该Frontend Server不可信。这要求Resource Server能够及时标示一台Frontend Server为不可信服务器,并且该Frontend? Sever服务器还不可伪造剩余可信服务器返回的重定向地址。 ? 以上三点也可以总结为:防止公网用户伪造URL地址,防止不可信Frontend Server伪造地址,防止过期URL地址访问。 由于Resource Server需要允许所有的公网用户访问,所以不能对Ip进行限制,并且一般情况下Resouce Server也不会与Frontend Server直接通信,因此只能通过URL的验证方式。Frontend Server在生成每个URL的过程中中应包括Resource Server为每一个Frontend Server分配的账户fsId、密钥fsKey以及记录当前URL生成时间的时间戳fstime。fsid必须明文传输,fsKey做为加密运算的一个常量不可以明文传输。 可以想到的有如下三种: 1.使用自定的加密函数生成加密签名字符串。 加密函数将所有需要明文传输的参数以及当前Frontend Server使用的密钥fsKey做为参数并通过MD5转换后生成加密签名字符串,md5(encode(params,fsid, fskey, fstime))。 重定向地址链接: /fsid=***fstime=***params=***signmsg=md5(encode(params,fsid,fskey, fstime)) Resource Server收到该请求后 根据fstime判断该请求是否过期,过期请求直接返回。 根据fsid判断该Frontend Server是否可信,如可信再根据fsid获得服务器端保存的fskey。 使用相同的参数加密签名过程,Resource Server根据params,fsid, fskey, fstime生成签名字符串。 比较重定向地址传来的签名字符串signmsg与本地生成的签名字符串是否相同,相同则认为是可信请求,否则为非法请求。 2.使用对称加密算法保证HTTP通信可信。 Resource Server为每一台Frontend Server分配不同的Des密钥(fskey),Frontend Server使用对称加密算法对拼接后的传递参数进行加密des(params|fstime) 重定向地址链接: /fsid=***desmsg= des(params|fstime) Resource Server收到该请求后 首先根据fsid判断该Frontend Server是否可信,如可信再根据fsid获得每个Frontend Server使用的Des密钥fskey。 使用密钥对desmsg信息解密,解密失败直接返回。 根据解密后的fstime判断是否过期,过期直接返回。 3.同时使用非对称,对称加密算法保证HTTP通信可信。 Frontend Server随机生成key做为对称加密算法的公钥des(params|fskey|fstime),并使用Resource Server提供的公钥对key进行非对称加密rsa(key) 重定向地址链接: /fsid=***rsamsg=rsa(key)desmsg= des(params|fskey|fstime) Resource Server收到该请求后 首先根据fsid判断该Frontend Server是否可信,如可信再根据服务器端保存的非对称加密私钥解密rsa(key)。

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档