2.3 CAS 安全性
CAS 的安全性是一个非常重要的 Topic 。 CAS 从 v1 到 v3 ,都很依赖于 SSL ,它假定了这样一个事实,用户在一个非常不安全的网络环境中使用 SSO , Hacker 的 Sniffer 会很容易抓住所有的 Http Traffic ,包括通过 Http 传送的密码甚至 Ticket 票据。
2.3.1 TGC/PGT 安全性
对于一个 CAS 用户来说,最重要是要保护它的 TGC ,如果 TGC 不慎被 CAS Server 以外的实体获得, Hacker 能够找到该 TGC ,然后冒充 CAS 用户访问所有授权资源。
SSO 的安全性问题比普通应用的安全性还要严重,因为 SSO 存在一种门槛效应。以前即使 Hacker 能够截获用户在 Web 应用 A 的密码,它也未必能知道用户在 Web 应用 B 的密码,但 SSO 让 Hacker 只需要截获 TGC( 突破了门槛 ) ,即能访问所有与该用户相关的所有应用系统。
PGT 跟 TGC 的角色是一样的,如果被 Hacker 获得,后果可想而知。
从基础模式可以看出, TGC 是 CAS Server 通过 SSL 方式发送给终端用户,因此,要截取 TGC 难度非常大,从而确保 CAS 的安全性。
因此,某些人认为 CAS 可以不使用 SSL 的想法需要更正一下, CAS 的传输安全性仅仅依赖与 SSL 。
跟 Kerberos 一样 TGT , TGC 也有自己的存活周期。下面是 CAS 的 web.xml 中,通过 grantingTimeout 来设置 CAS TGC 存活周期的参数,参数默认是 120 分钟,在合适的范围内设置最小值,太短,会影响 SSO 体验,太长,会增加安全性风险。
<context-param>
<param-name>edu.yale.its.tp.cas.grantingTimeout</param-name>
<param-value>7200</param-value>
</context-param>
TGC 面临的风险主要并非传输窃取。比如你登陆了之后,没有 Logout ,离开了电脑,别人就可以打开你的浏览器,直接访问你授权访问的应用 ) ,设置一个 TGC 的有效期,可以减少被别人盗用,或者被 Hacker 入侵你的电脑直接获取你系统目录下的 TGC Cookie 。
2.3.2 Service Ticket/Proxy Ticket 安全性
首要明白, Service Ticket 是通过 Http 传送的,以为着所网络中的其他人可以 Sniffer 到其他人的 Ticket 。
CAS 协议从几个方面让 Service Ticket 变得更加安全。
l Service Ticket 只能使用一次。
CAS 协议规定,无论 Service Ticket 验证是否成功, CAS Server 都会将服务端的缓存中清除该 Ticket ,从而可以确保一个 Service Ticket 被使用两次。
l Service Ticket 在一段时间内失效。
假 设用户拿到 Service Ticket 之后,他请求 helloservice 的过程又被中断了, Service Ticket 就被空置了,事实上,此时, Service Ticket 仍然有效。 CAS 规定 Service Ticket 只能存活一定的时间,然后 CAS Server 会让它失效。通过在 web.xml 中配置下面的参数,可以让 Service Ticket 在多少秒内失效。
<context-param>
<param-name>edu.yale.its.tp.cas.serviceTimeout</param-name>
<param-value>300</param-value>
</context-param>
该参数在业务应用的条件范围内,越小越安全。
l Service Ticket 是基于随机数生成的。
Service Ticket 必须足够随机,如果 Service Ticket 生成规则被猜出(如果你使用了 ST+Helloservice+ 自增序列的方式, Hacker 就可以构造下一个 Ticket ), Hacker 就等于绕过 CAS 认证,直接访问所有服务。
分享到:
相关推荐
3 CAS安全性 4 CAS工作模式 5 系统设计方案 6 CAS关键技术 6.1 域名规范 6.2 中文用户登录提交时乱码 6.3 客户端获取中文用户名及更多信息乱码 7 单点登录风险 7.1 无人看守的桌面 7.2 单点攻击 8 名词解释 9 附件 ...
资源名称:敏捷Acegi、CAS 构建安全的Java系统 内容简介:本书是关于Acegi、CAS的权威教程,是Java/Java EE安全性开发者的必备参考书。无论是Java EE安全性编程模型的背景和基础知识,还是Acegi、CAS本身,还是...
2.nginx反向代理elasticsearch,elasticsearch的访问端口为9200,采用nginx反向代理之后,当django中需要从elasticsearch中查询数据的时候只需要访问nginx的8081端口,为了保护elasticsearch的安全性在nginx中设置了...
java多线程安全性基础介绍 线程安全 正确性 什么是线程安全性 原子性 竞态条件 i++ 读i ++ 值写回i 可见性 JMM 由于cpu和内存加载速度的差距,在两者之间增加了多级缓存导致,内存并不能直接对cpu可见。 ...
用cas实现单点登录 构造实现 内外分离的系统 更高的提高系统的安全性
针对普通CAS单点登录模型安全性较差的缺陷,系统地分析了指纹识别和CAS单点登录模型,提出了一个综合两者优势的Web单点登录系统模型FP-CAS,探讨了用户登录流程的实施过程。该模型具有指纹安全系数高、不容易破解和...
cas-server-extension-duo 该模块基于 。目标是提取使用Duo进行两因素身份验证所需的代码/配置,并将其打包到一个可以轻松包含在其中的模块中。 CAS部署。 使用移动设备,座机电话和硬件令牌为两因素身份验证提供...
spark-pac4j项目是用于Sparkjava Web应用程序和Web服务的简单而强大的安全性库,它支持身份验证和授权,还支持注销和会话固定和CSRF保护等高级功能。 它基于Java 8,Spark 2.9和v4 。 它在Apache 2许可下可用。 代表...
cas一般均放置在内网,加入cas验证则必须要求用户走vpn访问,提高安全性; cas可和域控等系统结合,密码定时过期; 基本认证统一走cas控制,减去开帐号等麻烦事; django 如何使用cas验证 django 的好处就是支持的包多,网上...
spring-webmvc-pac4j项目是一个用于Spring Web MVC / Spring Boot Web应用程序和Web服务的简单而强大的安全性库。 它支持身份验证和授权,还支持注销和会话固定和CSRF保护等高级功能。 它基于Java 8,Spring Web MVC...
buji-pac4j项目是Shiro Web应用程序和Web服务的简单而强大的安全性库,它支持身份验证和授权,还支持CSRF保护等高级功能。 它基于Java 8,Shiro 1.7和v5 。 它在Apache 2许可下可用。 代表认证机制。 它执行登录过程...
spring-security-pac4j项目是一个用于Spring Security Web应用程序和Web服务(带有或不带有Spring Boot)的简单而强大的安全性库。 它支持身份验证和授权,还支持会话固定和CSRF保护等高级功能。 它基于Java 8,...
undertow-pac4j项目是Undertow Web应用程序的简单而强大的安全性库,它支持身份验证和授权,还支持应用程序注销和CSRF保护等高级功能。 它基于Java 8,Undertow 2和v4 。 它在Apache 2许可下可用。 代表认证机制。 ...
目录: 1-1 DS87.5安装.wmv 1-2 DS 7.5 离线更新教程.wmv 1-3 1.SQL安装视频.wmv ...5 H3C CAS&UIS服务器虚拟化产品软硬件兼容性列表V2 00.xlsx 6 H3C CAS&亚信安全DSM 9.6虚拟化安全防护方案操作指导书V3.0.pdf
安全性5. 资源监控高可靠性(HA)高可靠性(High Availability,简称HA)功能可以为集群中所有虚拟机上运行的应用程序提供简单易用、经济高效的高可用性开启HA功能之后,CVM会持续对集群内所有的服务器主机与虚拟机...
?...学完SSM框架的同学就可以学习,能让你切身感受到企业级开发环境目标1:搭建单点登录服务端,开发单点登录客户端目标2:实现CAS 认证数据源设置目标3:更换CAS 登录页面目标4:掌握CAS与SpringSe
play-pac4j项目是Play框架v2 Web应用程序和Web服务的简单而强大的安全性库,它支持身份验证和授权,还支持注销和CSRF保护等高级功能。 它可以与Deadbolt一起使用。 它基于Play 2.8(Scala v2.12或v2.13)和v5 。 它...
02 H3C CAS&UIS服务器虚拟化产品软硬件兼容性列表V2 00 03 H3C CAS&亚信安全DSM 9.6虚拟化安全防护方案操作指导书V3.0 04 Deep_Security_MH_Admin_Guide_CN 05 Deep_Security_MH_feature_matrix_CN 06 Deep_...
本书在后续章节中系统介绍了.NET安全的功能,其中包括运行库支持、证据、代码标识、权限、代码访问安全性(CAS)、基于角色的安全性等。在介绍了ASP.NET和COM+组件服务的章节之后,本书还特意留出了一部分章节来介绍...
JeeSite是基于多个优秀的开源项目,高度整合封装而成的高效,高性能,强安全性的开源Java EE快速开发平台。 JeeSite是您快速完成项目的最佳基础平台解决方案,JeeSite是您想学习Java平台的最佳学习案例,JeeSite还是...