ASP.NET中认证安全特征评述
Narcisio Tumushabe,谭冠正(音译)
(中南大学计算机科学与信息技术学院,湖南长沙)
摘 要:讨论了服务应用时支持安全的ASP.NET认证特征,微软的互联网信息服务( IIS)和ASP.NET提供了安全模式,使Web开发者恰当地认证其使用者,并在应用过程中获得正确的安全之本.三个层次的认证是基于表单的,身份证书和视窗认证.综述文献仅限于上述三个领域.
关 键 词:表单;身份证书;视窗认证
中图分类号: TP 文献标识码:A 文章编号: 1000 - 1646 (2003) 03 -0250-05
安全是开发人员和应用程序架构师首要关注的问题。由于不同类型的网站有不同的安全需要开发人员需要知道需要什么程度的安全运行并为他们的程序选择适当的安全模式。有些网站发布的信息不来自用户而是通过搜索引擎等广泛渠道来收集。另外一些网站可能要收集用户的敏感信息 比如信用卡号码这些网站需要非常严格的安全措施 以避免来自外部的恶意攻击。
1 asp.net安全的基本操作
在ASP.NET应用程序的环境中安全的基本操作涉及三步即验证授权和模拟。验证的过程中认证用户身份,允许或拒绝请求。这涉及到接受用户凭据如用户名和密码和凭证核对。经过身份验证合法用户对资源的请求将得到满足。接下来一段时间用户请求资源无需再进行身份验证直到用户退出这个WEB应用程序。授权是给予用户访问特定资源的资格。模拟的过程是使应用程序确认用户的身份从而获得要求的其他资源。基于模拟的身份请求资源将被授予或者拒绝。
2 ASP.NET的验证
验证是Web应用程序的安全一个重要的特征。在ASP.NET中验证表现在两个层次上 [2]首先 Internet信息服务 I IS 将执行必要的验证然后把用户请求发送到ASP.NET中如图1所描述的。ASP.NET应用程序的Web服务器基本是IIS 。因此每个ASP.NET应用程序可以继续利用IIS所提供的的安全
性选项。当用户请求特定资源时这一要求将发送到IIS 。 IIS验证用户的请求然后把认证用户发送给ASP.NET工作进程。 ASP.NET工作进程将决定是否模拟验证IIS所提供的用户。如果Web.config文件中的模仿配置是启用的 ASP.NET工作进程将模拟验证使用者。否则 ASP.NET将自行验证用户身份。毕竟ASP.NET决定用户是否有权访问这些资源。如果他们被允许 ASP. NET提供请求的服务;否者他将一个“拒绝登入”的错误讯息传回给用户。
图1 IIS和ASP.NET的安全流程
ASP.NET通过几种认证机制提供了内置的用户身份验证 [14]它们是基于表单的身份验证应用程序使用自定义身份验证模式的Cookie支持来确保安全身份证书应用程序使用微软的身份证书来身份验证身份证书是微软开发的一个Web单点登录技术还有视窗验证Web应用程序使用从集成视窗身份验证中获得的用户名单来验证用户。
也有些应用程序不使用身份验证或自行开发验证机制。在这种情况下 可以把ASP.NET中身份验证模式设置为关闭。本文将简要地涉及基于表单的,身份证书和视窗认证。
2.1基于表单的认证
基于表单的认证验证是用定制逻辑执行来验证用户运用了Cookie而无需担心Session管理。这使开发人员获得更多的权限去指定哪些文件在网站上可获取和由何人获取并可以识别的登录页。 [3]这一机制将自动重定向未验证用户到登录页并请他们提供适当的凭据例如用户名/密码组合。如果登录成功ASP.NET分配cookie给用户并重定向到他们原先请求的特定资源。此Cookie允许用户反复访问特定资源而不必重新执行登录机制。显示如下
图 2表单认证流程
在上图中首先用户请求资源。这一请求将先到达IIS 由IIS进行用户身份验证的。如果IIS启用匿名访问或者用户已成功通过验证 IIS会将把请求转到ASP.NET应用程序。ASP.NET中查看是否有有效的身份验证cookie附加请求中。如果有它意味着用户先前已通过验证。 AS P.NET将执行授权检查。如果用户有访问这些资源的权限将被允许访问。否则返回登入失败的信息。如果提出的请求没有附带任何Cookie ASP.NET将重定向用户登录页面并要求用户进行身份验证。应用程序代码检查身份证书。如果身份验证通过 ASP.NET
将以附加验证的形式返回Cookie。如果失败了用户可以被重定向到登录页并告诉用户该用户名/密码无效。
建立基于表单的认证
一般来说建立基于表单的认证涉及4个步骤[2] 一启用匿名访问IIS二配置Web.config文件中的<authentication> 三设定Web.config文件中的<authorizatio n> 四创建登录页。
一启用匿名访问IIS
这有许多工作要做因为大多数的用户被认定为非视窗用户所以他们通过IIS进入ASP.N ET ASP.NET将始终允许匿名访问登入页面。
二配置Web.c o nfig文件中的<authe ntic atio n>
Web.config文件包含了一个Web应用程序的等级和身份验证服务的类型等相关信息。该表单验证通过设置Web应用程序的身份验证模式属性为表单来激活[3] :
正如上面的代码 name属性为HTTP cookie的名称。 loginURL属性设置为登录页面。如需这是该网页所使用的身份验证的用户凭据。如果用户没有通过验证请求将重定向到特定网址lo ginURL。保护属性的有效值分为所有无加密和验证。Cookie保护设置为所有这导致ASP.NET运行时不仅加密Cookie的内容而且验证Cookie的内容。 [8]如果设置为无它不使用任何加密或验证。指定加密将使用DES或DES加密算法加密Cookie cookie中的数据验证不这样做指定验证cookie的数据未作改动的而不是加密Cookie的内容。超时设置为10 这意味着在10分钟后身份验证Cookie将过期。这样做的目的是减少通过验证Cookie偷窃别人的机会。通过减少时钟 cookie将被经常地再生。路径属性是指cookie被发送到用户端的路径。它被设置为“/”这意味着在Cookie路径是根目录。
三配置Web.co nfig文件中的<autho rizatio n>
为ASP.NET Web应用程序添加授权服务。要做到这一点添加Web.config文件中的<authorizatio n>
如上面所解释在用户提供了有效的证书后用户将被重定向到特定的网页。然而授权在此代码中将拒绝除“N arc is”外所有用户的访问。
四创建登录页
这是重定向未经验证用户的最后一步这样他们就可以提供其身份证书通常是某种形式的用户名和密码登录到受保护的资源的授权。在登录页必须通过对比数据库来验证递交的身份证书。有效的用户名和密码可以存储在web.config的凭据(credentials)节
然而 以明文形式存储密码是很不安全的。此外在Web.config文件中存储数千个用户名和密码也是不现实的。 [2 7]为解决这个问题用户名和密码都存储在数据库中这个办法使Web.config文件不再有<credentials>一节。同时Lo gin.Aspx页面也因为身份证书需比对用户名和密码存储在数据库中而发生一些改变。
2.2身份证书
如前所述这个验证机制提供了一个集中的认证服务可为会员提供特有的访问权。在下列情况下使用身份认证 [2] 一用户名/密码数据库或登入页不易
维护; 二希望提供个性化的内容; 三该网站将与其他认证网站结合; 四希望给用户特有的访问权。
创建身份证书
为了实施这一身份认证模式必须在服务器上安装身份证书SDK 软件开发套件和注册微软身份证书。 [1,2]下面的代码设置Web.config文件的身份认证模式(authenticatio n)设置为身份证书
该身份证书的重导向地址Redire ctURL属性设置为内部internal这意味着未经验证的请求能够得到相同的错误信息。 re d ire c tU RL的属性还可以是除interna l外的其他字符串一般是URL用来重定位未经验证的请求。
2.3视窗认证
这种类型的身份认证可能是最简单的一种。视窗认证可与IIS提供的除匿名身份验证外的几乎所有的验证方法结合如基本摘要式N TLM或Kerb e ro s身份验证 [2,4]这里无需写任何代码来验证用户的II S已经验证自己的Windows凭据。基本上视窗认证使用IIS的身份验证功能。 IIS将先完成它的验证功能然后由ASP.NET决定是否给予授权或拒绝服务。
这种机制通常是在用户是Windo ws域和通过身份验证的用户时使用代码执行在安全性与用户的Windo ws帐户相同的环境中。 [4]当用户请求具体的资源这一要求将前往IIS。 IIS中对用户进行身份验证和发放安全令牌给它。然后将通过认证的要求和安全令牌转发给ASP.NET中。如果模拟启用 ASP.NET模拟用户使用安全令牌重视并在Web.config文件的“授权<authorization>”一节中的查看使用者是否被授权访问的资源。如果获得批准 ASP.NET将通过IIS发送用户所要求的资源否则它发出的错误讯息给使用者。
设置视窗认证
视窗认证的唯一的步骤是在Web.config文件中设置身份验证模式为Windows和拒绝存取匿名用户如下所示
模拟只有在代码是在相同的安全环境中的用户帐户才能启用。同样这也要在做配置文件中完成。
2.4结束语
AS P.NET安全认证是Web应用程序安全的最主要特征之一。它分为三个不同的内置服务基于表单的身份认证和视窗认证。基于表单的认证和身份认证不要求用户为Windo ws用户。在视窗认证是为Windo ws域用户设计的。基于表单的认证提供了未经认证的用户登录页面要求他们提供凭据并将对这些证书进行验证。如果用户无权访问特定的资源它将把拒绝存取信息返回到用户。在身份认证中身份的SDK只是在服务器上安装和注册微软身份证书提供了一个由Micro so ft提供登入凭证的访问会员网站的简单的机制。视窗是最方便使用的 因为它不需要写任何代码进行验证。
参考文献:
[1]Bell ,J. ,et al ,2001 ,ASP.NET Pro grammer’ s Reference,Wrox Pre ss Ltd. ,USA.
[2]Chilakala,V. ,2001 ,Microsoft ASP.NET Security,Microsoft Support WebCasts.
[3]Gonzales ,J. ,2002,15 Seconds :Using Forms Authentication in ASP.NET Part 1
[4] Kercher ,J . ,2001 ,Authentication in ASP. NET : . NET, SecurityGuidance,MSDN Magazine August 2001.
[5]Lassan,R. ,Smith,E. ,2002,ASP.NET Bible,Hungry,Minds Inc. ,USA.
[6]Leinecker,R. ,2002,Using ASP.NET,Que Corporation, Indiana.
[7]NET Framework Developer’ s Guide :ASP.NET Web.Application Security,Link.
[8]Kieley,J. ,2001 ,Migrating to ASP.NET:Key Consid2eration,MSDN MagazineNovember2001.
小渣云 做那个你想都不敢想的套餐 你现在也许不知道小渣云 不过未来你将被小渣云的产品所吸引小渣云 专注于一个套餐的商家 把性价比 稳定性 以及价格做到极致的商家,也许你不相信36元在别人家1核1G都买不到的价格在小渣云却可以买到 8核8G 高配云服务器,并且在安全性 稳定性 都是极高的标准。小渣云 目前使用的是美国超级稳定的ceranetworks机房 数据安全上 每5天备份一次数据倒异地 支持一...
3C云互联怎么样?3C云互联专注免备案香港美国日本韩国台湾云主机vps服务器,美国高防CN2GIA,香港CN2GIA,顶级线路优化,高端品质售后无忧!致力于对互联网云计算科技深入研发与运营的极客共同搭建而成,将云计算与网络核心技术转化为最稳定,安全,高速以及极具性价比的云服务器等产品提供给用户!专注为个人开发者用户,中小型,大型企业用户提供一站式核心网络云端服务部署,促使用户云端部署化简为零,轻松...
Spinservers是Majestic Hosting Solutions,LLC旗下站点,主营美国独立服务器租用和Hybrid Dedicated等,数据中心位于美国德克萨斯州达拉斯和加利福尼亚圣何塞机房。TheServerStore.com,自 1994 年以来,它是一家成熟的企业 IT 设备供应商,专门从事二手服务器和工作站业务,在德克萨斯州拥有 40,000 平方英尺的仓库,库存中始终有...