400-6655-745
技术干货 | 多因素认证之Radius
2020-03-16
Radius是什么?



刚写完第一句,路过的同事说,你要介绍缓存吗?


不,缓存那是Redis,看起来拼写字母差不多,实际上确实两个完全不相关的东西,Redis是做缓存用的;


那Radius是干什么用的呢?


Radius是计算机访问网络时进行认证、授权、计费的网络协议,Radius就相当于海关的角色,既要护照也要签证时间。举些简单的例子,上大学时候去网吧通宵,三块一个小时,二十块通宵,后台计费系统是Radius协议;我们去星巴克点杯冰美式连Wi-Fi,输入账号密码开始上网计时,后台是Radius协议;我们给手机充上话费打电话,欠费了就不能呼号了,后台是Radius协议。所以Radius其实和生活息息相关。


Radius它是怎么运行的呢?百科解释如下:


RADIUS(Remote Authentication Dial-In User Server,远程认证拨号用户服务)是一种分布式的、C/S架构的信息交互协议,能包含网络不受未授权访问的干扰,常应用在既要求较高安全性、又允许远程用户访问的各种网络环境中。协议定义了基于UDP(User Datagram Protocol)的RADIUS报文格式及其传输机制,并规定UDP端口1812、1813分别作为认证、计费端口。RADIUS最初仅是针对拨号用户的AAA协议,后来随着用户接入方式的多样化发展,RADIUS也适应多种用户接入方式,如以太网接入等。它通过认证授权来提供接入服务,通过计费来收集、记录用户对网络资源的使用。


百科稍微有点技术,那咱们聊点业务


Radius原先诞生的使命是为网络和电话拨号用户进行认证和计费,后来经过多次改进,形成了一项通用的认证协议。


由于RADIUS协议的应用广泛性,受到普遍支持,经常被ISP服务商和公司作为管理访问Internet、内网、无线网、集成e-mail网络访问服务的管理协议。这些网络可能包括普通电话上网、ADSL上网、小区宽带上网、IP电话、VPN(Virtual Private Networks,虚拟专用网络)等。RADIUS主要特征:基于C/S体系结构的协议;基于UDP协议传输机制;支持PAP、CHAP等多种协议认证方式;使用MD5加密技术;支持AAA(集中认证、授权和计费管理)模型;可扩展。


Radius是一个认证协议,Radius服务器是一个认证服务器,他既可以自己作为认证中心完成用户的认证操作,也可以指向其他认证中心,比如派拉的统一身份认证中心。目前大多数企业内都有VPN、WI-FI、路由器等等,例如深信服的VPN本身支持Radius协议,所以扩展双因素认证非常简单,实现逻辑如下:



1.用户输入账号密码首次认证可以选择本地账号密码/LDAP/派拉多因素认证平台等完成账号密码的校验。

2.VPN账号密码校验完成后进入二次认证界面,需要输入动态口令进入多因素认证,动态口令校验成功后进入VPN。



派拉多因素认证平台已经完成了深信服、思科(CISCO)、华三(H3C)等厂商的基于radius协议集成的多因素认证,一般情况下,VPN、Linux服务器、路由器、企业Wi-Fi准入等系统只要支持Radius协议,即可无缝集成至派拉多因素认证平台。


基于Radius实现的功能包含什么呢?


1)VPN的二次认证(深信服、飞塔、思科、华为、H3C、天融信等等)

2)无线portal认证+统一身份认证单点登录

3)普通电话上网

4)宽带上网

5)IP电话

6)……


那我们要怎么用Radius呢?


目前为止,基于Radius协议的开源实现包括freeradius、tinyradius及toughradius等等,Radius认证中心需要和第三方强认证中心结合起来才能够实现多因素认证、统一身份管理、单点登录等扩展功能。





对于企业强认证存在的问题,为满足企业用户不同方式的认证模式,派拉软件开发了新一代的派拉多因素认证平台管理软件 ParaSecure Multi-Factor Authentication (ParaSecure MFA)产品,实现了企业安全访问控制。多因素认证功能包括并不限于动态口令、短信认证、二维码认证、人脸识别、指纹认证、无线portal认证、LDAP认证、数字证书认证、IC卡认证、USB-Key认证等方式,能够满足企业内部的安全认证需求。


Radius相关名词术语解释:


1.RADIUS(Remote Authentication Dial In User Service,远程用户拨号认证协议)

RADIUS是一个为计算机访问使用网络服务提供集中认证、授权和计费管理(AAA)的网络协议。RADIUS最初是由Livingston公司在1991年提出,作为拨号用户访问访问网络服务器的认证和计费协议,后来被采纳作为IETF标准。


2.AAA(Authentication, Authorization, and Accounting)

AAA模型主要解决这三个问题:你是谁?你可以享受什么服务?你在享受服务的同时需要做点什么?

Authentication 验证一个人或一台机器的身份的过程;Authorization 使用一系列的规则来限制用户在系统中的行为;Accounting 度量并记录用户在访问期间使用过的资源,可能包括时间、流量等,数据可以用于计费、趋势预测、资源利用率分析等活动。


3.IETF相关组织机构:

IETF(Internet Engineering Task Force,互联网工程任务组)

IETF是松散的、自律的、志愿的民间学术组织,由为互联网技术工程及发展做出贡献的专家自发参与和管理,成立于1985年底, 它与W3C、ISO/IEC 等标准化团体紧密合作,主要任务是负责Internet相关技术协议规范的研发和制定。

IETF体系结构分为三类,一个是互联网架构委员会(IAB),第二个是互联网工程指导委员会(IESG),第三个是在八个领域里面的工作组(Working Group)。


4.RFC(Request For Comments,请求评议)

RFC是由IETF出版,在计算机网络工程中,用于描述与Internet及其相关系统有关的技术方法、行为、研究、创新的备忘录。RFC是一系列以编号排定的文件,包含了关于Internet的几乎所有重要的文字资料。

一个RFC文件在成为官方标准前一般至少要经历4个阶段【RFC2026】:英特网草案、建议标准、草案标准、因特网标准。


5.UDP(User Datagram Protocol,用户数据报协议)

UDP是OSI参考模型中一种无连接的传输层协议,是Internet协议集的核心成员之一。UDP 协议基本上是IP协议与上层协议的接口,与 TCP 不同,UDP 并不提供对 IP 协议的可靠机制、流控制以及错误恢复功能等。

由于UDP 比较简单,UDP 头包含很少的字节,比TCP负载消耗少。UDP适用于不需要TCP可靠机制的情形,比如,当高层协议或应用程序提供错误和流控制功能的时候。UDP是传输层协议,服务于很多知名应用层协议,包括网络文件系统(NFS)、简单网络管理协议(SNMP)、域名系统(DNS)以及简单文件传输系统(TFTP)、动态主机配置协议(DHCP)、路由信息协议(RIP)和某些影音串流服务等等。


6. NAS(Network Access Server,网络访问服务器)

NAS表示控制访问远程网络资源的入口设备。客户端连接到NAS,NAS则连接到网络资源,并请求客户端提供的访问证书信息是否有效。基于该请求的响应,NAS判断允许或拒绝客户端对受保护资源的访问。

NAS本身并不知道什么样的客户端可以连接访问,什么样的访问证书有效,它只是将客户端发送的有关访问证书请求发送到被请求的资源去判断。


7.PPP (Point to Point Protocol,点到点协议)

PPP协议是用于在两个网络节点之间建立直接连接的数据链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。

PPP协议中提供了一整套方案来解决链路建立、维护、拆除、上层协议协商、认证等问题。PPP协议包含这样几个部分:链路控制协议LCP(Link Control Protocol);认证协议;网络控制协议NCP(Network Control Protocol)。

PPP链路建立的过程包括创建PPP链路、用户验证、调用网络层协议三个阶段。在链路创建阶段,只是对验证协议进行选择,用户验证将在第2阶段实现。PPP协议是目前广域网上应用最广泛的协议之一,它的优点在于简单、具备用户验证能力、可以解决IP分配等。


8.PAP(Password Authentication Protocol,口令认证协议)

PAP是PPP中的基本认证协议,采用一种简单的明文验证方式。NAS(网络接入服务器,Network Access Server)要求用户提供用户名和口令,PAP以明文方式返回用户信息。很明显,这种验证方式的安全性较差,第三方可以很容易的获取被传送的用户名和口令,并利用这些信息与NAS建立连接获取NAS提供的所有资源。


9.CHAP(Challenge-Handshake Authentication Protocol,挑战握手认证协议)

CHAP是由PPP服务器对远程客户端身份进行验证的一种认证方案,由RFC1994定义。CHAP对PAP进行了改进,不再直接通过链路发送明文口令,而是使用挑战口令以哈希算法对口令进行加密。CHAP协议基本过程采取一个三步握手的方式。首先,在链路建立以后认证者发送一个随机挑战信息给对方。然后,接收方根据此挑战信息和共享的密钥信息,使用单向HASH函数计算出响应值,然后发送挑战响应给认证者。第三,认证者也进行相同的计算,验证自己的计算结果和接收到的结果是否一致,一致则认证通过,否则认证失败。

因为服务器端存有客户的明文口令,所以服务器可以重复客户端进行的操作,并将结果与用户返回的口令进行对照。CHAP为每一次验证任意生成一个挑战字串来防止受到再现攻击(replay attack)。在整个连接过程中,CHAP将不定时的向客户端重复发送挑战口令,从而避免第三方冒充远程客户进行攻击。

CHAP 被各种网络访问服务器和客户端供应商广为采用。运行路由和远程访问的服务器支持 CHAP,以便能够对要求使用CHAP的远程访问客户端进行身份验证。这种认证方法的优点即在于密钥信息不需要在通信信道中发送,而且每次认证所交换的信息都不一样,可以很有效地避免监听攻击。


10.  EAP(Extensible Authentication Protocol,扩展认证协议)

EAP是一个直接在数据链路层上支持PPP或者IEEE 802无线网络协议的通用认证框架,可以支持多种认证方法。它由RFC3748定义,目前更新到RFC5247。

EAP并不在链路建立阶段指定认证方法,而是把这个过程推迟到认证阶段。这样认证方就可以在得到更多的信息以后再决定使用什么认证方法。这种机制还允许PPP认证方简单地把收到的认证报文透传给后方的认证服务器,由后方的认证服务器来真正实现各种认证方法。

EAP不是一种特定的认证机制,而是一种认证的框架。它提供一些通用的功能和选择认证的协商机制。这种机制目前包含了大约40种EAP认证方法。在IETF RFCs标准中定义的EAP认证方法包括EAP-MD5, EAP-OTP, EAP-GTC, EAP-TLS, EAP-IKEv2, EAP-SIM, and EAP-AKA。此外,还存在其它一些特定软件商的认证方法和协议。通常在无线网络中能够操作使用的现代认证方法包括EAP-TLS, EAP-SIM, EAP-AKA, PEAP, LEAP and EAP-TTLS等。EAP认证方法在无线局域网中的认证需求在RFC4071中描述。


11.  MD5(Message-Digest algorithm 5,信息-摘要算法5)

MD5用于确保信息传输完整一致,是计算机广泛使用的哈希算法之一(又译摘要算法、杂凑算法),主流编程语言普遍已有MD5实现。MD5的典型应用是对一段信息产生信息摘要(Message-Digest),以防止被篡改。将数据(如汉字)运算为另一固定长度值是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。

弱点:MD5较老,散列长度通常为128位,随着计算机运算能力提高,找到“碰撞”是可能的。因此,在安全要求高的场合不使用MD5。


12.  Diameter

Diameter意思为直径,意味着Diameter协议是RADIUS(半径)协议的升级版本,被IETF的AAA工作组作为下一代的AAA协议标准。该协议包括基本协议,NAS(网络接入服务)协议、EAP(扩展认证)协议、MIP(移动IP)协议,CMS(密码消息语法)协议等。Diameter协议支持移动IP、NAS请求和移动代理的认证、授权和计费工作。该协议的实现和RADIUS类似,也是采用AVP,属性值对(采用Attribute-Length-Value三元组形式)来实现,但是其中详细规定了错误处理,failover机制,采用TCP协议,支持分布式计费,克服了RADIUS的许多缺点,是最适合未来移动通信系统的AAA协议。

Diameter并不直接与Radius后向兼容,而是提供了一种Radius向Diameter升级的途径。


参考来源:

[1] RADIUS – Wikipedia, http://en.wikipedia.org/wiki/RADIUS

[2] IETF– Wikipedia, http://en.wikipedia.org/wiki/IETF

[3] User Datagram Protocol – Wikipedia, http://en.wikipedia.org/wiki/User_Datagram_Protocol

[4] UDP_百度百科, http://baike.baidu.com/view/30509.htm

[5] Network_Access_Server– Wikipedia, http://en.wikipedia.org/wiki/Network_Access_Server

[6] point-to-point_百度百科http://baike.baidu.com/view/2091682.html?tp=0_01

[7] Point-to-Point_Protocol– Wikipedia, http://en.wikipedia.org/wiki/Point-to-Point_Protocol

[8] Password_authentication_protocol – Wikipedia, http://en.wikipedia.org/wiki/Password_authentication_protocol

[9] Challenge-handshake_authentication_protocol – Wikipedia, http://en.wikipedia.org/wiki/Challenge-handshake_authentication_protocol

[10] Extensible_Authentication_Protocol – Wikipedia, http://en.wikipedia.org/wiki/Extensible_Authentication_Protocol

[11] MD5 – Wikipedia, http://en.wikipedia.org/wiki/MD5

[12] MD5_百度百科http://baike.baidu.com/view/7636.htm

[13] Diameter– Wikipedia, http://en.wikipedia.org/wiki/Diameter_(protocol)

[14] Diameter_百度百科http://baike.baidu.com/view/1267566.html

相关推荐

您的需求,我们随时倾听

  • 上海派拉上海派拉
  • 上海派拉上海派拉
  • 上海派拉上海派拉
  • 上海派拉上海派拉
  • 上海派拉上海派拉
  • 上海派拉上海派拉
提交
上海派拉
  • 上海派拉扫码关注派拉
  • 上海派拉400-6655-745
  • 上海派拉

    marketing@paraview.cn

  • 上海派拉上海
  • 上海派拉北京
  • 上海派拉广州
  • 上海派拉深圳
  • 上海派拉长春
  • 上海派拉武汉
  • 上海派拉成都
© 2015 Paraview Software. All rights reserved.
沪ICP备13029541号

沪公网安备 31011502012922号