安全性考虑

我们知道, NetID是西安**学生在数字化校园中的唯一身份, 从教务处网站到饭卡, 从菩提帐号到学生邮箱, 都是于NetID绑定的. 一旦NetID对应的密码外泄, 学生在数字化校园中的整套服务将受到威胁. 因此NetID的安全保护不可小视.

本科生**服务[1]使用学生的NetID身份登录, 应该是因为每个NetID对应一名学生, 因此可以完成学生的身份认证工作. 但是登录的方式却有点奇怪: 在**服务网站上输入用户名密码登录. 本来验证用户名密码是否匹配应该是统一身份认证系统[2]的事情, 毕竟, **服务网站只需要知道一个学生对应的NetID就够了, 没必要也不应该知道他的密码. 无论是OAuth还是SSO, 都可以很棒地完成这一点, 技术上不存在难度. 统一身份认证系统应该类似于人人网或者新浪微博这样的服务, 集中管理用户信息, 而**服务等周边服务应该类似于人人网或者新浪微博的第三方应用, 从人人网/新浪微博获得用户的授权, 而无需知道用户的帐号和密码.

好吧, 就算**服务非要知道我的NetID密码, 那我也没得说. 但是能不能在网络连接层面提高点安全性呢? 登陆时密码是明文发送的, 意味着处在相同交换网络中的攻击者可以很容易地截获密码(如利用ARP攻击), 并且选课服务同机房的服务器在技术上也有截获学生NetID的密码的可能性. 从访问者到**服务器的路由上, 有心人想要抓取这段密码实在是a piece of cake. 是否可以考虑利用脚本在表单提交前将密码做一次加密运算然后在服务器上解密呢? 技术上是可以做到的. 但是更推荐的做法是实现端到端加密访问, 也就是传说中的全程HTTPS, 正如gmail做的那样.

至于统一身份认证系统, 能采用https访问真是难能可贵 看得出开发者也是知道密码在传输中是需要加密的. 可是, 能不能不要用自签名的证书呢? 当大家都设置了安全例外, 那安全性自然就是0. 别忘了HTTPS的MITM也是很成熟的. 买一个正规的证书会需要多少钱呢? 对一个学校的网络中心这样的机构来说, 真的不多.

**服务首页网页设计得还是不错的, 相信对这个团队来说, 就以上几点作出改进也不是难事. 辛苦了.

总结一下几点建议:
1. 密码认证只交给CAS完成;
2. 涉及安全的服务, 全程HTTPS;
3. CAS不要采用自签名证书, 买一个. 

猜你喜欢

转载自yaya-wiscom.iteye.com/blog/1473526