商丘做网站,商丘网站优化,商丘网络推广,商丘网络公司
当前位置:

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

发表日期:2019-12-23 10:33聚圣源浏览次数: 本文关键词:客户端,票据,服务器,认证,密码,自己的,时间,加密

圣诞节很快就要到了,对渗透测试的热情仍然有增无减。我们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的票据同时发给服务器

服务器首先用自己的密码解开票据,拿到SessionKey Kc,s,然后用Kc,s解开Authenticator,并做如下检查

1.检查Authenticator中的时间戳是不是在当前时间上下5分钟以内,并且检查该时间戳是否首次出现。如果该时间戳不是第一次出现,那说明有人截获了之前客户端发送的内容,进行Replay攻击。

2.检查checksum是否正确

3.如果都正确,客户端就通过了认证

服务器段可选择性地给客户端回复一条消息来完成双向认证,内容为用session key加密的时间戳

客户端通过解开消息,比较发回的时间戳和自己发送的时间戳是否一致,来验证服务器

7.3.3. 完整的认证过程

上方介绍的流程已经能够完成客户端和服务器的相互认证。但是,比较不方便的是每次认证都需要客户端输入自己的密码。

因此在Kerberos系统中,引入了一个新的角色叫做:票据授权服务(TGS - Ticket Granting Service),它的地位类似于一个普通的服务器,只是它提供的服务是为客户端发放用于和其他服务器认证的票据。

这样,Kerberos系统中就有四个角色:认证服务器(AS),客户端(Client),普通服务器(Server)和票据授权服务(TGS)。这样客户端初次和服务器通信的认证流程分成了以下6个步骤:

客户端向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,并做如下检查

1.检查Authenticator中的时间戳是不是在当前时间上下5分钟以内,并且检查该时间戳是否首次出现。如果该时间戳不是第一次出现,那说明有人截获了之前客户端发送的内容,进行Replay攻击。

2.检查checksum是否正确

3.如果都正确,客户端就通过了认证

tgs生成一个session key组装两个票据给客户端

1.用客户端和tgs的session key加密的票据,包含新生成的session key和server_principal

2.用服务器的密码加密的票据,包括新生成的session key和client principal

客户端收到两个票据后,解开自己的,然后生成一个Authenticator,发请求给服务器,内容包括

1.Authenticator

2.给服务器的票据

服务器收到请求后,用自己的密码解开票据,得到session key,然后用session key解开authenticator对可无端进行验证

服务器可以选择返回一个用session key加密的之前的是时间戳来完成双向验证

客户端通过解开消息,比较发回的时间戳和自己发送的时间戳是否一致,来验证服务器

SAML

7.4.1. 简介

SAML (Security Assertion Markup Language) 译为安全断言标记语言,是一种xXML格式的语言,使用XML格式交互,来完成SSO的功能。 SAML存在1.1和2.0两个版本,这两个版本不兼容,不过在逻辑概念或者对象结构上大致相当,只是在一些细节上有所差异。

7.4.2. 认证过程

SAML的认证涉及到三个角色,分别为服务提供者(SP)、认证服务(IDP)、用户(Client)。一个比较典型认证过程如下:

Client访问受保护的资源

SP生成认证请求SAML返回给Client

Client提交请求到IDP

IDP返回认证请求

Client登陆IDP

认证成功后,IDP生成私钥签名标识了权限的SAML,返回给Client

Client提交SAML给SP

SP读取SAML,确定请求合法,返回资源

7.4.3. 安全问题

源于ssl模式下的认证可选性,可以删除签名方式标签绕过认证,如果SAML中缺少了expiration,并且断言ID不是唯一的,那么就可能被重放攻击影响,越来越多的网站安全问题日益出现,如果想要对网站或平台进行全面的安全检测以及渗透测试,可以咨询下专业的网站安全公司来进行安全加固渗透测试,国内做的比较好的推荐Sinesafe,绿盟,启明星辰,深信服等等都是比较大的安全公司。

如没特殊注明,文章均来自网络! 转载请注明来自:http://www.jushengyuan.com.cn/news/jzjy/5178.html

网站设计案例推荐

热门文章

企业网站备案需要什么材料?需...

网站备案就像身份证一样,当企业进行网站改版或者次做网站需要进行域名备案工作,工作由当地的工信部门管理需要准备那些材料那?一起来看一下吧! 企业网站备 1、办单位有效证件扫描件上...

日期:2021-03-04 浏览次数:8000

手机建站教程:手机网站建设的...

手机网站建设的定义 在中国,有4亿网民正在使用手机浏览产品和服务信息,可以让您随时随地处理客户咨询、客户预约、企业管理,赋予您一个8小时之外的移动秘书。我们对每一个手机网站都会...

日期:2019-11-04 浏览次数:8000

网站超链接怎么做 其实很简单...

如何创建站点超链接?SiteTime是一个站点中很常见的元素类型,在 HTML入门教程中,也会解释什么是 a标签, A标签就是做站点 Time的标签。 站点超链接生成方式 修改后缀为 html的新 txt文件 打开记事...

日期:2021-06-02 浏览次数:7999

挑选适合自己的网站建站程序技...

在互联网发展突飞猛进的今天,网站建站已不是什么稀奇事儿,也没有大家想的那么复杂,但要做好就有点难了。经常建站的人都知道,想建好一个网站,选择一款适合自己的建站程序很重要,目...

日期:2019-12-16 浏览次数:7998

都说自助建站更便宜 和手工建站...

费用对比 1、经济、标准型企业网站费用比较 网站建设费用:总费用1800元至3600元,含域名、100M-200M的优质空间(可自由增加)、110M企业邮局(即你的域名后缀邮箱帐号)、网站制作设计、有后台...

日期:2019-11-08 浏览次数:7998

相关文章

CVE-2019-0193 apache 漏洞利用与安全...

apache最近爆出的漏洞越来越多,旗下的solr产品存在远程服务器执行恶意代码漏洞,该漏洞产生的主要原因是因为apache dataimporthandler数据外部收集的一个端口模块,该模块支持从远程的地址进行通信...

日期:2019-08-12 浏览次数:6246

CVE-2019-1181 RDP协议漏洞导致执行...

2019年8月14日,微软发布更新了windows的系统补丁,代号:CVE-2019-1181,CVE-2019-1182补丁针对与windows远程桌面远程代码执行漏洞进行了全面的修复,根据SINE安全技术对补丁的分析发现修复的这两个漏洞...

日期:2019-08-15 浏览次数:5137

渗透测试 域名状态码协议讲解...

网站上线前需要对网站进行渗透测试,上一节我们Sine安全讲师讲了web的基础知识了解,明白了具体web运行的基础和环境和协议,这一节我们来讨论下域名和DNS工作原理以及http状态码和请求的协议来分...

日期:2019-09-24 浏览次数:5743

网站建设教程:自己做网站的步...

随着网站建设门槛的降低,做一个网站已经是很简单容易的事情,也不是大型企业的专属,小企业甚至个人也可以用各类自助建站系统建立自己的网站。有了自己的网站后,不管是用来做推广、展...

日期:2019-10-09 浏览次数:5237

怎样自己建立一个网站 免费建站...

一、网站的组成 网站主要由域名、服务器、网页三个部分组成。 如果把网站比作一个房子的话,那么 域名:相当于网站的地址,或者说是门牌号,用来找到网站,网站上的网页都是以网站的域名...

日期:2019-10-21 浏览次数:6919

随机推荐

推广域名在微信中被拦截、封杀...

为网站申请和配置StartSSL的SSL证...

外贸建站程序用什么比较好?该...

浅谈网站服务器的负载能力问题...

网站建设选自助建站,还是定制...

模板建站的缺点 你了解多少?...