`
roger_588
  • 浏览: 68510 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Flex的安全登录系统的设计方案

阅读更多

      对于 Web 应用程序,安全登录是很重要的。但是目前大多数 Web 系统在发送登录密码时是发送的明文,这样很容易被入侵者监听到密码。
      要实现安全登录,可以采用下面两种方法,一种基于非对称加密算法,另一种基于 hmac 算法
      非对称加密算法中,目前最常用的是 RSA 算法和 ECC(椭圆曲线加密)算法。要采用非对称加密算法实现安全登录的话,首先需要在客户端向服务器端请求登录页面时,服务器生成公钥和私钥,然后将公钥随登 录页面一起传递给客户端浏览器,当用户输入完用户名密码点击登录时,登录页面中的 JavaScript 调用非对称加密算法对用户名和密码用用公钥进行加密。然后在提交到服务器端,然后服务器端利用私钥进行解密,然后跟数据库中的用户名密码进行比较,如果一 致,则登录成功,否则登录失败。 看上去很简单,但是这里有这样几个问题。目前 RSA 算法中,1024-2048 位的密钥被认为是安全的。如果密钥长度小于这个长度,则认为可以被破解。但这样的长度超过了程序设计语言本身所允许的数字运算范围,需要通过模拟来实现大 数运算。ECC 算法的密钥长度要求比 RSA 算法要低一些, ECC 算法中 160 位的密钥长度被认为与 RSA 算法中 1024 位的密钥长度的安全性是等价的。虽然仍然要涉及的模拟大数运算,但 ECC 算法的密钥长度的运算量还算是可以接受的,但是 ECC 算法比 RSA 算法要复杂的多,因此实现起来也很困难。    
      对称加密算法比非对称加密算法要快得多,为什么不采用对称加密算法呢? 因为对称加密算法需要数据发送方和接受方共用一个密钥,因此如果要在 Web 系统的发送方也就是客户端浏览器对密码进行加密的话,就需要先从服务器端获取密钥,但密钥的传递可能会被监听,加密以后的数据如果也被同时监听到的话,入 侵者就可以直接利用监听到的密钥来对加密后的信息进行解密了。 但是如果我们不采用加密算法而采用散列算法对登录密码进行处理的话,可以避免被直接解密出原文,但是如果直接采用 MD5 或者 SHA1 来对登录密码进行处理后提交的话,一旦入侵者监听到散列后的密码,则不需要解密出原文,直接将监听到的数据提交给服务器,就可以实现入侵的目的了。而且, 目前 MD5 算法已被破解,SHA1 算法则被证明从理论上可破解,就算采用离线碰撞,也可以找出与原密码等价的密码来。所以直接采用 MD5 或者 SHA1 来对密码进行散列处理也是不可行的。

     但是如果在散列算法中加入了密钥,情况就不一样了。hmac 算法正好作了这样的事情,下面我们来看看如何用 hmac 算法实现安全登录 。 首先在客户端向服务器端请求登录页面时,服务器端生成一个随机字符串,连同登录页面一同发送给客户端浏览器,当用户输入完用户名密码后,将密码采用 MD5 或者 SHA1 来生成散列值作为密钥,服务器端发送来的随机字符串作为消息数据,进行 hmac 运算。然后将结果提交给服务器。之所以要对用户输入的密码进行散列后再作为密钥,而不是直接作为密钥,是为了保证密钥足够长,而又不会太长。服务器端接受到客户端提交的数据后,将保存在服务器端的随机字符串和用户密码进行相同的运算,然后进行比较,如果结果一致,则认为登录成功,否则登录失败。 这里客户端每次请求时服务器端发送的随机字符串都是不同的,因此即使入侵者监听到了这个随机字符串和加密后的提交的数据,它也无法再次提交相同的数据通过验证。而且通过监听到的数据也无法计算出密钥,所以也就无法伪造登录信息了。

因此目前来看,用 hmac 算法来实现安全登录系统的方法是最可行的。
  hurlant 在安全方面似乎研究颇深,他的As3 Crypto Framework 很好的扩展了Adobe的crypto lib,前面提到的RSA、MD5、SHA等算法皆包含在此lib中。当然我最感兴趣的还是HMAC算法。

As3 Crypto Demo
browse the source , download the source or download the SWC binary

 

附件是原代码及swc文件。

分享到:
评论
1 楼 wangshengyuan 2011-08-01  
不要用我的头像,快点撤下来,猪

相关推荐

    基于flex-j2ee技术的操作系统精品课程网的设计与实现本科论文.doc

    基于flex-j2ee技术的操作系统精品课程网的设计与实现本科论文.doc

    毕业论文-基于Flex-J2EE技术的操作系统精品课程网的设计与实现.doc

    毕业论文-基于Flex-J2EE技术的操作系统精品课程网的设计与实现.doc

    普联架构设计技术方案.pptx

    业务综合管控项目全面预算系统 技术方案介绍 2012-02 普联架构设计技术方案全文共28页,当前为第1页。 二、软件开发平台方案 普联软件开发平台概念 数据存储原理 业务模型及业务搭建原理 指标模型及指标搭建原理 ...

    赛普拉斯和UPEK公司合作推出生命特征识别安全参考设计..

    新型CY4665参考设计采用了UPEK公司的TouchStrip指纹识别解决方案以及Cypress的EZ-USB NX2LP-Flex USB控制器,满足了企业IT经理的不断增长的需求,实现了企业数据的便携化和离线存取,同时保持敏感数据的安全性。...

    Spring攻略(第二版 中文高清版).part2

    11.8 改变永久性存储系统 461 11.8.1 问题 461 11.8.2 解决方案 461 11.4.3 工作原理 461 11.9 日志 464 11.9.1 问题 464 11.9.2 解决方案 464 11.9.3 工作原理 464 11.10 运行单元和集成测试 466...

    Spring攻略(第二版 中文高清版).part1

    11.8 改变永久性存储系统 461 11.8.1 问题 461 11.8.2 解决方案 461 11.4.3 工作原理 461 11.9 日志 464 11.9.1 问题 464 11.9.2 解决方案 464 11.9.3 工作原理 464 11.10 运行单元和集成测试 466...

    yitran电力载波芯片 网络协议

    IT1000 是 Yitran 的 OFDM Flex 方案,是以 G.hnem 标准为基础,设计速度高达 1 Mbps ,并可配置支持 G3 、 PRIME 和 P1901.2 等标准。 命令 与控制系统解决方案 命令与控制系统通讯网络允许从本地和远程对接入...

    yitran Ynet电力载波网络协议源代码

    IT1000 是 Yitran 的 OFDM Flex 方案,是以 G.hnem 标准为基础,设计速度高达 1 Mbps ,并可配置支持 G3 、 PRIME 和 P1901.2 等标准。 命令 与控制系统解决方案 命令与控制系统通讯网络允许从本地和远程对接入...

    RNC产品介绍(基于BSC6800)

    61 系统可靠性设计 6-1 62 硬件可靠性设计 6-1 63 软件可靠性设计 6-3 第7 章 技术指标7-1 71 性能指标 7-1 72 传输接口指标 7-1 73 GPS 馈线指标 7-2 74 可靠性指标 7-2 75 结构指标 7-3 76 电气指标 7-3 77 噪音和...

    asp.net知识库

    如何在DotNet 2的登录组件中检索用户的锁定状态及解锁? ASP.NET 2.0, 想说爱你不容易 SqlDataSource WEB控件:当DeleteCommandType= 遭遇 ASP.NET 2.0 只读 TextBox 回发后信息丢失的 bug asp.net2.0:扩展...

    Altium Designer Beta 19.0.10完整版安装包+安装教程+和谐文件

    修复了刚度Flex设计在等轴测视图和具有真几何的Board装配视图中显示不正确的问题。 22669 改进了Dimension对象点的捕捉行为。 24616 修复了(特定用户的设计)导出到PDF (BC:9184)后出现“绘图员文档已过期”的...

    wap网站和wap+2.0教程.

    所有操作系统都支持WAP,其中专门为手持设备设计的有PalmOS, EPOC, Windows CE, FLEXOS, OS/9及JavaOS。 一些手持设备,如掌上电脑,安装微型浏览器后,借助WAP接入Internet。 微型浏览器文件很小,可较好的解决...

Global site tag (gtag.js) - Google Analytics