网站安全认证登录渗透测试检测要点

2019-12-23 21:40 来源:A5用户投稿 作者:王旭 点击: 评论:

A-A+

原标题:网站安全认证登录渗透测试检测要点

圣诞节很快就要到了,对渗透测试的热情仍然有增无减。我们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字段是否有注入

jwk元素是否可信

是否强制使用白名单上的加密算法

7.2.3.2. Payload部分

其中是否存在敏感信息

检查过期策略,比如 exp , iat

7.2.3.3. Signature部分

检查是否强制检查签名

密钥是否可以被强行登录

是否可以通过其他方式拿到密钥

7.2.3.4. 其他

修改算法RS256为HS256

弱密钥破解

Kerberos

7.3.1. 简介

简单地说,Kerberos提供了一种单点登录(SSO)的方法。考虑这样一个场景,在一个网络中有不同的服务器,比如,打印服务器、邮件服务器和文件服务器。这些服务器都有认证的需求。很自然的,不可能让每个服务器自己实现一套认证系统,而是提供一个中心认证服务器(AS-Authentication Server)供这些服务器使用。这样任何客户端就只需维护一个密码就能登录所有服务器。

因此,在Kerberos系统中至少有三个角色:认证服务器(AS),客户端(Client)和普通服务器(Server)。客户端和服务器将在AS的帮助下完成相互认证。在Kerberos系统中,客户端和服务器都有一个唯一的名字,叫做Principal。同时,客户端和服务器都有自己的密码,并且它们的密码只有自己和认证服务器AS知道。

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的票据同时发给服务器

【易采站长站编辑:秋军】