美文网首页
【白帽子】认证与会话管理

【白帽子】认证与会话管理

作者: queena_ | 来源:发表于2018-02-24 14:19 被阅读0次

    1、认证与授权的区别

    • 认证(Authentication)
    • 授权(Authorization)
      认证的目的是为了认出用户是谁,而授权的目的是为了决定用户能够做什么
      认证实际上就是一个验证凭证的过程

    1、只有一个凭证被用于认证,则称为“单因素认证”
    2、如果有两个或多个凭证被用于认证,则称为“双因素”


    2、目前常用的一种暴力破解手段

    选择一些弱口令,比如123456,然后猜解用户名,直到发现一个使用弱口令的账户为止。由于用户名往往是公开的信息,攻击者可以收集一份用户名的字典,使得这种攻击的成本非常低,而效果却比暴力破解密码要好很多

    3、密码的保存

    密码必须以不可逆的加密算法,或者是单向散列函数算法,加密后存储在数据库中
    将明文密码经过哈希(比如MD5或者SHA-1)在保存到数据库,是目前业界比较普遍的做法

    4、一种破解MD5后密码的方法

    彩虹表
    收集尽可能多的密码明文和明文对应的MD5值
    为了避免密码哈希值泄露后,黑客能够直接通过彩虹表查询出密码明文,在计算密码明文的哈希值时,增加一个"Salt"
    "Salt"时一个字符串,它的作用时为了增加明文的复杂度,并能够使得彩虹表一类的攻击失效
    MD5(Username+Password+Salt)
    其中Salt=abcddcba……(随机字符串)

    5、Session与认证

    当认证成功后,就需要替换一个对用户透明的凭证——SessionID
    当用户已经成功登陆网页后,在服务器端会生成一个新的会话(其中保存用户的状态和相关信息),此时只需要知道是哪个用户在浏览当前网页即可——把当前用户持有的SessionID告知服务器


    最常见的作法就是把SessionID加密后保存在Cookie中,因为Cookie会随着HTTP请求头发送,且受到浏览器同源策略的保护


    SessionID还可以保存在URL中,作为请求的一个参数(不安全)

    6、Session Fixation攻击(会话固定攻击)

    在用户登录网站的过程中,如果登录前后用户的SessionID没有发生变化,则会存在Session Fixation问题


    攻击者先获取一个未经认证的SessionID,然后将这个SessionID交给用户Y去认证,Y完全认证后,服务器并未更新此SessionID的值(注意是未改变SessionID,而不是未改变Session),所以X可以直接凭借此SessionID登录进Y的账户


    7、单点登录(SSO,Single Sign On)

    它希望用户只需要登录一次,就可以访问所有的系统
    SSO的优点在于风险集中化,只需要保护好这一个点。缺点同样很明显,因为风险集中了,所以单点一旦被攻破的话,后果非常严重。

    相关文章

      网友评论

          本文标题:【白帽子】认证与会话管理

          本文链接:https://www.haomeiwen.com/subject/blzytftx.html