国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于可用權(quán)利來授權(quán)執(zhí)行軟件代碼的系統(tǒng)和方法

      文檔序號:6593481閱讀:174來源:國知局
      專利名稱:基于可用權(quán)利來授權(quán)執(zhí)行軟件代碼的系統(tǒng)和方法
      技術(shù)領(lǐng)域
      本申請涉及控制對軟件代碼的執(zhí)行。
      背景技術(shù)
      計算設(shè)備可被配置為要求在計算機(jī)系統(tǒng)上執(zhí)行的代碼由可信方來授權(quán)。例如, 這種授權(quán)可以用于幫助確保計算設(shè)備的完整性不會被惡意或未授權(quán)的代碼損害。在一些 情況下,計算設(shè)備可被配置為要求代碼由可信方數(shù)字地簽名以及驗(yàn)證,用以在計算設(shè)備 上執(zhí)行和/或控制對訪問設(shè)備的特定資源或服務(wù)的軟件的執(zhí)行。對數(shù)字簽名的驗(yàn)證有助 于確保底層的應(yīng)用代碼自被可信授權(quán)機(jī)構(gòu)(authority)數(shù)字簽名起不再被修改。然而, 這種安全方案在擴(kuò)展到希望訪問或修改在設(shè)備上運(yùn)行的應(yīng)用程序的多個實(shí)體方面是困難 的。


      圖1是例示了計算環(huán)境的一個示例的框圖,在該計算環(huán)境中,軟件代碼從一個 或多個開發(fā)者發(fā)布到計算設(shè)備。圖2是例示了在如圖1中所例示的環(huán)境中的計算設(shè)備的軟件部件的一個實(shí)施例的 框圖。圖3是例示了用于控制在如圖2中所例示的設(shè)備上執(zhí)行軟件的簡檔的一個實(shí)施例 的框圖。圖4是例示了在圖2所例示的計算設(shè)備的一個實(shí)施例的軟件部件之間的數(shù)據(jù)流的 框圖。圖5是例示了基于圖2所例示的簡檔而執(zhí)行軟件的方法的一個實(shí)施例的流程圖。圖6是更詳細(xì)地例示了圖5的方法的部分的流程圖。圖7是例示了在圖2所例示的設(shè)備上的程序的交互的框圖。圖8是例示了用于針對在圖2的設(shè)備上執(zhí)行的第一程序認(rèn)證權(quán)利即對在設(shè)備上執(zhí) 行的第二程序的權(quán)利的方法的一個實(shí)施例的流程圖。圖9是例示了如圖2所例示的計算設(shè)備的一個示例的框圖。圖IOA和IOB是例示了如圖2所例示的計算設(shè)備的一個示例的框圖。圖11是例示了如圖IOA和IOB所例示的移動設(shè)備的實(shí)施的一個示例的框圖。
      具體實(shí)施例方式在設(shè)備應(yīng)用程序由第一可信方加密簽名的計算設(shè)備中,可以提供開發(fā)者簡檔, 該開發(fā)者簡檔針對由設(shè)備標(biāo)識符標(biāo)識的指定設(shè)備列表規(guī)定設(shè)備的操作以將信任擴(kuò)展到由 第二方簽名的應(yīng)用程序。特定簡檔可以使得應(yīng)用程序能夠從多個開發(fā)者在一個設(shè)備上運(yùn) 行,在多個設(shè)備上運(yùn)行,以及針對不同設(shè)備/簡檔/開發(fā)者指定不同可用的能力??刂?應(yīng)用程序的執(zhí)行可以保持在設(shè)備的處理器的可信空間中。例如,該可信空間可以包括特權(quán)或監(jiān)管模式或者處理器的存儲器空間,例如操作系統(tǒng)內(nèi)核。在不可信空間中運(yùn)行的策略服務(wù)(或處理)被配置為管理簡檔,以及確定是否特 定的應(yīng)用程序是可執(zhí)行的,并識別對可信空間的可信應(yīng)用程序。不可信空間可以包括在 處理器上執(zhí)行的用戶模式或非特權(quán)處理的存儲器空間。加密功能及它們隨附的復(fù)雜計算 可以由用戶空間服務(wù)來執(zhí)行。另外,用戶空間服務(wù)可以被配置為基于一個或多個可能特 定于特定開發(fā)者簡檔、特定設(shè)備標(biāo)識符、特定承載商等的簡檔和策略來認(rèn)證軟件。策略服務(wù)可以進(jìn)一步擴(kuò)展提供給其的信任以向設(shè)備上的其他應(yīng)用程序或服務(wù)提 供權(quán)利數(shù)據(jù)。例如,第一應(yīng)用程序或庫可以從第二應(yīng)用程序接收對數(shù)據(jù)或服務(wù)的請求。 第一應(yīng)用程序請求指示第二應(yīng)用程序的權(quán)利的數(shù)據(jù)。基于該數(shù)據(jù),第一應(yīng)用程序響應(yīng)于 或拒絕第二應(yīng)用程序的請求。為了例示本發(fā)明的實(shí)施例,下面將給出圖1-9。圖1例示了實(shí)施例可以實(shí)施的整 體系統(tǒng)圖。圖2-3示出了軟件部件和用于控制軟件的執(zhí)行的示例性簡檔的實(shí)施例。圖4 示出了軟件部件之間的數(shù)據(jù)流的一個示例。接著圖5-6例示了用于基于簡檔執(zhí)行軟件的 處理流程圖。圖7例示了設(shè)備上的程序的交互。圖8是用于針對在設(shè)備上執(zhí)行的第一程 序認(rèn)證權(quán)利的另一流程圖。并且,提供圖9來例示移動計算設(shè)備的一個示例。下面將從 參照圖1開始進(jìn)一步描述這些附圖。圖1是計算環(huán)境的一個示例,該計算環(huán)境允許授權(quán)軟件代碼分布到被配置為僅 執(zhí)行授權(quán)代碼的計算設(shè)備。計算設(shè)備100可以是任意數(shù)量的不同類型的計算設(shè)備,包 括移動通信設(shè)備、臺式計算機(jī)、膝上型計算機(jī)、手持式計算機(jī)、個人數(shù)字輔助(PDA)設(shè) 備、移動電話設(shè)備、媒體播放設(shè)備,等等。計算設(shè)備100可以被配置為要求在計算設(shè)備 100上執(zhí)行的任何代碼由可信授權(quán)機(jī)構(gòu)102來授權(quán)。在其他實(shí)施例中,可以采用更復(fù)雜的 授權(quán)方案,例如,未授權(quán)軟件可執(zhí)行僅用于有限用途或者訪問有限設(shè)備資源,而授權(quán)軟 件可以被提供以對設(shè)備100的資源的更廣泛訪問。如下面將更詳細(xì)討論的,授權(quán)功能可以由確定代碼是否已經(jīng)由可信授權(quán)機(jī)構(gòu)授 權(quán)的設(shè)備100的操作系統(tǒng)提供或者與之相結(jié)合地提供。如果代碼如此被授權(quán)和驗(yàn)證,則 其一般可以被執(zhí)行而無需任何進(jìn)一步的系統(tǒng)或用戶交互;如果代碼沒有被授權(quán),則其在 計算設(shè)備100上執(zhí)行的能力可以被限制或者甚至禁止。在一些實(shí)施例中,計算設(shè)備可以 警告用戶該代碼沒有被授權(quán),并且詢問用戶是否仍希望執(zhí)行該未授權(quán)的代碼。在其他實(shí) 施例中,計算設(shè)備100可以被配置為根本禁止未授權(quán)代碼被執(zhí)行,而不顧用戶的意愿。在一些實(shí)施例中,可信授權(quán)機(jī)構(gòu)102可以通過數(shù)字簽名軟件106來授權(quán)軟件 106。如本領(lǐng)域所公知的,數(shù)字簽名采用公鑰加密法來確保數(shù)據(jù)的完整性。例如,軟件 開發(fā)者104可以向可信授權(quán)機(jī)構(gòu)102提供經(jīng)編譯的對象代碼。然后可信授權(quán)機(jī)構(gòu)102可 以創(chuàng)建具有對軟件106的對象代碼的私鑰的數(shù)字簽名,并且可以使得代碼對計算設(shè)備100 是可用的。當(dāng)可以在計算設(shè)備100上請求執(zhí)行軟件時,計算設(shè)備100檢查軟件106的數(shù)字簽 名來驗(yàn)證其真實(shí)性和/或授權(quán)。如果軟件被驗(yàn)證為由可信授權(quán)機(jī)構(gòu)102簽名,則軟件106 可以在計算設(shè)備100上執(zhí)行。計算設(shè)備100可以有多種方法來在執(zhí)行之前檢查軟件106 的數(shù)字簽名。軟件開發(fā)者104可以是編寫、開發(fā)、測試、行銷、銷售和/或發(fā)布用以在計算設(shè)備100上運(yùn)行的軟件的任何人或組織。在一個實(shí)施例中,開發(fā)者104可以是開發(fā)在其控 制或管理的設(shè)備100上使用的軟件的公司或企業(yè)。作為軟件開發(fā)周期的一部分,軟件開發(fā)者104可能希望在與軟件106將現(xiàn)場部署 于其上的計算設(shè)備相類似的計算設(shè)備上測試其軟件。因此,軟件開發(fā)者104可以具有一 個或多個開發(fā)者計算設(shè)備100,其允許軟件開發(fā)者開發(fā)、測試和/或以其他方式進(jìn)一步開 發(fā)軟件106。開發(fā)者計算設(shè)備100可以與所開發(fā)的軟件106將要提供給的計算設(shè)備100相同。 例如,如果軟件開發(fā)者104在編寫要運(yùn)行在諸如iPhone的移動電話平臺上的軟件106,例 如,開發(fā)者計算設(shè)備100可以是iPhone。類似地,如果針對軟件106的計算設(shè)備平臺100 是諸如iPodTouch的媒體播放器,那么開發(fā)者計算設(shè)備100可以是iPod touch。通過采用 類似的設(shè)備用于測試和開發(fā),軟件開發(fā)者104可以能夠在將軟件發(fā)布到終端用戶以在計 算設(shè)備100上使用之前更有效地開發(fā)和測試軟件。在軟件開發(fā)過程期間,軟件應(yīng)用程序中的代碼可以被頻繁改變。因此,如下面 將描述的,軟件開發(fā)者可以獲得和使用在一個或多個計算設(shè)備100上的開發(fā)者訪問。該 開發(fā)者訪問簡檔可以安裝在開發(fā)者計算設(shè)備100上,其允許開發(fā)者在設(shè)備100上修改、重 編譯并測試他們的軟件,而無需從可信授權(quán)機(jī)構(gòu)102請求附加的代碼簽名服務(wù)。在一些實(shí)施例中,除了接收開發(fā)者訪問簡檔之外,開發(fā)者計算設(shè)備100還可以 包括諸如調(diào)試、追蹤或描繪軟件的開發(fā)和測試相關(guān)的軟件,作為安裝在開發(fā)者計算設(shè)備 100上的標(biāo)準(zhǔn)發(fā)布的一部分,作為預(yù)先準(zhǔn)備處理的一部分,或者在任何其他時間包括該 軟件。在一些實(shí)施例中,開發(fā)者計算設(shè)備100被預(yù)先準(zhǔn)備有這種附加的開發(fā)相關(guān)軟件。 在其他實(shí)施例中,開發(fā)相關(guān)軟件可以隨開發(fā)者訪問簡檔或者與之相結(jié)合地被安裝在設(shè)備 上。圖2是提供開發(fā)者計算設(shè)備100如何可以被配置為采用開發(fā)者訪問簡檔208來執(zhí) 行沒有被可信授權(quán)機(jī)構(gòu)102簽名的軟件模塊206的一個示例的框圖。如上所述,開發(fā)者 計算設(shè)備100可以與可以向其提供軟件開發(fā)者104創(chuàng)建的軟件106的計算設(shè)備100類型相 同。軟件106可以包括存儲在設(shè)備100上或可由設(shè)備100訪問的一個或多個軟件模塊 206。在一個實(shí)施例中,計算設(shè)備100的存儲設(shè)備209可以包括計算機(jī)可讀存儲介質(zhì)(易 失性和/或非易失性的),其可被配置為存儲軟件模塊206和簡檔208中的一個或兩者。 存儲設(shè)備209還可以被配置為存儲操作系統(tǒng)202的代碼,并且還可以包括設(shè)備100的通用 存儲設(shè)備。軟件模塊206可以被暫時存儲在設(shè)備100上或者永久性地存儲在設(shè)備100上。開發(fā)者計算設(shè)備100可以包括操作系統(tǒng)。操作系統(tǒng)可以是廣為公知的操作系 統(tǒng),例如MacOS、Windows> Linux、Unix、Symbian等等。如以上簡要地討論的,操作 系統(tǒng)的一部分(例如,操作系統(tǒng)202的內(nèi)核)可以被配置為要求在設(shè)備100上執(zhí)行的代碼 在被允許在設(shè)備上執(zhí)行之前被授權(quán)。該授權(quán)可以采取數(shù)字地簽名軟件模塊206中的一些 或全部的可信授權(quán)機(jī)構(gòu)102的形式。在一些實(shí)施例中,可信授權(quán)機(jī)構(gòu)102采用代碼簽名 證書,其可以被用于驗(yàn)證經(jīng)簽名的計算機(jī)代碼的來源和完整性。操作系統(tǒng)202所采用的存儲器的內(nèi)核空間在概念上可以被認(rèn)為是可信空間。信 任可以通過對內(nèi)核的引導(dǎo)時認(rèn)證來建立。在一個實(shí)施例中,計算設(shè)備100可以包括用于提供對操作系統(tǒng)202及其內(nèi)容所采用的內(nèi)核空間的引導(dǎo)時認(rèn)證的硬件支持。例如,在一 個實(shí)施例中,計算設(shè)備100的引導(dǎo)加載器可以例如采用適合的公鑰簽名驗(yàn)證來在加載和 引導(dǎo)內(nèi)核之前認(rèn)證內(nèi)核軟件的簽名。數(shù)字簽名可以包括摘要,該摘要例如可以通過在軟件上執(zhí)行散列函數(shù)以創(chuàng)建消 息摘要來創(chuàng)建。在一些實(shí)施例中,可以采用遞增代碼簽名。散列值可以是針對軟件的全 部或特定部分產(chǎn)生的散列值。例如,在一些實(shí)施例中,軟件被分為諸如一個或多個頁面 的一個或多個單元。散列值是針對軟件的每個單元或頁面生成的。在這種實(shí)施例中,軟 件的摘要包括針對每個代碼或頁面的散列值的陣列或表生成的散列值。然后可以利用與 可信授權(quán)機(jī)構(gòu)102相關(guān)聯(lián)的私用加密密鑰來加密消息摘要。在一個實(shí)施例中,廣為公知 的SHA-I函數(shù)可以用來生成消息摘要。然后可以將加密的消息摘要(也稱為簽名)附加 到一個或多個軟件模塊206。在一些實(shí)施例中,當(dāng)在設(shè)備上請求執(zhí)行軟件代碼時,操作系統(tǒng)202可以通過證 實(shí)數(shù)字簽名而驗(yàn)證軟件代碼的來源和完整性來處理請求。如果可信授權(quán)機(jī)構(gòu)102驗(yàn)證了 代碼的來源,并且代碼的完整性沒有被損害,則操作系統(tǒng)202可以允許代碼在計算設(shè)備 100上運(yùn)行。開發(fā)者計算設(shè)備100還可以包括設(shè)備標(biāo)識符204。設(shè)備標(biāo)識符204可以采取多種 形式。在一個實(shí)施例中,設(shè)備標(biāo)識符204可以是唯一地標(biāo)識開發(fā)者計算設(shè)備100的序列 號。在其他實(shí)施例中,設(shè)備標(biāo)識符204可以是操作系統(tǒng)202生成的唯一標(biāo)識符。如上所述,開發(fā)者計算設(shè)備100還可以具有可信授權(quán)機(jī)構(gòu)102創(chuàng)建的開發(fā)者訪問 簡檔208。開發(fā)者訪問簡檔208可以包括指示允許特定設(shè)備執(zhí)行沒有被可信授權(quán)機(jī)構(gòu)102 簽名的軟件的一組數(shù)據(jù)。在一個實(shí)施例中,開發(fā)者訪問簡檔208允許軟件開發(fā)者104修改 和重編譯其軟件模塊206的源代碼,然后在開發(fā)者計算設(shè)備100上測試軟件模塊206,而 無需從可信授權(quán)機(jī)構(gòu)102請求附加的代碼簽名服務(wù)。相反,軟件開發(fā)者104可以被允許 數(shù)字地簽名其軟件模塊206,并且在具有如下開發(fā)者訪問簡檔208的開發(fā)者計算設(shè)備100 上運(yùn)行軟件,該開發(fā)者訪問簡檔208指定開發(fā)者104簽名的代碼可以在設(shè)備100上執(zhí)行。 在一些實(shí)施例中,開發(fā)者訪問簡檔還可以指定在測試軟件模塊206中開發(fā)者104可以執(zhí)行 的特定操作。例如,開發(fā)者訪問簡檔208可以指定由開發(fā)者104數(shù)字簽名的軟件模塊206 可以在開發(fā)者計算設(shè)備100上被調(diào)試。開發(fā)者計算設(shè)備100還可以具有多于一個的開發(fā) 者訪問簡檔208。在一些實(shí)施例中,開發(fā)者訪問簡檔208可以與策略服務(wù)210相結(jié)合地操作。策 略服務(wù)210可以采取在操作系統(tǒng)的用戶(不可信)存儲器空間中運(yùn)行的守護(hù)(daemon)或 其他處理的形式。策略服務(wù)210可以被進(jìn)一步配置為執(zhí)行開發(fā)者訪問簡檔208中指定的 策略。例如,如果開發(fā)者訪問簡檔208指定開發(fā)者可以追蹤開發(fā)設(shè)備上的軟件的操作, 但是不允許進(jìn)行調(diào)試,那么策略服務(wù)210將允許追蹤操作,而不允許在調(diào)試模式下運(yùn)行 應(yīng)用程序。策略服務(wù)210可以是由操作系統(tǒng)202初始啟動的,操作系統(tǒng)202可以在加載服務(wù) 210之前驗(yàn)證該服務(wù)的加密保護(hù)的摘要。操作系統(tǒng)202可以經(jīng)由處理間通信或類似的適合 端口來保持對服務(wù)210的引用。由此,當(dāng)簡檔服務(wù)210在不可信或用戶模式的空間中執(zhí) 行時,簡檔服務(wù)210的代碼可以在執(zhí)行時被驗(yàn)證為由可信授權(quán)機(jī)構(gòu)簽名。
      圖3是開發(fā)者訪問簡檔208的更詳細(xì)視圖。如上所述,開發(fā)者訪問簡檔208可 以是存儲在設(shè)備100的存儲器中的一組數(shù)據(jù),其指示即使在軟件沒有被可信授權(quán)機(jī)構(gòu)102 簽名的情況下設(shè)備也被允許執(zhí)行該軟件。開發(fā)者訪問簡檔208可以包括設(shè)備標(biāo)識符數(shù)據(jù) 302、開發(fā)者標(biāo)識符數(shù)據(jù)304以及權(quán)利數(shù)據(jù)306。設(shè)備標(biāo)識符數(shù)據(jù)302指定開發(fā)者訪問簡檔208應(yīng)用到的一個或多個設(shè)備標(biāo)識符 302。在設(shè)備100是移動電話設(shè)備的實(shí)施例中,設(shè)備標(biāo)識符數(shù)據(jù)302可以包括移動電話設(shè) 備序列號的陣列。開發(fā)者訪問簡檔208的設(shè)備標(biāo)識符數(shù)據(jù)302可以包括不同設(shè)備的一個或多個設(shè)備 標(biāo)識符204。在一個實(shí)施例中,設(shè)備標(biāo)識符204可以是特定設(shè)備的特定標(biāo)識符,其可以被 表示為數(shù)字或字母數(shù)據(jù)。在其他實(shí)施例中,可以采用更廣義的設(shè)備標(biāo)識數(shù)據(jù)。例如,一 些設(shè)備銷售商和/或制造商可以提供具有特定于組織的設(shè)備標(biāo)識符的設(shè)備。例如,設(shè)備 銷售商和/或制造商可以基于設(shè)備遞送到的組織來定制與設(shè)備相關(guān)聯(lián)的設(shè)備標(biāo)識符204的 特定方面。設(shè)備標(biāo)識符數(shù)據(jù)302可以包括設(shè)備標(biāo)識符的范圍,而非列出每單個設(shè)備標(biāo)識符 值。在又一些實(shí)施例中,可以采用位掩碼(bit mask)或通配字符來指定開發(fā)者訪問簡檔 應(yīng)用到具有指定標(biāo)識符特性的所有設(shè)備。在又一些實(shí)施例中,設(shè)備標(biāo)識符數(shù)據(jù)302可以 指定開發(fā)者訪問簡檔208應(yīng)用于所有設(shè)備。例如,在一個這種實(shí)施例中,由開發(fā)者標(biāo)識 符數(shù)據(jù)302中標(biāo)識的一個或多個開發(fā)者簽名的軟件可以被授權(quán)以在安裝了開發(fā)者訪問簡 檔208的任何設(shè)備100上運(yùn)行。如上所述,開發(fā)者訪問簡檔208可以進(jìn)一步包括開發(fā)者標(biāo)識符數(shù)據(jù)304,該開發(fā) 者標(biāo)識符數(shù)據(jù)304指定開發(fā)者訪問簡檔208所應(yīng)用到的軟件開發(fā)者104。開發(fā)者標(biāo)識符數(shù) 據(jù)304可以采取多種形式。在一些實(shí)施例中,開發(fā)者標(biāo)識符數(shù)據(jù)304可以是與由開發(fā)者 訪問簡檔208覆蓋的軟件開發(fā)者104相關(guān)聯(lián)的公鑰。還可以采用其他類型的標(biāo)識符。在 一些實(shí)施例中,開發(fā)者標(biāo)識符數(shù)據(jù)304可以存儲在陣列數(shù)據(jù)結(jié)構(gòu)中,該陣列數(shù)據(jù)結(jié)構(gòu)存 儲在開發(fā)者訪問簡檔內(nèi)。當(dāng)然,可以采用任何適合的數(shù)據(jù)結(jié)構(gòu)。此外,開發(fā)者訪問簡檔208可以包括權(quán)利數(shù)據(jù)306。權(quán)利數(shù)據(jù)306可以包括如 下數(shù)據(jù),該數(shù)據(jù)指示針對由開發(fā)者標(biāo)識符數(shù)據(jù)304標(biāo)識的開發(fā)者簽名的軟件模塊206在設(shè) 備標(biāo)識符數(shù)據(jù)302中指定的設(shè)備100上允許的操作的類型。特定的開發(fā)者訪問簡檔208 可以指定多于一個的開發(fā)者104為被授權(quán),以數(shù)字地簽名由開發(fā)者訪問簡檔208授權(quán)的代碼。權(quán)利數(shù)據(jù)306可以指定關(guān)于在設(shè)備標(biāo)識符數(shù)據(jù)302中標(biāo)識的設(shè)備100針對由開發(fā) 者標(biāo)識符數(shù)據(jù)304中標(biāo)識的開發(fā)者104所簽名的應(yīng)用程序所允許的訪問的類型。權(quán)利數(shù)據(jù) 306可以采取鍵值對的形式。該值例如可以包括數(shù)字、布爾或字母數(shù)據(jù)。在一個實(shí)施例 中,權(quán)利數(shù)據(jù)306可以包括指示各種指定權(quán)利的預(yù)定布爾變量的陣列或其他數(shù)據(jù)結(jié)構(gòu)。在一個實(shí)施例中,權(quán)利數(shù)據(jù)306可以包括被執(zhí)行的能力。在一個實(shí)施例中,可 以包括準(zhǔn)許調(diào)試權(quán)利,該準(zhǔn)許調(diào)試權(quán)利在特定簡檔中被設(shè)置為“真(TRUE)”時指示與 開發(fā)者訪問簡檔208相關(guān)聯(lián)的開發(fā)者104所簽名的代碼被允許在調(diào)試模式下在設(shè)備100上 執(zhí)行軟件模塊206。如果準(zhǔn)許調(diào)試模式權(quán)利被設(shè)置為“假(FALSE)”并且開發(fā)者104試 圖在設(shè)備100上在調(diào)試模式下運(yùn)行軟件,則策略服務(wù)210可以阻止對代碼的執(zhí)行。其他這種權(quán)利可以包括可以指示準(zhǔn)許追蹤權(quán)利的權(quán)利數(shù)據(jù)。準(zhǔn)許追蹤權(quán)利可以準(zhǔn)許由開發(fā)者 104數(shù)字簽名的軟件模塊206在設(shè)備100上在追蹤模式下被編譯和執(zhí)行。其他權(quán)利可以控制對具有安全或私密暗示(例如,地址簿數(shù)據(jù))的設(shè)備100的聯(lián) 網(wǎng)資源、數(shù)據(jù)、庫或應(yīng)用程序的訪問。另外,其他權(quán)利可以控制對特定開發(fā)者API(包括 通話、聯(lián)網(wǎng)、地址或電話存儲、或多媒體API)的訪問。圖4是例示了在系統(tǒng)接收到并且處理請求時在一個實(shí)施例的計算設(shè)備100的軟件 部件之間發(fā)生的事件之間的關(guān)系的框圖。如圖所示,在事件1中,可包括可信空間的操 作系統(tǒng)202可以接收請求(響應(yīng)于執(zhí)行特定軟件模塊206的用戶請求,或者響應(yīng)于請求設(shè) 備100上的另一軟件部件執(zhí)行特定軟件模塊206)以執(zhí)行標(biāo)識的軟件模塊206。在一個實(shí) 施例中,該請求可以包括對存儲設(shè)備209的目錄或文件的引用,存儲設(shè)備209存儲軟件模 塊206的可執(zhí)行指令代碼。在事件2中,操作系統(tǒng)202可以將認(rèn)證軟件模塊206的請求傳送給策略服務(wù) 210。在一個實(shí)施例中,認(rèn)證請求可以包括對與軟件模塊206相關(guān)聯(lián)的存儲設(shè)備209中的 存儲位置的引用。操作系統(tǒng)202還可以將軟件模塊206的至少一部分的摘要提供給策略 服務(wù)210。另選地或者另外地,策略服務(wù)210可以生成軟件模塊206的全部或部分的摘 要。在一個實(shí)施例中,摘要可以基于針對與軟件模塊206相關(guān)聯(lián)的每個代碼頁面或每個 文件所確定的摘要值。在一個實(shí)施例中,對策略服務(wù)210的請求可以包括諸如要被執(zhí)行 的特定權(quán)利的其他數(shù)據(jù)。例如,操作系統(tǒng)202可以指定,權(quán)利可以是執(zhí)行、調(diào)試或者訪問指定的系統(tǒng)資 源的權(quán)利。操作系統(tǒng)202或者設(shè)備100的操作系統(tǒng)的另一部分可以被配置為請求訪問特定 網(wǎng)絡(luò)(例如,移動電話網(wǎng)絡(luò)、藍(lán)牙堆棧)或者設(shè)備100的特定能力(例如,訪問設(shè)備100 的傳聲器、揚(yáng)聲器、照相機(jī)或者其他I/O接口)的權(quán)利授權(quán)。在事件5中,策略服務(wù)210可以訪問與執(zhí)行軟件模塊206相關(guān)聯(lián)的一個或多個簡 檔208。在一個實(shí)施例中,簡檔是從存儲設(shè)備209訪問的。在一個實(shí)施例中,簡檔208 包括與軟件模塊206的開發(fā)者相關(guān)聯(lián)的特定簡檔??梢哉J(rèn)識到,盡管這里是針對軟件開 發(fā)者104而非可信授權(quán)機(jī)構(gòu)102描述了簡檔,但是還可以利用這里描述的系統(tǒng)和方法來控 制對由可信授權(quán)機(jī)構(gòu)102 (例如,設(shè)備或操作系統(tǒng)開發(fā)者)提供的軟件模塊的訪問。在事件5中,策略服務(wù)210可以基于摘要和/或簡檔208驗(yàn)證軟件模塊206的執(zhí) 行權(quán)限。例如,策略服務(wù)210可以被配置為接收與軟件模塊206的摘要相關(guān)聯(lián)的簽名, 并且加密驗(yàn)證所述摘要。在一個實(shí)施例中,策略服務(wù)210可以采用與特定開發(fā)者104相 關(guān)聯(lián)的并且可以被包括作為簡檔208的一部分的公鑰,來驗(yàn)證摘要的簽名。在一個實(shí)施例中,為了確保簡檔和開發(fā)者密鑰是可信的,策略服務(wù)210加密地 驗(yàn)證簡檔可由可信授權(quán)機(jī)構(gòu)102信任。在該實(shí)施例中,策略服務(wù)210可以通過采用可存 儲在設(shè)備100上或者例如經(jīng)由數(shù)據(jù)網(wǎng)絡(luò)以其他方式由設(shè)備100訪問的可信授權(quán)機(jī)構(gòu)102的 公鑰而驗(yàn)證簡檔(及其內(nèi)容)的摘要或其他簽名來驗(yàn)證簡檔。策略服務(wù)210可以被進(jìn)一步配置為驗(yàn)證可針對特定設(shè)備100授權(quán)軟件模塊206。 例如,在一個實(shí)施例中,簡檔208可以包括用于匹配設(shè)備標(biāo)識符(例如,用于匹配特定組 設(shè)備100的掩碼或通配符)的一個或多個設(shè)備標(biāo)識符或數(shù)據(jù)。策略服務(wù)210可以將標(biāo)識符與設(shè)備100所安全保持的標(biāo)識符進(jìn)行比較,并且當(dāng)策略208的標(biāo)識符數(shù)據(jù)與設(shè)備100的標(biāo)識符數(shù)據(jù)匹配時授權(quán)軟件模塊。設(shè)備標(biāo)識符可以包 括存儲在設(shè)備上可用于標(biāo)識的任何數(shù)據(jù),包括制造商序號、諸如集成電路卡ID (ICCID) 的移動電話設(shè)備的設(shè)備或用戶標(biāo)識符、當(dāng)前插入到設(shè)備100上的SIM卡的國際移動用戶 標(biāo)識符(IMSI)、設(shè)備上編碼的國際移動設(shè)備標(biāo)識符(IMEI)、電子序號(ESN)、或者任何 其他適于標(biāo)識特定軟件模塊206針對其被授權(quán)的設(shè)備100的數(shù)據(jù)。策略服務(wù)210可以被配置為基于簡檔208所指定的進(jìn)一步的權(quán)利或其他能力來授 權(quán)軟件模塊206??蓤?zhí)行或不可執(zhí)行可以被認(rèn)為是權(quán)利的一個示例。其他權(quán)利可以指定 特定軟件模塊206是否可以基于一個或多個簡檔208并基于策略服務(wù)210可配置為執(zhí)行的 任何其他策略來執(zhí)行或訪問服務(wù)。策略服務(wù)210可以被配置為在用戶空間執(zhí)行,使得其中執(zhí)行的策略和簡檔可以 是任意復(fù)雜并進(jìn)行更新的而不會增加內(nèi)核或其他受保護(hù)的存儲器空間的尺寸,并且更容 易被開發(fā)和修改而沒有一般與內(nèi)核編程相關(guān)聯(lián)的困難。應(yīng)當(dāng)認(rèn)識到,盡管圖5例示了操作系統(tǒng)202確定特定軟件模塊206是否具有要被 執(zhí)行的權(quán)利的示例,但是這里描述的方法和系統(tǒng)可以用于授權(quán)對設(shè)備硬件能力、內(nèi)核的 其他服務(wù)、其他操作系統(tǒng)服務(wù)、或者另一軟件模塊208的服務(wù)的訪問。例如,設(shè)備100 可以包括例如由操作系統(tǒng)202或僅根據(jù)被策略服務(wù)210執(zhí)行的策略授權(quán)的其他操作系統(tǒng)部 件提供的調(diào)試或追蹤工具(facility)。例如,調(diào)試器接口(未示出)可以請求基于與軟件 模塊206相關(guān)聯(lián)的簡檔208中指定的調(diào)試權(quán)利或者通過其他策略來授權(quán)利用圖5所示的系 統(tǒng)對特定軟件模塊206的調(diào)試??梢酝ㄟ^與設(shè)備相關(guān)聯(lián)的一個或多個策略來執(zhí)行權(quán)利。例如,用于執(zhí)行權(quán)利的 策略可以包括將簡檔中的權(quán)利數(shù)據(jù)處理為白名單(whitelist),例如,當(dāng)簡檔208可以包括 指示存在針對特定軟件模塊206和/或特定設(shè)備100的權(quán)利的數(shù)據(jù)時,可以針對特定這種 權(quán)利認(rèn)證軟件模塊206。另一策略可以基于黑名單(blacklist)執(zhí)行權(quán)利,例如,軟件模塊 206可以針對特定這種權(quán)利被認(rèn)證,除非簡檔208或可應(yīng)用的策略可以包括否定針對特定 軟件模塊206和/或特定設(shè)備100的權(quán)利的數(shù)據(jù)。在另一實(shí)施例中,設(shè)備100可以被配 置具有如下策略,該策略使得一些權(quán)利可以被配置為通過白名單執(zhí)行,而其他權(quán)利被配 置為通過黑名單執(zhí)行。可以包括其他策略以更精細(xì)地控制特定權(quán)利或解決沖突的簡檔數(shù)據(jù)。例如,在 一個實(shí)施例中,移動服務(wù)提供商可以在其網(wǎng)絡(luò)中使用的設(shè)備中包括特定承載商簡檔208, 該簡檔進(jìn)一步指定對例如語音網(wǎng)絡(luò)或撥號盤訪問的特定設(shè)備能力的權(quán)利,其可能與針對 特定軟件模塊206的開發(fā)者簡檔208相沖突。在這種事件中,設(shè)備100的策略可以指定 一個簡檔的權(quán)利指定來控制。在事件6中,當(dāng)策略服務(wù)210可以驗(yàn)證軟件模塊240的權(quán)利和/或其他執(zhí)行權(quán)限 時,策略服務(wù)210向操作系統(tǒng)202或策略服務(wù)210的其他客戶端提供指示軟件模塊206的 權(quán)利和/或認(rèn)證請求所針對的權(quán)利的數(shù)據(jù)。在事件7中,操作系統(tǒng)202然后可以根據(jù)從 策略服務(wù)210接收到的權(quán)利數(shù)據(jù)來執(zhí)行軟件模塊206。圖5是例示了在設(shè)備100中驗(yàn)證軟件模塊206的權(quán)利的方法500的一個實(shí)施例的 流程圖。該方法可以在塊502處開始,在塊502中操作系統(tǒng)202的可信空間接收執(zhí)行特 定軟件模塊206的請求。在一個實(shí)施例中,可信空間可以在通過設(shè)備100的引導(dǎo)加載器(其在加載操作系統(tǒng)202前對其進(jìn)行加密驗(yàn)證)啟動設(shè)備時建立。在塊504中,可信空間處理將指示軟件模塊206的數(shù)據(jù)傳送到在不可信空間中執(zhí) 行的策略服務(wù)210,但是該不可信空間在初始執(zhí)行策略服務(wù)210時已被授予信任。數(shù)據(jù) 可以包括對軟件模塊206的存儲位置的引用,并且可選地包括指示特定權(quán)利被認(rèn)證的數(shù)據(jù)。接下去在塊506處,策略服務(wù)210認(rèn)證軟件模塊206。在一個實(shí)施例中,策略服 務(wù)210基于加密認(rèn)證來認(rèn)證軟件模塊206。例如,策略服務(wù)210可以通過采用諸如非對稱 /公鑰加密的適合加密技術(shù)驗(yàn)證軟件模塊206的數(shù)字簽名來認(rèn)證軟件模塊206。此外,可 以利用類似的加密技術(shù)來認(rèn)證與軟件模塊206相關(guān)聯(lián)的一個或多個權(quán)利。參照圖6將給 出塊506的更多細(xì)節(jié)。前進(jìn)到塊508,策略服務(wù)210將指示軟件模塊的執(zhí)行權(quán)限的數(shù)據(jù)傳送到操作系統(tǒng) 202的內(nèi)核。該數(shù)據(jù)可以包括布爾認(rèn)證響應(yīng)、指示軟件模塊206的一個或多個權(quán)利的數(shù) 據(jù)、軟件模塊206的經(jīng)驗(yàn)證摘要或者與請求相關(guān)的任何其他適合數(shù)據(jù)。在塊510中,操作系統(tǒng)202或其他可信處理可以執(zhí)行軟件模塊206,或者可以基 于經(jīng)認(rèn)證的權(quán)利執(zhí)行針對軟件模塊206的服務(wù)。圖6是更詳細(xì)地例示了圖5的方法中的塊506的流程圖。在塊602處,策略服 務(wù)210可以計算與軟件模塊206的可執(zhí)行代碼相關(guān)聯(lián)的至少一個文件或其他數(shù)據(jù)結(jié)構(gòu)的摘 要。摘要可以利用例如包括SHA-I的任何適合散列算法來計算。在塊604中,策略服務(wù)210可以識別與軟件模塊206和/或設(shè)備100相關(guān)聯(lián)的一 個或多個簡檔208。在一個實(shí)施例中,簡檔208可以各自包括簽名密鑰和指示軟件模塊 206的權(quán)利的數(shù)據(jù)。例如,權(quán)利可以包括諸如表1中例示的表格形式的數(shù)據(jù)結(jié)構(gòu)。表1示例簡檔數(shù)據(jù)
      權(quán)利要求
      1.一種授權(quán)軟件的方法,該方法包括 在第一程序中接收來自第二程序的請求;識別包括與所述第二程序相關(guān)聯(lián)的至少一個權(quán)利的簡檔; 基于指示所述簡檔的第一摘要來認(rèn)證該簡檔; 基于指示所述第二程序的第二摘要來認(rèn)證所述第二程序;以及 基于所述權(quán)利執(zhí)行所述請求。
      2.根據(jù)權(quán)利要求1所述的方法,還包括將指示所述第二程序的數(shù)據(jù)傳送到在所述設(shè)備上執(zhí)行的策略服務(wù),其中,所述服務(wù) 執(zhí)行對所述第一摘要和第二摘要的認(rèn)證;以及將指示所述至少一個權(quán)利的數(shù)據(jù)傳送到所述第一程序。
      3.根據(jù)權(quán)利要求1所述的方法,還包括認(rèn)證與服務(wù)提供商相關(guān)聯(lián)的至少一個簡 檔,其中,執(zhí)行所述請求至少部分地基于所述服務(wù)提供商的簡檔。
      4.根據(jù)權(quán)利要求3所述的方法,其中,所述服務(wù)提供商的至少一個簡檔包括指示針對 所述第二程序準(zhǔn)許或不準(zhǔn)許的一個或多個權(quán)利的數(shù)據(jù)。
      5.根據(jù)權(quán)利要求1所述的方法,其中,所述第一程序和第二程序中的每一個都至少包 括應(yīng)用程序或共享庫。
      6.根據(jù)權(quán)利要求1所述的方法,認(rèn)證所述第二程序包括計算指示所述第二程序的 可執(zhí)行指令的至少一部分的第二摘要。
      7.根據(jù)權(quán)利要求6所述的方法,其中,計算指示所述第二程序的摘要包括基于指 示所述第二程序的可執(zhí)行指令的相應(yīng)部分的多個摘要值來生成摘要。
      8.根據(jù)權(quán)利要求1所述的方法,其中,所述第一摘要和第二摘要中的至少一個包括指 示所述至少一個部分的SHA-I散列。
      9.根據(jù)權(quán)利要求1所述的方法,其中,認(rèn)證所述第二程序包括基于與所述第二程 序相關(guān)聯(lián)的實(shí)體的加密密鑰來認(rèn)證所述第二摘要的加密簽名。
      10.根據(jù)權(quán)利要求1所述的方法,其中,認(rèn)證所述簡檔包括基于與所述簡檔相關(guān)聯(lián) 的實(shí)體的加密密鑰來認(rèn)證第一摘要的加密簽名。
      11.根據(jù)權(quán)利要求1所述的方法,其中,認(rèn)證所述簡檔包括將所述簡檔的設(shè)備標(biāo)識符與所述設(shè)備的設(shè)備標(biāo)識符進(jìn)行比較;以及 基于所述比較來認(rèn)證權(quán)利;
      12.根據(jù)權(quán)利要求1所述的方法,還包括確定所述第二程序的權(quán)利是否與所述至少一 個簡檔一致,并且其中執(zhí)行所述第二程序至少部分地基于所述確定。
      13.根據(jù)權(quán)利要求1所述的方法,其中,所述第二程序的權(quán)利包括準(zhǔn)許訪問數(shù)據(jù)庫權(quán) 利、準(zhǔn)許訪問密鑰權(quán)利、準(zhǔn)許訪問地址簿數(shù)據(jù)權(quán)利或者準(zhǔn)許訪問多媒體API權(quán)利中的至 少一個或多個。
      14.一種計算機(jī)可讀介質(zhì),包括指示代碼的數(shù)據(jù),該代碼可由電子設(shè)備的至少一個處 理器執(zhí)行以實(shí)現(xiàn)包括如下的處理在第一程序中接收來自第二程序的請求,第一程序和第二程序在所述設(shè)備上執(zhí)行; 識別包括與所述第二程序相關(guān)聯(lián)的至少一個權(quán)利的簡檔; 基于指示所述簡檔的第一摘要來認(rèn)證該簡檔;基于指示所述第二程序的第二摘要來認(rèn)證所述第二程序;以及 基于所述權(quán)利執(zhí)行所述請求。
      15.—種設(shè)備,包括存儲介質(zhì),該存儲介質(zhì)配置為 存儲用于在所述設(shè)備上執(zhí)行的第一程序和第二程序;和存儲至少一個簡檔,該至少一個簡檔包括至少與所述第二程序相關(guān)聯(lián)的至少一個權(quán) 利;以及至少一個處理器,該至少一個處理器配置為在第一程序中接收來自第二程序的請求;識別包括與所述第二程序相關(guān)聯(lián)的至少一個權(quán)利的簡檔;基于指示所述簡檔的第一摘要來認(rèn)證該簡檔;基于指示所述第二程序的第二摘要來認(rèn)證所述第二程序;以及基于所述權(quán)利執(zhí)行所述請求。
      16.根據(jù)權(quán)利要求15所述的設(shè)備,其中所述處理器還配置為將指示所述第二程序的數(shù)據(jù)傳送到在所述設(shè)備上執(zhí)行的策略服務(wù),其中,所述服務(wù) 執(zhí)行對所述第一摘要和第二摘要的認(rèn)證;以及將指示所述至少一個權(quán)利的數(shù)據(jù)傳送到所述第一程序。
      17.根據(jù)權(quán)利要求15所述的設(shè)備,其中所述處理器還配置為認(rèn)證與服務(wù)提供商相關(guān)聯(lián) 的至少一個簡檔,其中所述處理器配置為至少部分地基于所述服務(wù)提供商的簡檔執(zhí)行所 述請求。
      18.根據(jù)權(quán)利要求17所述的設(shè)備,其中,所述服務(wù)提供商的至少一個簡檔包括指示針 對所述第二程序準(zhǔn)許或不準(zhǔn)許的一個或多個權(quán)利的數(shù)據(jù)。
      19.根據(jù)權(quán)利要求15所述的設(shè)備,其中,所述第一程序和第二程序中的每一個都至少 包括應(yīng)用程序或共享庫。
      20.根據(jù)權(quán)利要求15所述的設(shè)備,其中所述處理器配置為通過計算指示所述第二 程序的可執(zhí)行指令的至少一部分的第二摘要,來執(zhí)行第二程序。
      21.根據(jù)權(quán)利要求15所述的設(shè)備,其中所述處理器配置為通過基于指示所述第二 程序的相應(yīng)部分的多個摘要值計算第二摘要,來執(zhí)行第二程序。
      22.根據(jù)權(quán)利要求15所述的設(shè)備,其中,所述第一摘要和第二摘要中的至少一個包括 指示所述至少一個部分的SHA-I散列。
      23.根據(jù)權(quán)利要求15所述的設(shè)備,其中所述處理器配置為通過基于與所述第二程 序相關(guān)聯(lián)的實(shí)體的加密密鑰來認(rèn)證所述第二摘要的加密簽名,從而認(rèn)證所述第二程序。
      24.根據(jù)權(quán)利要求15所述的方法,其中所述處理器配置為通過基于與所述簡檔相 關(guān)聯(lián)的實(shí)體的加密密鑰來認(rèn)證第一摘要的加密簽名,從而認(rèn)證所述簡檔。
      25.根據(jù)權(quán)利要求15所述的設(shè)備,其中所述處理器配置為通過如下操作來認(rèn)證所述簡檔將所述簡檔的設(shè)備標(biāo)識符與所述設(shè)備的設(shè)備標(biāo)識符進(jìn)行比較;以及 基于所述比較來認(rèn)證權(quán)利;
      26.根據(jù)權(quán)利要求15所述的設(shè)備,其中所述處理器還配置為確定所述第二程序的權(quán)利是否與所述至少一個簡檔一致,并且其中執(zhí)行所述第二程序至少部分地基于所述確定。
      27.根據(jù)權(quán)利要求15所述的設(shè)備,其中,所述第二程序的權(quán)利包括準(zhǔn)許訪問數(shù)據(jù)庫權(quán) 利、準(zhǔn)許訪問密鑰權(quán)利、準(zhǔn)許訪問地址簿數(shù)據(jù)權(quán)利或者準(zhǔn)許訪問多媒體API權(quán)利中的至 少一個或多個。
      全文摘要
      實(shí)施例包括用于授權(quán)軟件代碼在安全操作環(huán)境中執(zhí)行或訪問性能的系統(tǒng)和方法。簡檔可由可信實(shí)體發(fā)出,以將信任擴(kuò)展到其他實(shí)體,從而準(zhǔn)許這些其他實(shí)體在安全操作環(huán)境中,例如在特定計算設(shè)備上,提供或控制應(yīng)用程序的執(zhí)行??梢栽诘谝怀绦蛑薪邮諄碜缘诙绦虻恼埱?。然后識別簡檔。該簡檔包括與所述第二程序相關(guān)聯(lián)的至少一個權(quán)利?;谥甘舅龊啓n的第一摘要來認(rèn)證該簡檔,并且基于指示所述第二程序的第二摘要來認(rèn)證所述第二程序。然后基于所述權(quán)利執(zhí)行所述請求。
      文檔編號G06F21/00GK102016865SQ200980115990
      公開日2011年4月13日 申請日期2009年3月2日 優(yōu)先權(quán)日2008年3月4日
      發(fā)明者D·德阿特勒, H·潘塞, M·麗達(dá), M·安德勒爾, M·布勞沃, S·庫鉑 申請人:蘋果公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1