加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 运营中心 > 建站资源 > 经验 > 正文

网站安全认证登录渗透测试检测关键

发布时间:2022-07-25 16:01:22 所属栏目:经验 来源:互联网
导读:圣诞节很快就要到了,对渗透测试的热情仍然有增无减。我们SINE安全在此为用户认证登录安全制定一个全面的检测方法和要点Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特
  圣诞节很快就要到了,对渗透测试的热情仍然有增无减。我们SINE安全在此为用户认证登录安全制定一个全面的检测方法和要点Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。
 
  7.2.2. 构成
 
  分为三个部分,分别为header/payload/signature。其中header是声明的类型和加密使用的算法。payload是载荷,最后是加上 HMAC((header)+(payload), secret)
 
  7.2.3. 安全问题
 
  7.2.3.1. Header部分
 
  是否支持修改算法为none
 
  kid字段是否有注入
 
  是否可以通过其他方式拿到密钥
 
  7.2.3.4. 其他
 
  修改算法RS256为HS256
 
  弱密钥破解
 
  Kerberos
 
  7.3.1. 简介
 
  简单地说,Kerberos提供了一种单点登录(SSO)的方法。考虑这样一个场景,在一个网络中有不同的服务器,比如,打印服务器、邮件服务器和文件服务器。这些服务器都有认证的需求。很自然的,不可能让每个服务器自己实现一套认证系统,而是提供一个中心认证服务器(AS-Authentication Server)供这些服务器使用。这样任何客户端就只需维护一个密码就能登录所有服务器。
 
  7.3.2. 简化的认证过程
 
  客户端向服务器发起请求,请求内容是:客户端的principal,服务器的principal
 
  AS收到请求之后,随机生成一个密码Kc, s(session key), 并生成以下两个票据返回给客户端
 
  1.给客户端的票据,用客户端的密码加密,内容为随机密码,session,server_principal
 
  2.给服务器端的票据,用服务器的密码加密,内容为随机密码,session,client_principal
 
  客户端拿到了第二步中的两个票据后,首先用自己的密码解开票据,得到Kc、s,然后生成一个Authenticator,其中主要包括当前时间和Ts,c的校验码,并且用SessionKey Kc,s加密。之后客户端将Authenticator和给server的票据同时发给服务器
 
 
  1.检查Authenticator中的时间戳是不是在当前时间上下5分钟以内,并且检查该时间戳是否首次出现。如果该时间戳不是第一次出现,那说明有人截获了之前客户端发送的内容,进行Replay攻击。
 
  2.检查checksum是否正确
 
  3.如果都正确,客户端就通过了认证
 
  服务器段可选择性地给客户端回复一条消息来完成双向认证,内容为用session key加密的时间戳
 
  客户端通过解开消息,比较发回的时间戳和自己发送的时间戳是否一致,来验证服务器
 
  7.3.3. 完整的认证过程
 
  上方介绍的流程已经能够完成客户端和服务器的相互认证。但是,比较不方便的是每次认证都需要客户端输入自己的密码。
 
  因此在Kerberos系统中,引入了一个新的角色叫做:票据授权服务(TGS - Ticket Granting Service),它的地位类似于一个普通的服务器,只是它提供的服务是为客户端发放用于和其他服务器认证的票据。
 
  客户端向AS发起请求,请求内容是:客户端的principal,票据授权服务器的rincipal
 
  AS收到请求之后,随机生成一个密码Kc, s(session key), 并生成以下两个票据返回给客户端:
 
  1.给客户端的票据,用客户端的密码加密,内容为随机密码,session,tgs_principal
 
  2.给tgs的票据,用tgs的密码加密,内容为随机密码,session,client_principal
 
  客户端拿到了第二步中的两个票据后,首先用自己的密码解开票据,得到Kc、s,然后生成一个Authenticator,其中主要包括当前时间和Ts,c的校验码,并且用SessionKey Kc,s加密。之后客户端向tgs发起请求,内容包括:
 
  1.Authenticator
 
  2.给tgs的票据同时发给服务器
 
  3.server_principal
 
  TGS首先用自己的密码解开票据,拿到SessionKey Kc,s,然后用Kc,s解开Authenticator,并做如下检查

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读