CN107819725B - 基于VoIP通话的方法及移动终端 - Google Patents

基于VoIP通话的方法及移动终端 Download PDF

Info

Publication number
CN107819725B
CN107819725B CN201610818919.0A CN201610818919A CN107819725B CN 107819725 B CN107819725 B CN 107819725B CN 201610818919 A CN201610818919 A CN 201610818919A CN 107819725 B CN107819725 B CN 107819725B
Authority
CN
China
Prior art keywords
data packet
rtp
initial
recording interface
application program
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.)
Active
Application number
CN201610818919.0A
Other languages
English (en)
Other versions
CN107819725A (zh
Inventor
刘春华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Anhui GuoDun quantum Cloud Data Technology Co., Ltd
SHANDONG INSTITUTE OF QUANTUM SCIENCE AND TECHNOLOGY Co.,Ltd.
Original Assignee
Shandong Institute Of Quantum Science And Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shandong Institute Of Quantum Science And Technology Co ltd filed Critical Shandong Institute Of Quantum Science And Technology Co ltd
Priority to CN201610818919.0A priority Critical patent/CN107819725B/zh
Publication of CN107819725A publication Critical patent/CN107819725A/zh
Application granted granted Critical
Publication of CN107819725B publication Critical patent/CN107819725B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/006Networks other than PSTN/ISDN providing telephone service, e.g. Voice over Internet Protocol (VoIP), including next generation networks with a packet-switched transport layer
    • H04M7/0078Security; Fraud detection; Fraud prevention

Abstract

本发明公开了一种基于VoIP通话的方法及移动终端,获取初始实时传输协议RTP数据包,所述初始RTP数据包中包括初始RTP负载;确定加密密钥段;用加密密钥段对初始RTP负载进行加密,获取加密后的RTP负载,并用加密后的RTP负载替换初始RTP负载,生成加密后的RTP数据包;将加密后的RTP数据包发送至接收方。上述基于VoIP通话的方法,无需对移动终端进行硬件改造,只通过对Android操作系统底层进行软件改造,将VoIP通话加密功能固化为Android操作系统的一部分,即可保障VoIP通话的安全,成本较低,而且,上述方法通用性较高,适用于所有的Android操作系统的移动终端。

Description

基于VoIP通话的方法及移动终端
技术领域
本发明涉及移动通信加密领域,更具体的说,是涉及一种基于VoIP通话的方法及移动终端。
背景技术
随着智能手机和移动网络的普及,在Android操作系统的移动终端上使用VoIP(Voice over Internet Protocol,网络电话)进行通话也越来越常见。VoIP的具体实现方式为:发送方(Android操作系统的移动终端)使用SIP(Session Initiation Protocol,会话发起协议)将VoIP的语音数据封装在RTP(Real-time Transport Protocol,实时传输协议)数据包中,通过移动网络发送给接收方。但是,由于Android操作系统的开放性,Android手机木马可能会在移动终端处窃听通话内容;另外,由于互联网的开放性,在互联网上传输的VoIP语音数据包也很容易被截获,因此,在Android操作系统的移动终端上使用VoIP存在很大的安全隐患。
现有技术中的,对在Android操作系统的移动终端上使用的VoIP进行加密的方法多是通过对Android操作系统的移动终端进行硬件改造,比如,添加加解密功能模块,但是,现有技术中Android操作系统的移动终端的种类繁多,对每种Android操作系统的移动终端来说,需要进行不同的硬件改造,因此,现有技术中对在Android操作系统的移动终端上使用的VoIP进行加密的方法通用性较差,且硬件改造导致Android操作系统的移动终端的成本较高,另外不同硬件改造方式造成了用户使用加密通话时的操作流程各异,同是Android操作系统打电话,操作方式却无法通用,极大地影响了用户在Android操作系统的移动终端上使用VoIP的感受。
发明内容
有鉴于此,本发明提供了一种基于VoIP通话的方法及移动终端,以克服现有技术中由于对在Android操作系统的移动终端上使用的VoIP进行加密的方法通用性较差,且硬件改造导致Android操作系统的移动终端的成本较高,另外不同硬件改造方式造成了用户使用加密通话时的操作流程各异,同是Android操作系统打电话,操作方式却无法通用,极大地影响了用户在Android操作系统的移动终端上使用VoIP的感受的问题。
为实现上述目的,本发明提供如下技术方案:
一种基于网络电话VoIP通话的方法,通过对安卓Android操作系统底层软件进行改造,应用于运行Android操作系统的移动终端,所述方法包括:
获取初始实时传输协议RTP数据包,所述初始RTP数据包中包括初始RTP负载;
确定加密密钥段;
用所述加密密钥段对所述初始RTP负载进行加密,获取加密后的RTP负载,并用所述加密后的RTP负载替换所述初始RTP负载,生成加密后的RTP数据包;
将所述加密后的RTP数据包发送至接收方。
优选的,所述确定加密密钥段具体包括:
获取当前密钥组号;
读取所述初始RTP数据包中的序列号,所述序列号用于表示密钥段号;
计算所述初始RTP数据包中的序列号与在获取所述初始RTP数据包之前获取的上一初始RTP数据包中的序列号的差值;
判断所述差值是否在预设范围内;
当所述差值在预设范围内时,从所述当前密钥组号对应的密钥组中选取加密密钥段;
当所述差值不在预设范围内时,从所述当前密钥组号加一获得的新密钥组号对应的密钥组中选取加密密钥段。
优选的,在获取初始实时传输协议RTP数据包之前,所述方法还包括:
屏蔽Android操作系统底层原录音接口;
新建一个供应用层程序调用的专用录音接口;
判断调用所述专用录音接口的所述VoIP通话对应的应用程序是否为所述专用录音接口的合法应用程序;
当调用所述专用录音接口的所述VoIP通话对应的应用程序为所述专用录音接口的合法应用程序时,通过所述专用录音接口调用Android操作系统本地框架层中的录音功能,以生成所述初始RTP数据包。
优选的,所述判断调用所述专用录音接口的所述VoIP通话对应的应用程序是否为所述专用录音接口的合法应用程序,具体包括:
如果调用所述专用录音接口的所述VoIP通话对应的应用程序在所述专用录音接口的合法应用程序白名单内,则判断调用所述专用录音接口的所述VoIP通话对应的应用程序为所述专用录音接口的合法应用程序;
或,如果调用所述专用录音接口的所述VoIP通话对应的应用程序不在所述专用录音接口的不合法应用程序黑名单内,则判断调用所述专用录音接口的所述VoIP通话对应的应用程序为所述专用录音接口的合法应用程序。
一种基于网络电话VoIP通话的方法,通过对安卓Android操作系统底层软件进行改造,应用于运行Android操作系统的移动终端,所述方法包括:
接收发送方发送的加密后的RTP数据包;所述加密后的RTP数据包中包括加密后的RTP负载;
确定解密密钥段;
用所述解密密钥段对所述加密后的RTP负载进行解密,获取初始RTP负载,并用所述初始RTP负载替换所述加密后的RTP负载,将发送方的初始RTP数据包恢复。
优选的,所述确定解密密钥段具体包括:
获取当前密钥组号;
读取所述加密后的RTP数据包中的序列号,所述序列号用于表示密钥段号;
计算所述加密后的RTP数据包中的序列号与在接收所述加密后的RTP数据包之前接收的上一加密后的RTP数据包中的序列号的差值;
判断所述差值是否在预设范围内;
当所述差值在预设范围内时,从所述当前密钥组号对应的密钥组中选取解密密钥段;
当所述差值不在预设范围内时,从所述当前密钥组号加一获得的新密钥组号对应的密钥组中选取解密密钥段。
一种移动终端,应用安卓Android操作系统,所述移动终端包括:
初始RTP数据包获取单元,用于获取初始实时传输协议RTP数据包,所述初始RTP数据包中包括初始RTP负载;
加密密钥段确定单元,用于确定加密密钥段;
加密单元,用于用所述加密密钥段对所述初始RTP负载进行加密,获取加密后的RTP负载,并用所述加密后的RTP负载替换所述初始RTP负载,生成加密后的RTP数据包;
发送单元,用于将所述加密后的RTP数据包发送至接收方;
接收单元,用于接收发送方发送的加密后的RTP数据包;所述加密后的RTP数据包中包括加密后的RTP负载;
解密密钥段确定单元,用于确定解密密钥段;
解密单元,用于用所述解密密钥段对所述加密后的RTP负载进行解密,获取初始RTP负载,并用所述初始RTP负载替换所述加密后的RTP负载,将发送方的初始RTP数据包恢复。
优选的,所述加密密钥段确定单元具体用于:
获取当前密钥组号;
读取所述初始RTP数据包中的序列号,所述序列号用于表示密钥段号;
计算所述初始RTP数据包中的序列号与在获取所述初始RTP数据包之前获取的上一初始RTP数据包中的序列号的差值;
判断所述差值是否在预设范围内;
当所述差值在预设范围内时,从所述当前密钥组号对应的密钥组中选取加密密钥段;
当所述差值不在预设范围内时,从所述当前密钥组号加一获得的新密钥组号对应的密钥组中选取加密密钥段。
优选的,所述解密密钥段确定单元具体用于:
获取当前密钥组号;
读取所述加密后的RTP数据包中的序列号,所述序列号用于表示密钥段号;
计算所述加密后的RTP数据包中的序列号与在接收所述加密后的RTP数据包之前接收的上一加密后的RTP数据包中的序列号的差值;
判断所述差值是否在预设范围内;
当所述差值在预设范围内时,从所述当前密钥组号对应的密钥组中选取解密密钥段;
当所述差值不在预设范围内时,从所述当前密钥组号加一获得的新密钥组号对应的密钥组中选取解密密钥段。
优选的,所述移动终端还包括:
初始RTP数据包生成单元,用于屏蔽Android操作系统底层原录音接口;新建一个供应用层程序调用的专用录音接口;判断调用所述专用录音接口的所述VoIP通话对应的应用程序是否为所述专用录音接口的合法应用程序;当调用所述专用录音接口的所述VoIP通话对应的应用程序为所述专用录音接口的合法应用程序时,通过所述专用录音接口调用Android操作系统本地框架层中的录音功能,以生成所述初始RTP数据包;
所述判断调用所述专用录音接口的所述VoIP通话对应的应用程序是否为所述专用录音接口的合法应用程序,具体包括:
如果调用所述专用录音接口的所述VoIP通话对应的应用程序在所述专用录音接口的合法应用程序白名单内,则判断调用所述专用录音接口的所述VoIP通话对应的应用程序为所述专用录音接口的合法应用程序;
或,如果调用所述专用录音接口的所述VoIP通话对应的应用程序不在所述专用录音接口的不合法应用程序黑名单内,则判断调用所述专用录音接口的所述VoIP通话对应的应用程序为所述专用录音接口的合法应用程序。
经由上述的技术方案可知,与现有技术相比,本发明公开了一种基于VoIP通话的方法及移动终端,获取初始实时传输协议RTP数据包,所述初始RTP数据包中包括初始RTP负载;确定加密密钥段;用加密密钥段对初始RTP负载进行加密,获取加密后的RTP负载,并用加密后的RTP负载替换初始RTP负载,生成加密后的RTP数据包;将加密后的RTP数据包发送至接收方。上述基于VoIP通话的方法,无需对移动终端进行硬件改造,只通过对Android操作系统底层软件进行改造,将VoIP通话加密功能固化为Android操作系统的一部分,即可保障VoIP通话的安全,成本较低,而且,上述方法通用性较高,适用于所有的Android操作系统的移动终端。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的基于VoIP通话的方法实施例1的流程示意图;
图2为本发明实施例公开的RTP数据包结构示意图;
图3为本发明实施例公开的一种确定加密密钥段的方法具体流程示意图;
图4为本发明实施例公开的一种密钥空间示意图;
图5为本发明实施例公开的一种防止木马非法录音的方式的流程示意图;
图6为本发明实施例公开的屏蔽所述VoIP通话对Android操作系统底层原录音接口的调用的示意图;
图7为本发明实施例公开的一种基于VoIP通话的方法实施例2的流程示意图;
图8为本发明实施例公开的一种移动终端实施例3的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本发明的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
由背景技术可知,现有技术中的,对在Android操作系统的移动终端上使用的VoIP进行加密的方法多是通过对Android操作系统的移动终端进行硬件改造,比如,添加加解密功能模块,但是,现有技术中Android操作系统的移动终端的种类繁多,对每种Android操作系统的移动终端来说,需要进行不同的硬件改造,因此,现有技术中对在Android操作系统的移动终端上使用的VoIP进行加密的方法通用性较差,且硬件改造导致Android操作系统的移动终端的成本较高,另外不同硬件改造方式造成了用户使用加密通话时的操作流程各异,同是Android操作系统打电话,操作方式却无法通用,极大地影响了用户在Android操作系统的移动终端上使用VoIP的感受。
因此,本发明公开了一种基于VoIP通话的方法及移动终端,获取初始实时传输协议RTP数据包,所述初始RTP数据包中包括初始RTP负载;确定加密密钥段;用加密密钥段对初始RTP负载进行加密,获取加密后的RTP负载,并用加密后的RTP负载替换初始RTP负载,生成加密后的RTP数据包;将加密后的RTP数据包发送至接收方。上述基于VoIP通话的方法,无需对移动终端进行硬件改造,只通过对Android操作系统底层进行软件改造,将VoIP通话加密功能固化为Android操作系统的一部分,即可保障VoIP通话的安全,成本较低,而且,上述方法通用性较高,适用于所有的Android操作系统的移动终端。
下面将通过以下实施例对本发明公开的基于VoIP通话的方法及移动终端进行详细描述。
请参阅附图1,为本发明实施例公开的一种基于VoIP通话的方法实施例1的流程示意图,该方法通过对安卓Android操作系统底层软件进行改造,应用于运行Android操作系统的移动终端,该方法具体包括如下步骤:
S101:获取初始实时传输协议RTP数据包,所述初始RTP数据包中包括初始RTP负载。
一段VoIP语音是由若干个语音数据包组成的,在执行本步骤之前,需要预先在Android操作系统源码的Java框架层和/或本地框架层中,确定截获RTP数据包的位置(下文称为截获点),对于加密过程来说,截获点一般应在将语音数据包编码生成RTP数据包与发送所述RTP数据包之间,对于解密过程来说,截获点一般应在加密后的RTP数据包接收与加密后的RTP数据包解码之间。不同的Android操作系统版本,截获点的位置可能有差别。例如,在Android 2.3版本中,一个优选的加/解密截获点位于Android源码目录\frameworks\base\voip\jni\rtp文件夹中。
在本步骤中,初始RTP数据包即在截获点处获取。请参阅附图2,为本步骤中所说的RTP数据包结构示意图,在该RTP数据包中包括Sequence Number(数据包序列号)、RTP负载(有效通信数据)等。
S102:确定加密密钥段。
对于每一个初始RTP数据包,在加密时会对应一段加密密钥段,在解密时也会对应一段解密密钥段。例如,初始RTP数据包A在发送方加密时使用了加密密钥段a~b,则到了接收方解密时使用的解密密钥段仍然为a~b。在本实施例中,主要就是确定采用哪个密钥段作为初始RTP数据包的加密密钥段。
S103:用所述加密密钥段对所述初始RTP负载进行加密,获取加密后的RTP负载,并用所述加密后的RTP负载替换所述初始RTP负载,生成加密后的RTP数据包。
在确定采用哪个密钥段作为初始RTP数据包的加密密钥段之后,只需用确定的加密密钥段对初始RTP数据包中的初始RTP负载进行加密,获取加密后的RTP负载,并用所述加密后的RTP负载替换所述初始RTP负载,初始RTP数据包中的其他部分不作任何更改,即可生成加密后的RTP数据包。
S104:将所述加密后的RTP数据包发送至接收方。
最后将所述加密后的RTP数据包通过移动网络发送至接收方。
本实施例公开了一种基于VoIP通话的方法,获取初始实时传输协议RTP数据包,所述初始RTP数据包中包括初始RTP负载;确定加密密钥段;用加密密钥段对初始RTP负载进行加密,获取加密后的RTP负载,并用加密后的RTP负载替换初始RTP负载,生成加密后的RTP数据包;将加密后的RTP数据包发送至接收方。上述基于VoIP通话的方法,无需对移动终端进行硬件改造,只通过对Android操作系统底层进行软件改造,将VoIP通话加密功能固化为Android操作系统的一部分,即可保障VoIP通话的安全,成本较低,而且,上述方法通用性较高,适用于所有的Android操作系统的移动终端。
请参阅附图3,为本发明实施例公开的一种确定加密密钥段的方法具体流程示意图,该方法具体包括如下步骤:
S201:获取当前密钥组号。
VoIP保密通话所需的加密密钥段的定位方式采用“密钥组号+密钥段号”的形式,也就是说,发送方和接收方只要每次都使用相同密钥组号和相同密钥段号所定位的同一小段密钥为同一个RTP数据包中的负载分别进行加解密,即可确保整个VoIP通话过程中的密钥使用正确。
密钥组号指的是存在发送方和接收方移动终端内密钥空间中的一个数字,发送方和接收方的密钥组号约定均从0开始自增,始终保持相同。在本实施例中,用一个16位的有符号数表示密钥组号,其表示范围为-32768到32767,这里取0-32767为有效的密钥组号,因此最多可以表示32768个密钥组。
密钥段号是对每一个密钥组所表示的密钥空间进一步进行细分,这里使用一个16位的无符号数表示密钥段,其表示范围为0-65535。因此,每个密钥组中最多可以容纳65536个密钥段。每一个密钥段可以用来对一个RTP数据包进行加解密。
请参阅附图4,为本实施例公开的一种密钥空间示意图,其中,第0组,第1组,……第32767组即为发送方和接收方的密钥组。每一个密钥组下又可以有第0个密钥段,……第65535个密钥段。这样,通过“密钥组号+密钥段号”的方式,就可以精确描述一个密钥段在整个密钥空间中的逻辑位置。这样的组合可以支持一个较为庞大的密钥空间,可以支撑较大通信数据量的保密通信应用需要。
同样,如果在一些其他应用场合,需要保密的通信数据不是太多。例如,在单一一个密钥组中,密钥空间的大小就可以满足要求,这样就可能不再需要密钥组号;或者也可以不采用本实施例中的RTP包序列号作为密钥段号,而是自行修改RTP包结构或内容来实现相似的作用;或是采用独立于RTP包的专门数据形式来表示类似于本方案中密钥段号的作用。这些变种方法,也应视作在本发明基础上的延伸。
本步骤就是获取发送方移动终端中存放的当前密钥组号。
S202:读取所述初始RTP数据包中的序列号,该序列号用于表示密钥段号。
为充分利用VoIP通话中的RTP数据包自带的信息,尽量不改动RTP数据包的格式和大小,本实施例使用RTP数据包中的序列号(Sequence Number)来表示所述密钥段号。
请参阅附图2,RTP数据包中序列号(即图中Sequence Number)占16个bit位,可直接来做为密钥段号使用。为进一步增强安全性,每次通话的第一个RTP包的序列号是随机产生而不是从0开始的,也就意味着通话时密钥的起始使用位置是从图4所示的第0组中随机动态产生的(因为起始密钥组号为0,密钥段号随机产生)。
S203:计算所述初始RTP数据包中的序列号与在获取所述初始RTP数据包之前获取的上一初始RTP数据包中的序列号的差值。
读取所述初始RTP数据包中的序列号之后,缓存该序列号,并从缓存中获取在所述初始RTP数据包之前获取的上一初始RTP数据包中的序列号,并计算二者的差值。比如,初始RTP数据包中的序列号为8,上一初始RTP数据包中的序列号为7,则二者的差值为1;特殊情况,如果本初始RTP数据包是本次通话的第一个初始RTP数据包,则这个差值视作为1。
S204:判断所述差值是否在预设范围内,当所述差值在预设范围内时,执行步骤S205,当所述差值不在预设范围内时,执行步骤S206。
在本步骤中,判断所述差值是否在预设范围内即判断所述差值是否过大,如果差值过大,意味着这一组密钥段已经用完,开始了一组新的密钥段的使用,即进入了下一个密钥组的逻辑空间。
一种优选的方式是将所述预设范围设为密钥段号取值范围0-65535的一半,32768。比如,初始RTP数据包中的序列号为0,而上一初始RTP数据包中的序列号为65535,则差值为65535,大于32768,则可判断差值过大;初始RTP数据包中的序列号为499,上一初始RTP数据包中的序列号为500,则差值为1,小于32768,则可判断差值过小。
之所以要设置一个预设范围用来判断密钥段的使用是否已经跨组,是因为真实VoIP通话中,由于网络原因,部分RTP包可能丢失。例如在网络质量不佳的情况下,移动终端收到的前一个RTP包的序列号可能为65523,而收到的后一个RTP包的序列号可能就到了12,并不一定是严格按照……65534、65535、0、1、2……这样规则的结果。
S205:从所述当前密钥组号对应的密钥组中选取加密密钥段。
当所述差值在预设范围内时,则说明加密初始RTP数据包的加密密钥段未递增到溢出,无需换到下一个密钥组,则从所述当前密钥组号对应的密钥组中选取加密密钥段。
S206:从所述当前密钥组号加一获得的新密钥组号对应的密钥组中选取加密密钥段。
当所述差值不在预设范围内时,则说明加密初始RTP数据包的加密密钥段递增到溢出,需要换到下一个密钥组,则从所述当前密钥组号加一获得新的密钥组号对应的密钥组中选取加密密钥段,并将这个新密钥组号保存在发送方移动终端的密钥空间中。
对于一段VoIP语音中的若干个RTP数据包,是采用一次一密的方式进行加密的。即从密钥组对应的密钥中选取与RTP负载长度等长的随机密钥作为加密密钥段,每个加密密钥段只用一次。
另外,由于木马是一个运行在Android操作系统应用层上的程序,它在后台隐蔽录取通话中的声音信号,并可以上传到网络上的指定邮箱/网站中。本发明实施例还公开了一种防止木马非法录音的方式,使攻击者无法借助木马对VoIP通话实施窃听。具体的,该方式可以在移动终端出厂前执行,也可以在获取初始实时传输协议RTP数据包之前执行。
请参阅附图5,图5为本发明实施例公开的一种防止木马非法录音的方式的流程示意图,该方式包括如下步骤:
S301:屏蔽Android操作系统底层原录音接口。
请参阅附图6,屏蔽Android操作系统底层原录音接口,即将附图6中的①②③④四个原有函数调用接口屏蔽掉,总是向调用者返回错误调用提示。
以Android 2.3为例,
①android_media_AudioRecord_start函数位于/frameworks/base/core/jni/android_media_AudioRecord.cpp中
②android_media_MediaRecorder_start函数位于/frameworks/base/media/jni/android_media_MediaRecorder.cpp中
③AudioRecord:start函数位于/frameworks/base/media/libmedia/AudioRecord.cpp中
④MediaRecorder::start函数位于/frameworks/base/media/libmedia/Mediarecorder.cpp中
①②位于JNI部分,③④位于C/C++本地框架部分。
需要说明的是,根据上述方式的思想屏蔽上述文件中的其他函数,或是Android版本升级后功能类似的其他文件名中的类似函数,达到无法使原录音程序执行的目的,也应视为在本发明的保护范围。
S302:新建一个供应用层程序调用的专用录音接口。
仍然以图6为例,在③处新建一个供应用层程序调用的专用录音接口。
S303:判断调用所述专用录音接口的所述VoIP通话对应的应用程序是否为所述专用录音接口的合法应用程序。
具体的,如果调用所述专用录音接口的所述VoIP通话对应的应用程序在所述专用录音接口的合法应用程序白名单内,则判断调用所述专用录音接口的所述VoIP通话对应的应用程序为所述专用录音接口的合法应用程序;
或,如果调用所述专用录音接口的所述VoIP通话对应的应用程序不在所述专用录音接口的不合法应用程序黑名单内,则判断调用所述专用录音接口的所述VoIP通话对应的应用程序为所述专用录音接口的合法应用程序。
S304:当调用所述专用录音接口的所述VoIP通话对应的应用程序为所述专用录音接口的合法应用程序时,通过所述专用录音接口调用Android操作系统本地框架层中的录音功能,以生成所述初始RTP数据包。
需要说明的是,如果攻击者编写一个伪造的应用层VoIP拨号程序,用该应用层程序依然能成功调用在③处新建的专用录音接口,导致出现安全漏洞。因此,在以上方法的基础上,可得另一种改进之后的优选方法:即在专用录音接口处进一步增加核实应用层的调用者的相关信息摘要的功能,例如,可以核实应用层调用者程序的MD5(Message DigestAlgorithm MD5,消息摘要算法第5版)、SHA1(安全哈希算法,Secure Hash Algorithm)、包名、签名等。以进一步确定调用所述专用录音接口的所述VoIP通话对应的应用程序的合法性,保证真正合法的应用层调用者才能通过专用录音接口调用下面的C/C++本地框架层中相应的录音功能。
这样做的好处,是确保了只有认定过的白名单中的合法程序才能调用录音功能,从根本上杜绝了任何其他针对手机终端的窃听可能。因为不管木马如何编写,始终是运行在Android应用层上,始终是需要调用下层的录音接口才能窃听,而原有的这个渠道已经被彻底掐断了。这样的话,我们不需要费心去针对层出不穷的各种木马病毒去防止窃听,而是一劳永逸。
上述实施例详细描述了VoIP通话时,发送方对RTP数据包进行加密的过程,接收方对加密后的RTP数据包进行解密的过程与所述加密过程基本类似,只不过是反向操作,用密钥将获得的RTP数据包中的密文解密而已。将通过以下实施例进行简要描述。
请参阅附图7,为本发明实施例公开的一种基于VoIP通话的方法实施例2的流程示意图,该方法通过对安卓Android操作系统底层软件进行改造,应用于运行Android操作系统的移动终端,该方法具体包括如下步骤:
S401:接收发送方发送的加密后的RTP数据包;所述加密后的RTP数据包中包括加密后的RTP负载。
S402:确定解密密钥段。
所述确定解密密钥段具体包括:
获取当前密钥组号;
读取所述加密后的RTP数据包中的序列号,该序列号用于表示密钥段号;
计算所述加密后的RTP数据包中的序列号与在接收所述加密后的RTP数据包之前接收的上一加密后的RTP数据包中的序列号的差值;
判断所述差值是否在预设范围内;
当所述差值在预设范围内时,从所述当前密钥组号对应的密钥组中选取解密密钥段;
当所述差值不在预设范围内时,从所述当前密钥组号加一获得的新密钥组号对应的密钥组中选取解密密钥段。
S403:用所述解密密钥段对所述加密后的RTP负载进行解密,获取初始RTP负载,并用所述初始RTP负载替换所述加密后的RTP负载,将发送方的初始RTP数据包恢复。
需要说明的是,接收方对加密后的RTP数据包进行解密的过程为发送方对RTP数据包进行加密的过程的逆过程,本实施例不再赘述,具体请参见以上描述的发送方对RTP数据包进行加密的过程的相关论述。
需要说明的是,防木马录音部分与VoIP的RTP包加解密部分相对独立,在保密通话的双方移动终端上,防木马录音功能都可以存在。即使不拨打VoIP电话而是普通电话时,防木马录音功能同样可以保护普通电话内容不被木马窃取。
RTP语音数据包加密从数据链路角度确保了VoIP端到端通话内容的安全,防木马录音部分从移动终端本身角度强化了通话安全。二者配合,使得本方法能够提供一种非常安全的VoIP保密通话方式。
请参阅附图8,为本发明实施例公开的一种移动终端实施例3的结构示意图,该移动终端应用安卓Android操作系统,具体包括如下单元:
初始RTP数据包获取单元11,用于获取初始实时传输协议RTP数据包,所述初始RTP数据包中包括初始RTP负载;
加密密钥段确定单元12,用于确定加密密钥段;
加密单元13,用于用所述加密密钥段对所述初始RTP负载进行加密,获取加密后的RTP负载,并用所述加密后的RTP负载替换所述初始RTP负载,生成加密后的RTP数据包;
发送单元14,用于将所述加密后的RTP数据包发送至接收方;
接收单元15,用于接收发送方发送的加密后的RTP数据包;所述加密后的RTP数据包中包括加密后的RTP负载;
解密密钥段确定单元16,用于确定解密密钥段;
解密单元17,用于用所述解密密钥段对所述加密后的RTP负载进行解密,获取初始RTP负载,并用所述初始RTP负载替换所述加密后的RTP负载,将发送方的初始RTP数据包恢复。
所述加密密钥段确定单元12具体用于:
获取当前密钥组号;
读取所述初始RTP数据包中的序列号,该序列号用于表示密钥段号;
计算所述初始RTP数据包中的序列号与在获取所述初始RTP数据包之前获取的上一初始RTP数据包中的序列号的差值;
判断所述差值是否在预设范围内;
当所述差值在预设范围内时,从所述当前密钥组号对应的密钥组中选取加密密钥段;
当所述差值不在预设范围内时,从所述当前密钥组号加一获得的新密钥组号对应的密钥组中选取加密密钥段。
所述解密密钥段确定单元16具体用于:
获取当前密钥组号;
读取所述加密后的RTP数据包中的序列号,该序列号用于表示密钥段号;
计算所述加密后的RTP数据包中的序列号与在接收所述加密后的RTP数据包之前接收的上一加密后的RTP数据包中的序列号的差值;
判断所述差值是否在预设范围内;
当所述差值在预设范围内时,从所述当前密钥组号对应的密钥组中选取解密密钥段;
当所述差值不在预设范围内时,从所述当前密钥组号加一获得的新密钥组号对应的密钥组中选取解密密钥段。
所述移动终端还包括:
初始RTP数据包生成单元,用于屏蔽Android操作系统底层原录音接口;新建一个供应用层程序调用的专用录音接口;判断调用所述专用录音接口的所述VoIP通话对应的应用程序是否为所述专用录音接口的合法应用程序;当调用所述专用录音接口的所述VoIP通话对应的应用程序为所述专用录音接口的合法应用程序时,通过所述专用录音接口调用Android操作系统本地框架层中的录音功能,以生成所述初始RTP数据包;
所述判断调用所述专用录音接口的所述VoIP通话对应的应用程序是否为所述专用录音接口的合法应用程序,具体包括:
如果调用所述专用录音接口的所述VoIP通话对应的应用程序在所述专用录音接口的合法应用程序白名单内,则判断调用所述专用录音接口的所述VoIP通话对应的应用程序为所述专用录音接口的合法应用程序;
或,如果调用所述专用录音接口的所述VoIP通话对应的应用程序不在所述专用录音接口的不合法应用程序黑名单内,则判断调用所述专用录音接口的所述VoIP通话对应的应用程序为所述专用录音接口的合法应用程序。
需要说明的是,上述各个单元的具体功能实现已在方法实施例部分进行详细描述,本实施例不再赘述,具体请参见方法实施例的相关部分。
综上所述:
本发明公开了一种基于VoIP通话的方法及移动终端,获取初始实时传输协议RTP数据包,所述初始RTP数据包中包括初始RTP负载;确定加密密钥段;用加密密钥段对初始RTP负载进行加密,获取加密后的RTP负载,并用加密后的RTP负载替换初始RTP负载,生成加密后的RTP数据包;将加密后的RTP数据包发送至接收方。上述基于VoIP通话的方法,无需对移动终端进行硬件改造,只通过对Android操作系统底层进行软件改造,将VoIP通话加密功能固化为Android操作系统的一部分,即可保障VoIP通话的安全,成本较低,而且,上述方法通用性较高,适用于所有的Android操作系统的移动终端。另外,本发明实施例还公开了一种防止木马非法录音的方式,使攻击者无法借助木马对VoIP通话实施窃听。
RTP数据包加密传输,解决了语音数据传输过程中的保密问题;防木马录音,解决了语音数据在终端的保密问题。二者结合,可以很好实现整个保密通话过程的信息安全。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
综上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照上述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种基于网络电话VoIP通话的方法,其特征在于,通过对安卓Android操作系统底层软件进行改造,应用于运行Android操作系统的移动终端,所述方法包括:
获取初始实时传输协议RTP数据包,所述初始RTP数据包中包括初始RTP负载;
确定加密密钥段;
用所述加密密钥段对所述初始RTP负载进行加密,获取加密后的RTP负载,并用所述加密后的RTP负载替换所述初始RTP负载,生成加密后的RTP数据包;
将所述加密后的RTP数据包发送至接收方;
所述确定加密密钥段具体包括:
获取当前密钥组号;
读取所述初始RTP数据包中的序列号,所述序列号用于表示密钥段号;
根据所述当前密钥组号和所述序列号确定加密密钥段。
2.根据权利要求1所述的方法,其特征在于,所述根据所述当前密钥组号和所述序列号确定加密密钥段具体包括:
计算所述初始RTP数据包中的序列号与在获取所述初始RTP数据包之前获取的上一初始RTP数据包中的序列号的差值;
判断所述差值是否在预设范围内;
当所述差值在预设范围内时,从所述当前密钥组号对应的密钥组中选取加密密钥段;
当所述差值不在预设范围内时,从所述当前密钥组号加一获得的新密钥组号对应的密钥组中选取加密密钥段。
3.根据权利要求1或2所述的方法,其特征在于,在获取初始实时传输协议RTP数据包之前,所述方法还包括:
屏蔽Android操作系统底层原录音接口;
新建一个供应用层程序调用的专用录音接口;
判断调用所述专用录音接口的所述VoIP通话对应的应用程序是否为所述专用录音接口的合法应用程序;
当调用所述专用录音接口的所述VoIP通话对应的应用程序为所述专用录音接口的合法应用程序时,通过所述专用录音接口调用Android操作系统本地框架层中的录音功能,以生成所述初始RTP数据包。
4.根据权利要求3所述的方法,其特征在于,所述判断调用所述专用录音接口的所述VoIP通话对应的应用程序是否为所述专用录音接口的合法应用程序,具体包括:
如果调用所述专用录音接口的所述VoIP通话对应的应用程序在所述专用录音接口的合法应用程序白名单内,则判断调用所述专用录音接口的所述VoIP通话对应的应用程序为所述专用录音接口的合法应用程序;
或,如果调用所述专用录音接口的所述VoIP通话对应的应用程序不在所述专用录音接口的不合法应用程序黑名单内,则判断调用所述专用录音接口的所述VoIP通话对应的应用程序为所述专用录音接口的合法应用程序。
5.一种基于网络电话VoIP通话的方法,其特征在于,通过对安卓Android操作系统底层软件进行改造,应用于运行Android操作系统的移动终端,所述方法包括:
接收发送方发送的加密后的RTP数据包;所述加密后的RTP数据包中包括加密后的RTP负载;
确定解密密钥段;
用所述解密密钥段对所述加密后的RTP负载进行解密,获取初始RTP负载,并用所述初始RTP负载替换所述加密后的RTP负载,将发送方的初始RTP数据包恢复;
所述确定解密密钥段具体包括:
获取当前密钥组号;
读取所述加密后的RTP数据包中的序列号,所述序列号用于表示密钥段号;
根据所述序列号和当前密钥组号确定解密密钥段。
6.根据权利要求5所述的方法,其特征在于,所述根据所述序列号和当前密钥组号确定解密密钥段具体包括:
计算所述加密后的RTP数据包中的序列号与在接收所述加密后的RTP数据包之前接收的上一加密后的RTP数据包中的序列号的差值;
判断所述差值是否在预设范围内;
当所述差值在预设范围内时,从所述当前密钥组号对应的密钥组中选取解密密钥段;
当所述差值不在预设范围内时,从所述当前密钥组号加一获得的新密钥组号对应的密钥组中选取解密密钥段。
7.一种移动终端,其特征在于,应用安卓Android操作系统,所述移动终端包括:
初始RTP数据包获取单元,用于获取初始实时传输协议RTP数据包,所述初始RTP数据包中包括初始RTP负载;
加密密钥段确定单元,用于确定加密密钥段;
加密单元,用于用所述加密密钥段对所述初始RTP负载进行加密,获取加密后的RTP负载,并用所述加密后的RTP负载替换所述初始RTP负载,生成加密后的RTP数据包;
发送单元,用于将所述加密后的RTP数据包发送至接收方;
接收单元,用于接收发送方发送的加密后的RTP数据包;所述加密后的RTP数据包中包括加密后的RTP负载;
解密密钥段确定单元,用于确定解密密钥段;
解密单元,用于用所述解密密钥段对所述加密后的RTP负载进行解密,获取初始RTP负载,并用所述初始RTP负载替换所述加密后的RTP负载,将发送方的初始RTP数据包恢复;
所述加密密钥段确定单元具体用于:获取当前密钥组号;读取所述初始RTP数据包中的序列号,所述序列号用于表示密钥段号;根据所述当前密钥组号和所述序列号确定加密密钥段。
8.根据权利要求7所述的移动终端,其特征在于,所述加密密钥段确定单元根据所述当前密钥组号和所述序列号确定加密密钥段,具体包括:
计算所述初始RTP数据包中的序列号与在获取所述初始RTP数据包之前获取的上一初始RTP数据包中的序列号的差值;
判断所述差值是否在预设范围内;
当所述差值在预设范围内时,从所述当前密钥组号对应的密钥组中选取加密密钥段;
当所述差值不在预设范围内时,从所述当前密钥组号加一获得的新密钥组号对应的密钥组中选取加密密钥段。
9.根据权利要求7所述的移动终端,其特征在于,所述解密密钥段确定单元具体用于:
获取当前密钥组号;
读取所述加密后的RTP数据包中的序列号,所述序列号用于表示密钥段号;
计算所述加密后的RTP数据包中的序列号与在接收所述加密后的RTP数据包之前接收的上一加密后的RTP数据包中的序列号的差值;
判断所述差值是否在预设范围内;
当所述差值在预设范围内时,从所述当前密钥组号对应的密钥组中选取解密密钥段;
当所述差值不在预设范围内时,从所述当前密钥组号加一获得的新密钥组号对应的密钥组中选取解密密钥段。
10.根据权利要求7~9任意一项所述的移动终端,其特征在于,所述移动终端还包括:
初始RTP数据包生成单元,用于屏蔽Android操作系统底层原录音接口;新建一个供应用层程序调用的专用录音接口;判断调用所述专用录音接口的VoIP通话对应的应用程序是否为所述专用录音接口的合法应用程序;当调用所述专用录音接口的所述VoIP通话对应的应用程序为所述专用录音接口的合法应用程序时,通过所述专用录音接口调用 Android操作系统本地框架层中的录音功能,以生成所述初始RTP数据包;
所述判断调用所述专用录音接口的所述VoIP通话对应的应用程序是否为所述专用录音接口的合法应用程序,具体包括:
如果调用所述专用录音接口的所述VoIP通话对应的应用程序在所述专用录音接口的合法应用程序白名单内,则判断调用所述专用录音接口的所述VoIP通话对应的应用程序为所述专用录音接口的合法应用程序;
或,如果调用所述专用录音接口的所述VoIP通话对应的应用程序不在所述专用录音接口的不合法应用程序黑名单内,则判断调用所述专用录音接口的所述VoIP通话对应的应用程序为所述专用录音接口的合法应用程序。
CN201610818919.0A 2016-09-12 2016-09-12 基于VoIP通话的方法及移动终端 Active CN107819725B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610818919.0A CN107819725B (zh) 2016-09-12 2016-09-12 基于VoIP通话的方法及移动终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610818919.0A CN107819725B (zh) 2016-09-12 2016-09-12 基于VoIP通话的方法及移动终端

Publications (2)

Publication Number Publication Date
CN107819725A CN107819725A (zh) 2018-03-20
CN107819725B true CN107819725B (zh) 2020-11-27

Family

ID=61601353

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610818919.0A Active CN107819725B (zh) 2016-09-12 2016-09-12 基于VoIP通话的方法及移动终端

Country Status (1)

Country Link
CN (1) CN107819725B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115914178B (zh) * 2023-01-10 2023-05-02 广州讯鸿网络技术有限公司 一种voip实时音视频通话方法、系统及装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003085321A (ja) * 2001-09-11 2003-03-20 Sony Corp コンテンツ利用権限管理システム、コンテンツ利用権限管理方法、および情報処理装置、並びにコンピュータ・プログラム
US7730309B2 (en) * 2005-07-27 2010-06-01 Zimmermann Philip R Method and system for key management in voice over internet protocol
CN101471769B (zh) * 2007-12-28 2011-12-28 北京大唐高鸿数据网络技术有限公司 一种适于VoIP媒体传输的加解密方法
CN102111416B (zh) * 2011-02-28 2013-07-03 南京邮电大学 一种用于VoIP的实时数据加密传输方法
CN103974241B (zh) * 2013-02-05 2018-01-16 东南大学常州研究院 一种面向Android系统移动终端的语音端到端加密方法
CN104158788B (zh) * 2013-05-13 2017-08-29 普天信息技术研究院有限公司 一种端到端传输数据的方法
CN104219213A (zh) * 2013-06-03 2014-12-17 东南大学常州研究院 一种面向Android系统的端到端语音加密方法
CN104243144B (zh) * 2013-06-08 2018-03-13 科大国盾量子技术股份有限公司 一种基于Android智能移动终端的通信密钥分配方法
CN103684787B (zh) * 2013-12-13 2018-01-16 北京大学深圳研究生院 基于网络传输的数据包的加密解密方法及终端
CN105471831B (zh) * 2014-09-15 2019-05-10 杭州海康威视数字技术股份有限公司 一种对实时传输协议数据包进行加密的方法和装置
CN105792193B (zh) * 2016-02-26 2019-02-26 东南大学常州研究院 基于iOS操作系统的移动终端语音端到端加密方法

Also Published As

Publication number Publication date
CN107819725A (zh) 2018-03-20

Similar Documents

Publication Publication Date Title
US11943262B2 (en) Securing method for lawful interception
US8811609B2 (en) Information protection system and method
CN109345245B (zh) 基于区块链的短信验证方法、设备、网络及存储介质
US9083509B2 (en) System and method of lawful access to secure communications
US8694789B2 (en) System and method for generating a non-repudiatable record of a data stream
CA2829233C (en) Method and system for hypertext transfer protocol digest authentication
US20120164981A1 (en) Method for communicating data between a secure element and a network access point and a corresponding secure element
US20200220725A1 (en) System and method for authenticating a caller of a telephonic call
CN112823503B (zh) 一种数据访问方法、数据访问装置及移动终端
CN103067174A (zh) 一种在移动操作系统中完成数字签名的方法和系统
CN112929339B (zh) 一种保护隐私的消息传送方法
CN107465504A (zh) 一种提高密钥安全性的方法及装置
CN113727058A (zh) 一种多媒体会议数据处理方法、系统、设备及存储介质
CN105704711A (zh) 一种保证通话安全的方法、装置及用户终端
CN114630290A (zh) 语音加密通话的密钥协商方法、装置、设备及存储介质
Ntantogian et al. A survey of voice and communication protection solutions against wiretapping
CN107819725B (zh) 基于VoIP通话的方法及移动终端
CN108270917B (zh) 一种加密智能手机
KR20180050910A (ko) 통신 시스템에서 발신자를 인증하기 위한 장치 및 방법
EP2809045B1 (en) Information security attachment device for voice communication and information security method for voice communication using the same
KR101329789B1 (ko) 모바일 디바이스의 데이터베이스 암호화 방법
CN107154920B (zh) 安全信息的加密方法、解密方法及用以接收安全信息的接收装置
CN106304044B (zh) 一种增强通话安全性的方法、装置及通信终端
WO2020057360A1 (zh) 一种提高终端安全性的方法及装置、计算机可读存储介质
CN111654731A (zh) 密钥信息传输方法、装置、电子设备及计算机存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220130

Address after: 250101 7th floor, block B, Qilu Software Park building, 1768 Xinluo street, high tech Zone, Jinan City, Shandong Province

Patentee after: SHANDONG INSTITUTE OF QUANTUM SCIENCE AND TECHNOLOGY Co.,Ltd.

Patentee after: Anhui GuoDun quantum Cloud Data Technology Co., Ltd

Address before: 250101 block B, information and Communication Research Institute, 1768 Xinjie street, Ji'nan new and high tech Zone, Shandong.

Patentee before: SHANDONG INSTITUTE OF QUANTUM SCIENCE AND TECHNOLOGY Co.,Ltd.