CN105025475A - 面向Android系统的移动保密终端实现方法 - Google Patents
面向Android系统的移动保密终端实现方法 Download PDFInfo
- Publication number
- CN105025475A CN105025475A CN201510450606.XA CN201510450606A CN105025475A CN 105025475 A CN105025475 A CN 105025475A CN 201510450606 A CN201510450606 A CN 201510450606A CN 105025475 A CN105025475 A CN 105025475A
- Authority
- CN
- China
- Prior art keywords
- module
- message
- android
- server
- terminal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/02—Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/02—Terminal devices
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Telephonic Communication Services (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
一种面向Android系统的移动保密终端的实现方法,包括Android用户注册模块,Android用户管理模块,Android呼叫模块,SIP信令处理模块,密钥协商模块,服务器密钥协商模块,语音桥接模块,加密通话模块,服务器加密通话模块和SIP中继模块。支持两种加密通信模式:其一,在通话双方都是保密终端时,可实现针对Android操作系统移动终端端到端一次一密的加密语音通信,即端到端加密通信模式;其二,在通话双方只有一方是保密终端时,可实现针对Android操作系统移动终端到服务器间的一次一密的加密语音通信,即保密终端到服务器半程加密通信模式。本发明无需额外硬件支持,用户界面友好,易于操作。
Description
技术领域
本发明涉及一种面向Android系统的移动保密终端实现方法,属于信息安全技术领域。利用SIP(Session Initiation Protocol)协议结合服务器数据库识别通话模式,采用UDP套接字协商会话密钥,同时基于服务器的管理及加解密处理,对采用Android系统并加载本发明方法的移动终端实现安全加密通信,而无需改变整个移动通信系统。
背景技术
随着越来越多的国内外手机厂商进入Android操作系统的阵营,面向Android系统的移动终端的市场占有率已经超过面向其他系统的移动终端之和。但是随着手机病毒的横行,伪基站的猖獗和窃听技术的大规模传播,面向Android系统的移动终端安全通信越来越得不到保障。尤其在而2013年6月,斯诺登揭露了美国国家安全局(NSA)和联邦调查局(FBI)主导的代号为“棱镜”的秘密监控项目,直接进入美国国际网络公司的中心服务器里挖掘数据、收集情报,包括微软、雅虎、谷歌、苹果等在内的9家国际网络巨头皆参与其中,这些使得提出一种切实可行的面向Android系统的保密通信的实现方法显得尤为必要。
目前加密通信的实现方法主要分为两种:一类是利用硬件设备进行加密,一类是利用软件加密。
利用硬件设备加密通信的技术,如申请号为201010556715.7的发明,移动通信端到端语音加密蓝牙手持设备及语音加密方法,该发明主要由FPGA芯片处理模块,语音加解密算法模块,蓝牙收发模块,存储模块,电源模块五部分组成;FPGA芯片处理模块是整个系统进行语音加解密处理的核心硬件平台;语音加解密算法模块是实现语音加解密处理的算法程序;蓝牙收发模块与手机蓝牙进行无线连接,对语音信号进行收发及预处理;存储模块存储语音加解密算法模块和蓝牙初始化程序;电源模块连接其它模块提供所需的特定工作电压。然而,该发明仅适用于GSM/WCDMA网络,且通话时需要两端同时使用硬件加密设备。
利用硬件设备加密通信的技术,如申请号为200910183232.4的发明,抗自适应多速率编码第三代移动通信端到端语音加密方法是一种全新的针对3G网络主流技术宽带码分多址复用(WCDMA)的端到端语音加密方法。该加密方法通过提供标准语音输入、输出接口模块与WCDMA手机相连接,把WCDMA手机语音信号接入语音加/解密软、硬件模块,进行语音加解密运算,实现语音加/解密功能。同样,该发明也仅适用于3G移动网络中的WCDMA网络,且通话时需要两端同时使用硬件加密设备。
利用硬件设备加密通信的技术,如申请号为201410592233.5的发明,提供一种语音加密方法和装置以及语音解密方法和装置。该语音加密方法包括:识别用于加密的语音中的字符,得到加密字符序列;提取所述用于加密的语音的特征参数;用识别得到的所述加密字符序列对待加密的信息进行加密,并保存所述加密字符序列及所述特征参数,以用于在解密得到所述信息时,与解密字符序列及用于解密的语音的特征参数进行匹配。但实现此发明的成本太高,可移植性差。
利用硬件设备加密通信的技术,如申请号为201410121505.3的发明,涉及一种移动通信终端的语音加密方法,包括以下步骤:1)在移动通话终端外接语音终端,并在外接语音终端中加入安全模块;2)进行语音通话前,由一个外接语音终端的安全模块向另一个或多个外接语音终端的安全模块发送验证信息;3)发送方和接收方的两个外接语音终端的安全模块进行验证信息的匹配;4)匹配成功则开启安全语音通话模块;并随机启用相同的语音加密/解密方式至语音通话结束;匹配不成功则直接结束本次语音通话。然而,此发明并没有提及秘钥协商算法和语音加密算法,安全性得不到保证。
利用软件加密通信的技术,如申请号为201310219661.9的发明,一种面向Android系统的端到端语音加密方法,其包括语音采集播放模块、Android多媒体模块、语音编码解码模块、编码JNI接口模块、speex编解码模块、语音网络传输模块、加解密JNI接口模块、加解密模块共八个模块,所述方法包括语音采集播放模块通过调用Android多媒体模块实现采集和播放通话双方的语音;语音编码解码模块通过编解码JNI接口模块调用speex编解码模块对发送的数据进行压缩编码以及对接收的数据进行解码还原;语音网络传输模块对语音数据进行网络发送和网络接收,进行加密通信时,该部分通过加解密JNI接口模块调用加解密模块实现音频数据的加解密。该发明基于的ZRTP协议,本身易遭受中间人攻击,所以安全性不高;且该发明的使用需要通信双方都装有客户端才能有效使用,所以通用性不强。
利用软件加密通信的技术,如申请号为201310046868.0的发明,一种面向Android系统的语音端到端加密方法,命名为ERTP。当用户选择加密模式进行通信时,双方在会话初始阶段完成身份认证和密钥协商。当通话建立后,会话双方使用自己的私钥以及协商好的会话密钥,对发送的载有语音的RTP包进行DSA签名,然后用AES算法进行加密,最后发送。对于接收到的RTP包,先用AES解密,再进行DSA签名验证,验证通过后再对RTP包进行处理。该发明的使用需要通信双方都装有客户端才能有效使用,所以通用性不强。
利用软件加密通信的技术,如申请号为200810068567.7的发明,语音加解密方法及移动终端,将得到待发送的语音数据帧周期性地向加密模块传输,加密模块对接收到的语音数据帧进行加密后,发送加密的语音数据,通过解密模块对接收的语音数据进行解密后播放。该发明针对CDMA网络提出加解密方法,只对语音数据帧进行加密而没有进行身份验证,容易受到第三方攻击;同样本发明的使用需要通信双方都装有客户端才能有效使用,所以通用性也不强。
论文《基于改进SIP协议的SIP网络安全通信模型》通过对SIP协议安全性的深入研究,结合PKI技术、数字时间认证技术、数字证书及SIP网络的特点提出了基于改进SIP协议的SIP网络安全通信模型。借鉴原有的协议流程制定了新的呼叫建立子协议,重新制定了注册子协议和漫游注册子协议发明内容。然而,该方法的实现过程过于复杂且未形成专利。
论文《移动通信端到端语音传输安全问题与对策分析》讨论了实现端到端加密语音传输的方法,分析了通过移动网络传输加密语音存在的主要问题,详细地研究了电路交换网络和分组交换网络的加密语音传输,并对方案的可行性进行分析。然而,该方法未谈及密钥协商且未形成专利。
发明内容
本发明的目的是克服现有技术存在的缺陷,提供一种面向Android系统的,适用于Internet网络、PSTN网络和GSM/3G/4G移动网络,可有效防止中间人攻击的移动保密终端实现方法。并且在本发明中,通话双方中只要一方使用面向Android系统的移动保密终端,就能保证该移动保密终端的安全通信。
实现本发明目的的技术方案是:目前现有的发明都需要通话双方都用移动保密终端才能保证移动保密终端的安全通信,本发明除了在移动保密终端上部署密钥协商和加密通话模块,保证Android移动保密终端之间端到端的加密通话,也在服务器上部署了密钥协商和加密通话模块,保证Android移动保密终端与非保密终端的正常通话和Android移动保密终端一端的安全通话。
本发明的应用场景,包括Android移动保密终端、普通IP电话、Internet网络、服务器、语音网关、PSTN网络(CS域)、普通电话、3G/4G网络(CS域)和普通手机。
本发明分为两种模式分别是端到端加密通信模式和端到服务器加密通信模式。当通信双方都通过面向Android系统的移动保密终端通话时,本发明进入端到端加密通信模式,通话双方利用UDP套接字协商秘钥和认证双方身份,并用协商的秘钥加/解密通话双方的语音流,而服务器只负责转发SIP呼叫信令;当通信双方只有一方通过面向Android系统的移动保密终端通话时,本发明进入端到服务器半程加密通信模式,移动保密终端和服务器利用UDP套接字协商秘钥,服务器用协商的秘钥解密移动保密终端所传输的语音数据和加密非保密终端所传输的语音数据,端到服务器加密通信模式又分为三种情况:若移动保密终端和普通IP电话通信,服务器直接把解密的语音数据通过Internet网络传输至普通IP电话终端;若移动保密终端和普通电话通信,服务器把解密的语音数据通过语音网关传输至PSTN网络,再由PSTN网络传输至非保密终端;若移动保密终端和普通手机通信,服务器把解密的语音数据通过语音网关传输至PSTN网络,再由PSTN网络传输至3G/4G网络,最后由3G/4G网络(CS域)传输至普通手机终端。
本发明主要包含10个模块:Android用户注册模块,Android用户管理模块,Android呼叫模块,SIP信令处理模块,密钥协商模块,服务器密钥协商模块,加密通话模块,服务器密钥协商模块语音桥接模块和SIP中继模块。
Android用户注册模块和Android用户管理模块构成了Android用户登记、管理系统,使得服务器能实时获取Android移动保密终端的位置信息。Android用户注册模块主要包括Android注册界面模块、注册消息生成模块和注册发起模块。Android注册界面模块,通过创建注册界面,提供用户信息输入功能;注册消息生成模块根据输入的用户信息和移动保密终端标志位构造注册消息,注册发起模块每隔一段时间向服务器发送注册消息以告知服务器此终端为移动保密终端以及终端的位置信息。Android用户管理模块包括注册认证模块和Android用户数据库模块。注册认证模块验证用户发送的注册消息的合法性,若合法则在用户数据库中更新用户的位置信息和移动保密终端标志位;Android用户数据库模块存储着用户的账号,密码,移动保密终端标志位,IP地址等信息。
Android呼叫模块和SIP信令处理模块构成了Android用户的寻呼系统,使得终端之间能通过服务器建立呼叫并确立本次会话的模式。Android呼叫模块包括Android拨号模块,呼叫消息生成模块和SIP通信模块。Android拨号模块通过生成拨号界面提供拨号功能;呼叫消息生成模块根据用户所拨打的号码和服务器IP地址生成呼叫消息;SIP通信模块根据呼叫消息实现了SIP协议Invite方法的整个交互过程。SIP信令处理模块包括信令解析模块,信令桥接模块和模式识别模块。信令解析模块从移动保密终端发送的Invite呼叫请求消息中解析出主、被叫信息。信令桥接模块使得主被叫建立SIP信令连接。模式识别模块根据用户数据库中保密终端标志位信息识别本次通话的模式。
密钥协商模块和服务器密钥协商模块包括认证模块和会话密钥协商模块。在端到端加密通话模式下,保密终端之间进行密钥协商,此时服务器密钥协商模块不会被触发。当在端到服务器加密通话模式下,保密终端与服务器进行密钥协商。认证模块实现加密通话双方的身份认证,会话秘钥协商模块根据D-H密钥协商算法协商加密会话的会话秘钥。
语音信道桥接模块包括远程桥接模块和本地桥接模块,根据通话模式触发不同的桥接模块。远程桥接模块在端到端加密通信模式下被触发,只监听通话时间不转发语音数据包。本地桥接模块在端到服务器半端加密通话模式下被触发,中转加密通话模块与非保密终端之间的语音数据包。
加密通话模块和服务器加密通话模块包括编解码模块,RTP包封装(解封)模块,加解密模块,RTP通信模块,实现通话双方的加密语音通话。在发送端,编解码模块对数字信息进行GSM编码,RTP包封装(解封)模块把编码信息封装成RTP包,加解密模块用协商的会话密钥对RTP包加密,RTP包通信模块把RTP包封装到UDP包中,利用套接字把UDP包发送至对端。在接收端,RTP通信模块在套接字层接收到UDP包并从中解封出RTP包,RTP加解密模块用协商的对RTP包进行解密,RTP包封装(解封)模块从RTP包中解封出GSM编码信息,编解码模块对GSM编码信息进行解码。
SIP中继模块包括信令中继模块和语音中继模块,使服务器能接入语音网关。信令中继模块在服务器与语音网关之间对SIP信令消息进行中继转发。语音中继模块在服务器与语音网关之间对语音数据进行中继转发。
采用上述技术方案后,本发明具有以下积极的效果:
(1)本发明提供一种面向Android系统的移动保密终端实现方法,该方法通过软件实现面向Android系统的移动终端VOIP语音加密通信。在用户完成SIP注册之后发起呼叫,若被叫方也是面向Android系统的移动保密终端,在被叫接听之前完成双方密钥协商和身份认证。会话建立后,载有通信语音的RTP包首先经过自身私钥签名,再使用协商好的密钥进行AES加密后传递。在接收端接收到语音包后,解密恢复出语音包,使用对方公钥验证签名的有效性后再送回缓冲区保证了端到端语音通信的安全;若被叫方是非保密终端,在被叫接听之前完成保密终端与服务器秘钥协商和身份认证,会话建立后,服务器从来自保密终端的语音包解密恢复出明文,再用保密终端的公钥验证签名有效后将语音数据,若非保密终端是普通IP电话终端,解密后的语音数据直接转发至非保密终端,若非保密终端是模拟电话或手机解密后的语音数据通过语音网关进入PSTN网络,再由PSTN网络转发至非保密终端,服务器对来自非保密终端的语音RTP包首先用自身私钥签名,再使用协商好的秘钥对RTP载荷进行加密,最后把加密后的语音包转发至保密终端。这样保证保密终端语音安全通信的同时,也不妨碍保密终端与其他非保密终端的正常通话。
(2)本发明提供的语音加密方式是基于RTP包的不需要额外引入协议支持,具有开销小,可移植性高,易于实现的特点。密钥协商过程在信令接通后完成。本发明无需额外硬件支持,用户界面友好,易于操作。
附图说明
为了使本发明的内容更容易被清楚地理解,下面根据具体实施例并结合附图,对本发明作进一步详细的说明,其中
图1为本发明的结构图;
图2是本发明的原理结构图;
图3是本发明的Android用户注册流程图;
图4是本发明的Android用户注册消息交互图;
图5是本发明的呼叫流程图;
图6是端到端加密模式下呼叫及密钥协商消息交互图;
图7是端到服务器半程加密模式下呼叫及密钥协商消息交互图;
具体实施方式
(实施例1)
如图1所示,本发明的结构图,一种面向Android系统的移动保密终端的实现方法,主要包括Android用户注册模块1,Android用户管理模块2,Android呼叫模块3,SIP信令处理模块4,密钥协商模块5,语音桥接模块6,加密通话模块7,SIP中继模块8,服务器密钥协商模块9和服务器加密通话模块10。该保密终端可支持两种加密通信模式:其一,在通话双方都是Android保密终端时,可实现针对Android操作系统移动终端端到端一次一密的加密语音通信,即端到端加密通信模式;其二,在通话双方只有一方是保密终端时,可实现针对Android操作系统移动终端到服务器间的一次一密的加密语音通信,即保密终端到服务器半程加密通信模式。保密终端到服务器半程加密通信模式下又分为三种情况:其一,若保密终端和普通IP电话通信,服务器直接把解密产生的明文语音数据通过Internet网络传输至普通IP电话终端;其二,若保密终端和普通电话通信,服务器把解密产生的明文语音数据通过语音网关传输至PSTN网络,再由PSTN网络传输至非保密终端;其三,若保密终端和普通手机通信,服务器把解密的语音数据通过语音网关传输至PSTN网络,再由PSTN网络传输至3G/4G网络,最后由3G/4G网络(CS域)传输至普通手机终端。
如图2所示为本发明的原理结构图,一种面向Android系统的移动保密终端的实现方法,包括Android用户注册模块1,Android用户管理模块2,Android呼叫模块3,SIP信令处理模块4,密钥协商模块5,语音桥接模块6,加密通话模块7,SIP中继模块8,服务器密协商模块9和服务器加密通话模块10。该保密终端可支持两种加密通信模式:其一,在通话双方都是保密终端时,可实现针对Android操作系统移动终端端到端一次一密的加密语音通信,即端到端加密通信模式;其二,在通话双方只有一方是保密终端时,可实现针对Android操作系统移动终端到服务器间的一次一密的加密语音通信,即保密终端到服务器半程加密通信模式。其中所述的Android用户注册模块1实时地向Android用户管理模块2发起注册请求;所述的Android用户管理模块2验证注册请求的合法性,并实时存储用户信息和终端信息;所述的Android呼叫模块3与对端的Android呼叫模块3建立呼叫连接;所述的SIP信令处理模块4,实现对终端呼叫信令的处理并识别出通话模式;所述的密钥协商模块5认证加密会话双方身份的合法性,并协商会话密钥;所述的语音桥接模块6块根据不同的通话模式选择不同的语音桥接方式;所述的加密通话模块7,在端到端加密通话模式下,实现端到端加密语音通信,在端到服务器加密通话模式下,实现端到服务器的加密语音通信;所述的SIP中继模块8,在被叫是普通电话或普通手机通话时,中转服务器与语音网关之间SIP信令和RTP语音数据。
①所述的Android用户注册模块1包括Android注册界面模块1-1注册消息生成模块1-2和注册发起模块1-3,用以实现用户注册。
其中,所述的Android注册界面模块1-1通过创建注册界面,提供用户信息编辑功能。用户账号信息的录入具体包括以下4个步骤:1).创建描述注册界面的XML文件;2)实例化Android应用框架层的Activity类;3)用Activity实例加载描述注册界面的XML文件;3)实例化Android应用框架层的EditText类以供用户编辑账号、密码、服务器地址等信息;4)实例化Android应用框架层的Button类;5)为Button实例设置单击事件监听器;6)在单击事件监听器中触发注册消息生成模块1-2和注册发起模块1-3。
其中,所述的注册消息生成模块1-2按照SIP协议的REGISTER方法构造携带保密终端信息的注册消息,注册消息的生成具体包括以下3个步骤:首先从Android注册界面模块1-1获取构造SIP注册消息所需的账号、密码、服务器地址等信息;然后把这些字段按照SIP协议规范构造SIP注册消息;最后把加密终端标志位添加到SIP注册消息中生成最终的注册消息。其中,所述的注册发起模块1-3每隔一段时间向服务器发起注册请求。注册的发起具体包括以下3个步骤:1)从注册消息生成模块1-1获取注册消息;2)构建消息发送定时器,用注册消息定时向服务器发起注册请求;3)处理服务器的响应消息。
②所述的Android用户管理模块2包括Android用户认证模块2-1和Android用户数据库模块2-2以管理Android移动终端。
其中,所述的注册认证模块2-1认证用户注册消息的合法性。用户的认证具体包括以下3个步骤:1)从Android用户的注册请求中解析出注册消息;2)从注册消息中解析出用户的账号、密码、本地IP地址、Android终端加密标志位等信息;3)验证账号、密码、终端型号是否与Android用户数据库模块2-2中账号、密码是否一致;4)若一致响应200OK,并在数据库模块2-2中更新用户的地址、保密终端标志位等信息,若账号不存在或密码错误则返回400ERRO;
其中,所述的Android用户数据库模块2-2存储着Android用户的信息。Android用户信息的存储具体包括以下3个步骤:1)创建Android用户数据库;2)创建Android用户信息表;3)创建Android用户信息表的增、删、改、查接口,被其它模块调用。
③所述的Android呼叫模块3包括Android拨号模块3-1,呼叫消息生成模块3-2和SIP通信模块3-3,通过所述的SIP信令处理模块4与被叫建立信令连接。
其中,所述的Android拨号模块3-1通过创建拨号界面,提供用户拨号功能,用户拨号过程具体包括以下8个步骤:1)创建描述拨号界面的XML文件;2)实例化Android应用框架层的Activity类;3)用Activity实例加载描述拨号界面的XML文件;4)实例化Android应用框架层的Button类;5)给Button类实例设置监听器监听用户的拨号;6)实例化Android应用框架层的TextView类显示用户拨打的号码;7)实例化Android应用框架层的ImageButton类;8)给ImageButton类实例设置监听器以触发所述的消息生成模块3-2和SIP通信模块3-3;
其中,所述的呼叫消息生成模块3-2生成呼叫消息,呼叫消息的生成具体包括以下3个步骤:1)从注册消息生成模块1-1获取服务器的IP地址;2)从拨号模块3-1获取用户所拨打的号码;3)按照SIP协议规范,根据服务器IP地址和用户所拨打的号码生成呼叫消息;其中,所述的SIP通信模块3-3根据呼叫消息实现了SIP协议Invite方法的整个交互过程,SIP协议Invite方法的整个交互过程包括如下4个步骤1)首先以呼叫消息向所述的SIP信令处理模块4发起Invite请求;2)接收服务器的临时响应100Trying和180Ringing;3)接收服务器的响应200OK;4)向服务器发送响应确认消息ACK;
④所述的SIP信令处理模块4包括信令解析模块4-1,信令桥接模块4-2和模式识别模块4-3,实现对终端呼叫信令的处理。
其中,所述的信令解析模块4-1解析所述的Android呼叫模块3发起的呼叫请求,呼叫请求的解析具体包括以下3个步骤:1)接收所述的Android呼叫模块3传输至的呼叫请求;2)从呼叫请求消息中解析出主叫号码和被叫号码,并向所述的Android呼叫模块3发送100Trying的临时响应;3)若被叫号码不是以“9”开头,在Android用户数据库模块2-2查询被叫用户是否在线,若在线则向Android呼叫模块3发送180Ringing的临时响应并触发模式识别模块4-2和信令桥接模块4-3,否则返回Service Unavailable并结束通话。
其中,所述的模式识别模块4-2识别通话的模式是端到端加密模式还是端到服务器加密模式,通话模式的识别过程具体包括以下3个步骤:1)从所述的信令解析模块4-1获取主叫号码和被叫号码;2)根据主叫号码和被叫号码在Android用户数据库模块2-2中查询主叫用户和被叫用户的加密标志位;3)对主叫用户和被叫用户的加密标志位进行异或,若结果为1则可判定本次通话的通话模式为端到服务器半程加密通话模式,若结果为0则可判定本次通话的通话模式为端到端加密通话模式;
其中,所述的信令桥接模块4-3使得主被叫建立信令连接,主叫与IP电话终端建立信令连接的过程具体包括以下5个步骤:1)在端到端加密通话模式下,服务器直接转发Invite请求至被叫;在端到服务器通话模式下,服务器把Invite请求中的SDP消息中的c行改为服务器的IP地址产生Invite1请求消息,并向被叫发起Invite1请求;2)接收被叫返回的100Ringing和180Trying的临时响应;3)接收被叫返回的200OK响应;4)在端到端通话模式下直接把被叫返回的200OK响应转发给主叫;在端到服务器通话模式下,把被叫返回的200OK响应中的SDP消息中的c行改为服务器的IP地址产生200OK1响应,并把200OK1响应传输至主叫;5)转发主叫发送的ACK响应确认消息。主叫与普通手机或普通电话建立信令连接的过程具体包括以下5个步骤:1)若主叫号码以“9”开头,服务器把Invite请求中的SDP消息中的c行改为服务器的IP地址,产生Invite1请求消息,并把Invite1请求消息传输至SIP中继模块8;2)接收所述的SIP中继模块8返回的100Ringing和180Trying的临时响应;3)接收所述的SIP中继模块8返回的的200OK响应;4)把所述的SIP中继模块8返回的200OK响应中的SDP消息中的c行改为服务器的IP地址产生200OK1响应,并把200OK1响应传输至主叫。5)转发主叫发送的ACK响应至所述的SIP中继模块8。
⑤所述密钥协商模块5包括认证模块5-1,会话密钥协商模块5-2以完成加密通话双方的身份认证和会话密钥的协商。
其中,所述的认证模块5-1实现加密通话双方身份的认证,加密通话双方的身份认证过程具体包括以下6个步骤:
1)终端A向终端B或服务器发送采用固定密钥Kfixed进行AES加密的身份消息N1,即E(Kfixed,YA||N1);
2)终端B或服务器接收到含有身份的消息E(Kfixed,YA||N1)后,用固定密钥解密;
3)终端B或服务器向终端A发送采用固定密钥Kfixed进行AES加密的身份消息N2,即200OK||E(Kfixed,YB||N1||N2);
4)终端A收到该消息200OK||E(Kfixed,YB||N1||N2)后,先用固定密钥解密,然后比对N1与本地的N1是否相符:若相符,则继续;若不符,则返回错误:身份认证失败。
5)终端A向终端B或服务器采用固定密钥Kfixed进行AES加密的身份认证消息N2,即E(Kfixed,N2);
6)终端B收到该消息E(Kfixed,N2)后,先用固定密钥解密,然后比对N2与本地的N2是否相符:若相符,则进行语音通话;若不符,则返回错误:身份认证失败。
其中,所述的会话秘钥协商模块5-2完成加密通话双方的会话秘钥协商,会话秘钥的协商过程具体包括以下4个步骤:
1)终端A取随机数XA作为自己的私钥,计算公钥终端A向终端B或服务器发送采用固定密钥Kfixed进行AES加密的公钥YA,即E(Kfixed,YA||N1);
2)终端B或服务器在接收到消息E(Kfixed,YA||N1),且通过身份认证后,保存终端A的公钥YA;
3)终端B或服务器取随机数XB作为自己的私钥,计算公钥和本次会话密钥终端B或服务器返回固定密钥Kfixed进行AES加密的公钥YB,即发送E(Kfixed,YB||N1||N2);
4)终端A收到消息E(Kfixed,YB||N1||N2)后,用固定密钥解密消息得到YB;
5)终端B计算本次会话密钥KS=KS';否则返回错误:会话密钥协商失败;
⑥所述的语音桥接模块6包括远程桥接模块6-1和本地桥接模块6-2,针对不同的通话模式选择不同的桥接方式。其中,所述的远程桥接模块6-1,在端到端加密通话模式下,桥接主叫和被叫的语音,桥接主叫和被叫的语音具体包括如下3个步骤:1)获取主被叫建立信令连接的时间;2)获取主被叫通话结束的时间;3)把通话结束时间减去信令连接时间获取通话时间。其中,所述的本地桥接模块6-2,在端到服务器半程加密通话模式下,桥接主叫和被叫的语音,桥接主叫和被叫的语音具体包括如下6个步骤:1)为保密终端语音接收线程加锁;2)开启保密终端语音接收线程;3)把接收的密文数据传输至加密通话模块7;4)为非保密终端语音接收线程加锁;5)开启非保密终端语音接收线程;6)把接收的明文数据传输至加密通话模块7。
⑦所述的加密通话模块7包括编解码模块7-1,RTP包封装(解封)模块7-2,加解密模块7-3,RTP通信模块7-4,实现保密终端之间或移动保密终端与服务器之间的加密语音通话。其中,所述的编解码模块7-1对语音数据进行编解码,语音的编码具体包括如下3个步骤:1)从麦克采集语音数字信号;2)对语音数字信号进行GSM编码;3)把编码后的语音数据传输至RTP封装解封模块7-2;语音的解码具体包括如下3个步骤:1)从RTP封装解封模块7-2获取语音数据;2)对语音数据进行解码;3)把解码后的语音数字信号传输至扬声器。其中,所述的RTP包封装(解封)模块7-2封装或解封RTP包,RTP包的封装过程具体包括如3个步骤:1)从编解码模块7-1获取GSM语音数据;2)按照RTP协议规范把GSM语音数据封装成RTP包;3)把RTP包传送至加解密模块7-3;RTP包的解封过程具体包括如下3个步骤:1)从加解密模块7-3获取明文RTP包;2)把RTP包按照RTP协议规范解封RTP包,获得GSM语音数据;3)把GSM语音数据传送至编解码模块7-1。
其中,所述的加解密模块7-3对RTP包进行加解密,对RTP包的加密过程具体包括如下4个步骤:1)从RTP包封装(解封)模块7-2获取明文RTP包;2)采用自己的私钥对RTP包生成DSA数字签名;3)使用协商好的会话密钥,对整个包进行AES加密;4)再把加密后的数据包传输至RTP通信模块7-4。对RTP包的解密过程具体包括如下4个步骤:1)从RTP通信模块获取密文RTP包;2)用协商好的会话秘钥对RTP包进行AES解密;3)提取出DSA数字签名并用对端的公钥解密DSA数字签名;4)把解密的DSA数字签名与明文RTP包比对,若一致则认证通过,将明文RTP包传输至RTP包封装(解封)模块。其中,所述的RTP通信模块7-4,完成通话双方的RTP包通信,RTP通信过程具体包括如下7个步骤:1)发送端从加解密模块7-3获取密文RTP包;2)把RTP包嵌入UDP包中;3)生成发送至接收端的UDP套接字;4)接收端生成指定端口的UDP套接字;5)当有UDP数据包进入接收队列;6)取出队列头的UDP包,并从中解析出RTP包;7)把RTP包传输至加解密模块7-3。
⑧所述的SIP中继模块8包括信令中继模块8-1和语音中继模块8-2,当被叫是普通电话或普通手机时,中转服务器与语音网关之间SIP信令和RTP语音数据。其中,所述的信令中继模块8-1在服务器与语音网关之间对SIP信令消息进行中继转发。信令的中继过程具体包括如下3个步骤:1)从信令桥接模块4-2获取出局的SIP信令数据;2)以主叫代理的身份呼叫语音网关;3)接收语音网关的响应;4)把来自语音网关的响应传输至信令桥接模块4-2。其中,所述的语音中继模块8-2在服务器与语音网关之间对语音数据进行中继转发。语音的中继过程具体包括如下3个步骤:1)从加密通话模块7获取出局的语音数据;2)把获取的语音数据传输至语音网关;3)接收来自语音网关的语音数据;4)把从语音网关获取的语音数据传输至加密通话模块7。
如图3所示,本发明的注册流程注册信息输入、注册消息生成、定时注册、注册实时认证以及注册完成5个流程。
1)注册信息输入。用户打开Android移动保密终端,向Android注册界面模块1-1输入账号、密码和服务器IP地址等用户信息;
2)注册消息生成。注册消息生成模块1-2首先根据用户信息按照SIP协议规范构造SIP注册消息,然后把加密终端标志位添加到SIP注册消息中生成最终的注册消息;
3)定时注册。如图4所示为注册发起模块1-3定时向用户认证模块发送携带加密标志位的REGISTER消息;
4)注册实时认证。注册认证模块2-1首先,从Android用户的注册请求中解析出注册消息;然后从注册消息中解析出用户的账号、密码、本地IP地址、Android终端加密标志位等信息;之后,验证账号、密码、终端型号是否与Android用户数据库模块2-2中账号、密码是否一致;最后向注册发起模块1-3响应200OK,并在Android用户数据库模块2-2中更新用户的地址、保密终端标志位等信息,若账号不存在或密码错误则返回400ERRO,用户重新输入注册信息;
5)注册完成。如图4所示,注册发起模块1-3接收注册认证模块2-1返回的200OK响应消息完成注册。
如图4所示为本发明的Android用户注册消息交互图,首先Android保密终端定时向服务器发送携带加密标志位的REGISTER消息;然后,服务器实时地返回200OK的响应消息。
如图5所示为本发明的呼叫流程图,本发明首先进行Android用户拨号、呼叫消息生成、呼叫发起、信令解析四个通用流程。
1)Android用户拨号。注册完成后,用户打开Android移动保密终端,向Android拨号模块3-1输入被叫号码,并按下呼叫按钮触发呼叫消息生成模块3-2和SIP通信模块3-3;
2)呼叫消息生成。呼叫消息生成模块3-2按照SIP协议规范,根据服务器IP地址和用户所拨打的号码生成呼叫消息;
3)呼叫发起。如图6和图7中的消息1,Android移动保密终端A的Android呼叫模块3向服务器的SIP信令处理模块4发起Invite消息1)呼叫请求。
4)信令解析。如图6和图7的消息1、消息2和消息3所示,服务器的信令解析模块4-1①接收保密终端AAndroid呼叫模块3所发送的Invite(消息1)呼叫请求;②从Invite(消息1)呼叫请求消息中解析出主叫号码、被叫号码以及SDP消息,并向所述的Android呼叫模块3发送100Trying(消息2)的临时响应;③服务器通过Android用户数据库模块2-2查询被叫用户是否在线;④若被叫用户在线或被叫号码以“9”开头,则向Android移动保密终端A发送180Ringing(消息3)的临时响应,并触发Android移动保密终端A的模式识别模块4-2和信令桥接模块4-3;若被叫用户不在线,则Android移动保密终端A重新拨号。
本发明在四个通用流程结束之后进行模式识别:服务器的模式识别模块4-2首先从所述的信令解析模块4-1获取主叫号码和被叫号码;然后根据主叫号码和被叫号码在Android用户数据库模块2-2中查询主叫用户和被叫用户的加密标志位;最后对主叫用户和被叫用户的加密标志位进行异或,若结果为1,则可判定本次通话模式为端到服务器半程加密通话模式,若结果为0,则可判定本次通话模式为端到端加密通话模式;
在端到端加密通话模式下,模式识别完成之后进行直接中转主被叫信令、端到端密钥协商、远程语音桥接、端到端加密通话4个流程:
1)直接中转主被叫信令。如图6的消息4、消息5、消息6、消息7、消息8、消息9和消息10所示:①服务器的信令桥接模快4-3直接转发Invite消息4请求至Android移动保密终端B的Android呼叫模块3;②Android移动保密终端B的Android呼叫模块3返回100Trying(消息5)和180Ringing(消息6)的临时响应;③服务器的信令桥接模块4-3接收100Trying(消息5)和180Ringing(消息6)的临时响应;④Android移动保密终端B的Android呼叫模块3返回200OK(消息7)响应;⑤服务器信令桥接模块4-3接收被叫返回的200OK(消息7)响应,并把200OK(消息7)响应转发至Android移动保密终端A的呼叫模块3;⑥Android移动保密终端A的呼叫模块3接收到200OK(消息8)响应后,向服务器信令桥接模块4-3发送ACK(消息9)响应确认消息;⑦服务器信令桥接模块4-3接收到主叫发送的ACK(消息9)响应确认消息后,转发ACK(消息10)至Android移动保密终端B的呼叫模块(3);⑧Android移动保密终端B的呼叫模块3接收到ACK(消息10),则建立了主叫呼叫信令连接;
2)端到端密钥协商。如图6的消息11、消息12和消息13所示。
①Android移动保密终端A的密钥协商模块5取随机数XA作为自己的私钥,计算公钥Android移动保密终端A向Android移动保密终端B发送采用固定密钥Kfixed进行AES加密的随机数N1和公钥YA,即E(Kfixed,YA||N1)(消息11);
②Android移动保密终端B的密钥协商模块5在接收到消息E(Kfixed,YA||N1)后(消息11),用固定密钥Kfixed进行AES解密消息得随机数N1和公钥YA,保存随机数N1和公钥YA;
③Android移动保密终端B的密钥协商模块5取随机数XB作为自己的私钥,计算公钥和本次会话密钥Android移动保密终端B的密钥协商模块5返回用固定密钥Kfixed加密随机数N1,随机数N2和公钥YB,即E(Kfixed,YB||N1||N2)(消息12);
④Android移动保密终端A的密钥协商模块5收到E(Kfixed,YB||N1||N2)(消息12)后,用固定密钥解密得到随机数N1,随机数N2和公钥,比对N1与本地的N1是否相符:若相符,则继续;若不符,则返回错误:身份认证失败。若认证通过,计算本次会话密钥Ks=Ks’;
⑤Android移动保密终端A的密钥协商模块5向Android移动保密终端B的密钥协商模块5发送采用固定密钥Kfixed进行AES加密的身份认证消息N2,即E(Kfixed,N2)(消息13);
⑥Android移动保密终端B的密钥协商模块5收到该消息E(Kfixed,N2)(消息13)后,先用固定密钥解密,然后比对N2与本地的N2是否相符:若相符,则进行语音通话;若不符,则返回错误:身份认证失败。
3)远程语音桥接。服务器的远程语音桥接模块6-1记录下语音通话开始时间。
4)端到端加密通话。至此,Android移动保密终端A和Android移动保密终端B通过加密通话模块7实现加密通话(如图6的消息14所示)。
在端到服务器加密通话模式下,模式识别之后修改SIP信令的SDP消息:服务器信令桥接模块4-3①从信令解析模块4-1获取主叫号码、被叫号码以及SDP消息;②修改SDP消息中的”c”行产生Invite1请求消息;③判断被叫号码是否是以9开头,若被叫号码以“9”开头则可以判定被叫是普通电话或普通手机,若被叫号码不是以“9”开头则可判定被叫为普通IP电话。
在端到服务器加密通话模式之下,若被叫是普通IP电话,修改完SIP信令的SDP消息之后,本发明进行中转主被叫SIP信令、端到服务器密钥协商、中转主被叫语音、端到服务器半程加密通话4个流程
1)中转主被叫SIP信令。如图7的消息4、消息5、消息6、消息7、消息8、消息9和消息10所示:①服务器的信令桥接模块4-3把Invite1(消息4)请求消息发送至普通IP电话;②普通IP电话返回100Trying(消息5)和180Ringing(消息6)的临时响应;③服务器的信令桥接模块4-3接收100Trying(消息5)和180Ringing(消息6)的临时响应;④普通IP电话返回200OK(消息7)响应;⑤服务器的信令桥接模块4-3接收被叫返回的200OK(消息7)响应,并把200OK1(消息8)响应转发至Android保密终端A的Android呼叫模块3;⑥Android保密终端A的Android呼叫模块3接收到200OK1(消息8)响应后,向服务器的信令桥接模块4-3发送ACK(消息9)响应确认消息;⑦服务器的信令桥接模块4-3ACK(消息9)响应确认消息后,转发ACK(消息10)至普通IP电话;⑧普通IP电话接收到ACK(消息10)消息,主被叫便建立了呼叫信令连接;
2)端到服务器密钥协商。如图7的消息11、消息12和消息13所示。
①Android移动保密终端A的密钥协商模块5的密钥协商模块取随机数XA作为自己的私钥,计算公钥Android移动保密终端A的密钥协商模块5向服务器的密钥协商模块5发送采用固定密钥Kfixed进行AES加密的随机数N1和公钥YA,即E(Kfixed,YA||N1)(消息11);
②服务器密钥协商模块9在接收到消息E(Kfixed,YA||N1)后(消息11),用固定密钥Kfixed进行AES解密消息得随机数N1和公钥YA,保存随机数N1和公钥YA;
③服务器密钥协商模块9取随机数XB作为自己的私钥,计算公钥和本次会话密钥服务器返回用固定密钥Kfixed加密随机数N1,随机数N2和公钥YB,即E(Kfixed,YB||N1||N2)(消息12);
④Android移动保密终端A的密钥协商模块5收到E(Kfixed,YB||N1||N2)(消息12)后,用固定密钥解密得到随机数N1,随机数N2和公钥,比对N1与本地的N1是否相符:若相符,则继续;若不符,则返回错误:身份认证失败。若认证通过,计算本次会话密钥Ks=Ks’;
⑤Android移动保密终端A的密钥协商模块5向服务器的密钥协商模块(5)发送采用固定密钥Kfixed进行AES加密的身份认证消息N2,即E(Kfixed,N2)(消息13);
⑥服务器的密钥协商模块5收到该消息E(Kfixed,N2)(消息13)后,先用固定密钥解密,然后比对N2与本地的N2是否相符:若相符,则进行语音通话;若不符,则返回错误:身份认证失败。
3)中转主被叫语音。服务器的本地桥接模块6-2①创建非保密终端语音接收线程;②创建非保密终端语音发送线程;③创建加密通话模块7语音接收线程;④创建加密通话模块8语音发送线程;⑤打开以上所有线程,并记录下通话开始时间。
4)端到服务器半程加密通话。如图7的消息14和消息15所示,Android移动保密终端A和服务器通过加密通话模块7,实现加密语音通话(消息14);服务器和普通IP电话之间实现普通语音通话(消息15)。
在端到服务器加密通话模式下,若被叫是普通电话或普通手机,本发明在修改完SIP信令的SDP消息之后进行中转主叫与SIP中继模块8的SIP信令,端到服务器秘钥协商,中转主叫与SIP中继模块8语音和端到服务器半程加密通话4个流程。
1)中转主叫和SIP中继模块8信令。如图7的消息4、消息5、消息6、消息7、消息8、消息9和消息10所示:①服务器的信令桥接模块4-3把Invite1(消息4)请求消息发送至SIP中继模块8;②SIP中继模块8返回100Trying(消息5)和180Ringing(消息6)的临时响应;③服务器的信令桥接模块4-3接收100Trying(消息5)和180Ringing(消息6)的临时响应;④SIP中继模块(8)返回200OK(消息7)响应;⑤服务器的信令桥接模块4-3接收SIP中继模块(8)返回的200OK(消息7)响应,并把200OK1(消息8)响应转发至Android保密终端A的Android呼叫模块3;⑥Android保密终端A的Android呼叫模块3接收到200OK1(消息8)响应后,向服务器的信令桥接模块4-3发送ACK(消息9)响应确认消息;⑦服务器的信令桥接模块4-3接收到Android保密终端A的Android呼叫模块3发送的ACK(消息9)响应确认消息后,转发ACK(消息10)至SIP中继模块8;⑧SIP中继模块8接收到ACK(消息10)消息,主被叫便建立了呼叫信令连接;
2)端到服务器密钥协商。如图7的消息11、消息12和消息13所示。
①Android移动保密终端A的密钥协商模块5取随机数XA作为自己的私钥,计算公钥Android移动保密终端A向服务器密钥协商模块(9)发送采用固定密钥Kfixed进行AES加密的随机数N1和公钥YA,即E(Kfixed,YA||N1)(消息11);
②服务器密钥协商模块9在接收到消息E(Kfixed,YA||N1)后(消息11),用固定密钥Kfixed进行AES解密消息得随机数N1和公钥YA,保存随机数N1和公钥YA;
③服务器密钥协商模块9取随机数XB作为自己的私钥,计算公钥和本次会话密钥服务器密钥协商模块9返回用固定密钥Kfixed加密随机数N1,随机数N2和公钥YB,即E(Kfixed,YB||N1||N2)(消息12);
④Android移动保密终端A的密钥协商模块5收到E(Kfixed,YB||N1||N2)(消息12)后,用固定密钥解密得到随机数N1,随机数N2和公钥,比对N1与本地的N1是否相符:若相符,则继续;若不符,则返回错误:身份认证失败。若认证通过,计算本次会话密钥Ks=Ks’;
⑤Android移动保密终端A的密钥协商模块5向服务器发送采用固定密钥Kfixed进行AES加密的身份认证消息N2,即E(Kfixed,N2)(消息13);
⑥服务器密钥协商模块9收到该消息E(Kfixed,N2)(消息13)后,先用固定密钥解密,然后比对N2与本地的N2是否相符:若相符,则进行语音通话;若不符,则返回错误:身份认证失败。
3)中转主叫与SIP中继模块8语音。服务器的本地桥接模块6-2①创建SIP中继模块8端语音接收线程;②创建SIP中继模块8发送线程;③创建加密通话模块7语音接收线程;④创建加密通话模块8语音发送线程;⑤打开以上所有线程,并记录下通话开始时间。
4)端到服务器半程加密通话。如图7的消息14和消息15所示,Android移动保密终端A和服务器通过加密通话模块7,实现加密语音通话(消息14);服务器和SIP中继模块8之间实现普通语音通话(消息15)。
本发明最后进行通话结束流程。首先,移动保密终端、服务器和非保密终端按照SIP协议规范结束通话并记录下通话结束时间;然后,把通话结束时间减去通话开始时间获得通话时间。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种面向Android系统的移动保密终端的实现方法,其特征在于:包括Android用户注册模块(1),Android用户管理模块(2),Android呼叫模块(3),SIP信令处理模块(4),密钥协商模块(5),语音桥接模块(6),加密通话模块(7),SIP中继模块(8),服务器密钥协商模块(9)以及服务器加密通话模块(10);该移动保密终端可支持两种加密通信模式:其一,在通话双方都是保密终端时,可实现针对Android操作系统移动终端端到端一次一密的加密语音通信,即端到端加密通信模式;其二,在通话双方只有一方是保密终端时,可实现针对Android操作系统移动终端到服务器间的一次一密的加密语音通信,即保密终端到服务器半程加密通信模式;其中所述的Android用户注册模块(1)实时地向Android用户管理模块(2)发起注册请求;所述的Android用户管理模块(2)验证注册请求的合法性,并实时存储用户信息和终端信息;所述的Android呼叫模块(3)与对端的Android呼叫模块(3)建立呼叫连接;所述的SIP信令处理模块(4),实现对终端呼叫信令的处理并识别出通话模式;所述的密钥协商模块(5)认证加密会话双方身份的合法性,并协商会话密钥;所述的语音桥接模块(6)块根据不同的通话模式选择不同的语音桥接方式;所述的加密通话模块(7),在端到端加密通话模式下,实现端到端加密语音通信,在端到服务器加密通话模式下,实现端到服务器的加密语音通信;所述的SIP中继模块(8),在被叫是普通电话或普通手机通话时,中转服务器与语音网关之间SIP信令和RTP语音数据。
2.根据权利要求1所述的一种面向Android系统的移动保密终端的实现方法,其特征在于:所述的Android用户注册模块(1)包括Android注册界面模块(1-1)、注册消息生成模块(1-2)和注册发起模块(1-3),用以实现用户注册;
其中,所述的Android注册界面模块(1-1)通过创建注册界面,提供用户信息编辑功能;用户账号信息的录入具体包括以下4个步骤:1)创建 描述注册界面的XML文件;2)实例化Android应用框架层的Activity类;3)用Activity实例加载描述注册界面的XML文件;3)实例化Android应用框架层的EditText类以供用户编辑账号、密码、服务器地址等信息;4)实例化Android应用框架层的Button类;5)为Button实例设置单击事件监听器;6)在单击事件监听器中触发注册消息生成模块(1-2)和注册发起模块(1-3);
其中,所述的注册消息生成模块(1-2)按照SIP协议的REGISTER方法构造携带保密终端信息的注册消息,注册消息的生成具体包括以下3个步骤:1)从Android注册界面模块(1-1)获取构造SIP注册消息所需的账号、密码、服务器地址等信息;2)把这些字段按照SIP协议规范构造SIP注册消息;3)把加密终端标志位添加到SIP注册消息中生成最终的注册消息;
其中,所述的注册发起模块(1-3)每隔一段时间向服务器发起注册请求;注册的发起具体包括以下3个步骤:1)从注册消息生成模块(1-1)获取注册消息;2)构建消息发送定时器,用注册消息定时向服务器发起注册请求;3)处理服务器的响应消息。
3.根据权利要求1所述的一种面向Android系统的移动保密终端实现方法,其特征在于:所述的Android用户管理模块(2)包括注册认证模块(2-1)和Android用户数据库模块(2-2),用以管理Android移动终端;
其中,所述的注册认证模块(2-1)认证用户注册消息的合法性;用户的认证具体包括以下3个步骤:1)从Android用户的注册请求中解析出注册消息;2)从注册消息中解析出用户的账号、密码、本地IP地址、Android终端加密标志位等信息;3)验证账号、密码、终端型号是否与Android用户数据库模块(2-2)中账号、密码是否一致;4)若一致响应200OK,并在数据库模块(2-2)中更新用户的地址、保密终端标志位等信息,若账号不存在或密码错误则返回400ERRO;
其中,所述的Android用户数据库模块(2-2)存储着Android用户的信息;Android用户信息的存储具体包括以下3个步骤:1)创建Android 用户数据库;2)创建Android用户信息表;3)创建Android用户信息表的增、删、改、查功能接口,被其它模块调用。
4.根据权利要求1所述的一种面向Android系统的移动保密终端实现方法,其特征在于:所述的Android呼叫模块(3)包括Android拨号模块(3-1),呼叫消息生成模块(3-2)和SIP通信模块(3-3),通过所述的SIP信令处理模块(4)与被叫建立信令连接;
其中,所述的Android拨号模块(3-1)通过创建拨号界面,提供用户拨号功能,用户拨号功能的实现具体包括以下8个步骤:1)创建描述拨号界面的XML文件;2)实例化Android应用框架层的Activity类;3)用Activity实例加载描述拨号界面的XML文件;4)实例化Android应用框架层的Button类;5)给Button类实例设置监听器监听用户的拨号;6)实例化Android应用框架层的TextView类显示用户拨打的号码;7)实例化Android应用框架层的ImageButton类;8)给ImageButton类实例设置监听器,以触发所述的呼叫消息生成模块(3-2)和SIP通信模块(3-3);
其中,所述的呼叫消息生成模块(3-2)生成呼叫消息,呼叫消息的生成具体包括以下3个步骤:1)从注册消息生成模块(1-1)获取服务器的IP地址;2)从Android拨号模块(3-1)获取用户所拨打的号码;3)按照SIP协议规范,根据服务器IP地址和用户所拨打的号码生成呼叫消息;
其中,所述的SIP通信模块(3-3)根据呼叫消息实现了SIP协议Invite方法的整个交互过程,SIP协议Invite方法的整个交互过程包括如下4个步骤:1)首先以呼叫消息向所述的SIP信令处理模块(4)发起Invite请求;2)接收服务器的临时响应100Trying和180Ringing;3)接收服务器的响应200OK;4)向服务器发送响应确认消息ACK。
5.根据权利要求1所述的一种面向Android系统的移动保密终端实现方法,其特征在于所述的SIP信令处理模块(4)包括信令解析模块(4-1),模式识别模块(4-2)和信令桥接模块(4-3),用以实现对终端呼叫信令的处理;
其中,所述的信令解析模块(4-1)解析所述的Android呼叫模块(3) 发起的呼叫请求,呼叫请求的解析具体包括以下3个步骤:1)接收所述的Android呼叫模块(3)传输至的呼叫请求;2)从呼叫请求消息中解析出主叫号码、被叫号码以及SDP消息,并向所述的Android呼叫模块(3)发送100Trying的临时响应;3)若被叫号码不是以“9”开头,在Android用户数据库模块(2-2)查询被叫用户是否在线,若在线则向Android呼叫模块(4)发送180Ringing的临时响应并触发识别模块(4-2)和信令桥接模块(4-3),否则返回Service Unavailable并结束通话;
其中,所述的模式识别模块(4-2)用以识别通话模式是端到端加密模式还是端到服务器加密模式,通话模式的识别过程具体包括以下3个步骤:1)从所述的信令解析模块(4-1)获取主叫号码和被叫号码;2)根据主叫号码和被叫号码在Android用户数据库模块(2-2)中查询主叫用户和被叫用户的加密标志位;3)对主叫用户和被叫用户的加密标志位进行异或,若结果为1则可判定本次通话模式为端到服务器半程加密通话模式,若结果为0则可判定本次通话模式为端到端加密通话模式;
其中,所述的信令桥接模块(4-3)用以在主被叫间建立信令连接,主叫与IP电话终端建立信令连接的过程具体包括以下5个步骤:1)在端到端加密通话模式下,服务器直接转发Invite请求至被叫;在端到服务器通话模式下,服务器把Invite请求中的SDP消息中的c行改为服务器的IP地址产生Invite1请求消息,并向被叫发起Invite1请求;2)接收被叫返回的100Ringing和180Trying的临时响应;3)接收被叫返回的200OK响应;4)在端到端通话模式下直接把被叫返回的200OK响应转发给主叫;在端到服务器通话模式下,把被叫返回的200OK响应中的SDP消息中的c行改为服务器的IP地址产生200OK1响应,并把200OK1响应传输至主叫;5)转发主叫的ACK响应确认消息;主叫与普通手机或普通电话建立信令连接的过程具体包括以下5个步骤:1)若主叫号码以“9”开头,服务器把Invite请求中的SDP消息中的c行改为服务器的IP地址,产生Invite1请求消息,并把Invite1请求消息传输至SIP中继模块(8);2)接收所述的SIP中继模块(8)返回的100Ringing和180Trying的临时响应;3)接收所述的SIP 中继模块(8)返回的的200OK响应;4)把所述的SIP中继模块(8)返回的200OK响应中的SDP消息中的c行改为服务器的IP地址产生200OK1响应,并把200OK1响应传输至主叫;5)转发主叫发送的ACK响应至所述的SIP中继模块(8)。
6.根据权利要求1所述的一种面向Android系统的移动保密终端的实现方法,其特征在于:所述密钥协商模块(5)包括认证模块(5-1),以及会话密钥协商模块(5-2),用以完成加密通话双方的身份认证和会话密钥的协商;
其中,所述的认证模块(5-1)实现加密通话双方身份的认证,加密通话双方的身份认证过程具体包括以下6个步骤:
1)终端A向终端B或服务器发送采用固定密钥Kfixed进行AES加密的身份消息N1,即E(Kfixed,YA||N1);
2)终端B或服务器接收到含有身份的消息E(Kfixed,YA||N1)后,用固定密钥解密;
3)终端B或服务器向终端A发送采用固定密钥Kfixed进行AES加密的身份消息N2,即200 OK||E(Kfixed,YB||N1||N2);
4)终端A收到该消息200 OK||E(Kfixed,YB||N1||N2)后,先用固定密钥解密,然后比对N1与本地的N1是否相符:若相符,则继续;若不符,则返回错误:身份认证失败;
5)终端A向终端B或服务器采用固定密钥Kfixed进行AES加密的身份认证消息N2,即E(Kfixed,N2);
6)终端A收到该消息E(Kfixed,N2)后,先用固定密钥解密,然后比对N2与本地的N2是否相符:若相符,则进行语音通话;若不符,则返回错误:身份认证失败;
其中,所述的会话秘钥协商模块(5-2)完成加密通话双方的会话秘钥协商,会话秘钥的协商过程具体包括以下4个步骤:
1)终端A取随机数XA作为自己的私钥,计算公钥终端A向终端B或服务器发送采用固定密钥Kfixed进行AES加密的公钥YA,即 E(Kfixed,YA||N1);
2)终端B或服务器在接收到消息E(Kfixed,YA||N1),且通过身份认证后,保存终端A的公钥YA;
3)终端B或服务器取随机数XB作为自己的私钥,计算公钥和本次会话密钥终端B或服务器返回固定密钥Kfixed进行AES加密的公钥YB,即发E(Kfixed,YB||N1||N2);
4)终端计算本次会话密钥KS=KS';否则返回错误:会话密钥协商失败。
7.根据权利要求1所述的一种面向Android系统的移动保密终端的实现方法,其特征在于:所述的语音桥接模块(6)包括远程桥接模块(6-1)和本地桥接模块(6-2),用以针对不同的通话模式选择不同的桥接方式;
其中,所述的远程桥接模块(6-1),在端到端加密通话模式下,桥接主叫和被叫的语音,桥接主叫和被叫的语音具体包括如下3个步骤:1)获取主被叫建立信令连接的时间;2)获取主被叫通话结束的时间;3)把通话结束时间减去信令连接时间获取通话时间;
其中,所述的本地桥接模块(6-2),在端到服务器半程加密通话模式下,桥接主叫和被叫的语音,桥接主叫和被叫语音的具体包括如下6个步骤:1)为保密终端语音接收线程加锁;2)开启保密终端语音接收线程;3)把接收的密文数据传输至加密通话模块(7);4)为非保密终端语音接收线程加锁;5)开启非保密终端语音接收线程;6)把接收的明文数据传输至加密通话模块。
8.根据权利要求1所述的一种面向Android系统的移动保密终端的实现方法,其特征在于:所述的加密通话模块(7)包括编解码模块(7-1),RTP包封装(解封)模块(7-2),加解密模块(7-3),以及RTP通信模块(7-4),用以实现移动保密终端间或移动保密终端与服务器间的加密语音通话;
其中,所述的编解码模块(7-1)对语音数据进行编解码,语音的编码具体包括如下3个步骤:1)从移动终端麦克采集语音数字信号;2)对语 音数字信号进行GSM编码;3)把编码后的语音数据传输至RTP封装(解封)模块(7-2);语音的解码具体包括如下3个步骤:1)从RTP封装(解封)模块(7-2)获取语音数据;2)对语音数据进行解码;3)把解码后的语音数字信号传输至移动终端扬声器;
其中,所述的RTP包封装(解封)模块(7-2)封装或解封RTP包,RTP包的封装过程具体包括如3个步骤:1)从编解码模块(7-1)获取GSM语音数据;2)按照RTP协议规范把GSM语音数据封装成RTP包;3)把RTP包传送至加解密模块(7-3);RTP包的解封过程具体包括如下3个步骤:1)从加解密模块(7-3)获取明文RTP包;2)把RTP包按照RTP协议规范解封RTP包,获得GSM语音数据;3)把GSM语音数据传送至编解码模块(7-1);
其中,所述的加解密模块(7-3)对RTP包进行加解密,对RTP包的加密过程具体包括如下4个步骤:1)从RTP包封装(解封)模块(7-2)获取明文RTP包;2)采用自己的私钥对RTP包生成DSA数字签名;3)使用协商好的会话密钥,对整个包进行AES加密;4)再把加密后的数据包传输至RTP通信模块(7-4);对RTP包的解密过程具体包括如下4个步骤:1)从RTP通信模块获取密文RTP包;2)用协商好的会话秘钥对RTP包进行AES解密;3)提取出DSA数字签名并用对端的公钥解密DSA数字签名;4)把解密的DSA数字签名与明文RTP包比对,若一致则认证通过,将明文RTP包传输至RTP包封装(解封)模块;
其中,所述的RTP通信模块(7-4),完成通话双方的RTP包通信,RTP通信过程具体包括如下7个步骤:1)发送端从加解密模块(7-3)获取密文RTP包;2)把RTP包嵌入UDP包中;3)生成发送至接收端的UDP套接字;4)接收端生成制定端口的UDP套接字;5)当有UDP套接字进入接收队列;6)取出队列头的UDP包,并从中解析出RTP包;7)把RTP包传输至加解密模块(7-3)。
9.根据权利要求1所述的一种面向Android系统的移动保密终端的实现方法,其特征在于所述的SIP中继模块(8)包括信令中继模块(8-1)和 语音中继模块(8-2),当被叫是普通电话或普通手机时,中转服务器与语音网关之间SIP信令和RTP语音数据:
其中,所述的信令中继模块(8-1)在服务器与语音网关之间对SIP信令消息进行中继转发:信令的中继过程具体包括如下3个步骤:1)从信令桥接模块(4-2)获取出局的SIP信令数据;2)以主叫代理的身份呼叫语音网关;3)接收语音网关的响应;4)把来自语音网关的响应传输至信令桥接模块(4-2);
其中,所述的语音中继模块(8-2)在服务器与语音网关之间对语音数据进行中继转发;语音的中继过程具体包括如下3个步骤:1)从加密通话模块(7)获取出局的语音数据;2)把获取的语音数据传输至语音网关;3)接收来自语音网关的语音数据;4)把从语音网关获取的语音数据传输至加密通话模块(7)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510450606.XA CN105025475B (zh) | 2015-07-28 | 2015-07-28 | 面向Android系统的移动保密终端实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510450606.XA CN105025475B (zh) | 2015-07-28 | 2015-07-28 | 面向Android系统的移动保密终端实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105025475A true CN105025475A (zh) | 2015-11-04 |
CN105025475B CN105025475B (zh) | 2019-02-26 |
Family
ID=54415099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510450606.XA Expired - Fee Related CN105025475B (zh) | 2015-07-28 | 2015-07-28 | 面向Android系统的移动保密终端实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105025475B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105792193A (zh) * | 2016-02-26 | 2016-07-20 | 东南大学常州研究院 | 基于iOS操作系统的移动终端语音端到端加密方法 |
CN105959120A (zh) * | 2016-06-17 | 2016-09-21 | 南京皓都臻信网络科技有限公司 | 一种点对点zrtp密码校验方法及系统 |
CN106102046A (zh) * | 2016-05-24 | 2016-11-09 | 中国科学院信息工程研究所 | 一种加密手机一键入密的通信方法 |
CN106899969A (zh) * | 2017-01-18 | 2017-06-27 | 东南大学常州研究院 | 基于iOS系统的特定保密终端系统实现方法 |
CN108650275A (zh) * | 2018-05-21 | 2018-10-12 | 平安科技(深圳)有限公司 | 加密方法、装置、计算机设备和存储介质 |
CN108696483A (zh) * | 2017-04-08 | 2018-10-23 | 李日光 | 一种包通信技术 |
CN109286896A (zh) * | 2018-09-29 | 2019-01-29 | 合肥鸿坤通信工程有限公司 | 一种基于设备管控的安全通信系统 |
CN110248361A (zh) * | 2019-07-08 | 2019-09-17 | 中国人民解放军国防科技大学 | 基于滑动窗回溯的高效自适应gsm解密方法、装置及系统 |
CN111132147A (zh) * | 2019-12-11 | 2020-05-08 | 上海欣方智能系统有限公司 | 一种加密通话在移动终端上的实现方法 |
CN111526378A (zh) * | 2019-02-02 | 2020-08-11 | 华为技术有限公司 | 一种签名信息的传输方法及装置 |
CN112887972A (zh) * | 2021-01-13 | 2021-06-01 | 浙江工业大学 | 一种基于非对称加密的安卓局域网安全通信方法及app |
CN114205814A (zh) * | 2021-12-03 | 2022-03-18 | 中国联合网络通信集团有限公司 | 一种数据传输方法、装置、系统、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1523805A (zh) * | 2003-09-10 | 2004-08-25 | 中兴通讯股份有限公司 | 实现异种网络间加密通信的装置、系统及方法 |
CN1735008A (zh) * | 2004-08-13 | 2006-02-15 | 华为技术有限公司 | 一种与加密网络互通的方法及加密关口局 |
US20080028204A1 (en) * | 2006-07-28 | 2008-01-31 | Nec Infrontia Corporation | Client server distributed system, client apparatus, server apparatus, and message encryption method used therefor |
CN101159988A (zh) * | 2007-11-15 | 2008-04-09 | 中兴通讯股份有限公司 | 一种实现不同密级语音加密的方法及系统 |
CN102137393A (zh) * | 2010-12-28 | 2011-07-27 | 华为技术有限公司 | 一种端到端的加密方法及装置 |
CN103974241A (zh) * | 2013-02-05 | 2014-08-06 | 东南大学常州研究院 | 一种面向Android系统移动终端的语音端到端加密方法 |
CN104243144A (zh) * | 2013-06-08 | 2014-12-24 | 安徽量子通信技术有限公司 | 一种基于Android智能移动终端的通信密钥分配方法 |
-
2015
- 2015-07-28 CN CN201510450606.XA patent/CN105025475B/zh not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1523805A (zh) * | 2003-09-10 | 2004-08-25 | 中兴通讯股份有限公司 | 实现异种网络间加密通信的装置、系统及方法 |
CN1735008A (zh) * | 2004-08-13 | 2006-02-15 | 华为技术有限公司 | 一种与加密网络互通的方法及加密关口局 |
US20080028204A1 (en) * | 2006-07-28 | 2008-01-31 | Nec Infrontia Corporation | Client server distributed system, client apparatus, server apparatus, and message encryption method used therefor |
CN101159988A (zh) * | 2007-11-15 | 2008-04-09 | 中兴通讯股份有限公司 | 一种实现不同密级语音加密的方法及系统 |
CN102137393A (zh) * | 2010-12-28 | 2011-07-27 | 华为技术有限公司 | 一种端到端的加密方法及装置 |
CN103974241A (zh) * | 2013-02-05 | 2014-08-06 | 东南大学常州研究院 | 一种面向Android系统移动终端的语音端到端加密方法 |
CN104243144A (zh) * | 2013-06-08 | 2014-12-24 | 安徽量子通信技术有限公司 | 一种基于Android智能移动终端的通信密钥分配方法 |
Non-Patent Citations (2)
Title |
---|
刘恒旭: "基于Android平台的SIP客户端系统的设计与实现", 《万方数据》 * |
许蓓蓓: "面向Android及iOS系统的端到端语音及短信加密技术研究", 《万方数据》 * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105792193A (zh) * | 2016-02-26 | 2016-07-20 | 东南大学常州研究院 | 基于iOS操作系统的移动终端语音端到端加密方法 |
CN105792193B (zh) * | 2016-02-26 | 2019-02-26 | 东南大学常州研究院 | 基于iOS操作系统的移动终端语音端到端加密方法 |
CN106102046A (zh) * | 2016-05-24 | 2016-11-09 | 中国科学院信息工程研究所 | 一种加密手机一键入密的通信方法 |
CN106102046B (zh) * | 2016-05-24 | 2019-06-11 | 中国科学院信息工程研究所 | 一种加密手机一键入密的通信方法 |
CN105959120B (zh) * | 2016-06-17 | 2019-03-05 | 南京臻信网络科技有限公司 | 一种点对点zrtp密码校验方法及系统 |
CN105959120A (zh) * | 2016-06-17 | 2016-09-21 | 南京皓都臻信网络科技有限公司 | 一种点对点zrtp密码校验方法及系统 |
CN106899969A (zh) * | 2017-01-18 | 2017-06-27 | 东南大学常州研究院 | 基于iOS系统的特定保密终端系统实现方法 |
CN108696483A (zh) * | 2017-04-08 | 2018-10-23 | 李日光 | 一种包通信技术 |
CN108650275A (zh) * | 2018-05-21 | 2018-10-12 | 平安科技(深圳)有限公司 | 加密方法、装置、计算机设备和存储介质 |
CN108650275B (zh) * | 2018-05-21 | 2020-11-17 | 平安科技(深圳)有限公司 | 加密方法、装置、计算机设备和存储介质 |
CN109286896A (zh) * | 2018-09-29 | 2019-01-29 | 合肥鸿坤通信工程有限公司 | 一种基于设备管控的安全通信系统 |
CN111526378A (zh) * | 2019-02-02 | 2020-08-11 | 华为技术有限公司 | 一种签名信息的传输方法及装置 |
CN111526378B (zh) * | 2019-02-02 | 2022-01-14 | 华为技术有限公司 | 一种签名信息的传输方法及装置 |
CN110248361A (zh) * | 2019-07-08 | 2019-09-17 | 中国人民解放军国防科技大学 | 基于滑动窗回溯的高效自适应gsm解密方法、装置及系统 |
CN110248361B (zh) * | 2019-07-08 | 2022-05-17 | 中国人民解放军国防科技大学 | 基于滑动窗回溯的高效自适应gsm解密方法、装置及系统 |
CN111132147A (zh) * | 2019-12-11 | 2020-05-08 | 上海欣方智能系统有限公司 | 一种加密通话在移动终端上的实现方法 |
CN112887972A (zh) * | 2021-01-13 | 2021-06-01 | 浙江工业大学 | 一种基于非对称加密的安卓局域网安全通信方法及app |
CN114205814A (zh) * | 2021-12-03 | 2022-03-18 | 中国联合网络通信集团有限公司 | 一种数据传输方法、装置、系统、电子设备及存储介质 |
CN114205814B (zh) * | 2021-12-03 | 2023-11-21 | 中国联合网络通信集团有限公司 | 一种数据传输方法、装置、系统、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105025475B (zh) | 2019-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105025475A (zh) | 面向Android系统的移动保密终端实现方法 | |
CN103974241B (zh) | 一种面向Android系统移动终端的语音端到端加密方法 | |
KR102033465B1 (ko) | 통신 디바이스와 네트워크 디바이스 사이의 통신에서의 보안 설비 | |
US20150089220A1 (en) | Technique For Bypassing an IP PBX | |
FI108590B (fi) | Matkapuhelimen salausjärjestelmä | |
CN100466805C (zh) | 一种端到端加密语音通信的方法 | |
US20100135491A1 (en) | Authentication method | |
CN106899969A (zh) | 基于iOS系统的特定保密终端系统实现方法 | |
CN102204303B (zh) | 用于在电路交换网络中利用ims数据安全机制的系统和方法 | |
CN105792193A (zh) | 基于iOS操作系统的移动终端语音端到端加密方法 | |
CN101183938A (zh) | 一种无线网络安全传输方法、系统及设备 | |
CN101384042A (zh) | 基于安全数字接口加密卡的手机加密方法 | |
CN102202299A (zh) | 一种基于3g/b3g的端到端语音加密系统的实现方法 | |
US10887288B2 (en) | Method for encrypting voice in voice communications, calling terminal and called terminal, and system | |
CN101917711A (zh) | 一种移动通信系统及其语音通话加密的方法 | |
CN106935242A (zh) | 一种语音通信加密系统与方法 | |
US20130064373A1 (en) | Method to encrypt information that is transferred between two communication units | |
CN107113301A (zh) | 用于移动订户的语音和文本数据服务 | |
CN104219213A (zh) | 一种面向Android系统的端到端语音加密方法 | |
CN105992203B (zh) | 一种语音通信加密密钥协商方法及基于该方法的系统 | |
WO2016082401A1 (zh) | 通话方法、装置、用户终端及计算机存储介质 | |
CN107517184A (zh) | 报文传输方法、装置及系统 | |
CN100550721C (zh) | 一种端到端无线加密通讯的方法及系统 | |
CN108966217A (zh) | 一种保密通信方法、移动终端及保密网关 | |
CN100512103C (zh) | 一种端到端加密通信的密钥分发方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190226 Termination date: 20190728 |