更新軟件的方法和系統的制作方法
【專利摘要】提供更新軟件的方法和系統。一種更新軟件的方法包括:在非安全執行環境中驗證驅動安全執行環境的第一軟件的更新;通過使用在非安全執行環境中存儲的第一軟件更新的第一鏡像來更新第一軟件;在安全執行環境中驗證驅動由安全執行環境控制的安全裝置的第二軟件的更新;以及通過使用在安全執行環境中存儲的第二軟件更新的第二鏡像來更新第二軟件。
【專利說明】
更新軟件的方法和系統[0001 ] 本申請要求于2015年4月27日提交到韓國知識產權局的第10-2015-0058930號韓 國專利申請的優先權,該韓國專利申請的公開通過引用全部合并于此。
技術領域
[0002]本公開涉及一種更新軟件的方法和系統。【背景技術】
[0003]在包括移動裝置的計算裝置中,可以利用使用包括富執行環境(REE)和可信執行環境(TEE)的平臺的安全機制。富執行環境包括非安全執行環境,并且可信執行環境包括提供對要求安全性的數據或硬件的獨占訪問的安全執行環境。例如,一個或多個處理器可以托管(host)REE和TEE兩者,TEE與REE隔離,并且處理器確保可以僅在TEE中執行一些操作。 為了確保安全機制的可靠性,安裝在TEE和由TEE控制的安全元件(SE)中的軟件(例如,固件)不應該被偽造或篡改。
【發明內容】
[0004]本公開的一方面提供一種控制TEE和SE的安全更新軟件的方法。
[0005]本公開的另一方面提供一種控制TEE和SE的安全更新軟件的系統以及計算機可讀記錄介質。
[0006]本公開的各方面不限于上述技術問題,而且本領域技術人員通過下面的描述將清楚地理解還沒有提及的其他方面。
[0007]根據本公開的一方面,提供一種更新軟件的方法。所述方法包括:使用在非安全執行環境中操作的處理器和第一更新管理器,在非安全執行環境中驗證驅動安全執行環境的第一軟件的更新;使用第一更新管理器,通過使用在非安全執行環境中存儲的第一軟件更新的第一鏡像來更新第一軟件;使用在安全執行環境中操作的處理器和第二更新管理器, 在安全執行環境中驗證驅動由安全執行環境控制的安全裝置的第二軟件的更新;以及使用第二更新管理器,通過使用在安全執行環境中存儲的第二軟件更新的第二鏡像來更新第二軟件。驗證第一軟件的更新和第二軟件的更新的步驟包括:驗證第一軟件更新和第二軟件更新的正確的軟件版本或者容量。
[0008]根據本公開的一方面,提供一種更新軟件的方法。所述方法包括:使用鏡像管理器,在非安全執行環境中存儲鏡像數據,其中,鏡像數據包括:用于第一軟件的更新的第一鏡像以及用于第二軟件的更新的第二鏡像,其中,第一軟件驅動安全執行環境,第二軟件驅動由安全執行環境控制的安全裝置;使用在非安全執行環境中操作的第一更新管理器,通過使用鏡像數據的第一鏡像在非安全執行環境中更新第一軟件;提取在鏡像數據中包括的第二鏡像,以使用鏡像管理器在安全執行環境中存儲第二鏡像;以及使用在安全執行環境中操作的第二更新管理器,通過使用在安全執行環境中存儲的第二鏡像在安全執行環境中更新第二軟件。
[0009]根據本公開的一方面,提供一種更新軟件的系統。所述系統包括:處理器;第一更新管理器,在非安全執行環境中操作;以及第二更新管理器,在安全執行環境中操作。第一更新管理器通過使用處理器來驗證驅動安全執行環境的第一軟件的更新,并且通過使用在非安全執行環境中存儲的第一軟件更新的第一鏡像來更新第一軟件。第二更新管理器通過使用處理器來驗證驅動由安全執行環境控制的安全裝置的第二軟件的更新,并且通過使用在安全執行環境中存儲的第二軟件更新的第二鏡像來更新第二軟件。驗證第一軟件的更新和第二軟件的更新的步驟包括:驗證第一軟件更新和第二軟件更新的正確的軟件版本或者容量。
[0010]根據本公開的一方面,提供一種存儲使計算機執行通過使用處理器驗證軟件更新的方法的一個或多個指令字的非暫時性計算機可讀記錄介質。所述方法包括:在第一執行環境中驅動第二執行環境,并且使計算機通過使用在第一執行環境中存儲的軟件更新的鏡像來更新軟件。【附圖說明】
[0011]通過參照附圖對本公開的示例性實施例的詳細描述,本公開的上述以及其他方面和特征將會變得更加清楚,其中:
[0012]圖1是根據本公開的實施例的用于解釋更新軟件的系統的示意圖;
[0013]圖2是根據本公開的實施例的用于解釋更新軟件的系統的更新管理器的示意圖;
[0014]圖3是根據本公開的實施例的用于解釋鏡像數據的結構的示意圖;
[0015]圖4是根據本公開的實施例的用于解釋更新軟件的方法的示意圖;
[0016]圖5是根據本公開的另一實施例的用于解釋鏡像數據的結構的示意圖;
[0017]圖6是根據本公開的另一實施例的用于解釋更新軟件的方法的示意圖;
[0018]圖7是根據本公開的再一實施例的用于解釋鏡像數據的結構的示意圖;
[0019]圖8是根據本公開的再一實施例的用于解釋更新軟件的方法的示意圖;
[0020]圖9是根據本公開的再一實施例的用于解釋鏡像數據的結構的示意圖;[0021 ]圖10是根據本公開的再一實施例的用于解釋更新軟件的方法的示意圖;
[0022]圖11是根據本公開的實施例的用于解釋更新軟件的方法的流程圖;
[0023]圖12是根據本公開的實施例的用于解釋更新軟件的方法的流程圖;
[0024]圖13是根據本公開的實施例的用于解釋更新軟件的方法的流程圖;以及
[0025]圖14至圖16是根據本公開的實施例的更新軟件的方法和系統適用的示例性半導體系統。【具體實施方式】
[0026]將參照附圖來詳細描述實施例。然而,本公開可以以多種不同形式實現,并且不應該被解釋為僅受限于示出的實施例。相反,提供這些實施例作為示例,使得本公開將是徹底的和完整的,并且將本公開的構思充分地傳達給本領域的技術人員。因此,對于本公開的一些實施例,不描述已知的處理、元件和技術。除非另有說明,否則貫穿附圖和書面描述,相同的參考標號表示相同的元件,因此將不再重復描述。在附圖中,為了清楚,可以夸大層和區域的大小和相對大小。
[0027]應當理解,盡管在這里可以使用術語“第一”、“第二”、“第三”等來描述不同的元件、組件、區域、層和/或部分,但是這些元件、組件、區域、層和/或部分不應該受這些術語的限制。這些術語僅是用來將一個元件、組件、區域、層或部分與另一個元件、組件、區域、層或部分進行區分。因此,在不脫離本公開教導的情況下,下面討論的第一元件、組件、區域、層或部分可以被稱作第二元件、組件、區域、層或部分。
[0028]如附圖所示,為便于描述一個元件或特征與另一元件或特征的關系,在這里可以使用空間相對術語,諸如“在…之下”、“在…以下”、“下方”、“下面”、“在…以上”、“上方”等。 應當理解,空間相對術語意在包含除了在附圖中描繪的方位之外的在使用或操作中的裝置的不同方位。例如,如果附圖中的裝置被翻轉,則被描述為處于另一元件或特征“以下”或 “之下”或“下面”的元件隨后可以被定位為處于另一元件或特征“上面”。因此,示例性詞語 “在…以下”和“下面”可以包含“在…以上”和“在…以下”兩種方位。所述裝置可朝向另外的方位(旋轉90度或者在其它方位),并且對在這里使用的空間相對描述符相應地進行解釋。 另外,還應當理解,當層被稱為在兩個層“之間”時,它可以是這兩個層之間的唯一的層,或者也可以存在一個或多個中間層。
[0029]在此所使用的術語僅用于描述具體實施例的目的,并非意在限制本公開。如在此所使用的,除非上下文另外清楚地指示,否則單數形式也意圖包括復數形式。還應當理解, 當術語“包括”和/或“包含”在本說明書中使用時,說明存在所陳述的特征、整體、步驟、操作、元件和/或組件,但是不排除存在或附加一個或多個其它特征、整體、步驟、操作、元件、 組件和/或它們的組。如在此所使用的術語“和/或”包括一個或多個相關所列的項的任意組合和所有組合。此外,術語“示例性”意在表示示例或說明。
[0030]應當理解,當元件或層被稱為在另一元件或層“上”,“連接到”、“耦接到”另一元件或層,或者與另一元件或層“相鄰”時,它可以直接在另一元件或層上,直接連接到、耦接到另一元件或層,或者與另一元件或層直接相鄰,或者可以存在中間元件或層。相反,當一個元件被稱為“直接在”另一元件或層“上”,“直接連接到”、“直接耦接到”另一元件或層,或者與另一元件或層“直接相鄰”時,則不存在中間元件或層。
[0031]除非另有定義,否則這里使用的所有術語(包括技術和科學術語)具有與本公開所屬領域的普通技術人員通常理解的含義相同的含義。還應當理解,除非在此明確定義,否則如常用詞典中所定義的術語應該被解釋為具有與它們在相關領域和/或本說明的上下文中的含義一致的含義,并且不應被解釋為理想化或過于形式的意義。
[0032]圖1是根據本公開的實施例的用于解釋更新軟件的系統的示意圖。[〇〇33]參照圖1,根據本公開的實施例的更新軟件的系統1包括處理器10、顯示器12、存儲器14、輸入裝置16、內存18和安全元件(SE)20。處理器10、顯示器12、存儲器14、輸入裝置16、 內存18和SE 20通過總線22電連接在一起,以能夠彼此發送和接收數據。[〇〇34]在本公開的各種實施例中,內存18可以包括操作系統24、更新管理器100和鏡像管理器200。在此,操作系統24可以包括在非安全執行環境210中操作的非安全內核216和在安全執行環境220中操作的安全內核226。此外,更新管理器100和鏡像管理器200可以不包括在內存18中,而是被單獨地實現。[〇〇35]更新管理器100通過使用在非安全執行環境210中存儲的鏡像來更新驅動安全執行環境220的軟件,并且通過使用在安全執行環境220中存儲的鏡像來更新驅動安全元件20的軟件。在此,鏡像可以是指包括能夠驅動各種類型的半導體裝置(例如,計算系統、移動裝置、安全硬件和裝置控制器)的軟件或操作系統的數據的“軟件鏡像”。更新管理器100包括在非安全執行環境210中操作的第一更新管理器110和在安全執行環境220中操作的第二更新管理器120。稍后將參照圖2來描述第一更新管理器110和第二更新管理器120的具體描述。[〇〇36]鏡像管理器200可以存儲用于在非安全執行環境210或安全執行環境220中更新驅動安全執行環境220的軟件或驅動安全元件20的軟件的軟件鏡像,或者可以對編碼的軟件進行解碼。[〇〇37] 在本公開的一些實施例中,更新管理器100和鏡像管理器200可以被實現為軟件程序并被加載在內存18中,或可以在處理器10上執行更新管理器100和鏡像管理器200。然而, 本公開的范圍不限于于此,并且在本公開的一些實施例中,更新管理器100和鏡像管理器 200可以被實現為硬件,諸如包括電子電路的芯片。
[0038]圖2是根據本公開的實施例的用于解釋更新軟件的系統的更新管理器的示意圖。
[0039]參照圖2,根據本公開的實施例的更新軟件的系統2包括非安全執行環境210和安全執行環境220。在本公開的一些實施例中,非安全執行環境210可以包括富執行環境 (REE),安全執行環境220可以包括可信執行環境(TEE)。
[0040]非安全執行環境210可以包括第一更新管理器(TEE更新管理器)110、非安全應用 213、非安全應用214、非安全API(應用程序接口)215和非安全內核216。[〇〇411 第一更新管理器110在非安全執行環境210中操作,并且驗證驅動安全執行環境 220的第一軟件的更新。在本公開的一些實施例中,第一更新管理器110可以驗證二進制散列(binary hash)、安全執行環境220的軟件版本信息和第一軟件更新的軟件版本信息中的至少一個。此外,第一更新管理器110使用在非安全執行環境210中存儲的第一軟件更新的第一鏡像來更新第一軟件。在本公開的一些實施例中,在第一更新管理器110驗證第一軟件更新之前,可以通過鏡像管理器200在非安全執行環境210中存儲第一軟件更新。同時,在本公開的一些實施例中,第一軟件可以包括驅動安全執行環境220的固件或應用。
[0042]非安全應用213、非安全應用214執行不被保護的操作或功能。例如,非安全應用 213、非安全應用214可以包括預加載應用、本機應用等,但是本公開的范圍不限于此。[〇〇43]非安全API 215提供啟用非安全應用213、非安全應用214的接口或功能,以控制非安全內核216提供的功能。例如,非安全API 215啟用非安全應用213、非安全應用214,以與非安全內核216交換數據,或者啟用非安全應用213、非安全應用214,以使用非安全內核216 管理的硬件資源212。
[0044]非安全內核216可以控制或管理用于執行在非安全應用213、非安全應用214或非安全API 215中實現的操作或功能的硬件資源212。具體地,非安全內核216可以包括用于執行與安全內核226的通信的驅動器(例如,監視器)。非安全執行環境210可以使用驅動器要求安全執行環境220執行特定安全操作或功能。[〇〇45]同時,安全執行環境220可以包括第二更新管理器(SE更新管理器)120、安全應用 223、安全應用224、安全API 225和安全內核226。[〇〇46] 第二更新管理器120在安全執行環境220中操作,并且驗證驅動由安全執行環境 220控制的安全裝置的第二軟件的更新。在此,例如,安全裝置可以包括安全元件20。在本公開的一些實施例中,第二更新管理器120可以驗證安全裝置的軟件版本信息或第二軟件更新的軟件版本信息。此外,第二更新管理器120使用在安全執行環境220中存儲的第二軟件更新的第二鏡像來更新第二軟件。在本公開的一些實施例中,在第一更新管理器110驗證第一軟件更新之前,可通過鏡像管理器200在非安全執行環境210中存儲第二軟件更新以及第一鏡像。同時,在本公開的一些實施例中,第二軟件可以包括驅動由安全執行環境220控制的安全裝置的固件或應用。
[0047]例如,安全應用223、安全應用224響應于非安全執行環境210的請求執行安全的操作或功能。例如,安全應用223、安全應用224可以包括預加載應用、本機應用等,但是本公開的范圍不限于此。具體地,在本公開的一些實施例中,安全應用224能夠向安全元件(SE)20 發送數據和從安全元件(SE) 20接收數據。[〇〇48]安全API 225提供啟用安全應用223、安全應用224的接口或功能,以控制安全內核 226提供的功能。例如,安全API 225可以啟用安全應用223、安全應用224,以與安全內核226 交換數據,或者可以啟用安全應用223、安全應用224,以使用非安全內核226管理的硬件安全資源222。[〇〇49] 安全內核226可以控制或管理用于執行安全應用223、安全應用224或安全API 225 中實現的操作或功能的硬件安全資源222。
[0050]圖3是根據本公開的實施例的用于解釋鏡像數據的結構的示意圖。[0051 ]參照圖3,根據本公開的實施例的鏡像數據300包括TEE鏡像310、SE鏡像320和簽名 330。在此,TEE鏡像310包括驅動安全執行環境220的第一軟件更新的鏡像,SE鏡像320包括驅動由安全執行環境220控制的安全元件20的第二軟件更新的鏡像。[〇〇52]在此實施例中,包括在鏡像數據300中的SE的鏡像320可以包括編碼的SE鏡像322 和簽名324。也就是說,在鏡像管理器200生成包括TEE鏡像310和編碼的SE鏡像322的鏡像數據300之后,鏡像管理器200可以在非安全執行環境210中存儲鏡像數據300。在此,TEE鏡像 310可以是未編碼的鏡像,但是本公開的范圍不限于此。[〇〇53]同時,簽名330、簽名324可以包括用于確定在更新軟件之前軟件更新是否被偽造或篡改的數據。例如,用于更新第一軟件的簽名330的驗證可以包括使用在非安全執行區域 210中存儲的應用處理器(AP)的公鑰的簽名330的驗證。同時,用于更新第二軟件的簽名324 的驗證可以包括使用在安全執行區域220中存儲的應用處理器(AP)的公鑰的簽名324的驗證。
[0054]圖4是根據本公開的實施例的用于解釋更新軟件的方法的示意圖。
[0055]參照圖4,第一更新管理器110驗證驅動安全執行環境220的第一個軟件的更新。也就是說,可以在非安全執行環境210中執行第一更新管理器110的第一軟件更新驗證工作。 在本公開的一些實施例中,第一更新管理器110可以驗證二進制散列、安全執行環境220的軟件版本信息和第一軟件更新的軟件版本信息中的至少一個。[〇〇56]作為第一軟件更新的驗證結果,當確定需要更新第一軟件時,第一更新管理器110 使用在非安全執行環境210中存儲的鏡像數據300中的第一軟件更新的第一鏡像(S卩,TEE鏡像310),更新第一軟件。在此,需要更新第一軟件的情況可以包括:第一軟件被偽造或篡改且其可靠性被懷疑的情況、第一軟件的版本與更舊版本或其他裝置的兼容性不能保證的情況以及存在來自用戶應用或系統應用的更新第一軟件的請求的情況。
[0057]在第一軟件的更新工作之后,可以通過鏡像管理器200、第一更新管理器110和第二更新管理器120中的至少一個在安全執行環境220中存儲在非安全執行環境210中存儲的鏡像數據300中的編碼的SE鏡像322和簽名324。因此,非安全執行環境210不能訪問在安全執行環境220中存儲的編碼的SE鏡像322和簽名324。[〇〇58]在本公開的一些實施例中,使用在非安全執行環境210中存儲的TEE鏡像310的第一軟件的更新還可以包括在更新第一軟件之前在安全執行環境220中備份第一軟件的鏡像。因此,當第一軟件的更新失敗時,可以使用在安全執行環境220中備份的第一軟件的鏡像執行第一軟件的回滾(rollback)。[〇〇59] 參照圖4,第二更新管理器120驗證驅動由安全執行環境220控制的安全元件20的第二軟件的更新。也就是說,在安全執行環境210中執行第二更新管理器120的第二軟件更新驗證工作。在本公開的一些實施例中,第二更新管理器120可以驗證安全元件20的軟件版本信息或第二軟件更新的軟件版本信息。
[0060]作為第二軟件更新的驗證結果,當確定需要更新第二軟件時,第二更新管理器120 使用在安全執行環境220中存儲的第二鏡像(S卩,編碼的SE鏡像322),更新第二軟件。在此, 需要更新第二軟件的情況可以包括:第二軟件被偽造或篡改且其可靠性被懷疑的情況、第二軟件的版本與更舊版本或其他裝置的兼容性不能保證的情況以及存在來自用戶應用或系統應用的更新第二軟件的請求的情況。
[0061]在此,在更新第二軟件之前,可以對編碼的SE鏡像322進行解碼。在本公開的一些實施例中,在安全執行環境220中對編碼的SE鏡像322進行解碼之后,可以用于更新第二軟件。同時,在本公開的一些其它實施例中,在編碼的SE鏡像322從安全執行環境220被發送到安全元件20且在安全元件220中被解碼之后,可以用于更新第二軟件。[〇〇62]在本公開的一些實施例中,使用在安全執行環境220中存儲的編碼的SE鏡像322的第二軟件的更新還可以包括在更新第二軟件之前在安全執行環境220或安全元件20中備份第二軟件的鏡像。因此,當第二軟件的更新失敗時,可以使用在安全執行環境220或安全元件20中備份的第二軟件的鏡像執行第二軟件的回滾。
[0063]在本公開的一些實施例中,可以在啟動更新軟件的系統1時執行驗證和更新工作。 具體地,在開始啟動更新軟件的系統1且第一更新管理器110和第二更新管理器120執行第一軟件更新和第二軟件更新的驗證以及第一軟件和第二軟件的更新工作之后,可以完成啟動更新軟件的系統1。同時,在本公開的一些實施例中,可以在請求更新第一軟件和第二軟件的用戶應用或系統應用開始時,執行第一軟件更新和第二軟件更新的驗證以及第一軟件和第二軟件的更新工作。驗證軟件更新的步驟可包括檢查軟件的軟件版本或者容量。因此, 驗證第一軟件更新和第二軟件更新的步驟可包括:檢查第一軟件更新和第二軟件更新的軟件版本或者容量。[〇〇64]根據如上所描述的本公開的更新軟件的方法,由于安全元件20的軟件鏡像,例如, 驅動安全元件20的固件的二進制鏡像沒有暴露于包括安全執行環境210的外部,因此可以以安全的方式來更新安全元件20的軟件。同時,由于本公開的更新軟件的方法通過使用包括用于更新第一軟件的第一鏡像和用于更新控制由第一軟件驅動的執行環境或裝置的第二軟件的第二鏡像的一個鏡像數據,依次更新第一軟件和第二軟件,因此可以容易地更新驅動多個執行環境或裝置的多個軟件,并且當軟件問題發生時,也可以容易地從這些問題恢復。
[0065]圖5是根據本公開的另一實施例的用于解釋鏡像數據的結構的示意圖。[〇〇66]參照圖5,根據本公開的另一實施例的鏡像數據400包括TEE鏡像410、裝置鏡像420 和簽名460。在此,TEE鏡像410包括驅動安全執行環境220的第一軟件的更新的鏡像,裝置鏡像420包括驅動由安全執行環境220控制的一個或多個裝置230、裝置232的第二軟件的一個或多個更新的鏡像。[0〇67]在此實施例中,包括在鏡像數據400中的裝置鏡像420可以包括一個或多個裝置鏡像422、裝置鏡像424和簽名426。在本公開的一些實施例中,一個或多個裝置鏡像422、裝置鏡像424可以是編碼的鏡像。[〇〇68]同時,簽名460、簽名426可以包括用于在更新軟件之前確定軟件更新是否被偽造或篡改的數據。例如,可以在對更新第一軟件的驗證中使用簽名460,可以在對分別更新一個或多個裝置230、裝置232的一個或多個第二軟件的驗證中共同使用簽名426。
[0069]圖6是根據本公開的另一實施例的用于解釋更新軟件的方法的示意圖。
[0070]參照圖6,第一更新管理器110驗證驅動安全執行環境220的第一軟件的更新。也就是說,可以在非安全執行環境210中執行第一更新管理器110的第一軟件更新驗證工作。
[0071]作為第一軟件更新的驗證結果,當確定需要更新第一軟件時,第一更新管理器110 使用在非安全執行環境210中存儲的鏡像數據410中的第一軟件更新的第一鏡像(S卩,TEE鏡像410),更新第一軟件。在此,需要更新第一軟件的情況可以包括:第一軟件被偽造或篡改且其可靠性被懷疑的情況、第一軟件的版本與更舊版本或其他裝置的兼容性不能保證的情況以及存在來自用戶應用或系統應用的更新第一軟件的請求的情況。[〇〇72]在第一軟件的更新工作之后,可以通過鏡像管理器200、第一更新管理器110和第二更新管理器120中的至少一個,在安全執行環境220中存儲在非安全執行環境210中存儲的鏡像數據400中的裝置鏡像422a、裝置鏡像422b和簽名426。因此,非安全執行環境210不能訪問在安全執行環境220中存儲的裝置鏡像422a、裝置鏡像422b和簽名426。在本公開的一些實施例中,可以對裝置鏡像422a、裝置鏡像422b進行編碼。[〇〇73]參照圖6,第二更新管理器120驗證驅動由安全執行環境220控制的一個或多個裝置230、裝置232的第二軟件的一個或多個更新。也就是說,在安全執行環境210中執行第二更新管理器120的第二軟件更新驗證工作。在本公開的一些實施例中,第二更新管理器120 可以驗證裝置230、裝置232的每個軟件版本信息或第二軟件更新的軟件版本信息。[〇〇74]作為第二軟件更新的驗證結果,當確定需要更新第二軟件時,第二更新管理器120 使用在安全執行環境220中存儲的第二鏡像(S卩,裝置鏡像422a、裝置鏡像422b),更新第二軟件。具體地,第二更新管理器120通過使用裝置鏡像422a更新驅動第一裝置230的第二軟件,并且通過使用鏡像裝置422b更新驅動第二裝置232的第二軟件。在此,需要更新第二軟件的情況可以包括:第二軟件被偽造或篡改且其可靠性被懷疑的情況、第二軟件的版本與更舊版本或其他裝置的兼容性不能保證的情況以及存在來自用戶應用或系統應用的更新第二軟件的請求的情況。[0〇75]在此,當裝置鏡像422a、裝置鏡像422b被編碼時,編碼的裝置鏡像422a、裝置鏡像 422b可以在更新第二軟件之前被解碼。在本公開的一些實施例中,在安全執行環境220中對編碼的鏡像裝置422a、裝置鏡像422b進行解碼之后,鏡像可以用于更新第二軟件。同時,在本公開的一些其它實施例中,在編碼的裝置鏡像422a、裝置鏡像422b從安全執行環境220發送到裝置230、裝置232,并且在裝置230、裝置232中被解碼之后,鏡像可以用于更新第二軟件。[〇〇76]根據如上所述的本公開的更新軟件的方法,由于多個裝置230、裝置232的軟件鏡像,例如,驅動多個裝置230、裝置232中的每個裝置的固件的二值鏡像沒有暴露于包括非安全執行環境210的外部,因此可以以安全的方式來更新多個裝置230、裝置232的軟件。同時, 根據本公開的更新軟件的方法,通過使用包括用于更新第一軟件的第一鏡像和用于更新控制由第一軟件驅動的執行環境或裝置的第二軟件的第二鏡像的一個鏡像數據,依次更新第一軟件和第二軟件,具體地,連續更新驅動多個裝置230、裝置232的軟件。因此,可以容易且有效地更新驅動多個執行環境或裝置的多個軟件,并且當多個裝置230、裝置232的軟件問題發生時,也可以容易且有效地從這些問題恢復。
[0077]圖7是根據本公開的另一實施例的用于解釋鏡像數據的結構的示意圖。
[0078]參照圖7,此實施例與圖5相關的實施例的不同之處在于:根據本公開的再一實施例的鏡像數據400包括TEE數據410、裝置鏡像430和簽名460,并且裝置鏡像430存儲驅動由安全執行環境220控制的一個或多個裝置230、裝置232的一個或多個第二軟件更新的鏡像。 [〇〇79]具體地,在此實施例中,包括在鏡像數據400中的裝置鏡像430可以包括第一裝置鏡像432、第一簽名433、…、第N裝置鏡像434和第N簽名435 (其中,N是自然數)。在本公開的一些實施例中,一個或多個裝置鏡像432、裝置鏡像434可以是編碼的鏡像。可以在更新第一裝置的第二軟件的驗證中使用第一簽名433,可以在更新第N裝置的第二軟件的驗證中使用第N簽名435。
[0080]圖8是根據本公開的再一實施例的用于解釋更新軟件的方法的示意圖。
[0081]參照圖8,此實施例與圖6相關的實施例的不同之處在于:在第一軟件的更新工作之后,通過鏡像管理器200、第一更新管理器110和第二更新管理器120中的至少一個,在安全執行環境220中存儲在非安全執行環境210中存儲的鏡像數據400中的裝置鏡像432a、裝置鏡像432b、簽名433a和簽名433b。[〇〇82]因此,當需要更新第二軟件時,第二軟件管理器120通過使用第一裝置鏡像432a和第一簽名433a更新驅動第一裝置230的第二軟件,并且第二軟件管理器120通過使用第二裝置鏡像432b和第二簽名433b更新驅動第二裝置232的第二軟件。
[0083]圖9是根據本公開的再一實施例的用于解釋鏡像數據的結構的示意圖。
[0084]參照圖9,此實施例與圖7相關的實施例的不同之處在于:根據本公開的再一實施例的鏡像數據400包括TEE數據410、裝置鏡像440和簽名460,并且裝置鏡像440包括:由安全執行環境220控制的第一裝置鏡像442、剩余裝置鏡像450和第一簽名446。此外,裝置鏡像 450包括:由安全執行環境220控制的第二裝置鏡像452、剩余裝置鏡像454和第二簽名456。 [〇〇85]在本公開的一些實施例中,一個或多個裝置鏡像442、裝置鏡像452可以是編碼的鏡像。可以在更新第一裝置的第二軟件的驗證中使用第一簽名446,并且可以在更新第N裝置的第二軟件的驗證中使用第二簽名456。
[0086]圖10是根據本公開的再一實施例的用于解釋更新軟件的方法的示意圖。
[0087]參照圖10,此實施例與圖8相關的實施例的不同之處在于:在第一軟件的更新工作之后,通過鏡像管理器200、第一更新管理器110和第二更新管理器120中的至少一個,在安全執行環境220中存儲在非安全執行環境210中存儲的鏡像數據400中的第一裝置鏡像442、 剩余裝置鏡像450和第一簽名446,并且在執行第一裝置230的更新工作的同時,通過鏡像管理器200和第二更新管理器120的至少一個在第一裝置230中存儲第二裝置鏡像452、剩余裝置鏡像454和第二簽名456。[〇〇88]因此,當需要更新第二軟件時,第二軟件管理器120通過使用在安全執行環境220 中存儲的第一裝置鏡像442和第一簽名446來更新驅動第一裝置230的第二軟件,并且第二軟件管理器120通過使用在第一裝置230中存儲的第二裝置鏡像452和第二簽名456來更新驅動第二裝置232的第二軟件。當然,在第一裝置230中存儲的剩余裝置鏡像454可以被發送到第二裝置232并存儲在其中。
[0089]圖11是根據本公開的實施例的用于解釋更新軟件的方法的流程圖。
[0090]參照圖11,根據本公開的實施例的更新軟件的方法開始啟動更新軟件的系統1 (1101 ),并且通過REE來驗證TEE鏡像310、TEE鏡像410 (1103)。例如,所述方法驗證TEE鏡像 310、TEE鏡像410的二進制散列或軟件版本,以確定是否需要更新驅動TEE的軟件(1105)。 [〇〇91]當需要更新TEE軟件時,所述方法通過使用在REE中存儲的TEE鏡像310、TEE鏡像 410來更新驅動TEE的軟件(1107),并且確定是否成功地執行更新(1111)。如果沒有成功地執行更新,則驅動TEE的軟件被回滾(1113 ),如果成功地執行了更新,則通過TEE來驗證SE鏡像(1109)。當在操作(1105)中確定不需要更新TEE軟件時,所述方法從操作(1105)直接進行到操作(1109)。當完成操作(1109)時,例如,所述方法驗證SE鏡像的軟件版本,以確定是否需要更新驅動SE的軟件(1115)。[〇〇92]當需要更新SE軟件時,所述方法通過使用在TEE中存儲的SE鏡像來更新驅動SE的軟件(1117),并且確定是否成功地執行更新(1121)。如果沒有成功地執行更新,則驅動TEE 的軟件被回滾(1123),如果成功執行了更新,則更新軟件的系統1的啟動被完成(1119)。當如在操作(1115)確定不需要更新SE軟件時,所述方法從操作(1115)直接轉換到啟動完成 (1119)〇
[0093]圖12是根據本公開的實施例的用于解釋更新軟件的方法的流程圖。
[0094]參照圖12,在根據本發明的另一實施例的更新軟件的方法中,開始更新軟件的系統1的啟動(1201 ),并且在完成更新軟件的系統1的啟動之后(1203 ),通過REE來驗證TEE鏡像310、TEE鏡像410 (1205)。當需要更新TEE軟件時,所述方法使用在REE中存儲的TEE鏡像 310、TEE鏡像410來更新驅動TEE的軟件(1207)。[〇〇95]接下來,所述方法通過TEE來驗證裝置鏡像(1209)。例如,所述方法驗證裝置鏡像的軟件版本,以確定是否需要更新驅動裝置230、裝置232的軟件。當需要更新裝置軟件時, 所述方法通過使用在TEE中存儲的裝置鏡像來更新驅動裝置230、裝置232的軟件(1211),并且確定所有裝置的驗證和更新是否完成(1213)。如果驗證和更新所需的裝置鏡像仍然存在,則通過TEE來驗證裝置鏡像(1209)。
[0096]圖13是根據本公開的實施例的用于解釋更新軟件的方法的流程圖。
[0097]參照圖13,在根據本公開的再一實施例的更新軟件的方法中,開始更新軟件的系統1的啟動(1301 ),并且在完成更新軟件的系統1的啟動之后(1303 ),通過REE來驗證TEE鏡像310、TEE鏡像410(1305)。當需要更新TEE軟件時,所述方法通過使用在REE中存儲的TEE鏡像310、TEE鏡像410來更新驅動TEE的軟件(1307)。
[0098]接下來,所述方法通過TEE來驗證第一裝置鏡像(1309)。例如,所述方法驗證第一裝置鏡像的軟件版本,以確定是否需要更新驅動第一裝置230的軟件。當需要更新第一裝置 230的軟件時,所述方法通過使用在TEE中存儲的第一裝置鏡像來更新驅動第一裝置230的軟件(1311)。
[0099]接下來,例如,所述方法驗證第二裝置鏡像的軟件版本,以確定是否需要更新驅動第二裝置232的軟件。當需要更新第二裝置232的軟件時,所述方法通過使用在第一裝置230 中存儲的第二裝置鏡像來更新驅動第二裝置232的軟件(1313)。重復這些處理以完成到第N 裝置的更新(其中,N是自然數)(1315)。
[0100]如上所述的本公開的各種實施例可以實現為能夠通過各種計算機執行的程序指令,并且可以記錄在計算機可讀記錄介質中。在此,記錄介質可以包括程序指令、數據文件、 數據結構等。程序指令可以針對本公開的各種實施例而專門設計和配置,或者可以被計算機軟件領域的普通技術人員公知且可用。此外,記錄介質可以包括磁介質(諸如,硬盤、軟盤和磁帶)、光學介質(諸如,⑶-ROM和DVD)、磁光介質(諸如,光磁盤)、R0M、RAM和硬件(諸如, 閃存)。此外,程序指令可以包括能夠由計算機通過使用解釋器等執行的高級語言代碼,以及諸如由編譯器產生的機器語言代碼。
[0101]同時,如上所述的本公開的各種實施例可以實現為電連接到處理器10且基于處理器10的控制操作的硬件模塊。例如,如上所述的本公開的各種實施例可以被制造,以便在應用處理器的部分區域中形成多個半導體元件。
[0102]圖14至圖16是根據本公開的實施例的更新軟件的方法和系統適用的示例性半導體系統。
[0103]圖14是示出平板PC 1200的示圖,圖15是示出筆記本電腦1300的示圖,圖16示出智能電話1400。根據本公開的實施例的更新軟件的方法和系統中的至少一個可以用于平板 PC1200、筆記本電腦1300、智能電話1400等。
[0104]此外,對本領域技術人員顯而易見的是,根據本公開的一些實施例的更新軟件的方法和系統也適用于未示出的其它集成電路裝置。也就是說,盡管上面僅描述了平板 PC1200、筆記本電腦1300和智能電話1400作為根據本實施例的更新軟件的系統的示例,但是根據本實施例的更新軟件的系統的示例不限于此。在本公開的一些實施例中,更新軟件的系統可以實現為計算機、超移動PC(UMPC)、工作站、上網本、個人數字助理(PDA)、便攜式計算機、無線電話、移動電話、電子書、便攜式多媒體播放器(PMP )、便攜式游戲機、導航裝置、黑盒子、數字相機、三維電視、數字音頻記錄器、數字音頻播放器、數字圖像記錄器、數字圖像播放器、數字視頻記錄器、數字視頻播放器等。
[0105]如本領域的傳統技術,可根據實現所描述的一個功能或多個功能的多個塊來描述并且示出實施例。通過模擬和/或數字電路(諸如,邏輯門、集成電路、微處理器、微控制器、 存儲電路、無源電子組件、有源電子組件、光學組件、硬連接電路等)來物理地實現這些塊 (在此可被稱為單元或模塊等),并且可通過固件和/或軟件來選擇性地驅動這些塊。所述電路可,例如,被實現在一個或多個半導體芯片中,或者被實現在基底支撐件(諸如,印刷電路板等)上。可通過專用硬件,或者通過處理器(例如,一個或多個編程的微處理器和相關聯的電路系統),或者通過用于執行塊的一些功能的專用硬件和用于執行塊的其他功能的處理器的組合,來實現構成塊的電路。在不脫離本公開的范圍的情況下,實施例的每個塊可被物理地分開為兩個或更多個相互作用并且分離的塊。同樣地,在不脫離本公開的范圍的情況下,實施例的塊可被物理地組合為更復雜的塊。
[0106]在總結【具體實施方式】中,本領域的技術人員將理解,在本質上不脫離本公開的原理的情況下,可以對優選實施例進行許多變化和修改。因此,本公開所公開的優選實施例僅被用于一般和描述性意義,而不是為了限制的目的。
【主權項】
1.一種更新軟件的方法,所述方法包括:使用在非安全執行環境中操作的處理器和第一更新管理器,在非安全執行環境中驗證 驅動安全執行環境的第一軟件的更新;使用第一更新管理器,通過使用在非安全執行環境中存儲的第一軟件更新的第一鏡像 來更新第一軟件;使用在安全執行環境中操作的處理器和第二更新管理器,在安全執行環境中驗證驅動 由安全執行環境控制的安全裝置的第二軟件的更新;使用第二更新管理器,通過使用在安全執行環境中存儲的第二軟件更新的第二鏡像來 更新弟^?軟件,其中,驗證第一軟件的更新和第二軟件的更新的步驟包括:驗證第一軟件更新和第二軟件更 新的正確的軟件版本或者容量。2.如權利要求1所述的方法,還包括:在驗證第一軟件更新之前,使用鏡像管理器,在非 安全執行環境中存儲第二鏡像和第一鏡像。3.如權利要求2所述的方法,其中,當在非安全執行環境中存儲第二鏡像時,第二鏡像 被編碼。4.如權利要求3所述的方法,還包括:通過第二更新管理器,從非安全執行環境接收編碼的第二鏡像,以在安全執行環境中 存儲編碼的第二鏡像,其中,通過使用在安全執行環境中存儲的第二軟件更新的第二鏡像來更新第二軟件的步驟 包括:在對編碼的第二鏡像進行解碼之后,通過使用解碼的第二鏡像來更新第二軟件。5.如權利要求1所述的方法,其中,驗證第一軟件更新的步驟包括:驗證安全執行環境 的二進制散列和軟件版本信息中的至少一個。6.如權利要求1所述的方法,其中,驗證第二軟件更新的步驟包括:驗證安全裝置的軟 件版本信息。7.如權利要求1所述的方法,其中,第一軟件包括固件或應用,第二軟件包括固件或應用。8.如權利要求1所述的方法,其中,通過使用第一軟件更新的第一鏡像來更新第一軟件 的步驟還包括:在更新第一軟件之前,在安全執行環境中備份第一軟件的當前鏡像。9.如權利要求1所述的方法,其中,通過使用第二軟件更新的第二鏡像來更新第二軟件 的步驟還包括:在更新第二軟件之前,在安全執行環境中或在安全裝置中備份第二軟件的 當前鏡像。10.如權利要求9所述的方法,其中,通過使用第二軟件更新的第二鏡像來更新第二軟 件的步驟還包括:當第二軟件的更新失敗時,通過使用在安全執行環境或安全裝置中備份 的第二軟件的當前鏡像來回滾第二軟件。11.如權利要求1所述的方法,其中:安全裝置包括第一安全裝置和與第一安全裝置不同的第二安全裝置,驗證第二軟件更新的步驟包括驗證分別驅動第一安全裝置和第二安全裝置的第三軟 件和第四軟件的更新,更新第二軟件的步驟還包括:通過分別使用在安全執行環境中存儲的第三軟件更新的第三鏡像和第四軟件更新的第四鏡像來更新第三軟件和第四軟件。12.如權利要求11所述的方法,還包括:在驗證第一軟件更新之前,使用鏡像管理器,在 非安全執行環境中存儲第三鏡像,第四鏡像和第一鏡像。13.—種更新軟件的方法,所述方法包括:使用鏡像管理器,在非安全執行環境中存儲鏡像數據,其中,鏡像數據包括:用于第一 軟件的更新的第一鏡像以及用于第二軟件的更新的第二鏡像,其中,第一軟件驅動安全執 行環境,第二軟件驅動由安全執行環境控制的安全裝置;使用在非安全執行環境中操作的第一更新管理器,通過使用鏡像數據的第一鏡像在非 安全執行環境中更新第一軟件;提取在鏡像數據中包括的第二鏡像以使用鏡像管理器在安全執行環境中存儲第二鏡 像;使用在安全執行環境中操作的第二更新管理器,通過使用在安全執行環境中存儲的第 二鏡像在安全執行環境中更新第二軟件。14.如權利要求13所述的方法,其中:第一鏡像是未編碼的鏡像,第二鏡像是編碼的鏡像,僅在安全執行環境中對編碼的第二鏡像進行解碼,在非安全執行環境中不對編碼的第 二鏡像進行解碼。15.如權利要求13所述的方法,其中:安全裝置包括第一安全裝置以及與第一安全裝置不同的第二安全裝置,在非安全執行環境中存儲的鏡像數據包括:用于第三軟件的更新的第三鏡像和用于第 四軟件的更新的第四鏡像,其中,第三軟件和第四軟件分別驅動第一安全裝置和第二安全 裝置,提取在鏡像數據中包括的第二鏡像以使用鏡像管理器在安全執行環境中存儲第二鏡 像的步驟包括:提取在鏡像數據中包括的第三鏡像和第四鏡像,通過使用在安全執行環境中存儲的第二鏡像在安全執行環境中更新第二軟件的步驟 包括:通過使用第三鏡像和第四鏡像來更新第三軟件和第四軟件。16.如權利要求13所述的方法,其中:鏡像數據還包括與第一軟件更新相關聯的第一簽名和與第二軟件更新相關聯的第二 簽名,通過使用鏡像數據的第一鏡像在非安全執行環境中更新第一軟件的步驟包括:在驗證 第一簽名之后通過使用第一鏡像來更新第一軟件,通過使用在安全執行環境中存儲的第二鏡像在安全執行環境中更新第二軟件的步驟 包括:在驗證第二簽名之后通過使用在安全執行環境中存儲的第二鏡像來更新第二軟件。17.—種更新軟件的系統,所述系統包括:處理器;第一更新管理器,在非安全執行環境中操作;第二更新管理器,在安全執行環境中操作,其中:第一更新管理器通過使用處理器來驗證驅動安全執行環境的第一軟件的更新,并且通 過使用在非安全執行環境中存儲的第一軟件更新的第一鏡像來更新第一軟件,第二更新管理器通過使用處理器來驗證驅動由安全執行環境控制的安全裝置的第二 軟件的更新,并且通過使用在安全執行環境中存儲的第二軟件更新的第二鏡像來更新第二 軟件,其中,驗證第一軟件的更新和第二軟件的更新的步驟包括:驗證第一軟件更新和第二軟件更 新的正確的軟件版本或者容量。18.如權利要求17所述的系統,還包括:鏡像管理器,在驗證第一軟件更新之前,在非安 全執行環境中存儲第二鏡像和第一鏡像。19.如權利要求18所述的系統,其中:第二鏡像被編碼,且第一鏡像不被編碼,鏡像管理器在非安全執行環境中存儲編碼的第二鏡像和未編碼的第一鏡像。20.如權利要求19所述的系統,其中:第二更新管理器從非安全執行環境接收編碼的第二鏡像以在安全執行環境中存儲編 碼的第二鏡像,在對編碼的第二鏡像進行解碼之后,第二更新管理器通過使用解碼的第二鏡像來更新 第二軟件。
【文檔編號】G06F21/51GK106096386SQ201610265544
【公開日】2016年11月9日
【申請日】2016年4月26日 公開號201610265544.X, CN 106096386 A, CN 106096386A, CN 201610265544, CN-A-106096386, CN106096386 A, CN106096386A, CN201610265544, CN201610265544.X
【發明人】孫晟薰, 權幾衒, 李丞鎬, 李俊虎, 韓祐碩
【申請人】三星電子株式會社