`
hanyi366
  • 浏览: 289366 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Flex加密算法设计方案

    博客分类:
  • 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

分享到:
评论

相关推荐

    FLEX图片分割系统

    3. **分割算法**:FLEX图片分割系统的核心是其内置的分割算法,可能包括经典的图像分割方法,如Canny边缘检测、Otsu阈值分割,或者更先进的机器学习算法如卷积神经网络(CNN)。 4. **交互式分割**:对于复杂场景,...

    flex 在线拍照C#源码

    包括减少网络传输的数据量、优化图像处理算法、合理设计数据库结构和查询,以提高整体系统的响应速度和稳定性。 10. **版权与许可证**:使用Flex和C#源码时,需要了解并遵守Adobe和Microsoft的软件许可协议,确保...

    历届上海对外经贸大学计算机专业毕业设计方案选题参考表.doc

    历届上海对外经贸大学计算机专业毕业设计方案选题参考表 本参考表收录了50多个计算机专业毕业设计选题,涵盖了Java、.NET、ASP.NET、JSP、XML、CORBA、WebGIS、Flex等多种技术领域,每个选题都具有较强的实践性和...

    aes_fsl_interface.rar_FSL_xilinx FSL_xilinx aes

    描述中的"aes to fsl with xilinx fpga"进一步确认了设计的目标是将AES加密算法集成到一个Xilinx FPGA中,并通过FSL接口与其他系统进行通信。AES是一种广泛使用的对称加密算法,用于保护数据安全,常用于网络通信、...

    Veritas 5340 Appliance Product Description.pdf

    4. 高安全性:该设备支持多种加密算法和身份验证机制,确保数据的安全性和机密性。 5. 简单易用:Veritas 5340 Appliance 提供了直观的用户界面和自动化的备份过程,简化了备份和恢复操作。 NetBackup 5340 ...

    IBM存储产品 V7000

    IBM FlexSystem V7000 Storage Node是一款由IBM公司推出的高级存储解决方案,旨在提供卓越的数据存储与管理能力。它作为IBM PureSystems家族的一员,专注于通过集成系统提升企业价值。该产品不仅提供了强大的硬件...

    UploadPlugIn上传控件

    1. 引入库:首先需要引入一个支持MD5计算的库,如AS3Crypto库,这是一个开源的ActionScript 3加密库,提供了MD5算法的实现。 2. 文件读取:使用FileReference类来处理本地文件,通过selectFiles()方法让用户选择要...

    P1010RM.pdf

    - **安全引擎**:内置硬件加密引擎,支持AES等多种加密算法,提高数据安全性。 #### 其他组件 - **TDM接口**:时分复用接口,适用于音频和语音处理。 - **FlexCAN控制器**:两个FlexCAN控制器,支持CAN总线通信。 -...

    MCF52259—DATASHEET

    CAU是一个专门用于执行加密算法的硬件模块,它可以显著提高数据加密和解密的速度,从而增强了系统的安全性。 **快速以太网控制器 (FEC)** FEC支持标准的10/100Mbps快速以太网通信,使设备能够轻松接入局域网或...

    EFR32FG1-DataSheet-876878.pdf

    EFR32FG1 Flex Gecko SoC(片上系统)是Silicon Labs为物联网(IoT)设备提供的专有协议解决方案之一。作为Wireless Gecko产品组合的一部分,Flex Gecko SoC特别设计用于支持低功耗、高性能的无线网络连接。本文将...

    S32K-DS.zip_NXP_S32K_S32K DATASHEET_nxp s32k_汽车 mcu

    《NXP S32K系列汽车级ARM Cortex-M4 MCU详解》 NXP S32K系列微控制器是NXP半导体公司推出的一款针对...通过深入理解其规格书,开发者可以充分利用该系列MCU的各项优势,为汽车电子系统设计出更加先进和可靠的方案。

    3G论文集

    - DPSK解调算法设计。 - 性能评估指标。 #### 7. N-CDMA软容量分析 - **主要内容**: 分析了N-CDMA系统中的软容量特性。 - **关键概念**: - 软容量定义。 - 影响软容量的因素。 - 提升软容量的方法。 #### 8....

    3GPP网络架构的演进需求以及SAE架构

    5. **增强的安全性**:确保用户数据和网络通信的安全性,支持高级加密算法和技术。 综上所述,SAE架构不仅解决了当前3GPP网络中存在的问题,还为未来通信技术的发展提供了坚实的基础。通过不断地演进和完善,SAE...

    Desktop.zip

    这些问题需要通过团队协作、分析诊断、设计解决方案和执行计划来解决。对于复杂的问题,可能需要采用敏捷开发方法,通过迭代和持续改进来逐步逼近目标。同时,良好的问题追踪系统(如Jira)和沟通工具(如Slack)也...

    RNC产品介绍(基于BSC6800)

    ##### 2.6 先进的无线资源管理算法 - **功率控制**:确保信号质量的同时最大限度降低干扰。 - **切换**:实现无缝切换,提高用户体验。 - **资源分配**:根据业务需求合理分配无线资源。 - **负载控制**:优化网络...

    leetcode新手刷题指南-Front-End-Interview:前端面试复习资料

    3. **阅读他人解决方案**:如果遇到难题,可以查看社区的讨论和解决方案,学习他人的思路,但要注意理解而非单纯抄袭。 4. **定期回顾**:定期回顾已解过的题目,防止遗忘,巩固记忆。 二、计算机网络与浏览器 1....

    TOTVS Assinatura Eletrônica WebSigner-crx插件

    4. **集成TOTVS系统**:考虑到TOTVS是一家专注于企业级解决方案的公司,这个插件可能与TOTVS的其他产品(如Protheus、Flex等)有深度集成,使得用户可以直接在TOTVS的应用环境中完成签名操作,提高工作效率。...

Global site tag (gtag.js) - Google Analytics