TW200820076A - Portable mass storage with virtual machine activation - Google Patents

Portable mass storage with virtual machine activation Download PDF

Info

Publication number
TW200820076A
TW200820076A TW096128704A TW96128704A TW200820076A TW 200820076 A TW200820076 A TW 200820076A TW 096128704 A TW096128704 A TW 096128704A TW 96128704 A TW96128704 A TW 96128704A TW 200820076 A TW200820076 A TW 200820076A
Authority
TW
Taiwan
Prior art keywords
virtual machine
card
application
firmware
mass storage
Prior art date
Application number
TW096128704A
Other languages
Chinese (zh)
Other versions
TWI357572B (en
Inventor
Fabrice Jogand-Coulomb
Bahman Qawami
Farshid Sabet-Shargi
Carlos J Gonzalez
Original Assignee
Sandisk Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/463,256 external-priority patent/US7725614B2/en
Priority claimed from US11/463,264 external-priority patent/US20080126705A1/en
Application filed by Sandisk Corp filed Critical Sandisk Corp
Publication of TW200820076A publication Critical patent/TW200820076A/en
Application granted granted Critical
Publication of TWI357572B publication Critical patent/TWI357572B/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers

Abstract

A portable mass storage device is used to store large files such as digital pictures, movies and music. The mass storage device has firmware with security mechanisms that limit access to read write operations to ensure reliable operation of the device to prevent unwanted copying or storing of secure content such a copyrighted material. Although the security mechanisms generally limit access, the firmware is operable to work with a virtual machine and allows the virtual machine to access the secure content and work in conjunction with the firmware to read and write data to the mass storage memory, if the virtual machine is present. The virtual machine is either loaded but not activated at the time of manufacture, or is downloaded and activated post manufacture. Any royalty for the virtual machine is paid for only if and when the virtual machine is both present and activated in the device.

Description

200820076 九、發明說明: 【發明所屬之技術領域】 本發明-般侧於可攜式大量儲存裝置及運行於該等裝 置上之韋刃體及軟體,更明確言之,係關於提供該軟體及直 他内容並將其啟用及為其付費。 〃 【先前技術】 智慧卡已存在相當長-段時間且常常用作轉帳及信 (除其他卡之外)。智慧卡’顧名思義係處理器控制式且亦 包括少量記憶體以保留識別及交易相關資料。近來已 出在智慧卡上建立及運行以Java為主程式之能力且复= 以通用。以j請為主程式亦可實施於其他智慧型裝置(例如 通常用於數位相機與音樂播放器中之大量儲存記憶卡 中。將此等其他卡識別為大量儲存裝置,因為其必須儲存 及存取極大資料(例如照片與音樂)庫,該等資料之等級大 於儲存於智慧卡中之交易與識別資料之等級。此等大量儲 存卡之範例係小型快閃(”CF”)卡、安全數位("sd")卡 '、东 你奶卡、微SD卡、多媒體("_〇卡、及記憶條。除^ 用範例之外,還存在更多不同格式之大量儲存卡。以可攜 式快閃記憶體為主通用串列匯流排(”USB”)驅動器係: 類型可攜式大量儲存裝置。 ° 一 / Java CardTM技術致能以以”程式設計語言編寫之程式運 行於智慧卡及其他小型資源受限裝置上。開發者可使則票 準軟體開發工具與環境來構建及測試程式,接著將其轉2 為一可安裝於Java CardTM技術致能裝置上之形、 八。用於 123l8l.d〇c 200820076200820076 IX. Description of the Invention: [Technical Field] The present invention generally focuses on a portable mass storage device and a blade body and software running on the device, and more specifically, regarding providing the software and Direct his content and enable it and pay for it. 〃 [Prior Art] Smart cards have been around for quite some time and are often used as transfers and letters (among other cards). Smart Cards are processor-controlled and include a small amount of memory to retain identification and transaction-related data. Recently, the ability to build and run Java-based programs on smart cards has been developed and is common. The main program can also be implemented in other smart devices (such as those commonly used in digital cameras and music players). These other cards are recognized as mass storage devices because they must be stored and stored. Take a library of extremely large data (such as photos and music), the level of which is greater than the level of transactions and identification data stored in the smart card. Examples of such a large number of memory cards are small flash ("CF") cards, secure digital ("sd") card', East your milk card, micro SD card, multimedia ("_〇卡, and memory stick. In addition to the use of examples, there are more than a large number of memory cards in different formats. Portable flash memory is a general-purpose serial bus ("USB") driver: a type of portable mass storage device. ° A / Java CardTM technology enables a program written in a "programming language" to run on a smart card And other small resource-constrained devices. Developers can build and test programs with the software development tools and environment, and then turn them into a form that can be installed on Java CardTM technology enabled devices. , eight. For 123l8l.d〇c 200820076

Java Card™平台之應用程式軟體係稱為小型應用程式,或 更明確言之,Java Card™小型應用程式或卡小型應用程式 (以將其與瀏覽器小型應用程式區別開)。 雖然Java Card™技術致能以java程式設計語言編寫之程 式運行於小型記憶卡上,但此類小型裝置之功率太低以致 於無法支援Java平台之全功能。因此,Java CardTM平台僅 支援Java平台之特徵的一仔細選定訂製子集。此子集提供 極適於編寫用於小型裝置之程式的特徵且保留Java程式設 計語言之物件導向能力。The application soft system of the Java CardTM platform is called a small application, or more specifically, a Java CardTM small application or a small card application (to distinguish it from a browser small application). Although Java CardTM technology enables programs written in a Java programming language to run on small memory cards, the power of such small devices is too low to support the full functionality of the Java platform. Therefore, the Java CardTM platform only supports a carefully selected subset of the features of the Java platform. This subset provides object-oriented capabilities that are well-suited for writing features for small devices and retaining the Java programming language.

Java Card™係一類型之虛擬機器。其他虛擬機器亦可使 用且虛擬機器係實體處理器之抽象化並具有習知處理器 之虛擬對應物。在Java語言之情況下,Java虛擬機器係用 作經編澤Java二進制碼與下部硬體平台微處理器間之介 面0 實施於此一小型裝置中時特別有用的一應用程式涉及為 文保護内容(例如音樂或電影等)付費。 為了運行以Java編寫之應用程式,必須將Java CardTM虛 擬機器載入卡内並加以啟用。機器之各實例需要向Sun或 此類組件之供應商支付授權費。因為智慧卡之主要用途係 父易,所以卡之發行者可作為經商成本接受授權費之成 本不過,大1儲存型記憶卡之使用者可能或可能不使用 虛擬機H使之可用之額外應用程式,因為典型制者主要 基於資料儲存目的擁有及使用該卡。因此,製造商照例無 法傳遞或吸收授權費之成本。此外,運行於虛擬機器上之 123181.doc 200820076 各小型應用程式或其他程式也可能需要一照例無法傳遞 (給可能不使用其之使用者)或吸收之授權費。 在用於Java 台之軟體的生產與配置程序之背景 中可最好地理解Java Card™虛擬機器之角色。組成Java Card™系統之若干組件包括Java Card™虛擬機器、用於 Java Card™平台之轉換器("Java Card™轉換器")、終端安 裝工具、及運行於裝置上之安裝程式。Java Card™小型應 用程式之開發如同任何其他Java程式一樣開始:開發者編 寫一或多個Java類別,並以Java編譯器編譯原始碼,產生 一或多個類別檔案。在工作站上使用模擬工具運行、測試 及除錯小型應用程式以仿真裝置環境。接著,當準備將一 小型應用程式下載至一裝置時,使用一 Java Card™轉換器 將包含該小型應用程式之類別檔案轉換為CAP(經轉換小型 應用程式)檔案。Java CardTM轉換器作為輸入獲取所有類 別槽案(其組成一 Java封裝)。Java 換器亦作為輸 入獲取一或多値匯出檔案。匯出檔案包含藉由正在轉換之 類別所匯入之其他封裝之内容的名稱與鏈接資訊。轉換一 小型應用程式或程式庫封裝時,轉換器亦可針對該封裝產 生一匯出檔案。 ' 通常,轉換後,將CAP檔案複製至一卡終端,例如一具 卡讀取器周邊設備之桌上型電腦。接著,該終端上之一安 裝工具載入CAP檔案並將其發送至Java CardTM技術致能裝 置。該裝置上之一安裝程式接收CAP檔案之内容並製備 Java Card™虛擬機器欲運行之小型應用程式。虛擬機器本 123181.doc 200820076 身無需載入或處理CAP檔案;其僅需要執行藉由安裝程式 載入裝置上之CAP檔案中所找到之小型應用程式碼。 在以下來自Sun Microsystems之規格(其係以引用方式全 文併入本文中)中說明Java CardTM平台之此等及其他方 面·應用程式設計介面,java Card™平台,版本2 2 1 ·運 行時間環境規格,Java Card™平台,版本221 ;及虛擬機 器規格,Java Card™平台,版本2.2.1 〇 如上所述,為了運行以j^va編寫之應用程式,必須將 Java CardTM虛擬機器載入卡内並加以啟用。 在頒予Yoshimoto等人之美國專利第6,772,955號中所說 明之一先前方法中,作為記憶卡控制器晶片之部分提供一 虛擬機器以便在以點為主交易中使用該卡。將卡用作點卡 之原始碼係以Java編寫且係載入卡中。針對採用該卡講買 之各項目更新點平衡。Java CardTM is a type of virtual machine. Other virtual machines may also be used and the virtual machine is abstracted by a physical processor and has a virtual counterpart of a conventional processor. In the case of the Java language, the Java Virtual Machine is used as an interface between the compiled Java binary code and the lower hardware platform microprocessor. An application that is particularly useful when implemented in a small device involves text-protected content. (such as music or movies, etc.) pay. In order to run an application written in Java, the Java CardTM virtual machine must be loaded into the card and enabled. Each instance of the machine is required to pay an authorization fee to Sun or a supplier of such components. Because the primary use of the smart card is parental, the issuer of the card can accept the cost of the license fee as a business cost. However, the user of the large memory card may or may not use the virtual machine H to make it available for additional applications. Because the typical system owns and uses the card primarily for data storage purposes. Therefore, the manufacturer cannot pass or absorb the cost of the license fee as usual. In addition, running on a virtual machine 123181.doc 200820076 Small applications or other programs may also require a license fee that cannot be passed (for users who may not use it) or absorbed. The role of the Java CardTM virtual machine is best understood in the context of the production and configuration procedures for the software for the Java platform. Several components that make up the Java CardTM system include the Java CardTM virtual machine, the converter for the Java CardTM platform ("Java CardTM converter"), the terminal installation tool, and the installer running on the device. The development of Java CardTM small applications begins like any other Java program: the developer writes one or more Java classes and compiles the source code with a Java compiler to produce one or more category files. Simulate the device environment by running, testing, and debugging small applications on the workstation using simulation tools. Next, when a small application is ready to be downloaded to a device, a Java CardTM converter is used to convert the category file containing the small application into a CAP (Transformed Small Application) file. The Java CardTM converter takes all the class slots (which form a Java package) as input. The Java converter also takes one or more export files as input. The export file contains the name and link information of the other packaged content that is imported by the category being converted. When converting a small application or library package, the converter can also generate a export file for the package. ' Typically, after conversion, the CAP file is copied to a card terminal, such as a desktop computer with a card reader peripheral. Next, one of the installation tools on the terminal loads the CAP file and sends it to the Java CardTM technology enabled device. One of the installers on the device receives the contents of the CAP file and prepares a small application to be run by the Java CardTM virtual machine. Virtual Machines 123181.doc 200820076 There is no need to load or process CAP files; it only needs to execute the small application code found in the CAP file on the device by the installer. These and other aspects of the Java CardTM platform are described in the following specifications from Sun Microsystems, which is incorporated herein by reference in its entirety. Application Programming Interface, Java CardTM Platform, Version 2 2 1 · Runtime Environment Specifications , Java CardTM platform, version 221; and virtual machine specifications, Java CardTM platform, version 2.2.1 As mentioned above, in order to run an application written in j^va, the Java CardTM virtual machine must be loaded into the card and Enable it. In one of the prior methods described in U.S. Patent No. 6,772,955, the disclosure of which is incorporated herein by reference in its entirety in its entire entire entire entire entire entire entire entire entire entire entire entire entire entire entire entire entire entire entire entire entire entire entire entire entire entire entire entire all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all all The source code used to use the card as a point card is written in Java and loaded into the card. Update the balance of each item for the purchase of the card.

Java虛擬機器之各實例需要向Sun或其他供應商支付授 權費。同樣地,任何其他專屬虛擬機器可能需要向此一機 器之授權者付費。在智慧卡中,各卡具有Java CardTM虛擬 機器之一啟用且已付費複本。此會增加各智慧卡之成本, 因為其可能增加Yoshimoto專利中所述系統之成本。因為 在大多數應用中智慧卡之基本功能係交易,所以此成本可 為製造商、中間人或消費者所吸收及/或傳遞給製造商、 中間人或消費者。不過,在可能從未利用虛擬機器之功能 的消費者大量儲存裝置中吸收或傳遞授權成本係不合需 要。 123181.doc -10- 200820076 全球平台(Global Platform)係智慧卡促進與標準化產業 協會。全球平台係充當一智慧卡產業標準主體,藉由橫跨 許多產業之許多服務提供商針對智慧卡程式之全球配置建 立及維持一開放技術框架。全球平台卡規格(Global Platform Card Specification)V· 2·1 ·1及全球平台卡安全需 要形式規格(Formal Specification of Global Platform CardEach instance of the Java Virtual Machine is required to pay an authorization fee to Sun or other vendors. Similarly, any other proprietary virtual machine may need to pay for the licensor of this machine. In the smart card, each card has one of the Java CardTM virtual machines enabled and a paid copy. This would increase the cost of each smart card as it may increase the cost of the system described in the Yoshimoto patent. Since the basic functionality of a smart card is a transaction in most applications, this cost can be absorbed and/or communicated to the manufacturer, intermediary or consumer by the manufacturer, intermediary or consumer. However, it is not desirable to absorb or pass on the cost of the license in a mass storage device that may not have utilized the functionality of the virtual machine. 123181.doc -10- 200820076 Global Platform is the Smart Card Promotion and Standardization Industry Association. The Global Platform serves as a smart card industry standard body that establishes and maintains an open technology framework for the global deployment of smart card programs by many service providers across many industries. Global Platform Card Specification V·1·1 ·1 and global platform card security requirements Formal Specification of Global Platform Card

Security Requirements)(標注日期為2〇〇4年12月,其係提供 於www.globalplatform.com上且以引用方式全文併入本文 中)中說明全球平台之全球平台應用程式設計介面("Αρι") 及其他方面。全球平台提供小型應用程式至已具有虛擬機 器之智慧卡或其他裝置之下載。不過,雖然此提供所需之 小型應用程式及相關聯功能,不過其係針對已具有運行小 型應用程式所需要之虛擬機器之卡來提供。 【發明内容】 本發月在最小化製造及使用成本的同時增加可攜式大量 儲存褒置之可能使用。本發明允許該等裝置運行各種專門 軟體應用程式,不過只有當使用者選擇利用此等應用程式 之功料才承擔此等應用程式之成本。換言之,只有當實 時才引出與可能使用相關聯之成本。對於 市二透兩者’此係一優點。製造商可增加產品功能及 市“透,同時不必吸收或傳遞可能僅合某 :::::徵的成本,用該等特徵之消費者可在必要 不想㈣該功能之消費者無需為其不想要 或而要之某些特徵付費。 “ 123181.doc •11- 200820076 虛擬機II在可攜式大量儲存裝置中非f有用,因為藉由 將虛擬機器放置於合適位置處, 田 ^ 史用更多(與可用以直 運仃於裝置上之應用程式相比)各式各樣的應用程式。 此係由於虛擬機器提供獨立於任何特定處理平台之獨立 性。虛擬機器係一藉由微處理器加以執行但如同其為一獨 立電腦那樣運作的自含式㈣環境。虛擬機n應用程式將Security Requirements) (marked on December 4, 2004, which is available on www.globalplatform.com and is incorporated by reference in its entirety). The global platform application design interface for global platforms ("Αρι&quot ;) and other aspects. The global platform provides downloads of small applications to smart cards or other devices that already have virtual machines. However, while this provides the small applications and associated functionality required, it is provided for cards that already have the virtual machines needed to run small applications. SUMMARY OF THE INVENTION This month increases the potential use of portable mass storage devices while minimizing manufacturing and usage costs. The present invention allows such devices to run a variety of specialized software applications, but only if the user chooses to utilize the functionality of such applications to bear the cost of such applications. In other words, the costs associated with possible use are only brought out in real time. For the city, the two are the advantages of this system. Manufacturers can increase product functionality and the city "transparent, without having to absorb or pass the cost of a certain::::: levy, consumers with these characteristics can not want to (4) consumers of this feature do not need to Some features are required or paid for. " 123181.doc •11- 200820076 Virtual Machine II is not useful in portable mass storage devices because it is used by placing the virtual machine in a suitable location. A wide variety of applications (compared to applications that can be used directly on the device). This is due to the independence of the virtual machine from any particular processing platform. A virtual machine is a self-contained (4) environment that is executed by a microprocessor but functions as a stand-alone computer. Virtual machine n application will

以相同方式執行及運行於該虛擬機器巾,與虛擬機器運行 於何種處理器及作業系統上無關。 2然先前解財案已將錢機^併人記憶卡卜不過, 了'肖費者疋否想要或需要虛擬機器,虛擬機器之成本都 必須由製造商及消費者來承擔。雖然此在主要意欲用作交 :卡或”電子錢包”之裝置中係可接受的,不過在可能最初 要用於其他用途之可攜式大量儲存裝置中並不理想。 I本& % ’只有當使用者想使用-需要存在虛擬機器之 用程式時才需要支付虛擬機器之授權費。因&,下部大Executing and running on the virtual machine towel in the same manner is independent of which processor and operating system the virtual machine is running on. 2 However, the previous solution has already made the money machine and the person remembers the card. However, if the “Shabbers” want or need a virtual machine, the cost of the virtual machine must be borne by the manufacturer and the consumer. While this is acceptable in devices primarily intended for use as a card or "electronic wallet", it is not desirable in portable mass storage devices that may otherwise be used for other purposes. I & % ’ only need to pay the license fee for the virtual machine if the user wants to use it - a virtual machine is required. Due to &

量儲存裝置之成本可伴捭A 人4』保符為最小值,且可只在必要或需要 夺才為附加應用程式及虛擬機器付費。可在裝置壽命期間 之任何時間啟用虛擬機器,且只有當其已啟用時才付費。 機^任何時間獨立、或與—利用機11之應用程式組合將 機1§載入卡中。太甘^ ^ 在某些較佳具體實施例中’當需要一虛擬 在後臺作為虛擬機器或更高階應用程式之啟用之 部分執行虛擬機器之安裝,無需使用者知道。 本發明允許只有备路 百田欲使用需要費用之程式時才支付授權 、使传可將此等程式併人否則不可行之環境中。馨於 123181.doc -12- 200820076 可實施於小型裝置(例如大量儲存型記憶卡)中之大量且不 同應用程式選擇,此會特別有用。 本發明允許使用者快速且容易地僅選擇、啟用他想要之 程式及為其付費。此使得所有人均可買得起基本裝置,同 時允許需要訂製應用程式之人使用訂製應用程式。 將虛擬機器與運行於可攜式大量儲存裝置上之下部韌體 整合並非一簡單任務。尤其在必須限制對受保護内容之存 取的”安全"裝置中會這樣。在此類裝置中,裝置之韌體至 少部分負責保護内容。因此,其限制讀取/寫入操作之使 用權限。因此,其係想未經授權複製受保護内容之人的一 目標。因此,下部韌體必須保護内容免遭駭客複製,同時 仍允許一應用程式(例如虛擬機器)存取該内容。在可在任 何點處載入虛擬機器(或開啟一應用程式(其運行於使用此 類内谷之裝置中))之情況下’韋刃體必須因此能夠在具或不 具虛擬機器(或應用程式)之條件下運行並防止惡意軟體冒 充虛擬機器(或應用程式)。 【實施方式】 如先前技術中所述,以可攜式快閃記憶體為主大量儲存 裝置現今廣泛用以儲存大檔案與軟體程式。由於數位裝置 (其依賴於記憶卡或口袋大小之USB快閃驅動器)之廣泛使 用,許多人已具有此等可攜式大量儲存裝置中的一或多 個。本發明在最小化製造及使用成本的同時增加此等裝置 之可能使用。本發明允許該等裝置運行各種專門軟體應用 程式,不過只有當使用者選擇利用此等應用程式之功能時 123181.doc -13- 200820076 ::擔此等應用程式之成本。換言之,只有當實現可能使 才引出與可旎使用相關聯之成本。對於製造商與消費 、者此係一優點。製造商可增加產品功能及市場滲 透T時不必吸收或傳遞可能僅合某一消費者子集之需要 、、/支的成本。想利用該等特徵之消費者可在必要時為其 寸費而不想利用該功能之消費者無需為其不想要或需要 之某些特徵付費。The cost of the storage device can be reduced to the minimum value of the A person's 4" and can be paid for additional applications and virtual machines only when necessary or required. The virtual machine can be enabled at any time during the life of the device and only pays when it is enabled. The machine ^ is loaded into the card independently of any time, or in combination with the application of the machine 11. Too sweet ^ ^ In some preferred embodiments, the installation of a virtual machine is performed when a virtual machine is required in the background as part of the activation of a virtual machine or a higher-order application, without the user having to know. The present invention allows an environment in which only the backup roads to use the program at a cost to pay for the authorization, such that the program can be used otherwise. Xin 123181.doc -12- 200820076 This can be especially useful for a large number of different application choices that can be implemented in small devices such as mass storage memory cards. The present invention allows a user to quickly and easily select and activate only the program he wants and pay for it. This allows everyone to afford the basic device while allowing people who need to customize the app to use the custom app. Integrating a virtual machine with a firmware running on a portable mass storage device is not a simple task. This is especially true in "safe" devices that must restrict access to protected content. In such devices, the firmware of the device is at least partially responsible for protecting the content. Therefore, it limits the use of read/write operations. Therefore, it is a goal of a person who wants to copy unauthorized content without authorization. Therefore, the lower firmware must protect the content from hacking while still allowing an application (such as a virtual machine) to access the content. The virtual machine can be loaded at any point (or open an application (which runs in a device that uses such a valley)) the blade must therefore be able to be with or without a virtual machine (or application) Under the condition of running and preventing malicious software from impersonating a virtual machine (or application). [Embodiment] As described in the prior art, portable flash memory is mainly used for storing large files and software. Program. Due to the widespread use of digital devices (which rely on memory cards or pocket-sized USB flash drives), many people already have such a large number of portable devices. One or more of the storage devices. The present invention increases the potential use of such devices while minimizing manufacturing and usage costs. The present invention allows such devices to run a variety of specialized software applications, but only if the user chooses to utilize such The functionality of the application is 123181.doc -13- 200820076:: The cost of such applications. In other words, only the implementation may lead to the cost associated with the use of the available. For manufacturers and consumers, this is a Advantages: Manufacturers can increase product functionality and market penetration without having to absorb or deliver the cost of a consumer's subset, or the cost of a branch. Consumers who want to take advantage of these characteristics can Consumers who do not want to take advantage of this feature do not have to pay for certain features that they do not want or need.

::行及/或儲存於大量儲存裝置上之許多軟體及其他 内容需要向擁有者或授權者付費。例如,軟體程式需要向 ,支付授權費,而諸如音樂、電影、照片或著作之内 容亦^要向轉售纟、建立者、提供商及/或授權者等付 費。實施於大量儲存裝置中時特別有用的一軟體程式之一 特疋範例係虛擬機器。此係由於虛擬機器允許建立及執行 …、而針對下硬體平台之特性加以訂製之軟體。虛擬機器 之—範例係先前技術中所說明之以j a V a為主虛擬機器(由:: Many software and other content stored and/or stored on a large number of storage devices need to be paid to the owner or licensor. For example, a software program needs to pay an authorization fee, and content such as music, movies, photos, or works is also paid to resellers, founders, providers, and/or licensors. One of the software programs that are particularly useful when implemented in a large number of storage devices is a virtual machine. This is a software that is customized for the characteristics of the lower hardware platform because the virtual machine allows the establishment and execution of .... The virtual machine - the example is described in the prior art as j a V a as the main virtual machine (by

Sun Microsystems提供)。 雖然將作為一範例來說明來自Sun廳⑽州咖之虛擬 機器不過存在其他虛擬機器且將開發其他虛擬機器。虛 擬機器係-藉由微處理!I加魏行但如同其為—獨立電腦 那樣運作的自含式操作環境。貞義器應用程式將以相同 方式執行及運行於該虛擬機器中,與虛擬機器運行於何種 處理器及作業系統上無關。此提供獨立於任何特定處理平 台之獨立性。因此,與不具虛擬機器情況下之可用軟體程 式相比,一更大軟體程式範圍將可用以運行在虛擬機器及 123181.doc -14 - 200820076 下邛裝置上。本發明可結合任何虛擬機器及其使之可用之 應用程式工作。 圖1顯示一大I儲存型記憶卡之一般架構。大量儲存裝 置00之各種組件係輕合在一起且經由系統匯流排1而通 信。裝置100經由主機介面,14〇與一外部裝置1〇5(亦稱為主 機1〇5)通信。主機介面]4〇包含在主機1〇5與裝置⑽之間 來回傳輸資料之邏輯與硬體組件。若裝置100具有大量儲 存記憶卡之形狀因數’則該介面包括(例如)與數位相機之 接點結構介接之電接點。若裝置100具有USB裝置之形狀 因數:則主機介面1;,40包括與職埠介接之電接點及必需 ㈣i式制器11G控制該裝置且管理大量儲存快閃記 憶體140之單元内之讀取/寫人操作及資料分配。裝置100 亦包括隨機存取記憶體("RAM”)120,其可為一獨立組件 (圖所不)或可整合於控制器110内。控制器110執行來自 RAM 12G之1^體,其係儲存於唯讀記憶體13G或大量儲存 快閃記憶體140中。唯嘈$产_ ▼項圯fe體13〇可電抹除進而可 OM或EPR〇M。該軔體係藉由控制 且控 記憶卡之操作0婪糾和土咖 号η 丁丑ί工制 又貝靭-,則記憶卡將不再正確發揮功 月b。 僅存裝置1〇0較佳包括安全措施。此等措施可確保 、、二〃方可改變應用程式之狀態(例如,未啟用至啟 狀態係受裝置動體控制且勃體可 證一特定靡用於斗、。& ”八〜、Μ敏 w矛式已啟用且可使用。此等措施亦参社春 於裝置之硬體盘教'、父土實施 硬體與軟體(_)中,且在某些具體實施例中加 I23181.doc -15- 200820076 密儲存於裝置中並相對於裝置來回傳輸之資料。若要瞭解 此類型安全大量儲存裝置之更多有關資訊,請參閱以下美 國專利申請案(其係以引用方式全文併入本文中):頒予 Holtzman等人標題為"Secure Memory Card With Life Cycle Phases”之申請案第11/053,273號;頒予Holtzman等人標題 為 "Memory System with in Stream Data Encryption/Decryption”之申請案第 11,314,032號;及標題 為"Secure Yet Flexible System Architecture for Secure Devices With Flash Mass Storage Memory” 之申請案第 11/317,339 號。 裝置100將稱為記憶卡(該裝置之一具體實施例),儘管 如先前所述,裝置100可採用記憶卡、USB裝置或其他形 狀因數之形式。 韌體為卡之資料(其中某些可為受保護資料)提供一路 徑。運行控制器之韌體之完整性很重要,尤其在安全卡 中。若該卡係一安全卡(例如,——實施某一形式數位權利 管理("DRM”)之安全卡),則該韌體之功能之一係限制存取 受保護内容。DRM係用以描述許多用於限制數位内容之免 費使用與傳輸之技術的廣義術語,因此,某些人認為更適 合將其描述為’’數位限制管理"。圖2顯示裝置100之某些軟 體組件(包括韌體)。虛擬機器220包含不存在於基礎卡韌體 210中之功能,不過亦能夠存取快閃記憶體中之内容。因 此,在某種意義上,其亦可視為卡中之一韌體類型,且必 須完全與韌體210整合及相容。因此,卡韌體210必須以其 123181.doc •16· 200820076 在存在或不存在VM 220時均可紮實地發揮功能的此一方 式實施。同樣地,VM 220係以其結合卡韌體210發揮功能 之此一方式實施。實施於韌體210之程式碼中允許其與VM 220整合之設計方面可視為韌體210内之”掛鉤"。採用韌體 210與VM 220間之雙箭頭表示此等掛鉤及其提供之相容 性。載入卡100内之小型應用程式可經由VM 220與韌體通 信且可在卡上提供許多不同軟體應用程式。此等小型應用 程式240A...X運行於虛擬機器上,因此無需針對裝置100 之控制器110及其他硬體組件加以訂製。此對否則將不與 卡相容之一不同軟體應用程式庫開放該裝置。 從圖2中可看到,主機105必須透過一應用程式設計介面 ("API")與韌體210(包括VM 220)通信。可在卡中實施許多 API 250A...X。此包括標準或原生裝置API 250A、產業標 準或廣泛接受之API 250B(例如,全球平台API)、專屬API 250C(例如捆綁至VM 220之API,如用於Java虛擬機器之 API,或用於小型應用程式240之一的API)、及任何其他 API 250X。VM 220必須將正確API置於合適位置處以發揮 功能,因此一啟用特定虛擬機器之方法係藉由啟用及/或 載入一與特定虛擬機器相容之API。當然可採用各種其他 觸發器直接啟用VM。該VM係一韌體類型,隨後將針對圖 9對其加以論述。下面論述各種啟用方法。 無論卡之應用程式為何應用程式,添加先前所述虛擬機 器之功能均需要與卡之其他韌體整合。將虛擬機器及其各 種小型應用程式與韌體整合無論在卡離開工廠之前還是之 123181.doc -17- 200820076 後,卡均必須無縫操作。在現場下載小型應用程式之情況 下,將不容易驗證(可能根本無法驗證)小型應用程式之内 谷及〖生貝因此,卡之基本韌體必須足夠靈活以提供小型 應用程式所需要之現場下載及資料存取,同時其必須足夠 糸實以便即使已編寫之小型應用程式很差時也可發揮功 能。此外,在小型應用程式企圖摧毀卡之drm之情況下, 韌體必須保護來自小型應用程式之資料仍可繼續為經授權 使用者提供内容。 與構建目的係用以保護少量高度受保護交易資料之智慧 卡不同,大1儲存型記憶卡必須提供極大内容程式庫之經 $存取。此使用者内容在卡之壽命期間始終處於通量中, 如同卡可肖b遇到之應用程式一樣。卡之韌體與硬體會適應 使用者對新應用程式之需要且允許現場(或在工廠中)下載 新應用程式,同時始終保護卡之内容。此並非一簡單任 務。 瞻圖3 A係卡1〇〇中之某些軟體組件之表示。各種小型應用 程式240A至X係運行於卡内。較佳虛擬機器Provided by Sun Microsystems). Although it will be used as an example to illustrate the virtual machine from the Sun Hall (10) state coffee, there are other virtual machines and other virtual machines will be developed. Virtual machine system - with microprocessing! I add Weixing but it is a self-contained operating environment that operates as a stand-alone computer. The Demonizer application will execute and run in the same way in the virtual machine, regardless of the processor and operating system on which the virtual machine is running. This provides independence from any particular processing platform. Therefore, a larger software program range will be available to run on the virtual machine and the device on the virtual machine compared to the available software programs without the virtual machine. The present invention can be combined with any virtual machine and the applications it makes available to it. Figure 1 shows the general architecture of a large I-storage memory card. The various components of the mass storage device 00 are lightly coupled together and communicate via the system bus bar 1. The device 100 communicates with an external device 1〇5 (also referred to as host 1〇5) via a host interface. The host interface 4〇 contains the logical and hardware components for transferring data back and forth between the host 1〇5 and the device (10). If the device 100 has a large number of memory card memory factor's, the interface includes, for example, electrical contacts that interface with the contact structure of the digital camera. If the device 100 has the form factor of the USB device: the host interface 1; 40 includes an electrical contact interface and a required (4) i-type controller 11G to control the device and manage a large number of units storing the flash memory 140. Read/write user operations and data distribution. The device 100 also includes a random access memory ("RAM") 120, which may be a separate component (not shown) or may be integrated into the controller 110. The controller 110 executes a body from the RAM 12G. It is stored in the read-only memory 13G or in the mass storage flash memory 140. Only the product _ ▼ item 圯 体 body 13 〇 can be erased and then OM or EPR 〇 M. The system is controlled and controlled The operation of the memory card 0 婪 和 土 土 土 丁 丑 ί ί ί ί ί ί ί ί ί ί ί ί ί ί ί ί ί ί , , , , , , , , , , 记忆 记忆 记忆 记忆 记忆 记忆 记忆 记忆 记忆 记忆Ensure that the second and second parties can change the state of the application (for example, the unactivated to open state is controlled by the device and the body can be used for a bucket, and the & It is enabled and usable. These measures are also in the hardware of the device, the parental implementation of hardware and software (_), and in some specific examples plus I23181.doc -15- 200820076 Data stored in the device and transmitted back and forth relative to the device. To learn more about this type of safe mass storage device For information, please refer to the following U.S. Patent Application Serial No. 11/053,273 issued to Holtzman et al. entitled "Secure Memory Card With Life Cycle Phases" Application No. 11,314,032 to Holtzman et al., entitled "Secure Yet Flexible System Architecture for Secure Devices With Flash Mass Storage Memory" 11/317, 339. Device 100 will be referred to as a memory card (a specific embodiment of the device), although as previously described, device 100 may take the form of a memory card, USB device, or other form factor. (Some of these can provide a path to protected data.) The integrity of the firmware of the operating controller is important, especially in a security card. If the card is a security card (for example, - implement a form of digital rights) Management ("DRM") security card), one of the functions of the firmware is to restrict access to protected content. DRM is used to describe A broad term used to limit the technology of free use and transmission of digital content, so some people find it more appropriate to describe it as ''digital limit management'. Figure 2 shows some of the software components of device 100 (including firmware) ). The virtual machine 220 includes functionality that is not present in the base card firmware 210, but is also capable of accessing content in the flash memory. Therefore, in a sense, it can also be regarded as one of the types of firmware in the card, and must be fully integrated and compatible with the firmware 210. Therefore, the card firmware 210 must be implemented in such a way that it can function solidly in the presence or absence of the VM 220 in its 123181.doc •16.200820076. Similarly, the VM 220 is implemented in such a manner that it functions in conjunction with the card firmware 210. The design aspect of the code implemented in the firmware 210 that allows it to be integrated with the VM 220 can be considered as a "hook" in the firmware 210. The double arrow between the firmware 210 and the VM 220 indicates that the hooks and their phases are provided. Capacitance. The small application loaded into the card 100 can communicate with the firmware via the VM 220 and can provide many different software applications on the card. These small applications 240A...X run on the virtual machine, so there is no need The controller 110 and other hardware components of the device 100 are customized. This pair will not open the device with a different software application library that is not compatible with the card. As can be seen from Figure 2, the host 105 must pass an application. The programming interface ("API") communicates with firmware 210 (including VM 220). Many APIs 250A...X can be implemented in the card. This includes standard or native device API 250A, industry standard or widely accepted API 250B (eg, Global Platform API), proprietary API 250C (eg, API bundled to VM 220, such as API for Java Virtual Machine, or API for one of Small Applications 240), and any other API 250X. VM 220 Must put the correct API The appropriate location is functional, so a method of enabling a particular virtual machine is by enabling and/or loading an API that is compatible with a particular virtual machine. Of course, various other triggers can be used to directly enable the VM. Types, which will be discussed later with respect to Figure 9. The various enabling methods are discussed below. Regardless of the application of the card application, the functionality of adding the previously described virtual machine needs to be integrated with other firmware of the card. All small applications and firmware integration, no matter before the card leaves the factory or after 123181.doc -17- 200820076, the cards must be seamlessly operated. In the case of downloading small applications in the field, it will not be easy to verify (may not be possible at all) Verification) The application of the small application and the raw shell. Therefore, the basic firmware of the card must be flexible enough to provide the live download and data access required by the small application, and it must be compact enough so that even the small application has been written. It can also function when it is very poor. In addition, in the case of a small application attempting to destroy the drm of the card, The firmware must protect the data from the small application and continue to provide content for authorized users. Unlike the smart card that is built to protect a small number of highly protected transaction data, the large storage card must provide a great content program. The library is accessed by $. This user content is always in flux during the life of the card, just like the application that the card is encountered. The firmware and hardware of the card will adapt to the user's needs for the new application. It also allows you to download new applications on-site (or in the factory) while always protecting the contents of the card. This is not a simple task. Figure 3 shows the representation of some of the software components in the A-Card. Various small applications 240A to X run on the card. Better virtual machine

Card™虛擬機器,且在以” Ca『dTM或其他Java虛擬機器之 t月況下,基於特定小型應用程式及虛擬機器22〇,亦存在CardTM virtual machine, and under the condition of "Ca"dTM or other Java virtual machine, based on specific small applications and virtual machines 22

Java Card框架(若需要或合需要的話)。此等組件全部運Java Card framework (if needed or needed). All of these components are shipped

4亍;卡作業糸統或初體210上。在此情況下,Java CardTM 框木及其他產業附件23〇與Java虚擬機器22〇均運行於卡作 業系統210上。 0 B ,、、、員示任何時間均可載入卡中並啟用,且作為本發明 123181.doc -18- 200820076 初體及系、、先之邛为發揮功能的軟體組件或"封裝”。該封 裝不僅可包括虛擬機器220,而且(視需要)包括一或多個軟 〜用程式270。了部動體21〇係經配備以結合謂咖與 -用程式27G之額外軟體發揮功能。運行於虛擬機器上之 任何㈣應用程式27G均可在任何時間載人卡中。虛線係 用乂和示彳在具或不具應用程式27。時載入(Μ⑽且該 應用程式之安裝無需與VM之安裝同時。只有當丨)卡中存在 封裝,且ii)已啟用封裝時才需要支付與封裝之組件相關聯 之任何費用。 可將圖3B所示封裝以許多方式提供給使用者。可在販售 時在卡中提供該封裝,如圖4 A所示。在此情況下,必須在 可使用封裝之前”現場"將其啟用。或者,使用者可作為完 整封裝或逐段”現場,,下載封裝,如圖4B所示。作為另一方 法,可將新韌體210載入卡中,如圖4C所示。此韌體下載 亦包括圖3B所不封裝之全部或部分。在一具體實施例中, 此思味著在韋刃體更新程序中將圖2所示韌體以^^〜乂訄 220、小型應用程式240全部載入。在下面將說明的调4A、 4B及4C之流程圖中顯示此等基本方法。 如先4所述,虛擬機器與小型應用程式或應用程式需要 為啟用狀態或加以啟用以便加以利用。當然,儘管在許多 情況下並非較佳,但也可不存在為下載啟用組件所必需之 安全措施。此可能(但未必一定)適合存在受限卡分配之安 全或可信任環境。此外,在某些具體實施例中,該安全可 月b為下载程序之部分且無需額外啟用。換言之,假設已授 123181.doc -19- 200820076 權使用者首先下载’或可作為下载序列之部分執行啟用, 則可以一啟用狀態下載組件。 卡二〇具有一啟用管理器,其接收並驗證啟用指令。該 啟用&理器可為勃體21G之部分或可視為一獨立軟體模 • 、且1^啟用官理器開啟及關閉應用程式或作業系統特徵。 較佺安王(例如在安全通道頂部上)執行此啟用。在一具體 K &例中啟用官理器在其接收正4程式碼時啟用封裝。 _ a用&理:接收該程式碼,相對於-驗證該程式碼之祠服 為對其加以才双查’或相對於儲存於該卡之一記憶體内的該 程式碼之一加岔版本對其加以檢查。該啟用管理器亦記錄 I敗啟S ’且在某些具體實施例中限制失敗嘗試數且可在 超過該數目時鎖定該卡。 該私式碼可以不同參數為基礎且可以許多方法計算該程 式碼該程式碼亦可為一預期開&匹配應用程式之簡單數 字。該程式碼可為一般啟用程式碼且亦可與一應用程式 • ID(其係一與特定應用程式唯一相關聯之數字)相關聯及/或 以之為基礎。該程式碼可部分基於一卡唯一 ID(其係一僅 與特疋卡相關聯之數字)。該程式碼亦可具有指定應用程 式(無論應啟用或停用該應用程式)及啟用程式碼本身之部 分。該程式碼亦可指定或包含一特定應用程式狀態’例如 未啟用、啟用、暫時中止、或廢止。其亦可指定及提供复 他各種必需許可(例如DRM方案中之不同許可位準)之使用 權限。該程式碼亦可基於或包括以上所有方案之某些 有方面。 123181.doc -20- 2008200764亍; card operation system or initial body 210. In this case, Java CardTM and other industry accessories 23 and Java Virtual Machine 22 are both running on the card operating system 210. 0 B , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , The package may include not only the virtual machine 220, but also (as needed) one or more soft-to-use programs 270. The mobile unit 21 is equipped to function in conjunction with the additional software of the program and application program 27G. Any (4) application 27G running on the virtual machine can be loaded in the card at any time. The dotted line is loaded with 乂 and 彳 with or without application 27. (Μ(10) and the application is installed without VM The installation is simultaneous. Any charge associated with the packaged component is required only if the package is present in the card and ii) the package is enabled. The package shown in Figure 3B can be provided to the user in a number of ways. The package is provided in the card at the time of sale, as shown in Figure 4A. In this case, it must be "lived" before the package can be used. Alternatively, the user can download the package as a complete package or piece by piece, as shown in Figure 4B. As another method, the new firmware 210 can be loaded into the card, as shown in Figure 4C. It also includes all or part of the package not shown in Fig. 3B. In a specific embodiment, it is thought that the firmware shown in Fig. 2 is in the process of updating the blade to ^^~220, and the small application 240 is all Loading. These basic methods are shown in the flowcharts of 4A, 4B, and 4C, which will be described below. As described in 4, virtual machines and small applications or applications need to be enabled or enabled for use. Of course, although it is not preferred in many cases, there may be no security measures necessary to download the enablement component. This may (but not necessarily) be suitable for a secure or trusted environment with restricted card allocation. In addition, in some In a specific embodiment, the security month b is part of the download process and does not need to be additionally enabled. In other words, it is assumed that the user has been authorized to download first or as part of the download sequence. If enabled, the component can be downloaded as soon as it is enabled. The card has an enable manager that receives and verifies the enable command. The enable & device can be part of the body 21G or can be viewed as a standalone software model. ^ Enable the official to open and close the application or operating system features. This is enabled by the King (for example, on the top of the secure channel). In a specific K & example, the government processor is enabled to receive the positive 4 code. Enable encapsulation. _ a Use & handle: Receive the code, compare it with - verify the code for the service to double check ' or relative to the code stored in one of the memory of the card The card is checked by a coronation version. The enable manager also records the I fail to start S' and in some embodiments limits the number of failed attempts and can lock the card when the number is exceeded. The private code can be different The parameter is based and can be calculated in a number of ways. The code can also be a simple number that is expected to open & match the application. The code can be generally enabled and can also be associated with an application ID. One The unique associated number of a particular application is associated with and/or based on it. The code may be based in part on a card unique ID (which is a number associated with only the special card). The code may also have The specified application (whether the application should be enabled or disabled) and the part of the code itself. The code can also specify or contain a specific application status 'eg not enabled, enabled, temporarily suspended, or revoked. You may specify and provide access to various required licenses (such as different license levels in the DRM scheme). The code may also be based on or include some aspects of all of the above options. 123181.doc -20- 200820076

使用不同演算法來遞增密碼(卡及飼服器内),,則即使一卡 中之種值或單次密碼值受到危及,其也無法用以竊入另— 卡中。在一範例中,啟用程式碼或οτρ係卡ID、卡類型、 該程式碼亦可為—對稱或非對稱密碼鑑別方案之部分。 例如I _稱方案中’該程式碼可為-類型單次密碼 ΓΟΤΡ”)(其在此項技術中係廣為人知的)。在此情況下,卡 與驗證伺服器均具有㈣種值,且基於該種值及許多被選 定演算法獨立建立該程式碼或οτρ。按規則間隔遞增或更 新該程式碼或ΟΤΡ’且在任何給定時刻,均可相對於藉由 驗證伺服器所計算出之οτρ來驗證卡中計算出之οτρ。採 用ΟΤΡ方案時’若最初為兩卡載人相同種值,若在兩卡中 應用程式ID、及OTP種值之函數。卡類型可為任何熟知卡 類型,例如小型快閃卡、SD卡、迷你犯卡、MMC卡、 transflash卡、XD卡、記憶條等…或可為一 USB快閃驅動 器。 在啟用程式碼包含或基於0TP(之函數)的一具體實施例 中,OTP及/或程式碼可用以開啟或關閉一應用程式或軟體 層。將οτρ或程式碼(由遠端伺服器或其他裝置產生)發送 至卡並將其與卡所產生之OTP作比較以驗證啟用程式碼或 οτρ。若驗證其係正確的,則可開啟或關閉應用程式或軟 體層。基於此等目的使用OTP較佳,因為該值僅可使用一 次’因而無法用於多個啟用或以未經授權方式傳遞及使 用。在某些具體實施例中,欲啟用應用程式之應用程式ID 亦可用以產生該啟用程式碼或OTP。以此方式,οτρ將為 123181.doc -21- 200820076 某一應用程式之特有OTP。 如先前所述,在某些具體實施例中,可針對多個卡使用 相同種值。該種值係0TP計算之基礎。同樣,啟用程式碼 或OTP係卡ID、卡類型、應用程式ID、及〇τρ種值之函 數。此允許將相同私密種值載入多個卡中,其減少伺服器 資料庫上之記錄數。同時’由於可使用不同演算法(其; 為卡ID、卡類型、及應用程式ID中之一或多者之函數卜 所以可產生唯-OTP及啟用程式碼,從而提供高安全位 準。 最常用非對稱方案涉及一公用密鑰基礎建設(PKI卜其 中一裝置或實體擁有兩密鑰(私有密鑰與公用密鑰),其係 密碼相關以便採用一密鑰加密之資料可採用另一密鑰進行 解密,且無法從公用密鑰以數學方式導出私有密鑰。在此 一方案中,自由分配公用密鑰,而私有密鑰係為擁有實體 私密擁有。藉由執行一詰問/回應序列(其中需要藉由解密 一使用其公用密鑰進行加密之訊息來檢驗私有密鑰之擁有 權)來實現一實體之鑑別。隨後將說明之圖6與7中顯示本 發明之一使用ΡΚΙ之具體實施例。 此外,在一具體實施例中,將一對稱方案之若干方面與 一非對稱方案之若干方面組合。在此一具體實施例之一範 例中’在一階段中,使用οτρ來驗證卡,且在另一階段 中’使用一詰問/回應對話。 已論述啟用程序,現在將返回圖4Α、4Β及4C之流程圖 (其顯示下載與啟用之若干方面)。 I23181.doc •22- 200820076 圖4A顯示欲執行—載人虛擬機器之啟j的程序。在圖 4A之f驟彻中,卡之發行者或提供商在將卡販售給使用 者之前的某一時間點提供虛擬機器。此可為製造時間或此 後某-時間點,且亦存在卡之_體。該虛擬機器將處於一 待用或未啟用狀態中,即消費者不可使用該虛擬機器。因 此,不應必須為該(未使用或未啟用)虛擬機器支付授權 費。較佳地,消費者不會意識到,在其啟用或”解鎖,,之前 其已存在於卡上。虛擬機器可為任何類型或品牌之虛擬機 器。目前可用虛擬機器之某些範例係:java; mult〇s; Java Card·;嵌入式linux ;嵌入式; d〇t.m及 Windows CE。可能需要不同虛擬機器以支援不同小型應 用程式,因此可將多個VM載入裝置中。裝置韌體管理不 同VM及小型應用程式所需資源之可用性。 在y驟410中,系統之使用者、卡或伺服器決定需要或 想要虛擬機器。接著,在步驟415中,一可信任機構啟用 虛擬機器。在此時間點處,需要支付與虛擬機器相關聯之 任何授權費。在公用密鑰基礎建設中,可信任機構經常稱 為認證機構。圖6顯示認證機構620。 圖6顯示一針對憑證之驗證/授權利用公用密鑰基礎建設 之具體實施例。由於交易可能並不比其内發生交易之系統 安全,所以最重要元件針對通信者建立一用以相互定位並 確信其使用之公用密鑰真屬於其想與之通信之人(或機器) 的路徑。公用密鑰基礎建設係經設計用以提供此信任。使 用一稱為數位認證或公用密鑰認證之資料元件(其將公用 123181.doc -23 - 200820076 密鑰連結至關於其擁有者之識別資訊),將基礎建設設計 成用以建立該連結,並基於使用社區内所有人之利益管理 該捆綁。一旦驗證了該等憑證,便如上所述採用一程式碼 或OTP啟用該封裝。或者,該等憑證本身或其驗證對於憑 證之驗證/授權而言就足夠,允許或觸發啟用。 使用私密密鑰與公用密鑰密碼之組合,PKI致能許多其 他安全服務,包括資料加密、資料完整性、及密鑰管理。 在ITU-T X.5 09建議[X.509]中定義PKI之基礎或框架,以引 用方式全文併入該建議。 有時將終端實體視為終端用戶。儘管通常會這樣,但術 語終端實體的含義更具一般性。終端實體可為終端用戶、 裝置(例如路由器或伺服器)、程序、或可在公用密鑰認證 之主題名稱中識別的任何實體。亦可將終端實體視為PKI 相關服務之消費者。本發明中,從圖6所示具體實施例可 看到,終端實體係大量儲存裝置100及其使用者。 以公用密鑰認證之形式分配公用密鑰。CA 620係PKI之 基礎,因為其係可發行公用密鑰認證之組件。將公用密鑰 認證發送至裝置100及儲存庫610。發行CA(其將主題名稱 有效地連結至公用密鑰)對公用密鑰認證進行數位簽名。 C A亦負責發行認證註銷列表(CRL),已將此委派給獨立 CRL發行者630之情況除外。CA亦可處理許多管理任務, 例如終端用戶之註冊,但此等任務通常係委派給註冊機構 (RA)(其係選用的且圖6未顯示)。實務上,CA亦可用作密 鑰備份與復原設施,儘管此功能亦可委派給一獨立組件。 123181.doc -24- 200820076 通常將CA視為PKI中之"信任來源"。在一利用公用密鑰基 礎建設之具體實施例中,CA 610指示,可信任裝置1〇〇 及將下載封裝之伺服器。此信任將用於下載、啟用、及付 費用途。圖7係一說明圖6之組件之表,且作為一快速表考 加以提供。 圖4Β係單獨或作為更大軟體封裝之部分提供虛擬機器的 另一程序。在步驟435中,提供卡韌體21〇。此動體具有用 於將來與一虛擬機器整合並結合該虛擬機器使用的"掛鉤,,, 或換言之係經設計用以與一虛擬機器相容。較佳在卡製造 時提供該虛擬機器相容韌體,不過亦可在卡壽命期間之任 何時間載入該虛擬機器相容韌體。該韌體具有經設計用以 限制存取卡上之某些類型資料的安全機制。此包括韌體内 之安全機制本身及儲存於卡之記憶體中之受保護内容。安 裝或啟用虛擬機器之前,韌體(之安全機制)不允許運行於 卡内或卡外之軟體應用程式存取受保護資料。不過,該韌 體亦可操作以偵測虛擬機器,及一旦安裝並啟用虛擬機器 便讓其存取某些受保護資料。換言之,該韌體可視為具有 不同操作狀態,一操作狀態係供不具虛擬機器時使用,而 一操作狀態係結合虛擬機器使用。在兩狀態下,韌體必須 保護並限制存取卡上之資料,包括韌體本身。在第二狀態 下,韌體必須允許虛擬機器讀取及寫入資料,同時不許可 任何惡意應用程式之未經授權讀取/寫入存取。 接著,在步驟440中,卡離開製造商之後,使用者或中 間人、或卡本身決定想要或需要一虛擬機器。此後,在步 123181.doc -25- 200820076 驟445中鑑別虛擬機器及其提供商。此可為先前所述對稱 及/或非對稱鏗別。在步驟彻中,將虛擬機器下載至卡中 並加以啟用。在此時間點處,需要支付與虛擬機器相關聯 之任何授權費。一旦啟用,便觸發付費。 一圖4C係單獨或作為更大軟體束之部分提供虛擬機器的另 一程序。在步驟460中,使用者或卡決^需要或想要一虛 擬機器#著’在步驟465中鑑別虛擬機器及其提供商。 此可為先前所述對稱或非對稱鑑別。在步驟470中,將一 新章刃體21G複本或版本(具_虛擬機器2別)下载至卡中。同 時可視需要載入額外小型應用程式24〇或其他程式。 一圖5顯示虛擬機器下載之Αρι管理。在步㈣时,接收 γ載〗型應用程式之請求。一來自任何智慧型裝置之伺 服器T由任何網路(包括網際網路)進行此請求。卡之發行 ^或提供商(或任何第三方)可操作該飼服器。卡之發行者 可為製每商或其代表’而提供商可為處理、分配或販售卡 之任何實體。接收步驟51〇之請求的伺服器接著將該請求 、σ卡之奄行者或提供商,若發行者或提供商不直接接 收該請求。在步驟520中,發行者或提供商快速取回一虛 擬機器’(若)小型應用程式之運行需要的話。接著,在步 = 530中’將虛擬機器及小型應用程式無縫載入卡中。此 心未著使用者無需(但可以)知道已取回虛擬機器並載入 他的卡中。在步驟440(其可發生在步驟54〇之前、之後、 或/、/、同時)中,啟用虛擬機器及小型應用程式。在步驟 550中,卡針對虛擬機器及小型應用程式選擇並利用正確 123181.doc -26- 200820076 API。若正確API不存在,則發行者或提供商將正確API載 入卡中。同樣,如同步驟520一樣,使用者較佳無需(但可 以)知道將API載入卡中。總而言之,對於使用者,儘可能 快且容易地執行該程序。一旦請求小型應用程式,便可以 超快方式自動載入該小型應用程式及致能該小型應用程式 運行之所有必需軟體(使用者不知道載入他的小型應用程 式並使其工作可能涉及之各種步驟)。如先前所述,提供 正確API係一種啟用虛擬機器及/或小型應用程式之方法。 費用與使用費之收取與分配 一旦啟用虛擬機器、小型應用程式、或其他軟體應用程 式,便必須為該應用程式支付授權費。若(例如)一小型應 用程式涉及用以控制載入至卡之安全内容之數位權利管理 ("DRM"),則該内容也可能需要使用費。無論如何,本發 明可用以支付任何類型使用費或授權費。圖8顯示一用於 在各種實體間支付費用之系統》收費者81〇收取消費者費 用805A。此較佳涉及網際網路上所提供的一安全服務。收 費者810會保留該費用中用於其服務的某一部分並將其餘 費用傳輸至裝置發行者820。例如,若將内容或程式載入 至SanDisk所發行之SD卡上,則SanDisk將為卡發行者82〇 且接收費用805之部分805B。發行者接著保留費用8〇5之某 一部分並將部分805C發送至内容擁有者或經授權者83〇。 在至此所述具體實施例中’可為Java虛擬機器授權以及運 行於虛擬機器上之不同小型應用程式付費。該系統亦可更 一般地用以為需要授權之其他類型内容付費。在為内容及 123181.doc -27- 200820076 將内容呈現給裝置之使用者所需要之軟體付費時,此付費 系統也相當有用。 安全 除安全啟用虛擬機器之外,裝置1〇〇亦實施其他安全措 施。將虛擬機器儲存於快閃記憶體中之前,卡可能需要一 先前所述可信任機構對其進行簽名。此外,亦可實施各種 加密技術以便無法對虛擬機器(或其他軟體應用程式)進行 竄改、偷偷啟用、或非法複製及安裝於裝置上。可以各種 熟知雜湊函數,或替代地以一裝置唯一密鑰來加密VM。 可採用軟體及/或硬體實現此加密。此可能需要使用 MAC值、SHA-1值、或雜湊值。此等加密/解密技術之基本 原理廣為人知,此處無需詳細說明。 在一具體實施例中,採用一實施於控制器之硬體中之加 密引擎來執行該加密。加密引擎之硬體在將應用程式之進 入資料載入卡之記憶體中時對其進行即時加密。控制器係 用以建立為該控制器特有之雜湊值且與控制器相關聯係用 作控制H之-類型簽名。此後在欲執行應用程式之前驗證 此簽名。將加密引擎至少部分實施於控制器之硬體中(而 非完全實施於韌體中)導致一極難破壞之紮實裝置。此係 由於無法以一取代型控制器(其具有-不同簽名)取代該控 制器’其係破壞裝置之安全的常用方法。也無法很容易地 偽迈控制器之簽名。如圖9所示,韌體21〇可具有一啟動載 入器部分2m統部分鳩、及用於㈣之各種mac 值、SHAH戈雜隸,其可分成可個別載入ram記憶體 123181.doc -28· 200820076 中供執行用之片段或重疊。若要瞭解本發明之某些具體實 施例中所利用之加密技術之此及其他方面的更多有關資 訊,請參閱頒予M· Holtzman等人之申請案(其係以引用方 式全文併入)。 可將各種韌體應用程式儲存於圖9所示快閃記憶體空間 内。虛擬機器與小型應用程式可視為韌體應用程式。例 如,以202a編號之APPFW !可包含虛擬機器,而以2〇孔編 號之APP FW 2/其内可包含一小型應用程式。若將此等韌 體片段分成重疊,則一應用程式韌體重疊映射2〇1&會指示 應用程式韌體之各種片段之,,令人困擾的”儲存位置。將重 豐之雜湊值、SHA-1值、或MAC值本身以加密格式儲存於 快閃記憶體内之表201b中。此等值進而可自身進行加密, 且在某些具體實施例中可採用先前所述裝置特定硬體加密 技術進行加密。在某些具體實施例中,將為虛擬機器保留 快閃記憶體内之空間以方便與卡之其他韌體整合及結合其 操作。此在安全卡中(其中韌體部分所提供的卡之安全在 其他情況下可能會由於虛擬機器及運行於卡上並存取其中 所儲存之資料的任何其他應用程式而受到危及)尤其重 要。 儘管已顯示及說明本發明之具體實施例,不過可對此等 解說性具體實施例進行變更及修改而不背離本發明之更廣 泛方面。因此,應明白,本發明可具有其他具體實施例, 儘管上面未明確說明,但其仍在本發明之範疇内,因而本 發明之範疇不僅僅受限於所提供之解說性具體實施例。因 12318l.doc -29- 200820076 此’應瞭解’所附申請專利範圍提供本發明之範圍與邊 界。不過,由於措詞並非說明本發明之料的完美方法, 所以亦應瞭解,等效結構與方法儘管未在申請專利範圍之 表達措詞内,但亦屬於本發明之真範疇内。 【圖式簡單說明】 圖1係大量儲存裝置100之示意圖。 圖2係大里儲存裝置1〇〇與主機1〇5之軟體組件的示意 圖。 圖3 A顯示依據本發明之一具體實施例之一大量儲存裝置 的軟體組件。 圖3B顯示依據本發明之一具體實施例之一已下載應用程 式。 圖4 A係依據本發明之一第一提供方案的流程圖。 圖4B係依據本發明之一第二提供方案的流程圖。 圖4C係依據本發明之一第三提供方案的流程圖。 圖5係一流程圖,其顯示依據本發明之一具體實施例之 應用程式協定介面管理。 圖6顯示公用密鑰基礎建設及大量儲存裝置1〇()。 圖7係一說明公用密鑰基礎建設之某些組件的表。 圖8顯示依據本發明之一具體實施例之收入流程。 圖9顯示快閃記憶體14〇之記憶體空間的一部分。 【主要元件符號說明】 100 大量儲存裝置/卡 105 外部裝置/主機 12318I.doc -30- 200820076 110 控制器 120 隨機存取記憶體 130 唯讀記憶體 140 主機介面/大量儲存快閃記憶體 150 糸統匯流排 201a 應用程式韌體重疊映射 201b 表 202a APP FW1 202b APP FW2 210 卡韌體/卡作業系統 210a 啟動載入器部分 210b 系統部分 220 虛擬機器(VM) 230 產業附件 240A至 X 小型應用程式 250A 標準或原生裝置API 250B 產業標準或廣泛接受之API 250C 專屬API 250X 其他API 270 軟體應用程式 610 儲存庫 620 認證機構(CA) 630 獨立CRL發行者 805A 消費者費用 123181.doc -31 - 200820076 805B 費用之部分 805C 費用之部分 810 收費者 820 裝置發行者 830 内容擁有者或經授權者 123181.doc -32-Using different algorithms to increment the password (in the card and the feeder), even if the value or single password value in one card is compromised, it cannot be used to steal the card. In an example, enabling the code or οτρ card ID, card type, the code may also be part of a symmetric or asymmetric cryptographic authentication scheme. For example, in the I_called scheme, 'the code can be a -type single password ΓΟΤΡ" (which is widely known in the art). In this case, both the card and the authentication server have (four) values and are based on The value and a number of selected algorithms independently build the code or οτρ. The program code is incremented or updated at regular intervals or at any given time, relative to the οτρ calculated by the verification server. To verify the οτρ calculated in the card. When using the scheme, 'if the two cards are the same value for the first time, if the application ID and the value of the OTP value are used in the two cards, the card type can be any known card type. For example, a small flash card, SD card, mini card, MMC card, transflash card, XD card, memory stick, etc... or can be a USB flash drive. In an embodiment, the OTP and/or code can be used to enable or disable an application or software layer. Send οτρ or a code (generated by a remote server or other device) to the card and associate it with the OTP generated by the card. compared to Verify the enable code or οτρ. If you verify that it is correct, you can enable or disable the application or software layer. It is better to use OTP for these purposes, because this value can only be used once 'and thus cannot be used for multiple enable or In an embodiment, the application ID of the application to be enabled may also be used to generate the enable code or OTP. In this way, οτρ will be 123181.doc -21- 200820076 A unique OTP for an application. As mentioned previously, in some embodiments, the same value can be used for multiple cards. This value is the basis for the 0TP calculation. Similarly, the code or OTP card ID is enabled. , card type, application ID, and 〇τρ value function. This allows the same private value to be loaded into multiple cards, which reduces the number of records on the server database. At the same time 'because different algorithms can be used ( It is a function of one or more of the card ID, card type, and application ID, so that only OTP and enable code can be generated to provide a high security level. The most common asymmetric scheme involves Public key infrastructure (PKI) One device or entity has two keys (private key and public key), which are password-related so that the data encrypted with one key can be decrypted by another key, and cannot be The private key is mathematically derived from the public key. In this scheme, the public key is freely assigned, and the private key is privately owned by the owning entity. By performing a query/response sequence (where a decryption is required) A method of verifying the ownership of a private key using its public key to verify the ownership of the private key is used to effect authentication of an entity. A specific embodiment of one of the uses of the present invention is shown in Figures 6 and 7 which will be described later. In a particular embodiment, aspects of a symmetric scheme are combined with aspects of an asymmetric scheme. In one example of this embodiment, 'in one stage, οτρ is used to verify the card, and in another stage' a question/response dialog is used. The enabling procedure has been discussed and will now return to the flowcharts of Figures 4, 4 and 4C (which show several aspects of downloading and enabling). I23181.doc •22- 200820076 Figure 4A shows the program to be executed – the manned virtual machine. In the course of Figure 4A, the card issuer or provider provides the virtual machine at some point prior to the sale of the card to the user. This can be the manufacturing time or a certain point in time, and there is also a card body. The virtual machine will be in a stand-by or inactive state, ie the consumer is not allowed to use the virtual machine. Therefore, you should not have to pay an authorization fee for this (unused or not enabled) virtual machine. Preferably, the consumer does not realize that it is already present on the card before it is enabled or "unlocked." The virtual machine can be any type or brand of virtual machine. Some examples of currently available virtual machines are: java Mult〇s; Java Card·; embedded linux; embedded; d〇tm and Windows CE. Different virtual machines may be required to support different small applications, so multiple VMs can be loaded into the device. Device firmware management Availability of resources required by different VMs and mini-apps. The user, card or server of the system decides whether a virtual machine is needed or desired in step 410. Next, in step 415, a trusted authority enables the virtual machine. At this point in time, any authorization fees associated with the virtual machine need to be paid. In public key infrastructure, the trusted authority is often referred to as the certification authority. Figure 6 shows the certification authority 620. Figure 6 shows a verification of the credentials / Authorization to use a specific embodiment of the public key infrastructure. Since the transaction may not be more secure than the system in which the transaction takes place, the most important component is built for the communicator A public key that is used to position each other and is convinced that it is used by the person (or machine) that it wants to communicate with. The public key infrastructure is designed to provide this trust. Use one called digital authentication or The public key authentication data element (which links the public key to the identification information about its owner), and the infrastructure is designed to establish the link and is based on the use of the owner of the community. Benefits manage the bundle. Once the credentials are verified, the package is enabled with a code or OTP as described above. Alternatively, the credentials themselves or their verification are sufficient for the verification/authorization of the credentials, allowing or triggering the enablement. Using a combination of a private key and a public key password, the PKI enables many other security services, including data encryption, data integrity, and key management. Defined in ITU-T Rec. X.5 09 [X.509] The basis or framework of the PKI, which is incorporated by reference in its entirety. Sometimes the end entity is considered an end user. Although this is usually the case, the term end entity has a more meaning. The terminal entity can be an end user, a device (such as a router or server), a program, or any entity that can be identified in the subject name of the public key authentication. The terminal entity can also be considered a consumer of PKI related services. In the present invention, it can be seen from the specific embodiment shown in Fig. 6 that the terminal system has a large number of storage devices 100 and its users. The public key is assigned in the form of public key authentication. CA 620 is the basis of PKI because of its A component that can issue a public key authentication. The public key authentication is sent to the device 100 and the repository 610. The issuing CA (which effectively links the subject name to the public key) digitally signs the public key authentication. Responsible for issuing a Certificate of Completion List (CRL), except where this has been delegated to the Independent CRL Issuer 630. The CA can also handle many administrative tasks, such as end-user registration, but these tasks are usually delegated to a Registration Authority (RA) (which is optional and not shown in Figure 6). In practice, CA can also be used as a key backup and recovery facility, although this feature can be delegated to a separate component. 123181.doc -24- 200820076 The CA is usually considered as the "trust source" in the PKI. In a specific embodiment utilizing a public key infrastructure, the CA 610 indicates that the trusted device 1 and the server to be packaged will be downloaded. This trust will be used for download, enablement, and payment purposes. Figure 7 is a diagram illustrating the components of Figure 6 and is provided as a quick test. Figure 4 is another program that provides a virtual machine, either alone or as part of a larger software package. In step 435, the card firmware 21 is provided. This mobile has a "hook" for future integration with a virtual machine and in conjunction with the virtual machine, or in other words is designed to be compatible with a virtual machine. Preferably, the virtual machine compatible firmware is provided during card manufacture, but the virtual machine compatible firmware can also be loaded at any time during the card's lifetime. The firmware has a security mechanism designed to limit access to certain types of data on the card. This includes the security mechanism itself in the firmware and the protected content stored in the memory of the card. Before installing or enabling a virtual machine, the firmware (the security mechanism) does not allow software applications running inside or outside the card to access protected data. However, the firmware can also be manipulated to detect virtual machines and have access to certain protected data once the virtual machine is installed and enabled. In other words, the firmware can be viewed as having different operational states, an operational state being used when there is no virtual machine, and an operational state being used in conjunction with the virtual machine. In both states, the firmware must protect and limit the information on the access card, including the firmware itself. In the second state, the firmware must allow the virtual machine to read and write data without permitting unauthorized read/write access by any malicious application. Next, in step 440, after the card leaves the manufacturer, the user or the middle person, or the card itself, decides whether or not a virtual machine is desired or needed. Thereafter, the virtual machine and its provider are authenticated in step 123181.doc -25- 200820076 step 445. This can be a symmetric and/or asymmetric discrimination as previously described. In the steps, download the virtual machine to the card and enable it. At this point in time, any authorization fees associated with the virtual machine need to be paid. Once enabled, the payment is triggered. Figure 4C is another procedure for providing a virtual machine, either alone or as part of a larger software bundle. In step 460, the user or card needs or wants a virtual machine # to authenticate the virtual machine and its provider in step 465. This can be a symmetric or asymmetric discrimination as previously described. In step 470, a new chapter blade 21G replica or version (with _virtual machine 2) is downloaded to the card. At the same time, you can load additional small applications 24 or other programs as needed. Figure 5 shows the virtual machine download 管理ρι management. At step (4), the request for the γ-loaded application is received. A server T from any smart device makes this request from any network, including the Internet. The card is issued ^ or the provider (or any third party) can operate the feeder. The issuer of the card may provide any entity that processes, distributes or sells the card for each merchant or its representative'. The server receiving the request of step 51 then proceeds to the request, the hacker or provider of the σ card, if the issuer or provider does not directly receive the request. In step 520, the issuer or provider quickly retrieves a virtual machine' if required for the operation of the mini-app. Then, in step = 530, the virtual machine and the small application are seamlessly loaded into the card. The user does not need (but can) know that the virtual machine has been retrieved and loaded into his card. Virtual machines and mini-applications are enabled in step 440 (which may occur before, after, or/or at the same time as step 54). In step 550, the card selects and utilizes the correct 123181.doc -26-200820076 API for virtual machines and small applications. If the correct API does not exist, the publisher or provider will load the correct API into the card. Again, as with step 520, the user preferably does not need (but can) know to load the API into the card. In summary, the program is executed as quickly and easily as possible for the user. Once a small application is requested, the mini-app can be automatically loaded in an ultra-fast manner and all the necessary software that enables the small application to run (the user does not know the various applications that load his small application and make it work) step). As mentioned previously, providing the correct API is one way to enable virtual machines and/or small applications. Fees and usage fees collection and distribution Once a virtual machine, mini-app, or other software application is enabled, an authorization fee must be paid for the application. If, for example, a small application involves digital rights management ("DRM") to control the security content loaded into the card, the content may also require a usage fee. In any event, the present invention can be used to pay for any type of usage fee or license fee. Figure 8 shows a system for paying fees between various entities. The chargeer 81 receives a consumer fee of 805A. This preferably involves a security service provided over the Internet. The payee 810 will retain a portion of the fee for its service and transfer the remaining fee to the device issuer 820. For example, if the content or program is loaded onto an SD card issued by SanDisk, SanDisk will be the card issuer and receive part 805B of the fee 805. The issuer then retains a portion of the fee 8〇5 and sends a portion 805C to the content owner or authorized person 83〇. In the specific embodiments described so far, it is possible to pay for Java Virtual Machine licenses and different small applications running on virtual machines. The system can also be used more generally to pay for other types of content that require authorization. This payment system is also useful when paying for the content and the software required by the user who presents the content to the device in 123181.doc -27- 200820076. Security In addition to the safe activation of virtual machines, the device also implements other security measures. Before the virtual machine is stored in flash memory, the card may need to be signed by a previously trusted authority. In addition, various encryption techniques can be implemented so that virtual machines (or other software applications) cannot be falsified, sneaked, or illegally copied and installed on the device. The VM can be encrypted in a variety of well-known hash functions, or alternatively with a device unique key. This encryption can be implemented in software and/or hardware. This may require the use of a MAC value, a SHA-1 value, or a hash value. The basic principles of these encryption/decryption techniques are well known and need not be elaborated here. In one embodiment, the encryption is performed using an encryption engine implemented in the hardware of the controller. The hardware of the encryption engine encrypts the application as it is loaded into the memory of the card. The controller is used to establish a hash value specific to the controller and associated with the controller for use as a type-control signature for H. This is then verified before the application is executed. Implementing the crypto engine at least in part in the hardware of the controller (but not fully implemented in the firmware) results in a solid device that is extremely difficult to destroy. This is due to the inability to replace the controller's conventional method of securing the device with a replacement controller (which has a different signature). It is also not easy to fake the signature of the controller. As shown in FIG. 9, the firmware 21A can have a boot loader portion 2m portion, and (4) various mac values, SHAH Ge, which can be divided into individually loadable ram memories 123181.doc -28· 200820076 A fragment or overlap for execution. For more information on this and other aspects of the encryption techniques utilized in certain embodiments of the present invention, please refer to the application to M. Holtzman et al. (which is incorporated by reference in its entirety) . Various firmware applications can be stored in the flash memory space shown in Figure 9. Virtual machines and small applications can be viewed as firmware applications. For example, an APPFW! numbered with 202a may include a virtual machine, and an APP FW 2 with a 2 hole number may contain a small application. If these firmware segments are overlapped, an application firmware overlay mapping 2〇1& will indicate various fragments of the application firmware, the confusing "storage location. The heavy hash value, SHA The -1 value, or the MAC value itself, is stored in encrypted form in the table 201b in the flash memory. These values may in turn be encrypted by themselves, and in some embodiments may employ the device-specific hardware encryption previously described. The technology performs encryption. In some embodiments, the space within the flash memory will be reserved for the virtual machine to facilitate integration with and integration with other firmware of the card. This is provided in the security card (where the firmware portion provides The security of the card may in other cases be compromised by the virtual machine and any other application running on the card and accessing the stored data therein. Of particular importance. While specific embodiments of the invention have been shown and described, However, variations and modifications of the illustrative embodiments may be made without departing from the broader aspects of the invention. Therefore, it should be understood that the invention may have other embodiments. Although not explicitly stated above, it is still within the scope of the present invention, and thus the scope of the present invention is not limited only by the illustrative embodiments provided. Since 12318l.doc -29- 200820076 The scope of the invention is provided by the appended claims. However, since the wording is not a perfect way of illustrating the material of the invention, it should be understood that the equivalent structure and method, although not within the expression of the scope of the claims, It is also within the true scope of the present invention. [Simple Description of the Drawings] Fig. 1 is a schematic diagram of a mass storage device 100. Fig. 2 is a schematic diagram of a software component of a large storage device 1〇〇 and a host 1〇5. A software component of a mass storage device in accordance with one embodiment of the present invention. Figure 3B shows an application downloaded in accordance with one embodiment of the present invention. Figure 4A is a flow diagram in accordance with a first aspect of the present invention. Figure 4B is a flow chart according to a second aspect of the present invention. Figure 4C is a flow chart according to a third aspect of the present invention. Figure 5 is a flow chart showing An application protocol interface management in accordance with an embodiment of the present invention is shown in Figure 6. Figure 6 shows a public key infrastructure and a mass storage device (Figure 1). Figure 7 is a table illustrating certain components of a public key infrastructure. Figure 8 shows the revenue flow in accordance with an embodiment of the present invention. Figure 9 shows a portion of the memory space of the flash memory 14 【 [Main component symbol description] 100 mass storage device / card 105 external device / host 12318I. Doc -30- 200820076 110 Controller 120 Random Access Memory 130 Read Only Memory 140 Host Interface / Mass Storage Flash Memory 150 糸 Bus 201a Application Firmware Overlay Mapping 201b Table 202a APP FW1 202b APP FW2 210 Card Firmware/Card Operating System 210a Boot Loader Part 210b System Part 220 Virtual Machine (VM) 230 Industry Attachment 240A to X Small Application 250A Standard or Native Device API 250B Industry Standard or Widely Accepted API 250C Exclusive API 250X Other API 270 Software Application 610 Repository 620 Certification Authority (CA) 630 Independent CRL Issuer 805A Consumption Fees 123181.doc -31 - 200820076 805B Part of the fee 805C part of the fee 810 chargeer 820 device issuer 830 content owner or authorized person 123181.doc -32-

Claims (1)

200820076 十、申請專利範圍: 1 · 種致能在一大量儲存型記憶卡中使用一軟體應用程式 之方法,該方法包含·· 提供運行該記憶卡之資料儲存操作之韌體; 在該卡内提供一或多個應用程式設計介面;及 提供一虛擬機器,其在載入該卡中時未啟用, 其中該記憶卡係可操作以在一使用者需要使用該軟體200820076 X. Patent application scope: 1 · A method for using a software application in a mass storage type memory card, the method comprising: providing a firmware for running a data storage operation of the memory card; Providing one or more application design interfaces; and providing a virtual machine that is not enabled when loaded into the card, wherein the memory card is operable to use the software by a user 應用私式時啟用該虛擬機器且藉此利用該虛擬機器之能 力。 2·如明求項1之方法,其進一步包含只有當啟用該虛擬機 器日守才為其支付一授權費。 3·如明求項丨之方法,其進一步包含將利用該虛擬機器之 月b力的該軟體應用程式載入該卡中,該軟體應用程式依 賴於該虛擬機器以用於該大量儲存型記憶卡之一處理 執行。 ° 4·如請求項1之方法,其中 虛擬機器載入該卡中。 5· ^求項1之方法,其中—消費者接收到該卡之後將該 虛擬機it料載入計巾。 μ田1項1之方法’其中該勤體允許該虛擬機器只有當 啟用後才可存取儲存於該卡上之資料。 7·如明求項3之方法,甘士分从μ 管理。 〃中該軟體應用程式包含數位權利 8 ·如請求項7夕士、+ ^ 、 法,其進一步包含針對數位權利管理應 123181.doc 200820076 用耘式所官理之内容向内容之一擁有者或經授權者支付 一費用。 如明求項7之方法,其中加密該虛擬機器。 1〇· 2明求項9之方法,其中在將該虛擬機器載入該卡中時 藉由該記憶卡之硬體來對其進行加密。 •如明求項9之方法’其中該已加密虛擬機器包含該記憶 卡之該硬體之一簽名,且無法由與建立該簽名之硬體不 同的硬體來執行。The virtual machine is enabled when private is applied and the ability to utilize the virtual machine is thereby utilized. 2. The method of claim 1, further comprising paying an authorization fee only if the virtual machine is enabled. 3. The method of claim </ RTI> further comprising loading the software application using the monthly force of the virtual machine into the card, the software application relying on the virtual machine for the mass storage type memory One of the cards handles execution. ° 4. The method of claim 1, wherein the virtual machine is loaded into the card. 5. The method of claim 1, wherein the consumer loads the virtual machine feed into the meter after receiving the card. The method of 1 item 1 of μ field, wherein the virtual machine allows the virtual machine to access the data stored on the card only when it is enabled. 7. According to the method of claim 3, Ganshi is managed from μ. The software application contains digital rights 8 · as requested in the 7th, + ^, and the law, which further contains digital rights management should be 123181.doc 200820076 User-oriented content to one of the content owners or The licensee pays a fee. The method of claim 7, wherein the virtual machine is encrypted. The method of claim 9, wherein the virtual machine is encrypted by the hardware of the memory card when it is loaded into the card. • The method of claim 9, wherein the encrypted virtual machine includes one of the hardware of the memory card and cannot be executed by a different hardware than the hardware that created the signature. 12·如明求項5之方法,其進一纟包含驗證該虛擬機器及域 該虛擬機器之提供商之鑑別。 13·種提供一可攜式快閃記憶體大量儲存裝置之方法,該 方法包含: 供應該快閃記憶體大量儲存裝置;及 驗證具有-欲載入該裝置中之應用程式之一第一方的 一憑證’該憑證允許該第—方載人該應用程式,該應用 程式包含一虛擬機器。 14.如請求項13之方法,1冷—此a A /、進一步包含將該應用程式載入該 裝置中。 15·如清求項14之方法,並中聪:今莊^ /、肀將該裝置販售給一消費者之 後,將該應用程式現場載入該裝置中。 16 ·如請求項13之方法,i 土隹一半 ,、進 v包含收取一與該應用程式 相關聯之費用的付費。 17.如請求項16之方法,盆推一牛 八進步包含將該費用之一部分分 配給一第二方。 123181.doc 200820076 18·如請求項16之方法,其中該費用包含一使用費。 19·如睛求項16之方法,其中該費用包含一商品或服務之電 子付費。 20· —種將一軟體應用程式提供給一大量儲存型記憶體裝置 之使用者的方法,其包含: 提供運行該記憶卡之資料儲存操作之韌體; 在該卡内提供一或多個應用程式設計介面;12. The method of claim 5, further comprising verifying the authentication of the virtual machine and the provider of the virtual machine. 13. A method of providing a portable flash memory mass storage device, the method comprising: supplying the flash memory mass storage device; and verifying that the first party has one of the applications to be loaded into the device A voucher 'this voucher allows the first party to carry the application, the application containing a virtual machine. 14. The method of claim 13, wherein 1 cold - the a A /, further comprises loading the application into the device. 15. If the method of claim 14, and Zhong Cong: Jinzhuang ^ /, 肀 sell the device to a consumer, the application is loaded into the device on site. 16 • As in the method of claim 13, i is half, and the v includes a fee for charging a fee associated with the application. 17. The method of claim 16, wherein the step of inferring the distribution comprises assigning a portion of the fee to a second party. The method of claim 16, wherein the fee includes a usage fee. 19. The method of claim 16, wherein the fee comprises an electronic payment for a good or service. 20) A method of providing a software application to a user of a mass storage memory device, comprising: providing a firmware for running a data storage operation of the memory card; providing one or more applications in the card Programming interface; 接收一欲載入該應用程式之請求;及此後 將一虛擬機器載入該卡中,及 將該應用程式載入該卡中。 21. 如請求項20之方法,其中在不知道該應用程式之一請求 者的情況下载入該虛擬機器。 22. 如喷求項20之方法,其進一步包含接收一欲將該虛擬機 器載入該卡中之請求。 23·如明求項20之方法,其進一步包含載入該應用程式之前 向該應用程式之一提供商授權。 24·如請求項20之方法,i推一丰—人处 _上 ^ /、進步包含載入該虛擬機器之前 向該虛擬機器之一提供商授權。 25·如請求項18或19中你一馆夕士、冬 項之方法,其中授權包含對稱鑑 別。 其中授權包含非對稱 26·如請求項18或19中任一項之方法 鑑別。 其進一步包含在該卡内加密該應用 27·如請求項20之方法 程式。 123181.doc 200820076 28·如晴求項20之方法,盆谁一 ^ ^ 八進步包含在該卡内加密該虛擬 機器。 ^ 29.如請求項22或23中任一jg夕古、+ &amp;丄 t ^ ^ ^ 項之方法,其中加密包含利用儲 存於該記憶卡之一控制器中的_密鑰。 30·如請求項20之方法,苴中兮虛 u ^ _ 應用程式需要該虛擬機器運 行。 31· -種致能提供-虛擬機器以便結合一大量儲存型記憶體 裝置使用的方法,該方法包含: 提供運行該記憶卡之資料儲存操作之韌體; 將一虛擬機器載入該卡中; 在該卡内接收一欲利用該虛擬機器之功能的請求;及 此後 提供該虛擬機器發揮功能所必需的一應用程式設計介 面,藉此致能利用該虛擬機器。 32. 如請求項31之方法,其進—步包含提供該應用程式設計 介面。 33. 如請求項31之方法,其進—步包含—旦致能該虛擬機器 之使用便為該虛擬機器支付一授權費。 34· —種啟用或停用一用於在一大量儲存型記憶體裝置中使 用之軟體應用程式的方法,其包含: 提供運行該記憶體裝置之資料儲存操作之韌體,該軟 體應用程式依賴於該等韌體資料儲存操作以存取儲存於 該記憶體裝置中之資料; 採用該裝置之該韌體產生一單次密碼值; 123181.doc 200820076 將採用該裝置之該韌體所產生的該單次密碼值與在該 裝置外部所產生的一單次密碼值作比較;及 若該比較驗證該裝置所產生之該值與該裝置外部所產 生之該值匹配, 則允許或不允許執行該軟體應用程式。 35.如請求項34之方法,其中產生該單次密碼包含依據一種 值’及以下内容之-或多者來建立該密碼:_與該軟體Receiving a request to load the application; and thereafter loading a virtual machine into the card and loading the application into the card. 21. The method of claim 20, wherein the virtual machine is downloaded without knowing the requestor of the application. 22. The method of claim 20, further comprising receiving a request to load the virtual machine into the card. 23. The method of claim 20, further comprising authorizing a provider of the application prior to loading the application. 24. If the method of claim 20 is used, i pushes a feng yi _ _ 上 ^ /, progress includes loading the virtual machine to one of the virtual machine providers. 25. If you are in the 18th or 19th of the request, you will be given a method of symmetry. Wherein the authorization contains an asymmetry. 26. The method of claim 18 or 19 identifies. It further includes encrypting the application within the card. 27. The method of claim 20. 123181.doc 200820076 28·If the method of the 20th method, the basin who one ^ ^ eight progress contains the virtual machine in the card to encrypt. ^ 29. The method of any of the items jg er, + &amp; 丄 t ^ ^ ^ of claim 22 or 23, wherein the encrypting comprises utilizing a _key stored in a controller of the memory card. 30. As in the method of claim 20, the virtual machine u ^ _ application needs to run the virtual machine. 31. - A method of providing a virtual machine for use in conjunction with a mass storage type memory device, the method comprising: providing a firmware for running a data storage operation of the memory card; loading a virtual machine into the card; Receiving a request to utilize the function of the virtual machine within the card; and thereafter providing an application design interface necessary for the virtual machine to function, thereby enabling the virtual machine to be utilized. 32. The method of claim 31, further comprising providing the application design interface. 33. The method of claim 31, wherein the step further comprises issuing an authorization fee for the virtual machine upon enabling the virtual machine to be used. 34. A method for enabling or disabling a software application for use in a mass storage type memory device, comprising: providing a firmware for operating a data storage operation of the memory device, the software application dependent The firmware storage operation is performed to access data stored in the memory device; the firmware of the device is used to generate a single password value; 123181.doc 200820076 will be generated by the firmware of the device The single-password value is compared to a single-password value generated outside the device; and if the comparison verifies that the value produced by the device matches the value generated externally to the device, then the execution or not is permitted The software application. 35. The method of claim 34, wherein generating the single password comprises establishing the password based on a value &apos; and/or the following: _ and the software 應用程式相關聯之唯-識別符;及一與該裝置相關聯之 唯一識別符。 36.如請求項35之方法’其中產生該單次密碼進一步包含依 據該裝置型建立該密碼。 37_如請求項34之方法’其中生產許多大量儲存型記憶體裝 置,該等裝置各包含相同種值不過藉由利用一單次密碼 產生演算法騎-較計數產生不同單切碼值,該單 次密碼產生演算法基於-唯—朗符而使該等值不同。 38&lt;請求項34之方法,其中該唯-識別符包含與一特定裝 置唯一相關聯的一數字。 39·如請求項34之方法,其中該 ^ ^ ^ 喊別付包含與該軟體應 用私式之一特定實例唯一相關聯的一數字。 40· —種大量儲存型快閃記憶體裝置,其包人· 一控制器; 隨機存取記憶體; 大虽儲存’其包含快閃記憶體; 一虛擬機器; 123181.doc 200820076 一機制,其在需要該虛擬機器之操作時致能該操作, 其中右藉由該裝置之一使用者之活動觸發該機制,則 支付與該虛擬機器相關聯的一授權費。 41. 如請求項40之裝置,其中該虛擬機器係儲存於該大量儲 存快閃記憶體中。 42. —種大量儲存型快閃記憶體裝置,其包含·· 一控制器; 隨機存取記憶體; 大篁儲存’其包含快閃記憶體; 一虛擬機器;及 致能構件,其係用於致能該虛擬機器, 其中田觸發該致月色構件日夺,起始該虛擬機器之一費用 支付。 、 43 · —種大量儲存型記憶卡,其包含: 快閃記憶體Γ 一控制器;及 勒體’其控制該快閃記憶體之讀取與寫入操作,其中 該韌體包含該韌體内限制該等讀取與寫入操作之使用權 限的安全常式; 該韌體之-第一操作狀態,該第一狀態係用於不具一 虛擬機1§之該卡之操作;及 該韋刃體之一第二操作狀態,該第二狀態係用於具一虛 擬機器之該卡之操作, 其中處於該第二狀態中時,該韌體之該等安全常式准 123181.doc 200820076 許該虛擬機器存取來自讀取盘宫為 貝取興冩入冗保護資料之資料。 44. 如請求項43之大量儲存型纪情士,1 生记U卡,、中該快閃記憶體内 保留用於該虛擬機器之記憶體空間。 45. 如請求項43之大量儲存型記憶卡,其中該卡在將一虛擬 機器載人該卡中之前係操作於該第—狀態中,且此後操 作於該第二狀態中。 46·如請求項45之大量儲存記憶卡,其中結合該虛擬機器載 入一小型應用程式。 _ 47.如請求項45之大量儲存記憶卡,其中該小型應用程式包 含一數位權利管理應用程式。The application-associated unique-identifier; and a unique identifier associated with the device. 36. The method of claim 35 wherein the generating the single password further comprises establishing the password in accordance with the device type. 37. The method of claim 34, wherein a plurality of mass storage memory devices are produced, each of the devices comprising the same value but generating a different single-cut code value by using a single-password generation algorithm ride-count comparison The single-password generation algorithm is based on the -only-language and makes the values different. 38. The method of claim 34, wherein the unique identifier comprises a number uniquely associated with a particular device. 39. The method of claim 34, wherein the ^^^ callout includes a number uniquely associated with a particular instance of the software application private. 40·—a mass storage type flash memory device, which includes a controller and a controller; a random access memory; a large storage device that contains a flash memory; a virtual machine; 123181.doc 200820076 a mechanism, The operation is enabled when the operation of the virtual machine is required, wherein the mechanism is triggered by the activity of one of the users of the device, and an authorization fee associated with the virtual machine is paid. 41. The device of claim 40, wherein the virtual machine is stored in the mass storage flash memory. 42. A mass storage type flash memory device comprising: a controller; a random access memory; a large memory storage comprising a flash memory; a virtual machine; and an enabling component, The virtual machine is enabled, wherein the field triggers the moonlight component to take the day and initiates payment of one of the virtual machines. 43. A mass storage type memory card, comprising: a flash memory Γ a controller; and a plucking body that controls reading and writing operations of the flash memory, wherein the firmware includes the firmware a security routine that limits the usage rights of the read and write operations; a first operational state of the firmware, the first state being used for operations of the card without a virtual machine 1 §; a second operating state of the blade, the second state being used for the operation of the card having a virtual machine, wherein the security routine of the firmware is in the second state, 123181.doc 200820076 The virtual machine accesses information from the reading of the palace to take care of the redundant protection data. 44. In the case of the large storage type of the disciplinary item of claim 43, the memory card is reserved for the virtual machine. 45. The mass storage type memory card of claim 43, wherein the card is operated in the first state prior to loading a virtual machine into the card, and thereafter operates in the second state. 46. The mass storage memory card of claim 45, wherein a virtual application is loaded into a small application. _ 47. The mass storage memory card of claim 45, wherein the small application comprises a digital rights management application. 123181.doc123181.doc
TW096128704A 2006-08-08 2007-08-03 Portable mass storage with virtual machine activat TWI357572B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/463,256 US7725614B2 (en) 2006-08-08 2006-08-08 Portable mass storage device with virtual machine activation
US11/463,264 US20080126705A1 (en) 2006-08-08 2006-08-08 Methods Used In A Portable Mass Storage Device With Virtual Machine Activation

Publications (2)

Publication Number Publication Date
TW200820076A true TW200820076A (en) 2008-05-01
TWI357572B TWI357572B (en) 2012-02-01

Family

ID=38823627

Family Applications (1)

Application Number Title Priority Date Filing Date
TW096128704A TWI357572B (en) 2006-08-08 2007-08-03 Portable mass storage with virtual machine activat

Country Status (5)

Country Link
EP (1) EP2049991A2 (en)
JP (1) JP5118700B2 (en)
KR (1) KR101504647B1 (en)
TW (1) TWI357572B (en)
WO (1) WO2008021682A2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI423136B (en) * 2008-12-09 2014-01-11 Nvidia Corp Method and apparatus for the secure processing of confidential content within a virtual machine of a processor
TWI494856B (en) * 2012-05-21 2015-08-01 Irene Tsai Program call method and mobile device

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101964068A (en) * 2009-07-22 2011-02-02 深圳市江波龙电子有限公司 SD card and method for controlling data access thereof
KR101103313B1 (en) * 2009-09-28 2012-01-11 주식회사 잉카인터넷 medium control method in virtual machine environment
US9292319B2 (en) 2012-03-28 2016-03-22 Google Inc. Global computing interface
SG11201708726PA (en) * 2015-03-26 2017-11-29 Einnovations Holdings Pte Ltd System and method for facilitating remittance
KR101655890B1 (en) * 2015-04-08 2016-09-08 (주)세이퍼존 Firmware install method for protecting bad USB device in security USB device
CN111443991B (en) * 2020-03-26 2023-06-23 恒宝股份有限公司 Smart card control method and device and smart card

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5956505A (en) 1991-12-24 1999-09-21 Pitney Bowes Inc. Remote activation of software features in a data processing device
US6005942A (en) 1997-03-24 1999-12-21 Visa International Service Association System and method for a multi-application smart card which can facilitate a post-issuance download of an application onto the smart card
JP2002169622A (en) * 2000-09-25 2002-06-14 Fujitsu Ltd Billing method and program
US20020145632A1 (en) * 2000-10-27 2002-10-10 Shimon Shmueli Portable interface for computing
JP2002279372A (en) * 2001-03-15 2002-09-27 Nippon Telegr & Teleph Corp <Ntt> Ic card, and ic card application control method
JP2002318702A (en) * 2001-04-19 2002-10-31 Mitsubishi Electric Corp On-vehicle information system
JP2002358205A (en) * 2001-06-01 2002-12-13 Dainippon Printing Co Ltd Portable information processing apparatus with a plurality of platforms
JP3913128B2 (en) * 2002-02-28 2007-05-09 松下電器産業株式会社 Memory card
EP1355268B1 (en) 2002-02-28 2006-04-05 Matsushita Electric Industrial Co., Ltd. Memory card
JP4486828B2 (en) * 2003-02-04 2010-06-23 パナソニック株式会社 Semiconductor memory card, computer readable program
KR20050103448A (en) * 2003-02-04 2005-10-31 마츠시타 덴끼 산교 가부시키가이샤 Semiconductor memory card and computer readable program
JP2005190276A (en) * 2003-12-26 2005-07-14 Toshiba Corp Memory card
KR20050070381A (en) * 2003-12-30 2005-07-07 엘지전자 주식회사 Authentication system based on one-time password
US20060004667A1 (en) * 2004-06-30 2006-01-05 Microsoft Corporation Systems and methods for collecting operating system license revenue using an emulated computing environment
US20060106920A1 (en) * 2004-11-15 2006-05-18 Microsoft Corporation Method and apparatus for dynamically activating/deactivating an operating system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI423136B (en) * 2008-12-09 2014-01-11 Nvidia Corp Method and apparatus for the secure processing of confidential content within a virtual machine of a processor
TWI494856B (en) * 2012-05-21 2015-08-01 Irene Tsai Program call method and mobile device

Also Published As

Publication number Publication date
WO2008021682A2 (en) 2008-02-21
JP5118700B2 (en) 2013-01-16
KR101504647B1 (en) 2015-03-30
WO2008021682A3 (en) 2008-07-24
KR20090048581A (en) 2009-05-14
EP2049991A2 (en) 2009-04-22
JP2010500656A (en) 2010-01-07
TWI357572B (en) 2012-02-01

Similar Documents

Publication Publication Date Title
US8447889B2 (en) Portable mass storage device with virtual machine activation
US10547604B2 (en) Information recording apparatus with shadow boot program for authentication with a server
US8214630B2 (en) Method and apparatus for controlling enablement of JTAG interface
TWI413908B (en) Flexible licensing architecture for licensing digital application
TWI242704B (en) Secure video card in computing device having digital rights management (DRM) system
US8065521B2 (en) Secure processor architecture for use with a digital rights management (DRM) system on a computing device
US8171295B2 (en) Information processing apparatus, a server apparatus, a method of an information processing apparatus, a method of a server apparatus, and an apparatus executable process
US20080126705A1 (en) Methods Used In A Portable Mass Storage Device With Virtual Machine Activation
RU2388051C2 (en) Random password, automatically generated by basic input/output (bios) system for protecting data storage device
US8660964B2 (en) Secure device licensing
TWI357572B (en) Portable mass storage with virtual machine activat
JP4055393B2 (en) Data processing apparatus and method and program thereof
US20220200980A1 (en) Information recording apparatus
JP2011523481A (en) Access authentication for software development kit for peripheral devices
KR101711024B1 (en) Method for accessing temper-proof device and apparatus enabling of the method
JP2005215945A (en) Information processor, storage device for permitting software execution, and software execution method
JP2009205627A (en) Storage area allocation method and information processor
Holoubková Rešerše a ukázka zabezpečení platformy (TPM)
Gerrits Implementing a DRM-Preserving Digital Content Redistribution System
JPH086785A (en) Software use licensing system
JP2008102943A (en) Data processor, method and program therefor

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees