<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    路是爬出來(lái)的

    MIDP 2.0安全機(jī)制 與 MIDlet 數(shù)字簽名(轉(zhuǎn)自j2medev)

    本篇文章轉(zhuǎn)自www.j2medev.com/bbs/dispbbs.asp
















    MIDP 2.0安全機(jī)制 與 MIDlet 數(shù)字簽名

     

              本文檔是 WoTrust 根據(jù) Forum Nokia 提供的技術(shù)文檔《MIDP 2.0: Tutorial On Signed MIDlets》翻譯整理的,請(qǐng)同時(shí)參考此英文原文文檔。請(qǐng)用戶在編寫 MIDlet 和簽名 MIdlet 之前閱讀此文檔,以便對(duì) MIDP2.0 的安全機(jī)制有一個(gè)深刻的理解,有助于用戶能用好 MIDlet 代碼簽名證書。


     一、概述


        MIDP2.0 采用了全新的安全機(jī)制,這對(duì)于需要調(diào)用一個(gè)敏感的(重要的)函數(shù)和 API 的 MIDlet 開(kāi)發(fā)者來(lái)講是必須了解的,如:網(wǎng)絡(luò)連接 API 、消息 API 和推 (Push) 函數(shù)等,還有一些可選的 MIDP 包也有許多受限制的 API 。


        雖然購(gòu)買代碼簽名證書需要費(fèi) 用,但簽名 MIDlet 對(duì)開(kāi)發(fā)者來(lái)講是收益非淺的,因?yàn)樵S多受保護(hù)的 API 都是需要簽名的,以保護(hù)開(kāi)發(fā)者和用戶的利益。當(dāng)然,有些應(yīng)用是不需要簽名的,如有些不需要聯(lián)網(wǎng)的僅用到一些圖形 API 的小游戲軟件。但一些重要的應(yīng)用,如:連接網(wǎng)絡(luò)、發(fā)送短消息 ( 短信和彩信 ) 或訪問(wèn)移動(dòng)終端 ( 智能手機(jī)、 PDA 等,以下簡(jiǎn)稱為手機(jī) ) 上的 PIM( 個(gè)人信息管理 ) 數(shù)據(jù)等等都需要簽名。


        數(shù)字簽名 MIDlet 的好處包括:


        (1) 基于 MIDlet 的安全策略,某些功能是必須簽名才能使用的,而有些功能雖然不簽名也可以使用,但必須要求用戶在使用時(shí)確認(rèn)和修改其安全策略,如:寫用戶數(shù)據(jù)缺省是不允許沒(méi)有簽名的 MIDlet 操作的;


        (2) 基于手機(jī)的系統(tǒng)安全和移動(dòng)網(wǎng)絡(luò)的安全考慮,某些手機(jī)制造商、移動(dòng)運(yùn)營(yíng)商等可能拒絕沒(méi)有簽名的 MIDlet 在手機(jī)上安裝和運(yùn)行;


        (3) 大大改善用戶體驗(yàn),讓用戶使用方便,使得用戶不會(huì)遭遇調(diào)用受保護(hù) API 時(shí)的安全警告的煩惱;


        (4) 出于安全考慮,安裝沒(méi)有簽名的 MIDlet 是會(huì)有安全警告的,而相反,安裝已經(jīng)簽名的 MIDlet 則不會(huì)出現(xiàn)煩人的警告,手機(jī)會(huì)自動(dòng)驗(yàn)證簽名而順利地安裝成功;


        (5) 已經(jīng)簽名的 MIDlet 將使得用戶能改善其低安全策略設(shè)置,提高手機(jī)的安全性;


        (6) 確保已經(jīng)簽名的 MIDlet 不會(huì)被非法篡改和非法盜用。


    二、 MIDP 2.0 安全機(jī)制


        MIDP 是一個(gè)開(kāi)放的平臺(tái),使得任何人都可以為支持 MIDP 的設(shè)備開(kāi)發(fā)各種應(yīng)用軟件,一般都是移動(dòng)終端設(shè)備。 MIDlet 套件可以以匿名方式通過(guò)網(wǎng)絡(luò)下載,非常方便,但這也會(huì)帶來(lái)許多安全問(wèn)題和隱私信息保護(hù)問(wèn)題,用戶會(huì)問(wèn): MIDlet 能把用戶的個(gè)人信息發(fā)給不知道的服務(wù)器嗎?會(huì)自動(dòng)產(chǎn)生沒(méi)有授權(quán)的呼叫或短消息而給用戶帶來(lái)費(fèi)用嗎?惡意軟件會(huì)破壞手機(jī)?等等。


         除了 Java 語(yǔ)言的安全特性外, MIDP 還增加了許多安全考慮。 MIDP 2.0 比 MIDP 1.0 增強(qiáng)了安全策略,把 API 分為普通 API 和敏感 API ,如:通過(guò)  HTTP 協(xié)議訪問(wèn)移動(dòng)網(wǎng)絡(luò),由于會(huì)給用戶產(chǎn)生費(fèi)用, 所以被列為 敏感 API 。 MIDlet 2.0 推出了可信任 MIDlet(trusted) 和不可信任 MIDlet(untrusted) 的概念,一個(gè)不可信任 MIDlet 只能訪問(wèn)有限的 API ,同時(shí)還需要用戶手動(dòng)確認(rèn)并修改其安全策略;而可信任 MIDlet 則自動(dòng)繼承系統(tǒng)中的安全策略而獲得訪問(wèn)許可。


         許可 (Permissions) 用于需要身份認(rèn)證的 敏感 API 。 MIDP 2.0 要求調(diào)用 敏感 API 之前必須獲得必要的許可,這些許可包的命名同 J2SE 許可,如: HTTP 連接許可同樣稱為: javax.microedition.io.Connector.http 。 有關(guān)許可的文檔同意歸類在受保護(hù) API 中。


    2.1 Protection Domains( 保護(hù)域 )


         保護(hù)域是 MIDP 2.0 中一個(gè)非常重要的安全概念,一個(gè)保護(hù)域就是一個(gè)許可集和一種交互模式,這些許可既可以是自己繼承的,也可能是用戶設(shè)置的,前者稱為允許 (allowed) ,而后者稱為用戶允許 (user permission) 。當(dāng)一個(gè) MIDlet 被安裝后,它被分配到一個(gè)指定的保護(hù)域而獲得它的許可和交互模式。


        而用戶允許則需要用戶自己決定是否同意,用戶既拒絕一個(gè)許可,也可以同意。用戶允許有 3 種交互模式: blanket( 普遍適用 ) 、 session( 短期適用 ) 和 oneshot( 本次適用 ) , 普遍適用 模式就是 MIDlet 安裝時(shí)獲得的許可一直有效,除非用戶取消這些許可;而 短期適用 模式則是指第一次調(diào)用 API 時(shí)需要用戶允許,有效期到此 MIDlet 套件運(yùn)行結(jié)束;而 本次適用 模式則在每次調(diào)用 API 時(shí)都要求用戶允許。保護(hù)域?yàn)橛脩粼S可定義了缺省的交互模式。


        一個(gè) MIDlet 套件使用 MIDlet-Permissions MIDlet-Permissions-Opt 屬性來(lái)明確地定義其許可,可以是在 JAD 文件中定義,也可以在 manifest 文件中定義。其中: MIDlet-Permissions 定義了 MIDlet 套件中必須具有的許可,而 MIDlet-Permissions-Opt 則定義希望具有的許可。如:一個(gè)應(yīng)用軟件的基本要求是要有 http 連接才能正常工作,同時(shí),也可以使用 https 連接 ( 服務(wù)器部署了 SSL 證書 ) 來(lái)增強(qiáng)安全性,但不是必須的,這樣,這個(gè)應(yīng)用軟件的應(yīng)用描述可以是這樣:


            MIDlet-Permissions: javax.microedition.io.Connector.http


            MIDlet-Permissions-Opt: javax.microedition.io.Connector.https


         請(qǐng)注意:一個(gè) MIDlet 所要求的許可必須是安裝時(shí)分配的保護(hù)域所具有的許可的子集。如: Nokia S60 MIDP Emulator Prototype 2.0 (SDK) 有一個(gè)叫做“ minimum ”的域,此域沒(méi)有任何許可。所以,如果一個(gè)含有許多許可的已經(jīng)簽名的 MIDlet 如果被安裝到此域,則會(huì)安裝失敗,因?yàn)榇擞虿恢С诌@些許可。同樣,如果一個(gè)許可的名稱有拼寫錯(cuò)誤,則一樣會(huì)導(dǎo)致安裝失敗,因?yàn)橛蛑袥](méi)有此拼寫錯(cuò)誤的許可。


        MIDP 2.0 為 GSM/UTMS 設(shè)備定義了 4 種保護(hù)域: manufacturer( 設(shè)備制造商 ) , operator( 移動(dòng)運(yùn)營(yíng)商 ) , trusted third party( 可信任的第三方 ) , and untrusted( 不受信任域 ) , 除了 untrusted 域外,每個(gè)保護(hù)域都對(duì)應(yīng)一組根證書,用于簽名 MIDlet 的簽名證書的根證書必須包含在這些根證書中,使用不同的簽名證書簽名的 MIDlet 將被自動(dòng)歸類予根證書所屬的保護(hù)域,根證書與保護(hù)域的關(guān)系是:一個(gè)保護(hù)域可以有許多個(gè)根證書,而一個(gè)根證書只能對(duì)應(yīng)于一個(gè)保護(hù)域。


        具體來(lái)講, manufacturer 域?qū)儆谠O(shè)備制造商,其根證書是設(shè)備制造商自己的根證書;而 operator 域運(yùn)營(yíng)商,一般使用其 SIM 卡中的根證書;而 trusted third party 域則預(yù)置了全球知名的數(shù)字證書頒發(fā)機(jī)構(gòu) (CA) 的根證書,用于驗(yàn)證由 CA 頒發(fā)的 MIDlet 簽名證書;而 untrusted 域沒(méi)有根證書,將用于沒(méi)有簽名的 MIDlet 和 MIDP 1.0 。


        Thawte 和 VeriSign 的根證書已經(jīng)預(yù)置在 trusted third party 域 中,其 Java 代碼簽名證書可以用于簽名 MIDlet 。當(dāng)然,用戶也可以選擇使用設(shè)備制造商和移動(dòng)運(yùn)營(yíng)商頒發(fā)的證書,只要其根證書已經(jīng)包含在手機(jī)的 4 個(gè)保護(hù)域中。據(jù) WoTrust 了解,大多數(shù)摩托羅拉 (Motorola) 手機(jī)只支持設(shè)備制造商域,所以,只能向 Motorola 申請(qǐng)簽名服務(wù)了。


        請(qǐng)注意:由于 MIDP 2.0 也在不斷地修改和增補(bǔ),所以,可能不用的移動(dòng)網(wǎng)絡(luò)運(yùn)營(yíng)商有不同的保護(hù)域和許可,用戶可能需要向移動(dòng)運(yùn)營(yíng)商了解詳細(xì)信息。而最簡(jiǎn)單的方法是檢查目標(biāo)用戶所使用的手機(jī)的根證書是否有計(jì)劃購(gòu)買的 MIDlet 簽名證書的根證書。


    2.2 Untrusted MIDlet ( 不受信任的 MIDlet)


        MIDP 2.0 定義了那些 API 是 untrusted 的,這些 Jar 文件的來(lái)源和完整性是不能被手機(jī)驗(yàn)證的。但這并不意味著這些 MIDlet 不能被安裝和運(yùn)行,而是運(yùn)行這些 MIDlet 需要用戶人工確認(rèn)允許。而所有 MIDP 1.0 的 MIDlets 都被定義為 untrusted


        untrusted 的 MIDlets 只能調(diào)用一個(gè)不需要許可保護(hù)的 API ,如:

            java.util

            java.lang

            java.io

            javax.microedition.rms

            javax.microedition.midlet

            javax.microedition.lcdui

            javax.microedition.lcdui.game

            javax.microedition.media

            javax.microedition.media.control


         如果 untrusted MIDlet 套件試圖調(diào)用一個(gè)被保護(hù)的 API 而且沒(méi)有被人工允許,則會(huì)產(chǎn)生一個(gè) SecurityException 而被 MIDlet 按照安全策略處理。請(qǐng)注意: Nokia 的 UI API 是不被保護(hù)的,包括類: com.nokia.mid.sound 和 com.nokia.mid.ui 。


    2.3 Trusted MIDlets ( 可信任的 MIDlets)


         如果手機(jī)能驗(yàn)證 MIDlet 的身份和完整性 ( 也就是已經(jīng)數(shù)字簽名 ) ,則會(huì)自動(dòng)分配一個(gè)合適的保護(hù) 域這種 MIDlet 套件就稱為可信任的 MIDlet 。一個(gè)可信任的 MIDlet 套件所要求的許可將被準(zhǔn)許,只要所屬的保護(hù)域擁有這種許可,假如許可: javax.microedition.io.Connector.http 已經(jīng)在所屬保護(hù)域中是允許的,則 MIDlet 在打開(kāi)一個(gè) http 連接時(shí)是不需要用戶確認(rèn)的。


        請(qǐng)不要混淆了可信任的 MIDlet 套件和可信任的保護(hù)域的不同,每個(gè)可信任的 MIDlet 套件依據(jù)安全策略被分配到一個(gè)特定的保護(hù)域。


         您需要使用一個(gè)手機(jī)中已經(jīng)預(yù)置的根證書的證書頒發(fā)機(jī)構(gòu)頒發(fā)的代碼簽名證書來(lái)簽名 MIDlet ,否則將不能通過(guò)身份驗(yàn)證。成功簽名后的 JAD 文件中一定會(huì)包含有整個(gè)簽名證書的證書鏈,屬性名稱為: MIDlet-Certificate-1-1 就是您的簽名證書,而 MIDlet-Certificate-1-2 就是 CA 的中級(jí)根證書,而 MIDlet-Certificate-1-3 就是 CA 的頂級(jí)根證書。同時(shí)還會(huì)有一個(gè) MIDlet-Jar-RSA-SHA1 屬性就是 JAR 文件的摘要。


        當(dāng)一個(gè) MIDlet 被下載或被安裝時(shí), MIDlet 應(yīng)用管理器首先會(huì)檢查 JAD 文件中是否包含了 MIDlet-Jar-RSA-SHA1 屬 性,如果有,則啟動(dòng)如下驗(yàn)證過(guò)程:首先會(huì)讀出 MIDlet-Certificate-1-1 、 MIDlet-Certificate-1-2 和 MIDlet-Certificate-1-3 屬性中的證書,并與已經(jīng)預(yù)置的根證書相比較,如果證書鏈能被根證書驗(yàn)證,則表明開(kāi)發(fā)者身份已經(jīng)被驗(yàn)證。接著就會(huì)使用用戶證書來(lái)解密 MIDlet-Jar-RSA-SHA1 屬 性的摘要,再計(jì)算出已經(jīng)下載的 Jar 文件的摘要,比較兩個(gè)摘要是否相等,如果相等,則表明 MIDlet 代碼自簽名后沒(méi)有被修改。這樣,既驗(yàn)證了身份又檢查了完整性的 MIDlet 會(huì)被分配到所屬根證書所對(duì)應(yīng)的保護(hù)域中。但是,如果 MIDlet 中的許可屬性 ( MIDlet-Permissions ) 中有一個(gè)或多個(gè)不屬于所屬的保護(hù)域,則仍然不允許安裝。而如果 MIDlet 中的可選許可屬性 ( MIDlet-Permissions-Opt ) 中有一個(gè)或多個(gè)不屬于所屬的保護(hù)域,會(huì)允許安裝。可見(jiàn),正確設(shè)置許可屬性和可選許可屬性非常重要。


    2.4 Function Groups ( 功能分組 )


         為了簡(jiǎn)化用戶管理操作, MIDlet 把一些類似功能分組,這樣,用戶只需對(duì)功能組設(shè)置許可即可。如:許可 “Net Access”( 網(wǎng)絡(luò)訪問(wèn) ) 組來(lái)代替許可 javax.microedition.io.Connector.http ,這對(duì)于簡(jiǎn)化手機(jī)的交互操作非常有用。


        MIDP 2.0 和 JTWI 定義了如下 7 個(gè)功能組:


        (1) Net Access: 包括所有網(wǎng)絡(luò)連接許可;


        (2) Messaging: 包括所有與發(fā)送和接收短消息 ( 短信和彩信 等 ) 相關(guān)的許可;


        (3) Auto Invocation : 包括與自動(dòng)啟動(dòng) MIDlet 相關(guān)的許可,如: Push Registration


        (4) Local Connectivity : 包括與本地連接相關(guān)的許可,如: IrDA 或 藍(lán)牙;


        (5) Multimedia Recording : 包括與允許錄音、照相、攝像等相關(guān)的許可;


        (6) Read User Data : 包括讀取用戶數(shù)據(jù)相關(guān)的許可,如:通訊錄、日程表等;


        (7) Write User Data : 包括寫用戶數(shù)據(jù)相關(guān)的許可。


        不同的手機(jī)支持不同的功能組,如: Multimedia Recording 就不會(huì)包含在沒(méi)有攝錄裝置的手機(jī)中。當(dāng)然,也有可能將來(lái)會(huì)增加更多的功能組。


         功能組也同時(shí)定義了不同的域的不同交互方式,如:在不信任域, “Net Access” ( 網(wǎng)絡(luò)訪問(wèn) ) 被設(shè)置為 session( 短期適用 ) 或 denied( 拒絕 ) ,而在可信任域則可以設(shè)置為 oneshot 、 blanket 和 denied 的。


    三、仿真器和手機(jī)的缺省安全設(shè)置


        讓我們來(lái)看看具體的使用 Thawte 或 VeriSign 代碼簽名證書簽名后的 MIDlet 在 trusted third party 域中的所有缺省許可,如下圖 1 所示,點(diǎn)擊 NDS 3.0 的“ Config Emulators ”就可以看到仿真器在 trusted third party 域的缺省安全設(shè)置是“ Ask first time ”,即第 1 次使用是需要確認(rèn):


    圖片點(diǎn)擊可在新窗口打開(kāi)查看


        如下圖 2 所示,您可以下拉所有功能組的許可設(shè)置,如“ Network Access ”就有 4 個(gè)選項(xiàng)可以修改: Ask first time 、 Ask every time 、 Always allowed 和 Not allowed :


    圖片點(diǎn)擊可在新窗口打開(kāi)查看


         而如下圖 3 所示,在“ Real Life ”模式,也就是實(shí)際手機(jī)的運(yùn)行模式,可以看出:定義的 7 個(gè)功能組都是“ Always allowed ” ( 總是允許 ) ,這就顯示出 MIDlet 簽名對(duì)于開(kāi)發(fā)商來(lái)講是多么的重要,將大大方便了用戶的使用,再也不需要用戶操作煩人的系列確認(rèn)了。


    圖片點(diǎn)擊可在新窗口打開(kāi)查看


    posted on 2006-12-30 09:24 路是爬出來(lái)的 閱讀(111) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲爆乳AAA无码专区| 亚洲乱码一二三四区麻豆| 特级一级毛片免费看| 色播在线永久免费视频| 亚洲丰满熟女一区二区哦| 免费精品一区二区三区在线观看| 亚洲国产成人综合精品| 在线视频免费国产成人| 日韩在线视精品在亚洲| 久久久久亚洲精品男人的天堂| xvideos永久免费入口| 亚洲乳大丰满中文字幕| 无码免费一区二区三区免费播放| 亚洲av中文无码乱人伦在线r▽| 久久精品视频免费播放| 亚洲人成网站18禁止久久影院| 九九九精品成人免费视频| 综合一区自拍亚洲综合图区| 亚洲精品第一国产综合精品99 | 毛片a级三毛片免费播放| 亚洲国产精品一区二区三区在线观看| 无码专区永久免费AV网站| 欧洲亚洲综合一区二区三区| 免费一级毛片在线观看| 国产在线精品观看免费观看| 亚洲男人天堂av| 午夜成年女人毛片免费观看| 日本一区二区三区在线视频观看免费| 久久亚洲AV永久无码精品| 亚欧日韩毛片在线看免费网站| 亚洲va久久久久| 亚洲午夜成人精品电影在线观看| 久99久精品免费视频热77| 亚洲中文字幕无码久久2020| 亚洲日韩精品无码专区网址| 免费精品国产自产拍在线观看图片| 国产成人不卡亚洲精品91| 亚洲国产成人久久精品影视| 色吊丝最新永久免费观看网站| 中国黄色免费网站| 亚洲无码一区二区三区|