陈锦繁,徐 明,曾基榆
(深圳大学信息中心,深圳 518060)
企业微信是适用于高校内部通讯协作的综合性平台,支持即时通讯、协同办公和文件共享等。它提供了丰富数据接口和通信接口,与高校应用程序的集成和对接都非常便利[1]。国内高校普遍建设校园网并接入CERNET,校外师生通过虚拟私有网络(virtual private network,VPN)技术远程接入校园网。特别是过去几年,广大高校师生受疫情影响不得不在线教学、远程办公和科研等,VPN 利用率越来越高,其安全性也越来越受到重视[2]。因此,以高校WebVPN 的使用安全为讨论重点,将企业微信用于WebVPN 二次认证,加强校园网访问安全,有效防范师生账号被恶意攻击和利用。
VPN 基于互联网提供安全私密的加密隧道,校外用户可以安全接入校园网,访问电子图书资源和校园内部的信息系统。VPN 服务是智慧校园信息化不可或缺的建设内容,SSL VPN 和WebVPN两种VPN技术在高校比较常见。
SSL VPN 提供全协议的VPN 通道,不仅支持B/S 架构的Web 应用和C/S 架构的TCP 应用,还支持基于UDP 协议的语音视频类应用的远程访问。然而,SSL VPN 在应用中存在短板,用户终端需安装插件或配置,对非Windows 系统以及手机平板等移动设备的兼容性不佳。
WebVPN 基于反向代理技术。WebVPN 管理员对用户身份和角色进行权限控制,授权用户访问内网应用,实现类似SSL VPN 功能。相比SSL VPN,WebVPN 用户省去了安装客户端或插件的步骤。对接统一身份认证后,师生打开浏览器即可登录访问校园网。免插件“零配置”特性降低了使用门槛,提升了用户体验,因此WebVPN在高校中占据越来越重要的地位。
WebVPN 多为双机分布式部署模式,包含主控制器和隧道控制器(如图1所示),分别置于DMZ 区域和校内网区域。WebVPN 根据用户身份来分配访问权限,无需防火墙开放端口,有效保持了校园网络整体性和安全性[3]。
图1 WebVPN双机部署示意图
高校的信息化建设目标,是让校园内各业务系统之间融合互通,提升校园信息化服务质量和水平。智慧校园建设和信息化改造,基本都使用统一认证平台并实现了单点登录(SSO)。SSO 让师生在只需一次身份验证,在认证有效期内可访问全校各个业务系统,获得便捷、高效的访问体验[4]。
SSO 技术有多种实现方式,较为典型的有CAS(central authentication service)方案。CAS 为应用系统提供SSO,采用集中式认证模型提供身份认证服务[5]。其本质上是Web 应用,通过与高校各个应用系统进行交互,实现用户的身份验证和授权管理。当用户访问某个应用系统时,首先进入CAS 的登录认证系统,身份验证成功后跳转到目标应用系统,大致分为五个步骤(整个流程如图2 所示)。图2 中实线流程为用户参与过程,虚线为应用系统和认证中心数据交互过程。
图2 CAS认证流程
CAS 采用的是基于票据的验证机制,具有高度的安全性和可靠性,用户通过验证获得票据,再访问其他应用系统时,验证票据有效性再核验身份后,用户无需再次输入用户名和密码[6]。WebVPN作为应用系统,也是通过票据验证机制实现单点登录。从安全角度出发,WebVPN 关乎师生访问校内网络和校内资源,仅通过单因子认证方式,即验证用户名密码来证明用户身份,是有极大风险的。
单因子认证(single-factor authentication,SFA)就是只需一种身份验证方式来验证用户身份。对于高校来说,让WebVPN 对接CAS 实现SSO,但只有密码这个单因子验证条件的话,弱密码是个痛点问题。用户名和密码是静态数据,在身份验证的传输过程中存在被监听和截获的可能。另外,若WebVPN 权限较高,攻击者就能获取用户同一认证域下的所有应用系统权限和数据,极易造成信息泄漏事故。因此,单因子认证方法具有较大的安全隐患,为了保护用户账号、个人隐私和应用系统安全,采用更完善的身份验证方式是必要的。
网络安全形势日趋严峻复杂,各种攻击事件层出不穷。为了保障用户信息的安全,各高校逐步采用更加安全的身份验证方式,包括动态口令和双因子认证等。动态口令是临时性密码,通常限制在一定的有效时间内且仅使用一次。动态口令使用基于时间的算法,如HOTP或TOTP 生成,可以确保动态口令只在短时间内有效。相比于传统的静态密码,动态口令更加安全,只要动态码接收设备掌控在用户手里,动态口令很难被截获。
通过组合两种不同条件来证明用户身份称为双因子认证(two-factor authentication,2FA),这些身份验证条件包括密码、动态码、生物特征(如指纹、掌纹或面部识别)等。相比单因子认证,双因子认证更加安全,攻击者必须要获取到两项身份验证条件才能进入用户账户。即使用户密码被破解,只要其他身份验证条件未被攻破,攻击者也无法登录用户账户。据权威机构研究结果,双因子认证能够有效阻止大多数的网络攻击,包括自动化机器人、钓鱼软件和中间人攻击等。
双因子认证和动态口令的重要性显而易见。将企业微信用于WebVPN 动态码的二次认证解决方案,可以提高账户安全性,保护用户不会因单个身份验证条件泄漏而遭受风险。
随着移动服务的需求不断增加,企业微信作为一款出色的办公管理平台,因其开发及推广成本低、用户黏度高、信息推送快、安全性能高、终端适配优等诸多因素而广受好评。很多高校都选择基于企业微信搭建移动端校园应用,提供的日常业务和服务越来越多,将企业微信打造成了师生移动在线办事大厅[7]。通过企业微信丰富的数据接口,高校可以全面集成校园应用。
将企业微信用于二次认证,需要完成三个环节:保持师生通讯录动态更新、师生关注企业微信和发送企业微信消息(如图3 所示)。首先,需调用企业微信API 接口获取ACCESS_TOKEN,创建登录凭证,其它的业务API 接口都需要依赖于ACCESS_TOKEN 来鉴权调用者身份。参考腾讯的在线文档,ACCESS_TOKEN 的获取接口为GET方式,请求地址:
图3 企业微信二次认证管理数据接口
https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=MYID&corpsecret=MYSECRET
ACCESS_TOKEN 由corpid 和corpsecret 两 个参数产生,其中corpsecret 是用于校验开发者身份和保障数据安全的访问密钥,注意防范泄露。ACCESS_TOKEN 后续用于企业微信接口校验,保证通信访问权限。
为了确保师生成功关注企业微信后顺利接收到认证动态码,企业微信通讯录需定期维护更新,并与师生信息库保持一致。通讯录管理包括两方面:部门管理和成员管理,分别对应学院列表和师生信息。企业微信维护通讯录接口包括创建部门、更新部门、删除部门、创建成员、更新成员、删除成员等操作。通过接口先完成创建部门,生成部门ID。然后创建成员,成员以userid 为主键,userid 对应师生的学工号数据。创建成员的接口为POST方式,接口地址:
https://qyapi. weixin. qq. com/cgi-bin/user/create? access_token=ACCESS_TOKEN
通讯录数据项主要是学工号、姓名和学院,以JSON格式参数提交即创建成员:
{
“userid”:“2022821088”,
“name”:“申小荔”,
“department”:[82],
……
}
企业微信通讯录管理接口跟创建成员接口类似。
维护好企业微信通讯录,师生就可以通过扫码方式关注企业微信。企业微信不等同于微信,但其天然地与微信有信息互通的优势,师生即使只安装了普通微信,也不影响企业微信作为双因子认证的使用功能。师生通过普通微信,同样能关注企业微信号和接收二次认证动态码。
师生关注企业微信的流程(如图4所示):打开微信扫描企业微信二维码,经统一身份认证实名登录,以学生学号或教职工号跟企业微信通讯录userid 进行校验,若属有效通讯录成员,师生补充完善信息后,即绑定企业微信成功。
企业微信消息通过消息引擎快速传递,还能设置优先级有序推送。WebVPN 启用二次认证后,师生登录WebVPN 的完整流程如图5 所示:校外师生访问校内应用系统和数据资源,首先在浏览器打开WebVPN 网址,如https://webvpn.szu.edu.cn;自动跳转到统一身份认证页,输入个人账号和密码登录,如图6所示;登录成功则跳转到二次认证页,需点击获取动态码按钮,师生微信将立即收到动态码消息,如图7所示;将微信消息中的动态码输入二次认证页校验,完成校验即顺利登录WebVPN。
图5 师生登录WebVPN二次认证流程
图6 WebVPN一次认证(用户账号)登录页
图7 WebVPN二次认证(企业微信动态码)登录页
通过调用企业微信推送消息API 的过程,本质上就是发送http 请求给企业微信后台。企业微信的消息推送支持文本、图片、视频、文件、图文等类型。以下是发送文本消息的执行接口代码,请求方式为POST,请求地址:
https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN
以JSON 格式参数提交文本消息接收对象和消息内容:
{
“touser”:“2022821088”,
“msgtype”:“text”,
“agentid”:1,
“text”:{
“content”:“您好!二次认证登录动态码:7879。请勿泄露给他人”
},
……
}
学生申小荔学号为2022821088,在统一身份二次认证页上点击获取动态码操作,其企业微信或微信接收到消息内容,如图8所示。
图8 用户手机微信收到的二次认证动态码
企业微信是可靠的WebVPN 二次认证安全的通讯工具,采用了诸多安全措施,如端到端加密,确保信息不被篡改或窃取。用户无需特别下载和安装企业微信客户端,通过微信就能完成首次关注、个人信息绑定和接收WebVPN动态码。经过几个月的测试应用,通过不断优化消息引擎的触发机制和算法,企业微信的二次认证方案降低了使用门槛,节省了时间,还提高了认证效率,深受师生的喜爱[8]。
高校信息化建设不断推进和革新,校外访问接入技术一直朝着更简约、更安全的方向发展。WebVPN 因其部署便捷且功能全面,拥有更好的兼容性和使用体验,让广大师生能够安全、快速地从校外访问内部数据资源及业务系统,备受高校青睐[9]。企业微信以其安全、易于使用和跨平台的特性,满足高校数字化校园的多种接入需求,作为WebVPN 双因子认证的重要一环,与高校统一身份认证完美融合。企业微信动态码为WebVPN 提供高效可靠的二次认证服务,有效保证师生认证效率和良好体验,有力增强师生个人信息和学校内网数据的安全,为远程访问技术的发展提供有意的探索和参考。