蔣 華,李康康,胡榮磊
(1.北京電子科技學(xué)院 通信工程系,北京 100070;2.西安電子科技大學(xué) 通信工程學(xué)院,陜西 西安 710071)
基于OMAP-L137的嵌入式通信終端方案的設(shè)計(jì)與測試
蔣 華1,李康康2,胡榮磊1
(1.北京電子科技學(xué)院 通信工程系,北京 100070;2.西安電子科技大學(xué) 通信工程學(xué)院,陜西 西安 710071)
文中主要研究了一種通信終端安全方案的設(shè)計(jì)和相應(yīng)的數(shù)據(jù)測試。安全方案在嵌入式硬件平臺上實(shí)現(xiàn)。嵌入式平臺是基于OMAP-L137雙核芯片設(shè)計(jì)的,芯片包含ARM和DSP兩部分。其中DSP端結(jié)合SSX0912協(xié)助處理器負(fù)責(zé)對密碼算法進(jìn)行處理,ARM端負(fù)責(zé)通信機(jī)制的控制:通過 ARM端的USB接口和外界通信終端進(jìn)行數(shù)據(jù)測試。
通信終端;嵌入式;數(shù)據(jù)測試;OMAP-L137
隨著網(wǎng)絡(luò)和通信終端設(shè)備的普及,各種通信終端設(shè)備如PC機(jī)、手機(jī)、掌上電腦等如雨后春筍般爆發(fā)了出來,人們在辦公室、公交、地鐵,甚至將來可能在飛機(jī)上可以不受限制的接入互聯(lián)網(wǎng),我們使用網(wǎng)絡(luò)進(jìn)行電子支付,注冊社交賬號,玩電子游戲,和朋友共享我們的生活,甚至有時(shí)候上傳自己的私密信息等等行為;不得不說這拉近了人們間的距離,方便了人們的生活。
然而,在人們享受網(wǎng)絡(luò)帶來的便利性的同時(shí),卻面臨著很大的網(wǎng)絡(luò)安全問題。我們?nèi)粘I钪械男畔踩?、私密性、可靠性已?jīng)變得十分的脆弱。信息安全帶來的安全隱患為用戶帶來了很大的損失針對這些問題,文中提出了一種應(yīng)對通信終端安全的方案,并進(jìn)行了通信測試。
OMAP-L137是由美國德州儀器推出的一款基于ARM926EJ-S核心和一個C674x定點(diǎn)/浮點(diǎn)DSP核心的低功耗應(yīng)用處理器,可實(shí)現(xiàn)456 MHz的內(nèi)核頻率。DSP可完成高精、高強(qiáng)度的實(shí)時(shí)處理計(jì)算,同時(shí)ARM來實(shí)施VxWorks、WinCE或Linux等各種高級操作系統(tǒng)。
本方案設(shè)計(jì)選擇OMAP-L137作為信號處理核心處理芯片,以北京瑞泰創(chuàng)新公司銷售的OMAP-L137最小系統(tǒng)板為核心進(jìn)行底板設(shè)計(jì),選用主控芯片滿足方案設(shè)計(jì)要求。
SSX0912安全模塊采用SSX0912安全芯片為核心設(shè)計(jì),可實(shí)現(xiàn)SM2,SM3,SM4等國際密碼算法。為了方便應(yīng)用,SSX0912安全模塊設(shè)計(jì)有UART總線接口、RS232總線接口和SPI總線接口,用戶可根據(jù)應(yīng)用選擇不同接口。
針對安全應(yīng)用,SSX0912安全模塊參照X.509V3的證書格式,自定義了證書結(jié)構(gòu),在模塊內(nèi)加入了證書和公鑰存儲,方便密鑰協(xié)商和身份認(rèn)證。
3.1 硬件總體結(jié)構(gòu)
硬件平臺的通信機(jī)理是,通過OMAPL137上的 ARM+ DSP處理器,結(jié)合 Linux嵌入式操作系統(tǒng),通過SPI接口調(diào)用 SSX0912的密碼算法,然后把系統(tǒng)的生成數(shù)據(jù)通過 USB接口和外界終端設(shè)備連接起來,實(shí)現(xiàn)通信終端的安全需求,保證通信終端通信的安全性。其中 DSP處理器負(fù)責(zé)密碼算法的實(shí)現(xiàn),ARM處理器負(fù)責(zé)系統(tǒng)機(jī)制的控制,ARM和Linux之間的通信方式是通過TI公司的DSPLINK技術(shù)??傮w結(jié)構(gòu)圖1如下:
圖1 硬件結(jié)構(gòu)圖
SSX0912安全芯片是協(xié)助處理器,對密碼算法進(jìn)行運(yùn)算,并且存儲算法生成的數(shù)據(jù)。本方案中使用的通信終端是Linux操作系統(tǒng)。USB接口是本方案的核心之一,用于與外界數(shù)據(jù)交互,也就是用來進(jìn)行數(shù)據(jù)的測試。
3.2 軟件設(shè)計(jì)
3.2.1 平臺介紹
在本方案的Linux開發(fā)環(huán)境中,OMAP-L137上電后,依次啟動的程序是:dsp-nand-ais,UBl,UBoot,Linux Kernel(內(nèi)核),Linux Filesystem(文件系統(tǒng))。其中內(nèi)核指的是uImage,是壓縮了的Linux嵌入式內(nèi)核,為操作系統(tǒng)的核心。文件系統(tǒng)是RAMDISK文件系統(tǒng),是基于BusyBox文件系統(tǒng)生成的位于RAM中的文件系統(tǒng)。
Linux內(nèi)核 uImage和文件系統(tǒng) ramdisk.gz文件生成以后,通過 U盤或者超級終端,在 Uboot的引導(dǎo)下,先下載內(nèi)核到地址 0xc0700000,然后再下載文件系統(tǒng)到0xc1180000地址中。
3.2.2 USB設(shè)備驅(qū)動
本方案中是通過ARM端的USB接口和外界進(jìn)行通信的,所以USB設(shè)備驅(qū)動的開發(fā)便成了必不可少的一部分。
由于方案中要和通信終端通過 USB接口通信,并且OMAP-L137在通信終端看來是一個 USB從設(shè)備(通信終端是主模式),所以要重點(diǎn)探討USB gadget的驅(qū)動開發(fā)。為了開發(fā)方便,在主機(jī)端盡量少些或者不寫驅(qū)動程序,增強(qiáng)方案的通用性,結(jié)合Linux設(shè)備驅(qū)動程序gadget_serial.c源文件進(jìn)行設(shè)備端驅(qū)動程序的改寫。
通過分析Linux USB設(shè)備端驅(qū)動程序,結(jié)合 USB設(shè)備程序 zero模塊進(jìn)行分析,Linux虛擬串口設(shè)備驅(qū)動程序的程序框架和其它設(shè)備驅(qū)動的程序框架是一樣的,所不同的是在設(shè)備驅(qū)動程序里添加一些支持字符處理的接口函數(shù)。
添加完一些必要的函數(shù)后對Linux內(nèi)核進(jìn)行編譯,生成了g_serial.ko文件,將此文件拷貝到開發(fā)板文件系統(tǒng)中,通過insmod命令加載,通過命令#cat/proc/devices可以查看到,然后用 mknod/dev/usb_serial c 127 0在 dev下建立節(jié)點(diǎn)usb_serial,此時(shí)在開發(fā)板中就有了USB gadget的驅(qū)動。這樣,再通過配置通信終端(Linux主機(jī))的CDC-ACM驅(qū)動,就可以實(shí)現(xiàn)主機(jī)和設(shè)備之間(通過USB接口)的數(shù)據(jù)通信了。
3.3 密鑰交換過程
為了確保通信終端與開發(fā)板之間能夠安全通信,要用到密鑰交換原理,具體流程圖如圖2所示:
圖2 密鑰交換原理
過程(1):B用A的公鑰加密會話密鑰和數(shù)據(jù),然后一起發(fā)送給A。
過程(2):A用自己的私鑰進(jìn)行解密得到了會話密鑰和數(shù)據(jù),然后用會話密鑰對同時(shí)發(fā)送過來的數(shù)據(jù)進(jìn)行加密,緊接著A將加密后的數(shù)據(jù)用B的公鑰加密后發(fā)給B。
過程(3):B在收到A發(fā)過來的數(shù)據(jù)后用自己的私鑰解密,得到過程(2)用會話密鑰加密過的數(shù)據(jù)。在確定加密數(shù)據(jù)數(shù)據(jù)無誤后,重復(fù)過程(1)。
過程(4):A用自己的私鑰進(jìn)行解密得到了新的會話密鑰和加密后的數(shù)據(jù),然后用這個會話密鑰對數(shù)據(jù)進(jìn)行解密,最后發(fā)送給B,再和之前的未加密的數(shù)據(jù)進(jìn)行比較。
在兩端的USB驅(qū)動成功加載后,就可以在次平臺上進(jìn)行測試了。測試的程序是由OMAP-l137端和通信終端兩部分組成。
4.1 通信終端程序
此程序在Linux操作系統(tǒng)(即通信終端)上運(yùn)行,主要包括發(fā)送會話密鑰和接收數(shù)據(jù)部分,程序主要函數(shù)有:
程序中的會話密鑰是隨機(jī)定義的。將程序在Linux系統(tǒng)上編譯好生成可執(zhí)行文件test。
4.2 OMAP-l137程序
程序在開發(fā)板上運(yùn)行,主要包括數(shù)據(jù)的加解密、數(shù)據(jù)的接收發(fā)送部分,主要函數(shù)有:
將程序用交叉編譯環(huán)境編譯后生成可執(zhí)行文件 board,下載到開發(fā)板中,在超級終端上運(yùn)行即可。
4.3 測試結(jié)果
數(shù)據(jù)測試的結(jié)果如圖3、4所示。
開發(fā)板收到的明文和加密后的密文:
圖3 開發(fā)板收到的明文和加密后的密文
通信終端收到的密文和解密后的明文:
圖4 通信終端收到的密文和解密后的明文
通過以上兩張圖能說明數(shù)據(jù)傳輸過程沒有出現(xiàn)問題。通過和加密之前數(shù)據(jù)對比,發(fā)現(xiàn)數(shù)據(jù)完全一樣,證明測試過程是正確的。
文中主要結(jié)合密碼學(xué)和通信學(xué)相關(guān)知識,在OMAP-L137嵌入式平臺下設(shè)計(jì)了一種安全方案,并成功的進(jìn)行了數(shù)據(jù)通信測試。通過測試結(jié)果說明此安全方案通用性強(qiáng),能夠保護(hù)用戶的私密信息,并且可以滿足一些終端設(shè)備的要求。以后還可以進(jìn)行密鑰管理方面的研究和探索,具有一定的研究意義和前景。
[1]黃少濱.嵌入式系統(tǒng)USB Gadget驅(qū)動研究與實(shí)現(xiàn)[D].廣州:華南理工大學(xué),2012.
[2]李彥林.基于OMAPL137嵌入式平臺的手指靜脈身份識別系統(tǒng)的研制[D].重慶:重慶理工大學(xué),2011.
[3]王晨光,喬樹山,黑勇.分組密碼算法SM4的低復(fù)雜度實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2013,39(7):177-180.
[4]楊波.現(xiàn)代密碼學(xué)[M].北京:清華大學(xué)出版社,2003:167-169.
[5]郭敬一.基于WINCE的嵌入式移動通信終端研究與開發(fā)[D].太原:中北大學(xué),2007.
[6]劉澤華.基于OMAPL138的便攜式腦電信號檢測系統(tǒng)研究[D].天津:天津職業(yè)技術(shù)師范大學(xué),2014.
[7]袁巍.AES算法的設(shè)計(jì)原則與其密鑰擴(kuò)展算法的改進(jìn)[D].長春:吉林大學(xué),2010.
[8]夏偉.移動終端中的通信安全技術(shù)研究[D].北京:北京郵電大學(xué),2013.
Design and test of OMAP-L137’s embedded communications terminal program
JIANG Hua1,LI Kang-kang2,HU Rong-lei1
(1.Department of Communication Engeering,Beijing Electronic Science and Technology Institute,Beijing 100070,China;2.School of Communication Engineering,Xidian University,Xi’an 710071,China)
This paper studies the design and the corresponding data to test a communication terminal safety programs.Security program implemented on an embedded hardware platform.Embedded platform OMAP-L137 dual-core chip design,the chip includes ARM and DSP in two parts.Wherein the DSP processor is responsible for assisting terminal binding SSX0912 cryptographic algorithms for processing,ARM side is responsible for controlling the communication mechanism:Data tested ARM side USB interface and external communication terminal.
communication terminals;embedded;data test;OMAP-L137
TN918.4
A
1674-6236(2016)14-0157-03
2015-08-10 稿件編號:201508045
蔣 華(1962—),男,山西大同人,碩士,教授。研究方向:信息論與編碼,通信技術(shù)。