APP下载

基于Android的电视终端开机认证系统设计

2014-07-02陈褒丹张永辉

电视技术 2014年13期
关键词:应用程序终端服务器

张 锋,陈褒丹,张永辉

(海南大学信息科学技术学院,海南海口570228)

基于Android的电视终端开机认证系统设计

张 锋,陈褒丹,张永辉

(海南大学信息科学技术学院,海南海口570228)

提出基于智能电视一体机的开机认证系统设计,包括3个模块,分别是终端激活模块、终端登录模块以及用户自动登录模块。在终端激活模块和终端登录模块设计过程中,利用MD5算法计算出终端登录模块和用户登录模块访问网络服务器所需的终端令牌,进而获取认证信息。利用数据库技术将这些认证信息存储到相应的数据库中去,并通过基于该数据库jar包的形式为商店产品提供获取这些认证信息的API方法。系统测试表明,该设计实现了智能TV终端与网络服务器之间的信息认证交互,数据正确,实时可靠。同时,为第三方商店产品提供的API方法正确可行,测试效果良好。

Android;终端;服务器;认证;MD5;HTTPS/HTTP;数据库

随着Android平台的开放和不断发展,基于Android操作系统的智能电视终端已经成为继手机、平板电脑之后的又一个新的发展领域。许多网络服务商正以Android TV平台为载体,不断推出基于自己网络服务的商店产品。目前,TCL、创维、海信等知名品牌电视机厂商已推出商用化的Android TV。智能电视的发展又分为机顶盒加显示屏与电视一体机两个方向。一体机实际上是将电视机(显示屏)和机顶盒合二为一。

市场上虽然已经存在大量的安卓机顶盒,但是大多机顶盒厂商为了节省生产成本并更好地抢占市场份额,选择向用户提供的都是市场上已经拥有的免费的应用软件资源。基于此,多数机顶盒厂商在产品的设计过程中,并没有过多考虑机顶盒的开机认证[1]。这给用户使用终端产品获取更好体验性的资费资源带来了不便,也埋下了用户数据泄露的安全隐患。

与机顶盒相比,电视终端一体机的出现,将机顶盒和显示终端进行整合。电视终端采用了开机认证环节,能够使用户在使用服务器提供的应用软件资源时候获得更好的用户体验。

与此同时,相对于现有的认证方案,本论文在电视终端一体机的开机认证设计中考虑到了数据的安全性,保证了每一台电视终端设备在资费服务器端的认证是唯一的,这样能够有效地防止没有获得认证的产品盗取和访问服务器端的资费资源。另外,本论文的电视终端开机认证中,还考虑了电视终端设备登录数据的实时性,有效地防止了电视设备激活的失效,从而保证了用户使用软件资源的有效性。

1 Android系统架构

Android系统是基于Linux平台的开源操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。智能TV商家可以免费获取Android源代码,对源代码进行修改或者添加,实现自己终端产品所需要的功能。Android系统架构[2]从下到上共4层,分别包括Linux内核、库和运行时、Android框架层和应用程序层。具体如图1所示。

图1 Android系统体系结构

在其系统框架的第1、第2层之间划分内核空间和用户空间,第2、第3层之间是本地代码层和Java代码接口层,第3、第4层之间是Android框架层和应用程序两层Java程序的接口,Android的系统API属于其中的一部分。

1.1 Linux内核

Android驱动程序开发与典型的Linux驱动程序开发一样。Android内核使用一个专门的Linux内核版本,由标准的Linux内核修改而来,继承了Linux内核的许多优点,保留了Linux内核的主要架构。Android在文件系统、内存管理、进程间通信机制与电源管理方面进行了修改,添加了自己的相关驱动程序和新功能,应用性和扩展性较强。本文中采用的Android 4.2内核,通过编写各个模块代码,并放进源码包,使用Android.mk[3]文件进行编译,并生成相应的APK文件,如图2所示。

图2 源码编译生成APK应用文件(截图)

将这个APK程序和下文的另一个测试APK一起使用ADB工具push到Android TV指定的system/data目录下,重启TV,然后运行测试APK即可观察到测试效果。

1.2 库和运行时

Android将该层划分为两个部分,分别为库和运行时。库主要由C/C++语言实现,这些库则通过应用程序框架层为Android开发人员开发应用程序提供服务;运行时主要指Dalvik。基于Android开发的应用程序都是在Dalvik虚拟机中运行的。另外,Dalvik虚拟机是基于寄存器的,可以根据硬件实现更大的优化。

1.3 Android框架层

应用程序框架层是Android系统框架的重要组成部分,该层为上层应用程序的开发人员提供APIs,它提供了应用程序所需要的各种组件。Android框架层中几个重要的部分为Activity,Service,BroadcastReceiver,Content Provider[4]和Intent and Intent Filter。

1)Activity是Android应用程序最基本的组件,Android应用程序每个屏幕显示都是通过继承Activity来实现的,用户可以通过这个屏幕实现想要的操作。一个应用程序可以由多个Activity组成。通常情况下,被指定为“主”的Activity,是在第一次启动应用程序时,呈现给用户在应用程序中的一个Activity。每一个Activity就可以开启另一个Activity,以执行不同的动作。

2)Service服务是应用程序组件,可以在后台执行长时间的操作,并且不提供用户界面,其他应用程序可以启动一个服务,即使用户切换到其他的应用程序,这个服务仍然会继续在后台运行,一个组件可以绑定到服务实现交互操作和进程间通信。本认证系统设计中创建了bootService服务,并在该服务中实现了终端激活功能、终端登录功能和用户自动登录功能。

3)BroadcastReceiver广播接收器用来广播通知,它可以同时向多个对象广播他们需要的信息,也可以启动Activity或Service来响应收到的信息。因此,本设计采用广播机制,启动bootService服务,从而启动服务中实现的各个功能模块。

4)一个应用程序只可以访问自己创建的数据,然而,有时候需要在不同的应用程序间进行数据共享,这时候Content Provider则为不同应用程序间数据共享架起了桥梁。因为本设计中的终端认证系统需要从网络服务器平台获取相应的数据,并且需要将这些数据提供给其他应用程序访问。所以,在设计中采用ContentProvider来存储从服务器返回的数据,并提供相应的jar包。这样,第三方应用程序就可以引用jar包中提供的API方法来访问数据库中的相关数据。

5)Intent提供一种绑定机制,负责两个不同组件之间的链接,如Activity。它可以完成应用程序多个屏幕显示界面之间的切换工作。

2 终端开机认证功能设计

如图3所示,终端认证接口系统在TV开机启动时,BroadcastReceiver接收到系统的启动消息boot_completed,从而启动一个bootService服务。在bootService服务中需要完成设备激活接口模块、设备登录模块和用户自动登录模块的设计。

它们分别负责终端设备的激活功能、设备登录功能以及获取设备许可证的功能。并将相关的信息保存在本地的数据库中,方便其他应用可以从本地数据库中取到认证时候所需要的信息。

图3 终端认证系统设计流程图

2.1 终端激活模块设计

终端激活模块功能,即从未连接过给定网络服务平台终端,在该网络平台登记状态为未激活,不能使用该网络服务平台提供的任何服务。因此,在新生产的终端第一次正常使用互联网功能时,需要调用终端激活接口,并将终端在该服务平台的登记状态修改为正常,同时获取访问其他接口必须的相关参数。在正常使用情况下,每个终端只调用一次该终端模块接口功能,正常使用后就无需再调用。

本环节中规避了采用HTTPPOST方法导致的数据泄露问题。而是在终端激活设计时,采用了HTTPSPOST的方法实现终端激活。HTTPS,超文本安全传输协议,是以安全为目标的HTTP[5]通道,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。SSL提供加密服务,防止数据中途被窃取,确保数据在传输过程中不被改变和泄露,保证了电视终端产品访问服务器资源的合法性。

HTTPS交互过程分为两个阶段,第一阶段是终端获取服务器的证书,并验证证书的内容是否可信,第二阶段是终端和服务器进行握手协议,并进行数据传输。在此设计中,终端向服务器发送终端设备ID号和终端设备类型devicemodel两个字段等JSON[6]格式数据,并指明其使用对称的密钥,通过服务器的证书来交换密钥,完成一次握手过程,终端与服务器通信数据如图4所示。

图4 终端与服务器通信数据(截图)

终端从服务器获取响应的JSON数据,并解析出服务器返回的设备编号dnum和设备激活码activekey。此外,还需要使用MD5算法[7],计算出终端令牌didtoken,并将其存储在ContentProvider数据库HuanData.db中,如图5所示。

图5 数据表中存储的数据(截图)

2.2 终端登录模块设计

终端登录模块实现每次终端关机并重新开机后,在正常使用互联网功能时,调用该模块接口,用来更新设备激活码activekey,防止activekey失效,保证了用户在电视终端使用软件资源的有效性。这里采用HTTP POST方法实现终端登录模块的设计。HTTP是超文本传输协议,它较HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者为80,后者为443。终端登录模块中终端与服务器数据通信过程如图6所示。

2.3 用户自动登录模块设计

在用户自动登录模块中,同样采用HTTP POST的方法实现终端与服务器之间的数据通信,通信过程如图7所示。该模块接口根据终端登录的信息来完成自动登录功能,从服务器获取到的数据中,解析出用户登录成功标识token和相应的账号信息huanid,并存储于数据库数据表中,如图8所示。此外还需要更新设备激活码activekey和终端令牌didtoken。

图6 终端与服务器数据通信(截图)

图7 终端与服务器通信过程

图8 数据表存储数据(截图)

比较图5和图8就可以发现数据已经更新到对应的数据表字段中去了。

2.4 MD5算法计算终端令牌

MD5即Message-Digest Algorithm 5(消息摘要算法五)的简称,是当前计算机领域用于确保信息传输完整一致而广泛使用的散列算法之一。

MD5算法是输入不定长度的信息,输出则是固定长度128 bit的算法。在MD5算法中,首先需要对信息进行填充,使其位长对512取余后的结果等于448。因此,信息的位长将被扩展至N×512+448,N为一个非负整数。

填充的具体方法是:首先,在信息后面填充一个1和若干个0,直到满足上面的条件时停止用0对信息进行填充。然后,在这个结果后面附加一个64位二进制,该64位二进制表示的是填充前信息的长度,如图9所示。

图9 信息长度填充

经过这两步的处理,现在的信息长度为(N+1)× 512 bit,即长度正好是512的整数倍数,满足了后续数据处理中对信息长度的要求。

MD5初始的128位值为初始链接变量[8],为4组8位16进制数,分别为:A=0x67452301,B=0xefcdab89,C= 0x98badcfe,D=0x98badcfe。将128 bit初始信息与分组后的N+1个512 bit数据进行HASH循环算法,得到新的128 bit新信息,依次循环,直到与第N组512 bit数据HASH算法后,就得到了最终的128 bit的MD5散列,总体流程如图10所示。

图10 MD5算法流程

通常128 bit的MD5散列值用32位的十六进制数字表示。在终端激活模块和终端登录模块设计中,终端令牌didtoken的获取就是采用MD5算法计算得到。先将设备ID号deviceid与设备激活码activekey直接拼接,再计算拼接后数据的MD5值,即为终端令牌didtoken,最后将其存储到相应的数据表字段当中去。

3 数据库存储设计

用户系统的相关信息在开机启动的过程中被保存在一个数据库中,该数据库设计的字段信息为:deviceid(设备唯一指定的ID号),dnum(设备唯一指定的编号),devicemodel(设备类型),activekey(设备激活码),didtoken (终端ID令牌),token(用户登录成功标识),huanid(设备登录特定网络服务的账号),TerminalactivatedTag(终端激活标志),如表1所示。

数据的存取过程如图11所示,存取字段信息如图5和图8所示。由于数据库数据需要被第三方的应用程序访问,所以采用ContentProvider组件,因为该组件可以在不同的应用程序之间进行数据共享。

表1 数据库数据表字段

图11 数据库数据读写访问

数据设计完成后,需要为此数据库提供可访问其数据的基于jar包的API调用方式,这样其他应用程序通过此API可以获取到数据库中存储的认证信息。这里设计了一个简单的测试程序HuanProviderTest.apk,在该APK中使用ContentResolver类对象resolver从数据库中获取相应的认证信息,API测试结果如图12所示。

图12 API测试结果(截图)

终端认证系统设计和测试结果表明:

1)终端开机,调用服务访问远程服务器,实现终端与服务器之间的通信,并从服务器获得对应的响应认证信息,通信数据正常,实时可靠。

2)终端认证信息数据库存储正常,设计对应的jar包能够为第三方应用程序提供获取数据库中认证信息的API方法,测试效果正确可靠。

4 结语

智能电视Android平台已经进入联网电视领域,不同的网络服务商都提供基于自己网络服务平台的一系列应用商店。要想正常使用这些应用商店里的产品,就不得不在终端向特定的网络服务平台获取信息认证,获取相应的权限认证后,才可以使用商店里的软件产品。本文正是基于Android平台,考虑了用户使用电视终端产品时的数据安全性和有效性。电视一体机终端完成了终端激活模块、终端登录模块以及用户自动登录模块的设计,从而设计出安全可靠的终端认证系统。通过终端认证系统获取到了网络服务器的一些认证信息,这为用户使用电视终端产品提供了更好的应用资源的体验性和访问数据的安全性。另外,应用该认证系统的终端除了基于Android操作系统的智能电视一体机终端外,还可以推广到机顶盒等智能终端领域。这在加强机顶盒以及智能电视一体机的管理与认证方面有着重要的意义。

[1]屈有军.智能互联网电视机顶盒管理及认证解决方案[J].通讯世界,2013,3(15):35-36.

[2]韩超.Android核心原理与系统级应用高效开发[M].北京:电子工业出版社,2012.

[3]王振丽.Android底层开发技术实战详解——内核、移植和驱动[M].北京:电子工业出版社,2012.

[4]罗升阳.Android系统源代码情景分析[M].北京:电子工业出版社,2012.

[5]林汝泽,徐媛媛,方凯,等.基于HTTP协议的Android手机数据同步实现[J].信息通信,2013,31(1):96.

[6]王晓禹,石丽.基于JSON实现Android智能终端与Web服务器“面向对象”的信息交换[J].数字技术与应用,2012,2(4):224-225.

[7]易红军,佘名高.MD5算法与数字签名[J].计算机与数字工程,2006,12(5):44-46.

[8]张裔智,赵毅,汤小斌.MD5算法研究[J].计算机科学,2008,12(7): 295-297.

Design of Term inal Boot Authentication System Based on Android TV

ZHANG Feng,CHEN Baodan,ZHANG Yonghui
(College of Information Science and Technology,Hainan University,Haikou 570228,China)

The design of terminal boot certification system based on intelligent TV is proposed in this paper,including threemodules,that is,the terminal activationmodule,the terminal loginmodule and the user automatic loginmodule.In the designing of terminalactivationmodule and terminal login module design,the MD5 algorithm is applied to calculate the terminal token which is needed when the terminal loginmodule and the user automatic login module access to the network service,getting the authentication information data.Furthermore,database technology is used to store the authentication information,and it provides the APImethod of obtaining the certification information for the store products through the format of package.The testing results of this system show that the design could correctly and reliably realize the interaction of authentication information between smart TV terminal and network server.Meanwhile,the APImethods provided for store product operate correctly and feasibly,and the test results are excellent.

Android;terminal;server;authentication;MD5;HTTPS/HTTP;database

TN87

A

�� 盈

2014-02-08

【本文献信息】张锋,陈褒丹,张永辉.基于Android的电视终端开机认证系统设计[J].电视技术,2014,38(13).

海南自然科学基金项目(613156);海南省引进集成创新项目(YJJC20130007)

张 锋(1988—),硕士生,主研嵌入式系统设计;

陈褒丹(1962— ),硕士生导师,主研无线通信、网络通信等;

张永辉(1974— ),博士生导师,主要研究方向为嵌入式系统、智能检测技术、数字信号处理等。

猜你喜欢

应用程序终端服务器
X美术馆首届三年展:“终端〉_How Do We Begin?”
通信控制服务器(CCS)维护终端的设计与实现
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
GSM-R手持终端呼叫FAS失败案例分析
中国服务器市场份额出炉
得形忘意的服务器标准
计算机网络安全服务器入侵与防御
ABB Elastimold 10kV电缆终端及中间接头
三星电子将开设应用程序下载商店