专利名称:一种安全通信的负载均衡方法及系统的制作方法
技术领域:
本发明涉及一种安全通信的负载均衡方法及系统。
背景技术:
近年来随着各种信息终端的增多,单个应用服务器已经很难为众多终端同时提供服务,而负载均衡和云技术的发展为解决这个问题提供了可能性。负载均衡技术中的负载均衡器能把众多的终端服务请求分配到多个应用服务器节点上,从而实现为尽可能多的终 端提供服务的目的。它具有高可靠、可伸缩、易扩展和费用相对低廉的特点。但是随着这种技术的应用,安全问题也逐渐浮现出来,其中安全通信问题相比传统单个应用服务器通信具有更复杂的环境。现在通常把SSL技术应用于安全通信,在集群系统中利用专有设备或服务器处理数据加解密,再由后台服务器处理具体请求,但这种方法常常导致进行数据加解密的设备或服务器成为瓶颈,无法满足大数据量的通讯。
发明内容
本发明所要解决的第一个技术问题是针对上述现有技术提供一种安全通信的负载均衡方法,该方法既能防止非授权终端进入应用服务器请求服务,同时能为大量授权终端提供安全通信。本发明所要解决的第二个技术问题是技术提供一种安全通信的负载均衡系统,该方系统既能防止非授权终端进入应用服务器请求服务,同时能为大量授权终端提供安全通f目。本发明解决上述第一个技术问题所采用的技术方案为该安全通信的负载均衡方法,其特征在于设置多个终端、多个负载均衡器和多个应用服务器,在每个终端内存储其相应的用户ID和终端密钥,在每个负载均衡器内储存所有终端的用户ID、终端密钥、所有应用服务器的ID,在每个负载均衡器和每个应用服务器内存储负载均衡器和应用服务器进行加密通信的通信密钥,同时将多个负载均衡器和多个应用服务器时间同步;另外,在每个终端、每个负载均衡器和每个应用服务器内均保存相互事先约定的授权请求命令、认证请求命令、认证回复命令、授权命令和增加授权命令;上述安全通信的负载均衡方法包括如下步骤步骤一、终端产生一个终端随机数并存储,把授权请求命令、用户ID和终端随机数发送给负载均衡器;步骤二、负载均衡器收到终端发送的上述授权请求命令、用户ID和终端随机数后,查找负载均衡器内是否存储有该用户ID,如果没有就产生一个负载均衡随机数,把该用户ID和负载均衡随机数保存起来;如果负载均衡器保存有该用户ID,读取该用户ID和其对应的负载均衡随机数,然后把认证请求命令、用户ID、终端随机数和负载均衡随机数发送给终端;
步骤三、终端收到负载均衡器发送的上述认证请求命令、用户ID、终端随机数和负载均衡随机数后,比较终端随机数,如果不符就丢弃上述认证请求命令、用户ID、终端随机数和负载均衡随机数,如果符合,就对认证回复命令、用户ID、终端随机数、负载均衡随机数和终端密钥进行散列,得到第一散列值,并把认证回复命令、用户ID、终端随机数、负载均衡随机数和第一散列值发送给负载均衡器;步骤四、负载均衡器收到终端发送的上述认证回复命令、用户ID、终端随机数、负载均衡随机数和第一散列值后,查找负载均衡器内是否存储有对应的用户ID和负载均衡随机数,如果没有 就丢弃上述认证回复命令、用户ID、终端随机数、负载均衡随机数和第一散列值,否则就用散列算法计算出认证回复命令、用户ID、终端随机数、负载均衡随机数和终端密钥的散列值,得到第二散列值,如果第二散列值与终端发送的第一散列值不同就丢弃上述认证回复命令、用户ID、终端随机数、负载均衡随机数和第一散列值,否则就转到下一步;步骤五、负载均衡器选择一个应用服务器,记录该应用服务器的ID、IP地址及端口号,产生一个随机数的授权码和一个随机数的密码因子,对增加授权命令、应用服务器ID、授权码、终端IP地址和当前时间戳进行散列,得到第三散列值;并用应用服务器保存的通信密钥和密码因子进行散列,得到第四散列值;将第四散列值作为密钥对增加授权命令、服务器ID、授权码、终端IP地址、当前时间戳和第三散列值进行加密,得到第一加密数据,然后把密码因子和第一加密数据发送给应用服务器;对用户ID、终端随机数、负载均衡随机数、授权码和应用服务器的IP地址及端口号进行散列,得到第五散列值,用终端密钥和密码因子的散列值作为密钥对用户ID、终端随机数、负载均衡随机数、授权码、应用服务器的IP地址及端口号和第五散列值进行加密,得到第二加密数据,然后把授权命令、密码因子和第二加密数据发送给终端;最后负载均衡器把用户ID和负载均衡随机数删除;步骤六、应用服务器收到密码因子和第一加密数据后,利用应用服务器保存的通信密钥和密码因子对第一加密数据进行解密,如果解密失败就丢弃,否则对解密后的数据校验第三散列值,如果第三散列值不符就丢弃,否则比较服务器的ID是否符合,如果不符就丢弃,然后比较本地时间与时间戳之差是否超过规定限值,如果超过就丢弃,否则把授权码和终端的IP地址保存起来;步骤七、终端收到授权命令、密码因子和第二加密数据后,利用终端密钥和密码因子对第二加密数据进行解密,如果解密失败就丢弃,否则对解密后的数据校验第五散列值,如果第五散列值不符就丢弃,否则比较终端随机数,如果不符就丢弃,否则删除终端随机数并获取服务器的IP地址和服务器的端口号,通过SSL/TLS连接应用服务器,并通过该连接上传授权码;步骤八、应用服务器收到终端连接,判断终端IP地址和授权码是否符合,如果不符就拒绝连接,否则连接成功提供应用服务。所述步骤二中,当负载均衡器收到终端发送的上述授权请求命令、用户ID和终端随机数后,查找负载均衡器内是否存储有该用户ID,如果没有就产生一个负载均衡随机数,把该用户ID和负载均衡随机数保存起来,然后启动超时机制,在指定时间内如果没有完成授权就把授权请求命令、用户ID和终端随机数删除。所述步骤六中、应用服务器在比较本地时间与时间戳之差是否超过规定限值时,如果判断为超过就丢弃,否则把授权码和终端的IP地址保存起来,然后启动超时机制,在指定时间内如果没有终端连接就将解密后的数据移除。上述各步骤中,散列时采用的散列算法为MD5或SHA。上述各步骤中,加密时采用的加密算法为对称加密算法或不对称加密算法。而上述步骤二中,终端在选择负载均衡器进行通讯时,选择最近的负载均衡器或者通过DNS轮询的方法选择一个负载均衡器进行通信。本发明解决上述第二个技术问题所采用的技术方案为该安全通信的负载均衡系统,其特征在于包括多个终端、多个负载均衡器和多个应用服务器,每个终端内存储有其相应的用户ID和终端密钥,每个负载均衡器内储存有所有终端的用户ID、终端密钥、所有应用服务器的ID,每个负载均衡器和每个应用服务器内均存储有负载均衡器和应用服务器进行加密通信的通信密钥,同时将多个负载均衡器和多个应用服务器时间保持同步;另外,每个终端、每个负载均衡器和每个应用服务器内均保存有相互事先约定的授权请求命令、认证请求命令、认证回复命令、授权命令和增加授权命令;而上述安全通信的负载均衡系统的通讯方法采用上述描述的安全通信的负载均衡方法。与现有技术相比,本发明的优点在于采用本发明提供的安全通信的负载均衡方法和系统,能防止非授权终端的进入,同时能为大量授权终端提供安全通信,且在保证通信安全的基础上,有效降低了计算量和负载均衡器的压力,有助于构建更大规模的安全负载均衡系统。
图I为本发明实施例中安全通信的负载均衡系统的部署框图。
具体实施例方式以下结合附图实施例对本发明作进一步详细描述。首先构建一个安全通信的负载均衡系统,参见图I所示,该系统包括多个终端、多个负载均衡器和多个应用服务器,每个终端内存储有其相应的用户ID和终端密钥,每个负载均衡器内储存有所有终端的用户ID、终端密钥、所有应用服务器的ID,每个负载均衡器和每个应用服务器内均存储有负载均衡器和应用服务器进行加密通信的通信密钥,同时多个负载均衡器和多个应用服务器时间同步;另外,每个终端、每个负载均衡器和每个应用服务器内均保存有相互事先约定的授权请求命令、认证请求命令、认证回复命令、授权命令和增加授权命令;参见图I所示。该系统的通讯方法包括步骤一、终端产生一个终端随机数并存储,把授权请求命令、用户ID和终端随机数发送给负载均衡器;终端在选择负载均衡器进行通讯时,选择最近的负载均衡器或者通过DNS轮询的方法选择一个负载均衡器进行通信; 步骤二、负载均衡器收到终端发送的上述授权请求命令、用户ID和终端随机数后,查找负载均衡器内是否存储有该用户ID,如果没有就产生一个负载均衡随机数,把该用户ID和负载均衡随机数保存起来;如果负载均衡器保存有该用户ID,读取该用户ID和其对应的负载均衡随机数,然后把认证请求命令、用户ID、终端随机数和负载均衡随机数发送给终端; 步骤三、终端收到负载均衡器发送的上述认证请求命令、用户ID、终端随机数和负载均衡随机数后,比较终端随机数,如果不符就丢弃上述认证请求命令、用户ID、终端随机数和负载均衡随机数,如果符合,就对认证回复命令、用户ID、终端随机数、负载均衡随机数和终端密钥进行散列,得到第一散列值,并把认证回复命令、用户ID、终端随机数、负载均衡随机数和第一散列值发送给负载均衡器;步骤四、负载均衡器收到终端发送的上述认证回复命令、用户ID、终端随机数、负载均衡随机数和第一散列值后,查找负载均衡器内是否存储有对应的用户ID和负载均衡随机数,如果没有就丢弃上述认证回复命令、用户ID、终端随机数、负载均衡随机数和第一散列值,否则就用散列算法计算出认证回复命令、用户ID、终端随机数、负载均衡随机数和终端密钥的散列值,得到第二散列值,如果第二散列值与终端发送的第一散列值不同就丢弃上述认证回复命令、用户ID、终端随机数、负载均衡随机数和第一散列值,否则就转到下一步;步骤五、负载均衡器选择一个应用服务器,记录该应用服务器的ID、IP地址及端口号,产生一个随机数的授权码和一个随机数的密码因子,对增加授权命令、应用服务器ID、授权码、终端IP地址和当前时间戳进行散列,得到第三散列值;并用应用服务器保存的通信密钥和密码因子进行散列,得到第四散列值;将第四散列值作为密钥对增加授权命令、服务器ID、授权码、终端IP地址、当前时间戳和第三散列值进行加密,得到第一加密数据,然后把密码因子和第一加密数据发送给应用服务器;对用户ID、终端随机数、负载均衡随机数、授权码和应用服务器的IP地址及端口号进行散列,得到第五散列值,用终端密钥和密码因子的散列值作为密钥对用户ID、终端随机数、负载均衡随机数、授权码、应用服务器的IP地址及端口号和第五散列值进行加密,得到第二加密数据,然后把授权命令、密码因子和第二加密数据发送给终端;最后负载均衡器把用户ID和负载均衡随机数删除;步骤六、应用服务器收到密码因子和第一加密数据后,利用应用服务器保存的通信密钥和密码因子对第一加密数据进行解密,如果解密失败就丢弃,否则对解密后的数据校验第三散列值,如果第三散列值不符就丢弃,否则比较应用服务器的ID是否符合,如果不符就丢弃,然后比较本地时间与时间戳之差是否超过规定限值,如果超过就丢弃,否则把授权码和终端的IP地址保存起来;步骤七、终端收到授权命令、密码因子和第二加密数据后,利用终端密钥和密码因子对第二加密数据进行解密,如果解密失败就丢弃,否则对解密后的数据校验第五散列值,如果第五散列值不符就丢弃,否则比较终端随机数,如果不符就丢弃,否则删除终端随机数并获取服务器的IP地址和服务器的端口号,通过SSL/TLS连接应用服务器,并通过该连接上传授权码;步骤八、应用服务器收到终端连接,判断终端IP地址和授权码是否符合,如果不符就拒绝连接,否则连接成功提供应用服务。下面,以一个具体的例子说明上述通讯方法的过程每个终端、每个负载均衡器和每个应用服务器内保存的相互事先约定的授权请求命令、认证请求命令、认证回复命令、授权命令和增加授权命令分别为0x01、0x02、0x03、0x04、0x05 ;
设终端a的用户ID为A,终端a产生一个终端随机数B并存储,终端a把授权请求命令0x01、用户ID和终端随机数B发送给负载均衡器,即把数据(0x01,A,B)发送给负载均衡器;负载均衡器收到终端发送的数据(0x01,A,B)后,产生负载均衡随机数C,把数据(A,C)保存起来,同时启动超时机制,将认证请求命令、用户ID、终端随机数和负载均衡随机数发送给终端,即并把数据(0x02,A,B,C)发送给终端;终端收到数据(0x02,A,B,C)后,校验终端随机数B,如果验终端随机数B相符,取出终端a的密钥D,对认证回复命令、用户ID、终端随机数、负载均衡随机数和终端密钥进行散列,即对数据(0x03,A,B,C,D)进行MD5计算,得到第一散列值E,并把认证回复命令、用户ID、终端随机数、负载均衡随机数和第一散列值发送给负载均衡器,即把数据(0x03,A,B,C,E)发送给负载均衡器;
负载均衡器接收到数据(0x03,A,B,C,E)后,查找负载均衡器内是否存储有对应的用户ID和负载均衡随机数,即查找A和C,如果查到A和C,取出该终端密钥D,对数据(0x03,A,B,C,D)进行MD5散列,得到第二散列值,如果第二散列值与第一散列值相同,转到下一步;负载均衡器选择一个应用服务器,记录该应用服务器的ID为H、应用服务器的IP地址及端口号为I,负载均衡器产生授权码F和密码因子G,记录终端a的IP为J,当前时间戳为K,对增加授权命令、应用服务器的IP地址及端口号、授权码、终端IP地址和当前时间戳进行散列,即对数据(0x05,H,F,J,K)进行MD5计算,得到第三散列值L,设服务器的通信密钥为M,对数据(G,M)进行MD5计算得到第四散列值N,用N对数据(0x05, H,F,J,K,L)进行AES加密得到第一加密数据P,把数据(P,G)发送给应用服务器;然后对数据(A,B,C,F,I)进行MD5计算得到五散列值Q,对数据(G,D)进行MD5计算得到R,用R对数据(A,B,C,F,I,Q)加密得到第二加密数据S,把数据(0x04,S,G)发送给终端;负载均衡器把用户ID和负载均衡随机数删除;应用服务器接收到数据(P,G)后,取出服务器的通信密钥M,用相同算法解密数据P,得到数据(0x05,H,F,J,K,L),检验第三散列值L符合,检验H、K符合要求,保存F和J,并启动对应超时机制;终端接收数据(0x04,S,G)后,取出终端a的密钥D,用相同算法解密第二加密数据S,得到数据(A,B,C,F,I,Q),检验第五散列值Q符合,检验B符合要求,删除终端随机数,获取服务器的IP地址和服务器的端口号,终端根据服务器的IP地址I通过SSL/TLS连接应用服务器,上传授权码F ;应用服务器检查终端IP与J相符,授权码F相符,提供应用服务。
权利要求
1.一种安全通信的负载均衡方法,其特征在于设置多个终端、多个负载均衡器和多个应用服务器,在每个终端内存储其相应的用户ID和终端密钥,在每个负载均衡器内储存所有终端的用户ID、终端密钥、所有应用服务器的ID,在每个负载均衡器和每个应用服务器内存储负载均衡器和应用服务器进行加密通信的通信密钥,同时将多个负载均衡器和多个应用服务器时间同步;另外,在每个终端、每个负载均衡器和每个应用服务器内均保存相互事先约定的授权请求命令、认证请求命令、认证回复命令、授权命令和增加授权命令;上述安全通信的负载均衡方法包括如下步骤 步骤一、终端产生一个终端随机数并存储,把授权请求命令、用户ID和终端随机数发送给负载均衡器; 步骤二、负载均衡器收到终端发送的上述授权请求命令、用户ID和终端随机数后,查找负载均衡器内是否存储有该用户ID,如果没有就产生一个负载均衡随机数,把该用户ID和负载均衡随机数保存起来;如果负载均衡器保存有该用户ID,读取该用户ID和其对应的负载均衡随机数,然后把认证请求命令、用户ID、终端随机数和负载均衡随机数发送给终端; 步骤三、终端收到负载均衡器发送的上述认证请求命令、用户ID、终端随机数和负载均衡随机数后,比较终端随机数,如果不符就丢弃上述认证请求命令、用户ID、终端随机数和负载均衡随机数,如果符合,就对认证回复命令、用户ID、终端随机数、负载均衡随机数和终端密钥进行散列,得到第一散列值,并把认证回复命令、用户ID、终端随机数、负载均衡随机数和第一散列值发送给负载均衡器; 步骤四、负载均衡器收到终端发送的上述认证回复命令、用户ID、终端随机数、负载均衡随机数和第一散列值后,查找负载均衡器内是否存储有对应的用户ID和负载均衡随机数,如果没有就丢弃上述认证回复命令、用户ID、终端随机数、负载均衡随机数和第一散列值,否则就用散列算法计算出认证回复命令、用户ID、终端随机数、负载均衡随机数和终端密钥的散列值,得到第二散列值,如果第二散列值与终端发送的第一散列值不同就丢弃上述认证回复命令、用户ID、终端随机数、负载均衡随机数和第一散列值,否则就转到下一I K少; 步骤五、负载均衡器选择一个应用服务器,记录该应用服务器的ID、IP地址及端口号,产生一个随机数的授权码和一个随机数的密码因子,对增加授权命令、应用服务器ID、授权码、终端IP地址和当前时间戳进行散列,得到第三散列值;并用应用服务器保存的通信密钥和密码因子进行散列,得到第四散列值;将第四散列值作为密钥对增加授权命令、服务器ID、授权码、终端IP地址、当前时间戳和第三散列值进行加密,得到第一加密数据,然后把密码因子和第一加密数据发送给应用服务器;对用户ID、终端随机数、负载均衡随机数、授权码和应用服务器的IP地址及端口号进行散列,得到第五散列值,用终端密钥和密码因子的散列值作为密钥对用户ID、终端随机数、负载均衡随机数、授权码、应用服务器的IP地址及端口号和第五散列值进行加密,得到第二加密数据,然后把授权命令、密码因子和第二加密数据发送给终端;最后负载均衡器把用户ID和负载均衡随机数删除; 步骤六、应用服务器收到密码因子和第一加密数据后,利用应用服务器保存的通信密钥和密码因子对第一加密数据进行解密,如果解密失败就丢弃,否则对解密后的数据校验第三散列值,如果第三散列值不符就丢弃,否则比较服务器的ID是否符合,如果不符就丢弃,然后比较本地时间与 时间戳之差是否超过规定限值,如果超过就丢弃,否则把授权码和终端的IP地址保存起来; 步骤七、终端收到授权命令、密码因子和第二加密数据后,利用终端密钥和密码因子对第二加密数据进行解密,如果解密失败就丢弃,否则对解密后的数据校验第五散列值,如果第五散列值不符就丢弃,否则比较终端随机数,如果不符就丢弃,否则删除终端随机数并获取服务器的IP地址和服务器的端口号,通过SSL/TLS连接应用服务器,并通过该连接上传授权码; 步骤八、应用服务器收到终端连接,判断终端IP地址和授权码是否符合,如果不符就拒绝连接,否则连接成功提供应用服务。
2.根据权利要求I所述的安全通信的负载均衡方法,其特征在于所述步骤二中,当负载均衡器收到终端发送的上述授权请求命令、用户ID和终端随机数后,查找负载均衡器内是否存储有该用户ID,如果没有就产生一个负载均衡随机数,把该用户ID和负载均衡随机数保存起来,然后启动超时机制,在指定时间内如果没有完成授权就把授权请求命令、用户ID和终端随机数删除。
3.根据权利要求I所述的安全通信的负载均衡方法,其特征在于所述步骤六中、应用服务器在比较本地时间与时间戳之差是否超过规定限值时,如果判断为超过就丢弃,否则把授权码和终端的IP地址保存起来,然后启动超时机制,在指定时间内如果没有终端连接就将解密后的数据移除。
4.根据权利要求I或2或3所述的安全通信的负载均衡方法,其特征在于散列时采用的散列算法为MD5或SHA。
5.根据权利要求I或2或3所述的安全通信的负载均衡方法,其特征在于加密时采用的加密算法为对称加密算法或不对称加密算法。
6.根据权利要求I或2或3所述的安全通信的负载均衡方法,其特征在于终端在选择负载均衡器进行通讯时,选择最近的负载均衡器或者通过DNS轮询的方法选择一个负载均衡器进行通信。
7.一种安全通信的负载均衡系统,其特征在于包括多个终端、多个负载均衡器和多个应用服务器,每个终端内存储有其相应的用户ID和终端密钥,每个负载均衡器内储存有所有终端的用户ID、终端密钥、所有应用服务器的ID,每个负载均衡器和每个应用服务器内均存储有负载均衡器和应用服务器进行加密通信的通信密钥,同时将多个负载均衡器和多个应用服务器时间保持同步;另外,每个终端、每个负载均衡器和每个应用服务器内均保存有相互事先约定的授权请求命令、认证请求命令、认证回复命令、授权命令和增加授权命令;而上述安全通信的负载均衡系统的通讯方法采用如权利要求I中描述的安全通信的负载均衡方法。
全文摘要
本发明涉及一种安全通信的负载均衡方法及系统,负载均衡器在为终端和应用服务器提供通讯连接过程中,利用了区别的加密方法,使得终端和应用服务器握手连接。与现有技术相比,本发明的优点在于采用本发明提供的安全通信的负载均衡方法和系统,能防止非授权终端的进入,同时能为大量授权终端提供安全通信,且在保证通信安全的基础上,有效降低了计算量和负载均衡器的压力,有助于构建更大规模的安全负载均衡系统。
文档编号H04L29/06GK102624749SQ20121011075
公开日2012年8月1日 申请日期2012年4月13日 优先权日2012年4月13日
发明者毛维波 申请人:宁波市北仑海伯精密机械制造有限公司