999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

SM2/SM3/SM4在Android系統中的研究與實現

2019-01-21 10:38:56韓星玥楊中皇
西安郵電大學學報 2018年6期
關鍵詞:系統

鄭 東, 韓星玥, 楊中皇,2

(1.西安郵電大學 無線網絡安全技術國家工程實驗室, 陜西 西安 710121;2.高雄師范大學 軟件工程與管理學系, 臺灣 高雄 82444)

移動終端智能設備已從最初的智能手機領域進入教育、醫療、軍事等重要行業。智能手機逐漸取代個人電腦成為人類生活、工作和學習中不可或缺的一部分[1-2]。基于Linux的Android手機操作系統[3]是目前最熱門的移動操作系統之一。Android手機代碼的開源性,導致其逐漸成為大量惡意攻擊者的首選目標之一[4]。美國《消費者報告》2012年度“State of the Net”報告指出,近40%的美國手機用戶沒有采取適當的安全措施,在賬戶未經準許的情況下,560萬人被擅自訪問[5]。TrustGo公司分析應用報告顯示,在Google Play上,3.15%的應用有可能泄露用戶隱私或者存在惡意行為。而在中國國內知名的91應用市場上,該比例則為19.7%。同時,大量的第三方應用市場的存在,對于Android設備的安全造成了嚴重的威脅。

隨著智能手機的普及,不論是個人,還是企業或政府單位都不可避免地用到自帶設備(bring your own device, BYOD)[6]。但是,現有網絡安全設備存在局限性,使得惡意軟件能夠通過智能手機轉移到PC或服務器上,可以實現對隱私的竊取。高級加密標準(advanced encryption standard, AES)、橢圓曲線數字簽名算法(elliptic curve digital Signature algorithm, ECDSA)和安全哈希算法(secure hash algorithm, SHA)等是智能手機所用的核心密碼算法,但是,這些算法不符合中國商用密碼規范,其安全性不適用于所有的智能終端,并且用戶的資料預設儲存在國外,難以保護中國消費者的隱私。目前,國家密碼管理局公布了適用于商用和軍用等的密碼算法,同時,SM2橢圓曲線公鑰密碼算法與SM9標識密碼算法[7]也已成為國際標準。

本文將滿足我國商用密碼規范的密碼算法SM2/SM3/SM4算法添加到Android源碼中,以期為Android系統提供更加健全的加密機制。

1 Android系統架構與系統工具

1.1 Android系統架構

Android系統[8]架構從下到上依次是Linux內核層、系統庫與運行時庫層、應用程序框架層和應用程序層,如圖1所示。這種層次化設計既能夠為系統提供安全,還能夠保持操作系統的開放性。

圖1 Android系統框架

Linux內核層包括系統層安全機制、內存管理、進程管理、網絡堆棧及一系列的驅動模塊,位于硬件與其他的軟件層之間,提供與硬件交互。與此同時,還可以區別與阻隔該層與下一層,即使是該層自身產生了一些變化,也不會對任何一層產生影響。需要特別注意的是,內核層中不包含虛擬性的內存文件。

系統庫與運行時庫層包含了Android系統的系統庫、運行環境和應用框架層。系統函數庫與運行時庫層是為應用程序運行提供服務的一些C/C++庫;核心庫中既包含了Java核心類庫的大多數功能,也包含了利用Java本地調用(Java native interface,JNI)等方式封裝的C/C++庫,向應用框架層提供調用底層程序庫的接口,還包含了解釋運行Java字節碼的ART虛擬機。應用軟件架構層為應用開發者提供了用以訪問核心功能的應用程序接口(application program interface, API)。

在Android系統中,上層應用程序需利用Java語言開發。比如,通信工具、通訊錄等應用程序。

1.2 Android系統工具

Android系統工具不僅包括Android調試橋(android debug bridge, ADB)和logcat等,還包括開發工具Gradle、TraceView和本地開發工具包(native development kits, NDK)等。

1.2.1 Android調試工具

ADB是一個可執行程序,位于軟件開發工具包(software development kit, SDK)安裝路徑下platform-tools目錄中,可快速建立與模擬器的通信渠道。ABD采用客戶端/服務器(Client/Server,C/S)模型,框架由ADB Client、ADB Server和ADB Daemon 等3個重要部分組成。

Logcat是一個命令行工具,用于得到程序對應的日志信息。Android日志系統提供了記錄和查看系統調試信息的功能。日志都是從各種軟件和某些系統的緩沖區中記錄,緩沖區可以通過logcat命令來查看和使用。

1.2.2 Android開發工具

Gradle是新一代自動化編譯工具,也是Android Studio中應用程序開發默認的自動化構建工具。它是在Ant、Maven等自動化編譯工具基礎上發展而來,使用了一種基于Groovy的特定領域語言(DSL)來聲明項目設置,拋棄了基于XML的各種繁瑣配置,具有Ant和Maven等工具的所有優點。Gradle也是一個基于Java虛擬機(java virtual machine, JVM)的構建工具,支持maven,Ivy倉庫,支持傳遞性依賴管理,而不需要遠程倉庫或者是pom.xml和ivy.xml配置文件。

Groovy和Java語法相似,并且可以達到二進制級別的兼容,對于JVM,兩者之間沒有任何區別。同時,Groovy還可以使用Java中的各類API,并且兩者可以進行混合編程。

Gradle的生命周具體包含Initialization、Configuration和Execuation共3個階段,如圖2所示。

圖2 Gradle的生命周期

TraceView是Android SDK中內置的工具,可以加載trace文件,用圖形的形式展示代碼執行時間、次數及棧的調用,便于分析進程中各個線程的執行情況。其中Trace文件可以通過代碼、Android Studio或者Dalvik虛擬機調試監控服務(dalvik debug monitor service, DDMS)生成。使用DDMS生成的trace文件,分析算法的執行及布局等。

NDK是一個工具集,可以開發C/C++動態庫,并能自動將動態鏈接庫(.so庫)打包到應用程序中。在Ubuntu Linux下,使用NDK工具集成的交叉編譯器編譯openssl源代碼,生成libcrypto.so動態庫;在Windows下,通過Android Studio中的NDK實現對動態庫打包。

2 密碼算法

2.1 Android加密算法

Android系統基于Java加密體系結構(java cryptography architecture, JCA),并且JCA提供了一個可擴展的加密服務程序框架和一組API,即加密服務基于JCA保護系統安全。支持現有主要密碼原語,如分組密碼算法AES;消息摘要算法SHA-1和消息摘要算法(message digest algorithm, MD5);數字簽名算法ECDSA和RSA算法。

ECDSA[9]是使用橢圓曲線密碼(elliptic curves cryptography, ECC)對數字簽名算法(digital signature algorithm, DSA)的模擬。ECDSA于1999年成為美國國家標準學會(american national standards institute, ANSI)標準,并于2000年成為電氣和電子工程師協會(institute of electrical and electronics engineers, IEEE)和美國國家標準與技術研究院(national institute of standards and technology,NIST)標準。在1998年被國際標準化組織(international organization for standardization, ISO)所接受。

2001年,美國國家標準技術研究所發布了AES[10]算法,旨在取代DES[11],成為廣泛使用的標準。AES算法明文分組的長度為128位即16字節,密鑰長度可以為16字節,24字節或者32字節(128位,192位,256位)。AES算法加密過程涉及到4種操作:字節替代(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)和輪密鑰加(AddRoundKey)。

SHA算法是美國國家標準技術研究所發布的國家標準FIPS PUB 180,主要適用于數字簽名標準(digital signature standard, DSS)[12]里面定義的數字簽名算法DSA。其中規定了SHA-1、SHA-224、SHA-256、SHA-384和SHA-512共5種單向散列算法。

2.2 SM2/SM3/SM4密碼算法

密碼學中常用的算法有對稱算法、非對稱算法和散列算法。為了提高算法的安全性,中國國家密碼管理局制定了一系列密碼標準及其應用規范,如SM1、SM2、SM3、SM4、SM9。其中已公布有SM2、SM3、SM9和SM4。

2.2.1 SM2橢圓曲線公鑰密碼算法

2010年12月,中國首次公開發布了SM2橢圓曲線公鑰密碼算法[13],2012年成為中國商用密碼標準(標準號為GM/T 0003-2012),2016年成為中國國家密碼標準(標準號為GB/T 32918-2016),2017年SM2數字簽名算法成為ISO/IEC國際標準,是中國公鑰密碼算法標準。SM2算法的主要內容包含數字簽名算法、密鑰交換協議和公鑰加密算法等。

2.2.2 SM3密碼雜湊算法

SM3[14-15]雜湊算法是中國國家密碼局于2010年12月17日公布的hash算法的商用標準。該標準可以對長度為l(l<264)比特的消息m,經過填充、迭代壓縮、生成雜湊值,其雜湊值的輸出為256比特。由于該標準使用了迭代壓縮結構,將填充后的原數據,通過布爾函數與置換邏輯處理,在壓縮過程中充分地進行擴散和擾亂,所以,SM3密碼雜湊算法具有較高的復雜性與不可逆性。

2.2.3 SM4分組密碼算法

由中國國家密碼管理局于2006年1月6日公布的分組加密算法,是無線標準中的分組加密算法,2012年改名為SM4[16]。該算法是一個分組算法,其分組長度為128比特,密鑰長度為128比特。加密算法與密鑰擴展算法都采用32輪非線性迭代結構。解密算法與加密算法的結構相同,只是輪密鑰的使用順序相反,解密密鑰是加密密鑰的逆序。

3 Android系統實現

3.1 系統架構與開發

3.1.1 系統架構

在Android 8.0源代碼的基礎上,通過添加SM2/SM3/SM4密碼算法,實現對Android所提供加密服務安全性的改造,提高系統安全性和用戶隱私的完整性。利用Android Studio開發應用程序,通過性能分析工具TraceView,分析具有相同功能的不同函數;同時利用AOSP平臺,從Android網站上下載Android 8.0源代碼,在源碼中添加密碼算法,通過編譯源碼生成刷機的系統鏡像文件。

3.1.2 系統開發

在Linux系統下通過編譯修改后的Android 8.0源代碼,實現密碼算法SM2/SM3/SM4在Android系統中的應用。

系統APK“FIPS”的功能界面如圖3所示。點擊SM3,在彈出對話框中輸入“asdfghjkl”,輸出哈希摘要,如圖4所示。SM4加解密的過程分別如圖5和圖6所示。SM2加解密以及簽名驗證的過程分別如圖7-10所示。

圖3 FIPS功能界面

圖4 SM3哈希

圖5 SM4的加密過程

圖6 SM4的解密過程

圖7 SM2加密過程

圖8 SM2解密過程

圖9 SM2簽名過程

圖10 SM2驗證過程

3.2 系統性能測試及分析

3.2.1 測試環境

在Android中,CPU頻率可能會因功耗的變化而改變,從而影響設備的性能和測試結果的準確性。為了減少可能存在干擾源的影響,在測試之前,強制退出設備中所有非關鍵運行應用程序和服務。同時,斷開WIFI和藍牙服務,以避免在測試期間可能會影響設備的外部干擾。

利用Linux(Ubuntu 16.04 LTS)系統,實現對Android 8.0源代碼的修改和編譯。其客戶端使用Android 8.0源代碼結合Android Studio進行應用程序的開發,客戶端開發與測試環境如表1所示。移動端實驗設備為Pixel 2,其系統參數如表2所示,服務器端的開發環境如表3所示。

表1 客戶端開發與測試環境

表2 Pixel 2系統參數

表3 AOSP源碼編譯環境

3.2.2 測試方法

通過運行應用程序測量算法的速度,測試過程可以在代碼中加入簡單的測時語句來直接顯示出運行時間,循環1 000次求平均值,代碼如下。

long startTime=System.currentTimeMillis();

long endTime=System.currentTimeMillis();

Role role=new Role();

(public class Role { void role(){

for(int i=0;i<1000;i++){

int sum=0;

sum=sum+i; } )

Log.d(TAG,"(endTime-startTime)");

3.2.3 測試結果

將SM2/SM3/SM4密碼算法和Android系統中內置密碼算法的進行對比測試。Java語言實現的SM2/SM3/SM4密碼算法在Pixel 2上的測試結果如圖11所示。

圖11 Java語言實現的算法效能測試結果

為了提高該密碼算法在Android系統中的高效性,采用NDK技術,通過C語言實現的SM2/SM3/SM4密碼算法在Pixel 2的測試結果如圖12所示。

圖12 C語言實現的算法效能測試結果

對比圖11和圖12,可以得出C語言實現的算法速度比Java語言實現的速度快至少5倍。

因此,在滿足用戶對算法速度要求的基礎上,Android系統中引入SM2/SM3/SM4密碼算法,實現其密碼功能,提供良好的用戶體驗。其中,SM2公鑰加密算法是基于橢圓曲線算法ECC,使用橢圓曲線點定義密鑰對,即使黑客使用常用暴力破解,也難以進行攻擊,從而增強了算法的安全性,更有效地保護隱私數據。

4 結語

從移動手機安全性出發,對Android安全機制進行研究和分析,在Android 8.0源碼中添加SM2/SM3/SM4密碼算法,通過開發應用程序實現其密碼功能,重新編譯Android 8.0源碼并定制ROM包實現刷機,使Android系統具備基于SM2/SM3/SM4密碼算法的安全能力。測試結果表明,引入中國國家密碼算法的Android系統能有效地保護用戶隱私和數據。

猜你喜歡
系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
基于UG的發射箱自動化虛擬裝配系統開發
半沸制皂系統(下)
FAO系統特有功能分析及互聯互通探討
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
一德系統 德行天下
PLC在多段調速系統中的應用
主站蜘蛛池模板: 久无码久无码av无码| 91久久精品日日躁夜夜躁欧美| 九九热视频精品在线| 精品国产91爱| 久久一本精品久久久ー99| 午夜欧美理论2019理论| 色妞永久免费视频| 最新加勒比隔壁人妻| 在线精品亚洲国产| 在线精品自拍| 国产美女91呻吟求| 亚洲手机在线| 欧洲高清无码在线| 国产精品久久久久久久久久98 | 在线播放真实国产乱子伦| 国产又黄又硬又粗| 中文字幕首页系列人妻| 91成人精品视频| 久久伊伊香蕉综合精品| 看你懂的巨臀中文字幕一区二区| a在线亚洲男人的天堂试看| 日韩欧美在线观看| 国产av色站网站| 久久精品人人做人人爽电影蜜月| 国产一级裸网站| 99视频在线免费观看| 亚洲国产欧美国产综合久久 | AV无码无在线观看免费| 国产欧美日韩18| 88av在线| 国产欧美日韩专区发布| 欧美成一级| 国产真实自在自线免费精品| 天天视频在线91频| 亚洲Av综合日韩精品久久久| 亚洲一区二区三区麻豆| 91青青草视频在线观看的| 国产自无码视频在线观看| 欧美中文字幕在线视频| www.国产福利| 国产精品无码一二三视频| 欧美一级夜夜爽| 91欧美在线| 国产va在线| 亚洲首页国产精品丝袜| 日韩一二三区视频精品| 黄色网页在线观看| 91年精品国产福利线观看久久| 在线播放国产一区| 在线色国产| 国内熟女少妇一线天| 中文字幕亚洲综久久2021| 国产不卡一级毛片视频| 日韩欧美成人高清在线观看| 国产情侣一区二区三区| 日本黄色不卡视频| 老司机午夜精品网站在线观看 | 日韩精品久久无码中文字幕色欲| 91娇喘视频| 尤物精品视频一区二区三区| 日韩精品欧美国产在线| 国产91丝袜在线播放动漫 | 亚洲天堂在线视频| 无码AV高清毛片中国一级毛片| 久久精品女人天堂aaa| 国产高清在线观看91精品| 欧美不卡视频一区发布| 伊人查蕉在线观看国产精品| 直接黄91麻豆网站| 日本在线免费网站| 91欧美在线| 天天色综合4| 蝴蝶伊人久久中文娱乐网| 日韩黄色在线| www.91中文字幕| 亚洲成人精品久久| 97国产成人无码精品久久久| 精品视频一区二区观看| 麻豆精品在线| 久久窝窝国产精品午夜看片| 国产玖玖玖精品视频| 欧美视频在线不卡|