• Thinkpad T400设置Window 7的指纹识别登录

    by{ guangboo }, published {2009-09-08}, Tag { Thinkpad T400 / 安全 / Window 7 / }

    安装Windows7已经有两周了,使用起来感觉不错,但是指纹识别一直没能用上。驱动是windows7默认安装的,也安装了lenevo的驱动,但是在“开始菜单”》“所有程序”》“ThinkVantage”>"lenevo 指纹识别"的快捷方式找不到;设备管理器里的指纹设备设备也是正常的,就是登陆windows7的时候没有指纹识别的界面;

    今天总算找到愿意了,具体的解决使用指纹识别登录windows7的问题:

    进入“控制面板”》“硬件和声音设备”,如图1红框标示的地方就是指纹识别设备“生物识别设备”:

    Windows 7 控制面板 指纹识别设备

    图1

    点击“Biometric Devices”下的"Use your fingerprint with windows",“生物识别设备”,进入“指纹识别的管理界面”,进入前需要输入密码,如图2,3:

    Windows 7 注册指纹验证

    图2 输入密码

    Windows 7 注册指纹

    图3,注册指纹,注册方法和lenevo的一样,只是界面不同

    Windows 7 注册指纹

    图 4,注册指纹

     注册完后,进入“指纹管理”界面,如图5,可以看到“Enrolled”:

    Windows 7 指纹管理界面

    图 5,指纹管理界面

    在管理界面左边栏,进入“Change biometric settings”界面,如图6

     Windows 7 指纹设置

    图6,确保红框内容勾选

    完成上面的步骤,重启电脑,就有指纹登录的功能了。

  • 浏览器为什么限制Iframe跨域访问

    by{ guangboo }, published {2009-09-03}, Tag { HTML / 安全 / Web安全 / }

    在dhtml中,不同的窗口和框架iframe可以通过DOM模型相互进行访问,然而我们可以在页面中的iframe中嵌入任意站点,如果没有跨iframe访问的限制的话,那么我们都可以通过DOM模型来访问iframe引用站点的内容了,因此制定一定的访问限制是必要的。

    大部分情况是只有属于同一个域的站点才被运行相互访问,例如:http://www.klipdas.com 是不能访问http://www.guangboo.org站点的,并且http://www.klipdas.com也不能访问http://cms.klipdas.com站点;根据规则,同一站点的两个页面才可以跨iframe相互访问,满足同一个域的条件是:

    1. 协议相同,必须都是http,或者都是https

    2. 端口号相同,http://www.klipdas.com(默认80端口)与http://www.klipdas.com:8080是不同的

    3. 域名主机相同,http://www.klipdas.com(主机是klipdas.com)和http://cms.klipdas.com(cms.klipdas.com)是不同的

    但是很多时候,我们的站点都被设计成使用二级域名来区别不同的应用,但是很多时候多个应用之间也要相互访问。http://account.klipdas.com与http://www.klipdas.com需要相互访问,如在www.klipdas.com/首页面添加一个iframe,iframe.src = http://account.klipdas.com/login/登陆页面,我要在www.klipdas.com的页面中访问iframe里的页面,来判断是否登陆成功。如果按照浏览器的限制的话,这样是被限制的,会报“拒绝访问”的错误。好在处于这样的需要下,是有解决方法的:

    通过在www.klipdas.com的document.domain与http://aacount.klipdas.com/login/的document.domain都设为klipdas.com的话,就运行访问了。

    必须要在两个页面都要设置document.domain,因为只有这样iframe里面的页面才能对www.klipdas.com页面信任,这并不违反安全性、隐私性原则。

    从安全的角度理解跨域脚本操作的限制是非常重要的,因为否则的话,一个恶意站点的页面可以通过嵌入iframe加载别的网站的内容从而通过脚本和DHTML模型进行攻击。

  • 已解密的__Viewstate参数

    by{ guangboo }, published {2009-08-23}, Tag { asp.net / 安全 / Web安全 / }

    风险:

    可能会收集有关 Web 应用程序的敏感信息,如用户名、密码、机器名和/或敏感文件位置

    技术描述:

    ASP.NET 服务器控件从 Control 继承名称为 ViewState 的属性,可让它轻易参加状态管理。 ViewState 的类型是 System.Web.UI.StateBag,这是一个存储名称/值对的字典。 ViewState 由 ASP.NET 页面框架持久在字符串变量中,它是作为隐藏变量而发送给客户端,以及从客户端返回。 回传时,页面框架会解析隐藏变量中的输入字符串,填充每个控件的 ViewState 属性。 如果控件的属性数据使用 ViewState,而不是私有字段,就会在与客户端的来回发送之中,自动持久这个属性。 (如果属性未持久在 ViewState 中,最好是在回传时,返回它的缺省值。)

    ViewState 隐藏参数经过 base64 编码,以确保在来回发送期间,不论应用程序所用的响应/请求编码为何,都不会更改其值。 ViewState 可以应用三个安全层次:

    1. 防止窜改:您可以设置 EnableViewStateMAC 属性来指示 ASP.NET 将散列码附加到 ViewState 字段:
      <%@Page EnableViewStateMAC=true %> 
      

      EnableViewStateMAC 可以在页面或应用层次安装。 回传时,ASP.NET 会生成 ViewState 数据的散列码来与记入的值所存储的散列码相比较。 如果两者不符,便废弃 ViewState 数据,控件会还原为原始安装。 在缺省情况下,ASP.NET 会利用 SHA1 算法来生成 ViewState 散列码。 另外,您也可以依照下列方式,在 machine.config 文件中安装 <machineKey> 来选择 MD5 算法:

    2. 加密:您可以利用加密来保护 ViewState 字段内实际的数据值。 首先,您必须如上所述,安装 EnableViewStatMAC="true"。 然后将 machineKey 验证类型设为 3DES。 这会指示 ASP.NET 利用“三重 DES”对称加密算法来加密 ViewState 值。

    3. 网页伺服数组 ViewState 安全:在缺省情况下,ASP.NET 会创建一个随机验证密钥,将它存储在每部服务器的“本端安全管理中心(LSA)”。 如果要验证在另一部服务器创建的 ViewState 字段,两部服务器的 validationKey 必须设成相同的值。 如果您利用上述任何方法来维护运行“网页伺服数组”配置之应用程序的 ViewState 安全,您必须提供单一共享验证密钥给所有服务器。

      验证密钥是 20 至 64 个强加密随机字节组成的文本字符串,表现成 40 至 128 个十六进制字符。 越长越安全,因此,建议您只要机器支持,都使用 128 字符密钥。 例如:

      System.Security.Cryptography 名称空间包括 RNGCryptoServiceProvider 类,可供您依照下列 GenerateCryptoKey.aspx 样本所示,用来生成这个字符串:

      <%@ Page Language="c#" %>
      <%@ Import Namespace="System.Security.Cryptography" %>
      
        
            

      Generate Random Crypto Key

      40-byte 128-byte  

      Copy and paste generated results

    缺省情况下,.NET 框架只用 EnableViewStateMAC(散列)安全措施。 如果未明确打开加密选项,攻击者便能见到 ViewState 信息(存储名称值配对的字典)和 Control 的状态。 这可以辅助攻击者学习应用程序逻辑,且可能会显现敏感信息。