throbber
(11) Veréffentlichungsnummer:
`
`(11) Publication number:
`
`(11) Numéro de publication:
`
`EP 1 934 879 AO
`
`Internationale Anmeldung verdffentlicht durch die
`
`Weltorganisation fur geistiges Eigentum unter der Nummer:
`
`WO 2007/033321 (art. 153 des EPU).
`
`International application published by the World
`
`Intellectual Property Organisation under number:
`
`WO 2007/033321 (art. 153 of the EPC).
`
`Demande internationale publiée par Organisation
`
`Mondiale de la Propriété sous le numéro:
`
`WO 2007/033321 (art. 153 de la CBE).
`
`1
`
`APPLE 1016
`
`APPLE 1016
`
`1
`
`

`

`(12) INTERNATIONAL APPLICATION PUBLISHED UNDER THE PATENT COOPERATION TREATY (PCT)
`
`(19) World Intellectual Property Organization (4%
`International Bureau
`
`te
`
`
`
`(43) International Publication Date
`22 March 2007 (22.03.2007)
`
`International Patent Classification:
`
`GOGF 21/00 (2006.01)
`
`GO6F 9/445 (2006.01)
`
`International Application Number:
`PCT/US2006/035839
`
`(74)
`
`International Filing Date:
`13 September 2006 (13.09.2006)
`
`(81)
`
`(31)
`
`(21)
`
`(22)
`
`(25)
`
`(26)
`
`(30)
`
`(71)
`
`(72)
`(75)
`
`Filing Language:
`
`Publication Language:
`
`English
`
`English
`
`Priority Data:
`60/717,164
`11/317,341
`11/317,339
`
`14 September 2005 (14.09.2005)
`22 December 2005 (22.12.2005)
`22 December2005 (22.12.2005)
`
`US
`US
`US
`
`Applicants (for all designated States except US): SAN-
`DISK CORPORATION [US/US]; 601 McCarthy Blvd.,
`Milpitas, California 95035 (US). DISCRETIX TECH-
`NOLOGIES LTD. [ILAL]; 45 Hamelacha St., Etgarim
`Bldg. Industrial Zone, P.o. Box 8718, 42502 Netanya (IL).
`Inventors; and
`Inventors/Applicants (for US only): HOLTZMAN,
`Michael [IL/US]; 7602 Barnhart Place, Cupertino, Cali-
`fornia 95014 (US). BAR-EL, Hagai [ITAT.]; Drayan 4,
`76574 Rehovot (IL). GREENSPAN, Ronen [ILAL]; 2
`
`(10) International Publication Number
`WO 2007/033321 A2
`
`Sigalit St., Kiryat Yam (IL). SHAPIRO, Rony[IL/IL]; 5
`Glicksberg St., Tel Aviv (IL).
`
`Agents: PARSONS, Gerald,P. et al.; Parsons, Hsue & de
`Runtz LLP, 595 Market Street, Suite 1900, San Francisco,
`California 94105 (US).
`
`Designated States (unless otherwise indicated, for every
`kind ofnational protection available): AE, AG, AL, AM,
`AT, AU, AZ, BA, BB, BG, BR, BW,BY, BZ, CA, CH, CN,
`CO, CR, CU, CZ, DE, DK, DM, DZ, EC, EE, EG, ES, FL,
`GB, GD, GE, GH, GM, HN, HR, HU,ID, IL, IN,IS, JP,
`KE, KG, KM,KN,KP, KR, KZ, LA, LC, LK, LR, LS, LT,
`LU,LV, LY, MA, MD, MG, MK, MN, MW, MX, MY, MZ,
`NA, NG, NI, NO, NZ, OM, PG, PH, PL, PT, RO, RS, RU,
`SC, SD, SE, SG, SK, SL, SM, SV, SY, TJ, TM, TN, TR,
`TT, TZ, UA, UG, US, UZ, VC, VN, ZA, ZM, ZW.
`
`(84)
`
`Designated States (unless otherwise indicated, for every
`kind of regional protection available): ARIPO (BW, GII,
`GM, KE, LS, MW, MZ, NA, SD, SL, SZ, TZ, UG, ZM,
`7W), Eurasian (AM, AZ, BY, KG, KZ, MD, RU,TJ, TM),
`European (AT, BE, BG, CH, CY, CZ, DE, DK, EE,ES, FT,
`FR, GB, GR, HU,IE,IS, IT, LT, LU, LV, MC, NL, PL, PT,
`RO,SE, ST, SK, TR), OAPI (BF, BJ, CF, CG, CI, CM, GA,
`GN, GQ, GW, ML, MR, NE, SN, TD, TG).
`
`[Continued on next page]
`
`7/O33321AIIMMITIMNIINATANUNANAAUTt
`
`(54) Title: SECURE YET FLEXIBLE SYSTEM ARCHITECTURE FOR SECURE DEVICES WITH FLASH MASS STORAGE
`MEMORY
`
`DEVICE 1008
`
`CONTROLLER SECURE
`
`SECURE
`
`UNSECURE
`MEMORY
`
`(57) Abstract: A device with mass storage capability that uses a readily available non secure memoryfor the mass storage but has
`firmware (and hardware) that provides security against unauthorized copying of data. This is true even thoughthe firmwareitself is
`> stored in the non secure mass storage memory, and therefore potentially vulnerable to hacking. An indication of the authenticity of
`©} the firmware mustbepresent beforeit will be executed by the device. This protects the device contents from unauthorized duplication
`or tampering. Additional functionality can be addedto the device with additional firmware applications, and the authenticity of those
`additional applications will also be verified before they will be executed. This further prevents unauthorized copying or tampering
`of secure content through any mechanismsthat may be unscrupulously introduced. Any data within the mass storage memory may
`also be encrypted.
`
`2
`
`2
`
`

`

`WO 2007/033321 A2
`
`—_[IMITIACMNIIUIMNIIITTT TITANIATIT TATMAMAT t
`
`Published:
`— without international search report and to be republished
`upon receipt of that report
`
`Fortwo-letter codes and other abbreviations, refer to the "Guid-
`ance Notes on Codes and Abbreviations" appearing at the begin-
`ning of each regular issue of the PCT Gazette.
`
`3
`
`

`

`WO 2007/033321
`
`PCT/US2006/033839
`
`SECURE YET FLEXIBLE SYSTEM ARCHITECTURE
`FOR SECURE DEVICES WITH FLASH MASS STORAGE MEMORY
`
`FIELD OF THE INVENTION
`
`[0001] The present application is generally related to the operation of flash based
`mass storage devices, and in particular those with copy protection of secure content.
`
`BACKGROUND OF THE INVENTION
`
`[0002] Flash based mass storage devices are used to store very large amounts of
`
`content, such as pictures and music or software programs. Examples of these mass
`storage devices include memorycards, universal serial bus (“USB”) flash drives, flash
`based music and/or video players, and other portable computing devices that rely on
`
`flash for the mass storage of contentorfiles.
`
`[0003] User files are frequently updated and modified. This is particularly the case
`
`when dealing with photos, music, and documents. Flash memory has a limited
`numberof read/write cycles, and a great deal of research and development has gone
`
`into distributing the cycles among the flash memory cells in order to maximize the
`
`lifespan andreliability of the devices. For instance, wear leveling techniques such as
`
`those taught in U.S. Patent No. 6,230,233 entitled “Wear Leveling Techniques For
`
`Flash EEPROM Systems” to Lofgrenet al., U.S. Patent No. 5,268,870 entitled “Flash
`EEPROM System and Intelligent Programming and Erasing Methods Therefore” to
`
`Harari, PCT Publication No. WO2004040578A2 entitled “Wear Leveling In Non-
`
`Volatile Storage Systems” to Chang et al. and U.S. Patent Publication No.
`
`20040083335A1, entitled “Automated Wear Leveling In Non-Volatile Storage
`
`Systems” to Gonzalez et al., which are hereby incorporated by this reference in their
`
`entireties, are commonly implemented in these devices. These techniques generally
`
`involve changing the logical/physical mapping so that physical
`
`locations of the
`
`memoryare used roughly the same amount.
`
`4
`
`

`

`WO 2007/033321
`
`PCT/US2006/035839
`
`[0004] In addition, as the usage of flash based mass storage devicesis proliferating,
`the numberofdifferent things that can be done with them is also increasing.
`
`[0005] Therefore, there exists a need for a new device operating system architecture
`that provides flexibility to store and run a wide range of firmware that can be updated
`and changed to accommodate the range of increasing functionality.
`In addition to
`being flexible, this architecture must provide a highly secure and reliable environment
`for both firmware and content. As is always the case, all of this should be done for
`the lowest possible cost, using standard components wheneverpossible.
`
`SUMMARYOF INVENTION
`
`[0006] The present invention allows a device to be both secure in operation and
`flexible in terms of functionality. This means functionality can be tailored to users’
`
`desires and added over time all
`
`the while maintaining a high level of security.
`
`Therefore the device can be used to store confidential and limited access information
`
`such astransactional data and copyrighted artistic works.
`
`[0007] The present invention also allows for the device to boot quickly andreliably
`while still providing for reliable long term data storage through the use of wear
`leveling techniques where appropriate.
`
`[0008] Firmware that is not authentic, and that may potentially compromise the
`
`security of the device will not be executed. An indication of the authenticity is
`verified before execution.
`In a preferred embodiment, multiple different levels of
`
`such indications are provided and are associated with the particular controller of the
`
`device that created the indications.
`
`In this preferred embodiment, one or more of the
`
`different
`
`levels of indications can be verified. Without the properly associated
`
`indication the firmware will not be executed.
`
`[0009] Another aspect of the present invention is that this security is achieved despite
`the fact that the device utilizes readily available memory without built in security for
`the massstorage of the data, including the firmware.
`
`5
`
`

`

`WO 2007/033321
`
`PCT/US2006/035839
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`[0010] FIG. 1A is a schematic diagram of secure device 100A, an embodimentof the
`present invention.
`
`[0011] FIG. 1B is a schematic diagram of secure device 100B, an embodimentof the
`
`present invention.
`
`[0012] FIG. 2 is a diagramillustrating various pieces of firmware in a portion of
`
`memory space 108.
`
`[0013] FIG. 3 is a schematic diagram illustrating software structure and hardware
`
`access according an embodimentof the present invention.
`
`[0014] FIG. 4 is a flowchartillustrating some steps of firmwareintegrity verification.
`
`[0015] FIG. 5 is a flowchartof operation of an embodimentof the present invention.
`
`[0016] FIG. 6 is a flowchart illustrating integrity checking of physically stored data
`
`such as the firmware 200.
`
`[0017] FIG. 7 is a flowchart illustrating integrity checking of logically stored data
`
`such as user files and the application firmware 202A,B,...X.
`
`DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
`
`[0018] Devices incorporating flash memory for mass storage purposes must store
`
`large amounts of content that is written and read relatively often. For instance, digital
`
`photo and music libraries are regularly updated by users of such devices. With the
`
`increase of protected content and the desire to protect content generally, such devices
`
`must also provide robust security to prevent unauthorized copying of such “secure” or
`
`protected content.
`At the same time, security should not come at
`the cost of
`flexibility. The present invention provides for a device that allows functionality to be
`added over time, while maintaining a high level of security. This flexibility is
`
`6
`
`

`

`WO 2007/033321
`
`PCT/US2006/033839
`
`essential
`
`in a world where devices are expected to provide ever
`
`increasing
`
`functionality.
`
`[0019] A secure device is one that protects the contents of the device from
`unauthorized copying or alteration. Secure content includes any contentordata that it
`is desirable to safeguard from unauthorized copying or tampering.
`In addition to
`billing, transaction and other traditionally confidential personal information, artistic
`content must also be secured from access and copying by those other than the owner
`
`or other authorized persons.
`
`[0020] Depending onthe architecture of the device, a hacker may try to gain access to
`the content via data buses, or by directly accessing the mass storage memory.
`In
`some prior devices, directly accessing the memory storage unit was difficult as the
`memory storage unit was often protected by placing it an environment that was
`logistically hard to access. For instance, Smart Cards utilized programmable read
`only memories (PROMS)that incorporated a small amount of non volatile memory
`that was made secure in part by physically isolating it from access.
`
`it is desirable to utilize unsecure mass storage memory, that is,
`[0021] However,
`among other things, more standardized, readily available, and/or economical. An
`unsecure memoryor storage unit is one where authorization is not required in order to
`gain (read/write) access to the (encrypted or unencrypted) data stored therein, or one
`where there are no built in protection mechanisms that prevent copying of the stored
`data. While this memory may be packaged in a multi functional package with other
`non-memory components such as a processor,
`it
`is commonly in the form of a
`dedicated memory package with one or more memory chips.
`
`[0022] Typically, a device or system incorporating mass storage flash memory
`utilizes a processor to control the data storage and retrieval operations of the memory.
`Such a processor is part of a controller and is often referred to as a controller. A
`
`controller executes software instructions to control the device. The software that runs
`
`and controls the hardware of a device is often referred to as firmware. The firmware
`
`is typically executed from random access memory (RAM)after having been copied
`from some other memory where it is normally stored. Shadowing or copying to RAM
`
`7
`
`

`

`WO 2007/033321
`
`PCT/US2006/033839
`
`is slower and not
`is advantageous because although flash is easily updated it
`inherently executable because it does not have random access capability, and because
`read only memoryis not easily updated.
`
`[0023] In the case where some amountof security is to be provided in the firmware,
`there must be some mechanism to prevent execution of the other than the proper
`firmware that has the requisite security mechanisms. This is especially true when the
`firmware is stored in an unsecure memory. As mentioned above, it is the firmware
`that controls the operation of the device, and thereforeit is not a simple matter to have
`the firmware essentially protect itself. Nor is it a simple matter to protect execution
`of compromised or unauthentic firmware when such firmware is stored in an
`otherwise unsecure memory package.
`
`invention provides for a secure system with mass storage
`[0024] The present
`capability even though it uses unsecure memory for
`the mass storage unit.
`Furthermore, it creates a secure system where the firmware for running the secure
`systemis stored in the unsecure memory.
`In orderto be able to store the firmware in
`the unsecure mass storage memory,
`the present invention employs a system that
`
`prevents execution of inauthentic firmware.
`
`[0025] Reference will now be made to preferred embodiments depicted in the figures.
`FIG. 1A illustrates secure device (“SD”) 100A, an embodiment of the present
`invention. SD 100A comprises a secure controller 104 and unsecure memory 108.
`
`[0026] Memory 108 is preferably flash type memory and is used for mass storage
`purposes. This means that the memory is used for general purpose storage of user
`files, such as audio, video, and picture files, among other things.
`It is a principal
`
`memory storage unit of device 108 and can be used to store any type offile a user
`
`wishesto store in it. It is designed to allow a user to frequently update and access his
`
`library of files. A mass storage memoryis generally larger than other randomaccess
`
`memory (“RAM”) and read only memory (“ROM”) that SD 100A may also comprise
`(not shown) in this and other embodiments. Also, as a general file storage device, a
`mass storage memoryis distinct from code storage devices that are designed to store
`
`comparatively small amounts of operating code that are infrequently updated. A
`
`8
`
`

`

`WO 2007/033321
`
`PCT/US2006/033839
`
`ROM or flash memory may be used as a code Storage device, but it should be
`understood that a code storage deviceis different in purpose and generally in size than
`a mass storage device.
`
`[0027] SD 100A also comprises a data or memory bus 106 and a host bus 102. SD
`100A may be a complete electronic device such as a digital camera or music player,
`cellular telephone etc. It may also have the formfactorof a memory card or universal
`serial bus (“USB”) drive designed to be used in conjunction with any type of
`processor controlled electronic device.
`For simplicity in describing SD100A and the
`other embodiments depicted in the figures, the embodiments mayoften be referred to
`as a memory card, but it should be understood that such reference is to a preferred
`embodimentand should notlimit the scope of the present invention which is defined
`by the appended claims. Currently, the preferred form factor for a memory card in
`which the present invention is especially useful is the well known Secure Digital
`(“SD”) Card.
`
`[0028] Data and commands are communicated to and from SD100A via host bus 102.
`The host, which is not shown, may be a personal computer or other electronic device.
`Secure controller 104 controls the read and write Operations to and from unsecure
`memory 108 via memory bus 106. In doingso,it also limits access to the contents of
`the unsecure memory 108. As mentioned above, the firmware that runs the device is
`stored in unsecure memory 108. This firmware, which will be described in more
`detail later with regard to FIGS. 2-7, in conjunction with controller 104, provides the
`security that makes device 100A a secure device. Therefore, it is essential that the
`firmware that is executed by secure controller 104 is authentic, or the security of the
`system could be compromised.
`
`[0029] Ensuring the authenticity of the firmware is much more difficult when it is in
`an unsecure memory. However, given that the unsecure memory LO8 is used for mass
`storage purposes, it is quite large and is easily updated. Therefore, it makes sense to
`use the capacity of the unsecure memoryto store the firmware. This may eliminate or
`a least reduce the size of a code storage device dedicated to Storing the firmware.
`Alternatively it reduces the need for such storage within the controller. This cost
`saving is important in a competitive market. There are 3 main paths to the contents
`
`-6-
`
`9
`
`

`

`WO 2007/033321
`
`PCT/US2006/033839
`
`reading thecontents of the memory 108 directly; monitoring
`stored in memory 108:
`the signals on bus 102; and monitoring the signals on bus 106. Even thoughany orall
`of the information in the unsecure memory 108 or on buses 102 and 106 may be in an
`encrypted format,
`there is always the danger that the encryption key(s) could be
`compromised.
`If the firmware were to be compromised and replaced with another
`firmware that
`lacked the security features of the authentic firmware, and then
`executed by the system, restricted or limited access files and private data on the mass
`storage memorycould be copied or tampered with. For example, a user’s banking or
`social security information could be copied or altered without authorization, with
`obvious negative ramifications.
`In another example, copyrighted or otherwise
`protected content could also be copied without authorization.
`Digital
`rights
`management schemes could be thwarted. As another example, cryptographic codes or
`user passwords could also be compromised.
`
`Secure controller 104 comprises
`[0030] FIG. 1B illustrates secure device 100B.
`cryptographic engine 110, one or more encryption keys 112 stored in a non volatile
`memory of controller 104, and an indication 114 of the device operating state that is
`also stored in a non volatile memory of controller 104. In certain embodiments of the
`
`invention, numerousstates or life cycle phases are entered and passed through during
`
`the life of the card. Depending on the phase, logic in the card enables or disables the
`encryption engine, controls access to hardware (before and after card assembly) and
`software testing mechanisms, and controls key generation.
`These phases not only
`
`allow both the hardware and software of the card to be thoroughly tested before and
`
`after manufacture, but also makeit virtually impossible to access the encrypted keys
`
`and thus the encrypted content when the card is in a secure phase, the operating phase
`
`that the card is in whenit is shipped to the user. For more information onthe states or
`
`life cycle phases please refer
`
`to an application having attorney docket No.
`
`SNDK.383US3 “Secure Memory Card With Life Cycle Phases” to Micky Holtzman
`
`et al., which is hereby incorporated by this reference in its entirety.
`
`[0031] The cryptographic engine 110 is hardware based and can encrypt and/or
`decrypt data as it passes through secure controller 104. For example, data encrypted
`with a first encryption algorithm as it arrives at the controller from host bus 102 can
`
`10
`
`10
`
`

`

`WO 2007/033321
`
`PCT/US2006/033839
`
`be decrypted and then encrypted with a secondalgorithm before it is sent to flash
`memory 108 via data bus 106. Of course, data encrypted in memory 108 can be
`decrypted by engine 110 and passed in a decryptedstate over host bus 102 although it
`is preferably in an encrypted format as it passes over host bust 102 so as to avoid
`potential unauthorized copying of the data.
`
`[0032] The cryptographic engine 110, also referred to as encryption engine 110, may
`comprise numerous sub engines and is capable of utilizing numerous encryption
`standards and algorithms.
`Examples of the various encryption techniques and
`algorithms include: Message Authentication Codes (“MACs”), Data Encryption
`Standard (“DES”), Triple DES, Advanced Encryption Standard (“AES”), RSA and
`Diffie-Helman that are often used in a Public Key Infrastructure (“PKI”), and other
`hash based encryption such as SHA-1 and MD5. The encryption engine may use
`other currently available algorithms and techniques and others yet to be developed or
`well accepted, and the aforementionedlist is only meant to provide some examples.
`
`[0033] A Message Authentication Code is a hash computed from a message and some
`secret data. It is difficult to forge without knowing the secret data. The MACis
`computed using an algorithm based on the DES or AES ciphers, which use a secret
`key. The secret key 112, or one or more keys derived from the secret key are stored
`in controller 104, and therefore the hash or message authentication code created by
`the controller is associated with that controller, and cannot be duplicated by another
`
`controller. Therefore hash values from a particular controller are associated with the
`controller and can act as a type of signature of the controller and device, because the
`
`signature is unique and cannot be duplicated.
`
`[0034] Although the aforementioned standards and various other algorithms and/or
`standards are well knownto those skilled in cryptography, the following publications
`
`are informative and are hereby incorporated by reference in their entireties: RFC 3566
`
`- The AES-XCBC-MAC-96 Algorithm and Its Use With IPsec by Sheila Frankel,
`
`NIST - National Institute of Standards and Technology,
`
`820 West Diamond Ave,
`
`Room
`
`677,
`
`Gaithersburg,
`
`MD
`
`20899,
`
`‘ available
`
`at
`
`of Message
`Performance Comparison
`http://www.fags.org/rfcs/rfc3566.himl;
`Authentication Code (MAC) Algorithms for the Internet Protocol Security (IPSEC) by
`
`-8-
`
`11
`
`11
`
`

`

`WO 2007/033321
`
`PCT/US2006/033839
`
`Janaka Deepakumara, Howard M. Heys and R. Venkatesan, Electrical and Computer
`Engineering, Memorial University: of Newfoundland,
`St. John's, NL, Canada,
`A1B3S7 available at http://www.engr.mun.ca/~howard/PAPERS/necec_2003b.pdf;
`and Comments to NIST concerning AES Modes of Operations: A Suggestion for
`Handling Arbitrary-Length Messages with the CBC MAC by John Black, University
`of Nevada, Reno, Phillip Rogaway, University of California at Davis, available at
`http://csrc.nist.gov/CryptoToolkit/modes/proposedmodes/xcbe-mac/xcbe-mac-
`spec.pdf.
`
`[0035] FIG. 2 is an illustration of the memory space of the flash memory 108 that
`includes firmware 200 that runs devices 100A or 100B. The system firmware 200
`comprises a boot loader (BLR) portion 200a that resides in flash memory 108 and is
`preferably not changeable, and system firmware 200b that resides in flash memory
`108 and can be changed from time to time if necessary. The size of system firmware
`200 is larger than the RAM moduleit is executed from, so the system firmware is
`divided into smaller portions referred to as overlays. Each overlay preferably has its
`ownhash value and within system firmware 200 is a table 200c of those hash values.
`Table 200c is not loaded as part of system firmware 200b, but the pre-stored values
`are compared with calculated values as will be discussed in more detail below. Any
`hash value can be used, but MAC or SHA-1 values are currently preferable.
`Generally, SHA-1 digests may alternatively be used in place of MACvalues, and vice
`versa. The advantage of using MAC values is that they are associated with the
`hardware and the key of the hardware that created them. While SHA-1 values can be
`created for a given data set simply based upon the data itself, MAC values cannot be
`recreated without the key, and thus provide for more robust security. Specifically,
`because key 104 (or a key derived therefrom) stored in the non volatile memory of
`encryption engine 110 must be used to create the MAC values, another processor
`cannot be utilized to recreate the MAC values. For example, a hacker cannot use
`
`another processor outside of the system to duplicate the firmware and the associated
`
`MACvalues.
`
`[0036] As a further security precaution, the hash values themselves can be encrypted
`one or more times.
`In the example of MAC values, a MACentry that protects the
`
`12
`
`12
`
`

`

`WO 2007/033321
`
`PCT/US2006/033839
`
`MACtable 200c2 is created so even if a hacker finds a way to switch or alter the
`
`firmware and recalculate the appropriate MACs, heis still facing a problem because
`he must calculate the MAC of MACs (or MAC of SHA-1s). Furthermore, in one
`embodiment the MAC of MACsis again encrypted and stored in another (different)
`memory field, for example the non volatile memory of encryption engine 110 or the
`controller 104. This multi-level distributed hierarchy ensures that the signatures
`
`cannot be forged, or rather, that a forged signature will not be accepted as authentic.
`As anillustration,
`if one were to access the flash memory 108 and replace the
`firmware and table 200c, the system would then check onelevel up the hierarchy and
`see if the MACoftable 200cindicates that table 200c has not been tampered with. If
`
`the stored MAC ofthe table does not match the calculated MAC,this indicates a
`
`problem with the authenticity. However, if the MAC of table 200c has also been
`altered to match the replaced table 200c, then the system would verify the signature in
`error. This error is avoided by storing a copy of the MAC of table 200C in another
`(inaccessible) memory, and comparing the copy in the other (inaccessible) memory
`with the value in the flash memory 108. If the values do not match, this indicates an
`authenticity problem. Although only a few levels were illustrated, this multi-level
`distributed structure may have numerouslevels and incorporate numerous different
`
`memories depending on the size and complexity of the firmware to be protected.
`
`[0037] This multi-level distributed hierarchy employed in conjunction with the
`
`overlay structure of
`
`the firmware also results in a very efficient and rapid
`
`authentication process. Dividing the firmware into overlays and signing each overlay
`greatly speeds up the overall authentication process. This is because it is much faster
`to verify the signature of a smaller amountof code. In order to calculate a hash value,
`all of the data for which the hash is to be calculated must be read..The larger the
`
`portion of firmware to be read, the longer it will take to calculate the signature, and
`
`then verify that the signature is authentic. Calculating the signature for a large
`
`amount of data is potentially very time consuming and inefficient.
`
`[0038] Also stored within the flash memory are various firmware applications
`
`202A...X%, shown as APP FW 1, 2 ...X, and, of course, user files Mot shown).
`
`The
`
`firmware
`
`applications may be
`
`configured
`
`differently
`
`for various
`
`product
`
`-10-
`
`13
`
`13
`
`

`

`WO 2007/033321
`
`PCT/US2006/033839
`
`applications will vary from one
`configurations. The number and type of these
`product
`to another. The firmware applications are also preferably divided into
`overlays if the applications are larger than the RAM module. A map of the
`application firmware overlays 201A indicates the location in memory of the various
`overlays. A table of hash values (SHA-! digests or MAC values etc...) 201B for the
`various firmware applications, encrypted with a secret key, which may be secret key
`104 or a key derived from secret key 104, is also stored in the flash memory. A
`firmware application is akin to other applications that run on a base system, e.g. a
`word processing application in the Windows® environment
`running on the
`Windows® operating system.
`
`[0039] As discussed in the background, flash memory cells have a limited lifetime
`and the cells degrade with each read and write operation. Therefore data in the flash
`memoryis generally moved from timeto time in order to distribute the read and write
`operations evenly amongthe cells and distribute the “wear” evenly amongst thecells.
`This wearleveling, along with all read/write operations, is controlled by the firmware
`200, and in particular by the system firmware 200B.
`In order to be able to easily
`move data, the data is logically stored. This means that a logical address is mapped to
`a physical address, and that while the logical address remains the same, it can be
`mapped to a different physical address. Again, this logical to physical mapping is |
`carried out by the system firmware.
`
`[0040] It presents some difficulty if the firmware is in charge of movingitself. This
`is especially true when the firmware is responsible for copy protection of the data in
`the flash memory, and should therefore preferably be verified as authentic before
`execution. Also, while it is true that the system firmware may be updated from time
`to time, it will be written very infrequently when compared with other data stored in
`the flash memory 108. Therefore, the firmware 200, including the boot loader 200a is
`physically (without logical mapping) written to and read from flash memory 108.
`
`[0041] The application firmware provides additional functionality not present in the
`system firmware, and may be loaded into the device at any time.
`It is unknown how
`much application firmware may be loadedinto the device, and when each application
`may be loaded. Therefore space within the physical partition is not allocated and the
`
`-11-
`
`14
`
`14
`
`

`

`WO 2007/033321
`
`PCT/US2006/033839
`
`application firmwareis stored in the logical partition 214 and logically addressed like
`any otheruser files and data in the flash memory 108.
`
`[0042] FIG.3 illustrates the functional structure of the software of the device and how
`it accesses the mass storage memory 108. As mentioned before,
`ihe preferred
`embodiments comprise flash type memory for mass storage memory 108 and for
`simplicity, during this description of the preferred embodiments the terms may be
`used interchangeably.
`The portion of the software that is concerned with flash
`memory operations is referred to generally as the back end, while the portion of the
`software that involves the applications and the user interface is known asthe front
`end. Firmware applications 202A, 202B...202X run on top of firmware 200 which
`includes system firmware 200B. Although the BLR 200ais a separate component of
`firmware 200, the BLR bootstraps the system firmware and may in essence generally
`be thought of as part of system firmware 200. The system firmware 200 has physical
`sector address routines or block 206 andlogical/physical mapper or mapping routines
`208. The mass storage memory 108is partitioned into physical storage area 212 and
`logical storage area 214.
`Physical/logical partition 216 is used to illustrate the
`division or partitioning of the mass storage memory 108 into areas 212 and 214. Each
`of areas 212 and 216 can be further partitioned into smaller areas, and it is common in
`the art to use the term partitions to refer to these smaller areas also. The physical
`sector access routines or functional block 206 controls reading and writing in the
`physical area or partition 212, and the logical/physical mapper block controls reading
`and writing in the logical storage area 214.
`
`is stored in physical area
`[0043] Firmware 200, including system firmware 200B,
`212. Application firmware 202A...X is stored in logical area 214 wherethe userfiles
`are also stored. The application firmware and all other data in logical area 214 is
`moved around from time to time by the wear leveling routines of the system
`
`firmware.
`
`[0044] The authenticity of all of the firmware is preferably checked before it is
`executed. This is done because, as discussed earlier, the mass storage memory 108
`does not have its own built in protection mechanisms. The flowchart of FIG. 4
`applies to any piece of firmware, including application firmware.
`In step 304, the
`
`-12-
`
`15
`
`15
`
`

`

`WO 2007/033321
`
`PCT/US2006/033839
`
`firmware is signed. This is typically done at the time of loading of the firmware, but a
`signed record can be updated by overwriting the record with a new one. The
`signature comprises one or more hash values of at least a portion of the firmware.
`The hash values are preferably of the MAC variety, because, as discussed earlier, a
`MACvalue is created with a key use

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket