发明内容
本发明的目的在于提供一种使用户使用指定的拨号程序进行拨号的控制方法及其装置,以实现运营商对拨号程序能进行有效控制,而且不仅能够避免用户使用非法拨号程序接入网络和盗用业务现象的发生,以增强网络用户使用的安全性,同时也便于运营商利用拨号程序来进行统一管理,以满足控制和开展新业务的需要。
本发明所提供的一种使用户使用指定的拨号程序进行拨号的控制方法,基于包括PC、调制解调器、接入设备和IP网络的网络系统,其特征在于,包括:配置步骤:在指定拨号程序中配置用户拨号程序密码;生成并认证步骤:在用户进行拨号接入认证时拨号程序使用由用户通过PC输入的用户密码和所述用户拨号程序密码组合生成的具有不可求逆性的用户接入密码进行接入认证,以完成由指定拨号程序拨号接入的控制。
在上述的控制方法中,在所述配置步骤中配置的用户拨号程序密码按需或定期更新,以形成动态密码。
在上述的控制方法中,用户接入密码组合生成的方式为:以用户密码和用户拨号程序密码作为单向函数的基本输入参数通过单向函数运算得到。
在上述的控制方法中,指定拨号程序位于调制解调器,动态密码存贮在调制解调器中。
在上述的控制方法中,指定拨号程序位于调制解调器,动态密码存贮在PC和调制解调器中。
在上述的控制方法中,PC和调制解调器之间的通信使用HTTP协议,同时使用HTTP消息摘要认证方式进行认证。
在上述的控制方法中,HTTP消息摘要包含授权请求头、WWW-鉴别响应报文头、认证信息头。
在上述的控制方法中,它还包括在配置步骤和生成并认证步骤之间增加的同步处理步骤,即对用户拨号程序密码更新之后对调制解调器中存贮的用户拨号程序密码和PC中存贮的用户拨号程序密码失去同步所进行的检测和更新,包括:
同步丢失的检测步骤:在用户拨号程序密码更新之后,在调制解调器中存贮有更新前、后两个用户拨号程序密码,在接到PC的拨号请求时,调制解调器分别使用该两个用户拨号程序密码分别进行HTTP-Digest接入认证,并在认证的结果是:使用更新后的用户拨号程序密码认证失败但使用更新前用户拨号程序密码认证成功,则确定PC的用户拨号程序密码需要更新;
用户拨号程序密码的同步步骤:调制解调器使用更新前用户拨号程序密码加密更新后的用户拨号程序密码以密文的形式通过HTTP协议发送给PC,PC解密并保留新的用户拨号程序密码。
在上述的控制方法中,认证步骤中的拨号接入认证是通过网络系统中的RADIUS服务器进行的。
本发明还提供了一种实现上述控制方法的调制解调器。该调制解调器包括拨号模块,其特征在于,它还包括第一计算模块,其中:拨号模块,具有支持网络系统管理协议的功能,接受对其进行的用户拨号程序密码的动态配置;第一计算模块,用于实现单向函数的计算功能,即以PC输入的用户密码和配置的所述用户拨号程序密码作为基本的输入参数,利用该单向函数计算出不可求逆的用于接入认证的用户接入密码。
在上述的调制解调器中,还包括与外接的PC通过HTTP协议进行通信的通信模块和以HTTP消息摘要进行更新认证的认证模块。
本发明再提供了一种实现上述控制方法的RADIUS服务器,该RADIUS服务器包括一第二计算模块,用于实现单向函数的计算功能,即以用户密码和拨号程序密码计算出用于接入认证的用户接入密码。
在上述的RADIUS服务器中,还包括一用于更新用户拨号程序密码并通过RADIUS消息输出该密码的更新处理模块。
由于采用了上述的技术解决方案,即通过拨号程序支持动态配置用户拨号程序密码以及使用单向函数由用户密码和用户拨号程序密码导出用户拨号接入的用户接入密码,使得运营商能够要求用户使用指定的拨号程序进行拨号,以便于运营商进行统一管理,以满足控制和开展新业务的需要。同时,本发明保证用户密码和用户拨号程序密码不以明文形式在网络上出现,并通过拨号程序密码更新,提供了更强的认证强度,进一步增强网络用户使用的安全性。另外,本发明只需对调制解调器中的拨号模块和网络系统中的RADIUS(远程拨号接入认证协议)服务器进行扩展即能达到目的,网络改造成本低。
具体实施方式
本发明的基本思想是:运营商在指定的拨号程序中配置用户拨号程序密码(可以定时有网管装置更新该密码);在用户进行接入认证的时候拨号程序由用户通过PC输入的用户密码和用户拨号程序密码通过单向函数生成的不可求逆的接入密码进行接入认证,以完成由指定拨号程序拨号接入的控制。
第一,本发明即使用户使用指定拨号程序进行拨号的控制方法的方案之一
在本发明中,拨号程序位于调制解调器(本实施例为xDSL调制解调器),动态密码存贮在调制解调器中。
参见图2,其包括三个过程:初始化配置过程,拨号接入过程和密码更新过程,其中:为了描述方便起见,ppp接入的过程在图中已经被简化。详细流程如下:
1.网络管理装置随机生成用户拨号程序密码(PSWD-modem),并且由CPE(用户前端设备)管理服务器通过CPE管理协议配置给调制解调器中的拨号程序并存贮在调制解调器内,同时将该密码通知RADIUS服务器。
2.用户请求拨号接入,并且在PC上输入用户密码(PSWD-User)。通过PC和调制解调器之间的接口将用户密码传递给调制解调器中的拨号程序。
3.调制解调器中的拨号程序根据用户拨号程序密码PSWD-modem和用户密码PSWD-User生成PPP拨号程序使用的用户接入密码(PSWD-ppp),ppp接入密码的计算方式为:
PSWD-ppp=MD5(PSWD-User‖PSWD-modem)。其中:
“‖”表示字符串连接,MD5(x)表示用MD5算法计算消息x的消息摘要,MD5算法为单向函数种的一种,当然也可以使用其它任何合适的单向函数作为替代。而任何单向函数要求将用户密码PSWD-User和用户拨号程序密码PSWD-modem作为输入参数,不限于使用上述格式。以单向函数运算之后的结果作为用户接入密码的目的是为了保证用户密码PSWD-User和用户拨号程序密码PSWD-modem不以明文形式在网络上出现。
单向函数可以通过增加运算复杂度方式来确保组合生成的用户接入密码的不可求逆性,即:从用户接入密码无法推导出用户密码和用户拨号程序密码。
4.在RADIUS服务器对接收到用户接入请求消息(ACCESS-REQUEST)进行认证的时候,RADIUS服务器从数据库中提取用户拨号程序密码(PSWD-modem)和用户密码(PSWD-User),以拨号程序相同的方式计算出用户接入认证密码,即:
PSWD-ppp=MD5(PSWD-User‖PSWD-modem)
用计算出的该用户接入认证密码以PAP(密码认证协议)或CHAP(质询握手认证协议)认证对用户进行认证。如果认证成功则接受请求,通过RADIUS消息ACCESS-SUCCESS(接入成功)传送至接入设备(本实施例为IPDSLAM),进入拨号状态;否则通过RADIUS消息ACCESS-REJECT(接入拒绝)传送至接入设备,拒绝用户拨号接入。
5.为了增强安全性,网络管理装置可以按照需要,定期更新拨号程序密码PSWD-modem。网络管理系统更新PSWD-modem的方式为网络管理系统生成新的PSWD-modem并通过CPE管理服务器配置到调制解调器中,同时通知RADIUS服务器更新PSWD-modem。
6.定期更新用户拨号程序密码PSWD-modem,也可以用另外的方式来实现:在用户接入认证成功之后RADIUS服务器更新PSWD-modem,新的PSWD-modem通过RADIUS(远程拨号接入认证协议)消息ACCESS-SUCCESS(接入成功)捎带给接入设备IPDSLAM,IPDSLAM在收到新的密码之后,通过IPDSALM和调制解调器之间的CPE管理通道将新的密码配置到调制解调器中。
本方案具有以下特点:
1.用户必须使用指定的拨号程序进行拨号,因为其它拨号程序无法获得拨号程序密码PSWD-modem。
2.由于本方案使用PSWD-ppp=MD5(PSWD-User‖PSWD-modem)作为用户接入密码,用户拨号程序密码PSWD-modem和用户密码PSWD-User不会以明文形式在网络上出现。同时,因为MD5为单向函数,而无法由用户接入密码逆向推出用户拨号程序密码PSWD-modem和用户密码PSWD-User。
3.本方案提供了用户拨号程序密码更新功能,可以根据需要更新用户拨号程序密码。如果在每次接入认证成功之后就更新拨号程序密码,那么在PPP认证的时候如果使用的是PAP认证,本方案的认证强度相当于CHAP认证。因此本方案提供了更强的认证强度。
4.实施本方案的改造成本低,只需在调制解调器和RADIUS服务器上做很小的改动。
第二,本发明即使用户使用指定拨号程序进行拨号的控制方法的方案之二
本方案之二基于的思想是:为了看起来拨号是从PC发起的,在PC和调制解调器中都备份PSWD-modem,该密码在PPP拨号中的用途和用法同方案一一样;但是该密码在本方案中还有另外一个用途:为了保证PC和调制解调器之间的连接的安全性,PC和调制解调器之间的通信,使用HTTP-Digest(超文本传输协议-消息摘要)接入认证方式(RFC2617)进行认证,这样可以控制使用指定的PC程序和指定的调制解调器进行拨号接入,PSWD-modem就被用做HTTP消息摘要接入认证中的共享密码。
在本发明中,拨号程序位于调制解调器(本实施例为xDSL调制解调器)内,位于PC内的特定程序通过HTTP协议(RFC2616)与调制解调器进行通信,请求进行拨号接入(因此拨号程序看起来位于PC内以使运营商占领桌面),动态用户拨号程序密码同时存贮在PC和调制解调器中。其包括三个过程:初始化配置过程,拨号接入过程和密码更新过程。其中:为了描述方便起见,ppp接入的过程在图中已经被简化。
xDSL用户可能拥有多台PC,以下的方案的描述中只考虑此种情况。对于单PC的情况本方案二同样适用,而且在该情形下不会有密码同步问题发生。如果用户在单PC的情况下,实际上方案一更简单,但从安全性考虑方案二更完备。
参见图3(a)~(b),本方案的详细流程如下:
1.每个用户的拨号程序具有不同的注册码,并且在软件(拨号程序)发放的时候随同软件发放给用户。该注册码同时在网络管理装置(CPE管理服务器)或RADIUS服务器中进行配置,以方便管理。
2.用户请求拨号接入,并且输入用户密码(PSWD-User)。通过PC和调制解调器之间的接口(基于HTTP)将加密之后的用户密码传递给调制解调器中的拨号程序。在用户第一次从本PC上拨号或进行密码同步的时候使用注册码进行加密,在其它情况下使用PC中存贮的动态密码进行加密。HTTP(超文本传输协议)文本在用户第一次从本机上拨号或进行密码同步的时候使用注册码作为HTTP-Digest接入认证密码进行HTTP-Digest接入认证,在其它情况下使用PC中存贮的动态密码进行HTTP-Digest认证,即用PSWD-modem作为HTTP-Digest认证使用的共享密码完成该认证。
3.调制解调器通过验证HTTP-Digest检测用户PC存贮的用户拨号程序密码是否已经同步,在检测到用户动态密码失去同步时通知用户进行密码同步操作。否则对接收的HTTP文本进行HTTP-digest认证,即:用PSWD-modem进行HTTP-Digest接入认证,判断是否接受拨号请求,如果认证通过,用PSWD-modem解密PSWD-User;如果认证没有通过,则直接拒绝用户拨号。如果通过HTTP-Digest认证则进行下一步。
参见图3(a),对用户拨号程序密码更新之后对调制解调器中存贮的用户拨号程序密码和PC中存贮的用户拨号程序密码失去同步所进行的检测和更新,即:当用户拨号程序密码更新之后,调制解调器中存贮的用户拨号程序密码和PC中存贮的用户拨号程序密失去同步的时候,按以下步骤进行检测和更新;
同步丢失的检测:在用户拨号程序更新之后,在调制解调器中存贮有一旧一新两个用户拨号程序密码,在接到PC的拨号请求时,调制解调器分别使用两个用户拨号程序密码来进行HTTP认证。如果a)使用新的用户拨号程序密码认证失败但使用旧的用户拨号程序密码认证成功,则PC的用户拨号程序密码需要更新;b)使用更新后的用户拨号程序密码认证失败且使用更新前用户拨号程序密码认证也失败,则拒绝PC的拨号请求;c)使用更新后的用户拨号程序密码认证成功但使用更新前用户拨号程序密码认证失败,则确定PC的用户拨号程序密码已更新。
参见图3(b),用户拨号程序密码的同步:调制解调器使用旧的用户拨号程序密码加密新的用户拨号程序密码以密文的形式通过HTTP协议发送给PC,PC解密并保留新的用户拨号程序密码。其过程是:用PSWD-Modem进行HTTP Digest接入认证,判定是否接受密码更新。如果认证通过则接受密码更新,用旧PSWD-Modem解密新PSWD-Modem,并更新PSWD-Modem。PC上只保留最新的PSWD-Modem。
4.调制解调器拨号程序根据自己的密码PSWD-modem和用户输入的密码PSWD-User生成PPP拨号程序使用的接入密码PSWD-ppp,ppp用户接入密码的计算方式为PSWD-ppp=MD5(PSWD-User‖PSWD-modem)。‖表示字符串连接,MD5(x)表示用MD5算法计算消息x的消息摘要(关于MD5算法和计算格式的具体说明如前所述)。以MD5运算之后的结果作为接入密码的目的是为了保证密码PSWD-User和密码PSWD-modem不以明文形式在网络上出现。
5.在RADIUS服务器对接收到用户接入请求消息(ACCESS-REQUEST)进行认证的时候,RADIUS服务器从数据库中提取用户拨号程序密码PSWD-modem和用户密码PSWD-User,以拨号程序相同的方式计算出用户接入认证密码PSWD-ppp:
PSWD-ppp=MD5(PSWD-User‖PSWD-modem)
用计算出的用户接入认证密码以PAP(密码认证协议)或CHAP(质询握手认证协议)认证对用户进行认证。如果认证成功则接受请求,通过RADIUS消息ACCESS-SUCCESS(接入成功)传送至接入设备,进入拨号状态;否则通过RADIUS消息ACCESS-REJECT(接入拒绝)传送至接入设备,拒绝用户拨号接入。
6.为了增强安全性,网络管理系统可以按照需要,定期更新拨号程序密码PSWD-modem。网络管理系统更新PSWD-modem的方式为网络管理系统生成新的PSWD-modem并通过CPE管理协议配置到调制解调器中,同时通知RADIUS服务器更新PSWD-modem,并只保留最新的PSWD-modem。
7.调制解调器存贮更新后的PSWD-modem,同时保留上一次的密码,即保存最近的两用户拨号程序密码,在PC使用上一次的PSWD-modem发送拨号请求时通知用户更新动态密码,如果发现用户密码失去同步则要求用户进行密码同步操作,见步骤3,此处不再重复叙述。
8.定期更新拨号程序密码PSWD-modem也可以用另外的方式来实现:在用户接入认证成功之后RADIUS服务器更新PSWD-modem,新的PSWD-modem通过RADIUS消息ACCESS-SUCCESS捎带给接入设备IPDSLAM,IPDSLAM在收到新的密码之后,通过IPDSALM和调制解调器之间的CPE管理通道将新的密码配置到调制解调器中。
第三,本发明调制解调器
参见图4,该调制解调器1包括:
拨号模块11,具有支持网络系统管理协议的功能,接受对其进行的用户拨号程序密码的动态配置,负责接收PC的拨号请求并返回状态。
通信模块13,通过HTTP协议与PC通信;
认证模块14,用于在必要的时候同步PC和调制解调器中的用户拨号程序密码,并支持HTTP-Digest接入认证来确保该通信接口的安全性;
第一计算模块12,用于将通过PC输入的用户密码和配置的所述用户拨号程序密码通过单向函数计算出用于接入认证的用户接入密码。该模块中所实现的单向函数可以使用任何合适的单向函数,如MD5,SHA等(要求该函数从计算复杂性的角度来说,该函数是不可逆的),单向函数至少将用户密码和用户拨号程序密码作为输入参数。
第四,本发明RADIUS服务器
参见图5,该RADIUS服务器2包括:
第二计算模块21,用于实现单向函数的计算功能,即以用户密码和拨号程序密码计算出用于接入认证的用户接入密码。该模块中所实现的单向函数可以使用任何合适的单向函数,如MD5,SHA等(要求该函数从计算复杂性的角度来说,该函数是不可逆的),单向函数至少将用户密码和用户拨号程序密码作为输入参数。使用的单向函数和计算方式必须和调制解调器中完全一致;
更新处理模块22,用于更新用户拨号程序密码并通过RADIUS消息输出该密码。
综上所述,本发明具有下列特点:
1)可以强制用户使用特定的拨号程序/modem进行拨号,便于运营商进行统一管理。
2)使用本方案实现该控制方式只需对特定的拨号程序和RADIUS服务器进行扩展,网络改造成本低。拨号程序的改造为需要支持CPE管理协议以支持拨号程序密码的配置,并且对认证过程需要增加有用户输入的密码和配置的拨号程序密码计算出用于接入认证的密码这一步骤。在RADIUS服务器上只需要扩展有用户密码和拨号程序密码计算出用于接入认证的密码这一步骤。
3)用户必须使用指定的拨号程序进行拨号,因为其它拨号程序无法获得拨号程序密码PSWD-modem。
4)由于本方案使用PSWD-ppp=MD5(PSWD-User‖PSWD-modem)作为接入密码,PSWD-modem不会以明文形式在网络上出现。本方案提供了拨号程序密码更新,可以根据需要更新拨号程序密码。如果在每次接入认证成功之后就更新拨号程序密码,那么在PPP认证的时候如果使用的是PAP认证,本方案的认证强度相当于CHAP认证。因此本方案提供了更强的认证强度。
5)支持接入密码动态更新,进一步增强安全性。
以上实施例仅供说明本发明之用,而非对本发明的限制,有关技术领域的技术人员,在不脱离本发明的精神和范围的情况下,还可以作出各种变换或变型,因此所有等同的技术方案也应该属于本发明范畴之内,应由各权利要求限定。