ASP.NET Web应用程序安全设计浅析

来源 :网络与信息 | 被引量 : 0次 | 上传用户:z1348891
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  1 引言
  
  近年来随着Internet的飞速发展,越来越多的用户利用Web获取、发布信息,这为一些非法入侵他人系统、窃取他人机密、破坏他人系统等恶意行为提供了可能,如果不采取必要的安全措施加以自我保护,后果不堪设想。ASP.NET Web 应用程序为结构设计人员、设计人员和开发人员提出了一系列复杂的安全问题。对Web应用程序来说,安全措施得当才能有效地抵御各种黑客的攻击,如:未授权访问、跨站点脚本、SQL注入等。本文提出了安全的ASP.NETWeb设计方法。
  
  2 安全设计方法
  
  2.1管理用户
  用户是Web应用程序的安全性焦点,多数Web应用程序都是为了保护用户以及他们的私有信息。管理用户是控制Web站点安全性的基本依据。
  2.1.1建立用户证书
  用户名和密码的选择作为应用程序安全的机制,必须使用技术性方法和策略来确保强用户密码。建立一种策略,确保密码足够复杂,防止密码猜测。下面给出一些密码策略:
  (1)实施最小长度为8位字符的密码;
  (2)不限制密码的最大长度;
  (3)密码包含多种字符集,包括大写字母、小写字母、数字和标点符号;
  (4)允许在密码中使用任意键盘字符;
  (5)不允许字典单词;
  (6)不允许密码中出现用户名。
  易于猜测的、可预测的或默认的密码容易受到密码猜测攻击和暴力攻击,易于猜测的用户名也是如此。设计系统时让用户在第一次使用应用程序时设置他们的密码。只有需要的时候才使用随机生成的密码,避免设计如下的系统:期望用户名和密码遵循特定的模式。
  通过获取用户名,攻击者能够收集用于垃圾邮件攻击的电子邮件地址,使用社会工程技术来欺骗其他的用户提供密码,尝试对多个帐户使用暴力攻击。阻止证书获取实际是不显示用户名,并且不使用可猜测证书。设计系统时,避免使用户成为数据库的主键。允许用户改变用户名,以限制证书暴露。
  2.1.2管理密码
  当用户建立了用户名和密码,就要采取一些措施来保护密码。
  存储密码是管理密码的首要问题,存储密码的一种简单策略是不在数据库中存储密码。
  下面给出存储的有效方法:
  (1) 将密码本身存储为普通文本;
  (2) 加密密码,存储加密文;
  (3) 创建单向密码哈希,将哈希表存储在指定的数据库中。
  用户通常不会特地定期改变密码,很多用户持续使用一个密码,而很少有Web站点,特别是因特网服务提供者(ISP)的电子邮件帐户没有提供改变用户密码的简单方法。设计系统时可以考虑在固定时间间隔告之用户,他们的密码过于陈旧。
  2.2验证和授权用户
  在用户登录并访问站点时,Web安全性显得尤为重要。验证用户将确定用户的身份,在证明身份有效性以后,授权访问Web应用程序中不同功能的权限。
  2.2.1验证用户
  Web登录屏幕是一个关卡,强迫用户在这里提供有效的用户名和密码来证明其身份的合法性。严格地设计登录屏幕,以此确定用户的身份是确保应用程序安全的有效措施。
  (1) 构建登录表单
  登录表单在验证用户时起到很重要的作用,不安全的登录表单容易受到密码窃听、信息泄露和phishing的攻击。设计和构建表单时,尽量使其简单,避免将一个表单用于多个任务。总是使用SSL在安全连接上传送证书。尽量建立登录表单自身的安全连接,不在用户点击登录按钮后再建立连接。
  (2) 使用表单验证
  表单验证为Web应用程序提供良好的安全性,并且使用方便:构建一个登录页面,并且在web.config文件中改变一些设置。表单验证允许在web.config文件中直接添加用户名和密码,包括普通的未加密的密码。设计系统时在web.config文件中存储MD5或SHA-1哈希使文件的安全性提高。
  (3) 使用windows验证
  在表单验证外,ASP.NET支持本地IIS的验证方法,这些方法称为Windows验证。它是一种安全的解决方案,这种方法不通过网络传送用户名和密码。当用户已登录到域,并被证明有该站点的权限,他将不会收到输入用户名和密码的提示。
  2.2.2授权用户
  验证了用户的身份后,需要确定该用户是否具有访问请求资源的权限。授权用户是判断用户是否具有访问特定资源权限的过程。
  (1) 使用文件授权
  文件授权提供一个分层的、细致的安全方法。文件授权是通过设置Web内容文件适当的访问控制列表(ACL),以允许访问文件资源的过程。每个ASP.NET程序都自动使用文件授权,因此不需要在ASP.NET中配置任何内容。文件授权不由ASP.NET控制,但它是NTFS文件系统的一个功能。虽然由操作系统处理文件授权,但ASP.NET仍然提供一个文件授权模块。
  (2) 实现URL授权
  URL授权是一种用来控制基于用户、角色、资源或所用HTTP谓词访问的机制。URL授权基于与请求相关的主体,因此它可以对任何形式的验证起作用,也允许对任何未验证的用户设置限制。通过精确定义哪级用户可以访问什么内容及如何访问,URL授权提供了给Web应用程序强制实施最少特权的有效方法。通过编辑应用程序的web.config文件可以配置URL验证。
  2.3加密私有数据
  ASP.NET提供了一组功能强大的加密技术相关类,用来保护数据,并且简化了在整个应用程序中实现加密技术的过程。
  2.3.1使用ASP.NET中的加密技术
  (1)使用对称加密技术
  对称加密又称为对称密钥加密。使用对称加密方法将简化加密的处理,通信双方采用相同的加密算法并只交换共享的专用密钥。对称加密要求消息发送者和接受者共享同一密钥来加密和解密一个消息。对称加密可用于保护已建立共享密钥的多个用户之间的数据,也常用于存储机密数据。DES算法是对称加密中最著名的算法。它使用64位块大小和56位的密钥长度的块密码。
  (2)使用非对称加密技术
  非对称加密技术可以很好地用于公共通信,但速度比对称加密技术慢得多。非对称加密技术使用公钥和私钥模型,解决了对称加密的密钥交换和可伸缩性问题。非对称加密使用两个单独的密钥,一个用于加密,另一个用于解密。一般来说加密密钥公之于众,解密密钥则只有解密人自己知道。
  非对称加密技术通常涉及客户端和服务器上的代码,所以很少用于大多数公共Web应用程序上的自定义实现。但是有时协同其他技术如:SSL来使用非对称加密技术。
  (3)使用哈希算法
  哈希算法是单向函数用于验证数据的完整性。通过哈希算法能够证明数据未被修改,它与通过加密来保护数据同样重要。哈希以某种方式转换数据,给出一个哈希结果,并且无法通过计算回推原消息。.NET框架提供的哈希算法是非常有效和快速的,可以用于许多应用程序。
  2.3.2利用.NET加密特性
  (1)创建随机数
  随机数是多数加密技术的关键部分。有时系统的强度取决于产生随机、不可预测数字的能力。如果没有这种随机特性,攻击者就可能预测密码计算。.NET框架使用RNGCryptoServiceProvider来生成随机数,该类是CrytpoAPI中CryptGenRandom函数的封装器。PRNG被认为具有足够的随机性,为生成强随机数推荐使用RNGCryptoServiceProvider类,避免使用System.Random类。
  (2)保持内存清洁
  使用敏感数据时,应总是确保在使用后清除,不在内存中留下未加密的数据。为了限制在内存中留下敏感数据的可能性,应该使用尽可能少的变量,避免缓存普通文本,同时在密码操作之后显式地清除它们。结束与加密技术相关的变量时,应清除它们的内容。这包含密文变量和普通变量,还包含密码对象、密钥、salt和IV变量。
  (3) 保护机密内容
  安全的Web应用程序关键的部分之一是保护机密内容的过程。
  使用文件系统来存储机密内容时,确保使用Web根目录以外的文件,使用严格的文件权限来限制对文件的读写访问。传统上,在注册表中存储机密内容是Web应用程序中较好的机制,因为相比于确定匿名帐户的攻击者,需要更高的访问级别才能读取注册表。
  2.4过滤用户输入
  许多开发者面临一些担忧:他们的代码并不安全,有些黑客利用Web应用程序本身的缺陷就可以成功入侵。通过操纵程序输入,攻击者可以欺骗服务器使其泄露客户数据,或允许访问未授权文件。尽管有多种输入注入攻击法,但Web开发者有一个好的优势:通过仔细的输入过滤和明智的编码习惯,这些攻击可以完全被阻止。
  2.4.1恶意输入处理
  (1)识别输入源
  识别应用程序接受输入的方式对于阻止恶意输入有重要作用。所有针对应用程序本身的攻击都是基于一定形式的合法用户输入操纵。正确处理表单输入,可以消除这样的攻击弱点。不仅要处理表单输入和查询字符串,而且攻击者可能修改的其他数据也要考虑到。常被忽略的是输入的间接资源和认为攻击者不可能访问的数据。
  (2)防御性编程
  针对Web应用程序的漏洞强调防御性编程。
  有时,由于所有用户输入都与一个变量相关,控制了该变量就控制了用户输入。Web开发者可以用适当的方式编写代码,确保把用户的输入数据分配到一个变量,首先通过过滤函数检测输入数据,以确定它可以安全地使用,然后确定是没有改变的变量。
  控制变量包括过滤或清除变量内的数据。不在每次接受用户输入时都编写代码,而是集中过滤代码,这样做能够减少复杂性并减少攻击面。
  
  3.结束语
  
  最安全、最有能力抵御攻击的Web应用程序是那些应用安全思想构建的应用程序。在设计初始阶段,应该使用可靠的体系结构和设计方法,同时要考虑程序部署以及企业的安全策略。
  
  参考文献
  [1] Mark M. Burnett.《ASP.NETWeb应用程序安全性剖析》.北京:电子工业出版社,2005.5.
  [2]http://msdn.microsoft.com.
其他文献
一、技术分析:ADSL的特点与优势    随着Internet的爆炸式发展,在Internet上的商业应用和多媒体等服务也得以迅猛推广。以往的调制解调器或ISDN(综合业务数字网)等窄带接入方式,只能应用于文字和图片等数据流量较小的网络需求,加上不稳定且时常断线,已很难满足信息量日益增长的需求。数字化的宽带接入方式将成为主流,目前国内主要有如下几种宽带接入网技术:包括FTTB+LAN、有线通、AD
期刊
在使用Ghost的对拷功能前,有许多的原理及概念要先理清,才不至于在操作过程中,仍旧是一团疑云,只知其然却不知其所以然。   首先要知道的是,一块全新的硬盘要先经过硬盘分区及格式化之后,才能存放文件或数据,这就好比是一块未经开发的土地,得先做土地规划,并区分用途(分区规划),再完成道路水电公共设施的建设,然后才能确定各街道地址,门牌号码(格式化),最后才可以迁入居住。   但是现在的硬盘容量越做越
期刊
交换机不是被设计用来作安全设备的,其功能仍是以提高网络性能为主。如果要将交换机纳入安全机制的一部分,前提是首先要对交换机进行正确的配置,其次交换机的制造商要对交换机软件的基础标准有着全面理解并彻底实现了这些标准。   如果对网络安全有着严格的要求,还是不要使用共享的交换机,应该使用专门的交换机来保证网络安全。如果一定要在不可信的网络和可信的用户之间共享一个交换机,那么带来的只能是安全上的灾难。  
期刊
由微软公司开发的DirectX并不是一个单纯的图形API,它是该公司开发的用途广泛的API,包含了Direct Graphics(Direct 3D+Direct Draw)、Direct Input、Direct Play、Direct Sound、Direct Show、Direct Setup、Direct Media Objects等多个组件,它提供了一整套的多媒体接口方案。只是其在3D图
期刊
“Ctrl”键在Word中的作用很大,和其他不同的键组合起来使用,可发挥更大的作用。    Ctrl+D: 打开“字体”对话框,快速完成字体的各种设置。  Ctrl+E:使光标所在行的文字居中。  Ctrl+F:打开“查找与替换”对话框,并定位在“查找”选项卡中。  Ctrl+G:打开“查找与替换”对话框,并定位在“定位”选项卡中。  Ctrl+H:打开“查找与替换”对话框,并定位在“替换”选项卡
期刊
在管理、维护局域网的过程中,网络管理员往往都会担负起普通工作站IP地址的分配任务,普通工作站只有通过正确地注册后才能被局域网认为是合法工作站。在局域网工作环境中,任何一台普通工作站使用没有经过特别授权的IP地址时,都会被局域网网络当作是非法IP地址在使用。不过在Windows操作系统环境下,普通工作站用户常常可以根据自己的意愿随意修改本地工作站的IP地址参数,那样一来局域网网络就容易频繁发生IP地
期刊
在flash软件中使用时间轴与脚本语言的结合,轻松制作古诗填词课件,它比一些其它课件制作软件更为简便、快捷,而且更实用。  第一步  打开flash这款软件,设置影片属性大小为550×350。(或用默认设置也可)点确定按钮进入到场景中。  第二步  文件菜单→导入命令→导入到舞台→在路径目录中选择一幅背景图片文件,然后放置到舞台上面,且调整与场景中舞台同等大小,如图1。     第三步  制作按钮
期刊
前方    随着21世纪的到来,特别是近年现代高科技和信息技术(IT)正在由智能大厦(IB)走向智能住宅小区,进而走进家庭(SH)。现代社会的家庭成员正在以追求家庭智能化带来的多元化信息和安全、舒适与便利的生活环境作为一个理想的目标。    1 国内外智能家居现状及发展趋势    智能住宅的概念起源于美国,美国的智能住宅发展是最为迅猛的。继美国之后,欧洲、日本、新加坡等国家住宅智能化也得到了飞速发
期刊
1. Ajax技术的实现    传统Web 1.0时代B/S架构的系统在处理用户登录等信息时会引起真实的页面跳转,如在用户验证页中完成对用户登录身份合法性认证,即在用户验证页面中判断并弹出提示警告信息。由于用户验证页不同于用户登录页,其为单纯提供用户登录身份合法性认证的功能模块,所以其提示警告信息的显示是在与用户登录界面完全不同的一个空白页面中显示的,这样会非常影响用户的使用心情。  为了解决传统
期刊
近两年,病毒、木马日益猖獗,各种病毒轮番上阵,熊猫烧香、威金、机器狗……病毒的泛滥也使得杀毒软件市场火爆起来,2007年,各种号称具备“主动防御功能”的安全工具也推出不少;另一方面,以在线杀毒、在线安全为主题的安全网站也相继火热。很多杀毒软件厂商都推出了在线杀毒功能。更让我们想不到的是,近日全球中文搜索老大百度也推出了一个安全网站“百度安全中心”,网站号称“史上最方便的安全软件,杀灭病毒,PC优化
期刊