用户登录是任何一个应用系统的基本功能,特别是对于网上银行系统来说,用户登录的安全性尤为重要。如何设计一个网站的安全登录认证程序,是本文主要讨论的问题。
静态密码存在着比较多的安全隐患,攻击者有很多手段获得静态密码,管理密码也具有较高的成本,我在前文《中国网上银行系统安全性分析》中曾经论证过,使用硬件安全产品“动态密码锁”或者“USB Key”可以较好的解决这个问题,但是会带来加密锁的成本,在不增加硬件成本的情况下,我们也可以通过一些设计上的技巧和措施在一定程度上来保证登录者的身份。
一、客户端和服务器端的安全
客户端的安全,主要是用户密码本身的安全性(密码长度和复杂性等)以及用户电脑的安全性,包括用户电脑没有安装黑客木马软件,登录程序没有被第三方程序加载调试,用户录入框组织键盘Hook程序等等,通过一些代码即可解决。
服务器端的安全,包括服务器自身的安全(系统漏洞等等)以及程序设计上的安全,我这里主要讲一下程序设计上的安全。最基本的问题是,用户的密码不应该直接保存在服务器的数据库上,也不应该将密码用单钥算法加密后保存,最基本的认证方式是通过单向散列函数对密码进行认证。在《软件加密技术和注册机制》一文中介绍了一些单向散列函数可以实现简单的认证。目前大多数网站都使用MD5函数进行登录认证,不过我推荐使用安全性更高的SHA1散列函数来进行登录认证。
二、网络传输上的安全
目前的网络协议通过HTTP协议进行通讯,存在很大的安全隐患,黑客可以通过SNIFFER工具进行抓包分析网络数据包,因此用户名和密码的传输应该使用非明文的方式传输,这里就用到了“公开密钥密码”的概念。
学过基本的“密码学”的人都应该知道“公开密钥算法(也叫非对称算法、双钥算法)”这个概念,即用作加密的密钥不同于用作解密的密钥,而且解密密钥不能根据加密密钥计算出来。
加密的传输过程分为两部分,一部分为身份认证,用户鉴别这个用户的真伪;另外一部分为数据加密,用于数据的保密。这两部分功能都需要用到非对称加密技术。
首先是身份认证,通讯的数据可以这样进行处理,将用户的信息(用户名、密码等)用该用户的私钥进行加密,然后再进行传输,而在服务器端会保存此用户的公钥,用此用户的公钥对传过来的信息进行解密,就可以得到正确的明文,这样就完成了一次安全的网络通讯。
通讯过程的示例如下图所示,Alice用自己的私钥对明文进行加密后传输到服务器,服务器上的用户(例如Bob)拥有很多用户的公钥,因此使用Alice的公钥对密文进行解密,如果密钥正确的话,就可以解密出明文,也就完成了对Alice的身份认证。
然后是数据加密,数据加密和数据认证正好相反,使用接收方的公钥对数据进行加密,传输的过程中,即使数据被黑客截获,也无法使用这些密文,接收方收到密文后,用自己的私钥对密文进行解密,从而完成了一次数据的加密传输。
通讯过程的示例如下图所示,Alice需要发给Bob一段加密的信息,因此Alice就用Bob的公钥对明文进行加密后传输给Bob,Bob收到信息后,使用自己的私钥对密文进行解密,就可以解密出明文,也就完成了对Alice的发来密文的解密过程。
目前的公开密钥算法主要有RSA和ECC,RSA是比较老的算法,基于大质数分解,速度较慢,ECC(椭圆曲线)是最新的公钥加密算法,基于离散对数计算,速度比RSA快,安全性据说更高一些。
当然,上面的所说的技术只是最为基本的身份认证技术,只是适合一般网站应用,对于电子商务和银行来说需要更为复杂和权威的安全认证系统。目前比较流行的是PKI技术。PKI(Public Key Infrastructure)是一种新的安全技术,它由公开密钥密码技术、数字证书、证书发放机构(CA)和关于公开密钥的安全策略等基本成分共同组成的。PKI技术已经被广泛应用于电子政务和电子商务,被证明是保证基于互联网的电子政务和电子商务安全的最佳解决方案。完整的PKI建设需要大量的资金和人力才能完成,这里就不多介绍了。
相关推荐
MySSL安全认证图标是一种常见的信任标志,它向访问者表明网站已经通过了SSL/TLS安全验证,数据传输过程是加密的,可以保护用户的隐私信息不被窃取。本文将详细介绍如何在网站上添加MySSL安全认证图标,并探讨相关...
5. 用户认证与权限管理:如登录注册、权限控制,确保用户安全访问网站功能。 6. 错误处理和日志记录:提高程序健壮性,便于调试和问题追踪。 四、企业网站模板应用 企业网站模板通常包括首页、关于我们、产品/服务...
4. 用户认证与权限管理:为了保护网站安全,用户登录和权限管理是必不可少的。PHP可以通过session或cookie来实现用户状态的跟踪,结合数据库实现用户身份验证,同时设置不同角色的权限,确保数据的安全访问。 5. ...
该压缩包文件“4002复古个性插画设计师作品展示html5模板5283_企业网站模板PHP整站源码.zip.7z”包含了用于构建一个复古风格的个性化插画设计师作品展示网站的HTML5模板和PHP整站源码。这个资源适合那些想要创建独特...
"4016黑白设计整套Bootstrap UI模板下载5053_企业网站模板PHP整站源码.zip.7z"是一个包含了完整的网站设计方案和源代码的压缩包,旨在为开发者提供一套高效、简洁且专业的企业级网站构建方案。 首先,我们关注的是...
3. **跨站请求伪造(CSRF)**:CSRF攻击利用受害者浏览器的身份认证信息,发起对目标网站的非预期操作。防止CSRF的方法有使用CSRF令牌、检查Referer头和限制敏感操作的GET请求。 4. **会话管理**:正确处理用户会话至...
该压缩包文件“4047黑色个性创意设计师作品展示html5模板5457_企业网站模板PHP整站源码.zip.7z”包含了创建一个具有独特黑色风格和创意设计的设计师作品展示网站的HTML5模板和PHP整站源码。这个资源适合那些想要建立...
"正义网自媒体博客网站源码"是基于Z-Blog内核开发的主题,旨在为自媒体用户提供一个个性化的、功能丰富的在线发布平台。这款源码提供了完整的网站构建框架,用户可以根据自己的需求进行定制和优化。 1. **Z-Blog...
10. **安全**: 由于是面向用户的网站,安全方面可能涉及到用户认证、授权、防止SQL注入和XSS攻击等措施,Spring Security框架可能被用来提供这些功能。 综上所述,这个Java毕业设计项目覆盖了从后端开发到前端交互...
3. **用户认证**:实现登录、注册功能,保护用户隐私和网站安全。 4. **表单处理**:接收并处理用户提交的表单数据,进行验证和操作。 5. **会话管理**:使用`session`或`cookie`来跟踪用户的活动状态。 6. **模板...
响应式设计意味着网站能够自动适应不同设备的屏幕尺寸,包括桌面、平板电脑和手机,为用户提供一致且优化的浏览体验。这个模板可能是为UX(用户体验)设计公司定制的,旨在展示其服务、作品和团队,同时也可能包含...
Spring Security可以提供强大的安全控制,包括登录验证、权限分配、CSRF保护等。 6. **前端界面**: 虽然没有提及具体的前端技术,但通常这类项目会使用HTML、CSS和JavaScript,结合Bootstrap或Vue.js等现代前端...
通过学习和理解这些文件,开发者可以掌握PHP网站开发的基本流程,包括数据库交互、用户认证、安全实践、页面动态生成等核心概念。同时,对于PHP框架和最佳实践的理解也会有所提升,这对于构建高效、可维护的网站至关...
这个压缩包文件“Java毕业设计——基于vue的在线问卷网站设计与实现(源码+数据库).7z”包含了一整个基于Java和Vue技术栈的毕业设计项目,它是一个在线问卷调查系统的实现。这个系统允许用户创建、发布和收集问卷...
该压缩包文件“4168灰色蓝天白云博客html5模板5612_企业网站模板PHP整站源码.zip.7z”包含了用于构建一个企业网站的HTML5模板和PHP整站源码。这个资源可能对那些希望创建或定制企业网站的开发者,特别是初学者或者...
该压缩包文件“2069橙色大气商业金融机构企业网站模板5341_企业网站模板PHP整站源码.zip.7z”包含了用于构建一个面向商业金融机构的企业级网站的全套源代码。这个模板采用PHP语言开发,是网站开发中的核心技术之一,...
综上所述,这个压缩包提供了构建一个专业、响应式、功能完善的IT科技公司网站的全套解决方案,涵盖了前端设计、后端开发、用户体验和安全等多个方面。开发者或企业可以在此基础上快速搭建并个性化自己的网站,同时...
同时,Bootstrap的响应式设计确保了网站在不同设备上(如手机、平板、桌面)都能良好地显示和运行。 4264这个文件名可能是该模板系列的一个编号或版本号,这在升级或寻找相关资源时可能会用到。在解压缩后,你可能...
本项目是一个Java毕业设计,它基于Spring Boot框架构建了一个在线招标网站。这个系统的主要目标是为用户提供一个方便、高效且安全的平台,进行线上招标活动。让我们深入探讨一下这个项目涉及的技术栈和核心功能。 ...
8. **用户认证与权限管理**:用户注册、登录和权限管理是电商网站的基本要素,涉及到密码加密、会话管理、用户角色划分等安全措施,确保用户数据的安全。 9. **SEO优化**:一个好的商城网站需要考虑搜索引擎优化,...