본 ë°ëª ë° ê·¸ ê°ì¢ í¹ì§ê³¼ ì 리í ì¸ë¶ë ì²¨ë¶ ëë©´ì ëìëê³ ì´íì ì¤ëª ìì ìì¸íëë ë¹ì íì ì¸ ì¤ìì를 참조íì¬ ëì± ìì íê² ì¤ëª ëë¤. ì ìë ¤ì ¸ ìë ìì 물ì§, ì²ë¦¬ 기ì , ì»´í¬ëí¸ ë° ì¤ë¹ì ê´í ì¤ëª ì 본 ë°ëª ì ì¸ë¶ë¥¼ ë¶íìíê² ë¶ëª ë£íê² íë ê²ì ë°©ì§í기 ìí´ ìëµíë¤. ê·¸ë¬ë, 본 ë°ëª ì ìí¸í ì¤ìì를 íìíë ê²ì´ì§ë§, ê·¸ ì¤ììì ëí ìì¸í ì¤ëª ë° í¹ìí ìë ì ííë ìëê° ìì´ ë¨ì§ ììíë ì©ëë¡ë§ 주ì´ì§ë¤ë ê²ì ì´í´íì¬ì¼ íë¤. ê·¼ìì ì¸ ë°ëª ê°ë ì ì ì ë°/ëë ë²ì ë´ììì ê°ì¢ ì¹í, ìì , ì¶ê° ë°/ëë ì¬êµ¬ì±ì´ ì´ ê¸°ì ì ìë ¨ë ì¬ëìê²ë ì´ ëª ì¸ìì ì¤ëª ì¼ë¡ë¶í° ëª ë°±í ê²ì´ë¤. ì¬ê¸°ìì ì¤ëª íë ì¤ììë¤ì ì»´í¨í° íë ê°ë¥ 매체(ì를 ë¤ë©´, HD)ì ì¡´ì¬í ì ìë ì ë¹í ì»´í¨í° ì¤íê°ë¥ ëª ë ¹ì´ë¡, íëì¨ì´ íë¡ ë±ì¼ë¡, ëë ì´ë¤ì ììì ì¡°í©ì¼ë¡ 구íë ì ìë¤.The invention and its various features and advantageous details are explained more fully with reference to the non-limiting embodiments shown in the accompanying drawings and detailed in the following description. Descriptions of well-known starting materials, processing techniques, components and equipment are omitted to avoid unnecessarily obscuring the details of the present invention. However, while indicating a preferred embodiment of the present invention, it is to be understood that the detailed description and specific examples thereof are given for purposes of illustration only and are not intended to be limiting. Various substitutions, modifications, additions, and / or reconfigurations within the spirit and / or scope of the underlying inventive concept will be apparent to those skilled in the art from the description herein. The embodiments described herein may be implemented in suitable computer executable instructions that may be present in a computer readable medium (eg, HD), in hardware circuitry, or in any combination thereof.
í¹ì ì¤ìì를 ì¤ëª í기 ì ì, í¹ì ì¤ìì를 구íí기 ìí íëì¨ì´ ìí¤í ì³ì ì¤ìì를 ì¬ê¸°ìì ì¤ëª íë¤. ì¼ ì¤ììë ë¤í¸ìí¬ì íµì ì ì¼ë¡ ê²°í©ë íë ì´ìì ì»´í¨í°ë¥¼ í¬í¨í ì ìë¤. ì´ ê¸°ì ì ìë ¨ë ì¬ëì´ë¼ë©´ ìê³ ìë ë°ì ê°ì´, ì»´í¨í°ë ì¤ì ì²ë¦¬ ì¥ì¹("CPU"), ì ì´ë íëì ì½ê¸° ì ì© ë©ëª¨ë¦¬("ROM"), ì ì´ë íëì ëë¤ ì¡ì¸ì¤ ë©ëª¨ë¦¬("RAM"), ì ì´ë íëì íë ëë¼ì´ë¸("HD") ë° íë ì´ìì ì ë ¥/ì¶ë ¥("I/O") ì¥ì¹ë¥¼ í¬í¨í ì ìë¤. I/O ì¥ì¹ë í¤ë³´ë, 모ëí°, í린í°, ì ìì í¬ì¸í ì¥ì¹(ë§ì°ì¤, í¸ëë³¼, ì¤íì¼ë¦¬ì¤í¸ ë±) ë±ì í¬í¨í ì ìë¤. ê°ì¢ ì¤ììì ìì´ì, ì»´í¨í°ë ë¤í¸ìí¬ë¥¼ íµí´ ì ì´ë íëì ë°ì´í°ë² ì´ì¤ì ì¡ì¸ì¤íë¤.Before describing a particular embodiment, an embodiment of a hardware architecture for implementing a particular embodiment is described herein. One embodiment may include one or more computers communicatively coupled to a network. As will be appreciated by those skilled in the art, a computer may include a central processing unit ("CPU"), at least one read-only memory ("ROM"), at least one random access memory ("RAM"), at least one It may include a hard drive ("HD") and one or more input / output ("I / O") devices. I / O devices may include keyboards, monitors, printers, electronic pointing devices (mouse, trackball, stylist, etc.) and the like. In various embodiments, the computer accesses at least one database over a network.
ROM, RAM ë° HDë CPUì ìí´ (ì를 ë¤ë©´, ì»´íì¼, ë²ì ë±ì ìí´ ì§ì ì¤íëê±°ë ì¤íê°ë¥ì¼ë¡ ëë ë¤ë¥¸ ê²ìì) ì¤íê°ë¥í ì»´í¨í° ëª ë ¹ì´ë¥¼ ì ì¥í기 ìí ì»´í¨í° ë©ëª¨ë¦¬ì´ë¤. ì´ ëª ì¸ììì, ì©ì´ "ì»´í¨í° íë ê°ë¥ 매체"ë ROM, RAM ë° HDë¡ ì íëë ê²ì´ ìëê³ , íë¡ì¸ìì ìí´ íë ê°ë¥í ìì ì íì ë°ì´í° ê¸°ìµ ë§¤ì²´ë¥¼ í¬í¨í ì ìë¤. ì¼ë¶ ì¤ìììì, ì»´í¨í° íë ê°ë¥ 매체ë ë°ì´í° ì¹´í¸ë¦¬ì§, ë°ì´í° ë°±ì ì© ì기 í ì´í, íë¡í¼ ëì¤ì¼, íëì ë©ëª¨ë¦¬ ëë¼ì´ë¸, ê´í ë°ì´í° 기ìµì¥ì¹ ëë¼ì´ë¸, CD-ROM, ROM, RAM, HD ë±ì ì¸ì©í ì ìë¤.ROM, RAM, and HD are computer memory for storing computer instructions executable by the CPU (eg, in something else that is directly executable or executable by compilation, translation, and the like). In this specification, the term âcomputer readable mediumâ is not limited to ROM, RAM, and HD, and may include any type of data storage medium readable by a processor. In some embodiments, computer readable media may refer to data cartridges, magnetic tape for data backup, floppy diskettes, flash memory drives, optical data storage drives, CD-ROMs, ROMs, RAMs, HDs, and the like.
ì¬ê¸°ìì ì¤ëª íë ê¸°ë¥ ëë ì²ë¦¬ì ì ì´ë ì¼ë¶ë ì ë¹í ì»´í¨í° ì¤íê°ë¥ ëª ë ¹ì´ë¡ 구íë ì ìë¤. ì»´í¨í° ì¤íê°ë¥ ëª ë ¹ì´ë íë ì´ìì ì»´í¨í° íë ê°ë¥ 매체(ë¹íë°ì± ë©ëª¨ë¦¬, íë°ì± ë©ëª¨ë¦¬, DASD ì´ë ì´, ì기 í ì´í, íë¡í¼ ëì¤ì¼, íë ëë¼ì´ë¸, ê´í ê¸°ìµ ì¥ì¹ ë±, ëë ììì ë¤ë¥¸ ì ë¹í ì»´í¨í° íë ê°ë¥ 매체 ëë ê¸°ìµ ì¥ì¹ ë±)ì ìíí¸ì¨ì´ ì½ë ì±ë¶ ëë 모ëë¡ì ì ì¥ë ì ìë¤. ì¼ ì¤ììì ìì´ì, ì»´í¨í° ì¤íê°ë¥ ëª ë ¹ì´ë ì»´íì¼ë C++ì í(lines), ìë°, HTML, ëë ììì ë¤ë¥¸ íë¡ê·¸ëë° ëë ì¤í¬ë¦½í ì½ë를 í¬í¨í ì ìë¤.At least some of the functions or processes described herein may be implemented with appropriate computer executable instructions. The computer executable instructions may include one or more computer readable media (such as nonvolatile memory, volatile memory, DASD array, magnetic tape, floppy diskette, hard drive, optical storage device, or any other suitable computer readable medium or storage device, etc.). Can be stored as software code components or modules. In one embodiment, the computer executable instructions may include lines of compiled C ++, Java, HTML, or any other programming or scripting code.
ê²ë¤ê°, ê°ìë ì¤ììì 기ë¥ë¤ì íëì ì»´í¨í°ìì 구íëê±°ë, ë¤í¸ìí¬ ë´ì ëë ë¤í¸ìí¬ì ê±¸ì¹ 2ê° ì´ìì ì»´í¨í° ì¬ì´ìì ê³µì /ë¶ì°ë ì ìë¤. ì¤ìì를 구ííë ì»´í¨í°ë¤ ê°ì íµì ì ììì ì ì ì í¸, ê´í ì í¸, ê³ ì£¼íì ì í¸ë¥¼ ì´ì©íì¬, ëë ê³µì§ì ë¤í¸ìí¬ íë¡í ì½ê³¼ í¸ííë ë¤ë¥¸ ì ë¹í ë°©ë² ë° íµì ë구를 ì´ì©íì¬ ë¬ì±ë ì ìë¤.In addition, the functions of the disclosed embodiments may be implemented in one computer or shared / distributed between two or more computers in or across a network. Communication between the computers implementing the embodiments may be accomplished using any electronic signal, optical signal, high frequency signal, or other suitable methods and communication tools compatible with known network protocols.
ì¬ê¸°ìì ì¬ì©ëë ì©ì´ "í¬í¨íë¤", "í¬í¨íë", "구ë¹íë¤", "구ë¹íë", "ê°ëë¤", "ê°ë" ëë ì´ë¤ì ììì ë¤ë¥¸ ë³í ì©ì´ë ë¹ë°°íì ë´í¬ë¥¼ í¬ê´íë ê²ì¼ë¡ ìëëë¤. ì를 ë¤ë©´, ììë¤ì 리ì¤í¸ë¥¼ í¬í¨íë íë¡ì¸ì¤, ì²ë¦¬, 물í ëë ì¥ì¹ë ë¨ì§ ê·¸ ììë¡ë§ ì íë íìê° ìê³ , ëª ìì ì¼ë¡ 리ì¤í¸ëì§ ìì ë¤ë¥¸ ìì ëë ê·¸ë¬í íë¡ì¸ì¤, ì²ë¦¬, 물í ëë ì¥ì¹ì ê³ ì í ë¤ë¥¸ ììë¤ì í¬í¨í ì ìë¤. ëí, ëª ìì ì¼ë¡ ë¤ë¥´ê² ì¤ëª ëì§ ìë í, "ëë"ì ì´ê´ì ëë(inclusive or)ì ì¸ì©íë ê²ì´ê³ ë°°íì ëë(exclusive or)ì ì미íë ê²ì´ ìëë¤. ì를 ë¤ë©´, ì¡°ê±´ A ëë Bë í기ì ê² ì¤ ììì íëì ìí´ ë§ì¡±ëë¤; Aë ì°¸(ëë ì¡´ì¬)ì´ê³ Bë ê±°ì§(ëë ë¶ì¬)ì´ë¤; Aë ê±°ì§(ëë ë¶ì¬)ì´ê³ Bë ì°¸(ëë ì¡´ì¬)ì´ë¤; ë° Aì Bê° ë ë¤ ì°¸(ëë ì¡´ì¬)ì´ë¤.As used herein, the terms âcomprisesâ, âcomprisingâ, âcomprisesâ, âcomprisesâ, âhavesâ, âhavesâ, or any other variations thereof are intended to encompass non-exclusive inclusions. . For example, a process, process, article, or apparatus that includes a list of elements need not be limited to only that element, but other elements not explicitly listed or other elements specific to such process, process, article, or apparatus. Can include them. Also, unless expressly stated otherwise, âorâ refers to an inclusive or does not mean an exclusive or. For example, condition A or B is satisfied by any one of the following; A is true (or present) and B is false (or absent); A is false (or absent) and B is true (or present); And A and B are both true (or present).
ì¶ê°ì ì¼ë¡, ì¬ê¸°ìì 주ì´ì§ ììì ì ëë ì¤ëª ì ì´ë»ê²ë ì´ë¤ì´ ì¬ì©íë ììì ì©ì´ ëë ì©ì´ë¤ë¡ 구ìëë ê²ì¼ë¡ì, ì íëë ê²ì¼ë¡ì, ëë ì©ì´ë¤ì ì ì를 íííë ê²ì¼ë¡ì ê°ì£¼ëì§ ìëë¤. ê·¸ ëì ì, ì´ë¤ ì ë° ì¤ëª ì íëì í¹ìí ì¤ììì ê´ë ¨íì¬ ì¤ëª íê³ ë¨ì§ ììíë ê²ì¼ë¡ì ê°ì£¼ëì´ì¼ íë¤. ì´ ê¸°ì ì ìë ¨ë ì¬ëì´ë¼ë©´, ì´ë¤ ì ë° ì¤ëª ìì ì¬ì©íë ììì ì©ì´ ëë ì©ì´ë¤ì´ ì´ ëª ì¸ìì ì´ëê°ìì ì ìíê±°ë ì ìíì§ ìì ì ìë ë¤ë¥¸ ì¤ìììë ì ì©ëë¤ë ê²ì ì ê²ì´ë©°, ê·¸ë¬í 모ë ì¤ììë ê·¸ ì©ì´ ëë ì©ì´ë¤ì ë²ìì ë´í¬ë ê²ì¼ë¡ ìëëë¤. ê·¸ë¬í ë¹ì íì ì¸ ì ë° ì¤ëª ì ì§ìíë ì©ì´ë, ë¹ì íì ì¸ ì를 ë¤ìë©´, "ì를 ë¤ë©´", "ìë¡ì", "ì컨ë", "ì¼ ì¤ììì ìì´ì" ë±ì´ ìë¤.In addition, any examples or descriptions given herein are in no way to be construed as being limited to, or limited to, any term or terms that they use. Instead, these examples and descriptions should be regarded as being described and merely illustrative in connection with one particular embodiment. Those skilled in the art will appreciate that any term or terminology used in these examples and descriptions applies to other embodiments that may or may not be presented elsewhere in this specification, and all such embodiments are those terms. Or it is intended to be within the scope of the terms. Terms referring to such non-limiting examples and descriptions include, by way of non-limiting examples, "for example", "as an example", "such as", "in one embodiment," and the like.
ì ì í ë°ì ê°ì´, íë¡ì¸ìê° ë¯¸ë¦¬ ê·ì ë ë°©ìì¼ë¡ ììì ì½ë ì¸ê·¸ë©í¸ë¥¼ ì¤ííê² íë ê²ì´ ë°ëì§íë¤. ì´ ì ì´ ë¬¸ì ë ì ë²í ìíí¸ì¨ì´ê¹ì§ë ì¡°ìíì¬ ìëíì§ ìì ëë ì¤íë ¤ ì í´í 결과를 ìì±í ì ìë ë§ì ë³í ë°©ë²ì ìí´ ì¡°ì±ë ì ìë¤. ì´ë¬í 공격 ë°©ë²ì ì ë ¥ ë°ì´í° ì½ë ì¼ì´ì¤ ëë ë¤ë¥¸ ìê³ ë¦¬ì¦ì ê²°í¨ì ì´ì©í기 ìí´ ë£¨í´ì ëí ì ë ¥ì¼ë¡ì ê°ì§ ìê·ë©í¸(bogus argument)를 ê³µê¸í¨ì¼ë¡ì¨ ë¹ì½íê² ê¸°ë¡ëìì§ë§ ì í¨í ì½ë를 ì´ì©íë ê²ì í¬í¨í ì ìë¤. ë¤ë¥¸ ê°ë¥í 공격 ë°©ë²ì ê°ì¢ íë¡ì¸ì ë ì§ì¤í°(ì¤í í¬ì¸í° ë±), ëë ë¶ì ë¹íê±°ë ìëì ì¼ë¡ ì못ë 결과를 ì°ì¶ìí¤ë ë°©ë²ì¼ë¡ ë¤ë¥¸ í©ë²ì ì½ëì ìí´ ì°¸ì¡°ëë ì¸ë¶ ë©ëª¨ë¦¬ ìì¹ì ì ì¥ë ë°ì´í°ë¥¼ ë 립ì ì¼ë¡ ìì íë ê²ì í¬í¨íë¤.As noted above, it is desirable to have the processor execute any code segment in a predefined manner. This control problem can be created by a number of variations in which even legitimate software can be manipulated to produce unintended or rather harmful results. Such attack methods may include using poorly written but valid code by supplying bogus arguments as input to the routine to exploit input data corner cases or other algorithmic flaws. Other possible attack methods include independently modifying data stored in various processor registers (such as stack pointers) or external memory locations referenced by other legitimate code in a manner that yields inappropriate or intentionally wrong results.
ì´ë¬í ì¢ ë¥ì ì ì´ì ìí¥ì ì¤ ì ìë ë¤ìì ë©ì¹´ëì¦ì´ ìë¤. ì´ë¬í ìì¤í ë¤ì íë¡ì¸ì를 ì´ë¬í ì¢ ë¥ì ë¹ìëì ì¬ì©ì¼ë¡ë¶í° ë³´í¸íë ë¨ìí ë°©ì ë° ë³µì¡í ë°©ì ë ë¤ë¥¼ í¬í¨íë¤. íê°ì§ ìë¹í ìì íì§ë§ ë³µì¡í ë©ì¹´ëì¦ì ì½ë ì¸ê·¸ë©í¸ë¥¼ ê·¸ ì¤í ì ì ì ìí¸í(pre-encryption)íë ê²ì´ë¤. ì¼ë¨ ì½ë ì¸ê·¸ë©í¸ê° ë©ëª¨ë¦¬ë¡ë¶í° íë¡ì¸ìë¡ ë¡ëëë©´, ì½ë ì¸ê·¸ë©í¸ë ì ì¤íê² ì ì´ë íê²½íìì ë³µí¸ëê³ ìì í ë°©ìì¼ë¡ ì¤íëì´ì¼ íë¤(ë¤ì ë§í´ì, ì½ë ì¸ê·¸ë©í¸ë ë³µí¸ ëìê³¼ íì ì¤í ëì ì¬ì´ìì ìì ëê±°ë ê³ ì³ì§ì§ ììì¼ íë¤). ì´ ë©ì¹´ëì¦ì ë¹í´ ì½ë ì¸ê·¸ë©í¸ê° ì¤íë ì ì기 ì ì ë³µí¸ë ëê¹ì§ íë¡ì¸ìê° ë기í´ì¼ í기 ë문ì ë°ìí ì ìë ì±ë¥ ë¹í¨ì¨ì±ì´ ìë¤. ì¤í ëìì í¹ì ì½ë ì¸ê·¸ë©í¸ì ì íê³¼ ë³µí¸í ì¤ì ì¤í ì¬ì´ì ì´ë¬í ë기ìê°(latency)ì, ë¹ì íì ì¸ ì를 ë¤ìë©´, íë¡ì¸ì íì´íë¼ì¸ ì¤í¨(stall) ë° ë°ì´í° ê²½ë¡ ë¹í¨ì¨ì±ì í¬í¨í ë§ì 문ì ì ì ì¼ê¸°í ë¿ë§ ìëë¼ (ë³µí¸ ëìê³¼ ì¤í ëì ì¬ì´ì ì´ë»ê²ë ì§ ì½ë를 ê°í(hijacking)í¨ì¼ë¡ì¨) ì ì¬ì 공격ì ìí ë¤ë¥¸ ìë¨ì ì ê³µí ì ìë¤.There are a number of mechanisms that can affect this kind of control. Such systems include both simple and complex ways of protecting the processor from this kind of unintentional use. One fairly secure but complicated mechanism is to pre-encrypt the code segment before executing it. Once the code segment is loaded from the memory into the processor, the code segment must be executed in a decrypted and secure manner under a carefully controlled environment (in other words, the code segment must not be modified or fixed between the decryption operation and subsequent execution operations). . This mechanism is a performance inefficiency that can occur because the processor must wait until the code segment is decoded before it can be executed. This latency between the selection of special code segments to be executed and the actual execution after decryption can cause many problems, including but not limited to processor pipeline stalls and data path inefficiencies. Rather, it can provide another means for a potential attack (by hijacking the code somehow between the decryption and execution operations).
ì기 ìí¸í ì½ë ë©ì¹´ëì¦ì ëª ìì ì¼ë¡ ë³´í¸ë ìí¸í ì½ë ì¸ê·¸ë©í¸ë¥¼ ì ì í ë³µí¸íëë¡ ê´ë¦¬íë(ëë ì기 ìí¸í ì½ë ì¸ê·¸ë©í¸ì ë³µí¸ë ë³µì¬ë³¸ì íëí) í´ì»¤ì ì°ë°ì±(eventuality)ì¼ë¡ë¶í° íë¡ì¸ì를 ëí ë³´í¸í ì ìë¤. ê·¸ ê²½ì°, í´ì»¤ë ë³´í¸ëì§ ìì ì½ë를 목í íë¡ì¸ììì ëë ì´ë¤ ë¤ë¥¸ ì¸ì¦ëì§ ìì íë¡ì¸ììì ë¹ì ì´ ë°©ìì¼ë¡ ëììí¬ ì ìë¤. ë°ë¼ì, ì½ëê° ëª ë¬¸(clear)ì¼ë¡(ì¦ í문 ííë¡) ëë ìí¸í ííë¡ ë¶ë°°ëëì§ ì¬ë¶ì ê´ê³ìì´, ì½ë ì¸ê·¸ë©í¸ê° í¹ìí íë¡ì¸ì ëë íë¡ì¸ìë¤ìì ëìí ì ìëë¡ ì íí ì ì´íë ë°©ë²ì ì°¾ë ê²ì´ ë°ëì§íë¤. ë°ë©´ì, ë§ì¼ í¹ìí íë¡ì¸ììì ëìí ì ìë ì½ëê° ì´ë¤ 미리 ì íë ë¶ë¶ ì§í©ì¼ë¡ ì íëë©´, íë¡ì¸ì ìì²´ì ë²ì©ì±ì´ ìë°°ë ì ìë¤. ì´ê²ì ìë§ë íë¡ì¸ìê° ë ë²ì©ì ì¼ë¡ ëê³ ë°ë¼ì ê·¸ ì ì¬ì ìì© ê³µê°ìì í¨ì¬ ë ìµíµì±ìê² íë ë°©ë²ì¼ë¡ ìí¤í ì³ë¥¼ ìë°íë í¨ê³¼ë¥¼ ê°ì§ ì ìë¤. ìµëë¡ ì íµì±ìë ë²ì© íë¡ì¸ì ìí¤í ì³ì ëí ê°í í¬ë§ì´ íì ìì§ë§, ê·¸ë¬í íë¡ì¸ìë ìë°í ë§í´ì ëë¶ë¶ ë©ì¨ì´ 공격ì ì·¨ì½íë¤.The cryptographic code mechanism also cannot protect the processor from the eventuality of hackers managing to properly decrypt explicitly protected cryptographic code segments (or obtaining a decrypted copy of the cryptographic code segment). In that case, the hacker can run the unprotected code in a uncontrolled manner on the target processor or on some other unauthorized processor. Thus, it is desirable to find a way to precisely control the code segment to operate on a particular processor or processors, regardless of whether the code is distributed in clear (ie plain text) or in encrypted form. On the other hand, if the code that can operate on a particular processor is limited to some preselected subset, the generality of the processor itself may be violated. This may have the effect of constraining the architecture, perhaps in a way that makes the processor less general and thus much less flexible in its potential application space. There is always a strong hope for the most circulating general purpose processor architecture, but such processors are, strictly speaking, mostly vulnerable to malware attacks.
ë°ë¼ì, ììì í¹ì íë¡ì¸ì ìí¤í ì³ì ìì¡´íì§ ìì ì ëë¡ ì¶©ë¶í ë²ì©ì¸ ì½ë ì¤íì ì ì´íë ë°©ë²ì´ íìíë¤. ê·¸ë¬í ë°©ë²ì´ 목ì ì½ë(object code) ë°ë ëë 목í íë¡ì¸ìì ì ìí¥ì ì£¼ì§ ìëë¤ë©´ ëí ì ì©í ê²ì´ë¤. ëìì, ê·¸ë¬í ìì¤í ë° ë°©ë²ì´ ìëì 목í íë¡ì¸ì ëë ì´ë¤ ë¤ë¥¸ ìëíì§ ìì 목í íë¡ì¸ììì ë¤ë¥¸ ì ë²í ì½ë ì¸ê·¸ë©í¸ì íê°ëì§ ìì ì¬ì©ì ëí ë³´í¸ë¥¼ ì ê³µíë ê²ì´ ë°ëì§íë¤. ê·¸ë¬í ë°©ë²ì ìíí¸ì¨ì´ ë°ì´ë¬ì¤ ë° ë©ì¨ì´ë¥¼ ì ì´í기 ìí ì¸ììì ê°ì¹ìë ëêµ¬ì¼ ë¿ë§ ìëë¼ ëì§í¸ ì½í í¸ì ì¸ê³ìì ì ìê¶ì ë³´í¸íë ì ì¼íê² ê°ë ¥í ë©ì¹´ëì¦ì´ë¤.Thus, there is a need for a way to control general-purpose code execution that is sufficient to not depend on any special processor architecture. It would also be useful if such a method did not adversely affect the object code density or the target processor. At the same time, it is desirable for such systems and methods to provide protection against unauthorized use of other legitimate code segments on the original target processor or any other unintended target processor. Such a method is not only a valuable tool in the fight to control software viruses and malware, but also the only powerful mechanism for copyright protection in the world of digital content.
ì´ ë문ì, ì´ì ë²ì© ì½ë ë¸ë¡ì ì¤íì ëí ê³ ëì í¹ìí ì ì´ë¥¼ ì ê³µíì¬ íë¡ê·¸ëë¨¸ê° ì£¼ì´ì§ ì½ë ë¸ë¡ì´ ì¤íë ì ìê² íë ì íí íê²½ì ê²°ì í ì ìê² íë ìì¤í ë° ë°©ë²ì ì¤ììì 주ìê° ê¸°ì¸ì¬ì§ê³ ìë¤. ì´ ì¡°ê±´ë¤ì ì½ë ë¸ë¡ì´ ì¤ííë ¤ê³ íë ê°ë³ ì¥ì¹, ì½ë ë¸ë¡ì´ í¸ì¶ëë íê²½, ì¤í ìê°, ì¤í ìì, ë° ì½ë ë¸ë¡ì´ í¹ìí ì¤í ì¤ë ë(execution thread)ìì í¸ì¶ë íìì ê°ì ì ì½ë¤(ê·¸ë¬ë ì기ì ê²ë¤ë¡ ì íëë ê²ì ìë)ì í¬í¨í ì ìë¤.Because of this, attention is now paid to embodiments of systems and methods that provide a highly specialized control over the execution of general purpose code blocks to allow a programmer to determine the exact environment in which a given code block can be executed. These conditions include, but are not limited to, such as the individual devices the code block is about to execute, the environment in which the code block is called, the execution time, the order of execution, and the number of times the code block has been called in a special execution thread. But not limited to.
ì´ë¬í ì ì´ ë©ì¹´ëì¦ì ì를 ë¤ë©´ íê·ì ì¤íì íµíì¬ ì¼ ì¤ììë¡ì 구íëë í¸ì¶ë ì½ë ì¸ê·¸ë©í¸ ì§í©ì ëª ìì ì¼ë¡ ììì í´ì§ ì¤íì 기ì´íì¬ ë°ì´í° ìë ìì¤í ë° ë°©ë²ì ì¤ììì ê²°í©ë ì ìë¤. ì´ë¬í ìì¤í ë° ë°©ë²ì ì¤ììê° ë°©í´ìë ì¼ë°ì± ë° ê³µê²©ì ëí ë³´í¸ ë 벨과 í¨ê» ì¬ì©ë ë ë§ì ë¤ë¥¸ ë³´ì ìì¤í ì ë¥ê°íë ìì¤í ë° ë°©ë²ì´ ì»ì´ì§ ì ìë¤.Such control mechanisms may be combined with embodiments of data hiding systems and methods based on explicitly ordered execution of a set of called code segments implemented as an embodiment, for example, via recursive execution. Systems and methods that outperform many other security systems can be obtained when embodiments of such systems and methods are used in combination with uninterrupted generality and protection against attack.
ì¤ìì를 ìì¸í ì¤ëª í기 ì ì, 본 ë°ëª ì ì¤ììê° í¨ê³¼ì ì¼ë¡ íì©ë ì ìë ìí¤í ì³ì ì¼ë°ì ê°ê´ì ì ê³µíë ê²ì´ ëìì´ ë ì ìë¤. ë 1ì ê·¸ë¬í í í´ë¡ì§ì ì¼ ì¤ìì를 ë¬ì¬í ê²ì´ë¤. ì¬ê¸°ìì, ì½í í¸ ë¶ë°° ìì¤í (101)ì íë¡í ì½ ìì§ì í¬í¨íë íë ì´ìì 목í ì ë(100)(ìëí¬ì¸í¸ ì¥ì¹ë¼ê³ ë ë¶ë¦)ì ëì§í¸ ì½í í¸(ì를 ë¤ë©´, ì¤ëì¤ ëë ë¹ëì¤ ë°ì´í°ë¥¼ í¬í¨í ë¹í¸ ì¤í¸ë¦¼, ìíí¸ì¨ì´ ì í리ì¼ì´ì ë±ì¼ ì ìì)를 ë¶ë°°íëë¡ ëìíë¤. ì기 목í ì ëì ì를 ë¤ë©´ ì ì ëë 무ì ë¤í¸ìí¬ìì ì»´í¨í ì¥ì¹ ëë ë¤í¸ìí¬ê° ìë ì»´í¨í° ì¥ì¹ì ì¼ë¶ì¼ ì ìê³ , ì기 ì»´í¨í ì¥ì¹ë ì를 ë¤ë©´ ë¤í¸ìí¬ë¥¼ íµí´ ë¹í¸ì¤í¸ë¦¼ì¼ë¡ì ì ë¬ë ì½í í¸ ëë ì컨ë ë©ì¼ì íµí´ ì ë¬ë ì ìë ì»´í¨í° íë ê°ë¥ ê¸°ìµ ë§¤ì²´ìì ì½í í¸ë¥¼ ì¬ìí ì ìë í¼ì¤ë ì»´í¨í°, ì ë£°ë¬ í°, ê°ì¸ì© ì ë³´ ë¨ë§ê¸°, 미ëì´ íë ì´ì´ ë±ì í¬í¨íë¤. ë¤ìì ì¤ëª íë ë°ì ê°ì´, ì기 ëì§í¸ ì½í í¸ë ëì§í¸ ì½í í¸ì ì¤íì ëí ì ì´ê° ì¡°ì ë ì ìê³ ë³´ìì´ ëì§í¸ ì½í í¸ì ê´ë ¨íì¬ êµ¬íë ì ìë ê·¸ë¬í ë°©ë²ì¼ë¡ êµ¬ì± ëë ë¶ë°°ë ì ìë¤.Before describing an embodiment in detail, it may be helpful to provide a general overview of the architecture in which embodiments of the present invention may be effectively utilized. 1 depicts one embodiment of such a topology. Here, the content distribution system 101 may be digital content (eg, a bit stream containing audio or video data, software applications, etc.) in one or more target units 100 (also called endpoint devices) that include a protocol engine. To distribute). The target unit may be, for example, a computing device on a wired or wireless network or part of a computer device without a network, the computing device being able to be delivered via e.g. mail or content delivered as a bitstream over the network, for example. Personal computers capable of playing back content on computer readable storage media, cellular phones, personal digital assistants, media players and the like. As described below, the digital content can be configured or distributed in such a way that control over the execution of the digital content can be adjusted and security can be implemented in connection with the digital content.
ë 2ë ëì§í¸ ì½í í¸ì ì¤íì ì ì´íê±°ë ìì ë ëì§í¸ ì½í í¸ì í¨ê» ë³´ì íë¡í ì½ì 구íí ì ìë 목í ì ëì ì¼ ì¤ììì 구조를 ë¬ì¬íê³ ìë¤. 목í ì ëì ììë¤ì 목í ì ë(100)ì íë¡í ì½ ìì§ìì ë³´ì ë°©ìì¼ë¡ íë¡í ì½ì 구ííë ë¸ë¡ë¤ì ì§í©ì í¬í¨í ì ìë¤. ì´ ë¸ë¡ë¤ì ì´ ì¤ìììì íëì¨ì´ë¡ì ë¬ì¬ëì´ ìì§ë§, ìíí¸ì¨ì´ë¥¼ ì´ì©íì¬ ëì¼í í¨ë ¥ì ê°ì§ ì ì¬í 기ë¥ì ë¬ì±í ì ìë¤ë ê²ì ì ê²ì´ë¤. ëí, ì´ë¤ ì¤ììë ì¬ê¸°ìì ì¤ëª í ë¸ë¡ë¤ì 모ë í¬í¨í ì ìì§ë§, ë¤ë¥¸ ì¤ììë ë ì ê±°ë ë ë§ì ë¸ë¡ë¤ì ì´ì©í ì ìë¤ë ê²ì ì ê²ì´ë¤.2 depicts the structure of one embodiment of a target unit that can control the execution of digital content or implement a security protocol with the received digital content. The elements of the target unit may comprise a set of blocks that implement the protocol in a secure manner in the protocol engine of the target unit 100. Although these blocks are depicted as hardware in this embodiment, it will be appreciated that similar functionality with the same effect can be achieved using software. Also, while some embodiments may include all of the blocks described herein, it will be appreciated that other embodiments may use fewer or more blocks.
ì´ ë¸ë¡ë¤ ì¤ ì²«ë²ì§¸ë ì¤ìê° í´ë ëë ë ì§/ìê° ë ì§ì¤í°(102)ì´ë¤. ì´ê²ì ìì ëì íì´ë¨¸(free-running timer)ì´ê³ ì¤ì ìë²ìì ë³´ìì ìí¸ìì©ì ìí´ ì¸í¸ ëë 리ì¸í¸ë ì ìë¤. ìê°ì´ ë³´ì ìê° íì¤ì ëí ì§ì를 íí¨ì¼ë¡ì¨ í립ë ì ì기 ë문ì, ì´ ê¸°ë¥ì ì¨ì¹©(on-chip)ì¼ë¡ íë ê²ì´ ë í¸ë¦¬íë¤. 목í ì ë(100)ì ëì ë°ì기(180)를 ëí í¬í¨í ì ìì¼ë©°, ëì ë°ì기(180)ë ì¶©ë¶í ëìì ì´(sequence)ì ìì±íëë¡ êµ¬ì±ëê³ , ëë ìì¬ ëì ë°ì ìì¤í ì ì¢ ìê°(seed value)ì ê³µê¸í기 ìí´ ì¬ì©ë ì ìë¤. ì기 ìì¬ ëì ë°ì기ë ì ì¬ì ì¼ë¡ íëì¨ì´, ìíí¸ì¨ì´ ëë "ë³´ì" ìíí¸ì¨ì´ë¡ ëí 구íë ì ìë¤.The first of these blocks is a real time clock or date / time register 102. This is a free-running timer and can be set or reset by secure interaction with the central server. Since time can be established by making a query to a secure time standard, it is more convenient to turn this function on-chip. The target unit 100 may also include a random number generator 180, the random number generator 180 being configured to generate a sequence of sufficient random numbers, or providing a seed value to the pseudo random number generation system. Can be used to feed The pseudo random number generator can potentially also be implemented in hardware, software or "secure" software.
ì¼ë°©í¥(one-way) í´ì± í¨ì ë¸ë¡(160)ì ì¤ì§ì ì¼ë¡ íëì¨ì´ë¡ í´ì± í¨ì를 구íí ì ìë¤. 목í ì ë(100)ì ë¤ë¥¸ ë¶ë¶ì íëì¨ì´ ì¡°ë ¥ ìí¸í/ë³µí¸ ìì¤í (170)ì´ê³ , ì´ê²ì 목í ì ë(100)ì ë¹ë°í¤ ëë ê³µê°/ê°ì¸í¤(ë¤ìì ì¤ëª í¨)를 ì´ì©íì¬ í¤ë¤ì ì¤íê°ë¥ ì½ë ë¸ë¡ì¼ë¡ ë³íí기 ìí´ ìí¸í ë©ìì§ìì ëìíê±°ë í¤ë¤ì ìí¸í ë©ìì§ë¡ ë³íí기 ìí´ ë¹ìí¸í ë°ì´í°ìì ëìíë¤. ì기 ë³µí¸ ìì¤í (170)ì ë¤ìí ë°©ë²ì¼ë¡ 구íë ì ìë¤. ì´ë¬í ì¼ë°©í¥ í´ì± í¨ì ë° íìíë ìí¸í/ë³µí¸ ìì¤í ì ì¡°í©ì ììì ëì§í¸ ë°ì´í°ì ì í¨í를 ìí´ ì¬ì©ëë ëì§í¸ ìëª ë°ì기를 구ì±í ì ìê³ , ë°ì´í°ë ìí¸í ííë¡ ëë í문 ííë¡ ë¶ë°°ëë¤. ì ì²´ íë¡í ì½ì ìë ë° ë³´ìì ì´ ë¸ë¡ì 구ì±ì ë°ë¼ ë³í ì ìê³ , ë°ë¼ì ë³´ì ìì¤í ê°±ì ì ìì©íëë¡ ì¶©ë¶í ìµíµì±ì´ ìê³ ìì¤í ì´ ìê° ìê³(time-critical) ë©ìì§ì ì¤ìê° ë³µí¸ë¥¼ ìííëë¡ ì¶©ë¶í ë¹ ë¥´ê² êµ¬ì±í ì ìë¤.The one-way hashing function block 160 may implement the hashing function in substantially hardware. Another part of the target unit 100 is the hardware assisted encryption / decryption system 170, which converts the keys into executable code blocks using the private or public / private key (described later) of the target unit 100. To the encrypted message to convert the key to an encrypted message. The decoding system 170 may be implemented in various ways. This combination of one-way hashing function and subsequent encryption / decryption system may constitute a digital signature generator used for validating any digital data, the data being distributed in encrypted form or in plain text form. The speed and security of the overall protocol can vary depending on the configuration of this block, so it is flexible enough to accommodate secure system updates and can be configured fast enough to allow the system to perform real-time decryption of time-critical messages. .
ì´ê²ì ì¼ëì ëê³ ìì¼ë©´ ì´ë¤ ìí¸í ìê³ ë¦¬ì¦ì´ ì´ íëì¨ì´ ë¸ë¡(170)ì ëíì¬ ì¬ì©ëëì§ì ê´í íë¡í ì½ì ì íí 구체íë ì¤ìíì§ ìë¤. ìµëì ìµíµì±ì ì´ì§í기 ìíì¬, ì¤ì íëì¨ì´ë ë¹ìê³ ë¦¬ì¦ì ì¼ë¡ í¹ìí ë°©ë²ì¼ë¡ ì¬ì©ëëë¡ ì¶©ë¶í ë²ì©ì´ë¼ê³ ì¶ì ëì§ë§, ì´ ë©ì¹´ëì¦ì 구íí ì ìë ë§ì ë¤ë¥¸ ìë¨ì´ ìë¤. ì´ ì ìì, ì©ì´ ìí¸í ë° ë³µí¸ë ìí¸í/ë³µí¸ë¥¼ ìííë ìì§(ìê³ ë¦¬ì¦, íëì¨ì´, ìíí¸ì¨ì´ ë±)ì ì§ì¹í ë ì¬ê¸°ìì ìí¸ êµíì ì¼ë¡ ì¬ì©ëë¤ë ì ì 주목íì¬ì¼ íë¤. ì ì ìë ë°ì ê°ì´, í¹ì ì¤ìììì ëì¹ ìí¸íê° ì¬ì©ëë ê²½ì°, ëì¼íê±°ë ì ì¬í ìí¸í ëë ë³µí¸ ìì§ì´ ìí¸í ë° ë³µí¸ ë ë¤ë¥¼ ìí´ ì¬ì©ë ì ìë¤.With this in mind, the exact specification of the protocol as to which encryption algorithm is used for this hardware block 170 is not important. To facilitate maximum flexibility, the actual hardware is assumed to be general enough to be used in a non-algorithmically specific way, but there are many other means of implementing this mechanism. In this regard, it should be noted that the terms encryption and decryption are used interchangeably herein when referring to an engine (algorithm, hardware, software, etc.) that performs encryption / decryption. As can be seen, where symmetric encryption is used in certain embodiments, the same or similar encryption or decryption engine can be used for both encryption and decryption.
ë¤ë¥¸ ë¸ë¡ì ì¤íë ì½ë를 ì ì¥í ì ìë ë©ëª¨ë¦¬(110)ì´ë¤. ì´ê²ì ì íì ì¼ë¡ ëª ë ¹ì´ ìºì(I-ìºì)ë¼ê³ ìë ¤ì ¸ ìë¤. ì¼ë¶ ì¤ììì ìì´ì, ì기 I-ìºì(110) ë¶ë¶ë¤ì ì¤ìí í¹ì±ì í¹ì ë¸ë¡ì ë´í¬ë ë°ì´í°ê° CPU ì¤í ì ë(120)ì ìí´ìë§ íë ë ì ìë¤ë ê²ì´ë¤. ë¤ì ë§í´ì, I-ìºì ë©ëª¨ë¦¬(130)ì ì기 í¹ì ë¸ë¡ì ì¤íë§ ê°ë¥íê³ ììì ìíí¸ì¨ì´ì ìí´ íë ëë 기ë¡ë ì ìë¤. ì´ I-ìºì ë¸ë¡ì ì¬ê¸°ìì "ë³´ì I-ìºì"(130)ë¼ê³ ë ë¶ë¥¸ë¤. ì¤í ëì ì½ë를 ì기 ë³´ì I-ìºì ë¸ë¡(130)ì ì ì¥íë ë°©ë²ì ë¬ì¬ëê±°ë ë¬ì¬ëì§ ìì ë¤ë¥¸ ë¸ë¡ì ìí´ì ìíë ì ìë¤. ì ì I-ìºì(150)ë ì ìë ¤ì ¸ ìë ë°ì ê°ì´ ì ìì ì¼ë¡ ì¤íëë ì½ë를 ì ì¥í기 ìí´ ì¬ì©ëë¤.Another block is memory 110, which can store code to be executed. This is typically known as an instruction cache (I-cache). In some embodiments, an important characteristic of the portions of I- cache 110 is that the data contained in a particular block can only be read by CPU execution unit 120. In other words, the special block of I- cache memory 130 is executable only and cannot be read or written by any software. This I-cache block is also referred to herein as "secure I-cache" 130. The method of storing the code to be executed in the secure I- cache block 130 may be performed by another block that is depicted or not depicted. Normal I- cache 150 is used to store code that executes normally, as is well known.
ê²ë¤ê°, ì¼ë¶ ì¤ìììì, í¹ì ë¸ë¡ì ì¬ì©íì¬ ë³´ì ì½ë ë¸ë¡ì ëìì ê°ìíí ì ìë¤. ë°ë¼ì, CPU(120)ê° ë³´ì ì½ë를 ì¤ííë ëì ì¡ì¸ì¤ë§ ê°ë¥í CPU ë ì§ì¤í°(140)ì ì§í©ì´ ì§ì ë ì ìê³ ë³´ì ì½ë ë¸ë¡ì´ ì¤í ì¢ ë£ìì CPU ë ì§ì¤í°ê° í´ë¦¬ì´ëë©°(ë³´ì ì½ë ë¸ë¡(130) ë´ì ëª ë ¹ì´ë ë³´ì 모ëë¼ê³ ë¶ë¥¸ë¤), ëë ë³´ì I-ìºì(130)ì ì ì¥ë ì½ëì ì¤í ì¤ì ì´ë¤ ì´ì ë¡ ë¹ë³´ì ì¦ "ì ì" I-ìºì ëë ë¤ë¥¸ ììì ìì¹ë ììì ì½ë ì¹ì ì¼ë¡ì ì íê° ë°ìíë¤.In addition, in some embodiments, certain blocks may be used to speed up the operation of secure code blocks. Thus, a set of CPU registers 140 accessible only while the CPU 120 executes the security code can be specified and the CPU register is cleared at the end of execution of the security code block (instructions in the security code block 130 are Or execution of code stored in secure I- cache 130, for some reason a jump to an insecure or " normal " I-cache or any code section located in another area occurs.
ì¼ ì¤ììì ìì´ì, CPU ì¤í ì ë(120)ì ë³´ì ì½ë ë¸ë¡(130)ì ì ì¥ë ì½ë를 ì¤ííë ëì ì´ë¤ ë ì§ì¤í°(140)ê° íë ëë 기ë¡ëëì§ë¥¼ ì¶ì íê³ , ê·¸ ë¤ìì "ë³´ì ì¤í" 모ë를 ë¹ ì ¸ëê° ë ì기 ë ì§ì¤í°ë¥¼ ìëì¼ë¡ í´ë¦¬ì´íëë¡ êµ¬ì±ë ì ìë¤. ì´ê²ì ë³´ì ì½ëê° ê·¸ ìì²´ íì ì ìí "ì²ì(clean-up)"ëì´ 2ì¢ ë¥ì ì½ë ë¸ë¡ë¤ ê°ì ê³µì ëëë¡ íì©ë ë°ì´í°ë§ì´ 본ëëë¡ ì ì§ëê² íë¤. ë¤ë¥¸ íëì ê°ë¥ì±ì ë³´ì ì½ë ë¸ë¡(130) ë´ìì ì¤íëë ì½ëì 창조ì(author)ê° ì´ë¤ ë ì§ì¤í°(140)ê° í´ë¦¬ì´ëì´ì¼ íëì§ë¥¼ ëª ìì ì¼ë¡ ìë³í ì ìë¤ë ê²ì´ë¤.In one embodiment, CPU execution unit 120 tracks which registers 140 are read or written while executing code stored in secure code block 130 and then exits the "secure execution" mode. It may be configured to automatically clear the register upon exit. This allows the security code to be "clean-up" quickly after itself so that only the data allowed to be shared between the two types of code blocks remains intact. Another possibility is that the author of code executing within secure code block 130 can explicitly identify which register 140 should be cleared.
ë³´ì ì½ë ì¸ê·¸ë©í¸ì ë¹ë³´ì ì½ë ì¸ê·¸ë©í¸ ì¬ì´ìì ë ì§ì¤í°(140)ì ì ì¥ë ë°ì´í°ì "ëì¤"ì ì·¨ê¸íë ë¤ë¥¸ ì ì¬ì ì¸ ë°©ë²ì CPU(120)ê° ë³´ì ì½ë를 ì¤íí ëë§ ì¬ì©ëë ë ì§ì¤í°(140)ì ì§í©ì ìë³íë ê²ì´ë¤. ì¼ ì¤ììì ìì´ì, ì´ê²ì ë§ì íëì CPU ì¤ê³ìì ì¤ìëê³ ìë ë ì§ì¤í° 리ë¤ì´ë°(renaming) ë° ì¤ì½ì´ë³´ë©(scoreboarding) ë©ì¹´ëì¦ì ë²ì ì ì´ì©íì¬ ë¬ì±ë ì ìë¤. ë§ì¼ ë³´ì ì½ë ë¸ë¡ì ì¤íì´ ìì ëì(atomic action)ì¼ë¡ ì·¨ê¸ëë©´(ì¦, ì¤ë¨í ì ìì¼ë©´), ì´ê²ì ì기 리ë¤ì´ë° ë° ì¤ì½ì´ë³´ë©ì 구íì ë ì½ê² í ì ìë¤.Another potential way of dealing with the "leakage" of data stored in register 140 between secure code segments and non-secure code segments is to identify a set of registers 140 that are used only when CPU 120 executes secure code. . In one embodiment, this may be accomplished using a version of the register renaming and scoreboarding mechanisms implemented in many modern CPU designs. If the execution of the secured code block is treated as an atomic action (ie, it cannot be stopped), this may make the implementation of the renaming and scoreboarding easier.
CPU(120)ê° "ë³´ì" ì½ë(ë³´ì ì½ë ë¸ë¡(130) ë´ì ì½ë)ì "ë¹ë³´ì ì½ë"(ì ì I- ìºì(150)ì ê°ì ë¤ë¥¸ ìì¹ ëë ë©ëª¨ë¦¬ì ë¤ë¥¸ ìì¹ ë´ì ì½ë)ì í¼í©ë¬¼ì ì¤íí ê°ë¥ì±ì´ ê±°ì ìì´ë³´ì¸ë¤ í ì§ë¼ë, ê·¸ë¬í ìí©ì ì¸í°ë½í¸ 루í´ì¼ë¡ ì íí ëì ê°ì´ ì½í ì¤í¸ë¥¼ ì¤ìì¹íë ì²ë¦¬ìì, ëë CPU(120) ì½í ì¤í¸ê° ì´ëì ì ì¥ëì´ ìëê°ì ë°ë¼ì ë°ìí ì ìë¤(ëë¶ë¶ì CPUë ë©ì¸ ë©ëª¨ë¦¬ì ì½í ì¤í¸ë¥¼ ì ì¥íì§ë§, ë©ì¸ ë©ëª¨ë¦¬ë ì ì¬ì ì¼ë¡ ë¹ë³´ì ì½ë ë¸ë¡ì ìí´ ë°ê²¬ ë° ì¡°ìë기 ì½ë¤). CPU 120 is likely to execute a mixture of "secure" code (code in secure code block 130) and "non-secure code" (code in another location, such as normal I- cache 150, or in another location in memory) Although rarely seen, such a situation can occur in a process of switching contexts, such as when jumping to an interrupt routine, or depending on where the CPU 120 context is stored (most CPUs have a context in main memory. Store, but main memory is potentially susceptible to discovery and manipulation by insecure code blocks).
ì´ë¬í ì°ë°ì±ì ëí ë³´í¸ë¥¼ ë기 ìí´, ì¼ ì¤ììì ìì´ì, ì¤ê° ì¤í(mid-execution)ì´ ìì¤í ë´ì ë¤ë¥¸ ì¤í ì¤ë ëì ë ¸ì¶ëë ê²ì´ ê¸ì§ëê³ ìë ë³´ì ì½ë ë¸ë¡ì ì¤í ì¤ì ì»ì´ì§ 결과를 ë³´í¸í기 ìí´ ì¬ì©ë ì ìë ë¤ë¥¸ ë°©ë²ì íë¡ì¸ìê° ë³´ì ì¤í 모ëìì ëìì¤ì¸ ëì ì¤í í¸ì(stack push)를 ëì¤ìì´ë¸ íë ê²ì´ë¤. ì´ë¬í ì¤í í¸ìì ëì¤ìì´ë¸ì ë§ì¼ ë³´ì ì½ë ë¸ë¡ì´ ê·¸ ì ìì ì¸ ì¢ ë£ ì ì ì¸í°ë½í¸ëë©´ ë³´ì ì½ë ë¸ë¡ì ì¬ê°ì(resume)ë ì ìê³ ë°ë¼ì ì²ìë¶í° ë¤ì ììëì´ì¼ íë¤ë ì ìì ë³´ì ì½ë ë¸ë¡ì´ ì¸í°ë½í¸ ë¶ë¥ì´ë¼ë ê²ì ì미íë¤. í¹ì ì¤ìììì, ë§ì¼ "ë³´ì ì¤í" 모ëê° íë¡ì¸ì ì¸í°ë½í¸ ì¤ì ëì¤ìì´ë¸ëë©´ ë³´ì ì½ë ë¸ë¡ì ì ì²´ í¸ì¶ ì¬ì¬(calling chain)ì´ ì¬ììëì§ ìë í ì ì¬ì ì¼ë¡ ì¬ììë ì ìë¤.To help protect against this contingency, in one embodiment, a mid-execution can be used to protect the results obtained during execution of a block of secure code that is prohibited from exposing to other executing threads in the system. Another way is to disable stack push while the processor is operating in secure execution mode. Disabling this stack push means that the security code block is non-interruptible in that if the security code block is interrupted before its normal termination, the security code block cannot be resumed and therefore must be restarted from the beginning. In certain embodiments, if the "secure execution" mode is disabled during processor interrupts, the secure code block cannot potentially be restarted unless the entire calling chain is restarted.
ê° ëª©í ì ë(100)ì 2ì¸í¸ì ë¹ë°í¤ ìì(104)를 ëí ê°ì§ ì ìê³ , ê·¸ë¤ì ê°ì ì´ë ê²ë ìíí¸ì¨ì´ì ìí´ íë ë ì ìë¤. ì´ë¤ í¤ì 첫ë²ì§¸(1ì°¨ ë¹ë°í¤)ë ë¹ë°í¤ì ì§í©ì¼ë¡ì 구ì±ë ì ìê³ , ê·¸ë¤ ì¤ìì íëë§ì´ ììì í¹ì ìê°ì íë ë ì ìë¤. ë§ì¼ ì ëì "ìì ê¶"ì´ ë°ëë©´(ì를 ë¤ë©´, íë¡í ì½ ìì§ì ë´í¬í ì¤ë¹ê° í매ëê±°ë ê·¸ ìì ê¶ì´ ë¤ë¥¸ ë°©ìì¼ë¡ ì´ì ëë©´), íì¬ íì±ì¸ 1ì°¨ ë¹ë°í¤ë "í´ë¦¬ì´"ëê±°ë ë¤ë¥¸ ê°ì¼ë¡ ë®ì´ì°ê¸° ë ì ìë¤. ì´ ê°ì ë³´ì ë°©ìì¼ë¡ ì ëì ì ë¬ë ìë ìê³ , ëë ì기 ì 1 í¤ê° í´ë¦¬ì´ë ëìë§ ì¬ì©ëë ë°©ìì¼ë¡ ì ëì ì´ë¯¸ ì ì¥ëì´ ìì ìë ìë¤. ì¬ì¤, ì´ê²ì ì ëì ìì ê¶ì´ ë³ê²½ëìì ë ëë ê·¸ë¬í ë³ê²½ì ê´í ì´ë¤ ë¤ë¥¸ ì´ì ê° ìë ê²½ì°(ì ì¶©í¤(compromised key)ì ê°ì´) ìë¡ì´ 1ì°¨ ë¹ë°í¤ë¥¼ ì기 í¹ì ì ëì ë°ííë ê²ê³¼ ë±ê°ì´ë¤. 2ì°¨ ë¹ë°í¤ë 목í ì ë(100) ìì²´ì í¨ê» ì¬ì©ë ì ìë¤. 목í ì ë(100)ì CPU(120)ë 1ì°¨ ëë 2ì°¨ ë¹ë°í¤ì ê°ì ì¡ì¸ì¤í ì ìì¼ë¯ë¡, ì´ë¤ ë©´ìì 목í ì ë(100)ì ê·¸ ìì ì ë¹ë°í¤(104)ê¹ì§ë ìì§ ëª»íë¤. ì´ í¤ë¤ì 목í ì ë CPU(120)ì ë³´ì ë¸ë¡ ë´ì ì ì¥ëì´ ì¬ì©ë ë¿ì´ë¤.Each target unit 100 can also have two sets of secret key constants 104, and none of their values can be read by software. The first of these keys (the primary secret key) can be configured as a set of secret keys, and only one of them can be read at any particular time. If the unit's "ownership" is changed (for example, a facility containing a protocol engine is sold or its ownership is transferred in another way), the currently active primary secret key will be "cleared" or overwritten with another value. Can be. This value may be delivered to the unit in a secure manner, or may already be stored in the unit in a manner used only when the first key is cleared. In fact, this is equivalent to issuing a new primary secret key to the special unit when the ownership of the unit changes or if there is any other reason for such a change (such as a compromised key). The secondary secret key may be used with the target unit 100 itself. Since the CPU 120 of the target unit 100 cannot access the value of the primary or secondary secret key, the target unit 100 does not know even its own secret key 104 in some respects. These keys are only stored and used in the security block of the target unit CPU 120.
ë¤ë¥¸ í¤ ì§í©ì ìì ê³µê°/ê°ì¸í¤ ìì¤í (ë¹ëì¹ í¤ ìì¤í ëë PKI ìì¤í ì´ë¼ê³ ë ìë ¤ì ¸ ìë¤)ì ì¼ë¶ë¡ì ëìí ì ìë¤. ì´ ìì í¤ë¤ì ê¸íê²(on the fly) ìì±ëê³ , ì¤ì ìë²ì ê°ì ìì´ ì ì¬í ì ëë¤ ê°ì ë³´ì íµì ë§í¬ë¥¼ í립í기 ìí´ ì¬ì©ë ì ìë¤. ì´ë¬í ìì¤í ì ë³´ìì±ì´ ë±ê° í¤ ê¸¸ì´ ëì¹ í¤ ìí¸í ìì¤í ì ë³´ìì±ë³´ë¤ ì íì ì¼ë¡ ë ë®ê¸° ë문ì, ì´ í¤ë¤ì ì ì í ë¹ë°í¤ ì§í©ë³´ë¤ ì¬ì´ì¦ê° ë í¬ë¤. ì´ í¤ë¤ì ë¤ë¥¸ 무ìë³´ë¤ë "ì¬ì ì¡ ê³µê²©"ì ëíì¬ ë³´í¸í기 ìí´ ì¨ì¹© íì´ë¨¸ ë¸ë¡ìì ì ìëë ê°ê³¼ í¨ê» ì¬ì©ë ì ìë¤. ì´ í¤ë¤ì ê¸íê² ìì±ë기 ë문ì, í¤ë¤ì´ ìì±ëë ë°©ë²ì ëì ë°ì ìì¤í (180)ì ìì¡´í ì ìë¤.The other key set may operate as part of a temporary public / private key system (also known as asymmetric key system or PKI system). These pairs of keys are generated on the fly and can be used to establish a secure communication link between similar units without the intervention of a central server. Since the security of such a system is typically lower than that of an equivalent key length symmetric key encryption system, these keys are larger in size than the secret key set described above. These keys can be used in conjunction with the values presented in the on-chip timer block to, among other things, protect against "retransmission attacks." Since these keys are generated in a hurry, how the keys are generated may depend on the random number generation system 180.
ì¼ ì¤ììì ìì´ì, í¹ì 목í ì ëì "ìì ê¶" ë³ê²½ì ìí¥ì ì¤ ì ìë íëì ë°©ë²ì ì°ë¦¬ê° íìì¤í¬í ëë íìì¤í¬í ê°ì´ë¼ê³ ë¶ë¥´ë ë¤ë¥¸ í¤(107)ì í¨ê»íë í©ì±í¤(compound key)ë¡ì 1ì°¨ ë¹ë°í¤ë¥¼ íì ì¬ì©íë ê²ì´ë¤. ìëíë©´, ì기 ë¤ë¥¸ í¤ì ê°ì ë³ê²½ë ì ìê³ (ë¤ì ë§í´ì ë¤ë¥¸ ìê°ì ë¤ë¥¸ ê°ì ê°ì§ ì ìì), ë°ëì íì¬ ì¼ì를 ë°ìíì§ ì기 ë문ì´ë¤. ì´ íìì¤í¬í ê° ìì²´ë 구조ì ì¼ë¡ ê°ìì ì¼ ìë ê°ìì ì´ ìë ìë ìì§ë§(ì¦, ë°ëì ë¹ë°í¤ì¼ íìê° ìë¤), ê·¸ë¼ìë ë¶êµ¬íê³ ëª©í ì ëì´ ë³´ì ì¤í 모ëìì ëìíì§ ìë í ìì ë ì ìë¤. ê·¸ ê²½ì°ì, 1ì°¨ ë¹ë°í¤ê° ì¬ì©ë ëë§ë¤ í©ì± í¤ì ì±ë¶ì¼ë¡ì íìì¤í¬í ê°ì ì¼ê´ë ì¬ì©ì 본ì§ì ì¼ë¡ ë§ì¹ 1ì°¨ ë¹ë°í¤ê° ë³ëì ê°ì¼ë¡ ì íë ê²ê³¼ ëì¼í í¨ê³¼ë¥¼ ë§ë¤ ì ìê³ , ë°ë¼ì 1ì°¨ ë¹ë°í¤ ì체를 ìì í íììì´ í¹ì 목í ìëí¬ì¸í¸ ì ëì "ìì ê¶ ë³ê²½"ì í¨ê³¼ì ì¼ë¡ ê°ë¥íê² íë¤.In one embodiment, one way that may affect the "ownership" change of a special target unit is a primary key as a compound key with another key 107, which we call a timestamp or timestamp value. The secret key is always used. This is because the value of the other key can be changed (that is, have a different value at different times) and does not necessarily reflect the current date and time. This timestamp value itself may or may not be structurally visible (ie it does not necessarily have to be a secret key), but nevertheless cannot be modified unless the target unit is operating in secure execution mode. In that case, consistent use of the timestamp value as a component of the composite key whenever the primary secret key is used can essentially produce the same effect as if the primary secret key was converted to a separate value, and thus primary secret key. It effectively enables "change of ownership" of special target endpoint units without having to modify the keys themselves.
ì´ì , 목í ì ëì ì¼ë°©í¥ í´ì± í¨ì íëì¨ì´ì ëíì¬ ë ìì¸í ì¤ëª íë¤. ì´ì ë 15를 참조íë©´, íìëë ë°ë³µìì ì¼ë°©í¥ í´ì± í¨ì를 ìí ì¢ ìê°ì¼ë¡ì íê·í ë³´ì íë¡í ì½ì 1í ë°ë³µìì ìì±ë ëì§í¸ ìëª ëìì 결과를 ì´ì©í ì ìë ì¼ë°©í¥ í´ì± í¨ì ë¸ë¡ì ì¼ ì¤ììê° ëìëì´ ìë¤. ì¼ ì¤ììì ìì´ì, 목í ì ëì ìíë, 목í ì ëì´ ë³´ì ì¤í 모ëìì ëìíëì§ ìëì§ì ê´ê³ê° ìë í, ì¬ê¸°ìì "ë³´ì 모ë ì¸ìì´ë¸" ë¹í¸ë¼ê³ ë¶ë¥´ë íëì¨ì´ ë¹í¸(1570)ì ê°ì ìí´ ë°ìë ì ìë¤.Now, the one-way hashing function hardware of the target unit will be described in more detail. Referring now to FIG. 15, there is shown one embodiment of a one-way hashing function block that can use the result of a digital signature operation generated at one iteration of a recursive security protocol as a seed value for the one-way hashing function in a subsequent iteration. have. In one embodiment, the state of the target unit is to be reflected by the value of a hardware bit 1570, referred to herein as a "secure mode enable" bit, as long as it relates to whether the target unit is operating in secure execution mode or not. Can be.
ì¬ê¸°ìì, ì´ íëì¨ì´ ë¹í¸ì ëí´í¸ ìíë í´ë¦¬ì´ë ì ìë¤(ì¦, 목í íë¡ì¸ìì ëí´í¸ ìíë ë³´ì ì¤í 모ëìì ëìíì§ ëª»íê² íë¤). í¹ì ì¤ìììì ì´ ë¹í¸ì ì¼ë°©í¥ í´ì± í¨ì íëì¨ì´ ë¸ë¡(1561)ê³¼ì ìí¸ìì©ì 2ê°ì ë¶ë¶ì¼ë¡ ëëì´ ì¤ëª í ì ìë¤. 첫ë²ì§¸(ë¹ë³´ì) ê²½ì°ì, íëì¨ì´ ë¹í¸ê° ì¸í¸(ì를 ë¤ë©´ "1"ë¡ ëë ê², ê·¸ë¬ë í¹ì ì ìí¤í ì³ììë ì´ ë¹í¸ê° "0"ì ê°ì ê°ì§ ë "ì¸í¸"ë¡ ê°ì£¼ë ì ìë¤)ì¼ ëìë§ ë¹ë° íëì¨ì´ í¤ì ì¬ì©ì íì©íëë¡ "ë³´ì 모ë ì¸ìì´ë¸" ë¹í¸ê° 문ì§ê¸°ë¡ì ìì©í기 ë문ì, ë¹ë° íëì¨ì´ í¤(1540)ì ëí 모ë ì¡ì¸ì¤ë ì°¨ë¨ëë¤. ëí, ì´ ê²½ì°ì, ëì§í¸ ìëª ë ì§ì¤í°(1564)ì ì¶ë ¥ì í¼ëë°±ëì´ ì¼ë°©í¥ í´ì± í¨ì(1561)ì ì ë ¥ "ì¢ ì"(1510)를 íì±íë¤. ë°ë¼ì, íë¡ì¸ìê° "ë¹ë³´ì ì¤í" 모ëìì ëìíë ëì ììì ì¼ë°©í¥ í´ì± í¨ì ëìì ì¤ê° ê²°ê³¼ê° í¼ëë°±ëì´ ììì íì ì¼ë°©í¥ í´ì± í¨ì ëìì ìí ì¢ ì를 íì±íë¤. ì´ê²ì ë¤ì¤í¸ë(nested) ëë ì°ì 기ë¥(concatenated function)ì ì§í©ì ì ì²´ í¸ì¶ ì¬ì¬(calling chain)ê³¼ ëì¼í ê°ë ì²´í¬ì¬(running checksum)ì´ ì ì§ë ì ìê² íë¤. ì¤íì ìëíë ê° ì½ë ë¸ë¡ì ì¤íì´ íì©ë기 ì ì ì기 ì¼ë°©í¥ í´ì± í¨ìë¡ ë¨¼ì íê°ë ê²½ì°ì, ììì 주ì´ì§ ì½ë ë¸ë¡ì ì ì²´ í¸ì¶ ì¬ì¬ì ì´ ë¨ì¼ ë©ì¹´ëì¦ì¼ë¡ ì¤ì§ì ì¼ë¡ ëª ííê² ê²°ì ë ì ìë¤.Here, the default state of this hardware bit can be cleared (ie, the default state of the target processor prevents it from operating in secure execution mode). In a particular embodiment, the interaction of this bit with the one-way hashing function hardware block 1561 can be described in two parts. In the first (non-secure) case, only when the hardware bit is a set (eg going to be "1", but on certain architectures it can be considered "set" when this bit has a value of "0"). Since the "Secure Mode Enable" bit acts as a gatekeeper to allow the use of the secret hardware key, all access to the secret hardware key 1540 is blocked. Also in this case, the output of the digital signature register 1564 is fed back to form an input âseedâ 1510 of the one- way hashing function 1561. Thus, while the processor is operating in "non-secure execution" mode, the intermediate result of any one-way hashing function operation is fed back to form a seed for any subsequent one-way hashing function operation. This allows a running checksum equal to the entire calling chain of a nested or concatenated set of functions to be maintained. If first evaluated with the one-way hashing function before execution of each block of code that attempts to execute, the entire call chain of any given block of code can be determined substantially clearly with this single mechanism.
ë§ì°¬ê°ì§ë¡, "ë³´ì 모ë ì¸ìì´ë¸" ë¹í¸ê° ì¸í¸ì¸ ê²½ì°(ì¦, íë¡ì¸ìê° "ë³´ì ì¤í 모ë"ìì ëìíë ê²½ì°)ì, ë¹ë° íëì¨ì´ í¤ë ì¡ì¸ì¤ ê°ë¥íë¤(ë¤ì ë§í´ì, ê·¸ ê°ì´ íë¡ì¸ì ìì²´ì ìí´ ì§ì ì¡ì¸ì¤í ì ìë ê²½ì°ìë ì§ì ì¡ì¸ì¤ê°ë¥íê±°ë, ì ì´ë ê·¸ ê°ì´ ê³ì° ëììì ì¬ì©ë ì ìë¤). ê²ë¤ê°, ë³´ì ì¤í 모ëìì ëìí ë, ëì§í¸ ìëª ë ì§ì¤í°ì ì¶ë ¥ì í¼ëë°±ëì§ ìê³ ì¼ë°©í¥ í´ì± í¨ìì íì íê°ë¥¼ ìí ì¢ ì ê°ì íì±íë¤. ì´ ëì§í¸ ìëª ë°ì기 ë¸ë¡ì ì íí 구íì ë¤ìì ë ìì¸í ì¤ëª íë¤. ì´ì ì ì ìë ë°ì ê°ì´, í¹ì ì¤ìììì, í¹ì ì½ë ë¸ë¡ì ì ì²´ í¸ì¶ ì¬ì¬ì ìì¤í ìì´ë ìíí¸ì¨ì´ ëë íëì¨ì´ ì í¨í(ëë ì¸ì¦) ëìê³¼ ê°ì ìë¨ì ì¬ì©í íììì´ ê·¸ ë³´ì ì¤í ì ì ì í¨íë ì ìë¤. íìì¤í¬í ë ì§ì¤í°ì ê´ë ¨íì¬ ììì ì¤ëª í ê²½ì°ììì²ë¼, í¹ì ì¤ììì ìì´ì, ì´ "ë³´ì 모ë ì¸ìì´ë¸" ë¹í¸ë íë¡ì¸ìì ëí´ êµ¬ì¡°ì ì¼ë¡ ê°ìì ì´ê±°ë ê°ìì ì´ ìë ì ìì§ë§, ê·¸ ìíë íë¡ì¸ìì ìí´ ëª ìì ì¼ë¡ ì¸í¸ëì§ ìì ì ìë¤ë ì ì 주목íë¤. ì´ íëì¨ì´ ë¹í¸ë ë¹ë³´ì ì½ë ì¸ê·¸ë©í¸ë¥¼ í¸ì¶í¨ì¼ë¡ì¨ ëí´í¸ ê°ì¼ë¡ 리ì¸í¸ë ì ìì§ë§, ì¼ ì¤ììì ìì´ì, ì´ ë¹í¸ê° ì¸í¸ë ì ìë ì ì¼í ë°©ë²ì íëì¨ì´ ë¶ë¶ììì ì§ì ëìì íµíë ê²ì´ë¤. ë¹í¸ê° 구조ì ì¼ë¡ ê°ìì ì¸ ê²½ì°ì, íë¡ì¸ìê° ë³´ì ì¤í 모ëìì ëìì¤ì¸ì§ ìëì§ë ëª ìì ì¼ë¡ ê²°ì ë ì ìë¤. ë¹í¸ê° 구조ì ì¼ë¡ ê°ìì ì´ì§ ìì ê²½ì°ì, ê²°ì ì ê·¸ë¼ìë ë¶êµ¬íê³ ê·¸ ê°ì´ ì´ì¨ë íëì¨ì´ ë¹ë°í¤ì ìì¡´íë¤ë ì´ë¤ ííì íê°í¨ì¼ë¡ì¨ ììì ì¼ë¡ ííì¬ì§ ì ìë¤.Similarly, if the "secure mode enable" bit is set (ie, the processor is operating in "secure execution mode"), the secret hardware key is accessible (that is, the value is directly accessed by the processor itself). Even if it is not possible, it is directly accessible, or at least its value may be used in the calculation operation). In addition, when operating in secure execution mode, the output of the digital signature register is not fed back and forms a seed value for subsequent evaluation of the one-way hashing function. The exact implementation of this digital signature generator block is discussed in more detail later. As can now be seen, in certain embodiments, the entire call chain of a special code block can be validated prior to its security execution without the need to use means such as system wide software or hardware validation (or authentication) operations. In certain embodiments, as in the case described above with respect to the timestamp register, this "secure mode enable" bit may or may not be structurally visible to the processor, but its state is not explicitly set by the processor. Note that it may not. This hardware bit can be reset to its default value by calling an unsecure code segment, but in one embodiment, the only way this bit can be set is through direct operation in the hardware portion. If the bit is structurally visible, it can be explicitly determined whether the processor is operating in secure execution mode. If the bit is not structurally visible, the decision can be made implicitly by evaluating any representation that the value nevertheless depends on the hardware secret key.
ì´ì , ì½ë ì¤íì ì ì´ ë° ë³´ì íë¡í ì½ì 구íì ë°ì í ê´ê³ê° ìë 주ì (subject) íì 기본ì ì¸ ë¬¸ì ì ì ëíì¬ êµ¬ì²´ì ì¼ë¡ ì¤ëª íë¤. ê·¸ëì ì ì í íëì¨ì´ì ì¤ìì를 ì´ì©íì¬ ììì ë²ì© íë¡ì¸ììì ìì ì½ëì ì¤íì ì ì´íë ë² ë° ì´ë¤ ìì¤í ë° ë°©ë²ì ì¤ììê° ë³´ì íë¡í ì½ ë° ìì¤í ê³¼ í¨ê» ì´ë»ê² í¨ê³¼ì ì¼ë¡ ì¬ì©ëì´ í¨ê³¼ì ì¸ ì ì²´ ë³´ì ìì¤í ì 구ì±íëì§ë¥¼ ì ì ìë¤.Now, the basic problem under the subject that is closely related to the control of code execution and the implementation of the security protocol will be described in detail. Thus, using the embodiments of the hardware described above, it can be seen how to control the execution of arbitrary code on any general purpose processor and how the embodiments of these systems and methods are effectively used with security protocols and systems to form an effective overall security system. have.
ë¹ë°í¤ ìëSecret key concealment
ìì ì ëì§í¸ ì½í í¸ ì ì¡ ìì¤í ì ëë¶ë¶ì ëì§í¸ 미ëì´ ë°ì´í°ê° ìì ë¡ê² ë³µì ë° ë¶ë°°ëë ê²ì¼ë¡ë¶í° ë³´í¸í기 ìí´ ìì ííì ìí¸í ëë ë°ì´í° ìë(data hiding)ì í¬í¨íë¤. ëë¶ë¶ì ê²½ì°ì, ë°ì´í° ìë ì ëµì ì½í í¸ ë³´í¸ì ê´ë ¨íì¬ ìì í ë¹í¨ê³¼ì ì¸ ìë¨ì´ë¼ë ê²ì´ ê²°êµ ì ì¦ëìë¤. ì´ë¬í ìëì´ ë¹ì±ê³µì ì¸ ê²ì¼ë¡ ì ì¦ë ì¤ì ì´ì ì¤ì íëë ë ¸ì¶ë¡ë¶í° ë³´í¸ëì´ì¼ í ì íí ë°ì´í°ê° ê·¸ë¼ìë ë¶êµ¬íê³ ììì ì¸ì¦ë ë¹ì¬ììê²ë ìì ë¡ê² ì´ì©í ì ìì´ì¼ íë¤ë ê²ì´ë¤. ë°ë¼ì, ëì§í¸ ì½í í¸ì ë¶ë°°ì ìì´ì ì¸ê´ì 모ìì´ëë ì¼ë ¨ì íìì¡°ê±´ì´ ì¡´ì¬íë¤.Most commercial digital content delivery systems include some form of encryption or data hiding to protect digital media data from being freely copied and distributed. In most cases, the data hiding strategy has eventually proved to be a completely ineffective means with regard to content protection. One of the key reasons why such concealment has proved unsuccessful is that the exact data to be protected from exposure should nevertheless be freely available to any authorized party. Thus, there is a set of requirements that seemingly contradictory in the distribution of digital content.
모ë ìëë ìë ¹ìì ëíì¬ ìëì ëì§í¸ ì½í í¸ê° ë³ëë¡ ìí¸íë ì ìë ê²½ì° ë° ìëë ìë ¹ìë§ì´ ë¶ë°°ë ëì§í¸ ì½í í¸ë¥¼ ì¤ì ë¡ ì¬ì©í ì ìë ê²½ì°ì, ìì¤í ì ë³´ìì±ì ì ì¬ì ì¼ë¡ ì주 ìí¸í ì ìë¤. ê·¸ë¬ë, ë¤ìì í¹ìí ì¡°ê±´ë¤ì´ ë¶í©ëì§ ìì¼ë©´, ì´ë¬í ì¢ ë¥ì ìì¤í ì ë³´ìì±ì ëª ê°ì§ ì ìì ë¶ì¶©ë¶í ê²ì¼ë¡ ë³´ì¬ì§ ì ìë¤. 첫째ë¡, ì´ë¬í ìì¤í ì ë¶ë°°ë ë°ì´í° ì§í© ì ì²´ê° ê°ê°ì ìëë ìë ¹ìì ëíì¬ ë³ëë¡ ì¬ìí¸íë ê²ì íìë¡ íë¤ë ì ìì ë í¨ì¨ì ì´ë¤. ë째ë¡, ë¶ë°°ìë ë²ì© íë¡ì¸ììì ì¸ì¦ëì§ ìì ë³µí¸ê° ë¶ê°ë¥íë¤ë ê²ì ë³´ì¥í íìê° ìë¤. ì 째ë¡, ê°ê°ì ê°ë³ ìì ì¥ì¹ë ì¼ë¶ ë¤ë¥¸ ìëí¬ì¸í¸ ì¥ì¹ìì ì½ê² ë³µì (ëë ë²ì© íë¡ì¸ììì ì뮬ë ì´í¸)ë ì ìë ì¼ë¶ ìì±ì ê°ì ¸ì¼ íë¤ë ì ìì ì ì¼í ê²ì´ì´ì¼ íë¤. ë§ì¼ ì기 ë§ì§ë§ 2ê°ì§ ì¡°ê±´ ì¤ì ì´ë íëê° ìë°°ëë©´, ì´ ìì¤í ì ê°ë³ì ì¼ë¡ ìí¸íë ë°ì´í° ë¿ë§ ìëë¼ ê·¸ ë°ì´í°ì ê´ë ¨ë ì¥ì¹ ì§ì í¤ ë ë¤ë¥¼ ë¨ìí ê°ë¡ì±(intercepting)ì¼ë¡ì¨ 공격ì ë°ê¸° ì½ë¤.If the original digital content can be separately encrypted for all intended recipients, and only the intended recipients can actually use the distributed digital content, then the security of the system can potentially be quite good. However, if many special conditions are not met, the security of this kind of system can be seen as insufficient in some respects. First, such a system is less efficient in that the entire distributed data set needs to be re-encrypted separately for each intended recipient. Second, the distributor needs to ensure that unauthorized decryption is not possible in a general purpose processor. Third, each individual receiving device must be unique in that it must have some attributes that cannot be easily replicated (or emulated in a general purpose processor) on some other endpoint device. If either of the last two conditions are violated, the system is susceptible to attack by simply intercepting both individually encrypted data as well as device-specific keys associated with that data.
ì¬ì¤, ì´ë¬í ìì¤í ì ë³´ìì±ì ê° ìì ì¥ì¹ì ì ì¼í ìì±(unique attribute)ì ë³´ìì±ì 기ì´ë¥¼ ëë ê²ì¼ë¡ ë³´ì¬ì§ ì ìë¤. ì´ ì ì¼í ìì±ì ì íì ì¼ë¡ ë¶ë°°ì ë° ì¸ì¦ë ìë ¹ììê²ë§ ê³µì§ë ë¹ë°í¤ë¥¼ ì´ì©íì¬ êµ¬íëë¤. ë¹ë¡, ìì¹ì ì¼ë¡, ì´ë¬í ì¢ ë¥ì ì ì ì ì í¨í ë³´ì ìì¤í ì´ ë ì ìì§ë§, ê° ìë ¹ìì ëíì¬ ìëì ëì§í¸ ì½í í¸ë¥¼ ë³ëë¡ ìí¸ííë íìì¡°ê±´ì ëë¶ë¶ì ì©ëììì ì¤ì 구íì ë¹ì¤ì©ì ì¼ë¡ ë§ë ë¤. ìµì´ì ëì§í¸ ì½í í¸ë¥¼ 1íë§ ìí¸ííê³ ëª¨ë ì ì¬ì ì¸ ì¸ì¦ë ë¹ì¬ììê² ëì¼íê² ë¶ë°°ëë ê²ì´ ë°ëì§íë¤ë©´, 문ì ì ì ë°ì´í° ìëì 문ì ë¡ ëëìê°ë¤. ì´ë¬í ì¢ ë¥ì 문ì ì ì ë°©ì¡ ìí¸í ë¶ì¼ìì ê³µì§ëì´ ìë¤.In fact, the security of such a system can be seen to be based on the security of the unique attribute of each receiving device. This unique attribute is typically implemented using a private key known only to the distributor and authorized recipient. Although, in principle, this kind of setup can be a valid security system, the requirement to separately encrypt the original digital content for each recipient makes the practical implementation impractical for most purposes. If it is desirable to encrypt the original digital content only once and distribute it equally to all potential authorized parties, the problem reverts to the problem of data concealment. This kind of problem is known in the field of broadcast encryption.
ê±°ì 모ë ì¢ ë¥ì ë¶ë°°í ë¹ë° ë°ì´í° ìì¤í ê³¼ ê´ë ¨ë 기본ì ì¸ ë¬¸ì ì ë¤ ì¤ì íëë, ëë¶ë¶ì ê²½ì°ì, ë³´ì ìì¤í ì ë³ëì ìí°í°ë¤ ì¬ì´ìì ì´ë¦¬ì ë¦¬ë¡ í르ë 모ë ë©ìì§ ë° ë°ì´í°ê° ì¼ë°ì ì¼ë¡ ê°ë°© ìíë¡ ì ì¡ëê³ ë°ë¼ì ëì²ì(eavesdropper)ì ìí´ í¬ì°©ë ì ìë¤ë ê²ì´ë¤. ë°ë¼ì, ê·¸ë¬í ìì¤í ì ê°ë³ ì»´í¬ëí¸ ì¬ì´ìì ì ì¡ëë ììì ë©ìì§ ë° ë°ì´í°ë ì¸ì¦ëì§ ìì ë¹ì¬ìì ìí´ ê°ë¡ì±ë ê²ì¼ë¡ë¶í° ë³´í¸í기 ìí´ ìí¸íëì´ì¼ íë¤. ì´ë¬í ìì¤í ìì ê³ ë ¤í´ì¼ í ë¤ë¥¸ íëì 문ì ì ì ììì ì´ë¬í ë¹ë° ë°ì´í° ì ì¡ìì ì ì¡ì ë¿ë§ ìëë¼ ìì ì ë ë¤ì ì ìì ê²ì¦íë ê²ì´ë¤. ë ë¹ì¬ìê° ìë¡ ìì§ ëª»íë ê²½ì°ì, ì íì ì¼ë¡ ìí¸ ì 뢰ëë ë§¤ê° ì ëµì´ ì¬ì©ëë¤.One of the basic problems associated with almost all types of distributed secret data systems is that in most cases, all messages and data flowing back and forth between separate entities in the security system are generally sent open and thus eavesdroppers can be captured by (eavesdropper). Thus, any messages and data transmitted between individual components of such a system must be encrypted to protect them from being intercepted by unauthorized parties. Another problem to consider in such a system is to verify the identity of both the sender as well as the receiver in any such secret data transmission. In cases where the two parties do not know each other, a mutually trusted intermediary strategy is typically used.
ê·¸ë¬ë, ë¹ë° ë°ì´í°ê° ê·¸ 목ì ì§ì ëë¬íë©´, ì·¨ê¸ëì´ì¼ í ëì¼íê² ì´ë ¤ì´ 문ì ì ì ì ì¶©ëì§ ìì ë°©ìì¼ë¡ ê·¸ ë¹ë° ë°ì´í°ë¥¼ ì´ë»ê² ìì íê² ì¬ì©í ê²ì¸ê°ì´ë¤. ì´ë¬í ìë°©ì± ì ì ë²í ìëí¬ì¸í¸ë§ì ë ì못ë ì ë³´ê° ì ê³µë¨ì¼ë¡ì¨ ì ì¶©ëë ë³´ìì±ì ê°ì§ ì ì기 ë문ì ì¼ë°ì ì¼ë¡ íìíë¤. ê·¸ëì, ë¶ë°°ì¤ì ì¸ì¦ëì§ ìì ë°ê²¬ì ëí ë³´í¸ ì¸ìë, ê°ëì ë¹ë° ë°ì´í°ê° ê·¸ ë¹ë° ë°ì´í°ì ëí´ ë¤ë¥¸ ì¸ì¦ëì§ ìì ì¬ì©ìì ìí´ ë°ê²¬ëë ê²ì¼ë¡ë¶í° ë³´í¸íë ê²ì´ ì구ëë¤.However, once the secret data reaches its destination, the equally difficult problem to be dealt with is how to safely use the secret data in an uncompromising manner. This precaution is generally necessary because even legitimate endpoints can be compromised by providing false information. Thus, in addition to protection against unauthorized discovery during distribution, it is sometimes required to protect secret data from being discovered by other unauthorized users for that secret data.
ì¼ ì¤ììì ìì´ì, ì´ë¬í ì구ëë ì ì´ë 구조ì ì¼ë¡ ìëë ë¹ë°í¤ ëë ì¤í ì ì ì¤ìê°ì¼ë¡ ë³µí¸ëì´ì¼ íë ìí¸í 목ì ì½ë ë¸ë¡ì ë¨ìí ìê° ìì¡´ì± ì¬ì©ì ì´ì©íì¬ êµ¬íë ì ìë¤. 첫ë²ì§¸ ê²½ì°ì, ì½ë ë¸ë¡ ì¤íì ì ì´ ë©ì¹´ëì¦ì ìì íê² í¬ëª í ì ìê³ , ì´ê²ì ì¤í ìëê° ìµìë¡ ìí¥ì ë°ìì¼ íë¤ë ê²ì ì미íë¤. íìì ê²½ì°ì, ëì ëìì ì½ë ë¸ë¡ì ì¤í ì ì ë³µí¸ëì´ ë³µí¸ ì²ë¦¬ì ë기 ìê°ì 기ì¸íë ëì ì±ë¥ ìì¤ì ë°ì ê°ë¥ì±ì´ ëë¤. ê·¸ë¬ë, ì´ íìì ê²½ì°ì, 목ì ì½ëë ë¶í´(disassembly)ë¡ë¶í° ë¹êµì ìì íê³ , ë°ë¼ì ìë¹(would-be) 공격ìì ìí´ íê´´ëê¸°ê° ì ì¬ì ì¼ë¡ ë ì´ë µë¤. ëì¤ì ì¬ê¸°ìì ì¤ëª íë ì¤ììë ê³ ëë¡ ìì í ìí¸í 목ì ì½ë ë°©ë²ì¼ë¡ë¶í° ë¹êµì ëì ì±ë¥ì´ì§ë§ ì¬ì í ë§¤ì° ìì íê³ ì íì ì¼ë¡ ì´ì©ê°ë¥í ë¹ë°í¤ ë°©ë²ê¹ì§ì 걸ì¹ë ê°ë¥í ì루ì ì í° ì°ìì²´ë¡ êµ¬íë ì ìë ìì¤í ë° ë°©ë²ì ê°ìíë¤.In one embodiment, this required control can be implemented using a structurally hidden secret key or a simple time dependent use of a cryptographic purpose code block that must be decrypted in real time before execution. In the first case, code block execution can be completely transparent to the control mechanism, which means that execution speed should be minimally affected. In the latter case, the block of code to be operated is likely to be decoded before execution and suffer simultaneous performance loss due to the latency of the decoding process. In this latter case, however, the object code is relatively safe from disassembly and is therefore potentially more difficult to be destroyed by a would-be attacker. Embodiments described later herein disclose systems and methods that can be implemented in large continuum of possible solutions ranging from highly secure cryptographic object code methods to relatively high performance but still very secure and optionally available secret key methods.
ì¼ ì¤ììì ìì´ì, ë¹ë°í¤ì ì¬ì©ìë¡ë¶í° ë¹ë°í¤ë¥¼ ìëíë ê²ì íë²ë ìí¤í ì³ ë©ëª¨ë¦¬ ì¤íì´ì¤ ë¶ê¸°(Harvard Architecture memory space bifurcation)ì ì ì¬í ë°©ë²ì¼ë¡ ë¬ì±ë ì ìë¤. ê·¸ë¬ë, ì´ ì¤ìììì, ë¹ë°í¤ê° ìí¸í/ë³µí¸ ê³ì°ìì ì¬ì©ë ì ìì§ë§ ì¤ì ë¡ë íë¡ì¸ìì ìí´ ì§ì íë ëì§ ìë ì°¨ì´ì ì´ ìë¤. ì´ë¬í ì°¨ì´ë íëì¨ì´ì ì¤ê³ìì ê³ ì ë, íëì¨ì´ë¡ 구íëê±°ë ìíí¸ì¨ì´ 매í¬ë¡(ë§ì´í¬ë¡ ì½ëë¼ê³ ë ìë ¤ì ¸ ìì)를 미리 ê²°ì í ê²ì ëí ìí¸í/ë³µí¸ ëìì ì íí¨ì¼ë¡ì¨ ìíë ì ìë¤. ì를 ë¤ë©´, íëì¨ì´ ë¹ë°í¤ê° ìì ì½ëì ìí´ ì¬ì©ëë ê²½ì°, ë¹ë°í¤ê° íë¡ì¸ìì ìí´ ì§ì íë ë ì ìë¤ íëë¼ë ë¹ë°í¤ë ë¨ìí ê³ì°ì ìí´ ì½ê² ê²°ì ë ì ìë¤. ë°ë¼ì, ë¨ì§ ë³´ì ê´ë ¨ ê³ì°ì´ íëì¨ì´ ë¹ë°í¤ì ì¡ì¸ì¤íì¬ ì½ë ì¸ê·¸ë©í¸ë¥¼ ë ë²ì©ì´ì§ë§ ë ìì í ì½ë ë¸ë¡ì¼ë¡ë¶í° 구ë³íë ê²ì´ ì구ë ì ìë¤.In one embodiment, concealing the secret key from the user of the secret key may be accomplished in a similar manner to the Harvard Architecture memory space bifurcation. However, in this embodiment, the difference is that the secret key can be used in encryption / decryption calculations but is not actually read directly by the processor. This difference can be enforced by limiting encryption / decryption operations to hardware-implemented or predetermined software macros (also known as microcodes) that are fixed at the time of design of the hardware. For example, if a hardware secret key is used by any code, the secret key can be easily determined by simple calculation even if the secret key cannot be read directly by the processor. Thus, only security-related calculations may be required to access the hardware secret key to distinguish code segments from more general but less secure code blocks.
ì´ë¬í 구ë³ì í¹ì ì¤ìììì ì¬ê¸°ìì ì¤ëª í ê²ê³¼ ì¤ì§ì ì¼ë¡ ì ì¬í ì í¨í ë°©ë²ì ì´ì©íì¬ ë¬ì±ë ì ìë¤. ììì ì¤ëª í ì ì ëì§í¸ ìëª ë°©ë²ì ì¤ììê° íëì¨ì´ ë¹ë°í¤ì ì¡ì¸ì¤ ê°ë¥ì±ì ê²°ì í기 ìí´ ì¬ì©ë ê²½ì° ëª©í íë¡ì¸ìê° ë³´ì ê´ë ¨ ê³ì°(ì¦, 목í íë¡ì¸ìê° "ë³´ì ì¤í" 모ëìì ëìí ë ìííë ê³ì°) ë° ë³´ìëì§ ìì ê³ì°ì ì¤ííëì§ë¥¼ ì½ê³ ì 뢰ì±ìê² ê²°ì í ì ìë¤. ëí, ììì ì¸ê¸í ê²ê³¼ ì¤ì§ì ì¼ë¡ ì ì¬í íê·ì ë°©ë²ì ì´ì©íì¬ ìµì¢ ê³ì°ì´ ìë£ëê³ ìì í ëì½ëë ê²°ê³¼ê° ë³´ê³ ë ëê¹ì§ 복구ë¡ë¶í° ì¨ê²¨ì§ ììì ì¤ê° í¤ ê²°ê³¼ë¥¼ ì ì§í ì ìë¤. ë°ë¼ì, ì¬ê¸°ìì ì¤ëª í ì¤ììë¤ì ëì¼í ë¹í¸ì¤í¸ë¦¼ì ìì±í기 ìí´ ì¬ì©ë ë¹ë° ê¸ë¡ë² í¤ë¥¼ ë ¸ì¶ìí¤ì§ ìê³ ìí¸í ëì§í¸ ë¹í¸ì¤í¸ë¦¼ì ëì½ëíë ë¥ë ¥ì´ ìë¤.This distinction can be achieved using a validation method substantially similar to that described herein in certain embodiments. When the embodiment of the adaptive digital signature method described above is used to determine the accessibility of the hardware secret key, the target processor does not have security-related calculations (ie, the calculations performed when the target processor operates in "secure execution" mode) and is not secured. You can easily and reliably decide whether or not to run uncomputed calculations. In addition, a regression method substantially similar to that mentioned above can be used to keep any intermediate key results hidden from recovery until the final calculation is completed and the fully decoded result is reported. Thus, the embodiments described herein have the ability to decode the encrypted digital bitstream without exposing the secret global key used to generate the same bitstream.
ì½ë ì¤í ì ì´Code execution control
주ì´ì§ íë¡ì¸ììì í¹ì ì½ë ì¸ê·¸ë©í¸ê° ìì íê² ì¤íëë ê²ì ë³´ì¥íë ë°©ë²ì ìë ëì íëê² ì°êµ¬ëì´ ìë¤. ë³´ì ì½ë ì¤í ë³´í¸ë¥¼ ìì±í기 ìí ì¼ë¶ ì´ê¸°ì ìëë "í¹ê¶(privileged)" ëª ë ¹ì´ ì§í©ì í립í기 ìí´ íë¡ì¸ì 구조를 ë³ê²½íë ê²ì í¬í¨íìë¤. ì´ í¹ê¶ ëª ë ¹ì´ë íë¡ì¸ìê° "ìí¼ë°ì´ì (supervisor)" ëë "커ë¬(kernel)" 모ëë¼ê³ ìë ¤ì ¸ ìë í¹ì 모ëìì ëìí ëìë§ ì기 í¹ê¶ ëª ë ¹ì´ê° ì¤íë ì ìëë¡ êµ¬ì¡°ë¥¼ ì¤ê³í¨ì¼ë¡ì¨ ìì íê² ëìë¤. ì´ë¬í ì¢ ë¥ì íë¡ì¸ì 구조ì ë¶ê¸°ë íë¡ì¸ì ì¼ë°ì±ì ì ì¬ì ìì¤ ë° ì ì¬ì ì±ë¥ ê°í´ë¥¼ í¬í¨í ë§ì ë¨ì ì´ ìë¤. ì´ë¬í ë¨ì ì¸ìë, ì기 ë³´í¸ ìë¨ì íë¡ì¸ìê° ìí¼ë°ì´ì 모ëìì ì¤ííë ëì ì기ì¹ìì ì¤í ê²½ë¡ì ìì ì ì·¨íë ë°©ìì¼ë¡ íì¤ ìì¤í 루í´ì ëí í¹ì ì¤ê³ë ìíí¸ì¨ì´ ì½ì ì¬ì©í¨ì¼ë¡ì¨ ê°ë ì°íë ì ìë¤. ì´ë¬í í¹ì ì¤ê³ë ë©ì¨ì´ 공격ì ìë¡ë ìì "ì¤í ì¤ë²íë¡ì°", "ì¤í ì¤ë²ë°" ë° "ì½ë 주ì " ê³µê²©ì´ ìë¤.How to ensure that special code segments run safely on a given processor has been extensively studied for many years. Some early attempts to create secure code execution protection included modifying the processor structure to establish a "privileged" instruction set. This privileged instruction has been secured by designing the architecture so that the privileged instruction can only be executed when the processor is operating in a special mode known as "supervisor" or "kernel" mode. Branching of this kind of processor architecture has many disadvantages, including potential loss of processor generality and potential performance degradation. In addition to these drawbacks, the safeguards can sometimes be bypassed by using specially designed software calls to standard system routines in a way that takes advantage of unexpected execution paths while the processor is running in supervisor mode. Examples of such specially designed malware attacks are so-called "stack overflow", "stack overrun" and "code injection" attacks.
ì²´í¬ì¬ ê²ì¦ ëë ìê·ë©í¸ ë°ì´ì¦(argument bounds) ì²´í¹ì ê°ì¢ ìë¨ì ì£¼ë¡ ê¸°ì´í´ì ì기 ì¢ ë¥ì ìµì¤íë¡ì(exploit)ì ëí ë³´í¸ë¥¼ ëë ìëìì ë§ì ì ëµì´ ê³ ìëìë¤. ì´ë¬í ì¢ ë¥ì ë³´í¸ ìë¨ìë ë¶êµ¬íê³ , ë¤í ë°ì´ë¬ì¤(polymorphic viruses)(ì¦, ì기 ìì ì½ë)를 í¬í¨í ë¤ìí ì¹´ì´í°-ì¹´ì´í°-ë°©ì± ì´ ìì¶ëìë¤. ë°ì´ì¦-ì²´í¹ìë ë¶êµ¬íê³ íë¡ì¸ì ì½ì ì ì´ì©íë ë¤ë¥¸ ì ëµì ë°ì´ì¦ ì²´í¹ "ìí¼ë°ì´ì " ë£¨í´ ì체를 ë¨ìí ì°ííë ê²ì í¬í¨íë¤. ì´ë¬í ì¢ ë¥ì ìµì¤íë¡ìì ì°ííë ê°ì¢ ë³µì¬ ë³´í¸ ìì¤í ìì ì주 ê°ë ì¬ì©ëë¤. ì´ê²ì´ ë°íë¨ì¼ë¡ì¨, ìí¼ë°ì´ì 루í´ì ê°ííë ì ëµì ì»´í¨í° ë³´ì ì¸ê³ìì ì ì¼í ê²ì´ ìëê³ ì í ìë¡ì´ ê°ë ì´ ìëë¤. ì¬ì¤, ì´ ì íí 문ì ë ë¤ìí ì í리ì¼ì´ì ìì ì ì¬ì²´(analog)를 ê°ì§ë©° íë¼í ìì ê¹ì§ ê·¸ì ì ì "ë 리í¼ë¸ë¦(The Republic)"ìì 참조ëìë¤. 기본ì ì¸ ë¬¸ì ì ì ììì 주ì´ì§ ìì¤í ìì ê¸ë¡ë² ìí¼ë°ì´ì ì ì¼ë¶ ì¢ ë¥ë¥¼ íì ìë³í ì ìê³ , ì´ê²ì¼ë¡ ê¶ê·¹ì ì¸ ë³´ì ëë 구조ì ìì ì±ì´ ì 뢰ëë¤ë ê²ì´ë¤. íìíë 모ë ë³´ì 기ë¥ì ëí ì´ë¬í ì´ì²´ì í ëì ê°ë ì ë³´ì ìì¤í ì ê´í íëì ì°êµ¬ìì "ì 뢰ì ê·¼ê°(Root-of-Trust)"ì´ë¼ê³ ìë ¤ì ¸ ìë¤.Many strategies have been devised in an attempt to help protect against this kind of exploit based primarily on various means of checksum verification or argument bounds checking. Despite this kind of protection, a variety of counter-counter-measures have been devised, including polymorphic viruses (ie, self-modifying code). Despite bounce-checking, another strategy that exploits processor weakness involves simply bypassing the bounce checking "supervisor" routine itself. This kind of exploit is very often used in bypassing copy protection systems. As it is announced, the strategy of stealing supervisor routines is not unique in the world of computer security and is not a new concept at all. In fact, this exact problem has analogues in various applications and has been referenced in his book "The Republic" until Plato's time. The basic problem is that some kind of global supervisor can always be identified in any given system, and that the ultimate security or stability of the structure is trusted. This collective concept of all subsequent security functions is known as the "root-of-trust" in modern research on security systems.
ë ìµê·¼ìë íë¡ì¸ìê° ë³¸ë ì½ê¸°ë§ ëë ëª ë ¹ì´ë¥¼ ì¸ì¶íë ë©ëª¨ë¦¬ ì¸ê·¸ë©í¸ë¥¼ ì íí¨ì¼ë¡ì¨ ìí¼ë°ì´ì ë£¨í´ ê³µê²©ì ëí´ íë¡ì¸ì를 ë³´í¸íë ¤ë ì¼ë¶ ìëê° ììë¤(ì´ê²ì ìì W^X ëë "기ë¡-XOR-ì¤í" ë°©ë²ì í¬í¨íë¤). ë¤ë¥¸ ë²ì© ì»´í¨í°ì ë©ëª¨ë¦¬ ì¤íì´ì¤ë¥¼ ë°ì´í° ê¸°ë° ë° ì½ë ê¸°ë° íí°ì ì¼ë¡ ë¶í íë ê°ë ì ìì "íë²ë ìí¤í ì³"ì ë³íì²´ë¡ ë³´ì¬ì§ ì ìë¤. ì´ ë°©ë²ì ë³´í¸ ë©ì¹´ëì¦ê³¼ ê´ë ¨ë í¹ì ì ì±ë¥ íëí°ë¿ë§ ìëë¼ ë©ëª¨ë¦¬ íì©ììì ëì ì¦ê°ë¥¼ ê°ëë¤. ë§ì§ë§ì¼ë¡, ìµê·¼ìë ì´ë¬í ì¢ ë¥ì ë°©ì´ì¡°ì°¨ë ìì "ë³µê· ê¸°ë°(return-based)" íë¡ê·¸ëë° ìµì¤íë¡ìì ì¬ì©ì ìí´ ëë ë¨ìí ë©ëª¨ë¦¬ ì¨ë¦¬ì´ì± ìµì¤íë¡ìì ìí´ êµë¬í í¼í ì ìë ê²ì¼ë¡ ëí ë³´ì¬ì§ê³ , 2ê°ì ë³ëì ì¤í ì¤ë ëë ë¤ë¥¸ 모ëì ìë ëì¼í ë©ëª¨ë¦¬ ë¸ë¡(ì를 ë¤ë©´, íëë "ë°ì´í° 모ë"ì ìê³ ë¤ë¥¸ íëë "ì¤í 모ë"ì ìë ê²)ì 참조í ì ìë¤.More recently, there have been some attempts to protect the processor against supervisor routine attacks by limiting the memory segments from which the processor originally fetches only read instructions (this includes the so-called W ^ X or "write-XOR-execute" methods). The concept of dividing the memory space of other general-purpose computers into data-based and code-based partitions can be seen as a variant of the so-called "Harvard Architecture". This method has a simultaneous increase in memory utilization as well as certain performance penalties associated with the protection mechanism. Finally, it has also recently been shown that even this kind of defense can be circumvented by the use of so-called "return-based" programming exploits or by simple memory aliasing exploits, and two separate execution threads It may refer to the same memory block in mode (eg, one in "data mode" and the other in "execution mode").
íë¡ì¸ìì ì¤í ì¤ë ëê° ê°íëë ê²ì¼ë¡ë¶í° ë³´í¸íë ë¤ë¥¸ ì ìë ìë¨ì ìí¸í ì½ë ë¸ë¡ì ì¬ì©ì í¬í¨íë¤. ì´ ë°©ë²ìì, ì¤íëë ì½ë ì¸ê·¸ë©í¸ë 미리 ìí¸íëê³ , ë°ë¼ì íë¡ì¸ìì ë¡ë©ë기 ì ìë íë í ì ìë¤(ìë§ë ë ì¤ìí ê²ì ë³ê²½í ì ìë¤ë ê²ì´ë¤). ì´ ë°©ë²ì ëí ëª ê°ì§ ì½ì ì ê°ëë¤. 첫째ë¡, ì½ë ì¸ê·¸ë©í¸ ìì²´ë ë³´í¸ë ì ìì§ë§, ìê·ë©í¸ìë ë°ëì ëì¼ ìì¤ì ë³´ìì´ ì ê³µëì§ ìëë¤. ë°ë¼ì, ìì í ì ë²íê³ ìì í ì½ë ì¸ê·¸ë©í¸ë ê·¸ë¼ìë ë¶êµ¬íê³ ì½ë ì¸ê·¸ë©í¸ê° ìê¸°ì¹ ìì ííë¡ íëíê² í ì ìë í¸ì¶ 루í´ì¼ë¡ë¶í° ê°ì§ ìê·ë©í¸ê° ì ê³µë ì ìë¤. ë째ë¡, ì¼ë¶ ê²½ì°ì, ì¤í ì¤ë ëë ì ì í ë³µê· ê¸°ë° íë¡ê·¸ëë° ê³µê²©ì ëíì¬ ë°ëì ë³´í¸ëì§ ìëë¤. ëí, íë¡ì¸ì ë²ì¤ê° 공격ììê² ì½ê² ê´ì°°ë ì ìë ê²½ì°ìë ì¬ë°ë¥´ê² ì¤íë(ìí¸íëìë¤ íëë¼ë) ì½ë ì¸ê·¸ë©í¸ì ì¥ê¸° ê´ì°° ë° ì¤íê°ë¥ ì¤í¸ë¦¼ì 주ì ë ë¶ì ì íê² ìí¸íë ì½ë ì¸ê·¸ë©í¸ì ìí´ ì¼ê¸°ëë ì¤í ì¤ë¥ì ê´ì°°ì´ ìì ë ì¬ì 공격(dictionary attack) ë°©ë²ì ì´ì©íì¬ ìí¸í í¤ì ëì¤ì ëì¸ ì ìë¤. ë§ì§ë§ì¼ë¡, ì´ë¬í ìì¤í ììì íë¡ì¸ì ì±ë¥ì ì ì¬íì§ë§ ìí¸íëì§ ìì ì½ë ìì¤í ì íµí´ ë°ëì ì¬ê°íê² ê°í´ëë¤. ì´ë¬í ì±ë¥ íëí°ë ë§ì ì´ìì ìí´ ì¼ê¸°ë ì ìëë°, ê·¸ ì¤ ê°ì¥ ì¤ìí ê²ì ì½ë ë¸ë¡ì´ ë©ëª¨ë¦¬ë¡ë¶í° ì¸ì¶ë ëì ì½ë ë¸ë¡ì´ ì¤í ê°ë¥ì¼ë¡ ë ë ì¬ì´ì ì½ë ë¸ë¡ì íìì ì¸ ë³µí¸ì ìí´ ì´ëëë ë기ìê°(latency)ì´ë¤. ë¹ë¡ ëë¶ë¶ì íë íë¡ì¸ìê° (ê°ì¢ ìë¨ì ìí´) ë³ë ¬ë¡ ì¤íë ì ìë ëª ë ¹ì´ì ì를 ì¦ê°ìí¤ê¸° ìí´ íì´íë¼ì¸ ë©ì¹´ëì¦ì ì´ì©íì§ë§, ìí¸í ì½ëì ë¸ë¡ì 먼ì ë³µí¸ë기 ì ì íì´íë¼ì¸ì ì½ì´ë¤ì¼ ì ìë¤. ì½ëê° ë¹ë²íê² ë¶ê¸°íë ê²½ì°ìë ë³µí¸ ì²ë¦¬ê° íëì¨ì´ ì¡°ë ¥ ë³µí¸ë¥¼ ì´ì©íë ê²½ì°ìë ì½ë ì¤í ìì²´ë³´ë¤ í¨ì¬ ë ì¤ë 걸릴 ì ìë¤.Another proposed means of protecting the processor's execution thread from being robbed includes the use of cryptographic code blocks. In this way, the code segment that is executed is pre-encrypted, and therefore cannot be read (perhaps more importantly, it cannot be read) before it is loaded into the processor. This method also has some drawbacks. First, the code segment itself can be protected, but the arguments do not necessarily provide the same level of security. Thus, fully legitimate and secure code segments may nevertheless be provided with bogus arguments from a calling routine that can cause the code segment to behave in unexpected ways. Second, in some cases, execution threads are not necessarily protected against the return based programming attacks described above. Also, if the processor bus can be easily observed by an attacker, long-term observation of correctly executed code segments (even if encrypted) and execution errors caused by improperly encrypted code segments injected into the executable stream are fixed. A dictionary attack method can be used to help leak encryption keys. Finally, processor performance in such systems is necessarily severely degraded through similar but unencrypted code systems. This performance penalty can be caused by a number of issues, the most important of which is the latency caused by the required decoding of the code block between when it is fetched from memory and when the code block becomes executable. )to be. Although most modern processors use pipeline mechanisms to increase the number of instructions that can be executed in parallel (by various means), blocks of cryptographic code cannot be read into the pipeline before they are first decoded. If the code branches frequently, the decoding process may take much longer than the code execution itself, even if hardware assisted decoding is used.
본 ë°ëª ì ë°ë¥¸ ìì¤í ë° ë°©ë²ì ì¤ììë ë¹ìí¸í ì½ë ë¸ë¡ì íì©ì ê°ë¥íê² íê³ , ê·¸ëì ìí¸í ì¤íê°ë¥ê³¼ ê´ë ¨ë ì±ë¥ íëí°ê° ë ì ì ì´ìë¡ ëë¤. ê·¸ë¬ë, ì¤í í¨ì¨ì´ ì¤ì§ì ì¸ ê´ì¬ì¬ê° ìë ê²½ì°ìë ìí¸í ì½ë ë¸ë¡ì´ ì¬ì í íì©ë ì ìë¤. ë°ë¼ì, ì¬ê¸°ìì ì¤ëª íë ì¤ììë í문 ì¤íê°ë¥ì í¨ì¨ë¿ë§ ìëë¼ ëì¼íê±°ë ì ì¬í ë°©ë² ë° ìì¤í ì íì©í ìí¸í ì½ë ì¸ê·¸ë©í¸ì ì¶ê°ë ë³´ìì±ì ë ë¤ ê°ì§ ì ìë¤. ëí, ì¬ê¸°ìì ì¤ëª íë ë³´ì ìì¤í ë° ë°©ë²ì ì¤ììë ìë¡ ë°ê²¬ë ë³´ì ê´ì¬ì¬ë¥¼ ì·¨ê¸í기 ìí´ì ë° ì¤ììê° ì´ë¯¸ ì ê°ë íì ìë¡ì´ 기ë¥ì ì¶ê°í기 ìí´ì ììì¹(in-situ)ë¡ ê°±ì ë ì ìë¤.Embodiments of the system and method according to the present invention enable the utilization of non-encrypted code blocks, which results in a lesser performance penalty associated with cryptographic feasibility. However, if execution efficiency is not a real concern, encryption code blocks may still be utilized. Thus, embodiments described herein may have both the efficiency of plain text executables as well as the added security of encrypted code segments utilizing the same or similar methods and systems. In addition, embodiments of the security systems and methods described herein may be updated in-situ to address newly discovered security concerns and to add new functionality after embodiments have already been deployed.
본 ë°ëª ì ì¤ììë ìí¸ì í´ì± í¨ìì ìí ì¤í ì ì "ë³´ì ì½ë ì¸ê·¸ë©í¸"ê° ì í¨íëë ê²ì ë³´ì¥í¨ì¼ë¡ì¨ ì기 ì¥ì ì íëí ì ìë¤. ì´ ì í¨íë ì를 ë¤ë©´ ë³´ì ì½ë ì¸ê·¸ë©í¸ì©ì¼ë¡ ìì±ë ë©ìì§ ë¤ì´ì ì¤í¸ ëë ëì§í¸ ìëª ì ì¸ì¦í¨ì¼ë¡ì¨ ë¬ì±ë ì ìë¤. ì´ë¬í ìí¸ì í´ì± í¨ìì íê°ê° ììì ì¤ëª í í©ì±í¤ 구조를 ì´ì©í ê²°ê³¼ì ì¸ ë©ìì§ ë¤ì´ì ì¤í¸ì ìí¸íì í¨ê» ë°ìíì¬ ëì§í¸ ìëª ì íì±íë ê²½ì°ìë í¹ì ì½ë ë¸ë¡ì´ í¹ì 목í ì ë ëë íë¡ì¸ìì ê´ë ¨íì¬ ì ì¼íê² ë ì ìë¤. ì´ íë¡ì¸ì¤ë í¹ì ì¤ìììì ë³´ì ì½ë ë¸ë¡ì´ í©ì±í¤ ê¸°ë° ëì§í¸ ìëª ì ì´ì©íì¬ í¹ì 목í ì ëì ìí¸ì ì¼ë¡ ê²°í©ë ì ìë¤ë ì¬ì¤ì 기ì´íì¬, "ë³´ì ì½ë ê²°í©"ì´ë¼ê³ ì¬ê¸°ìì ì¸ì©ëë¤.Embodiments of the present invention can achieve this advantage by ensuring that the "secure code segment" is validated before execution by a cryptographic hashing function. This validation can be accomplished, for example, by authenticating the message digest or digital signature generated for the secure code segment. If such an evaluation of the cryptographic hashing occurs with the encryption of the resulting message digest using the composite key structure described above to form a digital signature, then a special code block may be unique with respect to a particular target unit or processor. This process is referred to herein as "secure code association" based on the fact that in certain embodiments a security code block can be cryptographically coupled to a particular target unit using a composite key based digital signature.
ë¹ë¡ ì´ë¬í í´ì± í¨ìì ì¤íì´ ë¦¬ìì¤ ìì´ ë ì ìì§ë§, ì´ ë°©ë²ì ì¥ì ì ë³´ì ì½ë ì¸ê·¸ë©í¸ê° ê·¸ ìí¸ì ì í¨í를 ìë£í기 ì ì ì¤í íì´íë¼ì¸ì ëì ë ì ìë¤ë ì ì´ë¤. ë°ë¼ì, í´ì± í¨ìë (í¬ê¸°ì ë¶ê¸° ì¤íê³¼ ì ì¬í ë°©ë²ì¼ë¡) ë³´ì ì½ë ì¸ê·¸ë©í¸ ìì²´ì ì¤íê³¼ ëëíê² íê°ë ì ìë¤. ì´ ì¤ìììì, ë³´ì ì½ë ì¸ê·¸ë©í¸ì ê²°ê³¼ë ê²°ê³¼ì ì¸ ë©ìì§ ë¤ì´ì ì¤í¸ê° ì§ì í ê²ì¼ë¡ íì ë ê²½ì°ìë§ íì©ë ì ìë¤. ê·¸ë¬ë, ë¤ë¥¸ ì¤ìììì, ë³´ì ì½ë ì¸ê·¸ë©í¸ì ê²°ê³¼ê° íì ëììì íì©ë ì ìì§ë§, ê·¸ ê²°ê³¼ë¤ì íë¡ì¸ìê° ë³´ì ì¤í 모ëìì ëìíëì§ ìëì§ì ë°ë¼ì ë¬ë¼ì§ ì ìë¤. ì´ ì¤ììë ëì§í¸ ìëª ì ì¬ì©ì ìí´ í©ì±í¤ì íê°ì ëíì¬ ììì ì¤ëª í íë¡ì¸ì¤ì ì¤ì§ì ì¼ë¡ ì ì¬íê³ , ë 15ì ëìí ê²ê³¼ ê°ì íëì¨ì´ë¥¼ ì¬ì©í¨ì¼ë¡ì¨ ìì±ë ì ìë¤.Although the execution of such a hashing function can be done without resources, the advantage of this method is that the security code segment can be introduced into the execution pipeline before completing its cryptographic validation. Thus, the hashing function can be evaluated alongside the execution of the secure code segment itself (in a similar way to speculative branch execution). In this embodiment, the result of the security code segment can only be utilized if the resulting message digest is determined to be true. However, in other embodiments, the result of the secure code segment may be utilized in subsequent operations, but the results may vary depending on whether or not the processor is operating in secure execution mode. This embodiment is substantially similar to the process described above for the evaluation of a composite key for the use of a digital signature, and can be generated by using hardware as shown in FIG.
ê·¸ë¬ë, ìí¸ì ì í¨íì ì¬ì©ì ìí¸í ì½ë ì¸ê·¸ë©í¸ì ì¬ì©ì ë°°ì íì§ ìëë¤. ì¬ì¤, ì¬ë°ë¥´ê² ë³µí¸ë ì½ë(ìì ì íì ìí¸í를 ì ì©í기 ì ì ìµì´ ìíì ë³´ì ì½ë ì¸ê·¸ë©í¸)ì ë©ìì§ ë¤ì´ì ì¤í¸ ëë ëì§í¸ ìëª ì ì¬ì©ì ì¶ê°ì ì¸ ìì¤ì ë³´í¸ë¥¼ ì ê³µí ì ìë¤. ì´ê²ì ì¥ëì 공격ìê° ëª¨ì¡° ë©ìì§ ë¤ì´ì ì¤í¸ë¥¼ ìì±í기 ìí´ ì¬ë°ë¥´ê² ë³µí¸ë ì½ë ë¸ë¡ì ëí ì íì ì§ì(a-priori knowledge)ì ê°ê³ ìì´ì¼ íë¤ë ì¬ì¤ì 기ì¸íë¤. ë°ë¼ì, ì½ë ì¸ê·¸ë©í¸ ì í¨íë¿ë§ ìëë¼ ìí¸í ì½ë ë©ìëê° ëìì ì¬ì©ë ì ìë¤ë©´, 공격ì ëí ë ëì ê°í¨(robustness)ì ì¤íí ì ìë¤.However, the use of cryptographic validation does not preclude the use of cryptographic code segments. In fact, the use of message digests or digital signatures of correctly decrypted codes (secure code segments in their initial state before applying any type of encryption) can provide an additional level of protection. This is due to the fact that future attackers must have a-priori knowledge of correctly decoded code blocks in order to generate a fake message digest. Thus, if encryption code methods as well as code segment validation can be used at the same time, higher robustness to attack can be realized.
ê·¸ë¬ë, ìì ì¤íë ì ìë ê²ì²ë¼, ì기 í´ì± ì í¨í를 ì°íí ì ìë ëª ê°ì§ ë°©ë²ì´ ìê³ , ê·¸ ì¤ ê°ì¥ ê°ë¨í ê²ì í´ì± í¨ì ì체를 íê´´íë ê²ì´ë¤. ì´ ì ëµì´ í¹ì ì¤ììììë ê°ë¥íì§ ìë¤ íëë¼ë(ì를 ë¤ë©´, íëì¨ì´ í´ì± í¨ì를 íì©í¨ì¼ë¡ì¨), ì ì í ì í¨íë ë©ìì§ ë¤ì´ì ì¤í¸ì í¨ê» ì¬ê¸°(impostor) ì½ë ì¸ê·¸ë©í¸ë¥¼ ì ê³µí¨ì¼ë¡ì¨ ì기 ì¤ììì ë³´ìì±ì 공격íë ê²ì´ ì¬ì í ê°ë¥íë¤. ë§ì ë©ìì§ ë¤ì´ì ì¤í¸ê° ì¤ì ë¡ ìí¸íëì´ ëì§í¸ ìëª ì íì±í기 ë문ì, ì¸ê´ìì¼ë¡ ì´ ê³µê²© ì ëµì ì´ë ¤ìë³´ì¸ë¤. ê·¸ë¬ë, ëì§í¸ ìëª ë©ì¹´ëì¦ì¡°ì°¨ë ëì§í¸ ìëª ì ê³µê°í¤ ì¡°ì¬ ë¶ë¶ì ëììíê³ ê·¸ì ë°ë¼ì ì¬ê¸° ëì§í¸ ìëª ì ì¸ìì ì¸ ì í¨í를 ì ê³µí¨ì¼ë¡ì¨, ëë ëìì ì¼ë¡ ìëª ì í¨í ë£¨í´ ìì²´ì ì ìì ì¸ íê´´ì ìí´ ì ì¬ì ì¼ë¡ 공격ë°ì ì ìë¤.However, as can also be realized, there are several ways to bypass the hashing validation, the simplest of which is to destroy the hashing function itself. Although this strategy is not possible in certain embodiments (for example, by utilizing hardware hashing functions), it is still possible to attack the security of this embodiment by providing an impostor code segment with a properly validated message digest. It is possible. Apparently this attack strategy seems difficult because many message digests are actually encrypted to form digital signatures. However, even a digital signature mechanism can be potentially attacked by cheating the public key investigation portion of the digital signature and thus providing artificial validation of a fraudulent digital signature, or alternatively by malicious destruction of the signature validation routine itself.
ì´ë¬í ì íì ë³´ì ì½ë ì¸ê·¸ë©í¸ì ê´ë ¨ë ë©ìì§ ë¤ì´ì ì¤í¸ë¥¼ ì´ì¤ ìí¸í, ì¦ íë²ì (ì´ì²´ì ì¸) "창조ì"ì ë¹ë°í¤ë¥¼ ì´ì©í´ì ìí¸ííê³ ê·¸ ë¤ìì ìëí¬ì¸í¸ "ì ì¡°ì"(ì¤ì ë¡ ìµì´ì 칩 ì ì¡°ìë ìëì§ë¼ë 2ì°¨ ë 벨 ë¶ë°°ì, ìì¤í íµí©ì, ìë¹ì¤ ê³µê¸ì ë±ì¼ ì ìì) ë° ë¹í´ ì½ë ì¸ê·¸ë©í¸ê° ì¤íëë í¹ì ìëí¬ì¸í¸ ì¥ì¹ìë§ ê³µì§ë ë¹ë°í¤ë¥¼ ì´ì©íì¬ ë¤ì ìí¸íí¨ì¼ë¡ì¨, ì¬ê¸°ìì ì¤ëª íë ìì¤í ë° ë°©ë²ì ì¤ììë¡ ê·¹ë³µëë¤. ì´ ì¤ììì ì¥ì ì ì기 ëì§í¸ ìëª ì´ ì ì¬í ìëí¬ì¸í¸ ì¥ì¹ë¤ ê°ì ê³µì ëë¤ íëë¼ë ìì´í 목í ì ëì ë¹ë°í¤ê° ìë¡ ë¤ë¥´ê¸° ë문ì ìëë 목í ì ëìì ì¬ë°ë¥´ê² 기ë¥íë¤ë ì ì´ë¤. ë°ë¼ì, ììì ì´ë¬í ëì§í¸ ìëª ì ëª ë¬¸ì¼ë¡ ì ì¡ ë° ì ì¥ë ì ìë¤.This restriction double-encrypts the message digest associated with the security code segment, that is, once encrypted with the (general) "creator" private key, and then the endpoint "manufacturer" (which is not actually the first chip manufacturer, at the second level). (Which may be distributors, system integrators, service providers, etc.) and the private key known only to the particular endpoint device on which the code segment is executed, thereby overcoming the embodiments of the systems and methods described herein. The advantage of this embodiment is that even though the digital signature is shared between similar endpoint devices, it functions correctly at the intended target unit because the secret keys of the different target units are different. Thus, any such digital signature may be transmitted and stored in the clear.
ë¹ë°ì ì´ì¤ì¼ë¡ ìí¸ííë 기ì ì ì¤ìì(ì´ê²ì ìì "층ì ì´ë£¬ í¤(layered key)" ìì¤í ììë¿ë§ ìëë¼ íê·í ë³´ì ìì¤í ìì ì¬ì©ë ì ìë¤)ë ë§ì¼ ì¬ë°ë¥´ê² ì¬ì©ëì§ ìë ê²½ì° í¹ì ì ì´ì를 ê°ì§ ì ìë¤. 첫째ë¡, ë§ì¼ ì기 층ì ì´ë£¬ ìí¸í ì²ë¦¬ì ì¤ê° ê²°ê³¼ê° ì¸í°ì í¸ëë©´, ì´ ì¤ê°í¤ë ììì ëë 모ë ìì¤í ìì ë ëì ìì¤ì ë³´ìì ì°ííëë¡ ì¬ì©ë ì ìë¤. ëí, 층ì ì´ë£¬ ìì¤í ì "ìµì 층"ìì ì기 ì¤ê° ê²°ê³¼ë ì¤ì ë¡ "ê¸ë¡ë²" ë³µí¸í¤ì´ê³ , ì´ ë³µí¸í¤ë, ë§ì¼ ë°ê²¬ëë©´, 모ë ì¤ì§ì ì¼ë¡ ì ì¬í ìëí¬ì¸í¸ ì¥ì¹ì©ì ì ì²´ ë³´ì ìì¤í ì ì°ííëë¡ ì¬ì©ë ì ìë¤. ì´ë¬í ì¢ ë¥ì "ì¸í°ì í¸" 공격ì ë³µí¸ ì²ë¦¬ì¤ì ììì ë©ëª¨ë¦¬ í¸ëìì ì ë¨ìí 주ìíê³ ê·¸ ë¤ìì ì ì¬ì ì¸ ê¸ë¡ë² ë³µí¸í¤ì 모ë ë©ëª¨ë¦¬ ìì¹ë¥¼ ìíí¨ì¼ë¡ì¨ 1í ì´ì ë°ìëë¤. ë³µí¸ ì²ë¦¬ ì¤ì 모ë ë©ëª¨ë¦¬ ì¡ì¸ì¤ë¥¼ 주ìíë ì²ë¦¬ë 먼ì ê·ì°®ì ë³´ì¼ ì ìì§ë§, ì´ê²ì ë¹ë°í¤ì ê°ì¹ì ëí 무차ë³ì ì¶ì¸¡(brute-force guessing)ë³´ë¤ ê±°ì íì¤í ë í¨ì¨ì ì¸ ê³µê²© ì ëµì´ë¤. 층ì ì´ë£¬ í¤ ìì¤í ì ì 2ì ì ì¬ì ì½ì ì ì¬ì ì¡ ê³µê²©(replay attack)ì ë³íì²´ì ìí´ ì´ì©ë ì ìë¤. 층ì ì´ë£¬ ìì¤í ì ë³´ìì´ ì ì¶©ëê³ ê·¸ í¤ê° ê°±ì ëì´ì¼ íë ê²½ì°ì, ì¤ëë (ì ì¶©ë) í¤ë ë§ì¼ ìµì´ ìì¤í ì´ ê·¸ ì´ì ìíë¡ ë¤ì 리ì¸í¸ëê±°ë ê·¸ ì´ì ìíê° ì¬ê¸° ì ëì ìí´ ë³µì (clone)ëìì¼ë©´ ì¬ì í ì¬ì©ë ì ìë¤.Embodiments of the technique of double encrypting secrets (which can be used in so-called "layered key" systems as well as in recursive security systems) can have certain issues if not used correctly. First, if an intermediate result of the layered encryption process is intercepted, this intermediate key can be used to bypass the higher level of security in any or all systems. Furthermore, the intermediate result in the "lowest layer" of the layered system is actually a "global" decryption key, which, if found, can be used to bypass the entire security system for all substantially similar endpoint devices. . This kind of "intercept" attack occurs one or more times by simply watching for any memory transaction during the decryption process and then examining all the memory locations of the potential global decryption key. The process of watching for all memory accesses during the decryption process may seem cumbersome at first, but it is almost certainly a more efficient attack strategy than brute-force guessing of the value of the secret key. A second potential weakness of the layered key system can be exploited by a variant of the replay attack. In cases where the security of a layered system is compromised and the key needs to be updated, the old (negotiated) key may be reset if the original system was reset back to its previous state or if the previous state was cloned by a fraud unit. Can still be used.
ì´ë¬í ì½ì ì "층ì ì´ë£¬ í¤" 구조ì ëì¡°ì ì¼ë¡ ì°ë¦¬ê° "í©ì±í¤"ë¼ê³ ë¶ë¥´ë ê²ì ì´ì©íì¬ ì¬ê¸°ìì ì¤ëª íë ì¤ìììì ì·¨ê¸ë ì ìë¤. í©ì±í¤ì 층ì ì´ë£¬ í¤ì ì¤ìí ì°¨ì´ì ì¤ì íëë ì ìì 모ë ì¸ê·¸ë©í¸ê° ë¨ì¼ì ëª¨ë ¸ë¦¬ì í¨ì¤(monolithic pass)ë¡ íê°ë ì ìë¤ë ì ì´ë¤. ëì¡°ì ì¼ë¡, 층ì ì´ë£¬ í¤ ìì¤í ììë "ìµì¸ì¸¡" 층 í¤ê° 먼ì íê°ëê³ ê·¸ ë¤ìì ìµë´ì¸¡ í¤(ì´ê²ì ë¤ì 층 í¤ë¥¼ ìì±í기 ìí ìê·ë©í¸ë¡ì ì¬ì©ëë ë±ì¼ë¡ ì ì²´ í¤ ì¤íì´ ê´íµë ëê¹ì§ ê³ìëë¤)ë¡ ë³µê·íë¤. ì´ ìì¤í ê³¼ ê´ë ¨ë 문ì ì ì íì ë 벨ì í¤ê° ì¸í°ì í¸ëê³ ëì¤ì ì¬ì©ëì´ ìµì¸ì¸¡ ë³´ì층ì í¨ê³¼ì ì¼ë¡ ì°íí ì ìë¤ë ì ì´ë¤. ë°ë¼ì, ì´ë¬í 층ì ì´ë£¬ í¤ ì¤ììììë ê°ì¥ ì¤ìí(ì´ ê²½ì°ìë ê¸ë¡ë²) í¤ê° ì¬ì¬ìì ë§ì§ë§ì¼ë¡ ìì± ë° ì¬ì©ëë ê²ì´ê³ , ì´ë ììì ì¶ê°ì ì¸(ëë ë ìµê·¼ì) ë³´ì층ì ìì í ìë¤.This weakness can be handled in the embodiments described herein using what we call "synthetic keys" in contrast to the "layered key" structure. One important difference between layered keys and composite keys is that all segments of the former can be evaluated in a single monolithic pass. In contrast, in a layered key system, the "outermost" layer key is evaluated first and then continues until the entire key stack is penetrated, such as the innermost key (which is used as an argument to generate the next layer key). Return to the The problem with this system is that low-level keys can be intercepted and later used to effectively bypass the outermost security layer. Thus, in this layered key embodiment, the most important (in this case global) key is the last generated and used in the chain, with no additional (or more recent) security layer completely.
ì´ ë문ì, ì´ë¬í ë³´ì ì¤íì ê´íµíë ë ê°ë ¥í ë°©ë²ì ì¤íì´ "ì¸ì¬ì´ë ìì(inside out)"ì¼ë¡ë¶í° ê´íµëëë¡ íì©ë ì ìë¤. ì´ê²ì ë³´ì ì¬ì¬ì ëí ê°ì¥ ìµê·¼ì ì¶ê°ê° ìíì¤ìì ìµì´ë¡ ì¤íë ê²ì´ì§ë§ ì¬ì¤ì ë³´ì ìì¤í ì ìµë´ì¸¡ 층ì ìì¹ë ê²ìì ì미íë¤. ë°ë¼ì, ì¤ììë ì기 "ì¸ì¬ì´ë ìì" ì¤í ììí(ordering)를 ìííëë¡ ì¬ì©ë ì ìë¤. ì½ë ì¤í ê´íµì ì´ë¬í í¹ì ììíë ë¨ìí ë°ë³µ ë°©ë²ì ì´ì©íì¬ ë¬ì±ë ì ìê³ , ì´ë ì½ë 루íë 먼ì íì¬ ë³´ì ìì¤ì íê°íê³ ê·¸ ë¤ìì ê·¸ì ë°ë¼ì ë¶ê¸°íë¤. ê·¸ë¬ë, ë°ë³µì ë°©ë²ì ìì´ì, ë³´ì ìì¤í ê´íµì ì¤ê° ê²°ê³¼ë ììì ì¤ëª í ê²ì²ë¼ 공격ìê° ì ë²í ë³´ì ìì¤í ê´íµìì ë¤ì íì ë 벨 í¤ê° ë ¸ì¶ë기를 ë¨ìí 기ë¤ë¦¬ê³ ê·¸ ì¸í°ì í¸í í¤ë¥¼ ìì¤í ì ê°ì§ "ì´ê¸°" ë²ì ì ë³µì í기 ìí´ ì¬ì©í기 ë문ì ì ì¬ì ì¼ë¡ ì°íë ì ìë¤. ë°ë¼ì, ìì¤í ë° ë°©ë²ì ì¤ììë ì´ë¬í "ì¸ì¬ì´ë ìì" ì¤í ììí를 ìíí ì ìì ë¿ë§ ìëë¼ ì¤ê° ê²°ê³¼ê° ì ì± ì½ë ëë ë¤ë¥¸ ì ìë ¤ì§ ë³´ì ìì¤í ìµì¤íë¡ìì ìí´ ì¸í°ì í¸ëë ê²ì¼ë¡ë¶í° ë³´í¸í ì ìë ê²ì ì¤ëª íë¤.Because of this, a more powerful way of penetrating such a secure stack can be utilized to allow the stack to penetrate from âinside outâ. This means that the most recent addition to the security chain is the first one executed in the sequence, but in fact is located at the innermost layer of the security system. Thus, embodiments can be used to enforce the " inside out " execution ordering. This special ordering of code stack traversal can be accomplished using a simple iteration method, where the code loop first evaluates the current security level and then branches accordingly. However, in an iterative method, the intermediate consequences of a security system piercing are simply waiting for an attacker to expose the next lower level key in a legitimate security system piercing as described above and using that intercepted key to replicate a fake "early" version of the system. This could potentially be bypassed. Thus, embodiments of the systems and methods illustrate that not only can implement this âinside outâ execution sequencing but also protect intermediate results from being intercepted by malicious code or other well-known security system exploits.
"ì¸ì¬ì´ë ìì" ë³´ì ë°©ë²ì ì´ì©í ëì ë¤ë¥¸ ì¤ìí ì¥ì ì í¸ì¶ ìê·ë©í¸ì ì ì²´ ìíì¤ê° ë³´ì ìì¤í ì ìµë´ì¸¡ 층(ë° ëë¶ë¶ì ìµê·¼ ë²ì )ì ë³´ì¬ì§ ì ìë¤ë ì ì´ë¤. ë§ì¼ ì´ "ì¸ì¬ì´ë ìì" ì¤í ìíì¤ê° ì ì í 구íëë©´, ê·¸ ìì¤í ìì ì¬ì©ëë ì¬ë°ë¥´ê² 구ì±ë ë°ì´ì¦-ì²´í¹ ë©ì¹´ëì¦ì ì ì²´ í¸ì¶ ì¬ì¬ì ëíì¬ ê°ìì±ì ê°ëë¤ë ê²ì ì ì ìë¤. ë°ë¼ì, ì¤ììë ìì¤í ì¸ì¦ 기ë¥ì ìë¹ëì ì¼ë°ì ì¼ë¡ ê·¸ 기ë¥ê³¼ ê´ë ¨ë ììì ì¶ê°ì ì¸ ì±ë¥ íëí°ì ë°ììì´ ìíí기 ìí ë´ì¥(built-in) ë©ì¹´ëì¦ì 구ë¹í ì ìë¤.Another important advantage of using an "inside out" security method is that the entire sequence of call arguments can be seen in the innermost layer (and most recent versions) of the security system. If this "inside out" execution sequence is implemented properly, it can be seen that the correctly configured bounce-checking mechanism used in the system has visibility over the entire call chain. Accordingly, embodiments may have a built-in mechanism for performing a substantial amount of system authentication functionality generally without incurring any additional performance penalty associated with that functionality.
ë°ë¼ì, í¹ì ì¤ììë ì¤ê° í¤ë¥¼ ìì ë 벨(ë° ê·¸ì ë°ë¼ì ë³´ìì±ì´ ì½í) ë³´ì ìì¤í 루í´ì ë ¸ì¶ëë ê²ì¼ë¡ë¶í° ì§í¤ê³ ì ì í ë³´ì ì¤í ê´íµ ë°©ë²ì ë³´ì¥íë ìë¨ì íì©í ì ìë¤. ì´ê²ì ë¬ì±íë íê°ì§ ë°©ë²ì íê·í ë³´ì 구조를 ì´ì©íë ê²ì´ê³ , ê·¸ ì¼ ì¤ììê° "ëì§í¸ ì ìê¶ ì ì´ë¥¼ ìí íê·í ë³´ì íë¡í ì½ì ë°©ë² ë° ìì¤í (Method and System for a Recursive Security Protocol for Digital Copyright Control)"ì´ë¼ë ëª ì¹ì¼ë¡ ì리ì ë¸ì´. ì¥ì¤í¬í¸ê° 2003ë 6ì 19ì¼ì ì¶ìí ë¯¸êµ í¹í ì¶ì ì 10/465,274í¸ì ê°ìëì´ ìê³ , ì´ í¹í ì¶ìì ê·¸ í 2007ë 4ì 10ì¼ì ë¯¸êµ í¹í ì 7,203,844í¸ë¡ í¹íëìì¼ë©°, 모ë 목ì ì¼ë¡ ì¸ì©ì ìí´ ì¬ê¸°ì íµí©ëë¤.Thus, certain embodiments may utilize means to protect intermediate keys from being exposed to higher level (and therefore less secure) security system routines and to ensure proper security stack traversal methods. One way to accomplish this is to use a recursive security architecture, one embodiment of which is entitled "Method and System for a Recursive Security Protocol for Digital Copyright Control." William V. Oxford is disclosed in US Patent Application No. 10 / 465,274, filed June 19, 2003, which patent was subsequently issued on April 10, 2007, US Patent No. 7,203,844, cited for all purposes. By here it is incorporated.
ì´ë¬í íê·í ë³´ì íë¡í ì½ì ì¤ìì를 íì©íë©´, í¹ì ì ì¥ì ë¤ì´ ì¤íë ì ìë¤. 첫째ë¡, ì¤í ìì ê´íµì "ì¸ì¬ì´ë ìì"ì¼ë¡ë¶í° íê°ëëë¡ ì¤ê³í ì ìë¤. ì´ê²ì ìµê·¼ ë³´ì ìì¤í ì¶ê°ê° 먼ì ì¤íëê³ ìì¤í ì´ "ì¤ê°ìì ìì"ë ì ìë¤ë ê²ì ì미íí(ì를 ë¤ë©´, "ë³µê· ê¸°ë°" íë¡ê·¸ëë° ìµì¤íë¡ììì ì¬ì©ë ê²ì²ë¼). íê·í ìì¤í ì ëë²ì§¸ ì¥ì ì ë³´ì ìì¤í ì ëí ìì ê°±ì ì ì¶ê°ê° ë³´ì ìì¤í ìì²´ìì ìµì´ì í¸ì¶ ìê·ë©í¸ë¥¼ ë³ê²½ìí¤ì§ ìëë¤ë ì ì´ë¤. ë°ë¼ì, ì íµì ì¸ ì¬ì ê¸°ë° ê³µê²© ë©ì¹´ëì¦ì ì´ì©íì¬ ë³´ì ìì¤í ì ëììíê¸°ê° ë ì´ë µë¤. ì¬ê¸°ìì ì¤ëª íë ì¤ììê° ìììì ë°ë³µ íìì¼ë¡ ì¸ë¼ì¸ ì¤í ì¤íì ì¬ì©íë ê²ì´ ê°ë¥íì§ë§, ë°ë³µ ë©ì¹´ëì¦ì ì¸í°ë½í¸ë¥¼ ë°ê¸° ì½ê³ , ë°ë¼ì ë³´ì ì¤íì ë¶ë¶ íê°ê° ìíëë ìí©ì ìì±íë ê²ì´ ëí ê°ë¥íë¤. ì´ê²ì íë ì´ìì ì¤ê° ê²°ê³¼ê° ì¸ë¶ ê´ì¸¡ìì ìí´ ì¸í°ì í¸ëë ê²ì ì ì¬ì ì¼ë¡ íì©íë¤. ì¬ê¸°ììì ì¤ììì ìí´ íì©ë ì ìë ê²ì²ë¼ íê·ë¥¼ íµíì¬ êµ¬íëë ì¸ì¬ì´ë ìì ë³´ì ìì¤í ì ìì´ì, ì¤ê° ê²°ê³¼ë ììì ì§ì ìì ë¤ì ë 벨 루í´ì ìê·ë©í¸ë¡ì íµê³¼ë ì ìê³ , íì¬ ì¤íëê³ ìë ë³´ì ìì¤í ì ìµì¢ ê²°ê³¼ë§ì´ ë³´ì ìì¤í ì¤íì ë¤ì ë ë²¨ë¡ íµê³¼í ì ìë¤.By utilizing this embodiment of the recursive security protocol, certain advantages can be realized. First, stack order penetration can be designed to be evaluated from âinside outâ. This means that recent security system additions are executed first and the system cannot be "started in the middle" (as used in "return-based" programming exploits, for example). The second advantage of regression systems is that the addition of random updates to the security system does not change the original call arguments in the security system itself. Thus, it is more difficult to cheat a security system using traditional replay-based attack mechanisms. While the embodiments described herein can use an inline execution stack in a reversed iteration format, the iteration mechanism is susceptible to interruption, and thus it is also possible to create situations in which partial evaluation of the security stack is performed. This potentially allows one or more intermediate results to be intercepted by external observers. In an inside out security system implemented through regression as may be utilized by the embodiments herein, intermediate results may not be passed as arguments to the next level routine at any point, and may be Only the end result can pass to the next level of the security system stack.
í©ì±í¤ 구조ë í¹ì ì¤ìììì 목í ì ëì ë¹ë°í¤ì ëí ì¡ì¸ì¤ë¥¼ ì격íê² ì ì´í¨ì¼ë¡ì¨ ë¶ë¶ì íê°ë¡ë¶í° ëí ë³´í¸ë ì ìë¤. ì를 ë¤ì´ì, ë¹ë°í¤ê° 구조ì ì¼ë¡ ê°ìì ì´ì§ ìì ì¡ì¸ì¤ë¶ë¥ì ë©ëª¨ë¦¬ ìì¹ì ì ì¥ëì´ ìì¼ë©´, ë¹ë°í¤ë í¹ìí ë³´ì ê´ë ¨ ëª ë ¹ì´ ëë 기ë¥ì ì¼ë¶ë¡ìë§ ì¡ì¸ì¤ë ì ìë¤. í¹ì ì¤ìììì ì´ ê¸°ë¥ ëë ëª ë ¹ì´ë íë²íì§ ìì ì¼ë°©í¥ ë³íê³¼ ê°ì´ ì½ê² ìì¼ë¡ ëì§ ìë ê²ì´ë¤. ì´ ë°©ë²ì 모조 ë³´ì ìì¤í ì ê²½ì°ìë ë¹ë°í¤ì ê°ì ëë¬ë¼ ì ìì´ì¼ íë¤. ê²°êµ, ë¹ë°í¤ë¥¼ ì¼ë°©í¥ í¨ìì ì¼ë¶ë¡ì ê°ì ì ì¼ë¡ 참조ëê² í¨ì¼ë¡ì¨ ë¹ë°í¤ë ë¹ë°í¤ê° ìíì ì°ì°ì ì¼ë¶ë¡ì ê·¸ê²ë§ì¼ë¡ ì ë ì¬ì©ë ì ìì§ë§ ë¨ë ì¼ë¡ ëë ì´ë¤ ë¤ë¥¸ ë°ì´í°ì í¨ê» í´ì± ëìì ì¼ë¶ë¡ìë§ ì¬ì©í ì ìì ë ë³´í¸ë ì ìê³ , ì´ë í´ì± í¨ìì ê²°ê³¼ë§ì´ ê´ì¸¡ë ì ìë¤.The composite key structure may also be protected from partial evaluation by strictly controlling access to the target unit's private key in certain embodiments. For example, if a secret key is stored in an inaccessible memory location that is not structurally visible, the secret key can only be accessed as part of special security-related commands or functions. In certain embodiments this function or instruction is not easily reversed, such as an unusual one-way transformation. This method should not be able to reveal the value of the secret key even in the case of a fake security system. After all, by making a secret key indirectly referenced as part of a one-way function, the secret key can never be used by itself as part of a mathematical operation, but can be used alone or as part of a hashing operation. Can be protected, where only the result of the hashing function can be observed.
ë¹ë°í¤ë¥¼ ë³´í¸íë ì¶ê°ì ì¸ ë©ì¹´ëì¦ì í¹ì ì¤ìììì ì ì©í ê²ì¼ë¡ ëí ì ì¦í ì ìë¤. ì´ë¬í íê°ì§ ì ì¬ì ë©ì¹´ëì¦ì í©ì±í¤ë¥¼ ì¬ì©íë ê²ì´ê³ , ì´ë 목í ì ëì ë¹ë°í¤ë ì´ë¤ ë¤ë¥¸ ì ì½ ëë ì¶ê°ì ì¸ ì¤í¼ëëì ì§í©ì ë¨ë¨íê² ê²°í©ëë¤. ì´ë¬í 2ì°¨ ì¤í¼ëëì ìë¡ë ë³ëì ë¹ë°í¤, ì´ì²´ì ê°ìì± ë ì§ì¤í°(íìì¤í¬í ëë ìì¤í ë²ì ë²í¸ ë±), ë¹ë°í¤ì ì¡ì¸ì¤íë ì½ëì ë©ìì§ ë¤ì´ì ì¤í¸ ë±ì´ ìë¤. ì´ë¬í ìì¤í ì ì¤ìììì, ì´ ìµì¢ ìë ë¹ë°í¤ê° ëì¼í í¤ë¥¼ ì¬ì©íëë¡ ì¸ì¦ë ì½ëì ì¸ê·¸ë©í¸ì ìí´ìë§ ì¡ì¸ì¤ëë ê²ì ë³´ì¥í ì ìë¤. ëí, ë©ìì§ ë¤ì´ì ì¤í¸ê° ìí¸íëì´ ëì§í¸ ìëª ì íì±íë ê²½ì° ë° ì기 ë©ìì§ ë¤ì´ì ì¤í¸ë¥¼ ìí¸íí기 ìí´ ì¬ì©í í¤ê° ë¹ë°í¤ ìì²´ì¸ ê²½ì°, ë¹ë°í¤ì ì¡ì¸ì¤íë ì ì¼í ë°©ë²ì´ ê·¸ ë¹ë°í¤ê° 무ìì´ìëì§ë¥¼ ì´ë¯¸ ìê³ ìë ëêµ°ê°ì ìí´ ì¸ì¦ë ì½ë ì¸ê·¸ë©í¸ë¥¼ ì´ì©íë ê²ìì ë³´ì¥í ì ìë ìì¡´ì±ì ì¬ì´í´(circle of dependencies)ì´ ìì±ë ì ìë¤.Additional mechanisms to protect the private key may also prove useful in certain embodiments. One such potential mechanism is to use a synthetic key, where the target unit's private key is tightly bound to any other constraint or set of additional operands. Examples of such secondary operands include a separate secret key, a global visibility register (such as a timestamp or system version number), and a message digest of the code that accesses the secret key. In embodiments of such a system, this final example may ensure that the private key is only accessed by a segment of code authorized to use the same key. Also, if the message digest is encrypted to form a digital signature, and if the key used to encrypt the message digest is the secret key itself, then the only way to access the secret key is by someone who already knows what the secret key was. A cycle of dependencies can be created that can be guaranteed to use authenticated code segments.
ì´ ê²½ì°ì, í©ì±í¤ 구조ì ì¬ì©ì 목í ì ëì ë¹ë°í¤ ì¬ì©ì´ íì©ë기 ì ì ê·¸ ë¹ë°í¤ì ì¬ì©ì ìì²íë ì½ë ë¶ë¶ì "ê¶í(authority)"ì ì í¨ííë ê²ì íì©íë¤. "층ì ì´ë£¬ í¤" 구조ì "í©ì±í¤" 구조 ê°ì ì°¨ì´ë, í¹ì ì¤ìììì, íìê° ìì ííë¡ íê°ëê³ ê·¸ ìì²´ë íê· ìë¨ì ìí´ ë¬ì±ë ì ìë ê²ìì ì기íì. íê·í 구조ì ëì¡°ì ì¼ë¡ ë°ë³µ ë°©ë²ì ì´ì©í ì ì¬í 구조ì ì´ì ë¸(assemble)ì´ ìëëë©´, í¤ íê° ì²ë¦¬ì ì¤ê° 결과를 ë ¸ì¶ìí¬ ìíì±ì´ ìë¤(ë°ë¼ì ë¹ë°í¤ë¥¼ ì ì¬ì ì¼ë¡ ë ¸ì¶ìí¨ë¤). ì´ "ë ¸ì¶"ì ì¸í°ë½í¸ê° ë°ìí ë(ëë ë©ëª¨ë¦¬ ìì²´ìì ì§ì ) ë©ì¸ ë©ëª¨ë¦¬ì ë°ì´ë´ì´ì§ë ë²ì© ë ì§ì¤í°ì ê°ì ê³µê°ì ì¼ë¡ ì´ì©ê°ë¥í ìì¹ì ë¹ë°í¤(ëë ê·¸ ì본)ê° ì ì¥ë ë ë°ìí ì ìë¤.In this case, the use of the composite key structure allows validating the "authority" of the portion of code that requests the use of the secret key before the target unit's use of the secret key is allowed. Recall that the difference between the "layered key" structure and the "synthetic key" structure is that, in certain embodiments, the latter can be evaluated in atomic form and itself can be achieved by regression means. In contrast to recursive structures, attempts to assemble a similar structure using an iterative method are at risk of exposing intermediate results of the key evaluation process (and thus potentially revealing secret keys). This "exposure" may occur when the secret key (or its original) is stored in a publicly available location, such as a general purpose register that is pushed into main memory when the interrupt occurs (or directly from the memory itself).
í¹ì ì¤ìììì ì·¨ê¸ë ì ìë ì ì¬ì ë³´ì íê´´ë ë³´ì ì¤í ëìì´ ì¤ê° íê°(mid-evaluation)ìì ì¤ë¨ë ë ë¶ë¶ ê²°ê³¼ì ë³´í¸ì´ê³ , 목í ì ë íë¡ì¸ìì ìíë ê·¸ ë¤ìì ì¸ë¶ ê´ì¸¡ìì ìí ìíì ìí´ ê°ë°©ëì´ ìë ë©ì¸ ë©ëª¨ë¦¬ì 기ë¡ëë¤. ì¼ ì¤ììì ìì´ì, ì´ ë©ëª¨ë¦¬ "ë ¸ì¶"ì ë°©ì§í기 ìí´, íë¡ì¸ìê° ë³´ì ì¤í 모ëì ìë ëì í í¸ì(heap push)ë íì©ëì§ ìëë¤. ë§ì¼ ê·¸ ì¡°ê±´ì´ ìíëë©´, íê·í ë³´ì íë¡í ì½ì ê·¸ íì¬ ìí를 ìì¤íì§ ìê³ ì¤ë¨ë ì ìë¤(ì¤ê° ìê·ë©í¸ê° ì기 ë문ì). íê·í ë³´ì íë¡í ì½ì ì¤ììì ìì´ì, ì ì²´ ë³´ì íë¡í ì½ì íê·ê° ì¢ ë£ëê³ íë¡ì¸ìê° ë³´ì ì¤í 모ëìì ëìí ë ê´íµëê³ , ë°ë¼ì ì¤ë¨ì´ ìë ë¤ë¥¸ ììì ê²½ì°ì ììì ìê·ë©í¸ë¥¼ íì ë°ì´ë´ë ê²ì ë ì´ì ìë¤. ë°ë¼ì, ë§ì¼ í©ì±í¤ íê°ê° ììì ì§ì ìì ì¤ë¨ëë©´, ë° í í¸ìê° ë³´ì ì¤í 모ëìì ê¸ì§ëë©´, ë³´ì ìì¤í ì¤í ê´íµì ì¤ê° ì¤íìì ì¬ììëë¤(ì¦, ê³ì°ì´ ì²ìë¶í° ì¬ììíì¬ì¼ íë¤). ë°ë¼ì, íê·í ë³´ì íë¡í ì½ì ì´ ë°©ë²ì¼ë¡ ì¬ì©íì¬ ììì ì¤ê° ê²°ê³¼ê° ìì¤í íì ì ì¥ëë ê²(ë° ë°ë¼ì ì¸ì¦ëì§ ìì ê´ì¸¡ììê² ì ì¬ì ì¼ë¡ ë ¸ì¶ëë ê²)ì ë°©ì§í ì ìë¤. ë¬¼ë¡ , í¹ì ì¤ìììì, ë°ë³µì ì¸ ë³´ì ìì¤í íê° ì¤ì í ëìì ëì¤ìì´ë¸íê³ ê·¸ë¬í ì¤ë¨ë ë³´ì ìì¤í ëìì´ ì²ìë¶í° ì¬ììëì´ì¼ íë¤ë ê²ì í¨ê³¼ì ì¼ë¡ ì구í ì ìë¤. ê·¸ë¬ë, ì´ë¬í ë°ë³µì ì¸ ë°©ë²ì "ë³µê· ê¸°ë°" íë¡ê·¸ëë° ìµì¤íë¡ìì ëí ë³´í¸ë¥¼ ììì íë "ì¸ì¬ì´ë ìì" ì¤í, í¸ì¶ ìê·ë©í¸ë¥¼ ìë í¨ìë¡ ë³ê²½íì§ ìë ë°©ìì¼ë¡ íì ë³´ì층ì ì¶ê°íë ë¥ë ¥, ë° ì¤ê° ê²°ê³¼ì ìµì¢ í¨ì ì¶ë ¥ ê²°ê³¼ì 격리ì ê°ì´, íê·í êµ¬ì¡°ê° ì ê³µíë 모ë ì¡°ê±´ì ëíì¬ ìíí ì ìë¤. ë³´ì ìì¤í íê·ê° ì¢ ë£íê³ íë¡ì¸ìê° ë³´ì ì¤í 모ëë¡ ì§ì íê² íë ë©ì¹´ëì¦ì ëí´ìë ë¤ìì ë ìì¸íê² ì¤ëª ë ê²ì´ë¤.The potential security breach that can be handled in certain embodiments is the protection of the partial result when the security stack operation is interrupted in mid-evaluation, and the state of the target unit processor is then open for testing by an external observer. Is written to the main memory. In one embodiment, to prevent this memory "exposure", a heap push is not allowed while the processor is in secure execution mode. If the condition is enforced, the recursive security protocol cannot be stopped without losing its current state (because there is no intermediate argument). In an embodiment of a regressive security protocol, the entire security protocol is penetrated when regression terminates and the processor is operating in secure execution mode, thus pushing any argument to the heap in any case other than abort. Nothing is wrong. Thus, if synthetic key evaluation is interrupted at any point, and if heap push is inhibited in secure execution mode, security system stack traversal is restarted in the intermediate execution (ie, computation must restart from the beginning). Thus, a recursive security protocol can be used in this way to prevent any intermediate results from being stored in the system heap (and thus potentially exposed to unauthorized observers). Of course, in certain embodiments, it may effectively require that a heap operation be disabled during an iterative security system evaluation and that such a suspended security system operation must be restarted from the beginning. However, this iterative approach involves "inside out" execution, ordering protection for "return-based" programming exploits, the ability to add subsequent layers of security in a way that does not change the calling argument to the original function, and intermediate results and final Like isolation of function output, it cannot be enforced for all conditions provided by regression structures. The mechanism by which secure system regression terminates and causes the processor to enter secure execution mode will be described in more detail later.
íê· ì¢ ë£End regression
ì¼ ì¤ììì ìì´ì, íê·ë 주ì´ì§ ì½ë ì¸ê·¸ë©í¸ì ë©ìì§ ë¤ì´ì ì¤í¸ê° ì½ë ì¸ê·¸ë©í¸ ìì²´ì í¨ê» ê³µê¸ë ê²ê³¼ ì¼ì¹í ë ì¢ ë£íëë¡ ì í¸ë ì ìë¤. ì´ ë°©ë²ì ë§ì¼ ë©ìì§ ë¤ì´ì ì¤í¸ê° íëì¨ì´ í´ì± í¨ìì ìí´ ê³ì°ëë©´ 공격ì ëíì¬ ë ê°íê² ë ì ìë¤. í¹ì ì¤ììììë ëì§í¸ ìëª ì´ ëí íì©ë ì ìë¤. ëì§í¸ ìëª ë©ì¹´ëì¦ì ì ì´ë 2ê°ì§ì 주ì ìì±, ì¦ 1) ì½ë ì¸ê·¸ë©í¸ê° ë¶ì íê² ë³ê²½ëì§ ììë¤ë ë³´ì¦ ë° 2) ì½ë ì¸ê·¸ë©í¸ 창조ìì ì¦ì ìë³ì ì ê³µíë ì ì¬ì±ì 구ë¹íê³ ìë¤. ê·¸ë¬ë, ì´ë¬í ëì§í¸ ìëª ì´ ê³µê°ì ì¼ë¡ ê°ìì±ì´ê±°ë ìì ê°ë¥í ìì¹ì ìºìëë ì¤ììì ê²½ì°ìë ëì§í¸ ìëª ìì²´ê° ì¸ì ë ì§ ìì ë ì ìê³ ë°ë¼ì ë°ëì ì§ì í ê²ì´ë¼ê³ í ì ì기 ë문ì ì¶ê°ì ì¸ ë³´ìì´ ì구ë ì ìë¤. ë°ë¼ì, ì´ë¬í ì íì ì¤ììììë ê³µê°í¤ ìì¤í ì ì´ì©íì¬ ëì§í¸ ìëª ì ì í¨íí ì ìê³ , ëë í©ì±í¤ 구조(ììì ì¤ëª í¨)를 ì´ì©íì¬ ë¹í´ ì½ë ì¸ê·¸ë©í¸ê° ì ê³µë ëì§í¸ ìëª ì´ ëª©í ì ëì ë¹ë°í¤ë¥¼ ìì íê³ ìë ì´ë¤ ë¹ì¬ìì ìí´ ìì±ëììì ë³´ì¦í ì ìë¤. íìì ê²½ì°ì, í©ì±í¤ì ì¬ì©ì ë¨ì¼ ìëí¬ì¸í¸ì ëíì¬ ëë ì¼ë¶ ìëí¬ì¸í¸ ì§í©ì ëíì¬ ëí ì íë ì ìë¤. ê²ë¤ê°, ê³µê°í¤ ë°©ë²ê³¼ í©ì±í¤ ë°©ë²ì í¨ê» íì©í ì ìë¤. ì´ë¬í ë°©ë²ì¼ë¡ ì½ë ì¸ê·¸ë©í¸ì ì§ì ì± ë° ì½ë ì¸ê·¸ë©í¸ê° í©ì± ëì§í¸ ìëª ì ìë ¹ìì©ì¼ë¡ ìëë ê²ì ë³´ì¦í ì ìë¤.In one embodiment, the regression may be signaled to end when the message digest of a given code segment matches that supplied with the code segment itself. This method can be stronger against attacks if the message digest is computed by a hardware hashing function. In certain embodiments digital signatures may also be utilized. The digital signature mechanism has at least two main properties: 1) the guarantee that the code segment has not been tampered with and 2) the potential to provide instant identification of the code segment creator. However, for embodiments where such digital signatures are cached in publicly visible or modifiable locations, additional security may be required because the digital signatures themselves may be modified at any time and thus may not necessarily be true. Thus, in this type of embodiment, the digital signature can be validated using a public key system, or the digital signature provided with the corresponding code segment using the composite key structure (described above) owns the private key of the target unit. It can be guaranteed that it was created by any party that is present. In the latter case, the use of the composite key may also be restricted for a single endpoint or for some set of endpoints. In addition, the public key method and the composite key method can be used together. In this way it is possible to ensure the authenticity of the code segment and that the code segment is intended for the recipient of the composite digital signature.
í¹ì ì¤ììì ìì´ì, 목í ì ëìì ë³´ì ë©ì¹´ëì¦ì ì í¨ííë ê²ì´ ëí ì구ë ì ìë¤. 목í ì¥ì¹ìì ë³´ì ìì¤í ì ììì íëì ì¸ê·¸ë©í¸ì ëí íëì¨ì´ ìì± ëì§í¸ ìëª ì´ íì©ë ì ìì§ë§, ë³´ì ìì¤í ì´ íê·íì¸ ê²½ì°ì, ë³´ì ìì¤í ìì²´ê° ê´íµë ë ë³ê°ì ëì§í¸ ìëª ì´ ì¤ì§ì ì¼ë¡ ìëì¼ë¡ ìì±ë ì ìë¤. ììì ì¸ê¸í ë°ì ê°ì´, íê·í ë³´ì íë¡í ì½ì´ ì¢ ë£ëë©´ ì ì²´ í¸ì¶ ì¬ì¬ì´ ë ¸ì¶ëìë¤. ë°ë¼ì, ë³´ì íë¡í ì½ì ìµë´ì¸¡(ë°ë¼ì ìµê·¼) ë¶ë¶ì´ ì¤íì ì ì¥ë í¸ì¶ ìê·ë©í¸ë¿ë§ ìëë¼ ìì¤í íì(ëë ë©ëª¨ë¦¬ì ì´ëìë ) ì ì¥ë ë¤ë¥¸ íê²½ ë³ì를 ë¹ë¡¯í´ì ê·¸ê²ì´ í¸ì¶ë ì ì²´ íê²½ì ì¡ì¸ì¤íë¤. ì´ ë´ì¥ ìì¤í ì¸ì¦ ë©ì¹´ëì¦ì ë³´ì íë¡í ì½ ìì²´ì ê´íµê³¼ ëìì íê°ë기 ë문ì 공격ì ëíì¬ í¹í í¨ì¨ì ì¼ ë¿ë§ ìëë¼ ê°ë ¥íë¤.In certain embodiments, it may also be required to validate the security mechanism at the target unit. Hardware-generated digital signatures for any one segment of the security system can be utilized on the target device, but if the security system is recursive, a separate digital signature can be generated substantially automatically when the security system itself is penetrated. have. As mentioned above, when the regression security protocol terminates, the entire call chain is exposed. Thus, the innermost (and thus most recent) part of the security protocol accesses the entire environment in which it is invoked, including the call arguments stored on the stack as well as other environment variables stored on the system heap (or anywhere in memory). This embedded system authentication mechanism is not only particularly efficient against attacks, but also powerful because it is evaluated simultaneously with the penetration of the security protocol itself.
ì¼ ì¤ììì ìì´ì, ê·¸ ë¤ìì, ë³´ì ìì¤í ì¤í ê´íµì "ì¤í ë¨ê³" ì ì ì ìì ìì´ì¼ íë ì¡°ê±´ë¤ì ì§í©ì´ í¹ì ë ì ìë¤. ì¼ ì¤ììì ìì´ì, ì´ ì¡°ê±´ë¤ì ê°ë³ì ì¼ë¡ ì구ëë 모ë ë³´ì ì¡°ê±´ì "êµì§í©"ì´ë¼ê³ ííí ì ìë¤. ì¦, ìë¡ì´ ë³´ì 리ì¤í¬ê° ë°ê²¬ë ë, ê·¸ë¬í 리ì¤í¬ë¥¼ ì± ìì§ë ì¶ê°ì ì¡°ê±´ë¤ì´ ì½ê² ì ìì ëì¬ì§ ì ìë¤. ì´ ì¡°ê±´ë¤ì ì ì¡°ê±´ ë° êµ¬ì¡°ê±´ì 모ë ì¡°ê±´ë¤ì´ 충족ë ëê¹ì§ ì¤íì´ íì©ëë ë³´ì ìì¤í ë¶ë¶ì ìë¤ë ê²ì íì¤í íë¤. ê°ì¢ ë³´ì ìì¤í ì¡°ê±´ë¤ì ì´ë¬í "êµì§í©"ì ììì ì¤ëª í ê²ì²ë¼ í©ì±í¤ 구조 ë©ì¹´ëì¦ì ì´ì©í¨ì¼ë¡ì¨ ë¬ì±ë ì ìë¤. ì를 ë¤ì´ì, ë§ì¼ ê·¸ë¬í í©ì±í¤ 구조ì ì»´í¬ëí¸ë¤ ì¤ íëê° ë¶ë¶ì ì¼ë¡ 목í ì ëì ë¹ë°í¤ì 기ì´íê³ ìì¼ë©´, ì´ ë¹ë°í¤ë ì ì²´ ë³´ì ìì¤í ì "ì 뢰ì ê·¼ê°(Roots-of-Trust)" ì¤ì íëë¡ì ìê°í ì ìë¤. ë ëìê°, ë§ì¼ íëì¨ì´ ê¸°ë° íìì¤í¬í ë©ì¹´ëì¦ì´ í©ì±í¤ì ë¤ë¥¸ ì»´í¬ëí¸ë¤ ì¤ì íëë¡ì íì©ëë©´, ìì¤í ì ì¬ì ì¡ ê³µê²©ì ëíì¬ ë ì ë³´í¸ë ì ìë¤. ë¤ë¥¸ ì¡°ê±´ë¤ì ìíí기 ìí´ í¹ì ì¤ìììì ì¬ì©ë ì ìë ë¤ìì ì»´í¬ëí¸ë¤ì´ ì기ì ê² ì¸ìë ìë¤. ì´ë¬í ì»´í¬ëí¸ë¤ì ì½ëê° ë¶ì íê² ë³ê²½ë ê²½ì° í¤ê° ì ì í íê°ëë ê²ì ê¸ì§í기 ìíì¬ í©ì±í¤ì ì¼ë¶ë¡ì ì½ë ë¸ë¡ì ë©ìì§ ë¤ì´ì ì¤í¸ì íëì¨ì´ ê¸°ë° í´ì ê³ì°ì ì´ì©íë ê²ì í¬í¨íë¤. ì¼ ì¤ììì ìì´ì, ë¤ë¥¸ íëì ì»´í¬ëí¸ë ì¤í ëì ì½ë ë¸ë¡ì í¸ì¶ ìê·ë©í¸ì ì´ë¤ ì íë ë¶ë¶ì§í©ì ëì§í¸ ìëª ì¼ ì ìê³ , ì´ê²ì ì¤í ì¤ë²íë¡ì° ì¤íì¼ ê³µê²©ì ëíì¬ ë³´í¸í ì ìë¤.In one embodiment, then a set of conditions that must be in place before the "execution phase" of penetrating the security system stack can be specified. In one embodiment, these conditions can be expressed as "intersections" of all the security conditions individually required. In other words, when new security risks are discovered, additional conditions responsible for such risks can easily be put in place. These conditions ensure that no part of the security system is allowed to run until all the conditions of the new condition and structure are met. This "intersection" of various security system conditions can be achieved by using the composite key structure mechanism as described above. For example, if one of the components of such a composite key structure is based in part on the secret key of the target unit, the secret key is one of the "roots-of-trust" of the entire security system. I can think of it. Furthermore, if a hardware based timestamp mechanism is utilized as one of the other components of the composite key, the system can be better protected against retransmission attacks. In addition to the above there are a number of components that can be used in certain embodiments to enforce other conditions. These components include using hardware-based hash calculation of the message digest of the code block as part of the composite key to prevent the key from being properly evaluated if the code is tampered with. In one embodiment, the other component can be a digital signature of any selected subset of the calling arguments of the code block to be executed, which can protect against stack overflow style attacks.
ì½ë ì¸ê·¸ë©í¸ê° íìì¤í¬í ëë ì¬ì©ë ê´ë ¨ ì íê³¼ ê°ì ê·¸ ì¤íìì ë¤ë¥¸ ì ì½ì ê°ë ê²½ì°, í¹ì ì¤ìììì, ì¶ê°ì ì¡°ê±´ë¤ì´ í©ì± ëì§í¸ ìëª ì ì¶ê°ëì´ ì기 ì ì½ë¤ì´ ëí ì ì í ìíëë ê²ì ë³´ì¥í ì ìë¤. ì´ë¬í ëì¼í ë©ì¹´ëì¦ì ì´ì©í´ì, ì¤ê° ë³´ì í í°ì ì íí íê°ì 기ì´íì¬ ìì¤í ì ê° ì¸µ ë´ììì ì ë¹í ì½ë ë¶ê¸°ë¥¼ ìíí¨ì¼ë¡ì¨ ê°ì¢ ë³´ì ì¤í 층ì íµí í¹ì ì ë³µìì ë°ë³µì ê°ì í ì ìë¤.If the code segment has other executional constraints, such as time stamps or usage-related restrictions, in certain embodiments, additional conditions may be added to the composite digital signature to ensure that the constraints are also enforced properly. Using this same mechanism, it is possible to enforce certain multiple iterations through the various security stack layers by enforcing proper code branching within each layer of the system based on accurate evaluation of the intermediate security token.
ììì ì¤ëª í ê²ì²ë¼, íê·í ë³´ì ìì¤í ì 모ë ì¡°ê±´ë¤ì´ ë³´ì í í°ì íê°ë¥¼ ììí기 ì ì ì ìì ìë ê²ì ë³´ì¦íëë¡ ì구ëë í¹ì ì¤ìììì ì 리íë¤. ì¸ì¬ì´ë ìì ë³´ì ì¤í ê´íµì ìí ë¥ë ¥ ë° ì¤ê° ê²°ê³¼ì ê°ìë(visibility)ì ëí ì íì´ ìë íê·í ìì¤í ì ë°ë¼ì ìµì ë°©í´ íìì¼ë¡ ë³´ì ìì¤í íê°ì ëí ë ë§ì ì ì½ì ì¶ê°íëë¡ ì구ë ë ì¸ë¶ 공격ì ëí í¥ìë ê°ë ¥í¨ ë° ìµíµì±ì ì ê³µí ì ìë¤.As described above, a regressive security system is advantageous in certain embodiments where it is required to ensure that all conditions are in place before the evaluation of a security token begins. Regressive systems with limited enforcement of inside-out security stack traversal and visibility of intermediate results are thus improved against external attacks when required to add more constraints on security system evaluation in the least disruptive form. It can provide strength and flexibility.
ì¬ê¸°ìì, ë³´ì ìì¤í ì¤íì íê·í ê´íµì 모ë ì°ì° íë¦ì ëí íê· ííì ë°ëì ëì¼í íìë ìë¤ë ê²ì 주목íì¬ì¼ íë¤. ë°ë¼ì, ë³´ì ìì¤í ì ë ¼ë¦¬ íë¦ ë° ìì¤í ë³´ì ìì¤í ì ì¬ì©ì ê°ë¥íê² íë ì½ë ì¤ë ëì ë ¼ë¦¬ íë¦ì ìì í ë³ê°ì´ë¤.Here, it should be noted that the regression traversal of the security system stack does not necessarily have to be the same as the regression form for all computational flows. Thus, the logic flow of the security system and the logic flow of the code thread enabling the use of the system security system are completely separate.
ê²ë¤ê°, í¹ì ì¤ìììì, í¹ì ì½ë ì¸ê·¸ë©í¸ê° ë¶ìë¨ì ë°ë¼ ëì§í¸ ìëª ì´ ì´ë»ê² ìì ëëì§ë¥¼ í¹ì íë í¨ìë¤ì ì§í©ì í¬í¨í¨ì¼ë¡ì¨, ëì§í¸ ìëª ì´ ì´ë»ê² ì¬ì©ëëì§ì ê´í ìµíµì±ì´ ì¦ê°ë ì ìë¤. ì를 ë¤ë©´, ì½ë ì¸ê·¸ë©í¸ê° ìµì´ì ë°ë³µ íì ë³ê²½ëì§ ìì ë¶ì ì²ë¦¬ë¥¼ íµíì¬ ëì§í¸ ìëª ì íµê³¼íëë¡ íì©ëë ê²½ì°, ê·¸ ì½ë ì¸ê·¸ë©í¸ë ë³´ì ìì¤í ì´ ê·¸ í¹ì ì½ë ë¸ë¡ì íµíì¬ ëª ë²ì´ë ìííëì§ë¥¼ 먼ì í¹ì í íììì´ ì í¨íë ì ìë¤. ì ì¬íê², í¹ì ì½ë ì¸ê·¸ë©í¸ê° ì¡°ì°ë ë ëì§í¸ ìëª ì´ ê³µì§ì "ì¢ ì" ìíë¡ ë¦¬ì¸í¸ëë ê²ì í¹ì í ì ìë¤. ë°ë¼ì, ë¨ì¼ì ì ì¼í ë²í¸(ì´ê²ì ëª ë¬¸ì¼ë¡ ì ì¥ë ì ìë¤)를 ë¨ìí ê³µê¸í¨ì¼ë¡ì¨, ë³´ì ìì¤í ì ê°ì¢ ë¶ë¶ì´ ëª ë² ë° ì´ë¤ ììë¡ ê´íµëëì§ì ê´í ì ì¼í ë³íì²´ê° í¹ì ë ì ìë¤. ì¬ì¤, ì´ë¬í ì½ë ì í¨í ì²ë¦¬ë¥¼ ì´ì©íì¬ ê°ì¢ ì ì©í 기ë¥ì 구íí ì ìê³ , ë°ë¼ì ì´ ê¸°ì ì ë³´ì ìì¤í ìì²´ì ë°°íì ì¬ì©ì ëíì¬ ë°ëì ì íí íìê° ìë¤.In addition, in certain embodiments, the flexibility of how digital signatures are used may be increased by including a set of functions that specify how the digital signature is modified as the special code segment is analyzed. For example, if a code segment is allowed to pass a digital signature through an unaltered analysis process after the first iteration, the code segment does not have to first specify how many times the security system cycles through the special code block. Can be validated. Similarly, it can specify that the digital signature is reset to a known " seed " state when a special code segment is encountered. Thus, by simply supplying a single unique number (which can be stored in the clear), a unique variant of how many times and in what order the various parts of the security system are penetrated can be specified. In fact, such a code validation process can be used to implement a variety of useful functions, and thus this technique does not necessarily limit the exclusive use of the security system itself.
ì ë¹í ëì§í¸ ìëª ì´ ì¼ë° ì½ë(generic code)(ë³´ì 구íê³¼ ê´ë ¨ëê±°ë ê´ë ¨ëì§ ìì ì½ë)ì í¨ê» ê³µê¸ëë ê²½ì°ì, í¹ì ì½ë ë¸ë¡ì´ í¹ì ì 목í ì ëìì ì¤ííë ë°©ë²ì´ ë§¤ì° í¹ë³íê² ì ì´ë ì ìë¤. ì´ê²ì ì¼ë° ì½ë를 목í ì¥ì¹ì ì§í©ì ìì íê² ë¶ë°°í기 ìí´ ì¬ì©ë ì ìë ë§¤ì° ê°ë ¥í ë©ì¹´ëì¦ì´ë¤. ì´ ë¶ë°° ë°©ë²ì ì를 ë¤ë©´ ì í리ì¼ì´ì ì ëí ë¬´ë£ ëë ì ë£ ì ê·¸ë ì´ëì ëíì¬ ëë ìíí¸ì¨ì´ ë°ì´ë¬ì¤ ë° ë¤ë¥¸ ë°ëì§íì§ ìì ë©ì¨ì´ì íì°ì ê´ë¦¬í기 ìí´ í¨ê³¼ì ì¼ë¡ ì ì©ë ì ìë¤. ì기 íìì ì¤ìììì, íê·í ë³´ì ìì¤í ì ì´ì©íì¬ ëª©í ì¥ì¹ììì ì¤í íë³´ì¸ ê°ê°ì 모ë ì½ë ë¸ë¡ì ì í¨íí ì ìë¤. ë°ë¼ì, ë©ì¨ì´ ì í리ì¼ì´ì ëë 미리 ì¸ì¦ëì´ ìë ì½ë ì¸ê·¸ë©í¸ì ëí ë¤íí ë°ì´ë¬ì¤ì± 공격조차ë ì¤íì´ ê¸ì§ëë¤.In the case where a suitable digital signature is supplied with generic code (code related or not related to a security implementation), the way in which a special code block executes on a particular target unit can be very specially controlled. This is a very powerful mechanism that can be used to safely distribute generic code to a set of target devices. This distribution method can be effectively applied, for example, for free or paid upgrades to applications or to manage the spread of software viruses and other undesirable malware. In this latter embodiment, a regression security system may be used to validate each and every code block that is an execution candidate in the target device. Thus, even polymorphic viral attacks against malware applications or pre-authenticated code segments are prohibited.
íëì¨ì´ ìì¡´ì±ì ë³´ì ìì¤í íê°ì íµí©íë ë¥ë ¥ì ì ê³µí기 ìí´, í¹ì ì¤ìììì, íëì¨ì´ 구í ë²ì ë²í¸ê° ëì§í¸ ìëª íê°ì í©ì± ì»´í¬ëí¸ ì¤ì íëë¡ì íì©ë ì ìë¤. ë§ì¼ íëì¨ì´ ë²ì ë²í¸ê° ë³´ì ìì¤í ì´ ìì ë ëë§ë¤ ê°±ì ëë©´(ë° ê·¸ ê°±ì ì´ ìì íë©´), ë³´ì ìì¤í ì ë³´ì ìì¤í ì´ ì¤ííë 목í ì ëì ì í©ëë ê²ì¼ë¡ ë³´ì¥ë ì ìë¤. ì´ê²ì ììì ì¤ëª í íìì¤í¬í ë©ì¹´ëì¦ê³¼ ë¤ë¥¸ ê²ì´ì§ë§, ì´ ëì í©ì±í¤ íê°ìì í¨ê» ì¬ì©íì¬ ì¬ì ì¡ ê³µê²© ìëë¦¬ì¤ ëë ë¤ë¥¸ ìë°°ì ëíì¬ ë³´í¸í ì ìë¤ë ì ì 주목íë¤.In order to provide the ability to incorporate hardware dependencies into the security system assessment, in certain embodiments, a hardware implementation version number may be utilized as one of the composite components of the digital signature assessment. If the hardware version number is updated each time the security system is modified (and the update is secure), the security system can be guaranteed to match the target unit on which the security system executes. This is different from the time stamping mechanism described above, but note that the two can be used together in synthetic key evaluation to protect against replay attack scenarios or other violations.
ì를 ë¤ì´ì í©ì±í¤ 구조ì ì¼ë¶ë¡ì JTAG ìëª ê³¼ ê°ì íëì¨ì´ ì ëí ì²´í¬ì¬ì ì¬ì©íë©´, íëì¨ì´ 구í ìì²´ê° ì¸ì¦ë ì ìë¤. ì´ë° ì¢ ë¥ì ë©ì¹´ëì¦ì ìíí¸ì¨ì´ ë° íëì¨ì´ê° ì í© ì(matched pair)ì´ê³ íëì¨ì´ê° 믿ìë§í ê²(ì¦, ë¶ì íê² ë³ê²½ëì§ ììë¤ë ê²)ìì ë³´ì¦í ì ìë¤. ë ëìê°, í©ì±í¤ íê°ì ì¼ë¶ë¡ì ì¬ì©ëë JTAG ìëª ì´ ì§ì ê´ì°°ë ì ìì¼ë©´(ì를 ë¤ì´ì, ê·¸ ìíê° ì¸ë¶ì ì¼ë¡ë ë³´ì¬ì§ ì ìê³ êµ¬ì¡°ì ì¼ë¡ë ë³´ì¬ì§ ì ìë ì¤ìº ì¬ì¬ì í ì§ì ì¼ë¡ë¶í° ì·¨í´ì§ ê²ì´ë©´), íëì¨ì´ ë³µì ì 기ì´íì¬ ì ì¬ì 공격ì íì¬ìí¤ë ì´ë ¤ìì ì ë°° ì¦ê°ë ì ìë¤. ì´ ì ëµì, ì를 ë¤ì´ì ì¥ì¹ì ê°ë³ ì¼ë ¨ ë²í¸ê° ì기 ì¤ìº ì¬ì¬ì í¬í¨ëì´ ìì¼ë©´, í¨ê³¼ì ì¼ë¡ ë ì ìë¤.For example, using hardware-derived checksums such as JTAG signatures as part of the composite key structure, the hardware implementation itself can be authenticated. This kind of mechanism can guarantee that software and hardware are matched pairs and that the hardware is reliable (ie, has not been tampered with). Furthermore, if the JTAG signature used as part of the composite key evaluation cannot be directly observed (e.g., the state is taken from a point in the scan chain that cannot be seen externally or structurally) The difficulty of loading a potential attack based on hardware replication can be increased several times. This strategy can be effective, for example, if the device's individual serial number is included in the scan chain.
ì¬ê¸°ìì, íë¡ì¸ìì ìê°ìì, 본ì§ì ì¼ë¡, ìí¸í ì½ë ë¸ë¡(ì§ì ì¤íë ì ìë ê²)ê³¼ "구ì" ì½ë ë¸ë¡ ê°ì ë ¼ë¦¬ì ì°¨ì´ë ìì ì ìê³ , ì´ê²ì ìë§ë íë²ì ì¤íëì´ ì íí ëì§í¸ ìëª ì í©ì ì ê³µí ì ìì§ë§, ê·¸ ëì§í¸ ìëª ì´ ë ì´ì ì í¨íì§ ì기 ë문ì ë ì´ì ì¤íë ì ìë¤ë ì ì 주목íì¬ì¼ íë¤. ì´ ìë리ì¤ë ì컨ë 목í ì¥ì¹ì íìì¤í¬í ë ì§ì¤í°ê° ë³ê²½ëì기 ë문ì, ëë ëìì ì¼ë¡ 목í ì¥ì¹ì íëì¨ì´ê° ì´ë¤ ì¸ì¦ëì§ ìì ë°©ìì¼ë¡ ìì ë ê²½ì°ì ë°ìí ì ìë¤.Here, from the processor's point of view, in essence, there may be no logical difference between the cryptographic code block (which cannot be executed directly) and the "old" code block, which may be executed at once to provide accurate digital signature matching, It should be noted that because the digital signature is no longer valid, it can no longer be executed. This scenario can occur, for example, because the timestamp register of the target device has changed, or alternatively if the hardware of the target device has been modified in some unauthorized manner.
ë°ë¼ì, í¹ì ì½ë ë¸ë¡ì´ ê°±ì ë²ì ì¼ë¡ êµì²´ë ê²½ì°ì(ë¹ë¡ ë ë¤ ì ì¬ì ì¼ë¡ ì¤íê°ë¥ì´ë¼ íëë¼ë), ì¼ ì¤ììì ìì´ì, ì´ê²ì ë¬ì±íë ê°ë¨íì§ë§ í¨ê³¼ì ì¸ ë°©ë²ì ë¹í´ ì½ë ë¸ë¡ì ë³µí¸ í¤ í¬ì¸í°ë¥¼ 구 ë²ì ì ì½ë ë¸ë¡ì ê°±ì ë²ì ì¼ë¡ êµì²´íë ìë¨ì ì ëíë ìë¡ì´ í¬ì¸í°ë¡ 먼ì êµì²´íê³ ê·¸ ë¤ìì 목í ìëí¬ì¸í¸ ì¥ì¹ì íìì¤í¬í ë ì§ì¤í°ë¥¼ ê°±ì íë ê²ì¼ ì ìë¤. ì¬ê¸°ìì, ê°±ì ë íìì¤í¬í ë ì§ì¤í° ê°ì ì¤ëë ê°ì ì´ì©íì¬ ìì±ë ì´ì ì 모ë ëì§í¸ ìëª ì 무í¨ííê³ , ê·¸ì ë°ë¼ì ë³´ì ìì¤í ì ìµì ìì¼ë¡ í기 ìí´ì ë° ì¤ëë ëì§í¸ ìëª (ëë í¤)ì ìë¡ì´ í¤/ëì§í¸ ìëª ê° ë° ê°±ì ë 기ë¥ì¼ë¡ êµì²´í기 ìí´ ë³´ì ìì¤í ì 체를 ê°ì¡°(ì´ìì ì¼ë¡ë ìì í ë°©ë²ì¼ë¡)íë ê²ì ìë°í ì ìë¤. ì´ê²ì ìëí¬ì¸í¸ ì¥ì¹ì íìì¤í¬í ë ì§ì¤í°ì ì ì¥ë ê°ì ëíì¬ ë¨ì¼ ë³ê²½ì¼ë¡ ì½ê² ìí¥ì ì¤ ì ìë ë§¤ì° ê°ë ¥í(ë° ì ì¬ì ì¼ë¡ ë§¤ì° ì¤ìí) ë©ì¹´ëì¦ì´ë¤. ì´ ê²½ì°ì, ìëí¬ì¸í¸ íìì¤í¬í ë ì§ì¤í° ê°ì ìì íì§ ìê±°ë 무모í ë°©ìì¼ë¡ ë³ê²½ëì§ ìëë¡ ì£¼ìí´ì¼ íë¤. ì´ë¬í ê°ì ê°±ì ìë리ì¤ì ì¼ ì¤ììë (ë¨ìí ë¨ì¼ ëì§í¸ ìëª ì ë¶ì¼ì¹íê² í¨ì¼ë¡ì¨) ë¤ë¥¸ ì§ì ì¤íê°ë¥í ì½ë ë¸ë¡ì ìí¸í 층ì ì¶ê°íë ê²ê³¼ ë ¼ë¦¬ì ë±ê°ë¬¼ë¡ì ì¸ì©ë ì ìë¤.Thus, in the case where a special code block has been replaced with an updated version (although both are potentially executable), in one embodiment, a simple but effective way to achieve this is to replace the decryption key pointer of the code block with the old version. It may be to first replace it with a new pointer that induces a means of replacing the code block with an updated version and then update the timestamp register of the target endpoint device. Here, the updated timestamp register value invalidates all previous digital signatures created using the old values, and therefore to bring the security system up to date and replace the old digital signatures (or keys) with the new key / digital signature values. And modifying the entire security system (ideally in a secure way) to replace it with updated functionality. This is a very powerful (and potentially very important) mechanism that can easily affect a single change to the value stored in the endpoint device's timestamp register. In this case, care must be taken not to change the endpoint timestamp register value in an unsafe or reckless manner. One embodiment of this forced update scenario may be cited as a logical equivalent to adding an encryption layer to another directly executable code block (by simply making a single digital signature inconsistent).
ë³´ì 모ë ë° ë³´ì ì½ë ê²°í©Combine security mode and security code
ìì¤í ì´ ì ì í 구조ì ì¼ë¡ ë¹ê°ìì±ì¸ ë¹ë°í¤ ì¤ì íë를 íì©íë ì¤ììì ìì´ì, ê·¸ë¬í í¤ë¥¼ ì¬ì©íê² íë ì½ëë ë¹ë°í¤ê° ì ì¶©ëë ê²ì ê¸ì§íë ë°©ìì¼ë¡ ì¤ê³ëì´ì¼ íë¤. ììì ì¸ê¸í ë°ì ê°ì´, í¹ì ìëí¬ì¸í¸ ì¥ì¹ì ë¤ë¥¸ ì ë²í ì½ë ë¸ë¡ì´ ì¸ì¦ëì§ ìì ë°©ìì¼ë¡ ì¬ì©ëë ê²½ì° ê·¸ ì½ë ë¸ë¡ì ì íí ì¤íì ê¸ì§íë ë³´ì ì½ë ê²°í© ë©ì¹´ëì¦ì ì¬ì©í ì ìë¤.In embodiments in which the system utilizes one of the structurally invisible secret keys described above, the code that makes use of such a key should be designed in a manner that prevents the secret key from being compromised. As mentioned above, if another legitimate code block of a particular endpoint device is used in an unauthorized manner, a security code binding mechanism may be used that prohibits the correct execution of that code block.
ì¼ ì¤ììì ìì´ì, ì´ ë³´ì ì½ë ê²°í©ì í¹ì ì¢ ë¥ì í´ì± í¨ì를 íë³´ ì½ë ì¸ê·¸ë©í¸ì ì ì©í ê²°ê³¼ê° ê·¸ ì½ë ì¸ê·¸ë©í¸ì ì¤íì´ íì©ë기 ì ì ê·¸ ì½ë ì¸ê·¸ë©í¸ê° ì ê³µë í¹ìíê² ë¯¸ë¦¬ ê²°ì ë ë©ìì§ ë¤ì´ì ì¤í¸ì ì í©íë íìì¡°ê±´ì 기ì´ë¥¼ ëë¤. ì´ í´ì± í¨ìë íë³´ ì½ë ì¸ê·¸ë©í¸ê° í¸ì¶ë íì´ì§ë§ ì¤íì´ íì©ë기 ì ì ì ì©ë ì ìë¤. ì´ í´ì± í¨ìê° ê°ìëë©´ íë³´ ì½ë ì¸ê·¸ë©í¸ë¥¼ í¬í¨íë í¹ì ë©ëª¨ë¦¬ ì¤íì´ì¤ì ëí ììì 기ë¡ì´ ëì¤ìì´ë¸ ëë 무ìë ì ìë¤. íë³´ ì½ë ì¸ê·¸ë©í¸ê° CPUì ëª ë ¹ì´ ìºìììì ê°ì´ CPU ì¤í ì ëê³¼ ëì¼í 칩ì ìì¹ëì´ ìì¼ë©´, ì´ê²ì ì½ê² 구íë ì ìë¤. ê·¸ë¬ë, ì를 ë¤ì´ì I-ìºìê° ëì¼ ì¹©ìì ìë íë ì´ìì íë¡ì¸ì ê°ì ê³µì ëë ë©í°íë¡ì¸ì ìì¤í ìì, ì´ê²ì íë©´ìì¼ë¡ ë³´ì´ë ê²ì²ë¼ 구ííê¸°ê° ê°ë¨íì§ ìì ì ìë¤. ë©ìì§ ë¤ì´ì ì¤í¸ê° ê³ì°ë íì ì½ëê° ìì ëë ê²ì ê¸ì§íë ë¤ë¥¸ ì ì¬ì ì¸ ë°©ë²ì í´ì± í¨ìê° ì¤ì¹ë íì ë°ìíë ë©ëª¨ë¦¬ ì¤íì´ì¤ì ëí ììì ìëë 기ë¡ì´ íë¡ì¸ì ì¸í°ë½í¸ë¥¼ ì¼ê¸°íëë¡ ìì¤í ì 구ì±íë ê²ì´ë¤. ììì ì¤ëª í ê²ì²ë¼, ì´ê²ì íë¡ì¸ìì ë³´ì ì¤í 모ë를 ê·¸ ëí´í¸ ì´ê¸° "ë³´ì ìë" 모ëë¡ ë¦¬ì¸í¸í ì ìë¤. ì´ë¬í ëª ë ¹ì´ì ëí ë¤ë¥¸ ìëµì ë³´ì ì¤í ì¤ë ëê° ì컨ë ë©ëª¨ë¦¬ ì¸ê·¸ë©í¸í ì¤ë¥ë¥¼ ê°ìí¨ì¼ë¡ì¨ ìë¬ë¥¼ ê°ì§ê³ ì¢ ë£ëê² íë¤.In one embodiment, this secure code combination is based on the requirement that the result of applying a special kind of hashing function to the candidate code segment matches the special predetermined message digest provided by the code segment before execution of that code segment is allowed. Based. This hashing function can be applied after the candidate code segment is called but before execution is allowed. Once this hashing function is initiated, any writes to the special memory space containing candidate code segments can be disabled or ignored. This can be easily implemented if the candidate code segment is located on the same chip as the CPU execution unit, such as in the CPU's instruction cache. However, for example in a multiprocessor system in which the I-cache is shared between one or more processors on the same chip, this may not be as simple to implement as it appears on the surface. Another potential way to prohibit code from being modified after the message digest is calculated is to configure the system so that any attempted write to memory space that occurs after the hashing function is installed causes a processor interrupt. As described above, this may reset the processor's secure execution mode to its default initial "non-secure" mode. Another response to this instruction causes the secure execution thread to terminate with an error, for example by initiating a memory segmentation error.
íë³´ ì½ë ì¸ê·¸ë©í¸ì ê³ì°ë ë©ìì§ ë¤ì´ì ì¤í¸ê° íë³´ ì½ë ì¸ê·¸ë©í¸ì í¨ê» ìì ë 미리 ê²°ì ë ë©ìì§ ë¤ì´ì ì¤í¸ì ì¼ì¹íë©´, íë³´ ì½ë ì¸ê·¸ë©í¸ë "ë³´ì 모ë" ëë "ë³´ì ì¤í 모ë"ë¼ê³ ëª ëª ë ê³³ìì ì¤íì´ íì©ëë¤. ììì ì¤ëª í ê²ì²ë¼, ë³´ì 모ëìì ëìíë ì½ëë§ì´ 구조ì ë¹ê°ìì± ë¹ë°í¤ë¥¼ íì©í ì ìë¤. í¹ì ì½ë ì¸ê·¸ë©í¸ê° ë³´ì 모ëìì ëìíì§ ìì¼ë©´, ë¹ë°í¤ë ëì¤ìì´ë¸ëê³ , ê·¸ë¤ ì¤ ììì íëì ëí ììì 참조ë ì´ë¤ ë¤ë¥¸ ê°(ì를 ë¤ë©´, ì ë¡)ì¼ë¡ ë³µê·í ê²ì´ë¤.If the calculated message digest of the candidate code segment matches the predetermined message digest received with the candidate code segment, then the candidate code segment is allowed to run in what is termed "secure mode" or "secure execution mode". As described above, only code running in secure mode can utilize a structured invisible secret key. If the special code segment does not operate in secure mode, the secret key is disabled and any reference to any one of them will return to some other value (eg, zero).
í¹ì ì¤ììì ìì´ì, íë³´ ì½ë ì¸ê·¸ë©í¸ì ë©ìì§ ë¤ì´ì ì¤í¸ë¥¼ ê³ì°í ë ì¬ì©í í´ì± í¨ìë ìì ì í¹ì±ì ê°ì§ ì ìë¤. ì 1 í¹ì±ì í´ì± í¨ìê° ëª©í ì ëì íëì¨ì´ìì 구íëë ê²ì´ë¤. ì´ê²ì ì´ í¨ìê° ìµì´ íëì¨ì´ í´ì± í¨ìì ì´ë¤ ë¤ë¥¸(ìë§ë íê´´ë) ë²ì ì¼ë¡ ìì í êµì²´ë ì ìë¤ë ê²ì ì미íë¤. ì´ í´ì± í¨ìë íìí ë ìµì´ í¨ìì ì ì ë ë²ì (ëë ì¡°ê±´ë¶ ìì êµì²´)ì ìí´ ë³´ì¶©ë ì ìë¤ë ì ì 주목íì¬ì¼ íë¤. ì¼ ì¤ììì ìì´ì, íëì¨ì´ í´ì± í¨ì를 ì ì ë ë²ì ì¼ë¡ êµì²´íë ë°©ë²ì ë³´ì ìì¤í 구조ì íê·ì ì ì를 íµíì¬ ë³´ì ìì¤í ì ìë¡ì´ 층ì ì½ì í기 ìí´ ì¬ì©ëë ììì ì¤ëª í ì ì°¨ì ì¤ì§ì ì¼ë¡ ì ì¬íë¤. ê·¸ë¬ë, ì´ ê²½ì°ì, ë¹ë¡ ìë¡ì´ í´ì± í¨ìê° ëª¨ë íìíë ë³´ì ìì¤í ëìì ì©ëë¡ ìµì´ í¨ì를 êµì²´í ì ìë¤ íëë¼ë, ì´ ìë¡ì´ í´ì± í¨ì ìì²´ë ê·¸ ì 뢰ì ê·¼ê°ì í ëë¡ì ìµì´ì íëì¨ì´ í´ì± í¨ìì ì¬ì í ìì¡´í ì ìë¤ë ì ì 주목íì¬ì¼ íë¤. ë°ë¼ì, "ì¡°ê±´ë¶ ìì êµì²´"ì ì©ì´ë¥¼ ì¬ì©íë¤. ì¼ ì¤ììì ìì´ì, ìµì´ì íëì¨ì´ 기ë°ì¸ ì 뢰ì ê·¼ê°ì ì¼ì íê² ì ì§ë ì ìë¤. ì´ê²ì íëì¨ì´ ê¸°ë° ë³´ì ìì¤í ì ìììí¤ê¸°ê° ë§¤ì° ì´ë µë¤ë ì ìì ë°ëì§íë¤. ê·¸ë¬ë, ìµì´ íëì¨ì´ í´ì± í¨ìì ë¨ì ì´ ëª©í ì¥ì¹ê° íì¥ìì ì ê°ë íì ë°ê²¬ëë©´, ê·¸ë¬í ë¨ì ì í¸ì¶ ìê·ë©í¸ë¥¼ í¨ê³¼ì ì¼ë¡ ì íí ì ìë ë¨ì¼ ì í리ì¼ì´ì ìì ìµì´ í´ì± í¨ì를 ì´ì©í¨ì¼ë¡ì¨ ì ì¬ì ì¼ë¡ ìµì ë ì ìë¤.In a particular embodiment, the hashing function used to calculate the message digest of the candidate code segment may have certain characteristics. The first property is that the hashing function is implemented in the hardware of the target unit. This means that this function cannot be completely replaced by any other (possibly destroyed) version of the original hardware hashing function. It should be noted that this hashing function can be supplemented by a refined version (or conditional complete replacement) of the original function when needed. In one embodiment, the method of replacing the hardware hashing function with a refined version is substantially similar to the procedure described above used to insert a new layer into the security system through a recursive definition of the security system structure. However, in this case, although the new hashing function can replace the original function for the purpose of all subsequent security system operations, this new hashing function itself still depends on the original hardware hashing function as the basis of its trust. It should be noted that it can be done. Thus, the term "conditional complete replacement" is used. In one embodiment, the basis of trust, which is the original hardware base, may remain constant. This is desirable in that it is very difficult to compromise a hardware based security system. However, if the shortcomings of the original hardware hashing function are found after the target device has been deployed in the field, such a disadvantage can be potentially suppressed by using the initial hashing function in a single application that can effectively limit the calling arguments.
íëì¨ì´ í´ì± í¨ìì ì 2 í¹ì±ì í´ì± í¨ìê° ê·¸ ì¢ ì ê°ì¼ë¡ì 구조ì ì¼ë¡ ë¹ê°ìì±ì¸ ë¹ë°í¤ë¥¼ ì´ì©í ì ìë¤ë ê²ì´ë¤. ë°ë¼ì, ëì¼í ì ë ¥ ìê·ë©í¸ê° 주ì´ì§ë¤ íëë¼ë, ê·¸ë¬í íëì¨ì´ í´ì± í¨ìì ë©ìì§ ë¤ì´ì ì¤í¸ ê²°ê³¼ë ì ëë§ë¤ ë¤ë¥¼ ì ìë¤. ì´ ì°¨ì´ë 모ë 목í ì ë ê°ê°ì ëí´ ì ì¼í ë©ìì§ ë¤ì´ì ì¤í¸ë¥¼ ì¼ê¸°í ì ìë¤ë ì ìì ì´ì©ë ì ìë¤. ì´ í¹ì±ì ëì§í¸ ìëª ê³¼ ê°ë ìì¼ë¡ ì ì¬íì§ë§, íëì¨ì´ í´ì± í¨ìì ëí ë³ëì ìí¸í/ë³µí¸ ë¸ë¡ì ì¶ê°ë¥¼ ë°ëì ì구íë ê²ì ìëë¤. ì´ë, íë³´ ì½ë ì¸ê·¸ë©í¸ë íëì¨ì´ ìì± ë©ìì§ ë¤ì´ì ì¤í¸ê° íë³´ ì½ë ì¸ê·¸ë©í¸ì í¨ê» ë¶ë°°ë ê²ê³¼ ì¼ì¹íë ì ëììë§ ì¤ííëë¡(ì ì´ë ë³´ì 모ëìì) 구ìë기 ë문ì, ìí ìì¡´ì±ì´ ìì±ëìë¤. ì´ ìí ìì¡´ì±ì ê·¸ ë©ìì§ ë¤ì´ì ì¤í¸ê° ì¬ë°ë¥¸ 목í ì ëì ë¹ë°í¤ë¡ ìì±ë ì½ëë§ì´ ì¤ì ë¡ ëì¼í ë¹ë°í¤ë¥¼ ì¬ì©í ì ìê² íë¤ë ì미ì´ë¤. ì´ í¹ì±ì 목í ì¥ì¹ìì ë³´ì 모ëë¡ ì¤íì´ íì©ë ì½ë ì¸ê·¸ë©í¸ë¥¼ ìë¹ ê³µê²©ìê° ìì±íë ë¥ë ¥ì ì¤ì§ì ì¼ë¡ ìììí¨ë¤.A second property of the hardware hashing function is that the hashing function can use a structurally invisible secret key as its seed value. Thus, even if given the same input arguments, the message digest result of such a hardware hashing function may vary from unit to unit. This difference can be used in that it can cause a unique message digest for each and every target unit. This feature is conceptually similar to digital signatures, but does not necessarily require the addition of a separate encryption / decryption block to the hardware hashing function. At this point, a circular dependency has been created because the candidate code segment is constrained to run (at least in secure mode) only in units where the hardware generated message digest matches the one distributed with the candidate code segment. This circular dependency means that only code generated by the message digest with the correct target unit's private key can actually use the same private key. This property substantially compromises the ability of a prospective attacker to generate code segments that are allowed to run in secure mode on the target device.
ì ì í ë©ì¹´ëì¦ì ì½ë ì¸ê·¸ë©í¸ê° í¹ìí 목í ì¥ì¹ì(ëë í¹ìí ìëí¬ì¸í¸ ì¥ì¹ì ì§í©ì) "ê²°í©"ë ì ì기 ë문ì "ë³´ì ì½ë ê²°í©"ì´ë¼ê³ ë¶ë¥¸ë¤. ììì ì¸ê¸í ë°ì ê°ì´, ë³´ì ì½ëì ì¤í ë¸ë¡ì´ ì¸í°ë½í¸ë ê²½ì°ì, ì½í ì¤í¸ë ì¸ì´ë¸ëì§ ìê³ , ë°ë¼ì ì´ ì½ë ì¸ê·¸ë©í¸ì ì¤íì í¬ê¸°ëê±°ë ì²ìë¶í° ì¬ììëì´ì¼ íë¤. ëí, ì½ë ì¸ê·¸ë©í¸ì ë³´ì 모ëììì ì¤íì´ ì¸í°ë½í¸ëë©´ íë¡ì¸ìë ë ì´ì ë³´ì 모ëìì ëìí ì ìê³ , 구조ì ì¼ë¡ ë¹ê°ìì±ì¸ ë¹ë°í¤ì ëí ììì ì¡ì¸ì¤ë íë¡ì¸ìê° ë³´ì 모ëë¡ ë³µê·í ëê¹ì§ ì°¨ë¨ëë¤. í¹ì ì¤ìììì, ììì ì¤í칩(off-chip) ì ì¥ ëìì íë¡ì¸ìê° ë³´ì 모ëìì ëìíë ëì íµì ëê±°ë ê¸ì§ëë¤.The mechanism described above is called "secure code association" because the code segment can be "coupled" to a particular target device (or a set of special endpoint devices). As mentioned above, when the execution block of the secure code is interrupted, the context is not saved, so execution of this code segment must be abandoned or restarted from the beginning. In addition, if execution of the code segment in the secure mode is interrupted, the processor can no longer operate in the secure mode and any access to the structurally invisible secret key is blocked until the processor returns to the secure mode. In certain embodiments, any off-chip storage operation is controlled or inhibited while the processor is operating in secure mode.
ì ì í ë°ì ê°ì´, í¹ì ì¤ìììì, ê° ëª©í ì ëì 구조ì ë¹ê°ìì± ë¹ë°í¤ì ì ì¼í ì§í©ì ê°ì§ ì ìë¤. ê·¸ë¬ë, ë¤ë¥¸ ì¤ìììì, ì´ë¬í í¤ì ì¼ë¶ ë¶ë¶ì§í©ì ë¤ìì ëì¼í ì¥ì¹ì ê³µíµì¼ ì ìë¤. ë°ë¼ì, í¹ìí ì½ë ì¸ê·¸ë©í¸ë í¤ë¤ì ê³µíµ ë¶ë¶ì§í©ì ê°ì§ í¹ìí ìëí¬ì¸í¸ ì¥ì¹ ë¶ë¥ì ê²°í©ë ì ìê³ , ê·¸ë¬í ì¥ì¹ë¤ ê°ì ê³µíµì¼ë¡ ì ì§ëë 구조ì ë¹ê°ìì± ë¹ë°í¤ì ì기 ì§í©ì ì¬ì í ë³´í¸íë¤. ë°ë¼ì, íëì¨ì´ í´ì± í¨ìì íë ì´ìì 구조ì ë¹ê°ìì± ë¹ë°í¤ì ì¡°í©ì ê³ ëë¡ í¨ê³¼ì ì´ê³ ê°í íê·í ë³´ì íë¡í ì½ì ì 뢰 ì¬ì¬ì 기ì´ë¥¼ ì ê³µíë¤.As mentioned above, in certain embodiments, each target unit may have a unique set of structural invisible secret keys. However, in other embodiments, some subset of these keys may be common to many of the same devices. Thus, a special code segment can be coupled to a special endpoint device class with a common subset of keys, and still protect the set of structural invisible secret keys that are maintained in common among such devices. Thus, the combination of a hardware hashing function and one or more structural invisible secret keys provide the basis of a chain of trust in a highly effective and strong regressive security protocol.
ì´ì , ê°ì¢ ì¤ììì 구í ì¸ë¶ì ëíì¬ ì²¨ë¶ ëë©´ì 참조íë©´ì ì¤ëª íë¤. 모ë ìì ìì´ì ì©ì´ "ëì§í¸ ë¹í¸ì¤í¸ë¦¼"ì ëì§í¸ ë°ì´í°ì í¬ê´ì ì§í©ì ë§íê³ , ë°ë¼ì ì´ ì©ì´ë ëì§í¸ ì½í í¸, ì½ë ë¸ë¡ ëë ëì§í¸ ë°ì´í° ì§í©ê³¼ ìí¸êµíì ì¼ë¡ ì¬ì©ë ì ìë¤. ì½ë ë¸ë¡ ì©ì´ì ê²½ì°ì, ì¸ì©ë ë°ì´í°ë ì¤íê°ë¥ íì¼, ì¤íê°ë¥ ì¤í¬ë¦½í¸ ëë ìì¬ì½ëì ìê³ ë¦¬ì¦ ì¤ëª ëë ë¸ë¡ì ëíë´ë ê²ì¼ë¡ ëí ì¶ì í ì ìë¤.Embodiments of various embodiments will now be described with reference to the accompanying drawings. In all instances, the term "digital bitstream" refers to a comprehensive set of digital data, and thus the term may be used interchangeably with digital content, code blocks, or digital data sets. In the case of code block terminology, the quoted data may also be assumed to represent an algorithmic description or block of an executable file, executable script, or pseudocode.
ë 3ì ëì§í¸ ì½í í¸ì í©ì±í¤ì ìì±ì ëí ì¼ ì¤ìì를 ë³´ì¸ ëì´ë¤. ì´ í©ì±í¤(310)ë ì ì í ë°ì ê°ì´ í¹ì ìëí¬ì¸í¸ ì¥ì¹(목í ì ë)ì ê´ë ¨ë 구조ì ë¹ê°ìì± ë¹ë°í¤ì¼ ì ìë ìëí¬ì¸í¸ ì§ì íëì¨ì´ í¤(340)를 íì©íë ê¸ë¡ë² ì½í í¸ í¤(330)(ì´ê²ì ëì§í¸ ì½í í¸ì ìì ì ëë 창조ìì ìí´ ì ê³µëê±°ë ê²°ì ë ì ìì)ì ìí¸í ìì§(320)ì ì ì©í¨ì¼ë¡ì¨ ìì±ë ì ìë¤. í¹ì ìëí¬ì¸í¸ ë° ëì§í¸ ì½í í¸ ë ë¤ì í¹ìí ê²°ê³¼ì ì¸ í©ì±í¤ë í©ì±í¤ê° ì ê³µë ìëí¬ì¸í¸ ì¥ì¹ì ì ì¡ëì´ ì ì¥ëê³ , ëª ë¬¸ì¼ë¡ ì ì¥ëë¤.3 is a diagram illustrating an embodiment of generation of a composite key of digital content. This composite key 310 is a global content key 330 that utilizes an endpoint specific hardware key 340, which may be a structural invisible secret key associated with a special endpoint device (target unit) as described above (this is the And may be provided or determined by the owner or creator). The resulting composite key that is specific to both the special endpoint and the digital content is sent to and stored in the endpoint device provided with the composite key, and stored in a prestigious manner.
ë 4aë ë³´ìë ëì§í¸ ë°ì´í° ë¸ë¡ 구조ì ìì±ì ëí ì¼ ì¤ìì를 ë³´ì¸ ëì´ë¤. ì´ ì¤ìììì, ëì§í¸ ë°ì´í° ë¸ë¡(410)ì ìí¸íëì§ ìì ì ìì§ë§, ëì§í¸ ìëª (420)ì íë ì´ìì í í°(440 ëë 450)ì ê°ì§ ëì§í¸ ë°ì´í° ë¸ë¡ì¼ë¡ë¶í° í´ì± í¨ì(430)ì ìí´ ê³ì°ë ë©ìì§ ë¤ì´ì ì¤í¸ë¥¼ ìí¸íí¨ì¼ë¡ì¨ íì±ëë¤. ì기 í í°ì ë¹ë°í¤ ëë íìì¤í¬íì ê°ì´ ê³µê°ì ì¼ë¡ ì´ì©ê°ë¥í ë°ì´í°ì¼ ì ìë¤. ìí¸í ìì§(460, 461)ì íµê³¼í ë°ì´í°ë¥¼ ìí¸íí기 ìí´ ì¬ì©íë ë°©ë²ì ëì¼í ìë ìê³ ëì¼íì§ ìì ìë ìë¤. ë¹ë°í¤ë¥¼ ìí¸í í¤ ì¤ì íëë¡ì ì¬ì©íë ê²½ì°ìë ê·¸ ë¹ë°í¤ì ê°ì 모른 ì± ëì§í¸ ìëª ì ìì¡°íë ê²ì´ ë ì´ë µë¤. ëí, ìí¸í ëì(460, 461)ì ììë ê²°ê³¼ì ì ì²´ ë³´ìì±ì ê´ë ¨ì´ ìì§ë§, ê²°ê³¼ì ì¸ ëì§í¸ ìëª (420)ì ëìì ììê° ë³ê²½ëë©´ ë¬ë¼ì§ë¤ë ê²ì ìë ê²ë êµíì ì´ë¤.4A illustrates one embodiment for the generation of a secure digital data block structure. In this embodiment, the digital data block 410 may not be encrypted, but the digital signature 420 takes the message digest computed by the hashing function 430 from the digital data block with one or more tokens 440 or 450. Formed by encryption. The token can be publicly available data, such as a secret key or a timestamp. The method used to encrypt the data passed through the encryption engines 460 and 461 may or may not be the same. When using a secret key as one of the encryption keys, it is more difficult to forge a digital signature without knowing the value of that secret key. It is also instructive to know that the order of encryption operations 460 and 461 is not related to the overall security of the result, but that the resulting digital signature 420 will change if the order of the operations is changed.
ë 4bë ë³´ì ì½ë ë¸ë¡ ë°ì´í° 구조ì ìì±ì ëí ë¤ë¥¸ ì¤ìì를 ë³´ì¸ ëì´ë¤. ì´ ê²½ì°ì, ë¹ë°í¤(470)ë ëì§í¸ ë°ì´í° ë¸ë¡(471)ì 첨ë¶ëì´ ì ì²´ ë©ìì§(480)를 íì±íë¤. ìììì²ë¼, ì기 ì²¨ë¶ ëìì´ ë¹ë°í¤(470)를 ìµì´ ëì§í¸ ë°ì´í° ì§í©(471)ì ìì ëëì§ ëë ë¤ì ëëì§ë ê²°ê³¼ì ì¸ ë³´ìì±ì ê°í¨ì ë°ëì ê´ë ¨ì´ ìë ê²ì ìëì§ë§, ìµì¢ ê²°ê³¼ë ë§ì¼ ììê° ë³ê²½ëë©´ ë¬ë¼ì§ ê²ì´ë¤. ë³´ìì±ì ë³´ì¥í기 ìí´, ë¹ë°í¤(470)ë ìµì´ ëì§í¸ ë°ì´í° ì§í©(471)ê³¼ í¨ê» ê³µê°ëì´ìë ìëë¤ë ì ì ëí 주목íë¤. ê·¸ë¬ë¯ë¡, ê³µê°ë ë°ì´í° ì§í©ì ì ì²´ ë°ì´í° 구조(480)ë³´ë¤ë ëì§í¸ ë°ì´í° ì§í©(471)ì¼ë¡ íì ë ê²ì´ë¤. ê·¸ ë¤ìì, ì기 ì ì²´ ë°ì´í° 구조(480)ë ë 4aì ê´ë ¨íì¬ ììì ì¤ëª í ê²ê³¼ 본ì§ì ì¼ë¡ ëì¼í ë°©ë²ì¼ë¡ í´ì± í¨ì를 íµê³¼íë¤. ê·¸ë¬ë, ì´ ì¤ììì ìì´ì, ìµì¢ ì¶ë ¥(490)ì ë 4aì ëìí ëì§í¸ ìëª (420)ì í¹ì±ë¤ ì¤ ë§ì ê²ì ê°ì§ë§, ìí¸í ìì§(460 ëë 461)ì ì¬ì©ì ì구íì§ ìì ì ìë¤. ë°ë¼ì, ì´ ëìì ê²°ê³¼(490)ë ëì§í¸ ìëª ë±ê°ë¬¼ì´ë¼ê³ ì¸ì©ë ê²ì´ë¤. ì´ ëì§í¸ ìëª ë±ê°ë¬¼(490)ì ê°ê°ì ì ì¼í ì ì²´ ë°ì´í° 구조(480)ì ëíì¬ ì ì¼íë¤(í´ì± í¨ì(430)ê° ì ì í 구ì±ëìë¤ë ê°ì íì)ë ì ì 주목í´ì¼ íë¤. ë°ë¼ì, ë§ì¼ ë¹ë°í¤(470)ê° ëì§í¸ ë°ì´í° ì§í©(471)ì 창조ì ë° ê·¸ ëì§í¸ ë°ì´í° ì§í©ì ìë¹ì(ìëí¬ì¸í¸ ì¥ì¹ ëë 목í ì¥ì¹)ì ìí´ìë§ ê³µì ëë©´, ì´ë¤ ë ë¹ì¬ìë§ì´ ëì¼í ì¬ë°ë¥¸ ëì§í¸ ìëª ë±ê°ë¬¼(490)ì ì¬ìì±í ì ìì ê²ì´ë¤. ì´ ê²½ì°ì, ëì§í¸ ë°ì´í° ë¸ë¡(471)ì ê·¸ ë¹ë°í¤(470)ì(ë° ê·¸ì ë°ë¼ì 목í ì¥ì¹ì) ê²°í©ë ê²ì¼ë¡ ìê°í ì ìë¤.4B illustrates another embodiment of the generation of a secure code block data structure. In this case, the private key 470 is attached to the digital data block 471 to form the entire message 480. As before, whether the attachment operation places the secret key 470 in front of or behind the original digital data set 471 is not necessarily related to the resulting strength of security, but the final result will vary if the order is changed. will be. Note also that to ensure security, the secret key 470 should not be released with the original digital data set 471. Therefore, the published data set will be limited to the digital data set 471 rather than the entire data structure 480. The entire data structure 480 then passes through a hashing function in essentially the same manner as described above with respect to FIG. 4A. However, in this embodiment, the final output 490 has many of the characteristics of the digital signature 420 shown in FIG. 4A, but may not require the use of the encryption engine 460 or 461. Thus, the result 490 of this operation will be referred to as a digital signature equivalent. It should be noted that this digital signature equivalent 490 is unique for each unique overall data structure 480 (assuming that the hashing function 430 is properly configured). Thus, if the secret key 470 is shared only by the creator of the digital data set 471 and the consumer (endpoint device or target device) of the digital data set, only these two parties are the same correct digital signature equivalent 490. You will be able to recreate it. In this case, the digital data block 471 can be thought of as being coupled to its secret key 470 (and thus to the target device).
ë 5aë ìí¸í ë°ì´í° ë¸ë¡(510)ì í¹ì ì ë³µí¸ ìì§ ì½ë ë¸ë¡(562)ì ìí¸ì ì¼ë¡ ê²°í©íê³ ê·¸ ë¤ìì ê·¸ ì¡°í©(530)ì í´ì± í¨ì(540) ë° ìí¸í ìì§(561)ì ìí´ ê³ì°ë ëì§í¸ ìëª (524)ì ì´ì©íì¬ í¹ì ìëí¬ì¸í¸ì íëì¨ì´ ë¹ë°í¤(523)ì ê²°í©í기 ìí´, ì¬ê¸°ìì ì¤ëª í ë°ì ê°ì ë³´ì ìì¤í ì´ ì´ë»ê² ì´ì©ë ì ìëì§ì ëí ì¼ ì¤ìì를 ë³´ì¸ ëì´ë¤. ì´ ììì, ê³µê°í¤(522)(ê¸ë¡ë² ì½í í¸ ë¹ë°í¤(520)ë¡ ë³µí¸ ìì§ ì½ë ë¸ë¡(562)ì ë©ìì§ ë¤ì´ì ì¤í¸(521)를 ìí¸íí¨ì¼ë¡ì¨ 구ì±ë ê²)ë ìµì´ì ìí¸í ë°ì´í° ë¸ë¡(510)ê³¼ í¨ê» ë¨ì¼ ì°ì ë°ì´í° ì§í©(530)ì¼ë¡ì ê³µê°ì ì¼ë¡ ë¶ë°°ëë¤. ê²°í©ë ë©ìì§(530)(ê³µê°í¤(522)ì ê²°í©ë ìµì´ ìí¸í ë°ì´í° ë¸ë¡(510)ì í¬í¨í¨)ì ë©ìì§ ë¤ì´ì ì¤í¸ë¡ë¶í° ëì§í¸ ìëª (524)ì ìì±íë ëìì ì ì íê² ì¸ì¦ë ìëí¬ì¸í¸ ì¥ì¹ë§ì´ ìµì´ ìí¸í ë°ì´í° ë¸ë¡(510)ì ë³µí¸í ì ìê² íê³ , ì´ ë³µí¸ ì²ë¦¬ë ë³µí¸ ìì§(562)ì 미리 ê·ì ë ë°©ë²ì ì´ì©íì¬ ë¬ì±ë ì ìì ë¿ì´ë¤. ìí¸í ìì§ ì¬ì¬(560)(ì를 ë¤ë©´, ë©í°í (multi-term) í©ì± ìí¸í ë±)ì ë ë§ì ì»´í¬ëí¸ë¥¼ ì¶ê°í¨ì¼ë¡ì¨ ë ë§ì ì ì½ì´ ë³µí¸ ì¸ì¦ ì ì°¨ì ì½ê² ì¶ê°ë ì ìë¤ë ì ì 주목íë¤.5A cryptographically combines an encrypted data block 510 to a particular decryption engine code block 562 and then combines the combination 530 with the digital computed by the hashing function 540 and the encryption engine 561. One example of how a security system as described herein can be used to bind to the hardware secret key 523 of a particular endpoint using signature 524. In this example, the public key 522 (configured by encrypting the message digest 521 of the decryption engine code block 562 with the global content private key 520) is a single chain with the original encrypted data block 510. It is publicly distributed as data set 530. The operation of generating a digital signature 524 from the message digest of the combined message 530 (including the original encrypted data block 510 associated with the public key 522) can only be performed by the first properly authenticated endpoint device. Decryption of the encrypted data block 510 is possible, and this decryption process can only be achieved using a predefined method of the decryption engine 562. Note that by adding more components to the encryption engine chain 560 (eg, multi-term synthetic encryption, etc.), more constraints can be easily added to the decryption authentication procedure.
ë 5bë ë 5aì ëìí ì¤ììì ë³íì를 ë³´ì¸ ëì´ë¤. ì´ ì¤ìììì, í¹ìí ìí¸í ë©ìì§(511)ì 창조ìë ëª ë°±íê² ì¸ì¦ë ì ìì§ë§ í¹ì ì ìëí¬ì¸í¸ ì¥ì¹ììë§ ê·¸ë ë¤. ì¬ê¸°ìì, ìµì´ ìí¸í ë°ì´í° ë¸ë¡(511)ì ììì ì¤ëª í ê²ì²ë¼ í¹ì ë³µí¸ ë£¨í´(562)ì ìí¸ì ì¼ë¡ ê²°í©ëë¤. ì´ ì ìì, ë³µí¸ ë£¨í´(562)ì ë¹ëì¹ ìí¸í ìì§ì´ê³ , ì ë ¥ì 창조ìì ë¹ë° ê°ì¸í¤(525)ì´ë©°, ì¶ë ¥ì 창조ì ê°ì¸í¤ë¥¼ ì´ì©íë ê²½ì°ìë§ ì ííê² ë³µí¸ëë¤ë ê²ì ì¶ê°ë¡ í¹ì í ì ìë¤. ë¹ëì¹ ìí¸í 루í´(562)ì ë©ìì§ ë¤ì´ì ì¤í¸(527)ë ëì§í¸ ìëª (526)ê³¼ í¨ê» ìµì´ ìí¸í ëì§í¸ ë°ì´í°(511)ì 첨ë¶ëì´ ì ì²´ ë°ì´í° 구조(531)를 íì±íë¤. ë°ì´í° 구조(531)ë ê·¸ ë¤ìì ìëí¬ì¸í¸ ì¥ì¹ì ë¹ë°í¤(523), í´ì± í¨ì(544) ë° ìí¸í ìì§(561)ì ì´ì©íì¬ í¹ì ìëí¬ì¸í¸ ì¥ì¹ì ìí¸ì ì¼ë¡ ê²°í©ëì´ ëì§í¸ 구조(528)를 íì±í ì ìë¤. ì´ ì¤ììì ìí´, ìí¸í ë©ìì§(511)ê° ì§ì í ê²ìì´ ë³´ì¦ë ì ìê³ , ê·¸ 창조ìë 창조ìê° íëì¨ì´ ë¹ë°í¤(523)를 ìì íê³ ìë¤ë ì¬ì¤ì ìê² ëë¤. ì¬ê¸°ìì 주목í ê²ì ì¬ê¸°ìì ì¬ì©íë ì©ì´ 창조ì(author)ë ë°ëì ë°ì´í°ì ì°½ìì(originator)를 ì미íë ê²ì´ ìëê³ , íê°ì, ë¶ë°°ì, ëë ì´ë¬í ë°ì´í°ë¥¼ ë¶ë°°íê±°ë ë¤ë¥¸ ë°©ìì¼ë¡ íµì í기 ìíë ë¤ë¥¸ ì íì ìí°í°ë¥¼ ëí ì¸ì©í ì ìë¤. ì´ë¬í í¹ìí ì 뢰 ì¬ì¬ì´ ì¤ìí ì©ëë¡ ë ì ìë ì¼ ìë ìëí¬ì¸í¸ ì¥ì¹ì ë³´ì ìì¤í ì´ ë³´ì ì½ë ë¸ë¡(ìµì´ ë°ì´í° ë¸ë¡(511)ì ìí¸í ííë¡ ë´í¬ëì´ ìë ê²)ì ì´ì©íì¬ ê°±ì ëì´ì¼ íë ê²½ì°ì´ë¤.5B is a view showing a modification of the embodiment shown in FIG. 5A. In this embodiment, the creator of the special encrypted message 511 can be explicitly authenticated, but only on certain endpoint devices. Here, the original encrypted data block 511 is cryptographically coupled to a specific decryption routine 562 as described above. In this regard, the decryption routine 562 may further specify that the decryption routine 562 is an asymmetric encryption engine, the input is the creator's secret private key 525, and the output is correctly decrypted only when using the creator private key. The message digest 527 of the asymmetric encryption routine 562 is attached to the original encrypted digital data 511 along with the digital signature 526 to form the overall data structure 531. The data structure 531 is then cryptographically coupled to a specific endpoint device using the endpoint device's secret key 523, hashing function 544, and encryption engine 561 to form a digital structure 528. can do. By this embodiment, it can be assured that the encrypted message 511 is true, and the creator knows that the creator owns the hardware secret key 523. Note that the term author, as used herein, does not necessarily mean the originator of data, but may also refer to an authorizer, distributor, or other type of entity that wishes to distribute or otherwise communicate such data. You can quote. One example of where this special chain of trust can serve a critical purpose is when the security system of an endpoint device needs to be updated using a secure code block (which is originally embedded in the data block 511 in encrypted form).
ë 6ì ë³´ì ì½ë ë¸ë¡(620)ì ì¤íì ì ì´í기 ìí´ ì§ë ¬ í´ì ë°©ë²ì íì©íë ì¼ ì¤ìì를 ë³´ì¸ ëì´ë¤. ì´ ê²½ì°ìë 2ê°ì ë 립 ì½ë ë¸ë¡(610, 620)ì´ ìë¤. ì´ ììì, ì 1 ì½ë ë¸ë¡(ë³´ì ì½ë ë¸ë¡(610))ì ì 2 ì½ë ë¸ë¡(ë³´ì ì½ë ë¸ë¡(620))ì ëí 매립(embedded) ìë¸ë£¨í´ í¸ì¶ì í¬í¨íë¤. ë°ë¼ì, ë³´ì ì½ë ë¸ë¡(610)ì ëíì¬ í´ì± í¨ì(640)ì ìí´ ê³ì°ë ë©ìì§ ë¤ì´ì ì¤í¸(630)ë ë³´ì ì½ë ë¸ë¡(610) ë´ì í¬í¨ë ë³´ì ì½ë ë¸ë¡(620)ì ëí 참조ì ìì¡´íë¤. ê·¸ ë¤ìì, ì´ ë©ìì§ ë¤ì´ì ì¤í¸(630)ë ë³´ì ì½ë ë¸ë¡(610)ì ìê°ì¼ë¡ë¶í° 2ê°ì ë³´ì ì½ë ë¸ë¡ì í¨ê» ì°ê²°íë¤. ë¤ìì, ë©ìì§ ë¤ì´ì ì¤í¸(650)ë í´ì± í¨ì(670)를 ì´ì©íì¬ ì½ë ë¸ë¡(620)ì ëíì¬ êµ¬ì±ë ì ìë¤. ê·¸ë¬ë, ë©ìì§ ë¤ì´ì ì¤í¸(650)를 ë³´ì ì½ë ë¸ë¡(620)ë¿ë§ ìëë¼ ê·¸ í¸ì¶íë ë¶ëª¨ 루í´(ì´ ê²½ì°ìë ë³´ì ì½ë ë¸ë¡(610)) ë ë¤ì ê²°í©í기 ìíì¬, ìµì´ ë©ìì§ ë¤ì´ì ì¤í¸(630)ë í´ì± í¨ì(670)ì ìí´ ê³ì°ë ë©ìì§ ë¤ì´ì ì¤í¸(650)ì ëí ì¢ ìë¡ì ì¬ì©ë ì ìë¤. ì´ë¬í ì¢ ì ê°ì ì¬ë¬ ê°ì§ ë°©ë²ì¼ë¡ 구íë ì ìê³ , ê·¸ë¬í ë°©ë² ì¤ì íëë ìµì´ì ë©ìì§ ë¤ì´ì ì¤í¸(630)를 ì 2 ëì§í¸ ë°ì´í° ì§í©(ì를 ë¤ë©´, ì´ ê²½ì°ì ë³´ì ì½ë ë¸ë¡(620))ì ë¨ìí ì°ê²°íì¬ ì ì²´ ë©ìì§(660)를 íì±íë ê²ìì ì기íì. ê·¸ ë¤ìì, ì ì²´ ë©ìì§(660)ë í´ì± í¨ì(670)(ì´ê²ì í´ì± í¨ì(640)ì ëì¼í ê²ì¼ ìë ìê³ ëë ì´ë¤ ë¤ë¥¸ ë 립 í´ì± í¨ìì¼ ìë ìë¤)를 íµê³¼íì¬ ì 2 ë©ìì§ ë¤ì´ì ì¤í¸(650)를 íì±íê³ , ì´ê²ì ë°ë¼ì ë³´ì ì½ë ë¸ë¡(620)ë¿ë§ ìëë¼ ìµì´ ë©ìì§ ë¤ì´ì ì¤í¸(630)(ì´ê² ìì²´ë 2ê°ì ë³´ì ì½ë ë¸ë¡(610, 620)ì ìì¡´íë ê²ì) ë ë¤ì ìì¡´íë¤. ë 4bì ê´ë ¨íì¬ ììì ì¤ëª í ë°ì ê°ì´, ì기 ì°ê²°ë ììë¤(620, 630)ì ììë ê²°ê³¼ì ì¸ ë©ìì§ ë¤ì´ì ì¤í¸(650)ì ì¤ìí ì ìì§ë§, í´ì± í¨ì(670)ì ê²½ì°ìë ì ì²´ ë©ìì§(660)를 구ì±íë ììë¤ì ììê° í´ì± í¨ì(670)ì ë³´ìì ì¤ì§ì ì¼ë¡ ìí¥ì ì£¼ì§ ìëë¤.6 illustrates one embodiment utilizing a serial hash method to control the execution of secure code block 620. In this case, there are two independent code blocks 610 and 620. In this example, the first code block (secure code block 610) includes an embedded subroutine call to the second code block (secure code block 620). Thus, the message digest 630 calculated by the hashing function 640 for the security code block 610 relies on a reference to the security code block 620 contained within the security code block 610. This message digest 630 then concatenates the two security code blocks together from the time of the security code block 610. Message digest 650 may then be configured for code block 620 using hashing function 670. However, in order to couple the message digest 650 to both the security code block 620 as well as its calling parent routine (in this case security code block 610), the original message digest 630 is a hashing function 670. May be used as the seed for the message digest 650 calculated by This seed value can be implemented in a number of ways, one of which simply connects the original message digest 630 to a second set of digital data (e.g., security code block 620 in this case). Recall that it forms the entire message 660. The entire message 660 then passes through a hashing function 670 (which may be the same as the hashing function 640 or any other independent hashing function) to form a second message digest 650, This thus depends not only on the security code block 620 but also on the original message digest 630 (which itself depends on the two security code blocks 610, 620). As described above with respect to FIG. 4B, the order of the concatenated elements 620, 630 may be important for the resulting message digest 650, but in the case of the hashing function 670 make up the entire message 660. The order of the elements does not substantially affect the security of the hashing function 670.
ì기 ì 2 ë©ìì§ ë¤ì´ì ì¤í¸(650)ë ê·¸ ë¤ìì ììì ì¤ëª í ê²ê³¼ ì¤ì§ì ì¼ë¡ ì ì¬í ë°©ë²ì¼ë¡ ì¬ì©ëì´ ë³´ì ì½ë ë¸ë¡(620)ì´ ë³´ì ì½ë ë¸ë¡(610)ì¼ë¡ë¶í° í¸ì¶ë ê²½ì°ìë§ ì ííê² ì¤íëë ê²ì ë³´ì¦í ì ìë¤. ì½ë ë¸ë¡(620)ì ì¤ì ë¡ ì½ë ë¸ë¡(610)ì ì íí ë³µì í(ëë ë±ê° 참조)ì¼ ì ìê³ , ì´ê²ì´ íê· ìì¤í ì ì¤ìì를 구ì±íë¤. ëì¼í ì½ë ë¸ë¡ì 2ê°ì ì¬ë¡(instantiation) ê°ì ì ì¼í ì°¨ì´ì ì ë³´ì ì½ë ë¸ë¡ ë©ìì§ ë¤ì´ì ì¤í¸ë¥¼ íì±í기 ìí´ ì½ë ë¸ë¡ì 첨ë¶ëë í¹ìí ë©ìì§ ë¤ì´ì ì¤í¸ì¼ ê²ì´ë¤.The second message digest 650 may then be used in a substantially similar manner as described above to ensure that the secure code block 620 is executed correctly only when called from the secure code block 610. Code block 620 may actually be an exact duplicate (or equivalent reference) of code block 610, which constitutes an embodiment of a regression system. The only difference between two instances of the same code block would be the special message digest appended to the code block to form a secure code block message digest.
ì´ í¹ìí ì¤ììì ìì´ì, ì°ë¦¬ë ììì ë¹ë°í¤ë¥¼ ì¬ì©íì§ ììê³ , ê·¸ëì ì´ë° ì¢ ë¥ì 구조ë ì¬ê¸°ìì ì¤ëª íë ëì¼í ì ì²´ ë³´ì ìì¤í ì ì´ì©íë ììì ìëí¬ì¸í¸ ì¥ì¹ìì ì ë¹í ì¤í ìì를 ìííë í¹ì´ì±ìì´ ì¬ì©ë ì ìë¤ë ì ì 주목íë¤. ëí, ìììì ê°ì´, ì ì¬í ì를 구ì±í ì ìê³ , ê·¸ ê²½ì° ë³´ì ì½ë ë¸ë¡ ì¤ì ì´ë íë(610 ëë 620)ì ì¤íì ë©ìì§ ë¤ì´ì ì¤í¸(630 ëë 650) ëì ì í©ì±í¤ ê¸°ë° ëì§í¸ ìëª êµ¬ì¡° ëë ê·¸ ë±ê°ë¬¼ì ê°ê° íì©í¨ì¼ë¡ì¨ í¹ì ìëí¬ì¸í¸ ì¥ì¹ ëë ì¥ì¹ë¤ì ì§í©ì ì¶ê°ë¡ 구ìëë¤.In this particular embodiment, we did not use any secret keys, so this kind of structure could be used without the specificity of enforcing the proper order of execution on any endpoint device using the same overall security system described herein. Note that there is. Also, as before, similar examples can be constructed, in which case the execution of either of the security code blocks 610 or 620 replaces the composite key based digital signature structure or equivalent thereof, instead of the message digest 630 or 650, respectively. Utilization in addition to the particular endpoint device or set of devices.
ë 7aë ë³´ì ì½ë ë¸ë¡ ë©ìì§ì 구ì±ì ê´í ì¤ìì를 ë³´ì¸ ëì´ë¤. ì¼ ì¤ììì ìì´ì, ìí¸í ëì§í¸ ë°ì´í° ì§í©(711)ì í¬ì¸í°(720)ì ìí´ ìë³ë ìí¸í ìê³ ë¦¬ì¦ì ì´ì©íì¬ ìí¸íëìë¤. ë°ì´í° 구조(730)ë ëì§í¸ ë°ì´í° ì§í©(711)ê³¼ í¬ì¸í°(720)ì ì°ê²°ì ìí´ íì±ëë¤. ë°ì´í° 구조(730)ì ë©ìì§ ë¤ì´ì ì¤í¸(750)ë í´ì± í¨ì(740)ì ìí´ ìì±ëë¤. ì´ êµ¬ì±ì ìí¸í ë°ì´í° ì§í©ê³¼ ê·¸ ê´ë ¨ ë³µí¸ ë£¨í´ì ìí¸ì ê²°í©ì ê°ë¥íê² íë¤.7A illustrates an embodiment of a configuration of a security code block message. In one embodiment, encrypted digital data set 711 has been encrypted using an encryption algorithm identified by pointer 720. The data structure 730 is formed by the connection of the digital data set 711 and the pointer 720. The message digest 750 of the data structure 730 is generated by the hashing function 740. This configuration enables cryptographic combinations of encrypted data sets and their associated decryption routines.
ì 2 ì¤ììì ìì´ì, ì¶ê°ì í ì´ ì°ì ë°ì´í° 구조(731)ì ì¶ê°ëë¤. ì¦ í¬ì¸í°(721)ê° ë³µí¸í¤(760)ì ì¶ê°ëë¤. ì´ í¤(760)ë ë°ëì ì´ í¹ì ì¤ìììì ë¬ì¬íë íëì¨ì´ ê¸°ë° ë¹ë°í¤ì¼ íìë ìë¤ë ì ì 주목íì¬ì¼ íë¤. ì¬ì¤, í¬ì¸í°(721)ì ìí´ ì§ì ë í¤(760)ë ë¤ìì ë 7cì ê´ë ¨íì¬ ì¤ëª íë ë°ì ê°ì´ ë°ì´í° 구조 ìì²´ì¼ ì ìë¤. ê·¸ë ì§ ìì¼ë©´, ì´ ì¤ììë ììì ì¤ëª í ì¤ììì ì¤ì§ì ì¼ë¡ ì ì¬íë¤. ìí¸í ëì§í¸ ë°ì´í° ì§í©(711)ì ìµì´ì ë¹ìí¸í ë°ì´í° ì§í©(710)ì ëíì¬ ëìíë ìí¸í ìì§(770) ë° íë ì´ìì í¤(760)를 ì¬ì©í ê²°ê³¼ë¡ì ìì±ëë¤. ë©ìì§ ë¤ì´ì ì¤í¸(751)ë ì°ì ë°ì´í° 구조(731)ìì í´ì± í¨ì(741)를 ì´ì©íì¬ ìì±ëë¤. ì´ ê²½ì°ì, ì´ì ìí¸í ë°ì´í° ì§í©(711)ì¼ë¡ë¶í° ë¹ìí¸í ë°ì´í° ì§í©(710)ì ì¬ìì±í기 ìí´ ì¬ì©ë ì ìë ì ì¼í¤(760) ë° ìí¸í ìì§(770) ë ë¤ì ë¹ìí¸í ë°ì´í° ì§í©(710)ì ìí¸ì ì¼ë¡ ì°ê´ìí¤ë ë©ì¹´ëì¦ì´ ìë¤. ìììì ì¤ììì ê°ì´, ì¶ê°ì í ì 주ì´ì§ ìëí¬ì¸í¸ ì¥ì¹ ë° ê·¸ ì ì¼í íëì¨ì´ ë¹ë°í¤(760)ìì ë§ì¡±ëì´ì¼ íë í¹ìí ì¡°ê±´ë¤ì ì§í©ì ì ì²´ 구조를 ìí¸ì ì¼ë¡ ê²°í©í기 ìí´ ìí¸í ì¬ì¬ì ì¶ê°ë ì ìë¤. ëì§í¸ ë°ì´í° ì§í©(710, 711)ì í¬ë§· ë° ìí¸í ìí(ì¦, ìí¸íëìëì§ ìëì§)ë ê·¸ ì¸ë¶ê° í¬ì¸í°(720, 721)ë¡ë¶í° ì¶ë¡ ë ì ì기 ë문ì ì´ ì²ë¦¬ì ê´ë ¨ëì§ ìì ì ìë¤ë ì ì 주목íë¤.In the second embodiment, additional terms are added to the concatenation data structure 731. That is, the pointer 721 is added to the decryption key 760. It should be noted that this key 760 need not necessarily be the hardware based secret key described in this particular embodiment. In fact, the key 760 pointed to by the pointer 721 may be the data structure itself, as described below with respect to FIG. 7C. Otherwise, this embodiment is substantially similar to the embodiment described above. Encrypted digital data set 711 is generated as a result of using cryptographic engine 770 and one or more keys 760 that operate on the first unencrypted data set 710. Message digest 751 is generated using hashing function 741 in concatenation data structure 731. In this case, encrypting the non-encrypted data set 710 to both the unique key 760 and the encryption engine 770 can now be used to regenerate the non-encrypted data set 710 from the encrypted data set 711. There is a mechanism to associate with. As with the embodiment above, additional terms may be added to the cryptographic chain to cryptographically combine the entire structure into a set of special conditions that must be satisfied at a given endpoint device and its unique hardware secret key 760. Note that the format and encryption status (ie, encrypted or not) of the digital data set 710, 711 may not be relevant to this process because the details can be inferred from the pointers 720, 721.
ì´ê²ì ì¼ëì ëê³ , ë 7bë íê·í ë³´ì ìì¤í ìì ì¬ì©ë ì ìë ë²ì© ìí¸ ë°ì´í° 구조ì 기본 ì¼ë°í í¬ë§·ì íê°ì§ ê°ë¥í ì¤ìì를 ëìí ê²ì´ë¤. ì´ êµ¬ì¡°ì ì¤ììë ë¨ìíê³ ê°ë ¥íë©°, 3ê°ì 기본 ìì, ì¦ ì¼ë° ë°ì´í° ë¸ë¡(712), ë³µí¸ í¬ì¸í°(720) ë° ë³µí¸ í¤ í¬ì¸í°(721)ì ë¨ìí ì°ê²° 리ì¤í¸ë¡ì 구íë ì ìë¤. ì ì²´ì ì¸ ì°ê²° 리ì¤í¸ë ë°ì´í° 구조(732)ì í¨ê» 묶ì¬ì§ë¤. ì°ê²° 리ì¤í¸ë¥¼ ì¬ì©í¨ì¼ë¡ì¨ ì°ì ë°ì´í° 구조(732) ë´ì ììë¤ì ììíë, ë¹ë¡ ë°ì´í° 구조ì ëì ëë íê°ì ìí¥ì ì¤ ì ìë¤ íëë¼ë, ê·¸ 기ë¥ì ê´ê³ê° ìë¤ë ê²ì ì½ê² ì ì ìë¤. ì¼ë°(ì를 ë¤ë©´, 미리 ê·ì ëì§ ìì) ë°ì´í° ë¸ë¡ 구조 ë° ì°ê²° 리ì¤í¸ í¬ë§·ì ì´ì©íë ë¤ë¥¸ ì¤ìí íìì 3ê°ì ìì(712, 720, 721)ê° ë°ëì ì íì¼ë¡ ëë ì°ìì ì¼ë¡ ììì í´ì§ íìê° ìë¤ë ê²ì´ë¤. ë°ë¼ì, ì¼ ì¤ììë ì ì²´ì ë°ì´í° 구조(732)ì í¨ê» ì ì¥ëë ì´ë¤ ë¤ë¥¸ ë 립ì ì´ì§ë§ ìë§ë ê´ê³ê° ìë ë°ì´í°ë¥¼ í¬í¨í ë³´ì¡° ë°ì´í° 구조(713)를 í¬í¨í ì ìë¤. ì´ ê°ë ì ì¼ ì¤ììë ë 7ì ë³´ì¡° ë°ì´í° 구조(713) ë´ì¸¡ì ìë í¬ì¸í°(720)ì ìí´ ì§ì ë ê²ê³¼ ê°ì´, ì¤ì ë³µí¸ ìì§ ì½ë ë¸ë¡(771)ì ìì¹ìí¤ë ê²ì´ë¤. ë¤ë¥¸ ìë ì´ ë³´ì¡° ë°ì´í° ë¸ë¡ ë´ì¸¡ì ìë í¬ì¸í°(721)ì ìí´ í¹ì ë ì¤ì í¤ ê°ì ì ì¥íë ê²ì¼ ì ìë¤.With this in mind, FIG. 7B illustrates one possible embodiment of the basic generalization format of a general cryptographic data structure that can be used in a recursive security system. Embodiments of this structure are simple and powerful and can be implemented as a simple linked list of three basic elements: a generic data block 712, a decrypt pointer 720, and a decryption key pointer 721. The entire linked list is tied together in data structure 732. By using a linked list it can be readily seen that the ordering of the elements in the concatenated data structure 732 is not related to its function, although it may affect the operation or evaluation of the data structure. Another important aspect of using a generic (eg, not predefined) data block structure and linked list format is that the three elements 712, 720, 721 do not necessarily have to be linearly or sequentially ordered. Thus, one embodiment may include an auxiliary data structure 713 including any other independent but possibly related data stored with the global data structure 732. One embodiment of this concept is to locate the actual decoding engine code block 771, as indicated by the pointer 720 inside the auxiliary data structure 713 of FIG. Another example may be storing the actual key value specified by the pointer 721 inside this auxiliary data block.
ì기 2ê°ì§ ê²½ì°ì, ë³´ì¡° ë°ì´í° ë¸ë¡ì í¬í¨ë ì¤ì ë°ì´í°ë ë 4a, ë 4b, ë 5a, ë 5b, ë 6 ë° ë 7aì ì¤ìììì ë¤ìíê² ë¬ì¬ë ë©ìì§ ë¤ì´ì ì¤í¸ ëë ëì§í¸ ìëª ì ìì± ê³¼ì ìì ì¬ì©ë ì ìë¤. ì´ ëª ì¸ì ì¤ëª ìì 주ì§ë ë°ì ê°ì´, ì°ì ë°ì´í° ì§í©ì ì ì¥ë ê°ì¢ ë°ì´í° íëë í´ì± í¨ì를 ì ì í ì¤ê³íë©´ ê²°ê³¼ì ì¸ ë©ìì§ ë¤ì´ì ì¤í¸(ëë ëì§í¸ ìëª )ì ìí¥ì ì¤ ì ìë¤.In both cases, the actual data contained in the supplementary data block may be used in the process of generating the message digest or digital signature variously depicted in the embodiments of FIGS. 4A, 4B, 5A, 5B, 6 and 7A. Can be. As is well known in the description of this specification, various data fields stored in a concatenated data set can affect the resulting message digest (or digital signature) with proper design of the hashing function.
í¹ì ì¤ìììì íì©ëë í¤ë¥¼ ë³´í¸í기 ìí´ ì ì¬í ë¸ë¡ êµ¬ì¡°ê° ëí ì¬ì©ë ì ìë¤ë ê²ì´ ëª ë°±íë¤. ë 7cë í¤ë¤ë§ì í¬í¨íë ë³´ì ì½ë ë¸ë¡(733)ì ì¼ ì¤ìì를 ëìí ê²ì´ë¤. ì¬ê¸°ìì, ë°ì´í° ë¸ë¡ì ì¥ì¹ ì§ì í¤(714, 715, 716)(ëë íìíë¤ë©´ ë¤ë¥¸ ê²)ì 리ì¤í¸ë¥¼ í¬í¨í ì ìë¤. ì´ ììì, ì´ë¤ í¤ ì¤ ììì í¤ë ìí¸í ìì§(771, 772)ì ì´ì©íì¬ ê°ê° ìí¸íë ìëí¬ì¸í¸ ì¥ì¹(760) ë° ìëí¬ì¸í¸ ì¥ì¹ íìì¤í¬í ë ì§ì¤í°(790)ì ë¹ë°í¤(ì를 ë¤ë©´)를 ì´ì©íì¬ ìì±ë ì ìë¤. ë³´ì ìì¤í ì ê°ë ¥í¨ì ìê°ìì ì´ë¬í ëìì ëí´ ììì ì¤ëª í ê²½ì°ì²ë¼, ìí¸í ìì§(771, 772)ì´ ë³ê°ì ê²ì´ê±°ë ë¬ë¼ì¼ íë¤ë íìì¡°ê±´ì ìê³ , ìí¸í ì¬ì¬ìì ì´ë¬í ìí¸í ëìì í¹ì ìì ëí 기본ì ì¸ ì íì´ ìì¼ë©°, ì´ë¬í ëìì ììê° ê²°ê³¼ì ì¸ í©ì±í¤ì 문ì ê° ë ì ìì§ë§ ìí¸í ëìì ëí í¹ì ììì ëí íìì¡°ê±´ì ìë¤. ì´ ê²½ì°ì 주ì§ëë ë¤ë¥¸ íëì í¹ì§ì ì°ì í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(733)ì í¤ ë¦¬ì¤í¸ í¬ì¸í° ìì(721)ê° ëë¤ë¥¸ ì°ì í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(734)를 ì§ì í ì ìë¤ë ê²ì´ë¤. ì´ë¤ ë°ì´í° 구조ë ë ë¤ ë 7bì ëìí ê²ê³¼ ëì¼í ë²ì© ìí¸ íìì ê°ê¸° ë문ì, í¤ ë¦¬ì¤í¸ ë°ì´í° 구조ë íê·ì ë°©ë²ì¼ë¡ íì±ë ì ìë¤. ë°ë¼ì, ì´ë¬í íê·í ë³´ì ìì¤í ì ì¤ìììì ì¬ì©íë í¤(733)ë ë³´ì íë¡í ì½ì ì¤ììê° ì ì©ë ì ìë ììì ë¤ë¥¸ ë°ì´í°ì ëì¼í 구조를 ì´ì©íì¬ ëì¼í ë°©ë²ì¼ë¡ ë³´í¸ë ì ìì¼ë©°, ë§ì°¬ê°ì§ë¡, ì´ë¬í ë³´í¸ë í¤ë ì¬ê¸°ìì ì¤ëª íë ìì¤í ë° ë°©ë²ì ì¤ììì ìí´ ë³´í¸ë ë¤ë¥¸ ë°ì´í°ì ê°ì ë°©ë²ì¼ë¡ ìëí¬ì¸í¸ ì¥ì¹ìì ëí ë³µí¸ ë° ì¸ì¦ë ì ìë¤.It is apparent that similar block structures may also be used to protect the keys utilized in certain embodiments. 7C illustrates one embodiment of a secure code block 733 that includes only keys. Here, the data block may include a list of device specific keys 714, 715, 716 (or others if necessary). In this example, any of these keys uses a secret key (e.g.,) of endpoint device 760 and endpoint device timestamp register 790, respectively, encrypted using cryptographic engines 771 and 772. Can be generated. There is no requirement that the cryptographic engines 771 and 772 be separate or different, as described above in terms of the strength of the security system, and there is no fundamental restriction on the specific number of such cryptographic operations in the cryptographic chain. However, the order of these operations can be a problem for the resulting composite key, but there is no requirement for a specific order for the cryptographic operations. Another feature noted in this case is that the key list pointer element 721 of the concatenated key list data structure 733 can point to another concatenated key list data structure 734. Since these data structures both have the same general cryptographic format as shown in Fig. 7B, the key list data structure can be formed in a recursive manner. Thus, the key 733 used in embodiments of such a recursive security system can be protected in the same way using the same structure as any other data to which embodiments of the security protocol can be applied, and likewise, such protected keys May also be decrypted and authenticated at the endpoint device in the same manner as other data protected by embodiments of the systems and methods described herein.
ì´ì ë 8ì 참조íë©´, ìí¸í ì½í í¸ë¥¼ ë³µí¸í기 ìí´ í©ì±í¤ê° ì´ë»ê² íì©ë ì ìëì§ì ëí ì¼ ì¤ììê° ëìëì´ ìë¤. ì´ ë³µí¸ ëìì ììì ì¤ëª í ê²ì²ë¼ "ë³´ì 모ë"ìì ë°ìí ì ìë¤. ì¬ê¸°ìì, ì½í í¸(810)ë í©ì±í¤(830)ì í¨ê» ìëí¬ì¸í¸ ì¥ì¹ì ì ê³µëê³ , ì´ë ì½í í¸ë ì´ê¸°ì ê¸ë¡ë² ì½í í¸ í¤ë¥¼ ì´ì©íì¬ ìí¸íë ê²ì´ë¤. í©ì±í¤(830)ë ë 3ì 참조íì¬ ììì ì¤ëª í ê²ì²ë¼ ìì±ë ì ìë¤. ë°ë¼ì, ìí¸í ì½í í¸(810)ê° ìëí¬ì¸í¸ ì¥ì¹ì ìì ë ë, ìí¸í ì½í í¸ë ê´ë ¨ë í©ì±í¤(830)ì í¨ê» ìì ë ì ìë¤. ì¥ì¹ì ë¹ë°í¤(840)ê° ì¡ì¸ì¤ë ì ìëë¡ ë³´ì 모ëìì ì¤ííë©´, í©ì±í¤(830)ë ë³´ì ì½ë ë¸ë¡(860)ì ë´ì¸¡ìì ë³µí¸ëì´ ê¸ë¡ë² ì½í í¸ í¤ë¥¼ ì°ì¶í ì ìë¤. ê¸ë¡ë² ì½í í¸ í¤ë ê·¸ ë¤ìì ìµì´ ìí¸í ì½í í¸(810)를 ë³µí¸íëë¡ ë³´ì ì½ë ë¸ë¡(860) ë´ìì ì¬ì©ëì´ ë³µí¸ ì½í í¸(880)를 ì°ì¶í ì ìë¤.Referring now to FIG. 8, one embodiment of how a composite key can be utilized to decrypt encrypted content is shown. This decryption operation can occur in "secure mode" as described above. Here, the content 810 is provided to the endpoint device with the composite key 830, where the content is initially encrypted using the global content key. The composite key 830 may be generated as described above with reference to FIG. 3. Thus, when encrypted content 810 is received at the endpoint device, the encrypted content may be received with an associated composite key 830. When executed in a secure mode such that the secret key 840 of the device can be accessed, the composite key 830 can be decrypted inside the secure code block 860 to yield a global content key. The global content key may then be used within the secure code block 860 to decrypt the original encrypted content 810 to yield the decrypted content 880.
ë 9ë ì½ë ë¸ë¡ì´ ì¤í ì ì í¹ì ìëí¬ì¸í¸ ì¥ì¹ìì ëìíëë¡ ì¸ì¦ëë ê²ì ê²ì¦í기 ìí´ ë¹ë°í¤ê° ì´ë»ê² íì©ë ì ìëì§ì ëí ì¼ ì¤ìì를 ë³´ì¸ ëì´ë¤. ì¤íì ìí íë³´ ì½ë ë¸ë¡(910)ì´ ìëí¬ì¸í¸ ì¥ì¹ì ì ê³µë ì ìê³ , ëë ìì ë(ì를 ë¤ë©´, ë 8ì 참조íì¬ ììì ì¤ëª í ê²ì²ë¼) ìí¸í ëì§í¸ ì½í í¸ë¥¼ ë³µí¸í¨ì¼ë¡ì¨ ì»ì´ì§ ì ìë¤. ê²ë¤ê°, ìëí¬ì¸í¸ ì¥ì¹ë íë³´ ì½ë ë¸ë¡(910)ì ëìíë ëì ëì§í¸ ìëª (920)ì ìì í ì ìë¤. ì´ ëì§í¸ ìëª (920)ì ìëí¬ì¸í¸ ì¥ì¹ íëì¨ì´ ì§ì ë¹ë°í¤(930)를 ì´ì©íì¬ ìí¸íë ì½ë ë¸ë¡ì¼ë¡ë¶í° (ì를 ë¤ë©´, ì´ ì½ë ë¸ë¡ì í´ì±í¨ì¼ë¡ì¨) ìì±ë ë©ìì§ ë¤ì´ì ì¤í¸ë¥¼ í¬í¨í ì ìë¤. ë°ë¼ì, íë³´ ì½ë ë¸ë¡(910)ì´ ì¤íë ì ìëì§ë¥¼ ê²ì¦í기 ìí´, ì¸ì¦ ëìì´ ë³´ì 모ëìì 구íëê³ , ì´ê²ì ìí´ íë³´ ì½ë ë¸ë¡(910)ì´ í´ìëì´ ë©ìì§ ë¤ì´ì ì¤í¸(912)를 ìì±íë¤. ì´ ë©ìì§ ë¤ì´ì ì¤í¸(912)ë ê·¸ ë¤ìì ìëí¬ì¸í¸ ì¥ì¹(ê²ì¦ì´ ë³´ì 모ëìì ì´ë£¨ì´ì¡ê¸° ë문ì ì¡ì¸ì¤ ê°ë¥í¨)ì ìëí¬ì¸í¸ ì¥ì¹ íëì¨ì´ ì§ì ë¹ë°í¤(930)를 ì´ì©íì¬ ìí¸íëì´ ëì§í¸ ìëª ì ìì±í ì ìê³ , ì´ ëì§í¸ ìëª ì ë¨ê³ 914ìì ìµì´ ê³µê¸ë ëì§í¸ ìëª (920)ê³¼ ë¹êµëë¤. ë§ì¼ ì´ ëì§í¸ íëì¨ì´ ë°ì ëì§í¸ ìëª ì´ íë³´ ì½ë ë¸ë¡(910)ì ëìíë ìì ëì§í¸ ìëª (920)ê³¼ ì¼ì¹íë©´, íë³´ ì½ë ë¸ë¡(910)ì ê²ì¦ë ê²ì¼ë¡ ë³´ìì ì¤íê°ë¥ì¼ë¡ ê°ì£¼í ì ìê³ , ê·¸ë ì§ ìì¼ë©´ ìì¸ ìë¬(exception error)ê° ë°ìíë¤(ë¨ê³ 916).9 illustrates one embodiment of how a secret key can be utilized to verify that a code block is authorized to operate on a special endpoint device prior to execution. Candidate code block 910 for execution may be provided to the endpoint device, or may be obtained by decrypting the received digital content (eg, as described above with reference to FIG. 8). In addition, the endpoint device may receive a corresponding digital signature 920 corresponding to candidate code block 910. This digital signature 920 may include a message digest generated from (eg, by hashing this code block) a code block encrypted using the endpoint device hardware specific secret key 930. Thus, to verify that candidate code block 910 can be executed, an authentication operation is implemented in secure mode, whereby candidate code block 910 is hashed to generate message digest 912. This message digest 912 may then be encrypted using the endpoint device hardware-specific secret key 930 of the endpoint device (accessible because the verification was done in secure mode) to generate a digital signature. The digital signature is compared with the digital signature 920 originally supplied in step 914. If this digital hardware-generated digital signature matches the received digital signature 920 corresponding to the candidate code block 910, the candidate code block 910 may be considered executable and considered executable, otherwise an exception error (exception error) occurs (step 916).
ë 10ì ì½ë ë¸ë¡ì´ (미리 ê·ì ë íê²½íìì) í¹ì ìëí¬ì¸í¸ íë¡ì¸ììì "ë³´ì ì¤í" 모ëë¡ ëìíëë¡ ì´ë»ê² íì©ëëì§ì ëí ì¼ ì¤ìì를 ë³´ì¸ ë¸ë¡ëì´ë¤. ì´ í¹ì ê²½ì°ì, ì½ë ë¸ë¡(1011)ì 미리 ê³ì°ë ëì§í¸ ìëª (1030)(ì´ê²ì ìëí¬ì¸í¸ ì§ì ë³µí¸í¤ë¼ê³ ë ë¶ë¦¬ì´ë¤)ì ì½ë ë¸ë¡ì ë©ìì§ ë¤ì´ì ì¤í¸ë¥¼ ì´ì©íì¬ êµ¬ì±ëê³ , ì¸ì¦ë 목í ìëí¬ì¸í¸ ì¥ì¹ì ë¹ë°í¤(1040), ì¸ì¦ë 목í ìëí¬ì¸í¸ ì¥ì¹ì ìµê·¼ íìì¤í¬í ê°(1041), ë° ììì ì¤ëª í íë ì´ì ìì ê°¯ìì ì ì½ ì¡°ê±´ë¤(ì´ í¹ì ì¤ììììë ëì ìëµí¨) ì¤ìì íë ì´ìì ì´ì©íì¬ ìí¸íëë¤.FIG. 10 is a block diagram illustrating one embodiment of how a code block is allowed to operate in a "secure execution" mode in a special endpoint processor (under a predefined environment). In this special case, the precomputed digital signature 1030 of code block 1011 (also called an endpoint specific decryption key) is constructed using the message digest of the code block and the secret key of the authenticated target endpoint device. 1040, encrypted using one or more of the last timestamp value 1041 of the authenticated target endpoint device, and one or more of any number of constraints described above (not shown in this particular embodiment).
ì´ í ë¤ ì¤ì ììì íëë í ìì²´ì ë¶ë¶ì§í©ì ë§ì¤í¹ í¨ì를 ì ì©í¨ì¼ë¡ì¨ 미리 ì¡°ê±´ì§ì´ì§ ì ìë¤ë ì ì ëí 주목í´ì¼ íë¤. ì를 ë¤ì´ì, íìì¤í¬í íëì ë¤ìì ìµíì ë¹í¸ê° ë§ì¤í¬ ì¤íëë©´(ë°ë¼ì ëì§í¸ ìëª ì ê³ì°ìì ê³ ë ¤ë ì ìì¼ë©´), ê·¸ íìì¤í¬í ê°ì ì í¨ ì ì(effective granularity)ì´ íëì¨ì´ì ì´ë í ë³ê²½ë ìì´ ì½ë ì¸ê·¸ë©í¸ë§ë¤ ì½ê² ì ì´ë ì ìë¤. ì´ë¬í ëì¼í ì리ë í¹ì ì¤ìììì ëì§í¸ ìëª ì ê³ì°ì ì¬ì©ëë ìì ê°¯ìì í ì ì ì©ë ì ìë¤.It should also be noted that any one of these terms can be preconditioned by applying a masking function to a subset of the term itself. For example, if many of the least significant bits of a timestamp field are masked off (and therefore cannot be taken into account in the calculation of a digital signature), the effective granularity of that timestamp value is code-segmented without any change in hardware. Can be easily controlled. This same principle can be applied to any number of terms used to calculate the digital signature in certain embodiments.
ë 7ìì ì¤ëª í í¤ ë¦¬ì¤í¸ ë°ì´í° 구조ììì ê°ì´, ì½ë ë¸ë¡(1011)ì ë´í¬íë ì°ì ëì§í¸ ë°ì´í° ì§í©(1010)ì ì ì´ë íëì ë³µí¸ í¬ì¸í°(1012) ë° ì ì´ë íëì ë³µí¸ í¤ ëë í¤ ë¦¬ì¤í¸ í¬ì¸í°(1013)를 ëí í¬í¨íë¤. ëí, ììì ì¤ëª í ê²ì²ë¼, ì´ë¤ ì¤ì ììì íëë ì¸ë¶ ë°ì´í° 구조(ìëí¬ì¸í¸ ì§ì ëì§í¸ í¤ ëë ëì§í¸ ìëª (1030)) ëë ì°ì ë°ì´í° ì§í©(1010)ì ì ì²´ì ì¼ë¡ ë´í¬ë ë´ì¥ ë°ì´í° 구조를 ì¸ì©í ì ìë¤.As in the key list data structure described with reference to FIG. 7, the concatenated digital data set 1010 containing the code block 1011 may include at least one decoding pointer 1012 and at least one decoding key or key list pointer 1013. Also includes. In addition, as described above, any one of these may refer to an embedded data structure entirely contained in an external data structure (endpoint specific digital key or digital signature 1030) or concatenated data set 1010.
ë 10ì ëìí ì¤ìì를 ì¤ëª í기 ìíì¬, ì½ë ë¸ë¡(1011)ì ìí¸íëì§ ììë¤ê³ ê°ì íë¤(ë°ë¼ì ìëí¬ì¸í¸ ì¥ì¹ 목í íë¡ì¸ììì ì ì¬ì ì¼ë¡ ì¤íê°ë¥íë¤). ì´ ê²½ì°ì, ë³µí¸ í¬ì¸í°ë ì¬ì© ì ì ì½ë ë¸ë¡(1011)ì ëí´ ì구ëë ì¶ê°ì ë³µí¸ê° ì기 ë문ì 무í¨(null)ì´ë¤. ì´ ê²½ì°ììì²ë¼ ì½ë ë¸ë¡ì´ ìí¸íëì§ ìì¼ë©´, ê·¸ ëìíë ë³µí¸í¤(í¬ì¸í°)(1013)ë ê´ë ¨ ìëí¬ì¸í¸ ëë íëì¨ì´ ì§ì ëì§í¸ ìëª (1030)ì ì§ì í ì ìë¤. ë°ë¼ì, ë 4a, ë 4b, ë 5a ë° ë 5b를 참조íì¬ ììì ì¤ëª í ê²ê³¼ ê°ì ë°ì´í° 구조 ë° ë°©ë²ì ì¤ìì를 ì¬ì©íì¬ ë¸ë¡ 1011ì ë¬ì¬ë ê²ê³¼ ê°ì ë¹ìí¸í ë°ì´í° ì§í©ì ì¬ì©ì ëí ë§¤ì° ë¤ìí ì¸ì¦, ìí¸ì ê²°í© ëë 기í ì ì½ë¤ì ìíí ì ìë¤.To illustrate the embodiment shown in FIG. 10, assume that code block 1011 is not encrypted (and therefore potentially executable in the endpoint device target processor). In this case, the decoding pointer is null because there is no additional decoding required for the code block 1011 before use. If the block of code is not encrypted as in this case, its corresponding decryption key (pointer) 1013 may point to the associated endpoint or hardware-specific digital signature 1030. Thus, a wide variety of authentication, encryption, for use of an unencrypted data set as depicted in block 1011 using embodiments of data structures and methods as described above with reference to FIGS. 4A, 4B, 5A, and 5B. Combinations or other constraints may be enforced.
ìëí¬ì¸í¸ ì§ì ëì§í¸ ìëª (ëë ë³µí¸í¤)(1030)ì´ íëì¨ì´ ë¹ë°í¤(1040)ë§ì ëë ëìì ì¼ë¡ íëì¨ì´ ë¹ë°í¤(1040)ì ìëí¬ì¸í¸ ì¥ì¹ íìì¤í¬í ë ì§ì¤í°(1041)ë§ì ì§ì íë ê²½ì°ì, ì°ë¦¬ë ë³´ì ìì¤í ê´ë ¨ í¸ì¶ì´ í¸ì¶ ì¬ì¬ì "ë°ë¥"ì ëë¬íë ê² ë° ì´ í¹ìí í¸ì¶ ì¬ì¬ìì ë³´ì ìì¤í ì ì¶ê°ì ì¸ ì¸µì ëí ì¶ê°ì í¸ì¶ì´ ìì ê²ì´ë¼ë ê²ì ê²°ì í ì ìë¤. ë°ë¼ì, ë³´ì ìì¤í íê·ë ì´ ì§ì ìì "ì¢ ë£"ëë¤. ì´ íê· ì¢ ë£ ì¡°ê±´ì ìëí¬ì¸í¸ ì§ì íëì¨ì´ ë¹ë°í¤(1040)ì ê°ì ëí ì¡ì¸ì¤ë¥¼ ì íì ì¼ë¡ íì© ëë ê±°ë¶íë "문ì§ê¸°"ë¡ì, ë° íëì¨ì´ í´ì± í¨ì ë¸ë¡(1061)ì ì¶ë ¥ì ì´ì©íë ìí¸ í¨ìì ëí ì ë ¥ ì±ë¶ì¼ë¡ìë§ ìì©íë íëì¨ì´ ë¸ë¡(1050)ì ìí´ ê²ì¶ëë¤. ë 10ì ëìí ììì, íëì¨ì´ ì§ì ë¹ë°í¤(1040) ë° íëì¨ì´ í´ì± í¨ì ë¸ë¡(1061)ì (ë©ìì§ ë¤ì´ì ì¤í¸) ì¶ë ¥ì ìí¸í ìì§(1062, 1063)ì ëí ì ë ¥ ìê·ë©í¸ë¡ì ì¬ì©ëë¤.If the endpoint-specific digital signature (or decryption key) 1030 points only to the hardware secret key 1040 or alternatively only the hardware secret key 1040 and the endpoint device timestamp register 1041, we secure It can be determined that system related calls reach the "bottom" of the call chain and that there will be no further calls to additional layers of the security system in this particular call chain. Thus, security system regression is "ended" at this point. This regression termination condition is a "gatekeeper" that selectively allows or denies access to the value of the endpoint-specified hardware secret key 1040, and as an input component to the cryptographic function using the output of the hardware hashing function block 1061. Only acting by hardware block 1050 is detected. In the example shown in FIG. 10, the (message digest) output of the hardware-specific secret key 1040 and the hardware hashing function block 1061 are used as input arguments to the crypto engines 1062 and 1063.
ë§ì§ë§ì¼ë¡, ìí¸í ìì§(1063)ì ì¶ë ¥(ì´ê²ì ìµì´ ì°ì ë°ì´í° 구조(1010)ì ëì§í¸ ìëª ì)ì´ ì ì ê³µê¸ë ëì§í¸ ìëª (1030)ì ê°ê³¼ ì¼ì¹íë©´, "ë³´ì 모ë ì¸ìì´ë¸" íëì¨ì´ ë¹í¸(1070)ê° ì¸í¸ëë¤. ì´ ì¡°ê±´ì ìëí¬ì¸í¸ íëì¨ì´ I-ìºì(1020)ì ë¡ëë íë³´ ì½ë ë¸ë¡(1011)ì´ ì´ì "ë³´ì" 모ëìì ì¤ííëë¡ ì¸ì¦ëììì íìíë¤. I-ìºì(1020)ì ì주íë íë³´ ì½ë ë¸ë¡(1011)ì 물리ì ì¸ ë³íê° ìê³ I-ìºì(1020) ìì²´ì ì´ë í ë³íë ìë¤ë ì ì 주목íë¤. ì´ ì§ì ìì ë³ê²½ì´ ìë ì ì¼í ê²ì "ë³´ì 모ë ì¸ìì´ë¸" íëì¨ì´ ë¹í¸(1070)ì ê°ì´ë¤.Finally, if the output of the cryptographic engine 1063 (which is the digital signature of the original concatenation data structure 1010) matches the value of the digital signature 1030 supplied previously, then the "Secure Mode Enable" hardware bit 1070. Is set. This condition indicates that the candidate code block 1011 loaded in the endpoint hardware I- cache 1020 is now authorized to run in "secure" mode. Note that there is no physical change in the candidate code block 1011 residing in the I- cache 1020 and no change in the I- cache 1020 itself. The only thing that changes at this point is the value of the "Secure Mode Enable" hardware bit 1070.
ë 11ì íê·í ë³´ì ìì¤í ì ìí´ ìíëë ë³µí¸ ëìì ì¼ ì¤ìì를 ë³´ì¸ ëì´ë¤. ì´ ë³µí¸ ëìì ë¶ë°°ë ì½í í¸ì ë³µí¸ ëë ë¤ë¥¸ ë°©ìì ì¡°ì ë° ì¬ì©íë ì²ë¦¬ìì ì¬ì©í ë³´ì ì½ë ë¸ë¡ì ì í¨íí기 ìí´ í©ì±í¤ë¥¼ ì¬ì©í ì ìë¤. ììì ì¤ëª í ê²ì²ë¼, ìëí¬ì¸í¸ ì¥ì¹ë ìí¸í ì½í í¸(1111), ë³µí¸ ìì§(1120)ì ëí í¬ì¸í°(1112)(ëë ë³µí¸ ìì§ ìì²´) ë° ìëí¬ì¸í¸ ì§ì í©ì±í¤(1130)ì ëí í¬ì¸í°(1113)(ë 9를 참조íì¬ ììì ì¤ëª í¨)를 ë´í¬í ë°ì´í° 구조(1110)를 ìì íë¤. ë³´ì 모ëììì ì¤íì íì©í기 ì ì, ì§ì ë ëë ìì ë í©ì± ë³µí¸ ìì§(1140)ì ì¸ì¦ë ê²ì´ë¤. ì´ ì¸ì¦ì ìëí¬ì¸í¸ ì¥ì¹ì ì주íë í´ì± í¨ì(1121)를 ì´ì©íì¬ í©ì± ë³µí¸ ìì§(1140) ì½ë ë¸ë¡ì ë©ìì§ ë¤ì´ì ì¤í¸(1122)를 ê³ì°í¨ì¼ë¡ì¨ ë¬ì±ë ì ìë¤. ë¹ë¡ ì´ ììì í´ì± í¨ì(1121)ê° íëì¨ì´ ë¸ë¡ì¼ë¡ì ë¬ì¬ëê³ ìì§ë§, ì´ í´ì± í¨ì(1121)ë ì를 ë¤ë©´ ììì ì¤ëª í ê²ì²ë¼ ìëí¬ì¸í¸ ì¥ì¹ì ë¹í¸ì¸(built-in) íëì¨ì´ í´ì± í¨ì ëì ì ì¬ì©ë ì ìë ë³´ì ìíí¸ì¨ì´ ì½ë ë¸ë¡ì¼ ì ìë¤. ê·¸ë¬ë, ì´ ê²½ì°, í´ì± í¨ìì ìíí¸ì¨ì´ ë²ì ì ê¶ê·¹ì ì¼ë¡ ì¸ì¦ ëë ê¶í ë¶ì¬ 목ì ì ë¹í¸ì¸ íëì¨ì´ í´ì± í¨ìì ì¬ì í ìì¡´íê³ , ê·¸ëì ì´ ê²½ì°ì ì¢ êµì ì¸ ì 뢰ì ê·¼ê°ì ìëí¬ì¸í¸ì ë¹í¸ì¸ íëì¨ì´ í´ì± í¨ì ë¸ë¡(1121)ì ì¬ì í ì¡´ì¬íë¤.11 is a diagram illustrating an embodiment of a decryption operation performed by a regression security system. This decryption operation may use a composite key to validate a security code block for use in decryption or other manner of manipulation and use of distributed content. As described above, the endpoint device may include encrypted content 1111, a pointer 1112 to the decryption engine 1120 (or the decryption engine itself), and a pointer 1113 to the endpoint-specific synthesized key 1130 (FIG. 9). And a data structure 1110 containing the information described above with reference to). Before allowing execution in secure mode, the noted or received synthetic decryption engine 1140 will be authenticated. This authentication can be accomplished by calculating the message digest 1122 of the synthesis decryption engine 1140 code block using a hashing function 1121 residing at the endpoint device. Although the hashing function 1121 is depicted as a hardware block in this example, this hashing function 1121 can be used instead of the built-in hardware hashing function of the endpoint device, for example, as described above. It may be a code block. However, in this case, the software version of the hashing function ultimately still depends on the built-in hardware hashing function for authentication or authorization purposes, so the root of the final trust in this case is in the built-in hardware hashing function block 1121 of the endpoint. Still exists.
ì´ í´ì± ë¸ë¡(1121)ì ìí´ ë°ìë ë©ìì§ ë¤ì´ì ì¤í¸(1122)ë ê·¸ ë¤ìì, ë¨ê³ 1123ìì, ë³µí¸ ìì§(1140)ì ëìíë 미리 ê³ì°ë ë©ìì§ ë¤ì´ì ì¤í¸(1150)ì ë¹êµëë¤. ì기 미리 ê³ì°ë ë©ìì§ ë¤ì´ì ì¤í¸(1150)ë ì를 ë¤ë©´ ìì í ë°©ìì¼ë¡ ìëí¬ì¸í¸ ì¥ì¹ì ì ê³µëê±°ë, 미리 ê³ì°ëì´ ìëí¬ì¸í¸ ì¥ì¹ ìì²´ì ì ì¥ëë¤. ë§ì¼ ë©ìì§ ë¤ì´ì ì¤í¸ê° ì¼ì¹íë©´, í©ì± ë³µí¸ ìì§(1140)ì ìëí¬ì¸í¸ ì¥ì¹ììì ì¤íì´ íì©ëë¤(ë¨ê³ 1125). ë§ì¼ ë©ìì§ ë¤ì´ì ì¤í¸ê° ì¤ì§ì ì¼ë¡ ëì¼íì§ ìì¼ë©´, ë¬´í¨ ì½ë ìì¸ê° ë°ìíë¤(ë¨ê³ 1126).The message digest 1122 generated by this hashing block 1121 is then compared with the precalculated message digest 1150 corresponding to the decryption engine 1140 at step 1123. The precalculated message digest 1150 may be provided to the endpoint device, for example in a secure manner, or may be precomputed and stored on the endpoint device itself. If the message digest matches, the synthesis decryption engine 1140 is allowed to run on the endpoint device (step 1125). If the message digest is not substantially the same, an invalid code exception is raised (step 1126).
ê·¸ë¬ë, ë§ì¼ ë©ìì§ ë¤ì´ì ì¤í¸ê° ì¤ì§ì ì¼ë¡ ëì¼íë©´, ìëí¬ì¸í¸ ì¥ì¹ì íë¡ì¸ìë ì´ì ë³´ì ì¤í 모ëë¡ ì§ì íì¬ í©ì± ë³µí¸ ìì§(1140)ì ë´í¬ë ì½ë를 ì¤ííë¤. ì´ í©ì± ë³µí¸ ìì§(1140)ì ì 1 ë¶ë¶ì ìëí¬ì¸í¸ ì¥ì¹ì íëì¨ì´ ì§ì ë¹ë°í¤(1131)를 íì©íì¬ ë¬ì±ëì´ í©ì±í¤ë¡ë¶í° ê¸ë¡ë² ì½í í¸ ì§ì í¤ë¥¼ ë°ìíë¤(ë¨ê³ 1132). ì 2 ë³µí¸ ëì(1142)ì íëí ê¸ë¡ë² ì½í í¸ ì§ì í¤ë¥¼ ì´ì©íì¬ ìí¸í ì½í í¸(1110)ë¡ë¶í° ë³µí¸ ì½í í¸(1152)를 ë°ìí기 ìí´ ë³µí¸ ëì(1141)ì ìí´ ë°ìë ì¤ê° 결과를 ì´ì©í ì ìë¤. ì¬ê¸°ìì 주목í ê²ì ë³µí¸ ìì§(1140)ì´ ë³µí¸ ìê³ ë¦¬ì¦ì ì(1141, 1142)ì¼ë¡ì ë¬ì¬ëì´ ìì§ë§, ìµì´ ìí¸í ë°ì´í° ì§í©(1110)ì ì ì©ë ë³´ì ì½ë ë¸ë¡(1140)ì ê°ì¢ ê°ë³ ì»´í¬ëí¸(1141, 1142 ë±)ì ëìì ìµì¢ ê²°ê³¼ê° íìí ë³µí¸ ì½í í¸ ê²°ê³¼(1152)를 ìì±íëë¡ ììì ë ì ê±°ë ë ë§ì ìì ì§ë ¬ ë³µí¸ ì¤í ì´ì§ë¥¼ í¬í¨í ì ìë¤ë ê²ì´ë¤. ì´ë¬í ê°ì¢ ê°ë³ ë³µí¸ ì»´í¬ëí¸ ì¤ì ììì 2ê°ë ëì¼íê±°ë ë¤ë¥¸ ìê³ ë¦¬ì¦ì¼ ì ìë¤ë ì ì ëí 주목íì¬ì¼ íë¤.However, if the message digests are substantially the same, the processor of the endpoint device now enters secure execution mode and executes the code contained in the synthesis decryption engine 1140. The first portion of the synthesis decryption engine 1140 is achieved utilizing the hardware-designated secret key 1131 of the endpoint device to generate a global content designation key from the synthesis key (step 1132). The second decryption operation 1142 may use the intermediate result generated by the decryption operation 1141 to generate the decrypted content 1152 from the encrypted content 1110 using the obtained global content designation key. Note that although the decryption engine 1140 is depicted as a pair of decryption algorithms 1141, 1142, the various individual components 1141, 1142, etc. of the security code block 1140 applied to the original encrypted data set 1110. The final result of the operation may include any fewer or more serial decoding stages to produce the decoded content result 1152 as needed. It should also be noted that any two of these various separate decoding components may be the same or different algorithms.
í¹ì ì¤ììì ìì´ì, 층ì ëí ì¶ê°ì ë³´ìì±ì ì¶ê°ë¡ ì구í ì ìê³ , ë°ë¼ì, ì¼ë¶ ì¤ìììì, í©ì±í¤ë ë 4a, ë 7c ë° ë 10ì 참조íì¬ ììì ì¤ëª í ê²ê³¼ ì¤ì§ì ì¼ë¡ ëì¼í ë°©ë²ì¼ë¡ ìëí¬ì¸í¸ ì¥ì¹ ì§ì íëì¨ì´ í¤ ë° ìëí¬ì¸í¸ ì§ì íìì¤í¬í ê°ì ì´ì©íì¬ ë¯¸ë¦¬ ê³ì°ë ë©ìì§ ë¤ì´ì ì¤í¸ë¡ë¶í° íì±ë ì ìë¤.In certain embodiments, additional security may be further required for the layer, and in some embodiments, the composite key ends in substantially the same manner as described above with reference to FIGS. 4A, 7C, and 10. It can be formed from a precalculated message digest using a point device specific hardware key and an endpoint specific timestamp value.
ë 12ë ìëí¬ì¸í¸ ì¥ì¹ìì íê·í ë³´ì íë¡í ì½ì 구ííë ì¼ ì¤ìì를 ë³´ì¸ ëì´ë¤. 구체ì ì¼ë¡, ë³´ì ì½ë ë¸ë¡ì ì í¨í를 ìí´ì ë° ë¶ë°°ë ëì§í¸ ë¹í¸ì¤í¸ë¦¼ì ì¤ì ë³µí¸ ë°/ëë ë¤ë¥¸ ì¬ì©ì ìí´ì í©ì±í¤ ì§í©ì ì¬ì©íë ì¼ ì¤ìì를 ë¬ì¬íë¤. ì´ ì¤ììë ë§ì ì ìì ë 11ì ëìí ì¤ììì ì ì¬íê³ , ë°ë¼ì ì¤ììì ìì´í íìì ëí´ìë§ ë 12ì ê´ë ¨íì¬ ì¤ëª íë¤. ìí¸í ì½í í¸(1211)를 í¬í¨í ë©ìì§(1210)ë ë³µí¸ ìì§(1240)ì ëí í¬ì¸í°(1212)(ëë ë³µí¸ ìì§ ìì²´), ì½í í¸ ì§ì í©ì±í¤(1231)(ë 8ê³¼ ê´ë ¨íì¬ ì¤ëª í ê²ì²ë¼), ë° ìëí¬ì¸í¸ ë° íìì¤í¬í ì§ì í©ì±í¤(1232)ì í¨ê» ìì ë ì ìë¤. ìí¸í ì½í í¸(1211)ë ìëí¬ì¸í¸ ì¥ì¹ì ë©ëª¨ë¦¬ì ë¡ëë ì ìê³ , ë³µí¸ ìì§(1240)ì ëí í¬ì¸í°(1212)ë ë©ëª¨ë¦¬(ì를 ë¤ë©´, ìëí¬ì¸í¸ ì¥ì¹ì ëª ë ¹ì´ ìºì ëë ëª ë ¹ì´ ìºìì ë³´ìë ë¶ë¶)ì ëí ë¡ëë ì ìë¤. ê·¸ ë¤ìì, ì§ì ë ë³µí¸ ìì§(1240)ì´ ì¸ì¦ë ê²ì´ë¤. ì´ ì¸ì¦ì ë 11ì 참조íì¬ ì¤ëª í ê²ê³¼ ì¤ì§ì ì¼ë¡ ì ì¬í ë°©ë²ì¼ë¡, ìëí¬ì¸í¸ ì¥ì¹ì ì¡´ì¬íë í´ì± í¨ì(1221)를 ì´ì©íì¬ ìí¸í ìì§ì ë©ìì§ ë¤ì´ì ì¤í¸ë¥¼ ê³ì°í¨ì¼ë¡ì ë¬ì±ë ì ìë¤.12 illustrates an embodiment for implementing a regression security protocol in an endpoint device. Specifically, one embodiment depicts an embodiment of using a composite key set for validation of secure code blocks and for actual decoding and / or other use of the distributed digital bitstream. This embodiment is similar to the embodiment shown in FIG. 11 in many respects, and therefore only different aspects of the embodiment will be described with reference to FIG. 12. The message 1210 including the encrypted content 1211 includes a pointer 1212 to the decryption engine 1240 (or the decryption engine itself), the content specific synthesis key 1231 (as described in connection with FIG. 8), and the endpoint. And a timestamp specified combination key 1232. Encrypted content 1211 may be loaded into the endpoint device's memory, and pointer 1212 to decryption engine 1240 may be stored in memory (eg, the secured portion of the instruction device's instruction cache or instruction cache). It can also be loaded. The pointed decryption engine 1240 will then be authenticated. This authentication can be accomplished by computing the message digest of the crypto engine using a hashing function 1221 present in the endpoint device in a substantially similar manner as described with reference to FIG.
ì´ ììì, íëì¨ì´ ë°ì ë©ìì§ ë¤ì´ì ì¤í¸ë ìí¸í ìì§ì ì´ì©íì¬ ìí¸íëë¤. ì기 ìí¸í ìì§ì ìëí¬ì¸í¸ ì¥ì¹ìì íëì¨ì´ ëë ìíí¸ì¨ì´ë¡ 구íë ì ìê³ , ìëí¬ì¸í¸ ì¥ì¹ íëì¨ì´ ì§ì ë¹ë°í¤(1270) ëë ìëí¬ì¸í¸ ì¥ì¹ íìì¤í¬í ë ì§ì¤í°(1260)ì ê°ê³¼ ê°ì´, ê³ì°ë ë©ìì§ ë¤ì´ì ì¤í¸ ë° íë ì´ìì íëì¨ì´ ì§ì í¤ ëë ë ì§ì¤í°ìì ëìíë íë ì´ìì ì§ë ¬ ì ìë í©ì± ìí¸í ìì§ ì¤í ì´ì§(1224, 1225 ë±)를 í¬í¨íë¤. ë°ìë ê²°ê³¼ì ì¸ í©ì± ëì§í¸ ìëª (1226)ì ë³µí¸ ìì§ ì½ë ë¸ë¡(1240)ì ì íí ëìíê³ , ë°ë¼ì í¹ì ìëí¬ì¸í¸ ì¥ì¹ì (íë ì´ìì ìí¸í ì¤í ì´ì§(1224, 1225) ë° ê°ì¢ ë¹ë° ëë ê³µê° ë³ì ëë ìì(ì를 ë¤ë©´ 1260, 1270)를 ì´ì©íì¬) ìí¸ì ì¼ë¡ ê²°í©ë ì ìë¤. ììì ì¤ëª í ë°ì ê°ì´, ì기 ë°ìë ëì§í¸ ìëª ì (ëì¼íê±°ë ìì´í ìí¸í ìì§ì ì´ì©í´ì ë° ì기 í©ì± ëì§í¸ ìëª ì ìì©ì±ì ì¶ê°ë¡ ì íí기 ìí´ ë¤ë¥¸ ì ì½ ë³ì ëë ìì를 ì´ì©í´ì) ì íì ì¼ë¡ ì¶ê°ë¡ ìí¸íë ì ìë¤. ëí, ì´ ëì§í¸ ìëª (1232)ê³¼ ê´ë ¨ë ì½ë ë¸ë¡(1240)ì ìì©ì ë¨ì¼ì ì ì¼í ìëí¬ì¸í¸ ì¥ì¹ë¥¼ ëì´ìê¹ì§ ì°ì¥í기 ìíë ê²½ì°ì, ì를 ë¤ë©´, ì ì¬ì ì¸ ë°ìë í©ì± ëì§í¸ ìëª ì í©ì ë¶ì¼ë¥¼ ëí기 ìí´ íë ì´ìì ìí¸í ì¤í ì´ì§ê° ì íì ì¼ë¡ ì íë ì ìë¤.In this example, the hardware generated message digest is encrypted using an encryption engine. The cryptographic engine may be implemented in hardware or software on an endpoint device, and may include computed message digests and one or more hardware, such as the value of an endpoint device hardware specific secret key 1270 or an endpoint device timestamp register 1260. One or more serially connected synthetic crypto engine stages (1224, 1225, etc.) operating on a designated key or register. The resulting composite digital signature 1226 corresponds exactly to the decryption engine code block 1240 and thus corresponds to a particular endpoint device (one or more cryptographic stages 1224 and 1225 and various secret or public variables or constants (e.g., For example, 1260, 1270). As described above, the generated digital signature may optionally be further encrypted (using the same or different encryption engine and using other constraint variables or constants to further limit the applicability of the composite digital signature). have. In addition, if one wishes to extend the application of code block 1240 associated with this digital signature 1232 beyond a single unique endpoint device, for example, to broaden the field of potential generated synthetic digital signature matching. One or more cryptographic stages may optionally be limited.
ë°ìë í©ì± ëì§í¸ ìëª (1226)ì ê·¸ ë¤ìì, ë¨ê³ 1223ìì, (ì를 ë¤ë©´, ì´ì ì§ì ìì ìëí¬ì¸í¸ ì½ë íê° ì²ë¦¬ì ì¼ë¶ë¡ì íê° ê¸°ê´ì ìí´) ìëí¬ì¸í¸ ì¥ì¹ì ìµì´ë¡ ì ê³µë ìí¸í ìì§(1240)ì ëìíë ìëí¬ì¸í¸ ë° íìì¤í¬í ì§ì í©ì± ëì§í¸ ìëª (1232)ê³¼ ë¹êµëë¤. ì´ í í°(1232)ì´ ëì§í¸ ìëª ì´ë í¤ë ìê´ìì´ ë°ì´í° 구조ë ëì¼íë©°, ë°ë¼ì, ì©ì´ "í¤"ì "ëì§í¸ ìëª "ì ì´ ê²½ì°ì ìí¸ êµíì ì¼ë¡ ì¬ì©ë ì ìë¤ë ì ì 주목íë¤.The generated synthetic digital signature 1226 is then sent to the encryption engine 1240 first provided to the endpoint device (eg, by the authorization authority as part of the endpoint code authorization process at the previous point), at step 1223. The corresponding endpoint and timestamp specified composite digital signature 1232 are compared. Note that the data structure is the same whether this token 1232 is a digital signature or a key, so the terms "key" and "digital signature" can be used interchangeably in this case.
í©ì± ëì§í¸ ìëª (1226, 1232)ì´ ì¤ì§ì ì¼ë¡ ëì¼í ê²½ì°, ìëí¬ì¸í¸ ì¥ì¹ì íë¡ì¸ìë ë³µí¸ ìì§ ì½ë ë¸ë¡(1240)ì ë´í¬ë ì½ë를 ë³´ì ì¤í 모ëë¡ ëììí¤ëë¡ íì©ë ì ìë¤. ë³´ì ì¤í 모ëìì ëìí ë, ë³µí¸ ìì§(1240)ì ìëí¬ì¸í¸ ì¥ì¹ì íëì¨ì´ í¤(1270)를 ì¬ì©í ì ìê³ , ë³µí¸ ìì§(1241 ëë 1242)ì ì´ì©íì¬ ì¥ì¹ ì§ì í©ì±í¤(1231)ë¡ë¶í° ê¸ë¡ë² ì½í í¸ ì§ì í¤ë¥¼ ë°ìí ì ìë¤. ë°ë¼ì, ê¸ë¡ë² ì½í í¸ ì§ì í¤ë ì¤ê° ê²°ê³¼ì¼ ì ìê³ , ë°ë¼ì ìºìëê±°ë ëë ë¤ë¥¸ ë°©ìì¼ë¡ í©ì± ë³µí¸ ìì§ ì½ë ë¸ë¡(1240)ì´ ìë ë¤ë¥¸ ììì ìíí¸ì¨ì´ ëë íëì¨ì´ ìí°í°ìê² ë³´ì¬ì§ ì ìë¤. ì´ ê¸ë¡ë² ì½í í¸ ì§ì í¤ë ê·¸ ë¤ìì ë³µí¸ ìì§(1243)ì ìí´ ì¬ì©ëì´ ìµì´ ìí¸í ì½í í¸(1211)ë¡ë¶í° ìµì¢ ë³µí¸ ì½í í¸(1250)를 ë°ìíë¤.If the composite digital signatures 1226 and 1232 are substantially the same, the processor of the endpoint device may be allowed to operate the code contained in the decryption engine code block 1240 in a secure execution mode. When operating in secure execution mode, the decryption engine 1240 can use the hardware device 1270 of the endpoint device and uses the decryption engine 1241 or 1242 to decode the global content designation key from the device specific synthesis key 1231. May occur. Thus, the global content designation key may be an intermediate result and therefore cannot be cached or otherwise shown to any software or hardware entity other than the synthetic decryption engine code block 1240. This global content designation key is then used by decryption engine 1243 to generate final decrypted content 1250 from original encrypted content 1211.
ê·¸ë¬ë, ë§ì¼ ë°ìë ëì§í¸ ìëª (1226)ì´ ê³µê¸ë ëì§í¸ ìëª (1232)ê³¼ ì¤ì§ì ì¼ë¡ ì¼ì¹íì§ ìì¼ë©´, ë³µí¸ ìì§ ì½ë ë¸ë¡(1240)ì ì¬ì© ìëê° ë¹ì¸ì¦ ë¹ì¬ìì ìí´ ì´ë£¨ì´ì§ ê²½ì°ë¥¼ í¬í¨í´ì ë¶ì¼ì¹ê° ë°ìíë ëª ê°ì§ ê°ë¥í ì´ì ê° ìë¤. ê·¸ë¬ë, ë¶ì¼ì¹ì ëí ë¤ë¥¸ ê°ë¥í ì´ì ë ë³µí¸ ìì§ì ìíí¸ì¨ì´ê° ê°±ì ë ê²½ì°(ë° ìëí¬ì¸í¸ì íìì¤í¬í ë ì§ì¤í°ê° ë§ì°¬ê°ì§ë¡ ì¦ë¶ëê±°ë ë¤ë¥¸ ë°©ìì¼ë¡ ë³ê²½ë ê²½ì°)ì¼ ì ìë¤. ì´ ê²½ì°ì, 2ê°ì ëì§í¸ ìëª ì ì¼ì¹íì§ ìì ì ìê³ , ìí¸í ìì§ ì½ë(1240)ê° (ì를 ë¤ë©´) ì기 ìí¸íëìëì§ ë¤ë¥¸ ë°©ìì¼ë¡ êµì²´ì íìì±ì´ ìëì§ë¥¼ ë¨ê³ 1281ìì ì²´í¬í ì ìë¤. ì¬ê¸°ìì ì¤ëª íë ì¤ììë íê·í ë³´ì ìì¤í ìì í¨ê³¼ì ì¼ë¡ íì©ë ì ìê³ , ë°ë¼ì ë§ì ê²½ì°ì ìí¸í ìê³ ë¦¬ì¦(ìí¸í ì½í í¸ë¡ ì§ì ë ê² ëë í¬í¨ë ê²)ì ê·¸ ìì ì´ ìí¸íë ì ìê³ ì´ ìí¸íë ìí¸í ìê³ ë¦¬ì¦ ìì²´ê° ìí¸íë ì ìë¤ë ê²ì ì기íì. ê·¸ëì, ë§ì¼ ìí¸í ìê³ ë¦¬ì¦ì ë°ìë ìëí¬ì¸í¸ ë° íìì¤í¬í ì§ì í©ì±í¤(1226)ì ìì ë ìëí¬ì¸í¸ ë° íìì¤í¬í ì§ì í©ì±í¤(1232)ê° ì¼ì¹íì§ ìì¼ë©´, ì´ê²ì ë¶ì ìë¨(indirection) ëë ìí¸íì ì ì´ë íë ì´ìì ì¸µì´ íì©ë ê²½ì°ì´ë¤.However, if the generated digital signature 1226 does not substantially match the supplied digital signature 1232, there are some inconsistencies that may occur, including when an attempt to use the decryption engine code block 1240 is made by an unauthorized party. There are two possible reasons. However, another possible reason for the mismatch can be if the software of the decryption engine is updated (and if the endpoint's timestamp register is likewise incremented or otherwise changed). In this case, the two digital signatures may not match, and at step 1281 it may be checked whether the encryption engine code 1240 is self-encrypted (eg) or if there is a need for replacement in another way. The embodiments described herein can be effectively utilized in a recursive security system, so in many cases an encryption algorithm (pointed out or included as encrypted content) can itself be encrypted and this encrypted encryption algorithm itself Recall that can be encrypted. Thus, if the generated endpoint and timestamp specified composite key 1226 and the received endpoint and timestamp specified composite key 1232 of the encryption algorithm do not match, this is at least one of indirection or encryption. This is the case when layers are utilized.
ììì ì¸ê¸í ë°ì ê°ì´, í¹ì ì¤íê°ë¥ ì½ë ë¸ë¡ì ìí¸í 층ì ì¶ê°íë ê°ë ì í¹ì ì½ë ë¸ë¡ì 구ì ë²ì ì ê·¸ ì½ë ë¸ë¡ì ìë¡ì´ ë²ì ì¼ë¡ êµì²´íë ëìê³¼ ë ¼ë¦¬ì ì¼ë¡ ë±ê°ì¼ ì ìë¤. ë°ë¼ì, ë³µí¸ ìì§(1240) ìì²´ê° ìí¸íëìëì§ ëë (ë¨ê³ 1282ìì íìí ê²ì²ë¼) ë¤ë¥¸ ë°©ìì¼ë¡ êµì²´ì íìì±ì´ ìëì§ë¥¼, ê·¸ ì½ë ë¸ë¡ê³¼ ê´ë ¨ë í기ì í í°, ì¦ ìëí¬ì¸í¸ ë° íìì¤í¬í ì§ì í©ì± ëì§í¸ ìëª (1232), ì½ë ë¸ë¡ì ë³µí¸ í¬ì¸í°(ëì ìëµ) ëë ì½ë ë¸ë¡ì ë³µí¸í¤ í¬ì¸í°(ëì ìëµ) ì¤ íë ì´ìì ìíí¨ì¼ë¡ì¨ ê²°ì í ì ìë¤. ì¼ ìë¡ì, ë§ì¼ ì½ë ë¸ë¡(1240)ì ê´ë ¨ ë³µí¸ í¬ì¸í°ê° 무í¨ê°(null value)ì ì§ì íë©´, ì´ê²ì ìí¸í ìì§(1240)ì´ ìí¸íëì§ ììê±°ë ëë ë¤ë¥¸ ë°©ìì¼ë¡ 구ìì¼ë¡ ëì§ ìììì íìíê³ , ë°ë¼ì ë°ìë ëì§í¸ ìëª (1226)ê³¼ ê³µê¸ë ëì§í¸ ìëª (1232)ì´ ì¤ì§ì ì¼ë¡ ëì¼íì§ ìì§ë§, ì½ë ë¸ë¡ì ì íí ëì§í¸ ìëª ì ìì±í ì ìë ë¤ë¥¸ ë²ì ì¼ë¡ êµì²´í기 ìí ë¤ë¥¸ ìì§(recourse)ê° ì기 ë문ì ìì¸ ìë¬ê° ë°ìí ì ìë¤(ë¨ê³ 1283). ê·¸ë¬ë, ë§ì¼ ë³µí¸ ìì§ ì½ë ë¸ë¡(1240)ì ë³µí¸ í¬ì¸í°ê° ë¤ë¥¸ ì½ë ë¸ë¡, ì¦ ë¤ë¥¸(ìë§ë ê°±ì ë) ìí¸í ìì§(ëì ìëµ) ëë ì´ë¤ ë¤ë¥¸ ì½ë ë¸ë¡ì ì§ì íë©´, ì´ ìë¡ì´ ì½ë ë¸ë¡ì´ ë¡ëëê³ ìì ì¸ì¦ ë¨ê³ë¤ì´ ë¤ì ìí¸í ìì§ì ì ì©ë ì ìë¤(ë¤ì ë§íë©´, ë¤ë¥¸ íëì íê·ì¸µì´ ëì ë ì ìë¤). ì´ íê·í ì¤í ë©ì¹´ëì¦ì ë°ìë ìëí¬ì¸í¸ ë° íìì¤í¬í ì§ì í©ì± ëì§í¸ ìëª (1226)ê³¼ ê³µê¸ë ìëí¬ì¸í¸ ë° íìì¤í¬í ì§ì í©ì± ëì§í¸ ìëª (1232) ê°ì ì¼ì¹ê° ë°ì(ë¨ê³ 1227ìì)íìë¤ê³ ê²°ì ëê±°ë ëë ì¼ì¹ê° ìê³ ë³µí¸ ìì§(1240) ìì²´ê° ìí¸íëì§ ììë¤ê³ ê²°ì ë ëê¹ì§ ê³ìëê³ , ê·¸ ì§ì ìì ìì¸ ìë¬ê° ë°ìí ì ìë¤(ë¨ê³ 1283).As mentioned above, the concept of adding an encryption layer to a special executable code block may be logically equivalent to replacing the old version of the special code block with a new version of that code block. Thus, whether the decryption engine 1240 itself has been encrypted or otherwise needs to be replaced (as indicated in step 1282), the following tokens associated with the code block, i.e. the endpoint and timestamp specified synthetic digital signatures ( 1232), by testing one or more of a decoding block (not shown) of the code block or a decoding key pointer (not shown) of the code block. As an example, if the associated decryption pointer of code block 1240 indicates a null value, this indicates that cryptographic engine 1240 was not encrypted or otherwise outdated. The generated digital signature 1226 and supplied digital signature 1232 are not substantially the same, but there is no exception error because there is no other recourse to replace the code block with another version that can generate the correct digital signature. May occur (step 1283). However, if the decryption pointer of decryption engine code block 1240 points to another code block, that is, another (possibly updated) encryption engine (not shown) or any other code block, then this new code block is loaded and the above authentication The steps may be applied to the next encryption engine (in other words, another regression layer may be introduced). This regression execution mechanism determines that a match has occurred (at step 1227) between the generated endpoint and timestamp specified composite digital signature 1226 and the supplied endpoint and timestamp specified composite digital signature 1232, or the match is not found. And continue until it is determined that the decryption engine 1240 itself has not been encrypted, at which point an exception error may occur (step 1283).
ë§ì¼ ë°ìë ìëí¬ì¸í¸ ë° íìì¤í¬í ì§ì í©ì± ëì§í¸ ìëª (1226)ê³¼ ê³µê¸ë ìëí¬ì¸í¸ ë° íìì¤í¬í ì§ì í©ì± ëì§í¸ ìëª (1232)ì´ ì¼ì¹íë¤ê³ ê²°ì ëë©´, íê·ê° ì¢ ë£ëê³ ì¸ì´ë(unwound)ë ì ìë¤. ì´ê²ì ì ì²´ì ì¸ íê·í í¸ì¶ ì¬ì¬ì íµí ì´ê¸°ì ìë°©í¥ íµê³¼ ì¤ì ì¤íìì ì¡°ì°ëì´ ì¸ì´ë¸ë ê° ì½ë ë¸ë¡ì ì¸ì¦ ë° ì¤íì ìë°íë¤. ì´ë¤ ì½ë ë¸ë¡ì ì¼ë¶ ëë ìë§ë 모ëë ë°ëì ìí¸í ìì§ ëë ë³µí¸ ìì§ì¼ íìê° ìë¤ë ê²ì 주목íì¬ì¼ íë¤. ì´ë ê²½ì°ì´ë , ì´ë¤ ê° ì½ë ë¸ë¡ì 목í ìëí¬ì¸í¸ ì¥ì¹ê° ë³´ì ì¤í 모ëìì ëìíë ëì ì¸ì¦ë ì ìë¤.If it is determined that the generated endpoint and timestamp specified composite digital signature 1226 and the supplied endpoint and timestamp specified composite digital signature 1232 match, then the regression can be terminated and unwound. This involves authenticating and executing each block of code encountered and saved on the stack during the initial forward pass through the entire recursive call chain. It should be noted that some or perhaps all of these code blocks need not necessarily be encryption engines or decryption engines. In either case, each of these code blocks can be authenticated while the target endpoint device is operating in secure execution mode.
ì´ ì¤íì íê·í ë³´ì ìì¤í ì ìí´ ìíë ì ìë ë³µí¸ ëìì ì¼ ì¤ìì를 ëìíë ë 13ì 참조íì¬ ë ì ì¤ëª ë ì ìë¤. ëìë ë°ì ê°ì´, ìëí¬ì¸í¸ ì¥ì¹ë ë©ìì§(1310)를 ìì í ì ìê³ , ì´ ë©ìì§(1310)ë ë¤ë¥¸ 무ìë³´ë¤ë ì½í í¸ ì§ì í©ì±í¤(1316)(ë 8ê³¼ ê´ë ¨íì¬ ì¤ëª í¨)ì í¨ê» ìí¸í ì½í í¸(1312), ë³µí¸ ìì§ ë°ì´í° 구조(1320)ì ëí í¬ì¸í°(1313) ëë ë³µí¸ ìì§ ì체를 ë´í¬í ì ìì¼ë©°, ìµì´ ë©ìì§(1310) ë° í¤ ë¦¬ì¤í¸ í¬ì¸í°(1314)ì 매립ëì´ ìì¼ë©´ í¤ ëë í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(1318)를 ì§ì í ì ìë¤. ììì ì¤ëª í ë°ì ê°ì´, ì´ ë°ì´í° 구조ë í¤ ëë í¤ ë¦¬ì¤í¸(1316) ëë ëì§í¸ ìëª (1317)ì í¬í¨í ì ìë¤. ë³µí¸ ìì§ ë°ì´í° 구조(1320)ë ìí¸í ì½ë ë¸ë¡(1321), ìí¸í(ëë ëìì ì¼ë¡ í´ííì¬ êµì²´ì íìì±ì´ ìë) ë³µí¸ ì½ë ë¸ë¡(1321)ê³¼ ê´ë ¨ë íì ë³µí¸ í¬ì¸í°(1322) ë° ê´ë ¨ ë³µí¸ í¤ ë¦¬ì¤í¸ í¬ì¸í°(1323)를 ë´í¬í ì ìë¤. íì ë³µí¸ í¬ì¸í°(1322)ë ìµì¢ ë³µí¸ ì½ë ë¸ë¡ ë°ì´í° 구조(1330)를 ì§ì í ì ìê³ , ì기 ìµì¢ ë³µí¸ ì½ë ë¸ë¡ ë°ì´í° 구조ë ë°ì´í° 구조(1330)ì ê²½ì°ì ë³µí¸ ì½ë ë¸ë¡(1331)ì´ ìí¸í ííë¡ ìì§ ìì ê²ì ì ì¸íë©´ ë³µí¸ ì½ë ë¸ë¡ ë°ì´í° 구조(1320)ì 구조ì ì¤ì§ì ì¼ë¡ ì ì¬í 구조를 ê°ëë¤.This implementation may be better described with reference to FIG. 13, which illustrates one embodiment of a decryption operation that may be performed by a regressive security system. As shown, the endpoint device can receive the message 1310, which is encrypted content 1312 along with the content specific synthesis key 1316 (described in conjunction with FIG. 8) among other things. May contain a pointer 1313 to the decryption engine data structure 1320 or the decryption engine itself, and if embedded in the initial message 1310 and the key list pointer 1314, the key or key list data structure 1318. Can be pointed out. As described above, this data structure may include a key or key list 1316 or digital signature 1317. Decryption engine data structure 1320 may include encryption code block 1321, subsequent decryption pointers 1322 associated with encryption (or alternatively degenerate to require replacement), and associated decryption key list pointers ( 1323). Subsequent decode pointer 1322 can point to the final decode code block data structure 1330, which in the case of data structure 1330 is that the decode code block 1331 is not in encrypted form. Except that, the structure of the decoding code block data structure 1320 is substantially similar.
ë 13ì ëìí ì¤ììì ëìì ë¤ìê³¼ ê°ì´ ì¤ëª í ì ìë¤. ìí¸í ì½í í¸ ë°ì´í° 구조(1310)ë ë´í¬ë ìí¸í ì½í í¸(1312)ì ë³µí¸ë¥¼ ììíì¬ ìëí¬ì¸í¸ íë¡ì¸ìì ë©ëª¨ë¦¬ ì¤íì´ì¤ì ë¡ëëë¤. ë°ì´í° 구조(1310)ë ë³µí¸ í¬ì¸í°(1313)를 ë´í¬í기 ë문ì, ê´ë ¨ ë³µí¸ ìì§ ì½ë ë¸ë¡ ë°ì´í° 구조(1320)ë ë©ëª¨ë¦¬ì ìì¹ì í´ì§ê³ ì½ì´ ë¤ì¬ì§ë¤. ì´ íì ë°ì´í° 구조(1320)ê° ëí ë³µí¸ í¬ì¸í°(1322)를 ë´í¬í기 ë문ì, í¬ì¸í°(1322)ì ê´ë ¨ë ë³µí¸ ìì§ ì½ë ë¸ë¡ ë°ì´í° 구조(1330)ë ë©ëª¨ë¦¬ì ìì¹ì í´ì§ê³ ë¡ëëë¤. ë°ì´í° 구조(1330)ì ìì´ì, ì´ ììì 매립 ë³µí¸ í¬ì¸í°(1332)ë ë¬´í¨ í¬ì¸í°ë¡ ê²°ì ëê³ , ê·¸ëì 목í ìëí¬ì¸í¸ ì¥ì¹ì ë³´ì ìì¤í ì´ íì¬ ë³µí¸ íê· ì¬ì¬ì´ ì¢ ë£ëìë¤ê³ ê²°ì í ì ìê³ (ì를 ë¤ë©´ ë 10ìì ì¤ëª í ê²ì²ë¼), ë°ë¼ì ë°ì´í° 구조(1330)ì ì¼ë¶ë¡ì ë©ëª¨ë¦¬ì ë§ ì½ì´ ë¤ì¬ì§ ë³µí¸ ìì§(1331)ì ë¹ìí¸í(ë° ë°ë¼ì ì ì¬ì ì¼ë¡ ì¤íê°ë¥í) ì½ë ë¸ë¡ì ë´í¬í ì ìë¤.The operation of the embodiment shown in FIG. 13 can be described as follows. The encrypted content data structure 1310 is loaded into the memory space of the endpoint processor in anticipation of decryption of the embedded encrypted content 1312. Since the data structure 1310 contains a decoding pointer 1313, the associated decoding engine code block data structure 1320 is positioned and read into memory. Because this subsequent data structure 1320 also contains a decoding pointer 1322, the decoding engine code block data structure 1330 associated with the pointer 1322 is located and loaded into memory. In the data structure 1330, in this example the embedded decryption pointer 1332 is determined to be an invalid pointer, so that the security system of the target endpoint device may determine that the current decryption regression chain has ended (e.g. in FIG. 10). As described, the decryption engine 1331, thus just read into memory as part of the data structure 1330, may contain unencrypted (and thus potentially executable) code blocks.
ëì§í¸ ì½í í¸(1331)ê° ì½ë ë¸ë¡ì´ê³ ë°ì´í°ê° ìëë¼ê³ ê²°ì ë ì ì기 ë문ì(ëì§í¸ ì½í í¸ê° í¸ì¶ë ë°©ë²ì¼ë¡), ë³µí¸ í¤ ë¦¬ì¤í¸ í¬ì¸í°(1333)(ë°ì´í° 구조(1330)ì ì¼ë¶ë¡ì ë©ëª¨ë¦¬ì ì½ì´ ë¤ì¬ì§ ê²)ì ìí´ ì§ì ë í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(1338)ê° ëì§í¸ ìëª (1337)(í©ì±í¤(1336)ì ì¶ê°í´ì)ì ë´í¬íê³ ìë¤ê³ ëí ê²°ì ë ì ìë¤. ì´ ìììì í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(1318, 1328, 1338)ë ë 7bì ê´ë ¨íì¬ ììì ì¤ëª í ë²ì© ìí¸ ë°ì´í°êµ¬ì¡°ë¥¼ ì´ì©íì¬ êµ¬íë ì ìë¤ë ì ì ëí 주목íì¬ì¼ íë¤. ë°ë¼ì, ì´ë¤ í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(1318, 1328, 1338)ììì ìê·ë©í¸ì ììë ë°ëì ê³ ì ë íìë ìê³ , ë°ë¼ì ì´ë¤ì ë°íììì ë°ì´í° 구조 ìì²´ê° ê´íµë ê²ì¼ë¡ í´ìë ì ìë¤. ì¬ì¤, ì´ë¤ í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(1318, 1328, 1338)ë í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(1318, 1328, 1338)ì ì¼ë¶ ëë ì ë¶ì ë³´ì¶©ì ë³µí¸ í¬ì¸í° ë° í¤ ë¦¬ì¤í¸ í¬ì¸í°ë¥¼ íµí©í¨ì¼ë¡ì¨ ì¶ê°ì ë³µí¸ ëë íìëë í´ìì ìí 참조(reference)를 í¬í¨í ì ìì§ë§, ì´ë¬í í¹ìí ìµì ì ê°ë¨ì±ì ìí´ ë 13ì ì¤ìììì ëìíì§ ììë¤.Because the digital content 1331 can be determined to be a code block and not data (in the manner in which the digital content was called), by the decryption key list pointer 1333 (read into memory as part of the data structure 1330). It can also be determined that the indicated key list data structure 1338 contains a digital signature 1335 (in addition to the composite key 1336). It should also be noted that the key list data structures 1318, 1328, 1338 in this example can be implemented using the general cryptographic data structures described above with respect to FIG. 7B. Thus, the order of the arguments in these key list data structures 1318, 1328, 1338 need not necessarily be fixed, so they can be interpreted at run time as the data structure itself is penetrated. In fact, these key list data structures 1318, 1328, 1338 may be incorporated into some or all of the key list data structures 1318, 1328, 1338 for further decoding or subsequent interpretation by incorporating key decode pointers and key list pointers. Although reference may be included, this particular option is not shown in the embodiment of FIG. 13 for simplicity.
í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(1338) ë´ì ì ì´ë íëì í¤ í¬ì¸í°(1336)ë ìëí¬ì¸í¸ì íëì¨ì´ ë¹ë°í¤(1392)ì ëí 참조ì ëìíë¤ê³ ëí ê²°ì ë ì ìë¤. ìëí¬ì¸í¸ì íëì¨ì´ ë¹ë°í¤(1392)ì ëí ì´ë¬í 참조ë ì ì í ë³´ì¡´ë ë©ëª¨ë¦¬ ìì¹(íë¡ì¸ìì ìí´ ì§ì íë ë ì ìê³ ë°ë¼ì 구조ì ì¼ë¡ ì§ì ë³´ì¬ì§ì§ ìëë¼ë íë¡ì¸ì ìí¤í ì³ì í¹ì ë ì ìë ìì¹)를 ì§ì í¨ì¼ë¡ì¨ ëª ìì ì¼ë¡, ëë í¬ì¸í°ì ëí´ ì´ë¤ í¹ë³íê² ë³´ì¡´ë ê°ì ì´ì©í¨ì¼ë¡ì¨ ììì ì¼ë¡ ë¬ì±ë ì ìë¤. ì´ë ê²½ì°ì´ë , ì´ ì°¸ì¡°ë ë¤ìí ìë¨ì ì´ì©íì¬ êµ¬íë ì ìì§ë§, ê·¸ë¬í ì¤ìì ì¤ì íê°ì§ ìë í¤ ë¦¬ì¤í¸ ë°ì´í° 구조ì "0"ì ê°("무í¨"ì ê°ê³¼ë ë¤ë¥¸ ê²ì)ì ìëí¬ì¸í¸ì íëì¨ì´ ë¹ë°í¤(1392)ì ëí 참조ì ê°ê² íë ê²ì´ë¤. í¤ ë¦¬ì¤í¸ ë°ì´í° 구조ì ì ì´ë ì¼ë¶ë¶ì´ ìëí¬ì¸í¸ì íëì¨ì´ ë¹ë°í¤(1392)를 ì¸ì©íë¤ë ì¬ì¤ì ë³µí¸ ìì§ ì½ë ë¸ë¡(1331)ì´ ëª©í ìëí¬ì¸í¸ ì¥ì¹ì íë¡ì¸ììì ë³´ì ì¤í 모ëë¡ ëìíë ¤ê³ ìëíë¤ë ê²ì ëí íìí ì ìë¤. ë°ë¼ì, íëì¨ì´ ê¸°ë° ëì§í¸ ìëª ë°ì기 ë¸ë¡(1390)ì ì¶ë ¥ì ë°ì´í° 구조(1337)ì ì ì¥ë ê°ê³¼ ë¹êµëë¤. 2ê°ì ê°ì´ ì¤ì§ì ì¼ë¡ ì¼ì¹íë ê²½ì°ì, íë¡ì¸ìë ë³´ì ì¤í 모ëë¡ì ì§ì ì´ íì©ëë¤.It may also be determined that at least one key pointer 1336 in the key list data structure 1338 corresponds to a reference to the hardware secret key 1332 of the endpoint. This reference to the endpoint's hardware secret key 1392 is explicitly stated by pointing to an appropriately reserved memory location (a location that can not be read directly by the processor and therefore can be specific to the processor architecture even though it is not directly visible structurally). This can be implicitly achieved by using some specially preserved values for, or pointers. In either case, this reference can be implemented using a variety of means, but one example of such an embodiment is to compare the value of "0" (which is different from the value of "invalid") of the key list data structure to the endpoint hardware. This is equivalent to a reference to the private key 1372. The fact that at least a portion of the key list data structure references the endpoint's hardware secret key 1332 may also indicate that the decryption engine code block 1331 is intended to operate in secure execution mode on the target endpoint device's processor. have. Thus, the output of the hardware-based digital signature generator block 1390 is compared with the value stored in the data structure 1335. If the two values substantially match, the processor is allowed to enter the secure execution mode.
ì¬ê¸°ìì 주목í´ì¼ í ê²ì íëì¨ì´ ê¸°ë° ëì§í¸ ìëª ë°ì기 ë¸ë¡(1390)(ì´ê²ì ëí ì¼ ì¤ììì ìì¸í ì¬íì ë 15를 참조íì¬ ë í¬ê´ì ì¼ë¡ ì ìë ê²ì´ë¤)ì, ì¼ ì¤ììì ìì´ì, íë ì´ìì ìíí¸ì¨ì´ ê¸°ë° ìì를 í¬í¨í ì ìì§ë§, ììì ì¤ëª í ê²ì²ë¼ ì ì´ë íëì íëì¨ì´ ê¸°ë° ë³´ì ì»´í¬ëí¸ë¥¼ ì§ì ì ì¼ë¡ ëë ê°ì ì ì¼ë¡ ëí í¬í¨í ì ìë¤. ì´ íëì¨ì´ ì»´í¬ëí¸ë ìììì ë§ì ì¤ëª ìì ì¸ì©ë íëì¨ì´ ê¸°ë° í´ì± í¨ìì´ê³ , ì´ê²ì ì ì²´ 목í ìëí¬ì¸í¸ ì ë ë³´ì ìì¤í ì ì 뢰ì ê·¼ê°ì í¬í¨íë¤.It should be noted here that the hardware-based digital signature generator block 1390 (the details of one embodiment of this will be presented more comprehensively with reference to FIG. 15), in one embodiment, includes one or more software-based elements. But may also include, directly or indirectly, at least one hardware-based security component as described above. This hardware component is a hardware-based hashing function cited in many of the descriptions above, which includes the basis of the trust of the entire target endpoint unit security system.
ì´ ì ìì, ë³µí¸ ìì§ ì½ë ë¸ë¡(1331)ì ë³´ì ì¤í 모ëìì ëìíë ê²ì´ íì©ëê³ , ì´ê²ì ìëí¬ì¸í¸ íë¡ì¸ìê° ìëí¬ì¸í¸ì íëì¨ì´ ì¥ì¹ ì§ì ë¹ë°í¤(1392)를 ë³´ì ê´ë ¨ ê³ì°(ììì ì¤ëª ë¨)ì ì¼ë¶ë¡ì ì ì¬ì ì¼ë¡ ì¬ì©íë ê²ì íì©íë¤. íë¡ì¸ìê° ë³´ì ì¤í 모ëìì ëìíì§ ìë ê²½ì°ì, ë¹ë°í¤(1392)ì ê°ì ê·¸ë¬í ë³´ì ê´ë ¨ ê³ì°ìì ì¬ì©ë ì ìë¤. ì´ ê°ë ì íëì¨ì´ ì¡ì¸ì¤ ì ì´ ë¸ë¡(1343)ì¼ë¡ì ë 13ê³¼ ê´ë ¨íì¬ ì¤ëª ëê³ , ì´ê²ì íë¡ì¸ìê° ë³´ì ì¤í 모ëìì ëìíë ê²½ì° ë¹ë°í¤(1392)ì ê°ë§ì´ (ì를 ë¤ë©´ ë³µí¸ ìì§ ì½ë ë¸ë¡(1331)ìì) íì ì¬ì©ì ìí´ íµê³¼íëë¡ íì©í ê²ì´ë¤.In this regard, the decryption engine code block 1331 is allowed to operate in secure execution mode, which means that the endpoint processor may use the endpoint's hardware device specific secret key 1392 as part of the security-related calculations (described above). Allows for potential use. If the processor is not operating in secure execution mode, the value of the private key 1392 cannot be used in such security related calculations. This concept is described in connection with FIG. 13 as a hardware access control block 1343, which is the only value of the secret key 1332 (e.g., in the decryption engine code block 1331) when the processor is operating in secure execution mode. It will allow to pass for subsequent use.
ëí, íëì¨ì´ ì¡ì¸ì¤ ì ì´ ë¸ë¡(1343)ì ëí ì ë ¥ íë¼ë¯¸í° ì¤ì íëë ì¡ì¸ì¤ ì ì´ ë¸ë¡(1341)ì ì¶ë ¥ìì ì ì ìë¤. ì´ ë°©ë²ì¼ë¡, íëì¨ì´ ì¡ì¸ì¤ ì ì´ ë¸ë¡(1343)ì ìí(ì´ê²ì ì¤ì ìì¼ë¡ë ë³µí¸ ì½ë ë¸ë¡(1321)ì "ë³´ì ì¤í 모ë ì¸ìì´ë¸" íììì´ë¤)ë ë³µí¸ ì½ë ë¸ë¡(1331)ì´ ë³´ì ì¤í 모ëìì ëí ëìíë¤ë ì¬ì¤ì ìì¡´íë¤. ì´ê²ì ë³µí¸ ì½ë ë¸ë¡(1331)ì "ë³´ì ì¤í 모ë ì¸ìì´ë¸" íììì ìí(ì를 ë¤ë©´, íëì¨ì´ ì¡ì¸ì¤ ì ì´ ë¸ë¡(1341)ì ì¶ë ¥)ì ìí´ íìë ì ìë¤. ì´ ìì¡´ì±ì ë³µí¸ ì½ë ë¸ë¡(1331)ì´ ë³´ì ì¤í 모ëìì ëìí ê²½ì°ìë§ ë³´ì ì¤í 모ëìì ëìí ì ìë ë³µí¸ ìì§ ì½ë ë¸ë¡(1321)ì ë¥ë ¥ì ìµì íë¤. 본ì§ì ì¼ë¡ ëì¼í ë°©ë²ì¼ë¡, íëì¨ì´ ì¡ì¸ì¤ ì ì´ ë¸ë¡(1343)ì ì¶ë ¥ì íëì¨ì´ ì¡ì¸ì¤ ì ì´ ë¸ë¡(1345)ì ëí ì ë ¥ë¤ ì¤ íëë¡ì ì¬ì©ëê³ , ì´ê²ì ë³µí¸ ì½ë ë¸ë¡(1311)ì "ë³´ì ì¤í 모ë ì¸ìì´ë¸" íììì´ë¤. ë°ë¼ì, "ë³´ì ì¤í 모ë ì¸ìì´ë¸" ë¹í¸ê° ì íëê² íë ë©ì¹´ëì¦ì ì ííë ë¶ëª¨ ì½ë ë¸ë¡ì´ ì ì í ì¸ì¦ë ê²½ì°(ë 14를 참조íì¬ ë ìì¸í ì¤ëª í¨) ë° ì ííë ë¶ëª¨ ì½ë ë¸ë¡ì´ íê·í í¸ì¶ ì¬ì¬ì íë¶ë¡ë¶í° ë³´ì ì¬ì¬ì ì ì í ê¶íì´ ë¶ì¬ë ë¶ë¶ì¼ë¡ë¶í°ì ì¸ì¦ ë³µí¸ ê²°ê³¼ì í¨ê» ê³µê¸ë ê²½ì°ìë§ ì ííë ë¶ëª¨ ì½ë ë¸ë¡ì´ ë³´ì ì¤í 모ëìì ëìíëë¡ ê¶íì ë¶ì¬í í 목ì ì¼ë¡ í¸ì¶ ì¬ì¬ì ìë°©í¥ì¼ë¡ ë°±ì íë¤. ììì ì¤ëª í ê²ì²ë¼, ëª ê°ì§ ì¡°ê±´ë¤ ì¤ ììì ì¡°ê±´ì ììì "ë³´ì ì¤í 모ë ì¸ìì´ë¸" ë¹í¸ê° "ìì íì§ ìì" ëí´í¸ ìíë¡ ë¦¬ì¸í¸ìí¬ ì ìë¤ë ì ì 주목íë¤(ë°ë¼ì, ì ì²´ ë³´ì ì¬ì¬ì´ ì¬ììë ê²ì ì ì¬ì ì¼ë¡ ì구íë¤). ê·¸ë¬í ì¡°ê±´ì íë¡ì¸ì ì¸í°ë½í¸ ëë íìíë ëì§í¸ ìëª ë¹êµ ë¶ì¼ì¹ë¥¼ í¬í¨í ì ìë¤. ë¹ë¡ ì´ë¤ íëì¨ì´ ì¡ì¸ì¤ ì ì´ ë¸ë¡(1341, 1343, 1345)ì´ ë 13ìì ëª íì±ì ìí´ ë³ëì ìí°í°ë¡ ëìëì´ ìì§ë§, ì´ë¤ì ì¬ì¤ì ì¶ë ¥ì´ ê·¸ ìì ì ì ë ¥ í ì¤ì íëë¡ì í¼ëë°±ëë ë¨ì¼ íëì¨ì´ ì ëì¼ë¡ (ë 15ì ê´ë ¨íì¬ ì¤ëª íë ë°ì ê°ì´) 구체íë ì ìë¤ë ê²ì ì ì ìë¤. ê¶ê·¹ì ì¼ë¡, ì ì²´ ì¬ì¬ìì ìµê³ ë 벨 ëë ìµì¢ "ë³´ì ì¤í 모ë ì¸ìì´ë¸" ë¹í¸ì ì¶ë ¥ì 목í ì¥ì¹ì ì¼ë¶ ì¸ë¶ì ì¼ë¡ ë³´ì¬ì§ë ì¶ë ¥ì (ì를 ë¤ë©´, ì¤ëì¤ ëë ë¹ëì¤ ì¶ë ¥ ì¸ìì´ë¸ê³¼ ê°ì´) ì¸ìì´ë¸ ëë ëì¤ìì´ë¸í기 ìí ì ì´ ë©ì¹´ì¦ì ì¼ë¶ë¡ì ì¬ì©ë ì ìë¤.It can also be seen that one of the input parameters for the hardware access control block 1343 is the output of the access control block 1341. In this way, the state of the hardware access control block 1343, which is actually the "secure execution mode enable" indicator of the decryption code block 1321, indicates that the decryption code block 1331 has also operated in the secure execution mode. Depends on the facts This may be indicated by the state of the âsecure execution mode enableâ indicator of the decryption code block 1331 (eg, the output of the hardware access control block 1341). This dependency suppresses the ability of the decryption engine code block 1321 to operate in the secure execution mode only when the decryption code block 1331 operates in the secure execution mode. In essentially the same way, the output of the hardware access control block 1343 is used as one of the inputs to the hardware access control block 1345, which is the "secure execution mode enable" indicator of the decryption code block 1311. . Therefore, the mechanism for causing the "secure execution mode enable" bit to be propagated requires that the preceding parent code block is properly authenticated (described in more detail with reference to Figure 14) and that the preceding parent code block is at the bottom of the recursive call chain. The call chain is backed up in the reverse direction for the purpose of authorizing the preceding parent code block to operate in secure execution mode only if supplied with the result of authentication decryption from the appropriately authorized portion of the security chain. As described above, note that any of several conditions may reset any "secure execution mode enable" bit to the "unsafe" default state (thus, the entire security chain may be restarted). Potentially requires). Such conditions may include processor interrupts or subsequent digital signature comparison mismatches. Although these hardware access control blocks 1341, 1343, 1345 are shown as separate entities in FIG. 13 for clarity, they are in fact a single hardware unit whose output is fed back as one of its own input terms (see FIG. 15 and It can be seen that it can be embodied). Ultimately, the output of the highest level or final "secure execution mode enable" bit in the entire chain enables or disables some externally visible output of the target device (e.g., enabling audio or video output). It can be used as part of a control mechanism to enable.
ë¨ê³ 1370ìì ë³µí¸ ìì§ ì½ë ë¸ë¡(1331)ì ëìì ë°ì´í° 구조(1320)ì ë³µí¸ ìì§ ì½ë ë¸ë¡ë¶(1321)ì ì ì¥ë ë°ì´í° ì§í©ì ìµì´ ë°ì´í°ì ê°±ì ë ë°/ëë ì ì í ì¤íê°ë¥í ë²ì ì¼ë¡ êµì²´ ëë ë¤ë¥¸ ë°©ìì¼ë¡ ë³´ì¶©íë ê²ì´ë¤. ì´ ëìì ë³µí¸ ì½ë ë¸ë¡(1321)ì ì ì¥ë ìµì´ ë°ì´í°ë¥¼ ì´ì©íê³ í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(1328)ì ìí´ ì ì¥ëê±°ë ì§ì ë íë ì´ìì ë³µí¸ í¤ë¡ ìµì´ ë°ì´í°ë¥¼ ë³µí¸í¨ì¼ë¡ì¨ ë¬ì±ë ì ìë¤. ëìì ì¼ë¡, ììì ì¤ëª í ë°ì ê°ì´, ë³µí¸ ìì§ ì½ë ë¸ë¡(1331)ì ëì(1370)ì ë³µí¸ ì½ë ë¸ë¡(1321)ì ê°±ì ë²ì ì¼ë¡ êµì²´íê±°ë ë³µí¸ ìì§ ì½ë ë¸ë¡(1321) ëì ì ì§ì ì¤ííê² í ì ìë¤. ì´ë ê²½ì°ì´ë , ë³µí¸ ìì§ ì½ë ë¸ë¡(1331)ì (ì´ ì¤ìììì) 목í ìëí¬ì¸í¸ ì¥ì¹ì íìì¤í¬í ë ì§ì¤í°(1394)ì ë´í¬ë ê°, 목í ìëí¬ì¸í¸ ì¥ì¹ì íëì¨ì´ ì§ì ë¹ë°í¤(1392)(íëì¨ì´ ì¡ì¸ì¤ ì ì´(1342)를 íµê³¼í¨ì¼ë¡ì¨ ìì ë¨) ë° ìëí¬ì¸í¸ ë° íìì¤í¬í ì§ì í©ì± ëì§í¸ í¤(1326)를 í¬í¨íë ê°ì¢ ì ë ¥ ë°ì´í°ë¥¼ ì´ì©íì¬ ìµì´ë¡ ëìí ì ìë¤. ë³µí¸ ìì§ ì½ë ë¸ë¡(1331)ì´ ë³µí¸ ìì§ ì½ë ë¸ë¡(1321)ì ì§ì êµì²´ë¡ì íìì ì¼ë¡ ëìíë ê²½ì°ì, ë³µí¸ ìì§ ì½ë ë¸ë¡(1331)ì ì를 ë¤ë©´, ì´ ì¤ìììì 목í ìëí¬ì¸í¸ ì¥ì¹ì íìì¤í¬í ë ì§ì¤í°(1394)ì ë´í¬ë ê°, 목í ìëí¬ì¸í¸ ì¥ì¹ì íëì¨ì´ ì§ì ë¹ë°í¤(1392)(íëì¨ì´ ì¡ì¸ì¤ ì ì´(1344)를 íµê³¼í¨ì¼ë¡ì¨ ìì ë¨) ë° ìëí¬ì¸í¸ ë° íìì¤í¬í ì§ì í©ì± ëì§í¸ í¤(1316)를 í¬í¨íë ì ë ¥ ë°ì´í°ì ì 2 ì§í©ì íì©í ì ìë¤.Operation of the decoding engine code block 1331 at step 1370 replaces or otherwise replaces the data set stored in the decoding engine code block 1321 of the data structure 1320 with an updated and / or appropriately executable version of the original data. To supplement. This operation may be accomplished by using the original data stored in decryption code block 1321 and decrypting the original data with one or more decryption keys stored or indicated by key list data structure 1328. Alternatively, as described above, operation 1370 of decoding engine code block 1331 may replace decoding code block 1321 with an updated version or may execute directly on behalf of decoding engine code block 1321. In either case, the decryption engine code block 1331 may (in this embodiment) contain the value contained in the timestamp register 1394 of the target endpoint device, the hardware-specified secret key 1392 of the target endpoint device (hardware access control). Modified by passing 1342) and various input data, including endpoint and timestamp specified composite digital keys 1326, for the first time. When the decoding engine code block 1331 subsequently operates as a direct replacement of the decoding engine code block 1321, the decoding engine code block 1331 is, for example, the timestamp of the target endpoint device in this embodiment. A value contained in register 1394, a hardware-specific secret key 1372 of the target endpoint device (modified by passing through hardware access control 1344), and an endpoint and time stamp-specified composite digital key 1316. A second set of input data can be utilized.
ë¨ê³ 1371ìì ê°±ì ë³µí¸ ìì§ ì½ë ë¸ë¡(1321)ì ì¶ê°ì ëìì ìë§ì ì¶ë ¥ ë°ì´í°(1380)를 ìì±í기 ìí´ ìµì´ì ìí¸í ì½í í¸ ë°ì´í°(1312)를 êµì²´ ëë ë¤ë¥¸ ë°©ìì¼ë¡ í´ìíë ê²ì´ë¤. ì´ ëìì ë³µí¸ ì½ë ë¸ë¡(1321)ì ì ì¥ë ìµì´ ë°ì´í°ë¥¼ ì´ì©íê³ í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(1318)ì ìí´ ì ì¥ëê±°ë ì§ì ë íë ì´ìì ë³µí¸ í¤ë¡ ìµì´ ë°ì´í°ë¥¼ ë³µí¸í¨ì¼ë¡ì¨ ë¬ì±ë ì ìë¤. ì측ì ë³µí¸ ìì§ ì½ë ë¸ë¡(1321, 1331)ì ëìì´ ì¬ì¤ì ì ì¬í기 ë문ì, ë³µí¸ ìì§ ì½ë ë¸ë¡(1331)ì ëìê³¼ ê´ë ¨íì¬ ìí´ì 구체ì ì¼ë¡ ì¤ëª í ììì ìµì ì´ ë³µí¸ ìì§ ì½ë ë¸ë¡(1321)ì ê°±ì ë²ì ì ëììë ëì¼íê² ì ì©í ì ììì ëª ë°±í íì¬ì¼ íë¤. ëí, ë³µí¸ ìì§ ì½ë ë¸ë¡(1321)ì ëìì ê²½ì°ì, ì¼ë¶ ì¤ìììì, ê´ë ¨ íëì¨ì´ ì¡ì¸ì¤ ì ì´ ë¸ë¡(1344)ì íëì¨ì´ ì¡ì¸ì¤ ì ì´ ë¸ë¡(1342)ê³¼ 구ë³ëë¤ë ì ì 주목íì¬ì¼ íë¤. ê·¸ë¬ë, ì기 2ê°ì íëì¨ì´ ì¡ì¸ì¤ ì ì´ ë¸ë¡(1342, 1344)ì ëìì ê·¸ë¤ì 목ì ì´ ê·¸ë¤ì ê´ë ¨ ë³µí¸ ìì§(1331 ëë 1321)ì ìí 목í ìëí¬ì¸í¸ ì¥ì¹ì íëì¨ì´ ì§ì ë¹ë°í¤(1392)ì ì¬ì©ì ê°ë¥ ëë ë¶ê°ë¥íê² íë ê²ì´ë¼ë ì ìì ì¬ì¤ì ì ì¬íê³ , ë°ë¼ì ë¤ë¥¸ ì¤ììììë 구ë³ëì§ ìëë¤.An additional operation of update decryption engine code block 1321 at step 1371 is to alternately or otherwise interpret the original encrypted content data 1312 to produce the desired output data 1380. This operation may be accomplished by using the original data stored in decryption code block 1321 and decrypting the original data with one or more decryption keys stored or indicated by key list data structure 1318. Since the operations of the decoding engine code blocks 1321 and 1331 on both sides are substantially similar, any of the options specifically described in connection with the operation of the decoding engine code blocks 1331 are related to the updated version of the decoding engine code block 1321. It should be clear that the same applies to the operation. It should also be noted that in the case of operation of decoding engine code block 1321, in some embodiments, the associated hardware access control block 1344 is distinct from hardware access control block 1342. However, the operation of the two hardware access control blocks 1342 and 1344 is intended to enable or disable the use of the hardware-specific secret key 1392 of the target endpoint device by their associated decryption engine 1331 or 1321. Are virtually similar in that respect, and thus are not distinguished in other embodiments.
ë§ì§ë§ì¼ë¡, ììì ì¤ëª í ë 13ì ì¤ììë¡ ë¬ì¬í 모ë ëìì ìì´ì, 목í ìëí¬ì¸í¸ ì¥ì¹ì íìì¤í¬í ë ì§ì¤í°(1394)ì ì¬ì©ì ë¤ë¥¸ ì¤ììë¡ ììì ì¤ëª í ìë¤ê³¼ 본ì§ì ì¼ë¡ ì ì¬íë¤. ë°ë¼ì, ë ì§ì¤í°(1394)ì ì ì¥ë ê°ì ë 13ì ëìí í¹ì ì¤ìììì ì¤ëª í ë¤ë¥¸ ì¸ì¦ ë° ë³µí¸ ëììì ì¬ì©í ê°ì¢ í©ì±í¤ ë°/ëë ëì§í¸ ìëª ì ìì±ìì ì¶ê°ì ì¸ ììë¡ì ì¬ì©ë ì ìë¤.Finally, for all operations depicted in the embodiment of FIG. 13 described above, the use of the time stamp register 1394 of the target endpoint device is essentially similar to the examples described above in another embodiment. Thus, the value stored in the register 1394 can be used as an additional element in the generation of various composite keys and / or digital signatures used in the other authentication and decryption operations described in the special embodiment shown in FIG.
ë 14ë íê·í í¸ì¶ ì¬ì¬ì´ ì´ë»ê² ê´íµ ë° ì¢ ë£ëëì§ ë° íë¡ì¸ìê° íë ì´ìì 매립 ì½ë ë¸ë¡ì ë©ìì§ ë¤ì´ì ì¤í¸ ê¸°ë° ì¸ì¦ì ì´ì©íì¬ ì´ë»ê² ë³´ì ì¤í 모ëë¡ì ì§ì ì´ íì©ëëì§ì ëí ì¼ ì¤ìì를 ëìí ê²ì´ë¤. ì´ ì¤ììììë ë 7bì ê´ë ¨íì¬ ììì ì¤ëª í ê²ì²ë¼ ë²ì© ìí¸ ë°ì´í° 구조(1411, 1421)ì ê°ê° ë´í¬ë ì ìë 2ê°ì íë³´ ì½ë ë¸ë¡(1412, 1422)ì ëìì´ ì¤ëª ëë¤.14 illustrates one embodiment of how a recursive call chain penetrates and terminates and how the processor is allowed to enter secure execution mode using message digest based authentication of one or more embedded code blocks. In this embodiment, the operation of two candidate code blocks 1412, 1422, which may be implied in general cryptographic data structures 1411, 1421, respectively, as described above with respect to FIG. 7B, is described.
ì½ë ë¸ë¡ ë°ì´í° 구조(1421)ë ë 14ìì 2í íìëë¤ë ì ì 주목íë¤. ì´ ì¤ë³µì ëª íí í 목ì ì¼ë¡ ë³ëì ë°ë³µì íìí기 ìí´ ëìí ê²ì´ì§ë§, ì´ê²ì ë ê°ì§ ììì ì íí ëì¼í ë°ì´í° 구조ìì ììì¼ íë¤. ê·¸ë¬ë ì¸ì§ë ì ìë íê°ì§ ì°¨ì´ì ì í¤ ë¦¬ì¤í¸ í¬ì¸í°(1421)ì ì¬ë¡ì ìí´ ì§ì ëë í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(1428, 1438)ì ìë¤. ë¹ë¡ í¤ ë¦¬ì¤í¸ í¬ì¸í°(1421)ì ê°ì´ ì´ ëë©´ì ëìí 2ê°ì ì¬ë¡ ì¬ì´ìì ë³íì§ ìì§ë§, í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(1428)ì ë´í¬ë(ëë í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(1428)ì ìí´ ì§ì ë) ê°ì 2ê°ì ë°ë³µ ì¬ì´ìì ë³í ì ìê³ , ë°ë¼ì ì´ê²ì ì¸ë¶ë ë°ì´í° 구조(ë° ê·¸ ê°ì¢ ì»´í¬ëí¸)ì 참조 ë²í¸ë¥¼ 1426, 1427 ë° 1428ë¡ë¶í° 1436, 1437 ë° 1438ë¡ ê°ê° ë¤ì ë²í¸ ë¶ìì¼ë¡ì¨ íìëë¤. ì´ êµ¬ì¡°ê° ë¤ì ë²í¸ ë¶ìëìë¤ë ì¬ì¤ì ë°ì´í° 구조ì ì¤ì ìì¹ê° ì´ëëìë¤ë ê² ë° ê·¸ ì½í í¸ê° ë³ê²½ëìë¤ë ê²ì íìíë ê²ì´ ìëë¤. ë§ì°¬ê°ì§ë¡, ëª íì±ì ëì´ê¸° ìí´, íëì¨ì´ í´ì± í¨ì(1480)ê° ì´ ëë©´ìì ëí ë³µì í ëìëìë¤. ë§ì§ë§ì¼ë¡, 2ê°ì íë³´ ì½ë ë¸ë¡(1421, 1422)ì ì´ë ê²ë ìí¸íëì§ ìê³ , ë°ë¼ì ê·¸ ê´ë ¨ ë³µí¸ í¬ì¸í°(1416, 1426, 1436)ë 모ë 무í¨(null) í¬ì¸í°ì¼ ì ìë¤.Note that code block data structure 1421 is displayed twice in FIG. 14. This redundancy is shown to indicate separate iterations for clarity purposes, but it should be understood that this is exactly the same data structure in both examples. However, one difference that can be noticed is in the key list data structures 1428, 1438, pointed out by the example of the key list pointer 1421. Although the value of the key list pointer 1421 does not change between the two cases shown in this figure, the value contained in the key list data structure 1428 (or pointed out by the key list data structure 1428) is 2 Can be varied between the repetitions of the two, so details thereof are indicated by renumbering the reference numbers of the data structure (and its various components) from 1426, 1427 and 1428 to 1436, 1437 and 1438, respectively. The fact that this structure has been renumbered does not indicate that the actual position of the data structure has been moved and its content has changed. Likewise, for clarity, the hardware hashing function 1480 is also shown multiple times in this figure. Finally, none of the two candidate code blocks 1421, 1422 are encrypted, so that their associated decryption pointers 1416, 1426, 1436 may all be null pointers.
ì´ ì¤ììì ìì´ì, íë³´ ì½ë ë¸ë¡(1412)ì ëí í¸ì¶ì´ ê°ìë ì ìë¤. ììì ì¤ëª í ê²ê³¼ ëì¼í ë°©ìì¼ë¡, ì½ë ë¸ë¡ ë°ì´í° 구조(1411)ë ë©ëª¨ë¦¬ì ì½ì´ ë¤ì¼ ì ìê³ , ê·¸ ë©ìì§ ë¤ì´ì ì¤í¸(1441)ë í´ì± í¨ì(1480)(ì´ê²ì ììì ì¤ëª í ê²ì²ë¼ ì ì²´ì ì¼ë¡ ëë ë¶ë¶ì ì¼ë¡ íëì¨ì´ë¡ ì¤íë ì ìë¤)ì ìí´ ê³ì°ë ì ìë¤. ê·¸ë¬ë, ì´ ì¤ìììì, í´ì± í¨ìë ì´ê¸° ì¢ ìê°(1440)(모ë 0ì¼ë¡ ì¸í¸ë ìë ìê³ ìë ìë ìë¤)ì´ ì£¼ì´ì§ë¤. ììì ì¤ëª í ê²ì²ë¼, ì´ í´ì± í¨ì ì¢ ìê° í¹ì§ì ë¤ìì ë°©ë²ë¤ ì¤ íë를 ì´ì©íì¬ êµ¬íë ì ìì§ë§, ì´ ì¤ììììë ì¢ ìê°(1440)ì´ ê³µì§ëì´ ìê³ , ì¢ ìê°ì´ í´ì± í¨ì ë¸ë¡(1480)ì ë©ìì§ ë¤ì´ì ì¤í¸ ì¶ë ¥(1441)ì ìí¥ì 주ë ë°©ë²ì ë°ë³µì ì´ë©° ê²°ì ë¡ ì ì´ë¤.In this embodiment, a call to candidate code block 1412 may be initiated. In the same manner as described above, the code block data structure 1411 can be read into memory, and the message digest 1441 is a hashing function 1480 (which can be implemented in hardware, in whole or in part, as described above). Can be calculated by However, in this embodiment, the hashing function is given an initial seed value 1440 (which may or may not be set to all zeros). As described above, this hashing function seed value feature may be implemented using one of a number of methods, but in this embodiment the seed value 1440 is known and the seed value is a message of the hashing function block 1480. The way to affect the digest output 1442 is iterative and deterministic.
í´ì± í¨ìì ê²°ê³¼(1441)ê° ìì±ëë©´, íë¡ì¸ìë ì½ë ë¸ë¡(1412)ì ë´í¬ë ì½ëì ì¤íì ììí ì ìë¤. ë 14ì ëìí ì¤ììì ìì´ì, í¤ ë¦¬ì¤í¸ í¬ì¸í°(1414)ì ìí´ ì§ì ë 2ê°ì ìì¹(1416, 1417)(ì´ê²ì í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(1418) ë´ì¸¡ì í¬í¨ëì´ ìë¤)ì ê° ë° ë³µí¸ í¬ì¸í°(1413)ë 모ë 무í¨(null)ì´ê³ , ì½ë ë¸ë¡(1412)ì ë³´ì ì¤í 모ëìì ëìíëë¡ ì¤ê³ëì§ ìì ì ìì¼ë©°, ë°ë¼ì ììì 목í ìëí¬ì¸í¸ ì¥ì¹ ë³´ì íëì¨ì´ í¹ì§ì ì¬ì©ì ì구íì§ ìëë¤. ë°ë¼ì, íë¡ì¸ìë ì½ë ë¸ë¡(1422)ì ì§ì íë 매립 ìë¸ë£¨í´ í¸ì¶ì ëë¬í ëê¹ì§ ì½ë ë¸ë¡(1412)ì ë´í¬ë ëª ë ¹ì´ë¤ì ì¤íì ììíë¤.Once the result 1441 of the hashing function is generated, the processor can begin executing the code contained in the code block 1412. In the embodiment shown in Fig. 14, the values of the two positions 1416, 1417, which are pointed to by the key list pointer 1414, which are contained inside the key list data structure 1418, and the decoding pointer 1413 Are all null, and code block 1412 may not be designed to operate in a secure execution mode, and thus does not require the use of any target endpoint device security hardware features. Thus, the processor starts executing the instructions contained in code block 1412 until it reaches a buried subroutine call that points to code block 1422.
ì´ ì ìì, ì½ë ë¸ë¡ ë°ì´í° 구조(1421)ë ë©ëª¨ë¦¬ì ë¡ëëê³ , ë¤ì ë©ìì§ ë¤ì´ì ì¤í¸(1442)를 ìì±íë ì²ë¦¬ê° í´ì± í¨ì ë¸ë¡(1480)ì ìí´ ë°ë³µëë¤. ê·¸ë¬ë, ì´ í¹ìí ì¬ë¡ì ìì´ì, í´ì± í¨ì ì¢ ìê°ì ë ì´ì ì´ê¸° ì¢ ìê°(1440)ì´ ìëê³ ì¤íë ¤ 미리 ìì±ë ê²°ê³¼(1441)ì´ë¤. ë°ë¼ì, ë©ìì§ ë¤ì´ì ì¤í¸(1442)ì ê°ì ì쪽 ì½ë ë¸ë¡(1411, 1421)ì ë©ìì§ ë¤ì´ì ì¤í¸ì ê²°ì ë¡ ì ì¼ë¡ ìì¡´íë¤ë ê²ì ì ì ìë¤. ê·¸ë¬ë, ì´ì ê²½ì°ììì²ë¼, ë³µí¸ í¬ì¸í°(1423)ì ê° ë° í¤ ë¦¬ì¤í¸ í¬ì¸í°(1424)ì ìí´ ì§ì ë í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(1428)ì ë´í¬ë ê°ë¤ì ì¬ì í 무í¨(null)ì´ê³ , ë°ë¼ì íë¡ì¸ìë ìììì²ë¼ ë¹ë³´ì ì¤í 모ëììì ëìì ê³ìíë¤.At this point, the code block data structure 1421 is loaded into memory, and the process of generating the next message digest 1442 is repeated by the hashing function block 1480. However, in this particular case, the hashing function seed value is no longer the initial seed value 1440, but rather the pre-generated result 1441. Thus, it can be seen that the value of message digest 1442 is deterministically dependent on the message digest of both code blocks 1411 and 1421. However, as in the previous case, the value of the decrypt pointer 1423 and the values implied in the key list data structure 1428 pointed to by the key list pointer 1424 are still null, so the processor executes insecure as before. Continue operation in mode.
ì´ë¤ ëì¤ì ì§ì ìì, íë¡ì¸ìë ë¤ë¥¸ ìë¸ë£¨í´ í¸ì¶ì ë§ëì§ë§, ì´ ììì ì½ë ë¸ë¡(1422)ì íê·í í¸ì¶(ì를 ë¤ë©´, ìì ì ëí ìë¸ë£¨í´ í¸ì¶)ì ë´í¬íë¤. í¹ì ì¤ììì ìì´ì, ê·¸ë¬í íê·í í¸ì¶ 구조ë ë¨ì§ ììì ì¸ ê²ì´ê³ , 목í ìëí¬ì¸í¸ ì¥ì¹ ë³´ì ìì¤í ì ì íí ëìì ì를 ë¤ë©´ ë³´ì ìì¤í ì ëí ììì í¸ì¶ì´ ë¨ì¼ ì½ë 층ì ë´í¬ë ê²ì ë³´ì¦íë ë¤ë¥¸ ìë¨ì ìí´ ë¬ì±ë ì ìë¤. ê·¸ë¬ë, ë³´ì ìì¤í ì ë³µìì ë ë²¨ì´ ê´íµëìë§ì íê·í í¸ì¶ ííê° ììì ìì¸í ì¤ëª í ê²ì²ë¼ ìëì ì¼ë¡ ë ìì íê² ëê³ , ëìë ì¤ììì í¨ê» ë³´ì ìì¤í ì 구íí기 ìí´ í¨ê³¼ì ì¼ë¡ íì©ë ì ìë¤.At some later point, the processor encounters another subroutine call, but in this example code block 1422 implies a recursive call (eg, a subroutine call to itself). In certain embodiments, such a recursive call structure is merely exemplary, and the correct operation of the target endpoint device security system may be implemented in other means to ensure, for example, that any call to the security system is contained in a single code layer. Can be achieved by However, as soon as multiple levels of security system are penetrated, the recursive call type becomes relatively safer as detailed above, and can be effectively utilized to implement the security system with the illustrated embodiment.
ììì ê²½ì°ì, íë¡ì¸ìê° ì½ë ë¸ë¡(1422)(ìì ì 참조í¨) ë´ì 매립ë ìë¸ë£¨í´ í¸ì¶ê³¼ ë§ëë©´, ì½ë ë¸ë¡ ë°ì´í° 구조(1421)ë ë©ëª¨ë¦¬ì ë¤ì íë² ë¡ëëê³ (ì를 ë¤ë©´, ëë¶ë¶ì íë ìì¤í ìì ë°ì´í° 구조(1421)ë ëë²ì§¸ ì¸ì¶ë ë 물리ì ì¼ë¡ ë¤ë¥¸ ìì¹ì ë¡ëëë¤), í´ì± í¨ì(1480)ë ìë¡ì´ ë©ìì§ ë¤ì´ì ì¤í¸(1443)를 ê³ì°íë¤. ì´ ìë¡ì´ ë©ìì§ ë¤ì´ì ì¤í¸(1443)ë ì´ê¸° ë©ìì§ ë¤ì´ì ì¤í¸ ì¢ ìê°(1440), (ì½ë ë¸ë¡(1421)ì) ë©ìì§ ë¤ì´ì ì¤í¸(1441) ë° ì½ë ë¸ë¡(1422)ì 2ê°ì ë³ëì ë°ë³µì ë©ìì§ ë¤ì´ì ì¤í¸ì ìì¡´íë¤ë ì ì 주목íë¤.In any case, when the processor encounters a subroutine call embedded within code block 1422 (see itself), code block data structure 1421 is once again loaded into memory (eg, in most modern systems). In the data structure 1421 is loaded at a different physical location when it is second fetched), the hashing function 1480 calculates a new message digest 1443. This new message digest 1443 depends on two separate iterations of the message digest: initial message digest seed value 1440, message digest 1441 (of code block 1421) and code block 1422. Pay attention.
ì´ ëë²ì§¸ ìê°ì í¤ ë¦¬ì¤í¸ í¬ì¸í°ë 무í¨ê° ìë(non-null) ëì§í¸ ìëª ê°(1437)ì ë´í¬íë ìë¡ì´ ë°ì´í° 구조(1438)를 ì§ì íë¤. ì´ ë¬´í¨ê° ìë ê°ì ì½ë ë¸ë¡(1422)ì ë°ë³µì´ 목í ìëí¬ì¸í¸ íëì¨ì´ ì§ì ë³´ì ìì¤í ì ëí 참조를 ë´í¬íë¤ë ê²ì ë³´ì ìì¤í ì íìíë íììì´ë¤. ë°ë¼ì, ì´ ì¤ìììì, ì´ë¬í ì°¸ì¡°ê° ì ì í ëìí기 ìíì¬, íë¡ì¸ìë ì´ë¤ ì§ì ìì ë³´ì ì¤í 모ëë¡ ì§ì íì¬ì¼ íë¤. ë°ë¼ì, ì½ë ë¸ë¡ ë°ì´í° 구조(1421)ê° ê°ì¥ ìµê·¼ì ë©ëª¨ë¦¬ì ë¡ëë ë ìì±ë ëì§í¸ ìëª (1443)ì í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(1438)ì ë´í¬ë ëì§í¸ ìëª (1437)ê³¼ ë¹êµëë¤. ë¨ê³ 1491ìì ì기 2ê°ì ê°ì´ ì¤ì§ì ì¼ë¡ ì ì¬í ê²ì¼ë¡ íì ë ê²½ì°ì, 목í ìëí¬ì¸í¸ íë¡ì¸ìë ë³´ì ì¤í 모ëë¡ì ì§ì ì´ íì©ëë¤. ê·¸ë¬ë, ë§ì¼ 2ê°ì ëì§í¸ ìëª ê°(1437, 1443)ì´ ì¼ì¹íì§ ìì¼ë©´(ë° ëì§í¸ ìëª (1437)ì´ ì´ ì§ì ìì 무í¨ê° ìë ê²ì¼ë¡ ìë ¤ì§ë©´), ë¨ê³ 1492ì ê²°ê³¼ê° íë¡ì¸ìì ì ê³µëì´ ë³´ì ìì¤í ì ì ë¹í ìì¸ ìë¬ í¸ë¤ë¬ ë¶ë¶(1470)ì ì¤íìí¨ë¤.At this second time, the key list pointer points to a new data structure 1438 that contains a non-null digital signature value 1435. This non-valid value is an indicator that indicates to the security system that the repetition of code block 1422 implies a reference to the target endpoint hardware specific security system. Thus, in this embodiment, for this reference to work properly, the processor must enter the secure execution mode at some point. Thus, the digital signature 1443 generated when the code block data structure 1421 is most recently loaded into memory is compared with the digital signature 1437 contained in the key list data structure 1438. If it is determined in step 1491 that the two values are substantially similar, the target endpoint processor is allowed to enter the secure execution mode. However, if the two digital signature values 1437 and 1443 do not match (and the digital signature 1437 is known to be invalid at this point), then the result of step 1492 is provided to the processor to provide a suitable exception for the security system. The error handler portion 1470 is executed.
ë 15ë ììì ì¤ëª í í¹ì§ë¤ì ì§ìí기 ìí´ ëì§í¸ ìëª ë°ì기 ë¸ë¡(1560)ì´ ì´ë»ê² íëì¨ì´ìì 구íë ì ìëì§ì ê´í ì¼ ì¤ìì를 ë³´ì¸ ëì´ë¤. ë 15ì ëìí ì¤ììë ë 10ì ëìí ëì§í¸ ìëª ë°ì기 ë¸ë¡ì 기ë¥ê³¼ ì ì¬í 기ë¥ì íëì¨ì´ 구íì ë³´ì¬ì£¼ê³ ìê³ , ì´ê²ì ì를 ë¤ë©´ ë 11, 12, 13 ë° 14ì ê´ë ¨íì¬ ëììì ì¸ë¶ë¡ ì¤ëª í 기ë¥ì í¹ì§ë¤ì ì§ìí ê²ì´ë¤.15 illustrates one embodiment of how the digital signature generator block 1560 can be implemented in hardware to support the features described above. The embodiment shown in FIG. 15 shows a hardware implementation of functionality similar to that of the digital signature generator block shown in FIG. 10, which is described in detail in operation with respect to FIGS. 11, 12, 13 and 14, for example. It will support functional features.
í´ì± í¨ì ì¢ ì ë ì§ì¤í°(1510)ë ë 14ì ë¸ë¡(1440)ì¼ë¡ íìë 기ë¥ê³¼ ì ì¬í 기ë¥ì í¬í¨í ì ìê³ , í´ì± í¨ì ë¸ë¡(1561)ì ê³µê¸ë ì´ê¸°ê°ì ì ì§íëë¡ ëìí ì ìë¤. í´ì± í¨ì ë¸ë¡(1561)ì ì¶ë ¥ì í©ì± ìí¸í ìì§ì ì 1 ë¨ê³(1562)ì ëí ì ë ¥ë¤ ì¤ íëë¡ì ê³µê¸ëë¤. ìí¸í ìì§(1562)ì ë¤ë¥¸ ì ë ¥ì 목í ìëí¬ì¸í¸ ì¥ì¹ íìì¤í¬í ë ì§ì¤í°(1541)ì ì¶ë ¥ì´ë¤. ì 1 ë¨ê³ ìí¸í ìì§(1562)ì ê²°ê³¼ì ì¸ ì¶ë ¥ì ë¤ìì ì 2 ë¨ê³ ìí¸í ìì§(1563)ì ì ë ¥ë¤ ì¤ íëë¡ì ê³µê¸ëë¤. ì 2ë¨ê³ ìí¸í ìì§(1563)ì ë¤ë¥¸ ì ë ¥ì ë³´ì ì¤í 모ë ì¡ì¸ì¤ í¬ì¸í¸(1566)ì ì¶ë ¥ì´ë¤.The hashing function seed register 1510 may include functionality similar to that indicated by block 1440 in FIG. 14 and may operate to maintain an initial value supplied to the hashing function block 1561. The output of the hashing function block 1561 is supplied as one of the inputs to the first stage 1562 of the synthesis cryptographic engine. Another input of cryptographic engine 1562 is the output of target endpoint device timestamp register 1541. The resulting output of the first stage encryption engine 1562 is then supplied as one of the inputs of the second stage encryption engine 1563. Another input of the second stage encryption engine 1563 is the output of the secure execution mode access point 1566.
ì¡ì¸ì¤ í¬ì¸í¸(1566)ë ë 14를 참조íì¬ ììì ì¤ëª í ê²ì²ë¼, 목í ìëí¬ì¸í¸ ì¥ì¹ê° ë³´ì ì¤í 모ëìì ëìí ë ëë "íê· ì¢ ë£" ì¡°ê±´ì´ ê²ì¶ë ëìë§ ëª©í ìëí¬ì¸í¸ì íëì¨ì´ ì§ì ë¹ë°í¤(1540)ì ê°ì íµê³¼íëë¡ ëìíë¤. ì 2 ë¨ê³ ìí¸í ìì§(1563)ì¼ë¡ë¶í°ì ê²°ê³¼ì ì¸ ì¶ë ¥ ê°ì ëì§í¸ ìëª ë ì§ì¤í°(1564)ì ì ì¥ëê³ , ì기 ë°ìë ëì§í¸ ìëª ì íë³´ ì½ë ë¸ë¡ì ê³µê¸ë ëì§í¸ ìëª ê³¼ ë¹êµí ë ì¬ì©ëë¤(ì를 ë¤ë©´, ë 9, ë 10, ë 11, ë 12, ë 13 ë° ë 14ì ì¤ëª ìì ì¸ì©ë¨).As described above with reference to FIG. 14, the access point 1566 may determine the hardware-specific secret key 1540 of the target endpoint only when the target endpoint device is operating in secure execution mode or when a "return to end" condition is detected. Operate to pass a value. The resulting output value from the second stage encryption engine 1563 is stored in the digital signature register 1564 and used when comparing the generated digital signature with the digital signature supplied to the candidate code block (eg, FIG. 9, 10, 11, 12, 13 and 14 cited in the description).
ëì§í¸ ìëª ë ì§ì¤í°(1564)ì ì¶ë ¥ì ì¡ì¸ì¤ í¬ì¸í¸(1565)ì ìí´ ì ì´ëê³ , ê·¸ ëìì 목í ìëí¬ì¸í¸ ì¥ì¹ê° ë³´ì ì¤í 모ëìì ëìíì§ ìì ë ëì§í¸ ìëª ë ì§ì¤í°(1564)ì ê°ì íµê³¼íë ê²ì´ë¤. ê·¸ ë¤ìì, ì¡ì¸ì¤ í¬ì¸í¸(1565)ì ì¶ë ¥ì í´ì± í¨ì ì¢ ì ë ì§ì¤í°(1510)ì ì ë ¥ì¼ë¡ í¼ëë°±ëì´ ë 14ì ê´ë ¨í ì¤ëª ìì 구체ì ì¼ë¡ ì¤ëª í ì§ë ¬ ë©ìì§ ë¤ì´ì ì¤í¸ í¹ì§ì ìì±íë¤. 목í ìëí¬ì¸í¸ ì¥ì¹ê° ë³´ì ì¤í 모ëìì ëìíë©´, í´ì± í¨ì ì¢ ì ë ì§ì¤í°(1510)ì ì ë ¥ì ëì§í¸ ìëª ë ì§ì¤í°(1564)ì ê°ì ìì¡´íì§ ìê³ , ë°ë¼ì ììì ì´ê¸°ê°ì¼ë¡ ì¤ì ë ì ìê³ (ë 14ì ê´ë ¨í ì¤ëª ìì ì¤ëª ë¨) ëë ì´ë¤ ë¤ë¥¸ ìë¨ì ìí´ ì¤ì ë ì ìë¤(ì를 ë¤ë©´, íë¡ì¸ìê° í¹ì ë©ëª¨ë¦¬ ìì¹ì 기ë¡íë¤).The output of the digital signature register 1564 is controlled by the access point 1565, the operation of which is to pass through the value of the digital signature register 1564 when the target endpoint device is not operating in secure execution mode. The output of the access point 1565 is then fed back to an input of a hashing function seed register 1510 to generate the serial message digest feature described in detail in connection with FIG. 14. If the target endpoint device is operating in secure execution mode, the input of the hashing function seed register 1510 does not depend on the value of the digital signature register 1564 and thus can be set to any initial value (in conjunction with FIG. 14). Or set by some other means (eg, the processor writes to a specific memory location).
ì§ê¸ê¹ì§ í¹ì ì¤ìì를 참조íì¬ ë³¸ ë°ëª ì ì¤ëª íìë¤. ê·¸ë¬ë, ì´ ê¸°ì ì íµìì ì§ìì ê°ì§ ìë¼ë©´ ì²êµ¬ë²ììì ê·ì íë 본 ë°ëª ì ë²ìë¡ë¶í° ë²ì´ëì§ ìê³ ì¬ë¬ ê°ì§ë¡ ìì ë° ë³ê²½ì´ ê°ë¥íë¤ë ê²ì ì ê²ì´ë¤. ë°ë¼ì, ëª ì¸ì, ë¶ë¡ ë° ëë©´ì ì ííë ìëë¼ê¸°ë³´ë¤ë ììì ì¸ ê²ì¼ë¡ ê°ì£¼ëì´ì¼ íê³ , ê·¸ë¬í ìì ë¤ì 모ë ììì ì íì ì¸ ì©ì´ì ì¬ì©ìë ë¶êµ¬íê³ ë³¸ ë°ëª ì ë²ìì í¬í¨ë ê²ì¼ë¡ ìëëë¤.The present invention has been described above with reference to specific embodiments. However, one of ordinary skill in the art appreciates that various modifications and changes can be made without departing from the scope of the invention as set forth in the claims. Accordingly, the specification, appendices, and drawings are to be regarded as illustrative rather than restrictive, and all such modifications are intended to be included within the scope of the present invention despite the use of any restrictive terminology.
ìì , ë¤ë¥¸ ì¥ì ë° ë¬¸ì ì ì ëí í´ë²ì í¹ì ì¤ììì ê´ë ¨íì¬ ììì ì¤ëª íìë¤. ê·¸ë¬ë, ìì , ì¥ì , 문ì ì ì ëí í´ë², ë° ììì ìì , ì¥ì ëë í´ë²ì ë°ììí¤ê±°ë ë ëª ë°±íê² íë ììì ì»´í¬ëí¸ë ììì ëë 모ë ì²êµ¬íì ì¤ìí, ì구ë, ëë 본ì§ì ì¸ í¹ì§ ëë ì»´í¬ëí¸ë¡ì í´ìëì´ìë ìëë¤.Benefits, other advantages, and solutions to problems have been described above in connection with specific embodiments. However, advantages, advantages, solutions to problems, and any components that generate or make any benefit, advantage, or solution more obvious, should be construed as important, required, or essential features or components of any or all claims. Can not be done.
ë¶ ë¡ AAppendix A
본 ë°ëª ë° ê·¸ ê°ì¢ í¹ì§ê³¼ ì 리í ì¸ë¶ë ì²¨ë¶ ëë©´ì ëìëê³ ì´íì ì¤ëª ìì ìì¸íëë ë¹ì íì ì¸ ì¤ìì를 참조íì¬ ëì± ìì íê² ì¤ëª ëë¤. ì ìë ¤ì ¸ ìë ìì 물ì§, ì²ë¦¬ 기ì , ì»´í¬ëí¸ ë° ì¤ë¹ì ê´í ì¤ëª ì 본 ë°ëª ì ì¸ë¶ë¥¼ ë¶íìíê² ë¶ëª ë£íê² íë ê²ì ë°©ì§í기 ìí´ ìëµíë¤. ê·¸ë¬ë, 본 ë°ëª ì ìí¸í ì¤ìì를 íìíë ê²ì´ì§ë§, ê·¸ ì¤ììì ëí ìì¸í ì¤ëª ë° í¹ìí ìë ì ííë ìëê° ìì´ ë¨ì§ ììíë ì©ëë¡ë§ 주ì´ì§ë¤ë ê²ì ì´í´íì¬ì¼ íë¤. ê·¼ìì ì¸ ë°ëª ê°ë ì ì ì ë°/ëë ë²ì ë´ììì ê°ì¢ ì¹í, ìì , ì¶ê° ë°/ëë ì¬êµ¬ì±ì´ ì´ ê¸°ì ì ìë ¨ë ì¬ëìê²ë ì´ ëª ì¸ìì ì¤ëª ì¼ë¡ë¶í° ëª ë°±í ê²ì´ë¤. The invention and its various features and advantageous details are explained more fully with reference to the non-limiting embodiments shown in the accompanying drawings and detailed in the following description. Descriptions of well-known starting materials, processing techniques, components and equipment are omitted to avoid unnecessarily obscuring the details of the present invention. However, while indicating a preferred embodiment of the present invention, it is to be understood that the detailed description and specific examples thereof are given for purposes of illustration only and are not intended to be limiting. Various substitutions, modifications, additions, and / or reconfigurations within the spirit and / or scope of the underlying inventive concept will be apparent to those skilled in the art from the description herein.
ì´ì , ëì§í¸ ì½í í¸ë¥¼ ë³´í¸í기 ìí ë³´ì íë¡í ì½ì ìì¤í ë° ë°©ë²ì ëíì¬ ì´í´ë³¸ë¤. ì´ ë³´ì íë¡í ì½ì ììì ëì§í¸ ì½í í¸ì ëí´ ì¬ì©ê°ë¥íê³ , ì¤ì ëì§í¸ ì½í í¸ì ë³ê²½ì ì구íì§ ìê³ ì¼ë°ì ì¼ë¡ ì íµì ì¸ ìí°ë§í¹ ë°©ìê³¼ ê´ë ¨ë ìì´ë´í°í° í¸ë ì´ì±ì ê°ë ì ëí ì§ìí ì ìë¤. ì´ íë¡í ì½ì 모ë ëì§í¸ ë¹í¸ ì¤í¸ë¦¼ì´ ëì¼íë¤ë ì ì ì 기ì´ë¥¼ ë기 ë문ì, íë¡í ì½ ìì²´ì ê°±ì ì ìí ì¡ì¸ì¤ë¥¼ ì ì´í기 ìí´ íê· íìì¼ë¡ ì¬ì©ë ì ìë¤. ë¤ì ë§í´ì, íë¡í ì½ì ë°ì´í°ê° ë³´í¸ëìì 미ëì´ ì¤í¸ë¦¼ì´ë ì§, ê·¸ë¬í ì¤í¸ë¦¼ì ì¬ìí기 ìí´ íìí ì¤íê°ë¥ ì½ëì´ë ì§, ê·¸ë¬í ì¤í¸ë¦¼ì ì¬ìí기 ìí´ íìí ìí¸í ì¤íê°ë¥ ì½ëì´ë ì§, ê·¸ë¬í ì¤í¸ë¦¼ì ì¬ìí기 ìí´ íìí ìí¸í ì½ë를 ë³µí¸í기 ìí´ íìí ì¤íê°ë¥ ì½ëì´ë ì§, ë³µí¸ ì½ëì í¨ê» ì¬ì©ëë í¤ì´ë ì§, ë±ë±ê³¼ ìê´ìì´ ëì§í¸ ë°ì´í°ì ì¢ ë¥ë¤ ê°ì 구ë³ì ë§ë¤ì§ ìëë¤. ì´ë¬í ë°ì´í°ì ëì§í¸ ìì±ì 모ë íë¡í ì½ì ì¤ìíë¤. ë°ë¼ì, ëì§í¸ ë°ì´í°ì ìì± ë°/ëë ì©ëê° ë³´ì íë¡í ì½ì ê´ì¬ì´ ì기 ë문ì, íë¡í ì½ì ê·¸ ì체를 ë³´í¸í ì ìë¤.Now, a system and method of a security protocol for protecting digital content will be described. This security protocol can be used for any digital content and can also support the concept of identity tracing generally associated with traditional watermarking schemes without requiring changes in the actual digital content. Since this protocol is based on the premise that all digital bit streams are the same, it can be used in a regression format to control access for updating the protocol itself. In other words, the protocol decodes the encryption code needed to play such a stream, whether the data is a protected media stream, the executable code required to play such a stream, or the cryptographic executable code required to play such a stream. It does not make any distinction between types of digital data, whether it's executable code needed to do it, keys used with decryption code, or the like. The digital properties of these data are all important to the protocol. Thus, because the nature and / or use of digital data is not concerned with security protocols, the protocol can protect itself.
ì´ ë¥ë ¥ì ë³´ì íë¡í ì½ì´, ì¤íì¤ì´ë¼ íëë¼ë, íë¡í ì½ì´ ëìíë íëì¨ì´ì ì´ë í ë³ê²½ì ì구íì§ ìê³ (ì를 ë¤ë©´, ìµê·¼ì ë°ê²¬ë ë³´ì ì·¨ì½ì (security hole)ì ì리í기 ìí´) ê°±ì ë ì ììì ì미íë¤. "ì¤ëë" ë³´ì ìì¤í ì ìë¡ì´ ë³´ì ìì¤í ì´ ì¼ë¶ë¡ì í¬í¨ëë¤(ì¦, ìë¡ê³ ì ì¬ì ì¼ë¡ ë ìì í ë³´ì ë 벨ì ì ì²´ ìì¤í ì ì¶ê°í기 ìí´ ì¤ëë ë³´í¸ "ëí¼(wrapper)"를 ë²ê²¨ë¼ íìê° ìë¤). ë°ë¼ì, ì ì²´ ìì¤í ì´ ìµê·¼ì ê°ì¥ ìì í ìí¸í ë°/ëë ì¡ì¸ì¤ ì ì´ ìì¤í ì¼ë¡ ë³´í¸ëë¤. ìë¡ì´ í¤ê° ì¶ê°ë ë¿ë§ ìëë¼, ìì í ìë¡ì´ ë³´ì ë°/ëë ìí¸í ìê³ ë¦¬ì¦ì´ íì¬ì ìì¤í ì ëí ì¶ê°ë ì ìë¤.This capability means that even if a security protocol is running, the protocol can be updated without requiring any change in the hardware on which it works (eg, to repair recently discovered security holes). do. An "old" security system is included as part of the new security system (ie, there is no need to strip off the old protection "wrapper" to add a new and potentially more secure level of security to the entire system). Thus, the entire system is protected with the latest and most secure encryption and / or access control systems. Not only are new keys added, entirely new security and / or encryption algorithms can also be added to the current system.
ì´ ìµíµì±ì ìê° ì íì´ ìë ëì¬, íì´ í¼ ë·°, ë¤ì¤ ë²ì í(multiple versioning), 머ì ìì¡´í íê° ì·¨ì ë° íëì ì¬ì©ìë¡ë¶í° ë¤ë¥¸ ì¬ì©ìë¡ ìì ê¶ì ì구 ìë를 í¬í¨í ë¤ìì ì¬ì 모ë¸ì íë¡í ì½ì´ ì§ìí ì ìê² íë¤.This flexibility allows the protocol to support multiple business models, including time-limited lending, paper views, multiple versioning, machine-dependent authorization revocation, and the permanent transfer of ownership from one user to another. .
ì ìê¶ì´ ìë ìíí¸ì¨ì´ ì í리ì¼ì´ì ì´ ììì ì¸ ì¤ìììì íì©ëì§ë§, ì´ ê¸°ì ì ìë ¨ë ì¬ëì´ë¼ë©´ ëì¼í ë°©ë² ë° ìì¤í ì ì¬ì©íì¬ í ì¤í¸, ë¹ëì¤ ë° ì¤ëì¤ ë°ì´í°, ìì¤ ë° ëª©ì ì½ë ë±ì í¬í¨í 모ë ë¹í¸ì¤í¸ë¦¼ì ëí´ ë³´ìì ì ê³µí ì ìë¤ë ê²ì ì´í´í ê²ì´ë¤.While copyrighted software applications are utilized in the example embodiments, those skilled in the art use the same methods and systems to provide security for all bitstreams, including text, video and audio data, source and destination codes, and the like. I will understand.
ë³´ì íë¡í ì½ì 구체ííë 기본 기ë¥ì í기ì ê²ì ì ê³µíëë¡(ê·¸ë¬ë ì ííë ê²ì ìë) ì¤ê³ëë¤.The basic function of specifying a security protocol is designed to provide (but not limit) the following.
ê³µì í ì¬ì©("ìê° ì´ë", "ê³µê° ì´ë" ë° ë³´ê´ì ë°±ì )Fair Use ("Move Time", "Move Space", and Archive Backup)
ì¦ì§ì ì ê·¸ë ì´ëPromotional upgrade
ìì ê¶ì ìì ìëTemporary transfer of ownership
ìì ê¶ì ì구 ìëPermanent transfer of ownership
ìê° ì í ì¡ì¸ì¤Timed access
ì¬ì©ë ì í ì¡ì¸ì¤(ì¬ì© íì)Usage Limit Access (Number of Usage)
ì¥ì¹ ì§ì íê° ì·¨ìRevoke permission to assign device
ë°ì´í° ëë ì¤í¸ë¦¼ ì§ì íê° ì·¨ìRevoke permission to specify data or stream
ë§ì ë³´ì ìì¤í ì ìì´ì, ì ìê¶ì´ ìë ìíì í¬í¨ë ì§ì ì¬ì°ì ë³´í¸ë¥¼ ìí 기본 ë©ì¹´ëì¦ ì¤ì íëë ë¨ìí ì¡ì¸ì¤ ì ì´ì´ë¤. ê·¸ë¬ë, ì´ë¬í ë©ì¹´ëì¦ì´ ì°íëë©´, ê°ì¥ ë³µì¡í ì¡ì¸ì¤ ì ì´ ë©ì¹´ëì¦ì ìí´ ì ê³µë ë³´í¸ë ë§¤ì° ìì ê°ì¹ë¥¼ ê°ëë¤. ì´ê²ì ì¡ì¸ì¤ ì ì´ê° ë¬´ì© ë©ì¹´ëì¦ì´ê³ 본ì§ì ì¼ë¡ ë° ìì°í ì ì²´ ë³´ì ìì¤í ì´ ìëë¼ê³ ë§í ì ìë¤. ë¤ìì ì ìê¶ìë 미ëì´ ì¤í¸ë¦¼ì´ ì¸í°ë·ìì ê³µê° ìë¹ì ìì ë¡ê² ì´ì©ê°ë¥íë¤ë ì¬ì¤ì ê·¸ë¬í ë³´ì ìì¤í ì´ ê±°ì íì ì°íë ì ìë¤ë ì¬ì¤ì ì¦ê±°ì´ë¤. ì´ë¬í ì¢ ë¥ì ì¡ì¸ì¤ ì ì´ë í©ë²ì ì¼ë¡ 구매í ì ìê¶ ìíì ì¹´í¼ë¥¼ ë°±ì íëë¡ ë©ì¹´ëì¦ì 구ì±íë ê²ì´ ëì± ì´ë µê² íê³ , ì´ê²ì ìë³¸ì´ íê´´ë ìíì ì²í´ìë ê²½ì° íìíë¤. ë°ë¼ì, ì¬ê¸°ìì ì¤ëª íë ë³´ì íë¡í ì½ì ë³´ì íë¡í ì½ì ì ì©íê² í기 ìí´ ì´ë í ì¢ ë¥ì ì¡ì¸ì¤ ì ì´ ìì¤í ë ì구íì§ ìëë¤.In many security systems, one of the basic mechanisms for the protection of intellectual property contained in copyrighted works is simple access control. However, if this mechanism is bypassed, the protection provided by the most complex access control mechanisms has very little value. This can be said that access control is a dance mechanism and not inherently and naturally the entire security system. The fact that many copyrighted media streams are freely available for public consumption on the Internet is evidence of the fact that such security systems can almost always be bypassed. This kind of access control makes it more difficult to configure the mechanism to back up a copy of a legally purchased copyrighted work, which is necessary if the original is in danger of being destroyed. Thus, the security protocol described herein does not require any kind of access control system to make the security protocol useful.
ì¬ê¸°ìì ì¤ëª íë ë³´ì íë¡í ì½ì ì ìê¶ ìíì ííì ì ì´íë ê²ì ì§ì¤ëê³ , ìí ì체를 구ì±íë ëì§í¸ ë°ì´í°ì ì§ì¤ëë ê²ì´ ìëë¤. ê·¸ëì, íë¡í ì½ì ì ìê¶ ìíì ë³´í¸í기 ìí´ ì¬ì©íë ëì§í¸ ë°ì´í° ëë ê·¸ ìíì´ ì´ë»ê² í´ìëì´ì¼ íëì§ë¥¼ ì¤ëª í기 ìí´ ì¬ì©íë ë¤ë¥¸ ëì§í¸ ë°ì´í°ë¤ ì¬ì´ì 구ë³ì ë§ë¤ì§ ìëë¤. ê·¸ ê²°ê³¼, íë¡í ì½ì ë¤ë¥¸ ë³´ì íë¡í ì½ì ë³´í¸í기 ìí´ ì¬ì©ë ì ìë¤.The security protocol described here is focused on controlling the representation of the copyrighted work, not on the digital data that constitutes the work itself. Thus, the protocol does not make a distinction between the digital data used to protect a copyrighted work or other digital data used to describe how the work should be interpreted. As a result, the protocol can be used to protect other security protocols.
기본 ëì ì¤ëª :Description of basic behavior:
ë³´ì íë¡í ì½ì ì¤ììë ìíí¸ì¨ì´ ë¶ë¶ì 창조ìê° ê·¸ë¤ì ì½ëê° ê·¸ ìê³ ë¦¬ì¦ì ë³µì¬ ëë ë¤ë¥¸ ë°©ìì¼ë¡ ì ì©íê³ ì íë ì¬ëì ìí´ ë¶í´ëë ê²ì¼ë¡ë¶í° ë³´í¸ëë ëì ì ì© ì ë를 ê°ì§ ì ìëë¡ ì¤ê³ëë¤. ì¤ììë ëí ì½ëì 기ë¥ì ë³ê²½íë ¤ê³ íë ì¬ëì ìí´ ì½ëê° ìì ëë ê²ì¼ë¡ë¶í° ë³´í¸íëë¡ ì¤ê³ëë¤. ì´ë¬í 기본 í¹ì§ì´ ë¤ë¥¸ ë²ì© ì»´í¨í ìì¤í ìì 구íë ì ìê² íë ë°©ë²ë¤ ì¤ì íëë ë¤ì ì¹ì ìì ì¤ëª ëë¤. ì´ë¬í 2ê°ì§ 기본 기ë¥ì ë¶ì°ë¬¼ë¡ì ë°ìíë ì¶ê°ì í¹ì±ì ìíí¸ì¨ì´ê° ëìí ì ìë ì¡°ê±´(ì¦, ì¸ì ì´ë»ê² ì´ë 머ì ìì ì½ëì ì¤íì´ íì©ëëì§)ì ì ì´íë ë¥ë ¥ì´ë¤. ì´ ê¸°ë¥ë¤ ì¤ ì²«ë²ì§¸ì ê²ì ë³ê²½ ë°©ì§(tamper-resistant) íì´ë¨¸ ìì를 ìì¤í ì ì¶ê°í¨ì¼ë¡ì¨ ë¬ì±ë ì ìë¤. ë¤ë¥¸ 기ë¥ì ë¹í´ ì½ë ë¸ë¡ì ì¤íí기 ìí´ ë¶í©ëì´ì¼ íë ìì ì ì¡°ê±´ë¤ì íìí기 ìí´ ì¬ì©ëë ë³´ì ë°ì´í° 구조를 구íí¨ì¼ë¡ì¨ ë¬ì±ëë¤. ì´ ë°ì´í° 구조ë íëì¨ì´ ì§ì ì´ ìë기 ë문ì, ë¤ìí ë°©ë²ì¼ë¡ ì¬ì©ë ì ìê³ , ê·¸ê²ì í´ìí기 ìí´ ì¬ì©í ìíí¸ì¨ì´ë¥¼ ê°±ì í¨ì¼ë¡ì¨ ìì ë ì ìë¤. íë¡í ì½ì ë í¨ì¨ì ì¼ë¡ 구íí기 ìí´ íì©ëë íëì¨ì´ ì§ì í¹ì§ë¤ì´ ì¤ëª ëê³ , íë¡í ì½ì ì§ìí기 ìí´ ì기 í¹ì§ë¤ì ì´ë»ê² ì¬ì©í ì ìëì§ì ê´í ìë¤ì´ 주ì´ì§ë¤. ë§ì§ë§ì¼ë¡, ì ìê¶ ìíì ë³´í¸í기 ìí´ íë¡í ì½ì ì´ë»ê² ì¬ì©í ì ìëì§ë¥¼ ì¤ëª íë¤.Embodiments of security protocols are designed such that the creator of the software portion can have a high degree of credit that is protected from being broken down by someone who wants their code to copy or otherwise exploit the algorithm. Embodiments are also designed to protect the code from being modified by a person trying to change the functionality of the code. One of the ways in which this basic feature can be implemented in other general purpose computing systems is described in the following section. An additional feature that arises as a by-product of these two basic functions is the ability to control the conditions under which the software can run (i.e. when and how on which machines the code is allowed to run). The first of these functions can be accomplished by adding a tamper-resistant timer element to the system. Another function is achieved by implementing a secure data structure that is used to indicate certain conditions that must be met to execute the code block in question. Since this data structure is not hardware specific, it can be used in a variety of ways and can be modified by updating the software used to interpret it. Hardware specific features utilized to implement the protocol more efficiently are described, and examples are provided of how the features can be used to support the protocol. Finally, it explains how the protocol can be used to protect copyrighted works.
ë³´ì íë¡í ì½ì ì¤ììë ëì§í¸ ë¹í¸ì¤í¸ë¦¼ì ê·¸ ìëë ìë ¹ìì ìí´ìë§ ë³µí¸í ì ìê² íë ë°©ë²ì¼ë¡ ëì§í¸ ë¹í¸ì¤í¸ë¦¼ì ìí¸ííë ë¥ë ¥ì ìì¡´íë¤. ì´ê²ì ì ì´í´ëë 문ì ì´ê³ , ìë§ì ì°ì íì¤ ìí¸í ìê³ ë¦¬ì¦ì 기ì´ê° ëë¤. ê·¸ë¬ë, ë³´ì íë¡í ì½ì ì¤ììì í¨ê» ì¬ì©íëë¡ ê³ ë ¤í´ì¼ íë 2ê°ì§ì ì¶ê°ì ì¸ ììê° ìë¤. ì¦, íë¡í ì½ì íµì¬(core)ì´ ì íì ì¸ ì¨ì¹© ëª ë ¹ì´ ìºì(I-ìºì)ì (ë¹êµì ) ìì íê³ì ë§ì¶ì´ì§ ì ìë¤ë©´ ëìì´ ëë¤ë ì¬ì¤ê³¼ ë°ë 립 ë°©ìì¼ë¡ ëìì´ ê°ë¥íë¤ë ì¬ì¤ì´ë¤. ë¤ì ë§í´ì, íë¡í ì½ì´ ìê³ íìì 매ì¼ê°ì ëì(day-to-day operation)ì ìí´ ì¤ìì ë³´ì ìë²ì ì¬ì©ì ì구íì§ ìëë¤ë©´ ì ì©íë¤.Embodiments of the security protocol rely on the ability to encrypt the digital bitstream in a way that allows it to be decrypted only by its intended recipient. This is a well understood problem and is the basis of many industry standard encryption algorithms. However, there are two additional elements that should be considered for use with embodiments of security protocols. That is, it is helpful if the core of the protocol can be fitted to the (comparatively) small limits of a typical on-chip instruction cache (I-cache) and that it can work in a semi-independent manner. In other words, it is useful if the protocol is small and does not require the use of a central security server for normal day-to-day operations.
íëì¨ì´:hardware:
ì´ì ë 161ë¡ ëìê°ì, ì´ ë³´ì íë¡í ì½ì ì¤íí ì ìë ì¥ì¹ì ììì ì¸ ì ì²´ ë¸ë¡ëê° ëìëì´ ìë¤. ë³´ì íë¡í ì½ ìì¤í ì ìë íë¡í ì½ì íë¡í ì½ ìì§(100)("목í ì ë"ì´ë¼ê³ ë ë¶ë¦)ìì ìì í ë°©ìì¼ë¡ 구ííë íëì¨ì´ ë¸ë¡ì ì§í©ì í¬í¨íë¤. ì´ ë¸ë¡ë¤ì íë¡í ì½ì´ ì ííê² ëìíê² í기 ìí´ íëì¨ì´ìì ìºì¤í¸ë íìê° ìì§ë§, ë¤ìì ì¤ëª íë íëì¨ì´ ìì를 모ë í¬í¨íë ì¥ì¹ë ìµìì ê²½ìë¹(overhead)ë¡ íë¡í ì½ì 구íí ì ìì ê²ì´ë¤.Turning now to FIG. 161, an exemplary overall block diagram of a device capable of implementing this security protocol is shown. An example of a secure protocol system includes a set of hardware blocks that implement a protocol in a secure manner in the protocol engine 100 (also called a "target unit"). These blocks do not need to be cast in hardware to make the protocol work correctly, but devices that include all of the hardware elements described below will be able to implement the protocol with minimal overhead.
ì´ë¬í íëì¨ì´ ë¸ë¡ì 첫ë²ì§¸ë ì¤ìê° í´ë(102)ì´ë¤. ì´ê²ì ì¤ì ìë²ìì ìì í ìí¸ ìì©ì ìí´ ì¸í¸ ëë 리ì¸í¸ë ì ìë ìì ê°ë(free-running) íì´ë¨¸ì´ë¤. ë¹ë¡ ì´ê²ì´ ìì í 본ì§ì ì¸ ë¸ë¡ì ìëì§ë§, ìì ìê° íì¤ì ì§ì를 íí¨ì¼ë¡ì¨ ìê°ì´ í립ë ì ì기 ë문ì ì´ ê¸°ë¥ì ì¨ì¹©ì¼ë¡ íë ê²ì´ ë í¸ë¦¬íë¤. ì´ê²ì ìê° ìì¡´ì± ìíí¸ì¨ì´ ë¼ì´ì¼ì¤ì í¨ê» ííì¬ì ¸ì¼ íê³ , ê·¸ ìë ì´ ë¬¸ìì ë¤ì ì¹ì ìì 주ì´ì§ ê²ì´ë¤.The first of these hardware blocks is the real time clock 102. This is a free-running timer that can be set or reset by secure interaction with the central server. Although this is not a completely essential block, it is more convenient to turn this function on chip because time can be established by querying the safety time standard. This must be done with a time-dependent software license, an example of which will be given later in this document.
ë¤ë¥¸ íëì íëì¨ì´ ììë ì¤íë ì½ë를 ì¨ì¹©ì¼ë¡ ì ì¥í ì ìë ë©ëª¨ë¦¬(110)ì ë¸ë¡ì´ë¤. ì´ê²ì ì íì ì¼ë¡ ëª ë ¹ì´ ìºì(I-ìºì)ë¼ê³ ìë ¤ì ¸ ìê³ , ì¼ë¶ ì¤ììì ìì´ì, ì기 I-ìºì(110)ì ë¶ë¶ë¤ì ì¤ìí í¹ì±ì í¹ì ë¸ë¡ì ë´í¬ë ë°ì´í°ê° CPU ì¤í ì ë(120)ì ìí´ìë§ íë ë ì ìë¤ë ê²ì´ë¤. ë¤ì ë§í´ì, I-ìºì ë©ëª¨ë¦¬(130)ì ì기 í¹ì ë¸ë¡ì ì¤íë§ ê°ë¥íê³ ììì ìíí¸ì¨ì´ì ìí´ íë ëë 기ë¡ë ì ìë¤. ì´ I-ìºìì í¹ì ì¹ì ì ì°ë¦¬ë "ë³´ì ì½ë ë¸ë¡"(130)ì´ë¼ê³ ë ë¶ë¥¸ë¤. ì¤í ëì ì½ëê° ì´ ë³´ì I-ìºì ë¸ë¡(130)ì ì¤ì ë¡ ì ì¥ëë ë°©ë²ì ë¤ë¥¸ íëì¨ì´ ììì ìí´ì ìíë ì ìë¤.Another hardware element is a block of memory 110 that can store code to be executed on-chip. This is typically known as an instruction cache (I-cache), and in some embodiments, an important characteristic of portions of the I- cache 110 is that data contained in a particular block can only be read by the CPU execution unit 120. Can be. In other words, the special block of I- cache memory 130 is executable only and cannot be read or written by any software. The special section of this I-cache is also referred to as "secure code block" 130. The manner in which the executable code is actually stored in this secure I- cache block 130 may be performed by other hardware elements.
ê²ë¤ê°, ë³´ì ì½ë ë¸ë¡ì ëìì ê°ìíí기 ìí´ ì¬ì©í ì ìë ê°ë¥í "ì¦ë(enhancement)"ì ë¤ë¥¸ ì¹´í ê³ ë¦¬ê° ìë¤. ì´ ì¹´í ê³ ë¦¬ ì¤ì íëë CPU(120)ê° ë³´ì ì½ë를 ì¤ííë ëì ì¡ì¸ì¤ë§ ê°ë¥í CPU ë ì§ì¤í°(140)ì (ë¶ë¶)ì§í©ì ì§ì íë ë¥ë ¥ì´ê³ ë°/ëë ì´ê²ì ë³´ì ì½ë ë¸ë¡ì ì¤í ì¢ ë£ì ëë ì´ë¤ ì´ì ë¡ ì¤í ì ëì´ ë¹ë³´ì ì¦ "ì ì" I-ìºìì ìì¹ë ììì ì½ë ì¹ì ì¼ë¡ ì ííë©´ í´ë¦¬ì´ëë¤. CPU(120)ê° "ë³´ì" ì½ëì "ë¹ë³´ì" ì½ëì í¼í©ë¬¼ì ì¤íí ê°ë¥ì±ì ìì´ ë³´ì´ì§ë§, ì¸í°ë½í¸ 루í´ì¼ë¡ ì íí ë ì½í ì¤í¸ë¥¼ ì¤ìì¹íë ê³¼ì ìì ë¬´ì¨ ì¼ì´ ë°ìí ì ìëì§ ë° CPU(120) ì½í ì¤í¸ê° ì´ëì ì ì¥ëëì§ë íì ì¼ëì ëì´ì¼ íë¤(ëë¶ë¶ì CPUë ì½í ì¤í¸ë¥¼ ë©ì¸ ë©ëª¨ë¦¬ì ì ì¥íëë°, ì´ ë©ëª¨ë¦¬ë ëì¤ì ë¹ë³´ì ì½ë ë¸ë¡ì ìí´ ë°ê²¬ë ê°ë¥ì±ì´ ìë¤).In addition, there are other categories of possible "enhancement" that can be used to speed up the operation of secure code blocks. One of these categories is the ability to specify a (partial) set of CPU registers 140 that can only be accessed while the CPU 120 executes the security code and / or it is executed by the execution unit at the end of execution of the security code block or for some reason. Clearing if you jump to any code section that is insecure, i.e., a "normal" I-cache. While it seems unlikely that the CPU 120 will run a mixture of "secure" code and "non-secure" code, what can happen in the process of switching context when jumping to an interrupt routine and where the CPU 120 context is stored It should always be kept in mind (most CPUs store the context in main memory, which is likely to be discovered later by insecure code blocks).
ë¤ë¥¸ ê°ë¥ì±(ì´ë¤ ë ì§ì¤í°(140)ê° í´ë¦¬ì´ëì´ì¼ íëì§ë¥¼ ë³´ì ì½ë ë¸ë¡ì 창조ìê° ëª ë°±í ìë³íë ê²ì ì구íë ê²ì´ ìë ê²)ì ê·¸ê²ì´ ìëì¼ë¡ ííì¬ì ¸ì¼ íë¤ë ê²ì´ë¤. ì´ê²ì ë³´ì ì½ë ë¸ë¡ ë´ìì ì¤ííë ëì ì´ë¤ ë ì§ì¤í°(140)ê° íë ëë 기ë¡ëëì§ë¥¼ CPU ì¤í ì ë(120)ì´ ê³ìíì¬ ì¶ì íê³ , ê·¸ ë¤ìì "ë³´ì" 모ë를 ë¹ ì ¸ëê° ë ì기 ë ì§ì¤í°ë¥¼ ìëì¼ë¡ í´ë¦¬ì´íë ê²ì¼ ì ìë¤. ì´ê²ì ë³´ì ì½ëê° ê·¸ ìì²´ íì ì ìí "ì²ì(clean-up)"ëì´ 2ì¢ ë¥ì ì½ë¤ ë¸ë¡ë¤ ê°ì ê³µì ëëë¡ íì©ë ë°ì´í°ë§ì´ 본ëëë¡ ì ì§ëê² íë¤. "ìë" ì²ë¦¬ë "ëª ìì " ì ì°¨ë³´ë¤ ì ì¬ì ì¼ë¡ ë ìì í ì ìì§ë§, ì½ë 창조ìê° ë³´ì ì½ë ë¸ë¡ê³¼ ë¹ë³´ì ì½ë ë¸ë¡ ì¬ì´ìì ì 보를 ê³µì íê³ ì íë ê²½ì°ì ëì± ë³µì¡íê² ë ì ìë¤.Another possibility (not requiring the creator of the secure code block to explicitly identify which register 140 should be cleared) is that it should be done automatically. This keeps track of which registers 140 are read or written while executing within a secure code block, and then automatically clears those registers when exiting the "secure" mode. It may be. This ensures that only the data that is allowed to be "clean-up" quickly after the security code itself is shared between the two types of coded blocks is kept intact. "Automatic" processing can potentially be safer than "explicit" procedures, but can be more complicated when code creators want to share information between secure and non-secure code blocks.
ë³´ì ì½ë ì¸ê·¸ë©í¸ì ë¹ë³´ì ì½ë ì¸ê·¸ë©í¸ ì¬ì´ìì ë ì§ì¤í° ì ì¥ ë°ì´í°ì "ëì¤"ì ì·¨ê¸íë ë¤ë¥¸ ì ì¬ì ì¸ ë°©ë²ì CPU(120)ê° ë³´ì ì½ë를 ì¤íí ëë§ ì¬ì©ëë ë ì§ì¤í°ì ì ì¼í ì§í©ì ìë³íë ê²ì´ë¤. ëí ë²ì© ë ì§ì¤í° ì§í©(140)ì ê°ì§ ì¼ë¶ CPU ìí¤í ì³ì ìì´ì, ì´ê²ì ìµì´ë¡ ê¸ì§ì ì¼ë¡ ë¹ì¼ ê²ì¼ë¡ ë³´ì¸ë¤. ê·¸ë¬ë, ë§ì íëì CPU ì¤ê³ìì ì¤ìëë ë ì§ì¤í° 리ë¤ì´ë° ë° ì¤ì½ì´ë³´ë© ë©ì¹´ëì¦ì ìì ë²ì ì ì´ì©í¨ì¼ë¡ì¨ ê³¼ëí ê²½ìë¹ë¥¼ ì구íì§ ìê³ (ì¦, "ë³´ì" ë ì§ì¤í°ì 물리ì ì¼ë¡ ë¤ë¥¸ ì§í©ì 구íí ë ìë°ëë ì¤ë¦¬ì½ ì¤ë²í¤ëìì´) ëì¼í í¨ê³¼ê° ë¬ì±ë ì ìë¤. ë§ì¼ ë³´ì ì½ë ë¸ë¡ì ì¤íì ìì ëì(atomic action)ì¼ë¡ ì·¨ê¸íë©´(ì¦, ì¤ë¨í ì ìì¼ë©´), ì´ë¬í ì´ìë ë¤ë£¨ê¸°ê° ë ì½ì§ë§, ì´ í¸ë¦¬ì±ì ì±ë¥ ë° ì ì¬ì ì¸ ì ì²´ ì½ë ë³µì¡ì±ì ê°ì ¸ì¬ ì ìë¤. I-ìºìì "ë³´ì" ë¶ë¶(130)ì CPUì ëíì¬ I-ìºìì "ì ì" ë¶ë¶(150)ê³¼ë ë¤ë¥¸ ë°ì´í° ê²½ë¡ë¥¼ ë°ëì ì구íì§ ìëë¤ë ì ì 주목íë¤. ì¬ì¤, ì기 ëì ìì í ëìì´ì¼ ì ìë¤.Another potential way to handle "leakage" of register storage data between secure code segments and non-secure code segments is to identify a unique set of registers that are only used when the CPU 120 executes the secure code. For some CPU architectures with a large general register set 140, this first appears to be prohibited and expensive. However, by utilizing a modified version of the register renaming and scoreboarding mechanism implemented in many modern CPU designs, it does not require excessive overhead costs (i.e. without the silicon overhead involved in implementing a physically different set of "secure" registers). The same effect can be achieved. If the execution of a secured code block is treated as an atomic action (ie, it cannot be interrupted), this issue is easier to deal with, but this convenience can result in performance and potential overall code complexity. Note that the "secure" portion 130 of the I-cache does not necessarily require a different data path to the CPU than the "normal" portion 150 of the I-cache. In fact, the two can be completely synonymous.
ì¼ë°©í¥ í´ì í¨ì ë¸ë¡(160)ì´ ëí ëìëì´ ìë¤. ì´ ê¸°ë¥ì íëì¨ì´ë¡ 구íí íììì´ ë³´ì íë¡í ì½ì ì¤ìì를 ì¤íí ì ìë ìì§ì 구ì±íë ê²ì´ ê°ë¥íë¤. ê·¸ë¬ë, í´ì± ìê³ ë¦¬ì¦ì í¹ì ë¶ë¶ì ëí íëì¨ì´ ê°ì기ë íì¤í ë°ëì§í í¹ì§ì´ë¤. ì´ ê¸°ë¥ ë¸ë¡ì íëì¨ì´ì ìíí¸ì¨ì´ 구í ê°ì êµíì¡°ê±´(tradeoff)ì ë¤ìì ì¤ëª íë¤.One-way hash function block 160 is also shown. It is possible to construct an engine that can execute embodiments of the security protocol without having to implement this functionality in hardware. However, hardware accelerators for certain parts of the hashing algorithm are certainly desirable features. The tradeoff between the hardware and software implementation of this functional block is described later.
목í ì ë(100)ì ë¤ë¥¸ ë¶ë¶ì íëì¨ì´ ì¡°ë ¥ ë³µí¸ ìì¤í (170)ì´ê³ , ì´ê²ì ìí¸í ë©ìì§ìì ëìíë 목í ì ë(100)ì ë¹ë°í¤ ë° ê³µê°/ê°ì¸í¤(ë¤ìì ì¤ëª í¨)를 ì¬ì©íì¬ ì´ë¤ì ì¤íê°ë¥ ì½ë ë¸ë¡ì¼ë¡ ë³ííë¤. ì´ ë³µí¸ ìì¤í (170)ì ì¬ë¬ ê°ì§ ë°©ë²ì¼ë¡ 구íë ì ìë¤. ì ì²´ íë¡í ì½ì ìë ë° ë³´ìì±ì ì´ ë¸ë¡ì 구ì±ì ìì¡´íê³ , ë°ë¼ì ë³´ì ìì¤í ê°±ì ì ìì©íëë¡ ì¶©ë¶í ìµíµì±ì´ ìì ë¿ë§ ìëë¼ ìì¤í ì´ ìê° ìê³ ë©ìì§ì ì¤ìê° ë³µí¸ë¥¼ ìííëë¡ ì¶©ë¶í ê³ ìì´ì´ì¼ íë¤.Another part of the target unit 100 is the hardware assisted decryption system 170, which executes the executable code block using the secret key and public / private key (described below) of the target unit 100 operating on the encrypted message. Convert to This decoding system 170 can be implemented in a number of ways. The speed and security of the overall protocol depends on the configuration of this block and therefore must be flexible enough to accommodate secure system updates as well as fast enough for the system to perform real time decryption of time critical messages.
ì´ ë ê°ì§ ì ì½ì ì¼ëì ëê³ ìì¼ë©´ íë¡í ì½ì ìì´ì ì íí ì´ë¤ ìí¸í ìê³ ë¦¬ì¦ì´ ì´ íëì¨ì´ ë¸ë¡(170)ì ëíì¬ ì¬ì©ëëì§ë ì¤ìíì§ ìë¤. ìµëì ìµíµì±ì ì´ì§í기 ìíì¬, ì¤ì íëì¨ì´ë ë¹ìê³ ë¦¬ì¦ì ì¼ë¡ í¹ìí ë°©ë²ì¼ë¡ ì¬ì©ëëë¡ ì¶©ë¶í ë²ì©ì´ë¼ê³ ì¶ì ëì§ë§, ì´ ë©ì¹´ëì¦ì 구íí ì ìë ë§ì ë¤ë¥¸ ìë¨ì´ ìë¤.With these two constraints in mind, it is not important what exactly encryption algorithm is used for this hardware block 170 in the protocol. To facilitate maximum flexibility, the actual hardware is assumed to be general enough to be used in a non-algorithmically specific way, but there are many other means of implementing this mechanism.
ì¨ì¹© ëì ë°ì기(180)ê° ëí ë¸ë¡ëì ì ì ì¼ë¡ íìëì´ ìë¤. ì´ ë¸ë¡ì ì íì ì´ë¤. ëí, ì´ ëì ë°ì기ë ìíí¸ì¨ì´ ê¸°ë° ìì¬ ëì ë°ì ìì¤í ì ì¢ ì ê°ì ê³µê¸í ì ìë ì¶©ë¶í 무ììì¸ ìì ì´ì ìì±íë ì ë¹í ì¤í칩 ë°©ë²ì¼ë¡ êµì²´ë ì ìë¤. ì´ ìì¬ ëì ë°ì기ë ì ì¬ì ì¼ë¡ íëì¨ì´ë¡ ëë "ë³´ì" ìíí¸ì¨ì´ë¡ ëí 구íë ì ìë¤. ë¬¼ë¡ , ìíí¸ì¨ì´ ê¸°ë° ìì¤í ì ìµíµì±ê³¼ íëì¨ì´ 구í ê°ì ëì¼ ì리ì êµíì¡°ê±´ì´ ì´ ê²½ì°ì ëí ì ì©ë ì ìë¤. ê·¸ë¬ë, 목í ì¥ì¹(100)ê° ëì를 ë°ìí´ì¼ íë ê²½ì°ë ì´ íë¡í ì½ìì ë¹ë²íê² ë°ìíì§ ì기 ë문ì, ì´ í¹ìí 기ë¥ì´ íëì¨ì´ ê°ìíê° ìëì§ë¼ë ì ì²´ ì±ë¥ì ìí¥ì 주ì§ë ìì ê²ì´ë¤.On-chip random number generator 180 is also indicated by dashed lines in the block diagram. This block is optional. The random number generator can also be replaced with a suitable off-chip method that generates a sufficiently random number of rows capable of supplying seed values to a software based pseudo random number generation system. This pseudo random number generator can potentially also be implemented in hardware or in "secure" software. Of course, the same principle of exchange between the flexibility of the software-based system and the hardware implementation can also be applied in this case. However, the case where the target device 100 has to generate random numbers does not occur frequently in this protocol, so even if this special function is not hardware acceleration, it will not affect the overall performance.
ë¹ë°í¤:Secret key:
ê° íë¡í ì½ ìì§(100)ì ì¨ì¹©ì¼ë¡ ì ì¥ë 2ì¸í¸ì ë¹ë°í¤ ìì(104)를 ê°ì§ ì ìê³ , ê·¸ë¤ì ê°ì ìíí¸ì¨ì´ì ìí´ íë ë ì ìë¤. ì´ë¤ í¤ì 첫ë²ì§¸(1ì°¨ ë¹ë°í¤)ë ë¹ë°í¤ì ì§í©ì¼ë¡ì 구ì±ë ì ìê³ , ê·¸ë¤ ì¤ìì íëë§ì´ ììì í¹ì ìê°ì íë ë ì ìë¤. ë§ì¼ ì ëì "ìì ê¶"ì´ ë°ëë©´(ì를 ë¤ë©´, íë¡í ì½ ìì§ì ë´í¬í ì¤ë¹ê° í매ëê±°ë ê·¸ ìì ê¶ì´ ë¤ë¥¸ ë°©ìì¼ë¡ ì´ì ëë©´), íì¬ íì±ì¸ 1ì°¨ ë¹ë°í¤ë "í´ë¦¬ì´"ëê±°ë ë¤ë¥¸ ê°ì¼ë¡ ë®ì´ì°ê¸° ë ì ìë¤. ì´ ê°ì ìì í ë°©ë²ì¼ë¡ ì ëì ì ë¬ë ìë ìê³ , ëë ì기 ì 1 í¤ê° í´ë¦¬ì´ë ëìë§ ì¬ì©ëë ë°©ìì¼ë¡ ì ëì ì´ë¯¸ ì ì¥ëì´ ìì ìë ìë¤. ì¬ì¤, ì´ê²ì ì ëì ìì ê¶ì´ ë³ê²½ëìì ë ëë ê·¸ë¬í ë³ê²½ì ê´í ì´ë¤ ë¤ë¥¸ ì´ì ê° ìë ê²½ì°(ì ì¶©í¤(compromised key)ì ê°ì´) ìë¡ì´ 1ì°¨ ë¹ë°í¤ë¥¼ ì기 í¹ì ì ëì ë°ííë ê²ê³¼ ë±ê°ì´ë¤. ì´ 1ì°¨ ë¹ë°í¤ ê°(ëë ê°ë¤ì ì§í©)ì´ ì ì¥ëë ì ì¼í ë¤ë¥¸ ì¥ìë íê° ê¸°ê´ì ìë ì¤ì ìë²ì´ë¤.Each protocol engine 100 may have two sets of secret key constants 104 stored on-chip, and their values cannot be read by software. The first of these keys (the primary secret key) can be configured as a set of secret keys, and only one of them can be read at any particular time. If the unit's "ownership" is changed (for example, a facility containing a protocol engine is sold or its ownership is transferred in another way), the currently active primary secret key will be "cleared" or overwritten with another value. Can be. This value may be delivered to the unit in a secure manner, or may already be stored in the unit in such a way that it is used only when the first key is cleared. In fact, this is equivalent to issuing a new primary secret key to the special unit when the ownership of the unit changes or if there is any other reason for such a change (such as a compromised key). The only other place where this primary secret key value (or set of values) is stored is the central server at the authority.
1ì°¨ ë¹ë°í¤ë ì¤ì ìë² ë°ì´í°ë² ì´ì¤ì ìë í¹ìí 목í ì ë(100)ì ì¼ë ¨ë²í¸(106)ì ê´ë ¨ë ì ìë¤. ì¼ë ¨ ë²í¸(106)ë 목í ì ë(100)ì ì´ëìë ì ì¥ë ì ìê³ , ìíí¸ì¨ì´ ì¡ì¸ì¤ê°ë¥ì´ë©° 1ì°¨ ë¹ë°í¤ì ëí ë¤ë¥¸ ê´ê³ë¥¼ ê°ì§ ìëë¤. ì ëì ëì íìì ëí ììì ê°±ì (ë³´ì ìì¤í ì ê°±ì ë±)ì 1ì°¨ ë¹ë°í¤ë¥¼ ì´ì©íì¬ ë¬ì±ë ì ìë¤. ë§ì¼ ì´ í¤ì ê°ì´ 목í ì ë(100) ë° íê° ê¸°ê´ ì´ì¸ì ë¤ë¥¸ ë¹ì¬ììê² ìë ¤ì ¸ ìì§ ìì¼ë©´, ìì í ì¤ì ìë²ë¥¼ íµí ë§í¬ë¥¼ ìë°íì§ ìì ììì ë³´ì í¸ëìì ì ìíì¬ ì¬ì©ë ì ìë¤. ê·¸ë¬ë, ì´ 1ì°¨ í¤ì ë³´ìì±ì ìµê³ ì ì¤ìì±ì ê°ê¸° ë문ì, ì ëì ì¼ë¡ íìí ëë§ ì¬ì©ëì´ì¼ íë¤. ë°ë¼ì, ì를 ë¤ë©´, íê° ê¸°ê´ì ì¤ì ìë²ì 목í ì ë ê°ì ìì í í¸ëìì ì ìí íµì ë§í¬ë¥¼ ìí¸íí기 ìí´ ì¬ì©ëì´ìë ìëë¤. ì´ ë§í¬ë íì¬ íì©ëë íì¤ ì¤ìì ë°ë¼ì ê¸í ë°ìëë ìì í¤ë¥¼ ì´ì©íë íì¤ í¤ êµí íë¡í ì½ì ì´ì©íì¬ ìì íê² ë ì ìë¤.The primary secret key may be associated with the serial number 106 of the particular target unit 100 in the central server database. The serial number 106 can be stored anywhere in the target unit 100, is software accessible and has no other relationship to the primary secret key. Any update to the operational aspect of the unit (such as an update of the security system) can be accomplished using the primary secret key. If the value of this key is unknown to parties other than the target unit 100 and the authority, it cannot be used for any secure transaction that does not involve a link through a secure central server. However, the security of this primary key is of utmost importance and should only be used when absolutely necessary. Thus, for example, it should not be used to encrypt a communication link for secure transactions between a central server of a licensing authority and a target unit. This link can be secured using a standard key exchange protocol that uses any key that is rapidly generated according to currently accepted standard implementations.
2ì°¨ ë¹ë°í¤ë 목í ì ë(100) ìì²´ìë§ ìë ¤ì§ ì ìë¤(ë°ë¼ì íê° ê¸°ê´ìë ìë ¤ì§ì§ ìëë¤). 목í ì ë(100)ì CPU(120)ë 1ì°¨ ëë 2ì°¨ ë¹ë°í¤ì ê°ì ì¡ì¸ì¤í ì ìì¼ë¯ë¡, ì´ë¤ ë©´ìì 목í ì ë(100)ì ê·¸ ìì ì ë¹ë°í¤(104)ê¹ì§ë ìì§ ëª»íë¤. ì´ í¤ë¤ì 목í ì ë CPU(120)ì ë³´ì ë¸ë¡ ë´ì ì ì¥ëì´ ì¬ì©ë ë¿ì´ë¤. ì´ë¤ ë ê°ì§ ë¹ë°í¤ì ì¡°í©ì 목í ì ëì ì ì²´ ë³´ìì±ì ì¦ëìí¨ë¤. ì´ë¤ì´ ì´ë»ê² ì¬ì©ëë ì§ë ë¤ìì ì¤ëª íë¤.The secondary secret key may only be known to the target unit 100 itself (and therefore not to the licensing authority). Since the CPU 120 of the target unit 100 cannot access the value of the primary or secondary secret key, the target unit 100 does not know even its own secret key 104 in some respects. These keys are only stored and used in the security block of the target unit CPU 120. The combination of these two secret keys increases the overall security of the target unit. How they are used is explained later.
ë¤ë¥¸ í¤ ì§í©ì ìì ê³µê°/ê°ì¸í¤ ìì¤í (ë¹ëì¹ í¤ ìì¤í ëë PKI ìì¤í ì´ë¼ê³ ë ìë ¤ì ¸ ìë¤)ì ì¼ë¶ë¡ì ëìí ì ìë¤. ì´ ìì í¤ë¤ì ê¸íê² ìì±ëê³ , ì¤ì ìë²ì ê°ì ìì´ ì ì¬í ì ëë¤ ê°ì ë³´ì íµì ë§í¬ë¥¼ í립í기 ìí´ ì¬ì©ë ì ìë¤. ì´ë¬í ìì¤í ì ë³´ìì±ì´ ë±ê° í¤ ê¸¸ì´ ëì¹ í¤ ìí¸í ìì¤í ì ë³´ìì±ë³´ë¤ ì íì ì¼ë¡ ë ë®ê¸° ë문ì, ì´ í¤ë¤ì ì ì í ë¹ë°í¤ ì§í©ë³´ë¤ ì¬ì´ì¦ê° ë ì»¤ì¼ íë¤. ì´ í¤ë¤ì ë¤ë¥¸ 무ìë³´ë¤ë "ì¬ì ì¡ ê³µê²©"ì ëíì¬ ë³´í¸í기 ìí´ ì¨ì¹© íì´ë¨¸ ë¸ë¡ìì ì ìëë ê°ê³¼ í¨ê» ì¬ì©ë ì ìë¤. ì´ í¤ë¤ì ê¸íê² ìì±ë기 ë문ì, í¤ë¤ì´ ìì±ëë ë°©ë²ì ì¼ë¶ ì¢ ë¥ì ëì ë°ì ìì¤í (180)ì ìì¡´íë¤. ë§ì§ë§ì¼ë¡, ì기 ìì±ë í¤ë¤ì ìì "ì·¨ì½(weak)" í¤ì ë¶ë¥ì í¬í¨ëì§ ìëë¡ ì£¼ì를 기ì¸ì¬ì¼ íë¤. "ì·¨ì½"ì´ë¼ê³ ìê°ëë í¹ì í¤ ì§í©ì ì¬ì©ëë í¹ì ìí¸í ìê³ ë¦¬ì¦ì ìì¡´íë¤.The other key set may operate as part of a temporary public / private key system (also known as asymmetric key system or PKI system). These pairs of keys are generated in a hurry and can be used to establish a secure communication link between similar units without the intervention of a central server. Since the security of such a system is typically lower than that of an equivalent key length symmetric key encryption system, these keys must be larger in size than the secret key set described above. These keys can be used in conjunction with the values presented in the on-chip timer block to, among other things, protect against "retransmission attacks." Since these keys are generated in a hurry, the way the keys are generated depends on some kind of random number generation system 180. Finally, care must be taken that the generated keys are not included in the class of so-called "weak" keys. The particular set of keys that are considered "vulnerable" depends on the specific encryption algorithm used.
ëì ì¸ë¶:Operation details:
ë³´ì íë¡í ì½ì ì¤ììê° ëìíë ë°©ìì ëª ê°ì ë³ëì ì²ë¦¬, ì¦ ìì¤í ì´ê¸°í, ë³´ì ì½ë ë°ì ë° ëë ë¶ë°°, ë³´ì ì½ë ë¡ë© ë° ì¤í, í¤ ë¦¬ì¤í¸ ë°ì´í° 구조 구ì±, ìì ë¼ì´ì¼ì¤ ì´ì , ì구 ë¼ì´ì¼ì¤ ì´ì , ìì¤í ìì ê¶ ìë, íê° ì·¨ì ë° ë³´ì ìì¤í ê°±ì ì¼ë¡ ëëì´ ì§ ì ìë¤. ì기 ê° ì²ë¦¬ë ì°¨ë¡ë¡ ì¤ëª íë¤. ê·¸ë¬ë, ì´íìì ì¤ëª íë ìë¤ì ì¤ëª ì ê°í¸ì±ì ìíì¬ ì íë ê²ì´ê³ , ì´ íë¡í ì½ì´ 구íë ì ìë ê°ì¥ í¨ê³¼ì ì¸(ì ì¼í ê²ì´ ìë) ë°©ë²ì´ë¼ê³ í ìë ìë¤.The manner in which an embodiment of a security protocol operates may include several separate processes: system initialization, security code generation and mass distribution, security code loading and execution, key list data structure construction, temporary license transfer, permanent license transfer, system ownership transfer, It can be divided into revoke permission and update security system. Each process described above is explained in turn. However, the examples described below are chosen for simplicity of explanation and are not to be the most effective (but not the only) way in which this protocol can be implemented.
ìì¤í ì´ê¸°íSystem initialization
ì´ê²ì 목í ì ëì ë¹ë°í¤(104)ê° ìì ì ì´ê¸°ê°ì¼ë¡ ì¤ì ëë ë¨ê³ì´ë¤. ì´ ì ì°¨ë 2ê°ì ë¹ë°í¤ ì¤ì ì´ë íëì ëíì¬ ëª ê°ì ìì¹ ì¤ì íëìì ë¬ì±ë ì ìì§ë§, ë ¼ë¦¬ì ì¸ ì´ì ë문ì, ì¼ë ¨ ë²í¸ ëë ë¹ë°í¤ê° ë³ê²½ë ê°ë¥ì±ì´ ìë 조립 ê³¼ì ì ìµì¢ ë¨ê³ì´ì´ì¼ íë¤. ì ë(100)ì ì¼ë ¨ ë²í¸ê° ì¤í칩ì¼ë¡ ì ì¥ëë ê²½ì°ì, ì´ ì ì°¨ë ìµì¢ 조립 ìì ìì ìíë ê°ë¥ì±ì´ ê°ì¥ ëë¤. ì ëì ì¼ë ¨ ë²í¸(106)ê° ì¨ì¹©ì¼ë¡ ì ì¥ëë©´, 칩 ì ì¡° ê³µì ì ìµì¢ ì§ì (ì¦, ì¹©ì´ í¨í¤ì§ë í)ìì ì´ ì 차를 ì¤ííë ê²ì´ ì¼ë°ì ì´ê³ , ë°ë¼ì ììì íë°ìì (postproduction) ëë ë²ì¸ í´ìì(burn-in fall out)ì ë¹ê¸°ë¥ì± ë¶ë¶ì 골ë¼ë´ë 기í를 ê°ëë¤. ì´ ë°©ë²ì¼ë¡ ìì íê² ì ì§í´ì¼ í ë°ì´í° ìì ìµí¸ííë¤. ì ì²´ íë¡í ì½ì ë³´ìì ì ëì ë¹ë°í¤(104)ì ë³´ìì 기ì´íë¯ë¡, ì´ê¸°í ì ì°¨ë 물리ì ì¸ ë³´ìì´ ê°ë¥í ìì ìì ìíëì´ì¼ íë¤.This is a step in which the secret key 104 of the target unit is set to a predetermined initial value. This procedure can be accomplished in one of several locations for either of the two secret keys, but for logical reasons it should be the final step in the assembly process where the serial number or the secret key may be changed. If the serial number of the unit 100 is stored off chip, this procedure is most likely to be performed at the time of final assembly. Once the unit's serial number 106 is stored on-chip, it is common to execute this procedure at the final point in the chip manufacturing process (ie, after the chip is packaged), and therefore any postproduction or burn-in fallout. (burn-in fall out) has the opportunity to pick out non-functional parts. In this way, you minimize the amount of data you need to keep secure. Since the security of the entire protocol is based on the security of the unit's secret key 104, the initialization procedure should be performed at the point where physical security is possible.
1ì°¨ ë¹ë°í¤ë 2ì°¨ ë¹ë°í¤ë¥¼ ê³µê¸í기 ìí´ ì¬ì©ëë ì ì°¨ì ë¤ë¥¸ ì ì°¨ìì ì´ê¸°í(ëë ì¥ì¹ì "ë²(burn)"ë¨) ëì´ì¼ íë¤. ë¹ë¡, ì¤ì ìì¼ë¡, ì´ 2ì°¨ í¤ë ìì ìì ìì ê³µì§ëê² ì§ë§(2ì°¨ í¤ê° ì ì¡° ê³µì ì¤ì ìì ìì ìì ì ëì íë¡ê·¸ë¨ë기 ë문ì) ê´ë ¨ë ì ëì 2ì°¨ í¤ê° 목í ì¥ì¹(100)ì ì ì¥ëìì¼ë©´ ì´ëìë 기ë¡ëì´ìë ìëë¤. íê³ ê°ì¬ì 목ì ì¼ë¡, 2ì°¨ ë¹ë°í¤ ê°ì ì ì²´ ì§í©ì ëíì¬ ì´ë ë¶ë¶ì´ ì´ë¤ í¤ë¥¼ ë³´ì íê³ ìëì§ë¥¼ ìë ê²ê³¼ 무ê´íê² ìíëë ê²ì´ ë°ëì§íë¤(ë¶ë°°ì 무ììì±ì í ì¤í¸í기 ìí´ ëë ì´ë¤ ë¤ë¥¸ ì´ì ë¡). ê·¸ë¬ë, ìì¤í ì ë³´ìì±ì ì ì§í기 ìí´, ì기 2ì°¨ ë¹ë°í¤ë¥¼ ì ëì íë¡ê·¸ë¨íë ì¥ì¹ë 2ì°¨ ë¹ë°í¤ë¥¼ ì 1 ë¹ë°í¤ì ëë 목í ì¥ì¹ ì¼ë ¨ ë²í¸(106)ì ê´ë ¨ìí¤ë ì´ë í ìë¨ë ê°ì§ ìë ê²ì´ ë°ëì§íë¤. ëí, ì기 ë ê°ì§ ë¹ë°í¤ë ë¤ìì ì¤ëª íë ì´ì ë문ì ë³ê²½ ë°©ì§(tamper-proof) ë°©ìì¼ë¡ 구íëì´ì¼ íë¤. ì기 2ê°ì ë¹ë°í¤ê° ì´ë¤ ììë¡ ì´ê¸°íëëì§ë 문ì ê° ëì§ ìëë¤. ììì ì¸ ì¤ìììì ì¤ëª í ì´ê¸°í ì 차를 ë°ë¥´ë©´, 목í ì¥ì¹ì ì¼ë ¨ ë²í¸(106) ë° ê·¸ ê´ë ¨ 1ì°¨ ë¹ë°í¤ê° ê³µëì¼ë¡ ìì¹ëë (ì¤ì ì¹©ì´ ìë) ì ì¼í ìì¹ë íê° ê¸°ê´ì ë³´ì ìë²ì´ì´ì¼ íë¤.The primary secret key must be initialized (or "burned" to the device) in a procedure different from the procedure used to supply the secondary secret key. Although in practice, this secondary key will be known at some point in time (because the secondary key is programmed into the unit at some point in the manufacturing process), the associated unit can be written anywhere if the secondary key has been stored in the target device 100. It should not be. For the purposes of auditing, it is desirable to test against the entire set of secondary secret key values irrespective of which part holds which key (to test randomness of distribution or for some other reason). However, in order to maintain the security of the system, the device programming the secondary secret key into the unit does not have any means of associating the secondary secret key with the first secret key or with the target device serial number 106. desirable. In addition, the two secret keys should be implemented in a tamper-proof manner for the reasons described later. It does not matter in what order the two secret keys are initialized. Following the initialization procedure described in the exemplary embodiment, the only location (not the actual chip) where the serial number 106 of the target device and its associated primary secret key are jointly located should be the security server of the authorization authority.
ë³´ì ì½ë ë°ì ë° ëë ë¶ë°°Security code generation and mass distribution
ë 165를 참조íë©´, ììì ì¸ ì¤ììì ìì´ì, ê°ë°ì(520)ê° ì´ íë¡í ì½ íìì ëìíë ì í리ì¼ì´ì ì ìì±íê³ ì íë¤ê³ ê°ì íì. ì기 ì í리ì¼ì´ì ì ë¶í´(disassembly)ë¡ë¶í° í©ë¦¬ì ì¼ë¡ ë©´ìì±ì ê°ë ê²ì´ê³ í¹ìí ì¥ì¹ììë§ ì¤íë ì ìë ê²ì´ë¤. ê° ë±ë¡ë ê°ë°ì(520)ë íê° ê¸°ê´ì ìë²ì íµì í기 ìí´, ë° ììì ê³µê°ë ì½ë ë¸ë¡ ëë ë¤ë¥¸ ë¹í¸ì¤í¸ë¦¼ì ì¸ì¦í기 ìí´ ì¬ì©ë ì ìë ë¶í¸í ë©ìì§ ì¸ì¦ ì½ë(MAC)(ì íì ì¼ë¡ ëì§í¸ ìëª ì´ë¼ê³ í¨)를 ìì±í기 ìí´ ê°ë°ìê° ì¬ì©íë ììì ë©ìì§ë¥¼ ì¸ì¦í기 ìí´ ì¬ì©ëë ê³µê°í¤/ê°ì¸í¤ ìì ê°ê³ ìì ê²ì´ë¤.Referring to FIG. 165, assume that in an example embodiment, the developer 520 wants to create an application that operates under this protocol. The application is reasonably immune from disassembly and can only be run on special devices. Each registered developer 520 is an Encrypted Message Authentication Code (MAC) (typically referred to as a digital signature) that can be used to communicate with a server of a licensing authority and to authenticate any published code blocks or other bitstreams. It will have a public / private key pair that will be used to authenticate any message that the developer uses to generate a.
ì í리ì¼ì´ì ì´ ëë²ê·¸(debug)ë íì, ì í리ì¼ì´ì ì ìµì´ ê°ë°ììê²ë§ ìë ¤ì ¸ ìë ì í리ì¼ì´ì ì§ì ìí¸í ìê³ ë¦¬ì¦ ë° í¤ë¥¼ ì´ì©íì¬ ì¸ì½ëëë¤. ì기 ì í리ì¼ì´ì ì§ì ìê³ ë¦¬ì¦ ë° í¤ë ëì¹(ë¹ë°) í¤ ìì¤í ëë ë¹ëì¹(PKI) í¤ ê¸°ë° ìì¤í ì¼ ì ìë¤. ìí¸í ì½ë ë¸ë¡ì ëìë MACê° ì²¨ë¶ëê³ , ì´ê²ì ê°ë°ì(520)ì ìí´ ê·¸ë¤ì ê³µê°ë ê³µê°í¤/ê°ì¸í¤ ìì ê°ì¸í¤ë¥¼ ì´ì©íì¬ ë¶í¸íëë¤(ë°ë¼ì ìí¸í ì½ë ë¸ë¡ì ëíì¬ ë¶ëª ë£íì§ ìì ëì§í¸ ìëª ì íì±íë¤). ëì§í¸ ìëª ëë ìµì´ MACì ëìíë ì½ë ì§ì ID ë²í¸ë íê° ê¸°ê´ì ì ê³µë ì ìë¤. ì í리ì¼ì´ì ê°ë°ì(520)ë ëí ì ë¹í ëì½ë© í¤ë¥¼ ì ê³µíëë¡ ì íí ì ìë¤(ì´ ê²°ì ì êµíì¡°ê±´ì ëí´ìë ì´ ë¬¸ìì ë·ë¶ë¶ìì ì¤ëª íë¤).After the application is debugged, the application is encoded using application specific cryptographic algorithms and keys known only to the original developer. The application specific algorithm and key may be a symmetric (secret) key system or an asymmetric (PKI) key based system. The end of the encryption code block is appended with a MAC, which is encoded by the developer 520 using the private key of their public / private key pair (thus forming an unambiguous digital signature for the encryption code block). . A digitally signed or coded ID number corresponding to the original MAC may be provided to the licensing authority. The application developer 520 may also choose to provide the appropriate decoding key (exchange conditions for this decision are discussed later in this document).
ë§ì¼ ì í리ì¼ì´ì ì§ì ìê³ ë¦¬ì¦ì´ ë¹ëì¹ ìí¸í ìì¤í ì´ë©´, ë¶í¸í ë©ìì§ ì¸ì¦ ì½ë(ëì§í¸ ìëª )를 ìì±í기 ìí´ ì¬ì©í ëì¼í ê³µê° PKI í¤ ìì ì¬ì©íì¬ ìí¸íí íìê° ìë¤. ê·¸ë¬ë, ì½ë ë¸ë¡ì ëì ì ì¥ë MACë ê³µì§ë í´ì± ìê³ ë¦¬ì¦ì ì´ì©íì¬ ìì±ëì´ì¼ íê³ ëí ê°ë°ìì ê³µê°ë ê³µê°í¤ ì¤ì íë를 ì´ì©íì¬ ë¶í¸íëì´ì¼ íë¤(ë°ë¼ì ëì§í¸ ìëª ì íì±íë¤). ì´ê²ì 목íê° ê³µì§ì í´ì± í¨ì ë° ê³µì§ì ê³µê°í¤ë¥¼ ì´ì©íì¬ MACì ì¸ì¦ì ê²ì¦í ì ìê² íë¤.If the application specific algorithm is an asymmetric encryption system, there is no need to encrypt using the same public PKI key pair used to generate the encoded message authentication code (digital signature). However, the MAC stored at the end of the code block must be generated using a known hashing algorithm and also encoded using one of the developer's public public keys (thus forming a digital signature). This allows the target to verify the authenticity of the MAC using known hashing functions and known public keys.
ë¤ì ë 162ë¡ ëëìê°ì, 모ë ì í리ì¼ì´ì ì§ì ìí¸í í¤ ë°ì´í° 구조(210)ë ë¤ìì ì¬ë¶ì íë(ë³µí¸í¤ ìì²´(220)ì ì¶ê°í´ì)를 í¬í¨í ì ìë¤. ì´ íë ì¤ì íëë íìì¤í¬í(230) ë° ê´ë ¨ ë§ì¤í¬ ê°(240)ì í¬í¨í ì ìë¤. ë¤ë¥¸ íëë "ì¹´ì´í¸ë¤ì´ ê°"(250)ì í¬í¨í ì ìë¤. ë§ì¤í¬ ê°(240)ì ë¤ë¥¸ 2ê°ì íë(230, 250)ì í¨ê» ì¬ì©ëì´ í¤ê° ì í¨ë¡ ë ë를 ê²°ì íë¤. ì íí ì¼ë§ë ë§ì ë¹í¸ê° ê° íëì í ë¹ëìëì§ë íë¡í ì½ê³¼ ê´ê³ê° ìë¤ë ì ì ëí 주목íì¬ì¼ íë¤.Returning to FIG. 162 again, every application specific encryption key data structure 210 may include a number of extra fields (in addition to the decryption key itself 220). One of these fields may include a timestamp 230 and an associated mask value 240. Another field may include a "countdown value" 250. The mask value 240 is used in conjunction with the other two fields 230 and 250 to determine when the key is valid. It should also be noted that the exact number of bits allocated to each field is independent of the protocol.
íìì¤í¬í ê°(230)ì íìì¤í¬í ë§ì¤í¬(240) íëì ì ì¥ë ë¹í¸ í¨í´ì ë°ë¼ì ëª ê°ì§ ë°©ë²ì¼ë¡ ì¬ì©ë ì ìë¤ë ì ì 주목íë¤. íìì¤í¬í ë§ì¤í¬(240) ê°ì 목í ì ë(100)ì íì¬ ìê°ê³¼ ë¹êµë¥¼ ìíí ë 무ìë íìì¤í¬í ëí(figure)ì ì¼ë¶ ë¶ë¶ì§í©ì ê°ë°ì(520)ê° ì íí ì ìê² íë¤. ê·¸ë¬ë, ìë¡ì, íìì¤í¬í íë(230)ì ìí´ ì§ìë ìµì í´ìë(resolution)ê° 1ì´ë¼ê³ ê°ì íë©´, íìì¤í¬í ë°ì´í°(230)ì íì 5ë¹í¸ë¥¼ ì ê±°í¨ì¼ë¡ì¨ íìì¤í¬í íë(230)ì ì ì¥ë ëë¡ë¶í° ììíì¬ ì½ 32ì´ì ê³¼ì ìì ì¬ì©ë ëë§ ì í¨ë¡ ëë í¹ìí í¤ ë°ì´í° 구조(210)ê° ë°ìë ì ìë¤. ë³´ì íë¡í ì½ì ì ì²´ 기ë¥ì íìì¤í¬í íë(230)ì ìµíì ìì ë¹í¸ì ì¤ì í´ìëì ìì¡´íì§ ìëë¤.Note that the timestamp value 230 can be used in several ways depending on the bit pattern stored in the timestamp mask 240 field. The time stamp mask 240 value allows the developer 520 to select some subset of the time stamp figures that were ignored when performing a comparison with the current time of the target unit 100. However, as an example, assuming that the minimum resolution supported by the timestamp field 230 is one second, from when stored in the timestamp field 230 by removing the lower five bits of the timestamp data 230. A special key data structure 210 can be generated that starts and becomes valid only when used in about 32 seconds. The overall functionality of the security protocol does not depend on the actual resolution of the least significant order bits of the timestamp field 230.
ë§ì¤í¬ íë(240)ì ê´ë ¨ë ë¤ë¥¸ ë¹í¸ë¤ì´ ìì ì ìê³ , ê·¸ ì¤ ì¼ë¶ë ê°ì´ íìì¤í¬í(230)ìì ì§ì ë기 ì ì í¤ê° ì í¨íëìëì§ íì ì í¨íëìëì§ë¥¼ íìí기 ìí´ ì¬ì©ë ì ìë¤. ëë¤ë¥¸ ë§ì¤í¬ íë(240) ë¹í¸ë íìì¤í¬í(230)ì "ì¹´ì´í¸ë¤ì´" ê°(250)ì´ ì´ë»ê² ê´ë ¨ëëì§ë¥¼ íìí기 ìí´ ì¬ì©ë ì ìë¤. ì를 ë¤ë©´, ì´ê²ì ì í리ì¼ì´ì ê°ë°ì(520)ì ìëê° í¹ì ë°ì´í° ë° ìê°ì°½(time window)ì ë¨ìí ê²°í©í기 ë³´ë¤ë, í¹ì ë ì§ ì´ì ì ëë íì í¹ì ì ë°ë³µ íìë¡ ìíí¸ì¨ì´ì ì¬ì©ì ì ííë ê²ì¸ ê²½ì°ì ì ì©í ê²ì´ë¤. ë¬¼ë¡ , ì´ë¤ ì¡°ê±´ì ìì ì¡°í©ì´ 구ì±ë ì ìê³ , ë°ë¼ì íë¡í ì½ì ì´ ì ìì ë§¤ì° ìµíµì±ìë ê²ì´ë¤. ëí, ì¼ë§ë ë§ì í©ë²ì í¤ ë³µì¬ë³¸ì´ ìµì´ 목í ì ë(100)ì¼ë¡ë¶í° ë¤ë¥¸ ì ëì¼ë¡ ëìì ë¶ë°°ë ì ìëì§ì ê°ì ë¤ë¥¸ í¹ì±ë¤ì íìí기 ìí ì¶ê°ì íëê·¸ê° ì´ ë°ì´í° 구조ì í¬í¨ë ì ìë¤. ì´ê²ì ì를 ë¤ë©´ ëì§í¸ ëìê´ìì ë³¼ ì ìë ê²ì²ë¼ ë¤ì¤ ë³µì¬ íê°ê° íìí ê²½ì°ì ì ì©í ê²ì´ë¤.There may be other bits associated with the mask field 240, some of which may be used to indicate whether a key has been validated or validated before the value is specified in the timestamp 230. Another mask field 240 bit may be used to indicate how time stamp 230 is associated with a "countdown" value 250. For example, this is useful when the intention of the application developer 520 is to limit the use of the software to a specific number of iterations before or after a particular date, rather than simply combining to specific data and time windows. something to do. Of course, any combination of these conditions can be constructed, so the protocol is very flexible in this respect. In addition, additional flags may be included in this data structure to indicate other characteristics, such as how many legal key copies can be distributed from the original target unit 100 to other units simultaneously. This may be useful if multiple copy permissions are required, for example as seen in digital libraries.
ìí¸í ì²ë¦¬ì ì¼ ì¤ìì를 ëíë´ë íë¦ëê° ë 163ì ëìëì´ ìë¤. ëì§í¸ 미ëì´ ì¤í¸ë¦¼ ëë ìíí¸ì¨ì´ ì í리ì¼ì´ì (미ëì´ ì¤í¸ë¦¼ì í´ìí기 ìí´ ì¬ì©ë ë³µí¸ ëª ë ¹ì´ ë±)ì ë¶ë°°í기 ìí´ ì¬ì©ë ì²ë¦¬ë¤ ê°ì ì¤ì§ì ì¸ ì°¨ì´ë ìë¤ë ì ì 주목íë¤. ì´ë ê²½ì°ì´ë , ì¨ë¼ì¸ ìë²ë¥¼ íµíì¬ ëë ì§ë ¬í ëì¤í¬(íì¤ DVD ë±)를 ì´ì©íì¬ ìí¸í ì½ë ë¸ë¡(310, 320)ì ë¶ë°°í기 ìí ëª ê°ì§ ë¤ë¥¸ ìµì ë¤ì´ ìë¤. íìì ê²½ì°ì, ê°ë°ì(520)ë ëë ìì°ë ëì¤í¬ì ê°ë³ ì¼ë ¨ ë²í¸ë¥¼ íê° ê¸°ê´(510)ì 미리 ë±ë¡íëë¡(ëë ë±ë¡íì§ ìëë¡) ì íí ì ìë¤. ë§ì¼ ë±ë¡íë©´, ì¼ë ¨ ë²í¸ë ë²ì¤í¸ 커í ììì ë²ë(burning)í¨ì¼ë¡ì¨(DVDì ê²½ì°) ëë ìí¬ì ¯ ì¸ìí¨ì¼ë¡ì¨(íì¤ CDì ê²½ì°) ëì¤í¬ì ì구ì ì¼ë¡ 첨ë¶ë ì ìë¤. ëì¼í ì¼ë ¨ ë²í¸ê° ëë ìì°ë 모ë ëì¤í¬ì ë³µì ë ê²ì´ê¸° ë문ì, ê°ë°ì(520)ë ì¼ë ¨ ë²í¸ë¥¼ CD ëë DVDì ë°ì´í° ììì 매립(embed)í ì ìë¤ë ì ì 주목íë¤. ëì¤í¬ì ì¼ë¶ê° ëë ìì°ëê³ ë¤ë¥¸ ë¶ë¶ì 1í 기ë¡ëë ìì ì íì´ë¸ë¦¬ë í¬ë§·ì´ ì¬ì©ëë ê²½ì°, ì´ê²ì ê°ë³ ì¼ë ¨ ë²í¸ì í¨ê» ëì¤í¬ë¥¼ ë¶ë°°íë ë¤ë¥¸ ì ì¬ì ë°©ë²ì´ë¤. ì´ë ê²½ì°ì´ë , ë±ë¡ ê³¼ì ìì ìë¬ê° ë°ìí ê°ë¥ì±ì´ ì 기 ë문ì ê¸°ê³ íë ê°ë¥ ì¼ë ¨ ë²í¸ê° íì¤í ë°ëì§íë¤.A flowchart illustrating one embodiment of the encryption process is shown in FIG. Note that there is no substantial difference between the processes used to distribute the digital media stream or software application (such as the decoding instructions used to interpret the media stream). In either case, there are several other options for distributing encryption code blocks 310, 320 via an online server or using a serialized disc (such as a standard DVD). In the latter case, the developer 520 may choose to pre-register (or not register) the individual serial number of the mass-produced disk with the licensing authority 510. If registered, the serial number can be permanently attached to the disc by burning in the burst cutting area (for DVD) or by inkjet printing (for standard CD). Note that the developer 520 cannot embed the serial number in the data area of the CD or DVD because the same serial number will be duplicated on all the mass produced disks. If some hybrid format is used in which part of the disc is mass produced and written once in another part, this is another potential way of distributing the disc along with the individual serial number. In either case, machine-readable serial numbers are certainly desirable because there is less chance of errors occurring during the registration process.
ë§ì¼ ê°ë°ì(520)ê° ë¯¸ëì´ ì¼ë ¨ ë²í¸ë¥¼ íê° ê¸°ê´ì ë±ë¡íì§ ìë ê²ì ì ííë©´, ì ë¹í ìí¸í í¤ë¥¼ ì í리ì¼ì´ì ëë 미ëì´ ì¤í¸ë¦¼ íëì ê´ë ¨ìí¬ ì ìë ìì ì ë¤ë¥¸ ë°©ë²ì´ ìë¤. ë°ë¼ì, ì í리ì¼ì´ì ê°ë°ì(520)ë ì½ë ì§ì ID ëë ê´ë ¨ 미ëì´ ì¼ë ¨ ë²í¸ë¥¼ ë±ë¡í ì ìë¤. ì ìì ê²½ì°ì, ì í리ì¼ì´ì ì ìì ë¡ê² ë¶ë°°ë ì ìë¤(ì¦, í¹ìí í´ì í¬ë§· ë° ë¯¸ëì´ì ê²°í©ëì§ ìëë¤).If the developer 520 chooses not to register the media serial number with the licensing authority, there are some other ways in which the appropriate encryption key can be associated with the application or media stream field. Accordingly, application developer 520 may register a code designation ID or an associated media serial number. In the former case, the application can be freely distributed (ie not bound to a special release format and media).
ê°ë³ ì¼ë ¨ ë²í¸ ë©ì¹´ëì¦ì ê²½ì°ìë íê° ê¸°ê´(510)ì´ ì´ë¤ ì í리ì¼ì´ì (ëë 미ëì´ ì¤í¸ë¦¼)ì´ ì´ë¤ ì¼ë ¨ ë²í¸ì ê´ë ¨ëëì§ ì íìê° ì기 ë문ì(ì ì¬ì ì¼ë¡ íìê° ìì), ìµì¢ ì¬ì©ìì íë¼ì´ë²ìê° ì ì§ëë¤. ê°ë°ì(520)ê° ì í리ì¼ì´ì ID(ëë 미ëì´ ì¤í¸ë¦¼ ID)를 ê·¸ ê´ë ¨ í¤ì í¨ê» ë±ë¡íë ê²½ì°ì, íê° ê¸°ê´(510)ì ì´ë¤ ì í리ì¼ì´ì ëë 미ëì´ ì¤í¸ë¦¼ì´ í¹ìí ìµì¢ ì¬ì©ìì ìí´ "ìì "ëìë¤ë ê²ì ì ì ìë¤. ë°ë©´ì, ì´ ì ì¬ì íë¼ì´ë²ì ê²°íì ê°ë°ì(520)ê° ë¬¼ë¦¬ì 매체를 ì ì¡°íì¬ ë¶ë°°í ê²ì ì구íì§ ìë ì¶ê°ì ì¸ í¸ë¦¬ì± ë° ë¹ì© ì ê°ì¼ë¡ ììëë¤. ì©ì´ "물리ì 매체"ë ë°ëì ëì¤í¬ë¥¼ ì미íë ê²ì´ ìëì 주목íë¤. ì´ ê¸°ë¥ì 매체ì 첨ë¶ëë ê°ë³ ì¼ë ¨ ë²í¸ ì¤í°ì»¤ì í¨ê» ì¸ìë 매ë´ì¼(ëë ë¨ìí ë±ë¡ ìì)ì ì´ì©í¨ì¼ë¡ì¨ ë¬ì±ë ì ìë¤. íìí ê²ì ê°ë°ì(520)ê° ìµì¢ ì¬ì©ììê² ê³µê¸ëë ì ì¼í ì¼ë ¨ ë²í¸ë¥¼ ê°ì§ ì´ë¤ 물체(object)를 ìì±í´ì¼ íë ê²ë¿ì´ë¤. ì´ ì¼ë ¨ ë²í¸ì 목ì ì ë¹í¸ì¤í¸ë¦¼ ë±ë¡ ë²í¸ë¡ ì¬ì©í기 ìí ê²ì´ë¤. ì´ ì¼ë ¨ ë²í¸ê° íë¡í ì½ìì ì´ë»ê² ì¬ì©ëëì§ë ë¤ì ì¹ì ìì ì¤ëª íë¤.In the case of an individual serial number mechanism, the end user's privacy is maintained because the permitting authority 510 does not need to know which application (or media stream) is associated with which serial number (potentially no indication). In the event that developer 520 registers an application ID (or media stream ID) with its associated key, authorization authority 510 may know that an application or media stream has been "owned" by a particular end user. On the other hand, this potential privacy deficiency is offset by additional convenience and cost savings that do not require the developer 520 to manufacture and distribute the physical medium. Note that the term "physical medium" does not necessarily mean a disc. This function can be accomplished by using a printed manual (or simple registration form) with individual serial number stickers attached to the medium. All that is needed is for the developer 520 to create an object with a unique serial number that is supplied to the end user. The purpose of this serial number is to use it as a bitstream registration number. How this serial number is used in the protocol is described in the next section.
ë 163ì ëìí ììì, ìí¸í ìíí¸ì¨ì´ ì í리ì¼ì´ì (ëë 미ëì´ ì¤í¸ë¦¼)(310)ê³¼ 머ì ìì¡´ ë³µí¸ ìíí¸ì¨ì´(330)ë ë ë¤ ëì¼í ë©ì¹´ëì¦ì ì´ì©íì¬ ë¶ë°°ëë¤. ì´ê²ì´ ê·¸ ê²½ì°ì´ê³ ìí¸í ì½ë ë¸ë¡(310, 330)ì ì´ë íë ëë ë ë¤ê° ì¨ë¼ì¸ì¼ë¡ ëë ëì¤í¬ë¥¼ ì¸ìí¨ì¼ë¡ì¨ ë¶ë°°ë ì ìë¤ë ê²ì íë¡í ì½ì íìì¡°ê±´ì´ ìëë¤. ê·¸ë¬ë, ëì§í¸ 미ëì´ ì¤í¸ë¦¼ì ê²½ì°ì, 미ëì´ ì¤í¸ë¦¼ ìì²´ë ëª ê°ì í¬ê¸° ë±ê¸ë§í¼ 2ê°ì ë¸ë¡(310, 330) ì¤ìì ë í° ê²ì¼ ê°ë¥ì±ì´ ëë¤ë ê²ì 주목íì¬ì¬ íë¤. ë°ë¼ì, ê·¸ ê²½ì°ì, ì ì´ë ì´ ë¸ë¡ì ë¶ë°°ë¥¼ ëë ìì° ëì¤í¬ í¬ë§·ì¼ë¡ ìííë ê²ì´ ê°ì¥ ì¬ë¦¬ì ë§ë ì¼ì´ë¤. ë§ì ê²½ì°ì, ëë°ì ìí¸í ì½ë ë¸ë¡(ì 1 ë¸ë¡ì ëì½ëíë ë°©ë²ì ëí ëª ë ¹ì´ë¥¼ í¬í¨íê³ ìë ê²)ë¿ë§ ìëë¼ 1ì°¨ ìí¸í ì½ë ë¸ë¡ì ë§ì¶ê¸° ìí ë£¸ì´ ëì¤í¬ì ì¶©ë¶í ìì ì ìë¤. 2ê°ì ë°ì´í° ì§í©ì ì´ë ê²ë ê³µê° íì ë³ê²½ë ê°ë¥ì±ì ìê³ , ë°ë¼ì ê·¸ë¤ì´ ì¨ë¼ì¸ì¼ë¡ ë¶ë°°ëì´ì¼ íë¤ë 기본ì ì¸ íìì¡°ê±´ë ìë¤ë ì ì ëí 주목íì¬ì¼ íë¤. ê·¸ëì ì´ë¤ì ëë ìì° ëì¤í¬ ê¸°ë° ë¶ë°° ë©ì¹´ëì¦ì ì í©íë¤. 2ê°ì ì½ë ë¸ë¡ì ëì¼í ëì¤í¬ì ë°°ì¹íë©´ ëª ë°±í ë°©ìì¼ë¡ íë를 ë¤ë¥¸ íëì ê´ë ¨ìí¤ë ê²ì´ ë ì¬ìì§ë¤.In the example shown in FIG. 163, both the encryption software application (or media stream) 310 and the machine dependent decryption software 330 are distributed using the same mechanism. It is not a requirement of the protocol that this is the case and that either or both of the encryption code blocks 310, 330 can be distributed online or by printing a disk. However, it should be noted that in the case of digital media streams, the media stream itself is likely to be the larger of the two blocks 310, 330 by several magnitude classes. In that case, therefore, it makes the most sense to enforce at least the distribution of this block in the mass production disk format. In many cases, there may be enough room on the disk to fit the primary encryption code block as well as the companion encryption code block (including instructions on how to decode the first block). It should also be noted that neither of the two data sets are likely to change after publication, and therefore there is no basic requirement that they be distributed online. Thus they are suitable for mass production disk based distribution mechanisms. Placing two blocks of code on the same disk makes it easier to relate one to the other in obvious ways.
ë³´ì ì½ë ë¡ë© ë° ì¤íSecure Code Loading and Execution
ë¶ë°° ë©ì¹´ëì¦ì´ ì¤ì ëì¤í¬ë¥¼ íµí´ ë¬ì±ëë ê²½ì°ì, ìë¹ìë ì íµì ì¸ ìíí¸ì¨ì´ 구매ì ì íí ëì¼í ë°©ìì¼ë¡ ì í리ì¼ì´ì ì ë´í¬í ëì¤í¬ë¥¼ 구매í ì ìë¤. ë¬¼ë¡ , ìµì¢ ì¬ì©ìë "목í" ì ëì íë¡ì¸ììì ìì ëì§ ìì ìí¸í ì½ë ë¸ë¡ì ëììí¤ì§ 못í ì ìë¤. ì¬ì©ìê° ì í리ì¼ì´ì ì ê·¸ë¤ì 머ì ìì ëììí¤ë ¤ê³ ìëí ë, CPU(120)ë ìí¸í ìíí¸ì¨ì´ ë¸ë¡ì ë¡ëíê³ , ìíí¸ì¨ì´ ê°ë°ìì ê³µê°í¤ì í¨ê» ì½ë ë¸ë¡ì ëì ì ì¥ë ëì§í¸ ìëª ("ë¶í¸í" MAC)ì ì´ì©íì¬ ë¹í´ ì½ë ë¸ë¡ì´ ì§ì í ê²ì¸ì§ ê²ì¦íë¤. ì´ê²ì ë¤ë¥¸ ë²ì© CPU(120)ì ëí ì 1 íëì¨ì´ ìì ì´ ëì(play)ì¼ë¡ ëë ê²½ì°ì´ë¤. ì기 ë³´ì ì½ëì ë¸ë¡ì ë¡ëíê³ ë³µí¸íë ì²ë¦¬ë ë 164ì ëìíìë¤.If the distribution mechanism is achieved via a physical disk, the consumer can purchase the disk containing the application in exactly the same way as a traditional software purchase. Of course, the end user may not be able to operate unmodified cryptographic code blocks in the processor of the "target" unit. When a user attempts to run an application on their machine, CPU 120 loads the cryptographic software block and uses the digital signature ("encoding" MAC) stored at the end of the code block along with the software developer's public key to code that code. Verify that the block is true This is the case when a first hardware modification to another general purpose CPU 120 is made play. The process of loading and decoding the block of security code is shown in FIG.
í´ì± í¨ìê° ì ííê² ê³ì°ëë ê²(ë° ë ëìê° ì¼ë°í ë©ìì§ ë¤ì´ì ì¤í¸ì "ì¤ì " ë©ìì§ ë¤ì´ì ì¤í¸ì ë¹êµê° ì í¨ì¸ ê²)ì ë³´ì¦í기 ìí´, CPU(120)ë ì´ í´ì± í¨ì를 ë³´ì ë°©ìì¼ë¡ ìííì¬ì¼ íë¤. ë°ë¼ì, í´ì± í¨ìë ëì½ë ì ëì íëì¨ì´ì ìí´ ì§ì ë°ìëê±°ë í´ì± í¨ì ìì²´ê° "ë³´ì" ì½ë ë¸ë¡ì ì´ì©íì¬ ê³ì°ëì´ì¼ íê³ , ê·¸ ëìì ë¤ë¥¸ "ë¹ë³´ì" íë¡ê·¸ë¨ì ìí´ ë¶ì íê² ë³ê²½ë ì ìë¤.In order to ensure that the hashing function is correctly calculated (and further that the comparison of the generalized message digest with the "real" message digest is valid), the CPU 120 must perform this hashing function in a secure manner. Thus, the hashing function must be generated directly by the hardware of the decoder unit or the hashing function itself must be calculated using a "secure" code block, and its operation cannot be tampered with by other "non-secure" programs.
ìíí¸ì¨ì´ ê¸°ë° í´ìì ê²½ì°ì, ì´ ë³´ì ì½ë ë¸ë¡ì ì ë(100)ì ë³´ì ìì¤í ì ì¼ë¶ë¡ì ê³ ë ¤ëì´ì¼ íê³ , ê·¸ëì ì ë(100)ê³¼ íê° ê¸°ê´(510) ê°ì ìì í í¸ëìì ì íµí´ íë ì´ì´ì ë¤ì´ë¡ëë ì ìë¤. ì¶©ë¶í í¥ë¯¸ë¡ê², "ë³´ì" í´ì± í¨ìì í립ì ì¬ê¸°ìì ì¤ëª í ëì¼í ë³´ì íë¡í ì½ì íµí´ ë¬ì±ë ì ìë¤. ë³´ì ìì¤í ì 모ë íìì ëí ì´ë¬í íê·ì íëì ì´ íë¡í ì½ì ìíí¸ì¨ì´ ê¸°ë° ë²ì ì´ ê·¸ ìí¸í/ë³µí¸ ìí¤í ì³ìì ê·¹í ì ì°íê²(ë°ë¼ì ê°±ì ê°ë¥íê²) í ì ìë¤.In the case of a software-based hash, this security code block must be considered as part of the security system of the unit 100 and so can be downloaded to the player via a secure transaction between the unit 100 and the authority authority 510. Interestingly enough, the establishment of a "secure" hashing function can be achieved through the same security protocol described herein. This recursive behavior for all aspects of security systems allows the software-based version of this protocol to be extremely flexible (and therefore updateable) in its encryption / decryption architecture.
ë©ìì§ ë¤ì´ì ì¤í¸ ê³ì°ì´ íëì¨ì´ë¡ ê³ ì ëë©´, ì°ë¦¬ë ì ì¬ì ì¼ë¡ ì´ë ì ëì ë³´ìì±ì ì»ì ì ìì§ë§, ì´ê²ì ìµíµì±ì í¬ìì ì구íë¤. ì ì© íëì¨ì´ ë¸ë¡ì ì´ì©íì¬ í´ì ê°ì ìì±íê³ , ê·¸ ë¤ìì ì¹©ì´ ì ì¡°ë íì ìì ìì ìì í´ì± ìê³ ë¦¬ì¦ì ì´ë¤ ì½ì ì´ ë°ê²¬ëë©´(ëë ê·¸ 구íìì ì´ë¤ ë²ê·¸ê° ìì¼ë©´), ê·¸ ì¬ì¤ì ì íì 문ì 를 ì²ë¦¬í 기íê° ìë¤. ì´ê²ì ì²ë¦¬ë¥¼ ê°ìíí기 ìí´ ìíí¸ì¨ì´ ê¸°ë° í´ì± í¨ì(íë¡ê·¸ë¨ê°ë¥ S-ë°ì¤ 구조 ë±)ì ëí ì´ë¤ ì¢ ë¥ì íëì¨ì´ ê°ìí를 ì¬ì©í ì ìë¤ë ê²ì ë§íë ê²ì´ ìëë¤. ê·¸ë¬ë, ê·¸ ê²½ì°ì, íëì¨ì´ë ì´ìì ì¼ë¡ ë§¤ì° ë¤ìí ì¼ë°©í¥ í´ì± í¨ì를 ì§ìí기 ìí´ ì¶©ë¶í ë²ì©ì´ì´ì¼ íë¤.If the message digest computation is fixed in hardware, we can potentially gain some security, but this requires a sacrifice of flexibility. If a dedicated hardware block is used to generate a hash value and then any weaknesses in the hashing algorithm are found at some point after the chip is manufactured (or if there are any bugs in its implementation), then the problem is known. There is no opportunity to deal with it. This is not to say that some kind of hardware acceleration for software-based hashing functions (such as programmable S-box structures) cannot be used to speed up processing. In that case, however, the hardware should ideally be general enough to support a wide variety of one-way hashing functions.
ê·¸ë¬ë, ì´ íë¡í ì½ì ë³´ìì ê¶ê·¹ì ì¼ë¡ ì´ ë³´ì ì½ë ë¡ë© ì ì°¨ì ì¼ë¶ë¡ì ì ê³µë ìµì ìì¤ ê¸°ë¥ì ìì¡´íë¤ë ê²ì 주목íì¬ì¼ íë¤. ì ìì¤ í¹ì§(í´ì± í¨ììì ì¬ì©ë ë¹ë°í¤ ëë ìì ì°ì° ë±)ì ë¤ë¥¸ ë°©ë²ì¼ë¡ í¨ê» ê²°í©ëì´ ë¶í¸í ë©ìì§ ë¤ì´ì ì¤í¸ì ê°ì ê³ ìì¤ ê¸°ë¥ì ìì±íë¤. ë¤ìì, ì기 ê³ ìì¤ ê¸°ë¥ ë¸ë¡ì ì¬ì©íì¬ ìì´ë´í°í° ê²ì¦ê³¼ ê°ì ê³ ìì¤ ì í¸ë¦¬í°ë¥¼ ì ê³µíë¤. ë³´ë¤ ìì층ì ìì ê³ ìì¤ ê¸°ë¥ì 구ì¶íë ì´ë¬í ì²ë¦¬ë "ì 뢰 ì¬ì¬(Chain of Trust)" 구ì¶ì´ë¼ê³ ìë ¤ì ¸ ìë¤. ìì¤í ì ìµíµì±ì ë³´ì ê´ë ¨ 기ë¥ì´ ì´ ê³ì¸µêµ¬ì¡° ë´ìì ê°ë¥í í ë®ê² ìì ë ì ìë ì§ì ì ë°°ì¹ì ìë¤. ê·¸ë¬ë, ìì ì§ì ìì, ì기 ì¬ì¬ì´ 기ì´íë 기본ì ì¸ ìì ì°ì°ì 본ì§ì ì¼ë¡ ììì´ì´ì¼ íë¤(ì¦, ì´ê²ì íëì¨ì´ìì 구íëì´ì¼ íë 기ë¥ì ìµì ìì¤ì´ë¤). ì´ íëì¨ì´ ì ì ì§ì ì ì íí ì íì ëë¶ë¶ 구íìì ì¸ë¶ì´ê³ , ì´ íë¡í ì½ì ì ì²´ ëìì ììì 주ì´ì§ ì¡°ê±´ì ì´ë¬í íìì ìì¡´íì§ ìëë¤.However, it should be noted that the security of this protocol ultimately depends on the lowest level functionality provided as part of this secure code loading procedure. Low-level features (such as secret keys or primitives used in hashing functions) are combined together in other ways to create high-level features such as encoded message digests. The high level functional block is then used to provide a high level utility such as identity verification. This process of building high-level functions on top of the primitive layer is known as building a "Chain of Trust." The flexibility of the system lies in the placement of points where security-related functions can be modified as low as possible within this hierarchy. However, at some point, the basic primitive operations on which the chain is based should be essentially atomic (ie, this is the lowest level of functionality that must be implemented in hardware). The exact choice of this hardware winning point is mostly an implementation detail, and the overall operation of this protocol does not depend on this aspect of the conditions given above.
ìí¸í ì½ë ë¸ë¡(310)ì´ ëª©íì ë©ëª¨ë¦¬ ì¤íì´ì¤(110)ì ë¡ëëê³ ë©ìì§ ë¤ì´ì ì¤í¸ê° ê³ì°ëë©´, ê·¸ ê²°ê³¼ë ê°ë°ìì ê³µê°í¤ë¥¼ ê°ì§ ìí¸í ì½ë(310)ì í¨ê» ì ì¥ë ëì§í¸ ìëª (340)ì ë³µí¸í¨ì¼ë¡ì¨ ê³ì°ë ë©ìì§ ë¤ì´ì ì¤í¸ì ë¹êµëë¤. 2ê°ê° ì¼ì¹íë©´ 목í ì ë(100)ì ìí¸í ì½ë ë¸ë¡(310)ì´ ì§ì í ê²(ëë ì ì´ë ì½ëê° ëì§í¸ ìëª ì ë³µí¸í기 ìí´ ìì ì ê³µê°í¤ë¥¼ ì¬ì©í ê°ë°ì(520)ì ìí´ ë¶ë°°ë ê²)ìì íì í ì ìë¤.Once the encryption code block 310 is loaded into the target memory space 110 and the message digest is calculated, the result is calculated by decrypting the digital signature 340 stored with the encryption code 310 with the developer's public key. Compared to the message digest. If the two match, the target unit 100 can be sure that the cryptographic code block 310 is true (or at least the code has been distributed by the developer 520 using its public key to decrypt the digital signature). have.
ì´ ìì ìì, 목í(100)ë ë³µí¸í¤ì ë³µì¬ë³¸ì ì구íë íê° ê¸°ê´(510)ì ë³´ì ë©ìì§ë¥¼ ì ì¡íê³ , ë³´ì ë©ìì§ë ìµê·¼ì ê²ì¦í ìí¸í ì½ë ë¸ë¡ê³¼ ì í´íì¬ ì¬ì©ë ê²ì´ë¤. íê° ê¸°ê´ê³¼ì ë³´ì ì ìì ì¤ì íë ì¼íì¼ë¡ì, 목í ì ë(100)ì ìì ê³µê°í¤/ê°ì¸í¤ ìì ë°ìíë¤(ê·¸ ì¤ ê³µê° ë¶ë¶ì íê° ê¸°ê´(510) ìë²ì ì ê³µëë¤). í¤ êµí ì ì°¨ì ì¸ë¶ë ì ìë ¤ì ¸ ìì¼ë¯ë¡ ì´ê²ì ë¬ì±íë ì íí ë©ì¹´ëì¦ê¹ì§ ì¬ê¸°ìì ì¤ëª í íìë ìì ê²ì´ë¤. ì´ë ê²½ì°ì´ë 목í ì ë(100)ê³¼ íê° ê¸°ê´(510)ì ì¤ì ìë² ê°ì ì ì²´ ë¤í¸ìí¬ í¸ëí½ì ìë¹í ìì ë°ì´í° ì§í©ì¼ë¡ ì íëëë°, ê·¸ ì´ì ë ë°ì´í° ì§í©ì´ í¨ê» ì ì¥ë ëª ê°ì í¤ ì ì¡, ì½ë ì§ì ID ë° MACë¡ êµ¬ì±ë기 ë문ì´ë¤.At this point, the target 100 sends a secure message to the authorization authority 510 requesting a copy of the decryption key, which will be used in conjunction with a recently validated cryptographic code block. As part of establishing a secure connection with the authorization authority, the target unit 100 generates a temporary public key / private key pair, the public portion of which is provided to the authorization authority 510 server. The details of the key exchange procedure are well known and need not be described here until the exact mechanism that achieves it. In either case, the total network traffic between the target unit 100 and the central server of the authority authority 510 is limited to a fairly small data set, which consists of several key transmissions, coded IDs, and MACs with the data set stored together. Because it becomes.
ì½ë ì§ì ID(260)ê° íê° ê¸°ê´(510)ìì ì¸ìíê³ ìë ê²ì´ë¼ê³ ê°ì íë©´, ì í리ì¼ì´ì 창조ìê° í¼ìì² ë³µí¸í¤ì "ëª ë¬¸(clear)" ë³µì¬ë³¸ì ì´ë¯¸ íê° ê¸°ê´(510)ì ì ê³µíìëì§ ì¬ë¶ì ë°ë¼ì 2ê°ì§ì ê°ë¥í ëì ê³¼ì ì´ ìì ì ìë¤. ê°ë°ì(520)ê° íê° ê¸°ê´(510)ì ê·¸ë¬í ì 보를 ì ê³µíì§ ìì ê²½ì°ìë ì¤ì ìë²ê° 목í ì¥ì¹ì ìì ê³µê°í¤ì ë³µì¬ë³¸(ë° ë¹í´ ì½ë ì§ì ID(260))ì ì í리ì¼ì´ì ê°ë°ìì ìë²ì ì ì¡íë¤. ê·¸ ìì ìì, ê°ë°ìì ìë²ë í¼ìì² ë³µí¸í¤(목í ì¥ì¹ì ìì ê³µê°í¤ë¡ ìí¸íí ê²)를 ë´í¬í ë©ìì§ ë° ì ì í ë³µí¸ë ì½ëë¡ë¶í° ìì±í ë©ìì§ ë¤ì´ì ì¤í¸ë¡ íê° ê¸°ê´(510)ì ìëµíë¤. ì´ë¬í ë°©ë²ì¼ë¡, 목í ì¥ì¹(100)ë ë©ìì§ë¥¼ ë³µí¸íì¬ ì í리ì¼ì´ì ì§ì ë³µí¸í¤ë¥¼ ì»ì ì ìê³ , íê° ê¸°ê´(510)ì ëª ë¬¸ íìì ë³µí¸í¤ì ì¡ì¸ì¤íì§ ìì ê²ì´ë¤.Assuming that code designation ID 260 is recognized by permitting authority 510, there are two ways depending on whether the creator of the application has already provided a permitting authority 510 with a "clear" copy of the requested decryption key. There may be a possible operating process. If the developer 520 did not provide such information to the authorization authority 510, the central server sends a copy of the temporary public key of the target device (and the corresponding code designation ID 260) to the application developer's server. At that point, the developer's server responds to the authorization authority 510 with a message containing the requested decryption key (encrypted with the temporary public key of the target device) and a message digest generated from the appropriately decrypted code. In this way, the target device 100 can decrypt the message to obtain an application specific decryption key, and the authorization authority 510 will not have access to the decryption key in the prestigious format.
ë¹ë¡ ë©ìì§ ë¤ì´ì ì¤í¸ê° 미리 ê³ì°ëì´ íê° ê¸°ê´ ìë²ì ì ì¥ëì§ë§, ë©ìì§ ë¤ì´ì ì¤í¸ê° í¸ëìì ì¤ì ê°ë°ì(520)ì ìí´ ì ê³µë ì ìë¤ë ì¬ì¤ì í´ì± í¨ì(ë©ìì§ ë¤ì´ì ì¤í¸ë¥¼ ìì±í기 ìí´ ì¬ì©í ê²)ê° ë³ê²½ëì´ì¼ íë ê²½ì°ì ì ì¬ì ì¼ë¡ ì¬ì©ëë¤. ì´ë¬í ì¼ì´ ë°ìíë©´, ê°ë°ì(520)ë ë³µí¸ë ì½ë ë©ìì§ ë¤ì´ì ì¤í¸ì ê°±ì ë ë²ì ì 목í ì¥ì¹(100)ìì ì¤ì í¸ëìì ì ì ëë í¸ëìì ì¤ì íê° ê¸°ê´(510)ì ì ê³µí íìê° ìë¤. íê° ê¸°ê´(510)ì´ ìµì´ì (ë³µí¸ë) ì½ëì ì¡ì¸ì¤íì§ ì기 ë문ì ê°ë°ì(520)ë ì´ ì 보를 ì ê³µí´ì¼ íë¤. ìììì²ë¼, íê° ê¸°ê´ ìë²ì ê°ë°ì ìë² ê°ì ë¤í¸ìí¬ í¸ëí½ ìì ì¬ì í ë§¤ì° ìë¤. ê°ë°ì(520)ë¡ë¶í° ìì í ìí¸í í¤ë íê° ê¸°ê´(510)ì¼ë¡ë¶í° 목í ì¥ì¹ë¡ ì ì¡ë기 ì ì 목í ì¥ì¹ì 1ì°¨ ë¹ë°í¤ë¥¼ ì´ì©íì¬ ë¤ì ìí¸íëë¤. ì´ ì 2 ìí¸íë ë¤ë¥¸ í¸ëìì ì ì¼ë¶ë¡ì ê°ë°ì측ìì ì¤ì ë¡ ì¤íë ì ìì§ë§, ê·¸ ê²½ì° ê°ë°ìë ì ì¬ì ì¼ë¡ 목í ì¥ì¹ì 1ì°¨ í¤ì ì¡ì¸ì¤íëë°(ì측ì í¤ê° ì´ë¤ìì¼ë¡ë ê²°í©ëì´ ìì§ ìë í), ì´ê²ì ìµì¢ ì¬ì©ìì ëíì¬ íë¼ì´ë²ì 문ì ì ì ì¬ì ìì¤ì ê°ì ¸ì¨ë¤.Although the message digest is precomputed and stored on the authority authority server, the fact that the message digest can be provided by the developer 520 during the transaction is a potential case where the hashing function (which was used to generate the message digest) must be changed. Used as If this happens, the developer 520 needs to provide the authorized authority 510 with an updated version of the decoded code message digest before or during the actual transaction with the target device 100. The developer 520 must provide this information because the authorization authority 510 does not have access to the original (decoded) code. As before, the amount of network traffic between the license authority server and the developer server is still very small. The encryption key received from the developer 520 is encrypted again using the primary secret key of the target device before being sent from the authorization authority 510 to the target device. This second encryption can actually be executed on the developer side as part of another transaction, but in that case the developer potentially accesses the primary key of the target device (unless the keys on both sides are combined in some way), which is the final It results in potential loss of privacy issues for the user.
ì í리ì¼ì´ì ê°ë°ì(520)ê° íê° ê¸°ê´(510)ê³¼ 목í ì¥ì¹(100) ê°ì í¸ëìì ì ìíì¬ "루íì¸(out of the loop)"ì 머무르기를 ìíë ê²½ì°, ëª ë¬¸(ìí¸íëì§ ìì) íìì ê´ë ¨ ë³µí¸í¤ì ë³µì¬ë³¸ ë° ë³µí¸ë ì½ë ë¸ë¡ì ê´ë ¨ MAC(ê·¸ ê°ì í´ì± ìê³ ë¦¬ì¦ì´ ë³ê²½ë ëë§ë¤ ê°±ì ëì´ì¼ íë¤)를 íê° ê¸°ê´(510)ì ê°ë¨í ì ê³µí ì ìë¤. ë°ë¼ì, íê° ê¸°ê´(510)ì ì¤ì ìë²ë ë 립ì ì¼ë¡ ëìí ì ìê³ ëª©í ì¥ì¹(100)ë¡ë¶í°ì í¤ ìì²ì 충족ìí¤ê¸° ìíì¬ ê°ë°ì ìë²ì ëí íµì ë§í¬ë¥¼ í립í íìê° ìë¤. ê·¸ë¬ë, ì´ê²ì ì기 "ëª ë¬¸ í¤" ì ë³´ê° íê° ê¸°ê´ì ìí´ ìëì ì¼ë¡ ëë ë¹ìëì ì¼ë¡ ì ì¶©ëë ê²½ì° ê°ë°ììê² ì ì¬ì ì¸ ë³´ì ìíì ì¼ê¸°íë¤.If the application developer 520 wishes to stay "out of the loop" for a transaction between the authorization authority 510 and the target device 100, a copy of the associated decryption key in the noble (unencrypted) format. And the associated MAC of the decoded code block, the value of which must be updated each time the hashing algorithm changes. Thus, the central server of the authority authority 510 can operate independently and does not need to establish a communication link to the developer server in order to satisfy the key request from the target device 100. However, this poses a potential security risk to the developer if the "prestige key" information is intentionally or unintentionally compromised by the licensing authority.
ì ì²´ì ì¸ í¤ ìí¸í/ë³µí¸ ì²ë¦¬ì íë¦ëë ë 165ì ëìëì´ ìë¤. ì´ ê²½ì°ì, ëª ë¬¸ í¤ë (ìììì²ë¼) ì ì¡ ì ì 목í ì¥ì¹ì ìì ê³µê°í¤ ë° ë¤ì 목í ì¥ì¹ì 1ì°¨ ë¹ë°í¤ë¥¼ ì´ì©íì¬ ìí¸íëë¤. ì´ ìì ìì, 목í ì¥ì¹(100)ë ëë² ìí¸íë í¬ë§·ì¼ë¡ ì ë¹í ë³µí¸í¤ë¥¼ ê°ëë¤. íê° ê¸°ê´(510)ì´ ëª ë¬¸ì ì í리ì¼ì´ì ì§ì í¤(550) ì ë³´ì ì¡ì¸ì¤íì§ ìë ê²½ì°ì, ìëë 목í ì¥ì¹(100)ê° ìë ëêµ°ê°ê° ì´ í¤ ë°ì´í°ë¥¼ ëª ë¬¸ íìì¼ë¡ ì¬ìì°íë ê²ì ë¶ê°ë¥íë¤. ìëíë©´, ê° ì ë(100)ì ë¹ë°í¤ë íê° ê¸°ê´(510)ìë§ ìë ¤ì ¸ ìê³ , ì ì¡ì ìí ê°ì¸í¤ë 목í ì¥ì¹(100)ì ìí´ìë§ ê³µì§ë기 ë문ì´ë¤.A flowchart of the overall key encryption / decryption process is shown in FIG. In this case, the prestigious key is encrypted using the temporary public key of the target device and again the primary secret key of the target device (as above) before transmission. At this point, the target device 100 has the appropriate decryption key in twice encrypted format. If the authority 510 does not have access to the prestigious application specific key 550 information, it is impossible for anyone other than the intended target device 100 to reproduce this key data in the prestigious format. This is because the secret key of each unit 100 is known only to the authority 510 and the private key for transmission is known only by the target device 100.
ê·¸ë¬ë, ì´ ìì ìì, 목í ì¥ì¹(100)ê° ì í리ì¼ì´ì ê°ë°ì(520)ë¡ë¶í° ìì í ì¸ì½ëë ë³µí¸í¤ë 목í ì¥ì¹(100)ì ê°ë°©ìì ìì íê² ì ì¥ë ì ìë¤(ì를 ë¤ë©´, íëì ROMì ëë íëëë¼ì´ë¸ì ë°±ì ë¨). 목í ì¥ì¹(100)ë íê° ê¸°ê´(510)ì¼ë¡ë¶í° ì ì¡ë ì¸ì½ëë ë³µí¸í¤ì í¨ê» ìì ë¹ë°í¤ì ë³µì¬ë³¸ì ëí ì ì¥í´ì¼ íë¤ë ì ì 문ì ì ì´ ìë¤. ë§ì¼ íê° ê¸°ê´(510)ì ëêµ°ê°ê° ì´ë¤ ìë¨ì ìí´ ì기 2í¸ì ë°ì´í°ì ì¡ì¸ì¤íìì¼ë©´, ê·¸ë¤ì ì ì¬ì ì¼ë¡ ë³µí¸ ì í리ì¼ì´ì ì§ì í¤(550)를 ì¬êµ¬ì±í ì ìë¤(ê·¸ë¤ì 목í ì¥ì¹(100)ì 1ì°¨ ë¹ë°í¤ìë ëí ì¡ì¸ì¤í ê²ì´ë¤).However, at this point, the encoded decryption key received by the target device 100 from the application developer 520 may not be stored securely upon opening of the target device 100 (eg, in a flash ROM or hard drive). Backed up to a drive). The target device 100 has a problem in that it must also store a copy of the temporary secret key along with the encoded decryption key sent from the authorization authority 510. If someone at the authority 510 has accessed the two pieces of data by some means, they can potentially reconstruct the decryption application designation key 550 (they will also be in the primary secret key of the target device 100). Will access).
ì´ê²ì 목í ì¥ì¹ì 2ì°¨ ë¹ë°í¤ê° ì¬ì©ì¼ë¡ ëë ì§ì ì´ë¤. ì´ 2ì°¨ ë¹ë°í¤ë 목í ì¥ì¹ì ë³µí¸ ì ë ì¸ì ë구ìê²ë ìë ¤ì ¸ ìì§ ìë¤ë ê²ì ì기íì. ë°ë¼ì, í¤ë¥¼ ë³µí¸í기 ìí´ íê° ê¸°ê´ì¼ë¡ë¶í° 목í ì¥ì¹(100)ì ê³µê¸ë ìì ê°ì¸í¤ë¥¼ ì¬ì©íìì¼ë©´, 2ì°¨ ë¹ë°í¤ê° ì í리ì¼ì´ì ì§ì í¤ë¥¼ ê·¸ ì¬ì©(ë°/ëë ë³´ê´) ì ì ì¬ìí¸íí기 ìí´ ì¬ì©ëë¤.This is the point where the secondary secret key of the target device is used. Recall that this secondary secret key is unknown to anyone other than the decryption unit of the target device. Thus, if the temporary private key supplied to the target device 100 from the authorization authority was used to decrypt the key, the secondary secret key is used to re-encrypt the application-specific key before its use (and / or storage).
ê·¸ ë¤ìì, 목í ì¥ì¹ë ì í리ì¼ì´ì ì§ì (ëª ë¬¸) í¤(550)를 ì´ì©íì¬ ì½ë ë¸ë¡(ëë 미ëì´ ì¤í¸ë¦¼)ì ë³µí¸íë¤. ë°ë¼ì, ì í리ì¼ì´ì ì½ëê° ëª ë¬¸ ííë¡ ì¡´ì¬íë ë¨ì§ 2ê°ì ì¥ìê° ìµì´ ê°ë°ì(520) ìì²´ì ë° ëª©í ì¥ì¹ì I-ìºì(110)ì "ë³´ì" ë¶ë¶ ë´ì¸¡ì ìë¤(ì´ê³³ìì ì í리ì¼ì´ì ì½ëê° ì¤íë ì ìê³ ë©ëª¨ë¦¬ì ëª ë¬¸ ííë¡ ë¤ì 기ë¡ëì§ ìëë¤). ì´ê²ì ì¬ì©ìì íê° ê¸°ê´(510) ê°ì íë¼ì´ë²ì를 íì©íë¤. ë¤ì ë§í´ì, íê° ê¸°ê´(510)ì ì¬ì©ìê° íê°ë°ì ê²ì´ 무ìì¸ì§ ìì§ ëª»íì§ë§(ê±°ëí íë¼ì´ë²ì ì¥ì ), 목í ì¥ì¹(100)ê° ììëê±°ë ë¶ì¤ëê±°ë ëë ë¤ë¥¸ ë°©ë²ì¼ë¡ ëìë¶ë¥ì¼ë¡ ë ê²½ì°ì ì¬ì©ì í¤ ë¦¬ì¤í¸ì ëí ë³´ê´ì(ëë ë°±ì )ì¼ë¡ì ì¬ì í ëìí ì ìë¤.The target device then uses the application specific (preface) key 550 to decrypt the code block (or media stream). Thus, there are only two places where the application code exists in prestigious form, within the initial developer 520 itself and inside the "secure" portion of the I- cache 110 of the target device (where the application code can run and memory Are not rewritten in noble form). This allows privacy between the user and the authority 510. In other words, the permitting authority 510 does not know what the user is authorized (a huge privacy advantage), but the archive for the user key list if the target device 100 is damaged, lost or otherwise inoperable. It can still work as (or back up).
ë³µí¸ ì²ë¦¬ê° ì ííê² ìíëìëì§ ê²ì¦í기 ìí ì²´í¬ë¡ì, ì ì í ë³µí¸ë ì½ëì ë©ìì§ ë¤ì´ì ì¤í¸ë ê·¸ ë¤ìì, ìµì´ ê°ë°ì(520)ë¡ë¶í° íê° ê¸°ê´(510)ì íµíì¬ ëª©í ì¥ì¹(100)ì ì ì¡ë, ëì§í¸ ìëª ì ë³µí¸í¨ì¼ë¡ì¨ ìì±ë ë©ìì§ ë¤ì´ì ì¤í¸ì ë¹êµëë¤. ììì ì¸ê¸í ë°ì ê°ì´, ì´ ëì§í¸ ìëª ì ì í리ì¼ì´ì ê°ë°ìì ê°ì¸í¤ë¡ ë¹ìí¸í ì½ë ë¸ë¡ì ë©ìì§ ë¤ì´ì ì¤í¸ë¥¼ ìí¸íí¨ì¼ë¡ì¨ ìì±ëë¤. ëìì ì¼ë¡, ì´ ëì§í¸ ìëª ì ì ìì´ í립ëìì ë íê° ê¸°ê´(510)ì ê³µê¸íìë ë¤ë¥¸ ìì ê³µê°í¤(530)를 ì´ì©íì¬ ê°ë°ì(520)ì ìí´ ë¤ì ìí¸íë ì ìë¤. ì´ì¨ë , ì¬ë°ë¥¸ ë©ìì§ ë¤ì´ì ì¤í¸ë ê·¸ ë¤ìì ê°ë°ìì ê³µê°í¤ë¡ ëì§í¸ ìëª ì ë³µí¸í¨ì¼ë¡ì¨ 목í ì¥ì¹(100)ì ìí´ ëì½ëë ì ìë¤. ë§ì¼ ì´ ë©ìì§ ë¤ì´ì ì¤í¸ê° ë³µí¸ ì½ë ë¸ë¡ì MACì ì¼ì¹íë©´, ì½ëë ì§ì í ê²ì¼ë¡ ê³ ë ¤ëê³ ëª©í ì¥ì¹(100)ììì ëìì´ íì©ëë¤. ì´ ë©ìì§ ë¤ì´ì ì¤í¸ë ì¬ìí¸íë ì í리ì¼ì´ì ì§ì í¤(550)ì í¨ê» ë³´ê´í기 ìíì¬ ëª©í ì¥ì¹ì 2ì°¨ í¤(540)ë¡ ì¬ìí¸íë ì ìë¤.As a check to verify that the decryption process was performed correctly, the message digest of the appropriately decoded code is then decoded the digital signature, sent from the original developer 520 to the target device 100 via the authorization authority 510. Is compared with the generated message digest. As mentioned above, this digital signature is generated by encrypting the message digest of an unencrypted code block with the application developer's private key. Alternatively, this digital signature can be encrypted again by the developer 520 using another temporary public key 530 that was supplied to the authorization authority 510 when the connection was established. In any case, the correct message digest can then be decoded by the target device 100 by decrypting the digital signature with the developer's public key. If this message digest matches the MAC of the decode code block, the code is considered true and operation at the target device 100 is allowed. This message digest may be re-encrypted with the secondary key 540 of the target device for storage with the re-encrypted application designation key 550.
ì´ ì ì°¨ììì ë§ì§ë§ ë¨ê³ë ì í리ì¼ì´ì ì§ì í¤(560)ì (목í ì¥ì¹ì 2ì°¨ í¤(540)ë¡) ìë¡ ìí¸íë ë²ì ì´ ë³´ê´ ëª©ì ì¼ë¡ íê° ê¸°ê´(510) ìë²ì ë¤ì ì¬ì ì¡ëë¤. ì´ ì ì¡ ìë²ë ëª ê°ì§ 목ì ì¼ë¡ ì¬ì©ëë¤. 첫째, 목í ì¥ì¹(100)ê° ì½ë ë¸ë¡ì ì ì í ë³µí¸í ì ìììì íµì§íë ê²ì´ë¤. ë째, ìµì¢ ì¬ì©ìê° ì´ë¤ ì¢ ë¥ì íêµì ì¸ ë°ì´í° ì¥ì 를 ë°ê³ ê·¸ë¤ ìì ì ì¡ì¸ì¤ í¤ì ëí ë°±ì ì¹´í¼ë¥¼ ë§ëë ê²ì ê²ì리í ê²½ì°ë¥¼ ì·¨ê¸í기 ìí´ íê° ê¸°ê´(510)ì´ ì기 ìí¸í í¤(560)ì ë³µì¬ë³¸ì ê°ì§ íìê° ìë¤. ê·¸ ë¤ìì, íê° ê¸°ê´(510)ì ììì í¹ì ì¬ì©ìì ëí´ ë°±ì ì¤í ë¦¬ì§ ì¤ë¹ë¡ì ëìí ì ìë¤. ì기 ì ì°¨ì ëë¤ë¥¸ ì´ì ë í¹ìí 목í ì¥ì¹(100)ê° íëì ì¬ì©ìë¡ë¶í° ë¤ë¥¸ ì¬ì©ìë¡ ê·¸ ìì ê¶ì ë³ê²½í ê²½ì° ëë ì¬ì©ìê° ìì ì 목í ì¥ì¹(100)를 ì ê·¸ë ì´ëíê³ ì íë ê²½ì°ë¥¼ ì·¨ê¸í기 ìí´ìì´ë¤. ì´ë¬í ì¢ ë¥ì ìì ê¶ ì구 ìëë ê·¸ ì ë(100)ì ëí 모ë íê°ë ì í리ì¼ì´ì í¤ì ìë를 ìë°í ì ìë¤(ì´ ê²½ì°ì, ê·¸ ì ëì ìë¡ì´ ìì ì ì´ë¦ì¼ë¡ ì¬ë±ë¡íë ê² ì¸ì í ê²ì ì무ê²ë ìë¤). ê·¸ë¬ë, ì¬ì©ìê° ìì ì í¤ ë°ì´í°ì ì구ì ì¸ ìì ê¶ì ì 1 ì¥ì¹ë¡ë¶í° ì 2 ì¥ì¹ë¡ ì´ì í기 ìíë©´, ì´ê²ì íê° ê¸°ê´(510)ê³¼ 2ê°ì 목í ì¥ì¹ ê°ì ë³´ì í¸ëìì ì ìí´ ë¬ì±ë ì ìë¤.The final step in this procedure is that the newly encrypted version of the application designation key 560 (with the secondary device 540 of the target device) is retransmitted back to the authorization authority 510 server for archiving purposes. This transport server is used for several purposes. First, the target device 100 notifies that the code block could be properly decoded. Second, the authorization authority 510 needs to have a copy of the encryption key 560 to handle cases where end users are suffering some sort of catastrophic data failure and neglect to make backup copies of their own access keys. There is. The authority authority 510 may then act as a backup storage facility for any particular user. Another reason for the above procedure is to handle the case where the special target device 100 changes its ownership from one user to another user, or when the user wants to upgrade his or her target device 100. This kind of permanent ownership transfer can involve the transfer of all authorized application keys for that unit 100 (in this case, there is nothing else to do except to re-register that unit with a new owner name). However, if the user wishes to transfer permanent ownership of his key data from the first device to the second device, this can be achieved by a secure transaction between the authorization authority 510 and the two target devices.
목í ì¥ì¹(100)ê° íê° ê¸°ê´(510) ìë²ì ë¤ì ì ì¡íë ë¤ë¥¸ ì ë³´ë 목í ì¥ì¹ì ìë¡ ê°±ì ë í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(610)(ë 166ì ëìë¨)ì ë©ìì§ ë¤ì´ì ì¤í¸ì´ë¤. ì´ê²ì ìë¡ ê°±ì ë í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(610)ì ì¹ì¸(acknowledgement)ì´ê³ , íê° ê¸°ê´(510) ìë² ë° ëª©í ì¥ì¹(100)ìì ì기 í¹ìí 목í ì¥ì¹(100)ì ê´ë ¨ë í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(610)ì ëì¼ì±ì ê²ì¦í기 ìí´ ëí ì¬ì©ëë¤. ì´ ë°ì´í° 구조ì ì íí 구ì±ì ë¤ì ì¹ì ìì ì¤ëª íë¤. ì°ë¦¬ë ëí í¹ì í¤ ëë í¤ ì§í©ì ìì ê¶ì ì구 ìë를 ë¬ì±íë ë°©ë²ì ëíì¬ ë¤ì ì¹ì ìì ì¤ëª í ê²ì´ë¤.Another information that the target device 100 sends back to the authorization authority 510 server is the message digest of the target device's newly updated key list data structure 610 (shown in FIG. 166). This is an acknowledgment of the newly updated key list data structure 610 and the identity of the key list data structure 610 associated with the special target device 100 at the authorization authority 510 server and the target device 100. It is also used to verify. The exact organization of this data structure is described in the next section. We will also explain in a later section how to achieve a permanent transfer of ownership of a special key or set of keys.
ì´ ìì ìì, ììì ì¤ëª í íë¡ì¸ì¤ë ì í리ì¼ì´ì ì§ì í¤(550)를 ê°ë°ì(520)ë¡ë¶í° 목í ì¥ì¹(100)ë¡ ì´ì í기 ìí´ íë¡í ì½ì ì¬ì©íë ì ì¼í ë°©ë²ì´ ìëë¼ë ì ì 주목íì¬ì¼ íë¤. ì를 ë¤ë©´, ì¤ì í¤ ì ì¡ í¸ëìì ì 목í ì¥ì¹(100)ì ì í리ì¼ì´ì ê°ë°ì(520) ì¬ì´ììë§ì ì§ì ì ìì ìë°í ì ìë¤. ê·¸ë¬ë, ì´ ê²½ì°ì ì¥ì¹ ì§ì ìí¸í ì 보를 í¸ëìì ì ì ê³µí기 ìí´ ê°ë°ì ìë²ì íê° ê¸°ê´ ìë² ê°ì ì ìì´ í립ëì´ì¼ íë¤. ë³´ì ë°©ìì¼ë¡ ìì í기 ìí´ ì´ íë¡í ì½ì´ ë§ë¤ì´ì§ ì ìë ë¤ìì ë©ì¹´ëì¦ì´ ìê³ , ììì ì¤ëª í ìë ì´ ë©ì¹´ëì¦ë¤ ì¤ì íëì¼ ë¿ì´ë¤. ê·¸ë¬ë, ê³µíµì ì¤ë ë(thread)ë 목í ì¥ì¹(100)ì ì ì¡ë í¤ ë°ì´í°ê° ê·¸ 목í ì¥ì¹(100)ì ëí´ìë§ ì¬ì©í ì ìë¤ë ê²ì ë³´ì¦í기 ìí´ 3ê°ì ë¹ì¬ì 모ëê° í¨ê» ìì©í´ì¼ íë¤ë ê²ì´ë¤.At this point, it should be noted that the process described above is not the only way to use the protocol to transfer application specific key 550 from developer 520 to target device 100. For example, the actual key transfer transaction may involve a direct connection only between the target device 100 and the application developer 520. In this case, however, a connection must be established between the developer server and the authorization authority server in order to provide device-specific encryption information to the transaction. There are a number of mechanisms by which this protocol can be created to work in a secure manner, and the example described above is just one of these mechanisms. However, a common thread is that all three parties must work together to ensure that key data sent to the target device 100 is available only for that target device 100.
í¤ì 구조ë 2ê°ì ë¶ë¶, ì¦ íëì¨ì´ ì§ì ë¶ë¶ê³¼ ì í리ì¼ì´ì ì§ì ë¶ë¶ì ê°ëë¡ ì¤ì ë ì ìë¤ë ê²ì 주목íë¤. ì기 2ê°ì ë¶ë¶ì´ ìì í ë¶ê°ë¶ì±ì¸ ê²ì íìì¡°ê±´ì´ ìëë¤. ë§ì¼ ì´ë¤ì´ ë¶ê°ë¶ì±ì´ë©´, ì°ë¦¬ë ììì ì¤ëª í í¹ì±ë¤ì ì íí ì·¨íê² ëë¤. ê·¸ë¬ë, í¤ ë¶ë¶ë¤ì´ ë 립ì ì¼ë¡ ëìíê² íë ë°©ë²ì´ ìì¼ë©´, ì°ë¦¬ë ì´ì²´ì ì¸ ë³µì¬ë³¸ ì§í©ì ì»ì ì ìê³ , ì¤ì ì½ë ëë ì¤ì 목í ì¥ì¹(100)ì 무ê´í ì ì½ë¤ì ì¬ì©í ì ìë¤. ë¤ì ë§í´ì, ììì ê°ë°ì(520)ë ë¶ë°°ì ì ì½ì´ ìì§ë§ íë í ì ìê³ ì¤íë§ ê°ë¥í ì í리ì¼ì´ì ëë 미ëì´ ì¤í¸ë¦¼ì ê³µê°í ì ìë¤. ì´ê²ì íê° ê¸°ê´(510)ì´ ì ì¡°ìì ê´ê³ìì´ ëª¨ë ì¥ì¹ìì ëìíë ë³´ì ìì¤í ê°±ì ì ì¡ì¶í기 ìíë ê²½ì°ì ì ì©í ì ìë¤. ì´ê²ì ë¤ë¥¸ ìë ì¤í¸ë¦¼ì ì ìê¶ì ëí ì ì´ë¥¼ ì¬ì í ì ì§íë©´ì ê³µê°ì ì¼ë¡ ì´ì©ê°ë¥í 미ëì´ ì¤í¸ë¦¼ì ë°©ì¡ì¼ ê²ì´ë¤. ì ì¬íê², ê³µê°ìë ëêµ°ê°ê° íë ë°/ëë ë³µì¬í ì ìì§ë§ íëì í¹ìí 목í ì¥ì¹(100) ëë ì¥ì¹ë¤ì ì§í©ìì ì¤íë§ ê°ë¥í ì í리ì¼ì´ì ì ë¶ë°°í ì ìë¤. ì´ê²ì ì를 ë¤ë©´ "ì´ í¹ì ì¢ ë¥ì ì¥ì¹ ê°±ì " ë©ìì§ë¥¼ ì¡ì¶í ë ì ì©íë¤. ë¤ë¥¸ ê°ë¥í ìì©ì ì´ëììë ëìí ì ìê³ ë¶ë°°ì ì ì½ì´ ìë ì í리ì¼ì´ì ì ì¡ì¶íë ê²ì´ë¤. ì´ê²ì í¹ìí ìì©(ì¦, ê°ë°© ìì¤ ë¶ë°°)ì ìí´ ìì¤ ì½ë를 ê³µê°íë ê²ê³¼ 본ì§ì ì¼ë¡ ì ì¬íë¤. ë¶ë¦¬ê°ë¥í H/W ì§ì ë° S/W ì§ì í¤ êµ¬ì¡°ì ìí´ ê°ë¥íê² ëë ë¤ë¥¸ ì¢ ë¥ì ë³´ìì í 1ì ëìíìë¤.Note that the structure of the key can be set to have two parts, a hardware specific part and an application specific part. It is not a requirement that the two parts are completely inseparable. If they are inseparable, we take exactly the characteristics described above. However, if there is a way to make the key parts operate independently, we can get a complete copy set and use constraints independent of the actual code or the actual target device 100. In other words, any developer 520 can publish an application or media stream that is unrestricted but unreadable and executable only. This may be useful if the licensing authority 510 wants to issue a security system update that operates on all devices regardless of the manufacturer. Another example of this would be the broadcast of a publicly available media stream while still maintaining control over the copyright of the stream. Similarly, a publisher can distribute an application that anyone can read and / or copy but can only run on one particular target device 100 or set of devices. This is useful, for example, when sending a "Update this special kind of device" message. Another possible application is to send an application that can operate anywhere and is not restricted by distribution. This is essentially similar to publishing the source code for special applications (ie open source distribution). Other types of security enabled by separable H / W designation and S / W designation key structures are shown in Table 1.
[í 1]TABLE 1
<ë¶ë¦¬ ê°ë¥í íëì¨ì´ ì§ì ë° ì í리ì¼ì´ì ì§ì í¤ êµ¬ì¡°><Separable hardware-specific and application-specific key structure>
í¤ ë¦¬ì¤í¸ ë°ì´í° 구조 구ì±The key list data structure
ì´ì ë 166ì ì´í´ë³´ë©´, í¹ì 목í ì¥ì¹(100)ì íê°ë ì í리ì¼ì´ì ëë 미ëì´ ì§ì í¤ë¥¼ ë´í¬í ë°ì´í° 구조(610)ë ê°ì¹ìë ìí(commodity)ì´ê³ , ê·¸ëì ìì ìì ìí´ ë°±ì ë ì ìì´ì¼ íë¤. ê°ë³ í¤ë¤ì 목í ì¥ì¹ì 2ì°¨ ë¹ë°í¤ë¡ (ììì ì¤ëª í ê²ì²ë¼) ìí¸íë기 ë문ì, ê·¸ 리ì¤í¸ë í¤ë¤ì´ íê°ë ì ëìë§ ì ì©íë¤. ê·¸ë¬ë, ì°ë¦¬ë ì´ ë°ì´í° 구조(610)ê° ë¶ì í ë³ê²½, í¼ì ë°/ëë ìì í ìì¤ë¡ë¶í° ìì íë¤ë ê²ì íì¤íê² í íìê° ìë¤. ìì¤ë í¤ ë¦¬ì¤í¸ ë°ì´í° 구조ì ê²½ì°ì, ì ì²´ ë°ì´í° 구조(610)ë ê·¸ í¹ì 목í ì¥ì¹(100)ì ëí í¤ ë¦¬ì¤í¸ì ìë¡ì´ ë³µì¬ë³¸ì ììì ì¤ëª í ê²ì²ë¼ íê° ê¸°ê´(510)ì¼ë¡ë¶í° ìì²í¨ì¼ë¡ì¨ 복구ë ì ìë¤. í¤ ë¦¬ì¤í¸ ë°ì´í° 구조ì ëíì¬ ìì ë³ê²½ì´ ì´ë£¨ì´ì§ ê²½ì°ì(ê·¸ë¬í ìë리ì¤ì ì´ì ì ëí´ìë ì´ ì¹ì ì ì´ì´ì§ë ì¹ì ìì ì¤ëª í ê²ì´ë¤), íë¡í ì½ì ê·¸ë¬í ë³ê²½ì ììì¸ ê²ì¼ë¡ ìë³íë ìë¨ì ìì©í ì ìë¤. ë§ì§ë§ì¼ë¡, ì°ë¦¬ë í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(610)ì ì§ì ì±, ì ìì± ë° ì í¨ì±ì ì í¨íí기 ìí ìì ì ìì¡° ë°©ì§ ë©ì¹´ëì¦ì í¬í¨íë¤.Referring now to FIG. 166, data structure 610 containing an application or media specific key authorized to special target device 100 is a valuable commodity, and so should be able to be backed up by the owner. Since the individual keys are encrypted (as described above) with the secondary secret key of the target device, the list is only useful for the unit for which the keys are authorized. However, we need to ensure that this data structure 610 is safe from fraudulent alteration, corruption and / or complete loss. In the case of a lost key list data structure, the entire data structure 610 may be recovered by requesting a new copy of the key list for that special target device 100 from the authorization authority 510 as described above. If any changes have been made to the key list data structure (the reasons for such a scenario will be described in the sections following this section), the protocol may accept a means of identifying such changes as temporary. Finally, we include some anti-counterfeiting mechanisms to validate the authenticity, timeliness, and validity of the key list data structure 610.
ì´ë¬í íìì¡°ê±´ì ì¼ëì ëê³ ì, ë 166ì ëìí ê²ê³¼ ì ì¬í ë°©ë²ì¼ë¡ ì기ì 모ë íì§ì ëíë´ë ìì í í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(610)를 구ì±í ì ìë¤. íìì ê°ì´, ëìë ìë 모ë ìë§íë í¹ì±ë¤ì ê·¸ë¬í ë°ì´í° 구조ì í¬í¨ìí¬ ì ìë ì ì¼í ë°©ë²ì´ ìëë¤. ê·¸ë¼ìë ë¶êµ¬íê³ , ë 166ì ëìí í¹ìí ë°ì´í° 구조ë ì¬ì¤ì íë¡í ì½ì 모ë 기본ì ì¸ íìì¡°ê±´ì 충족ìí¨ë¤.With this requirement in mind, a secure key list data structure 610 representing all of the above qualities can be constructed in a manner similar to that shown in FIG. As usual, the illustrated example is not the only way to include all desired properties in such a data structure. Nevertheless, the special data structure shown in FIG. 166 satisfies virtually all basic requirements of the protocol.
ìì ëíìì 주목í´ì¼ í ëª ê°ì§ ë²ì¹ì´ ìë¤. 첫ë²ì§¸ë í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(610)ì ìµìì ìí¸íë 목í ì¥ì¹ì 1ì°¨ ë¹ë°í¤ë¡ ìíëì´ì¼ íë¤ë ê²ì´ë¤. ì´ë¬í í¹ìí í¤ë¥¼ ì´ì©íë ë°ë ëª ê°ì§ ì´ì ê° ìì§ë§, ê·¸ ì¤ ì¤ìí ê²ì ë°ì´í° 구조ì êµë¶ì ë³µì¬ë³¸(local copy)ì´ ë³µìëì´ì¼ íë ê²½ì°ì íê° ê¸°ê´(510)ì´ ì´ ë°ì´í° 구조ì ìí¸í íí를 목í ì¥ì¹(100)ì 무ê´íê² ì¬ìì±í ì ìì´ì¼ íë¤ë ê²ì´ë¤. ì´ ë°ì´í° 구조를 ìí¸íí기 ìí´ ììì ë¤ë¥¸ í¤(ì를 ë¤ë©´, 목í ì¥ì¹ì 2ì°¨ ë¹ë°í¤)ê° ì¬ì©ëë©´, 목í ì¥ì¹ê° ë°ì´í° 구조를 ë³ê²½í íìê° ìì ë(í¤ê° 리ì¤í¸ì ì¶ê°ëë ê²½ì°ì²ë¼) ì ì²´ 리ì¤í¸ê° ë°±ì 목ì ì¼ë¡ íê° ê¸°ê´(510)ì ì ì¡ëì´ì¼ íë¤. ì´ê²ì íê° ê¸°ê´(510)ì ë¤ì ì ì¡í´ì¼ í ë¤í¸ìí¬ í¸ëí½ ìì ì ì¬ì ì¼ë¡ í¬ê² ì¦ê°ìí¬ ì ìì¼ë©°, ì´ê²ì ë°ëì ì±ë ëìíì ê°ì¥ í¨ì¨ì ì¸ ì¬ì©ì´ë¼ê³ ë³¼ ì ìë¤.There are several laws to note in the chart above. The first is that the highest level encryption of the key list data structure 610 should be performed with the primary secret key of the target device. There are several reasons for using this special key, but the most important of these is that if a local copy of the data structure is to be restored, the authorization authority 510 will convert the encryption form of this data structure to the target device 100. It must be able to regenerate regardless. If any other key (for example, the secondary secret key of the target device) is used to encrypt this data structure, the entire time when the target device needs to change the data structure (such as when a key is added to the list) The list should be sent to the authority 510 for backup purposes. This can potentially significantly increase the amount of network traffic that must be sent back to the authority 510, which is not necessarily the most efficient use of channel bandwidth.
ëí, ì´ í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(610)ë íì¤ ì í리ì¼ì´ì ëë 미ëì´ ì¤í¸ë¦¼ ì§ì íê° í¤ì ì ì¥ì©ì¼ë¡ ì¬ì©ëë ê² ì¸ì ë³´ì ìì¤í ê´ë ¨ í¤ì ì ì¥ì©ì¼ë¡ ì¬ì©ëë ê²ì´ ë°ëì§íë¤. ì´ ë°ì´í° 구조ë íê° ê¸°ê´(510)ì ìí´ ì¬ìì±ë ì ì기 ë문ì, 목í ì¥ì¹ìì ëìíë ë³´ì ìíí¸ì¨ì´ë¥¼ ê°±ì íë ê²ì´ ë°ëì§í ê²½ì°ì, ì´ê²ì ëì¼í í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(610)ê° 2ê°ì§ 기ë¥ì¼ë¡ ì¬ì©ë ì ìë ê²½ì° (목í ì¥ì¹(100)ì ì½ë ì ì¥ íìì¡°ê±´ì ì ì¥ìì) ë ìì íê³ ë í¨ì¨ì ì¼ ê²ì´ë¤.The key list data structure 610 is also preferably used for storage of security system related keys in addition to being used for storage of standard applications or media stream specific permission keys. Since this data structure can be regenerated by the authority 510, in the case where it is desirable to update the security software running on the target device, this is the case when the same key list data structure 610 can be used with two functions. It will be safer and more efficient (in terms of code storage requirements of target device 100).
ëë²ì§¸ ì´ìë í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(610)ì ìí¸í ë²ì ì´ ìµì´ í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(610)ì ë©ìì§ ë¤ì´ì ì¤í¸ë¥¼ í¬í¨íë¤ë ê²ì´ë¤. ë¹ë¡ ê°ê°ì ê°ë³ì ì¸ í¤ë¤ì´ ìí¸íëì§ë§, 리ì¤í¸ ìì²´ì ë¤ë¥¸ ë¶ë¶ì ë©ìì§ ë¤ì´ì ì¤í¸ê° ê³ì°ëë ìì ìì ë³ëë¡ ìí¸íëì§ ìëë¤ë ì ì 주목íì¬ì¼ íë¤. ë©ìì§ ë¤ì´ì ì¤í¸ ê³ì°ì ì´ì´ì, ì ì²´ í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(610)(ë©ìì§ ë¤ì´ì ì¤í¸ë¥¼ í¬í¨í¨)ë ìµìì(ëë ë§ì¤í°) í¤ì ìí´ ìë³ë í¤ ê° ë° ìê³ ë¦¬ì¦ì¼ë¡ ìí¸íëë¤. ì´ê²ì ì ììë ì 3ìê° ë¦¬ì¤í¸ë¥¼ ë¶ì íê² ë³ê²½íê³ ìë¡ì´ ë©ìì§ ë¤ì´ì ì¤í¸ë¥¼ ê³ì°íë©° ì§ì í 리ì¤í¸ë¥¼ ìì ë 리ì¤í¸ë¡ ëì²´íë ê²ì ê¸ì§í기 ìí´ ìíëë¤. í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(610)ê° ëª©í ì¥ì¹(100)ì ë©ëª¨ë¦¬ ì¤íì´ì¤ì ì½ì´ ë¤ì¬ì§ ë, ì´ (ë³µí¸ë) ë©ìì§ ë¤ì´ì ì¤í¸ë MACê° ììì ë¤ë¥¸ ë³´ì ìí¸í ì½ë ë¸ë¡ì ëíì¬ ì¬ì©ë ë°©ë²ê³¼ ëì¼í ë°©ë²ì¼ë¡ í¤ ë¦¬ì¤í¸ ìì²´ì ì§ì ì± ë° ì í¨ì±ì ê²ì¦í기 ìí´ ì¬ì©ëë¤. ê°ë³ í¤ ì¸ì 모ë ììë¤ì´ ë§ì¤í° í¤ë¡ë§ ìí¸íëë¤ë ì¬ì¤ì 리ì¤í¸ê° ìµìì í¤ ì¸ì ììì í¤ì ì¡ì¸ì¤í íìê° ìì´ ê´íµë ì ìì(ë° ë¦¬ì¤í¸ê° ì ì§ë¨)ì ì미íë¤. ëí, í¤ ë¦¬ì¤í¸ 목ë¡(inventory)ì ë³µí¸ ë¸ë¡ì ë¨ì¼ íµê³¼ë§ì¼ë¡ í¸ì§ë ì ìë¤.The second issue is that the encrypted version of the key list data structure 610 includes the message digest of the original key list data structure 610. Note that although each individual key is encrypted, other parts of the list itself are not encrypted separately at the time the message digest is calculated. Following the message digest calculation, the entire key list data structure 610 (including the message digest) is encrypted with the key value and algorithm identified by the top (or master) key. This is done to prevent malicious third parties from tampering with lists, calculating new message digests, and replacing true lists with modified lists. When the key list data structure 610 is read into the memory space of the target device 100, this (decoded) message digest is the same as the method used by the MAC for any other secure encryption code block. It is used to verify the authenticity and validity of the The fact that all elements other than the individual key are encrypted only with the master key means that the list can be traversed (and the list is maintained) without the need to access any key other than the top key. In addition, the key list inventory can be edited with only a single pass of the decryption block.
ì¤ìí ì 3 ìì¹ì ê°ë³ ì í리ì¼ì´ì ì½ë ëë 미ëì´ ì¤í¸ë¦¼ ì§ì í¤ê° ê° ëª©í ì¥ì¹(100)ì ê°ë³í í¤ë¥¼ ìì©íëë¡ ì¶©ë¶í í¬ê² ë ì ìë¤ë ê²ì´ë¤. ì½ë ëë 미ëì´ ì¤í¸ë¦¼ì´ ëë ìì° ëì¤í¬ì ìí´ ë¶ë°°ë ê²½ì°ì, ì´ê²ì ì í리ì¼ì´ì ê°ë°ì(520)ê° ê°ë³ ë³µí¸í¤ì í¨ê» ìë¡ì´ ì½ë ì§ì ID를 ë°íí íìê° ììì ì미íë¤. ë¹ë¡ ì´ê²ì´ íê° ì²ë¦¬ì ìë°ë 모ë ë¹ì¬ìë¤ ê°ì ì ì¡ëì´ì¼ íë ë°ì´í° ìì ìµìííë¤ë ê´ì ìì ë í¨ê³¼ì ì¼ ì ìì§ë§, ì´ê²ì ì ì¶©ë ë³µí¸í¤ë¥¼ ì¶ì íë ë¥ë ¥ì í¬í¨í(ì íëë ê²ì ìë) 기ë¥ì íë¡í ì½ì ì¶ê°íë¤. ì°ë¦¬ë ì´ê²ì í¤ ì·¨ì를 ì·¨ê¸íë ë¤ì ì¹ì ìì ì¤ëª í ê²ì´ë¤.An important third principle is that the individual application code or media stream designation key can be made large enough to accommodate the individualization key of each target device 100. If the code or media stream is distributed by the mass production disk, this means that the application developer 520 needs to issue a new code assignment ID with a separate decryption key. Although this may be less effective in terms of minimizing the amount of data that must be transferred between all parties involved in the authorization process, this adds functionality to the protocol, including but not limited to the ability to track compromised decryption keys. . We will explain this in a later section that deals with key cancellation.
주목í´ì¼ í ë¤ì ì´ìë í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(610) í¤ëê° ë¦¬ì¤í¸ì ë머ì§ë¥¼ 구ì±íë ì í리ì¼ì´ì ì§ì í¤ì ëì¼í í¹ì±ë¤ì ì§í©ì ê³µì íë¤ë ê²ì´ë¤. ì¬ì¤, í¤ëë í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(610) ìì²´ì ë머ì§ì ëí ë§ì¤í° í¤(620)ë¡ì ìê°í ì ìë¤. ë°ë¼ì, ëë¨¸ì§ ë¦¬ì¤í¸ì ê´ë¦¬ë¥¼ ê²°ì í기 ìí´ ì´ í¤ë¥¼ ì¬ì©í ì ìë í ëì¼í ëì ìì¹ì´ ì ì©ë ì ìë¤. ì´ê²ì 목í ì¥ì¹(100)ì ë³´ì ìì¤í ì ìê° ìì¡´ ê´ë¦¬ë¥¼ í¬í¨íë¤. ë°ë¼ì, 목í ì¥ì¹(100)ë 미리 ì í´ì§ ê°ê²©ì¼ë¡ ê·¸ ë³´ì ìì¤í ì ê°±ì íëë¡ ê°ìë ì ìì¼ë©°, ì´ê²ì ê·¸ ìì²´ë¡ ê·¹í ê°ë ¥í ê°ë ì´ë¤.The next issue to note is that the key list data structure 610 header shares the same set of properties as the application specific key that makes up the rest of the list. In fact, the header can be thought of as the master key 620 for the rest of the key list data structure 610 itself. Thus, the same principle of operation can be applied as long as this key can be used to determine management of the rest of the list. This includes time dependent management of the security system of the target device 100. Thus, the target device 100 may be forced to update its security system at predetermined intervals, which is an extremely powerful concept in itself.
í¤ ë¦¬ì¤í¸ê° ìì ì ë§ì¤í° í¤(620)(리ì¤í¸ í¤ë) ë° ìì ì ë 립ì ìí¸í ë©ì¹´ëì¦ì ê°ê° ê°ë ë¤ìì ì¹ì ì í¬í¨í ê°ë¥ì±ì´ ëí ì¡´ì¬íë¤. ììì ë¤ë¥¸ í¤ì ê°ì´, 리ì¤í¸ í¤ëë í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(610)를 í´ìí기 ìí´ ì¬ì©ëë ìí¸í ì½ë ë¸ë¡ì ì§ì í ì ìë ì½ë ì§ì ID íë(620)를 í¬í¨íë¤. ì ì²´ 리ì¤í¸ë ê·¸ ë¤ìì ìì ì ë§ì¤í° í¤(ì´ê²ì ëë¤ë¥¸ 리ì¤í¸ í¤ëì´ë¤)를 í¬í¨íë ëë¤ë¥¸ ë§ì¤í° 리ì¤í¸ ë´ì í¬í¨ë ì ìë¤. ë°ë¼ì, ì ì²´ í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(610)ë íê·ì ì¼ë¡ ì ìë ì ìë¤. ìììì²ë¼, ì´ íê·ì í¹ì±ì ëì¼í ë°ì´í° 구조ì ì´ì ë²ì ì ë¨ì ì ì·¨ê¸í기 ìí´ ìë¡ì´ í¤ ë¦¬ì¤í¸ ë°ì´í° 구조를 ìì±í¨ì¼ë¡ì¨ ë³´ì ìì¤í ì ê°±ì í기 ìí´ ì¬ì©ë ì ìë¤. ì ì²´ 리ì¤í¸ì ë³´ìì±ì "ìµì¸ì¸¡"(ëë ìµê·¼) ë³´ì층ì ë´í¬ë기 ë문ì, ì ì²´ í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(610)ì ë³´ìì±ì íì ë³´ì ìíí¸ì¨ì´ì ìµì¢ ë°ë³µì 기ì´ë¥¼ ëë¤.There is also the possibility that the key list includes multiple sections, each with its own master key 620 (list header) and its own independent encryption mechanism. Like any other key, the list header includes a code designation ID field 620 that can point to the encryption code block used to interpret the key list data structure 610. The entire list can then be included in another master list containing its master key (this is another list header). Thus, the entire key list data structure 610 may be defined recursively. As before, this regression feature can be used to update the security system by creating a new key list data structure to handle the shortcomings of previous versions of the same data structure. Since the security of the entire list is implied in the "outermost" (or most recent) security layer, the security of the entire key list data structure 610 is always based on the final iteration of the security software.
ë°ë¼ì, í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(610)ì íê·ì í¹ì±ì ê°ë ¥í í¹ì§ì´ë¤. ìì ì¹ì ìì ì¤ëª í ë°ì´í° 구조ì ì íí 구íì´ í° ì¤ìëê° ìë ê²ë ëí ì´ì ì´ë¤. ììì ì ê³µí ì¤ëª ì íë¡í ì½ ìì ì íê·ì ì±ì§ì ë§ëëë° íìí 기ë¥ì ìµì ë¶ë¶ì§í©ì¸ í¹ì§ë¤ì í¬í¨í ë¨ìí ìì´ìë¤.Thus, the recursive nature of the key list data structure 610 is a powerful feature. Another reason is that the exact implementation of the data structures described in the previous section is not of great importance. The explanation provided above is a simple example that includes features that are a minimal subset of the functionality needed to create the recursive nature of protocol operations.
í¤ ë¦¬ì¤í¸(160)ë, ì´ë»ê² 구ì±ëëê°ì ê´ê³ìì´, ëª ê°ì§ ê³µíµ íê²½ íìì ì ì§ ë°/ëë ê°±ì ë ì ìë¤. ì´ íê²½ì 리ì¤í¸ì ë´í¬ë íë ì´ìì í¤ì ìíê° ìì ëë ê²½ì°ë¥¼ í¬í¨íë¤(ì íëë ê²ì ìë). í¹ì í¤(210)ì ìì ê¶ì´ íëì ì ëì¼ë¡ë¶í° ë¤ë¥¸ ì ëì¼ë¡ ì´ì ë ì ìë ëª ê°ì§ 기본 ë©ì¹´ëì¦ì´ ìê³ , ì°ë¦¬ë ì´ê²ì ë¤ì ì¹ì ìì ì¤ëª í ê²ì´ë¤. ê·¸ë¬ë, ì´ë ê²½ì°ì´ë , ê°ì ë í¤ ë¦¬ì¤í¸ê° ì ì§ëë ë©ì¹´ëì¦ì 2ê°ì§ ë¶ë¥, ì¦ íê° ê¸°ê´(510)ì ê°ì ì ì구íë ê²ê³¼ ë 립ì ì¼ë¡ ì¤íë ì ìë ê²ì¼ë¡ ëëì´ì§ ì ìë¤. Key list 160 may be maintained and / or updated under some common environment, regardless of how it is configured. This environment includes (but is not limited to) modifying the state of one or more keys in a list. There are some basic mechanisms by which ownership of the special key 210 can be transferred from one unit to another, which we will describe in later sections. In either case, however, the mechanism by which the revised key list is maintained can be divided into two classes, one that can be implemented independently of requiring intervention of the authority 510.
ì´ íë¡í ì½ì´ 기ì´íê³ ìë 주ì ëì ê°ë ì¤ì íëë íê° ê¸°ê´(510)ì ì¤ì ìë²ì ê°ë³ 목í ì ë ê°ì íìí ë¤í¸ìí¬ í¸ëí½ì ìì ìµìë¡ ê°ììí¤ë ê²ì´ë¤. ë°ë¼ì, í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(610)ì ëí ììì ìì ë³ê²½(ê·¸ ì´ì ë ë¤ìì ì¤ëª í¨)ì 목í ì ë(100)ì ìí´ ë 립ì ì¼ë¡ ì ì§ë ì ìì´ì¼ íë¤. ì´ê²ì 주ì ì´ì ë ì´ë¬í ë³ê²½ì´ ì¥ì¹ ë³´ì ìì¤í ì ëí ì구ì ì¸ ë³ê²½ë³´ë¤ ë ë¹ë²íê² ëª ìì ì¼ë¡ ë°ìíë¤ë ê²ì´ë¤(ì´ê²ì íì 목í ì¥ì¹(100)ì íê° ê¸°ê´(510) ê°ì ìí¸ìì©ì ìí´ìë§ ë¬ì±ëë¤).One of the main operational concepts on which this protocol is based is to minimize the amount of network traffic needed between the central server of the licensing authority 510 and the individual target units. Thus, any temporary change to the key list data structure 610 (the reason for which will be described later) should be able to be maintained independently by the target unit 100. The main reason for this is that such changes occur explicitly more frequently than permanent changes to the device security system (this is always achieved only by the interaction between the target device 100 and the authorization authority 510).
ì´ì¨ë , 목í ì¥ì¹(100)ê° ëª ë£í ë°©ë²ì¼ë¡ ë§ì¤í° í¤ ë¦¬ì¤í¸ ë°ì´í° 구조ì íì¬ ìí를 ê³ìíì¬ ì¶ì í ì ìë ìì ì ë©ì¹´ëì¦ì´ ìì´ì¼ íë¤. ì´ê²ì 2ê°ì "ë§ì¤í°" 리ì¤í¸ë¥¼ ê°ì§ì¼ë¡ì¨ ë¬ì±ë ì ìë¤. ì´ë¤ 2ê°ì 리ì¤í¸ ì¤ ì²«ë²ì§¸(ì°ë¦¬ë ì´ê²ì ì구 í¤ ë¦¬ì¤í¸ë¼ê³ ë¶ë¥¸ë¤)ë íê° ê¸°ê´(510)ì ìí´ ì ì§ëë¤. ì´ ë¦¬ì¤í¸ë ë¹í´ 목í ì ë(100)ê³¼ ê´ë ¨ë ì í리ì¼ì´ì ì§ì í¤ì "ì구" ìì ê¶ê³¼ ê´ê³ëë¤. ëë²ì§¸ 리ì¤í¸ë ëì¼í ì¤ìë를 ê°ì§ë§, ì´ê²ì "ì구" í¤ ë¦¬ì¤í¸ ë°ì´í° 구조ì ìì ìì ê³¼ ê´ê³ëë¤. ì´ë¬í ìì ì 리ì¤í¸ìì ì¶ê°ì´ê±°ë 리ì¤í¸ë¡ë¶í° ìì íë ê²ì¼ ì ìë¤. 2ê°ì 리ì¤í¸ ìì²´ì ë°ì´í° 구조ì 구íì ìì´ìì íìí ì°¨ì´ë ìê³ , ì¤ìí ì°¨ì´ë ê·¸ë¤ì´ ì´ë»ê² ì ì§ëëê°ìì ë°ìíë¤. 목í ì ë(100)ì ëíì¬ ì기 리ì¤í¸ ì¤ì íë ëë ë¤ë¥¸ ê²ì¼ë¡ë¶í° ë°ì´í°ê° ìì¤ëë ê²½ì°ë¡ë¶í° 복구íë ì´ë¤ ë°©ë²ì´ ìë¤ë ê²ì ë°ëì§íë¤. ì´ë¬í ìì¤ì ì´ë¤ íêµì ì¥ì ì 기ì¸íê±°ë ëë 리ì¤í¸ ì¤ì íëì ë´í¬ë ì ë³´ê° ì´ë¤ ì´ì ë¡(ë¨ìíê² ëë ì ìì ì¼ë¡) í¼ìë ê²½ì°ì 기ì¸í ì ìë¤. ì°ë¦¬ë ì´ë¬í "í¤ ë¦¬ì¤í¸ í¼ì"ì ê²½ì°ì ìí¥ì ëíì¬ ë¤ì ì¹ì ìì ì¤ëª íë¤. ë¹ë¡ ì구 리ì¤í¸ê° íê° ê¸°ê´ê³¼ì ì ìì ìí´ ë³µêµ¬ëë ê²ì´ íìíì§ë§, íê° ê¸°ê´(510)ì´ í¹ì 목í ì¥ì¹ì ìì í¤ ë¦¬ì¤í¸ë¥¼ 복구í ì ìë ê²ì íìíì§ ìë¤(ëë ë°ëì§íì§ ìë¤). ì´ë¬í ì ì¥ì ëí ë§ì ì´ì ê° ìì§ë§, 주ì ì´ì ë ìì í¤ ë¦¬ì¤í¸ê° ì구 í¤ ë¦¬ì¤í¸ë³´ë¤ í¨ì¬ ë ë¹ë²íê² ê°±ì ë ê°ë¥ì±ì´ ìê³ ì¤ìì íê° ê¸°ê´(510)ê³¼ 목í ì ë ê°ì íìí ë¤í¸ìí¬ í¸ëí½ì ìì ì ë ìµìì¹ë¡ ì ì§íê³ ì¶ê¸° ë문ì´ë¤. ê·¸ë¼ìë ë¶êµ¬íê³ , íê° ê¸°ê´(510)ì´ ëª ê°ì§ ì´ì (ì´ë¤ ì¤ ì¼ë¶ì ëí´ìë ë¤ìì ì¤ëª íë¤)ë¡ í¹ì 목í ì¥ì¹ì ìì í¤ ë¦¬ì¤í¸ì ëí ìì ì íí ì ìë ê²ì´ ì ì¬ì ì¼ë¡ ë°ëì§íë¤. ì´ ê²½ì°ì, ì´ ë¦¬ì¤í¸ë 목í ì¥ì¹ì 1ì°¨ ë¹ë°í¤(ì´ê²ì íê° ê¸°ê´(510)ì ìë ¤ì ¸ ìì)를 ì´ì©íì¬ ìí¸íëë ê²ì´ ë°ëì§í ê²ì´ë¤.In any case, there must be some mechanism by which the target device 100 can keep track of the current state of the master key list data structure in a clear manner. This can be accomplished by having two "master" lists. The first of these two lists (we call this permanent key list) is maintained by the authority authority 510. This list relates to the "permanent" ownership of the application specified key associated with the target unit 100 in question. The second list has the same importance, but this involves temporary modification of the "permanent" key list data structure. Such modification may be addition to or delete from the list. There is no necessary difference in the implementation of the data structures of the two lists themselves, and an important difference arises in how they are maintained. It is desirable for the target unit 100 to have some way of recovering from the case where data is lost from one or the other of the above lists. This loss may be due to some catastrophic failure or if the information contained in one of the lists is damaged for some reason (simply or maliciously). We will discuss the impact of this "key list corruption" case in later sections. Although it is necessary for the permanent list to be recovered by connection with the authorization authority, it is not necessary (or not desirable) for the authorization authority 510 to be able to recover the temporary key list of the special target device. There are many reasons for this stance, but the main reason is that the temporary key list is likely to be updated much more frequently than the permanent key list and keep the amount of network traffic required between the central authority and the target unit at an absolute minimum. Because I want to. Nevertheless, it is potentially desirable that the permitting authority 510 be able to make modifications to the temporary key list of the special target device for several reasons (some of which are described later). In this case, this list would preferably be encrypted using the primary secret key of the target device (which is known to the authority 510).
ììì ì¸ê¸í ë°ì ê°ì´, ì측 í¤ ë¦¬ì¤í¸ ë°ì´í° 구조ì ìì ì±ì 리ì¤í¸ ìì²´ì í¨ê» ì ì¥ë ë¶í¸í ë©ìì§ ë¤ì´ì ì¤í¸(ëì§í¸ ìëª )를 ì´ì©íì¬ ê²ì¦ë ì ìë¤. ì´ ë©ìì§ ë¤ì´ì ì¤í¸ë¥¼ ìì±í기 ìí´ ì¬ì©ëë ë³´ì ì½ë ë©ì¹´ëì¦ì 구íì ìì ì¹ì ìì ì¤ëª íìê³ , ê·¸ ì 차를 ë¤ì ì¤ëª í íìë ìì ê²ì´ë¤. ì°ë¦¬ë ëí ìì¤ ë°/ëë í¼ìì´ ìë ê²½ì°ì ì구 í¤ ë¦¬ì¤í¸ ë°ì´í° 구조(610)를 복구íë ì ì°¨ì ëíì¬ ì´ë¯¸ ì¤ëª íìë¤. ì·¨ê¸ëì´ì¼ í ì ì¼í ëë¨¸ì§ ì´ìë ìì í¤ ë¦¬ì¤í¸ ë°ì´í° 구조ì ìê° ìì¡´ ë¶ë¶ì ì´ë»ê² í´ìíê³ ìì í¤ ë¦¬ì¤í¸ê° ì¬ì©ë¶ë¥ì¼ë¡ ë ê²½ì°ë¥¼ ì´ë»ê² ë¤ë£° ê²ì¸ê°ì´ë¤.As mentioned above, the integrity of both key list data structures can be verified using an encoded message digest (digital signature) stored with the list itself. The implementation of the security code mechanism used to generate this message digest is described in the section above, and the procedure will not need to be described again. We have also already described the procedure for recovering the permanent key list data structure 610 in case of loss and / or corruption. The only remaining issue to be dealt with is how to interpret the time-dependent part of the temporary key list data structure and how to deal with the case where the temporary key list is disabled.
ìì temporary ë¼ì´ì¼ì¤license ì´ì  Previous
ì´ê²ì íìì¤í¬í íë(230)ì ì¬ì©ì´ ê°ì¥ ì¤ìí ë³´ì íë¡í ì½ì ì¹ì ë¤ ì¤ íëì´ë¤. ììì ì¤ëª í ê²ì²ë¼, ìì í¤ ë¦¬ì¤í¸ ë°ì´í° 구조ë 목í ì¥ì¹ì ì구 í¤ ë¦¬ì¤í¸ì ì íí ëì¼í ë°©ë²ì¼ë¡ 구ì±ëë¤. ê·¸ë¬ë, ììê°ìë ëª ê°ì§ ì°¨ì´ê° ìë¤. 첫ë²ì§¸ ì°¨ì´ë ìì í¤ ë¦¬ì¤í¸ê° 목í ì¥ì¹ì ë¹ë°í¤(104) ì¤ì íë를 ì´ì©íì¬ ì ì¬ì ì¼ë¡ ìí¸íë ì ìë¤ë ê²ì´ë¤. íê° ê¸°ê´(510)ì´ ì ì íê²½ íìì ì´ ë°ì´í° 구조를 ì¬êµ¬ì±í íìê° ì기 ë문ì, 목í ì¥ì¹ì ì´ë¤ í¤ë¥¼ ì´ì©íì¬ ë°ì´í° 구조를 ìí¸íí ì§ë ëª ìì ì¼ë¡ ê´ê³ê° ìë¤. ê·¸ë¬ë, ì´ ë¦¬ì¤í¸ê° 목í ì¥ì¹ì 1ì°¨ ë¹ë°í¤ë¥¼ ì´ì©íì¬ ëí ìí¸íëìë¤ë©´ íê° ê¸°ê´(510)ì ëíì¬ ì ì¬ì ì¼ë¡ ì¬ì©ë ê²ì´ë¤. ì´ê²ì ì´ì ë íê° ì·¨ìì í¨ê» ì´ë£¨ì´ì ¸ì¼ íê³ , ê·¸ ìí©ì ë¤ì ì¹ì ìì ì¤ëª í ê²ì´ë¤.This is one of the sections of the security protocol where the use of the timestamp field 230 is of utmost importance. As described above, the temporary key list data structure is constructed in exactly the same way as the permanent key list of the target device. However, there are some differences between the two. The first difference is that the temporary key list can potentially be encrypted using one of the target device's secret keys 104. Since the authorization authority 510 does not need to reconstruct this data structure under normal circumstances, it does not explicitly matter which key of the target device is used to encrypt the data structure. However, this list would potentially be used for the authorization authority 510 if it was also encrypted using the primary secret key of the target device. The reason for this has to be done with revoke of permission, the situation will be explained in later section.
ìì í¤ ë¦¬ì¤í¸ì ì구 í¤ ë¦¬ì¤í¸ ê°ì ëë²ì§¸(ë° ë ì¤ìí) ì°¨ì´ë ê°ì¥ ìµê·¼ì ìì í¤ ë¦¬ì¤í¸ ë°ì´í° 구조ì ê´ë ¨ë íìì¤í¬í ê°(230)ì ë³µì¬ë³¸ì´ ëí 목í ì¥ì¹(100) ë´ì ì ì¥(ì¦ ì¨ì¹©)ëë¤ë ê²ì´ë¤. ì´ ë ì§ì¤í°ë ìíí¸ì¨ì´ íë ê°ë¥ì´ ìëê³ , ë³´ì ë¸ë¡ì ì¼ë¶ì´ê¸° ë문ì ë³´ì ì½ëì ìí ë®ì´ì°ê¸°ë§ ê°ë¥íë¤. ì´ ë ì§ì¤í°ì ê°ì ìì í¤ ë¦¬ì¤í¸ ë°ì´í° êµ¬ì¡°ê° ì´ë»ê²ë ìì¤ëê³ ë°/ëë í¼ìë ê²½ì°ì 무ìì í ê²ì¸ì§ë¥¼ ê²°ì í기 ìí´ ì¬ì©ëë¤. ì°ë¦¬ë ê·¸ ì 차를 ì´ ì¹ì ì ë·ë¶ë¶ìì ì¤ëª í ê²ì´ë¤.The second (and more important) difference between the temporary key list and the permanent key list is that a copy of the time stamp value 230 associated with the most recent temporary key list data structure is also stored (ie on chip) in the target device 100. This register is not software readable and is part of the security block so it can only be overwritten by a security code. The value of this register is used to determine what to do if the temporary key list data structure is somehow lost and / or corrupted. We will explain the procedure later in this section.
ìì í¤ ë¦¬ì¤í¸ì ì구 í¤ ë¦¬ì¤í¸ ê°ì ëë¤ë¥¸ ì°¨ì´ë 목í ì ë(100)ì´ í¹ì í¤ì ìì ê¶ì ê·¸ ì구 리ì¤í¸ë¡ë¶í° ë¤ë¥¸ ì ë(100)ì ìì 리ì¤í¸ë¡ (ììë¡) ì´ì í ì ìì§ë§, (ì¬ë°ë¥´ê² ëìíë) ì¥ì¹ë í¹ì í¤ì ìì ê¶ì ê·¸ ìì í¤ ë¦¬ì¤í¸ë¡ë¶í° ììì ë¤ë¥¸ í¤ ë¦¬ì¤í¸ë¡ ì´ì í ì ìë¤ë ê²ì´ë¤. ì´ê²ì ë¬¼ë¡ ë¤ë¥¸ ì ëì ìì í¤ ë¦¬ì¤í¸ë¿ë§ ìëë¼ ëª©í ì¥ì¹(100) ìì ì ì구 í¤ ë¦¬ì¤í¸ë ëí í¬í¨íë¤. ì´ê²ì ì구 ìì ìë§ì´ ì´ë¤ ì¥ì¹ê° ì¸ì ììì í¹ì í¤ë¥¼ "ì°¨ì©"íëë¡ íì©ëëì§ ê²°ì í ì ìë¤ë ì미ì´ë¤. ê·¸ë¬ë, ì´ "ëì¬" 기ê°ì ë§ì°íê² ë ì ìë¤ë ì ì 주목íë¤(ì´ í¸ëìì ì íê° ê¸°ê´ì ì ì´í íììì´ ì¤íë ì ìë¤). ì´ "ì구 ëì¬" í¹ì§ì íëì ëì§í¸ ì ìê¶ ì ì´ ì ë³´(Copyright Control Information; CCI) ìì¤í ì ì¼ë¶ì¸ íì¤ "1í ë³µì¬(Copy Once)" ê¸°ë¥ íìì¡°ê±´ê³¼ ë±ê°ì´ë¤.Another difference between the temporary key list and the permanent key list is that the target unit 100 can transfer (temporarily) ownership of a special key from its permanent list to a temporary list of another unit 100, but (works correctly). The device cannot transfer ownership of a special key from its temporary key list to any other key list. This of course also includes the temporary key list of the other unit as well as the permanent key list of the target device 100 itself. This means that only the permanent owner can determine which device is allowed to "borrow" any special key. However, note that this "loan" period may become vague (this transaction may be executed without the need to contact the licensing authority). This "permanent rental" feature is equivalent to the standard "Copy Once" functionality requirement that is part of the modern Digital Copyright Control Information (CCI) system.
ì´ì ë 167ì 참조íë©´, ìì "í¤ ì²´í¬ìì" ì 차를 ëíë´ë ìì¸í íë¦ëê° ëìëì´ ìë¤. "í¤ ìì ê¶" ì´ì ì ì°¨ë ëìê´ì¼ë¡ë¶í° ìì ë³µì¬ë³¸ì ì²´í¬ììíë ì ì°¨ì ì´ë ì ë ì ì¬íë¤. "ì°¨ì©ì"(720)ê° ì구 ìì ì("ëì¬ì"(710))ë¡ë¶í° í¹ìí ì í리ì¼ì´ì ì§ì í¤(550)ì ìì ì¬ì©ì ìì²íë©´, ëì¬ì(710)ë 먼ì ì기 í¹ì í¤ì ì¬ì©ì í¤ ì²´í¬ìì íì ì²ë¦¬ ëìì ê¸ì§íë ê°±ì ë ìì í¤ ë¦¬ì¤í¸ë¥¼ ë¨ë ì¼ë¡ ë°ìíë¤. ì´ ëìì íë ì´ìì ì°¨ì©ì(720) ì ëì´ ëì¼í í¤ë¥¼ ìì²íë ê²ì ê¸ì§íë¤. ëì¬ì ì ë(710)ì ìì í¤ ë¦¬ì¤í¸ì ì¡´ì¬íë "ì²´í¬ìì í¤"ë ììì í¹ì í¤ì ëí ì¡ì¸ì¤ë¥¼ ì ì´íë ì í¸ê¸°(semaphore)ë¡ì ì í¨íê² ì¬ì©ëë¤. ê·¸ë¬ë, í¤ê° "구ì ìí"ë¡ ìë ì´ê¸° ìê°ëì ë¹êµì ì§§ì 기ê°ì¼ë¡ ì íëì´ì¼ íë¤. ì´ê²ì ì°¨ì©ì(720) ì¥ì¹ê° í¹ì í¤ì ëí ì¡ì¸ì¤ë¥¼ ì¥ê¸°ê° ëì ìì²íê³ ê·¸ëì í¹ì í¤ì ì¬ì©ì ë¶ê³µì íê² ë ì íë ê²ì¼ë¡ë¶í° ì´ë¤ ì´ì ë¡ í¸ëìì ì ìì±í ì ìë ê²½ì°ë¥¼ ë°©ì§í기 ìí ê²ì´ë¤. ì기 ë¹êµì ì§§ì ì²´í¬ìì íì ë¨ê³ íìììì ëì¬ì ì ë(710)ì ëííì¬ "ìë¹ì¤ ê±°ë¶" 공격ì ë±ê°ë¬¼ì ì¤ì¹íë ¤ê³ íë ì ìì ì¥ì¹ì ëí ì¸ììì ëí ëìì´ ëë¤. ì¬ì¤, ëì¬ì ì ë(710)ì ìì ì "ì¹ì¸ë ì°¨ì©ì" 리ì¤í¸ì ìë ì¥ì¹ë¡ë¶í°ì ìì²ì´ ìë ê²½ì° ëë ê·¸ë¬í ì ëë¤ì ììì íëê° ìì ìê° ë´ì ë무 ë§ì ìì²ì íë ¤ê³ ìëíë ê²½ì° ê·¸ ìì²ì ì íì ì¼ë¡ 무ìí ì ìë¤. ì´ ìì ë¸ë¡ì´ í¤ì ì¡´ì¬íë ì íí ìê° ê¸¸ì´ë ì¤ìíì§ ìì§ë§, ììì 주ì´ì§ ì²´í¬ìì ì ì°¨ê° ìì±ë ì ìëë¡ ì¶©ë¶í 길ì´ì¼ íë¤. ë¤í¸ìí¬ í¸ëí½ ëë ë기ìê°ì´ ëì ìê°ëììë ì´ ê¸°ê°ì ì°ì¥í ì ìë¤.Referring now to FIG. 167, a detailed flow diagram illustrating a temporary "key check out" procedure is shown. The "key ownership" transfer process is somewhat similar to the process of checking out a copy of a book from a library. When the "borrower" 720 requests the temporary use of a special application- specific key 550 from the permanent owner ("rent" 710), the lender 710 first checks the use of the special key during the key checkout negotiation process. Generates a list of updated temporary keys that are forbidden. This operation prohibits one or more borrower 720 units from requesting the same key. The "checkout key" present in the temporary key list of the lender unit 710 is effectively used as a semaphore to control access to any special key. However, the initial amount of time that the key is in the "bound state" should be limited to a relatively short period of time. This is to prevent the borrower 720 device from requesting access to a special key for a long time and thus unable to complete a transaction for some reason from unfairly monopolizing the use of the special key. The relatively short checkout negotiation phase timeout is also helpful in the fight against malicious devices attempting to install the equivalent of a "denial of service" attack against the lender unit 710. In fact, the lender unit 710 may selectively ignore the request if there is a request from a device that is not on its "approved borrower" list, or if any one of those units attempts to make too many requests within a certain amount of time. Can be. The exact length of time that this temporary block is in the key is not important, but it must be long enough for any given checkout procedure to be completed. This period can be extended in times of high network traffic or latency.
주ì´ì§ í¤ì íë ì´ìì ë³µì¬ë³¸ì´ ëìì ì²´í¬ììë ì ìë ê²½ì°ì, ëì¬ì ì¥ì¹(710)ì ìì í¤ ë¦¬ì¤í¸ ë´ì ì ë¹í íë를 ì¬ì©íì¬ ì¼ë§ë ë§ì í¤ ë³µì¬ë³¸ì´ ììì í ìì ìì ì²´í¬ììëëì§ë¥¼ íìí ì ìë¤ë ì ì 주목íë¤. ì°¨ì©ì(720)ì ëì¬ì(710)ê° ì£¼ì´ì§ í¤ì ëí í¹ì ì²´í¬ìì 기ê°ì íìíìì¼ë©´, ëì¬ì(710)ë í¤ì ìí¸íí ë³µì¬ë³¸(740)ì ì°¨ì©ì(720)ìê² ë³´ë¸ë¤. ì´ ìí¸íë ëì¬ì ì¥ì¹(710)ìê²ë§ ìë ¤ì ¸ ìë ìì ë¹ë°í¤(730)를 ì´ì©íì¬ ì¤íëë¤. ì°¨ì©ì(720)ê° ìí¸í í¤ì ì íí ìë ¹ì (ìí¸í ë©ìì§ë¡ë¶í° ê³ì°ë ë©ìì§ ë¤ì´ì ì¤í¸ì ìí´) ì¹ì¸í ê²½ì°, ëì¬ì(710)ë ì²´í¬ìì í¤ì "ëì¬ ê¸°ê°"ì ì°ì¥íê³ ìì ë¹ë°í¤(730)를 ì°¨ì©ì ì¥ì¹(720)ì ë³´ë¸ë¤. ì´ ëì¬ ì²ë¦¬ì ìµë 기ê°ì íë¡í ì½ì ëìì ì¤ìíì§ ìê³ ì´ ê°ì ì íì ìì´ì ííì¬ì ¸ì¼ í ëª ê°ì§ êµíì¡°ê±´ì´ ìë¤. ì°ë¦¬ë ê·¸ë¬í í¹ìí ì´ì를 ì´ ì¹ì ì ë·ë¶ë¶ìì ì¤ëª í ê²ì´ë¤. ììì ì¤ëª í ììì, ì°ë¦¬ë "ì°¨ì©ì(720)"ì "ëì¬ì(710)" ì¥ì¹ê° í¤ë§ë¤ ì²´í¬ìì 기ê°ì ì¤ì 길ì´ë¥¼ íìí ì ìë ê²ì¼ë¡ ê°ì íì§ë§, ì´ê²ì íë¡í ì½ì íìì¡°ê±´ì´ ìëë¤.If one or more copies of a given key can be checked out at the same time, the appropriate field in the temporary key list of the lender device 710 can be used to indicate how many copies of the key are checked out at any one point in time. Pay attention to If borrower 720 and lender 710 negotiate a particular checkout period for a given key, lender 710 sends an encrypted copy 740 of the key to borrower 720. This encryption is performed using a temporary secret key 730 known only to the lender device 710. If borrower 720 authorizes the correct receipt of the encryption key (by message digest calculated from the encryption message), lender 710 extends the ârental periodâ of the checkout key and borrows temporary temporary key 730. To device 720. The maximum duration of this loan process is not critical to the operation of the protocol and there are some exchange conditions that must be made in choosing this value. We will discuss those special issues later in this section. In the example described above, we assume that the " borrower 720" and " loan 710" devices can negotiate the actual length of the checkout period per key, but this is not a requirement of the protocol.
ì°¨ì©ì(720) ëë ëì¬ì(710)ì ìì í¤ ë¦¬ì¤í¸ê° ê°±ì ëë ë°ë¡ ìì ìì ìì, ì´ ìë¡ì´ ìì 리ì¤í¸ì ê´ë ¨ë íìì¤í¬í ê°(230)ì ë³µì¬ë³¸ì´ 목í ì¥ì¹(100)ì ë¹íë°ì± ííë¡ ì ì¥ëë¤. ê·¸ ìì ìì, ìì í¤ ë¦¬ì¤í¸ ë°ì´í° 구조ì ìí¸í ë²ì ì´ ì¨ë³´ë NVRAM, íëì ROM ëë ì¼ë¶ íë ëì¤í¬(750)ì ë°±ì íì¼ ì¸ë¶ì ê°ì ë©ëª¨ë¦¬ì ìì íê² ê¸°ë¡ë ì ìë¤(ëë ìì ì ë¤ë¥¸ ë ì구ì ì¸ ìì¹ì ì ì¥ë ì ìë¤). ìì í¤ ë¦¬ì¤í¸ë ì ì¬ì ì¼ë¡ íë ê°ë¥íê³ ì구 í¤ ë¦¬ì¤í¸ë³´ë¤ í¨ì¬ ë ë¹ë²íê² ê°±ì ë기 ë문ì, ì´ ë¦¬ì¤í¸ë 목í ì ëì ì ìí ì¡ì¸ì¤ëë ê²ì´ ë°ëì§íê³ , ê·¸ëì ì´ ë¦¬ì¤í¸ë ì¡ì¸ì¤ ë기ìê°ì´ ë¹êµì ì§§ì ì ì´ë íëì ìì¹ì ì ì¥ëë ê²ì´ ê¶ì¥ëë¤(ê·¸ë¬ë ì´ê²ì íë¡í ì½ì ì¤ì íìì¡°ê±´ì´ ìëë¤). ë°ë©´ì, ì ë ¥ ê³ ì¥ì ìí´ ì¤ê° ìê°ë ëì 목í ì¥ì¹(100)ì ê¸°ë¥ ìì¤ì ì ì¬ì ì¼ë¡ ì¼ê¸°í ì ì기 ë문ì, ì기 리ì¤í¸ë¥¼ ì ì¥íë ì¥ìë ì´ë¤ íë°ì± ê¸°ìµ ë§¤ì²´ê° ìë ê²(DRAM ë±)ì´ ê¶ì¥ëë¤. ì°ë¦¬ë ì´ ì´ìì ëí ì¸ë¶ë¥¼ ì´ ì¹ì ì ë¤ìì ì¤ëª í ê²ì´ë¤.At the point immediately before the borrower 720 or lender 710's temporary key list is updated, a copy of the timestamp value 230 associated with this new temporary list is stored in the target device 100 in a non-volatile form. At that point, an encrypted version of the temporary key list data structure can be securely written to memory, such as onboard NVRAM, flash ROM, or outside a backup file of some hard disk 750 (or to be stored in some other more permanent location). Can be). Since the temporary key list is potentially readable and updated much more frequently than the permanent key list, it is desirable that this list be accessed quickly in the target unit, so that the list is stored in at least one location with relatively low access latency. It is recommended (but this is not a real requirement of the protocol). On the other hand, it is recommended that the location for storing the list is not any volatile storage medium (DRAM, etc.), as it could potentially cause a malfunction of the target device 100 for an intermediate amount of time due to a power failure. We will discuss the details of this issue later in this section.
í¹ì í¤ì ëí ì²´í¬ìì 기ê°ì´ ë§ë£ëë©´, ì°¨ì©ì(720) ë° ëì¬ì(710) ì¥ì¹ë ê·¸ë¤ ê°ê°ì ìì í¤ ë¦¬ì¤í¸ ë°ì´í°ë² ì´ì¤ë¥¼ ë 립ì ì¼ë¡ ê°±ì í ì ìë¤. ë°ë¼ì, ì°¨ì©ì(720)ê° ê³ì° ëì í¹ì í¤ë¥¼ ëë ¤ì£¼ê¸° ìí´ ëì¬ì(710) ì¥ì¹ì ì ì´í íìë ìë¤. ì´ê²ì ì°¨ì©ì(720)ì ëì¬ì(710) ì¥ì¹ê° ë©ë¦¬ ë¨ì´ì ¸ ìë ê²½ì°ì ì¤ìí í¸ë¦¬ ììì´ë¤. ë¬¼ë¡ , ì´ ëìì ë³´ìì±ì í¤ íìì¤í¬í 기ë¡ì ìì± ë° ì ì´í기 ìí´ ì¬ì©íë ì¨ì¹© í´ëë¤ ê°ì ë§¤ì° ë¨ë¨í ìê´ì±ì ìì¡´í ì ìë¤. ë°ë¼ì, ìê°/ë ì§ í´ëì´ ë³´ì ìì¤í ì íµí© ë¶ë¶ì¼ë¡ ëì´ì¼ íê³ , ê·¸ëì ì¤ì ìë²ìì í¸ëìì ì ìí´ ë®ì´ì°ê¸° ë ì ìì´ì¼ íë¤. ëí, í´ëë¤ì ì ììë ì¬ì©ìê° ë´ë¶ íìì¤í¬í ê°(230)ì ìì íë ¤ê³ íë ê²½ì°ì ë¶ì í ë³ê²½ì ì ííëë¡ ë° íìì ìì¤í ì ë ¥ ì¥ì ê° ë°ìí ê²½ì°ì ì´ìë¨ì ì ìëë¡ ì¶©ë¶í ê°íê² ì¤ê³ëì´ì¼ íë¤. ì´ í´ëì´ ë°°í°ë¦¬ì ìí´ ì ë ¥ì´ ê³µê¸ëë ê²½ì° ë°°í°ë¦¬ê° ì ê±°ëê±°ë ìê° ê²½ê³¼ì ë°ë¼ ë°°í°ë¦¬ ì ë ¥ì´ ìì´ì§ë ê²ì ììí ì ì기 ë문ì, ìì¤í ì íê° ê¸°ê´ê³¼ì ìì í ìí¸ìì©ì ìí´ í´ëì´ ì ì¬ì ì¼ë¡ ì¬ììëê±°ë 리ì¸í¸ë ì ìëë¡ íë ë°©ë²ì¼ë¡ ì¤ê³ëì´ì¼ íë¤.Once the checkout period for the special keys expires, the borrower 720 and lender 710 devices can update their respective temporary key list databases independently. Thus, the borrower 720 does not need to contact the lender 710 device to return the special key to be calculated. This is an important convenience factor when the borrower 720 and lender 710 devices are far apart. Of course, the security of this operation may rely on very tight correlations between on-chip clocks used to generate and control key timestamp records. Thus, the time / date clock must be an integral part of the security system, so that it can be overwritten by a transaction with the central server. In addition, the clocks must be designed strong enough to resist a fraudulent change in case a malicious user attempts to modify the internal timestamp value 230 and to survive in the event of a system power failure normally. Because it can be imagined that the battery is removed or loses battery power over time when this clock is powered by the battery, the system could potentially restart or reset the clock by a safe interaction with the licensing authority. It must be designed in such a way as to enable it.
ë°ë¼ì, ì°ë¦¬ë í¹ì ì í리ì¼ì´ì ì§ì í¤(550)ì ìì ê¶ì´ íëì ì ëì¼ë¡ë¶í° ë¤ë¥¸ ì ëì¼ë¡ ììë¡ ì´ì ë ì ìë ìí©ì ì¤ëª íìë¤. "ëì¬ ê¸°ê°"ì ëìì, ì°¨ì©ì(720) ì ëê³¼ ëì¬ì(710) ì ëì ìµì´ ìì ìë¡ì í¤ì "ë³µê·"를 ë°ìíëë¡ ê·¸ë¤ì ìì í¤ ë¦¬ì¤í¸ ë°ì´í° 구조를 ê°±ì í ì ìë¤. ì´ ì ì°¨ë ì측 ì ëìì ë 립ì ì¼ë¡ ìíë ì ìê³ , ë°ë¼ì ë ì¥ì¹ ê°ì ì´ë¤ ìí¸ìì©ì íìë¡ íì§ ìëë¤ë ì ì 주목íë¤.Thus, we have described a situation in which ownership of the special application designation key 550 may be temporarily transferred from one unit to another. At the end of the "rental period", the borrower 720 unit and the lender 710 unit may update their temporary key list data structure to reflect the "return" of the key to the original owner. Note that this procedure can be performed independently in both units and therefore does not require any interaction between the two devices.
ì´ì , íë ì´ìì í¤ê° "ì²´í¬ìì" íë ëì ëë "ëì¬ì¤"ì¸ ëì íë ëë ë¤ë¥¸ ìì í¤ ë¦¬ì¤í¸ ë°ì´í° êµ¬ì¡°ê° í¼ì ë°/ëë ìì¤ë ê²½ì°ë¥¼ ì¤ëª íë¤. "ëì¬ì(710)" ì ë 측ìì, ììì í¤ê° ì²´í¬ììë ë, í´ì¼ í 첫ë²ì§¸ ì¼ì "ëì¬" 기ê°ì ëì ê²°ì íë ê²ì´ë¤. ì´ ê°ì ëì¬ ê¸°ê°ì ì§ì기ê°ì íì¬ ìê°/ë ì§ íëì ê°ì ê°ì°í¨ì¼ë¡ì¨ ëª ë°±íê² êµ¬ì±ëë¤. ì´ ìê°/ë ì§ ê°ì ê·¸ ë¤ìì ì¥ì¹ì ìì í¤ ë¦¬ì¤í¸ê° ë§ì§ë§ì¼ë¡ ê°±ì ë ê²°ê³¼ë¡ì ì ì¥ë ê°ê³¼ ë¹êµëë¤. ìë¡ì´ ê°ì´ ì¤ëë ê°ë³´ë¤ ë í¬ë©´(ë ë¤ì ìì¼ë©´) ìë¡ì´ ê°ì´ ì¤ëë ê° ëì ì¼ë¡ ë®ì´ì°ê¸° ëë¤. "ì°¨ì©ì(720)" 측ìì, ì기ì ëì¼í ì²ë¦¬ê° ì¬ì©ëê³ , ê·¸ëì ê·¸ ê²°ê³¼ë ììì 주ì´ì§ 목í ì ëì ìì´ì, ìì í¤ ë¦¬ì¤í¸ íìì¤í¬íê° íì í¹ì ì ë(100)ì ìì í¤ ë¦¬ì¤í¸ì ì¼ë¶ë¡ì ì ì¥ë ììì íìì¤í¬í ì¤ ìµì ì ê²ì¼ë¡ ëë¤.The case where one or the other temporary key list data structure is corrupted and / or lost while one or more keys are "checked out" or "rental" is described. On the " loan 710" unit side, when any key is checked out, the first thing to do is to determine the end of the "loan" period. This value is explicitly constructed by adding the duration of the rental period to the value of the current time / date field. This time / date value is then compared with the value stored as the result of the last update of the device's temporary key list. If the new value is greater than the old one (more later), the new value is overwritten instead of the old one. On the " borrower 720 " side, the same processing as above is used, so the result is that for any given target unit, any temporary key list timestamp is always stored as part of the temporary key list of the special unit 100. The newest of the timestamps is taken.
ë§ì¼ ì ë(100)ì ìì í¤ ë¦¬ì¤í¸ê° ìì¤ëê±°ë ëë ë¤ë¥¸ ë°©ìì¼ë¡ ë¶ì ì íê² ìì ëë©´, ìì í¤ ë¦¬ì¤í¸ì ì구 리ì¤í¸ ììë ì기 "ìµì íìì¤í¬í" ê°ì´ ë§ë£ëë ìì (ì¤ì ë¡ë "íììì" 기ê°)ê¹ì§ ëì¤ìì´ë¸ëë¤. ê·¸ ìì ìì, ì ëì ì구 í¤ ë¦¬ì¤í¸ë¥¼ ì¬ì©íë ê²ì¼ë¡ ëëìê° ì ìê³ ìë¡ì´ ìì í¤ ë¦¬ì¤í¸ë¥¼ ì¬êµ¬ì±íë ì²ë¦¬ë¥¼ ììí ì ìë¤.If the temporary key list of the unit 100 is lost or otherwise modified inappropriately, both the temporary key list and the permanent list are up to the point at which the "latest timestamp" value expires (actually a "timeout" period). Is disabled. At that point, the unit can go back to using the permanent key list and begin the process of reconstructing the new temporary key list.
ë°ë¼ì, ë§ì¼ ì¥ì¹ì ìì 리ì¤í¸ê° ë¶ì íê² ë³ê²½ëê±°ë ìì ëë©´, ì ëì íììì 기ê°ì´ ë§ë£ë ëê¹ì§ í¨ê³¼ì ì¼ë¡ ë¹ëì ìíë¡ ëë¤. ì´ íììì ì ì°¨ë ë¶íìíê² êµ¬ìíë ê²ì¼ë¡ ë³´ì´ì§ë§, ì´ê²ì ì´ë¤ ì ìì ì¸ ëìì ê²°ê³¼ë¡ì ëë í¤ë¥¼ íëì ì ëì¼ë¡ë¶í° ë¤ë¥¸ ì ëì¼ë¡ ì´ì íë ëìì ë°ìí ì ìë ì´ë¤ ëì°í ê³ ì¥(glitch)(ì ë ¥ì´ ëê°ê±°ë ë¤í¸ìí¬ ì ìì´ ë¤ì´ëë ê² ë±) ë문ì ìì ì ìë ììì í¹ì ì í리ì¼ì´ì ì§ì í¤ì ë¤ìì ë³µì¬ë³¸ììì ì ì¬ì ì¸ ë¬¸ì ì ì í¼í ì ìê² íë¤. ëí, ìì í¤ ë¦¬ì¤í¸ ë°ì´í° 구조를 ë¶ì íê² ë³ê²½í ê²°ê³¼ë¡ì ì¬ê°í ìí¥ì ë°ì ì ì¬ì±ì 모ë ë ì êµí 공격ìì ìí ì¤íì ì ì§íëë° ëìì´ ëì´ì¼ íë¤.Thus, if the temporary list of devices is tampered with or deleted, the unit is effectively inactive until the timeout period expires. This timeout procedure appears to be unnecessarily constrained, but this may result in some sudden glitches (power outages or network connections) that may occur as a result of some malicious operation or during the transfer of keys from one unit to another. This can avoid potential problems with multiple copies of any special application-specified keys that might be due to such a crash. In addition, the potential to be severely affected as a result of fraudulently altering the temporary key list data structure should help prevent execution by any more sophisticated attacker.
ì´ ì ìì íë¡í ì½ì ëìì ê°íí기 ìí´ ì¬ì©ë ì ìë ë¤ìì ì íì ì¸ ì¶ê°ì í¹ì§ë¤ì´ ìë¤. ê·¸ë¬í ê°ë¥í ìµì ì¤ì íëë ìí¸í í¤ ë¦¬ì¤í¸ ë°ì´í° 구조 ì¤ì ì´ë íë(ëë ìì)ë¡ë¶í° ë°ìë ë¶í¸í ë©ìì§ ë¤ì´ì ì¤í¸(ëì§í¸ ìëª )를 목í ì¥ì¹ì ì¨ì¹© ë³´ì ì¹ì ì ì ì¥ë ê°ë¤ì ì¶ê°íë ê²ì´ë¤. ëì§í¸ ìëª ì ë³µí¸ë¡ë¶í° ë°ìíë MAC ê°ì ì ì²´ ë³µí¸ ì²ë¦¬ë¥¼ íµê³¼í íììì´ ììì í¹ì í¤ ë¦¬ì¤í¸ì ì í¨ì±ì ì ìí ê²ì¦í기 ìí´ ì¬ì©ë ì ìë¤. ê·¸ë¬ë, ë¤ì¤í°ë í¤ ë¦¬ì¤í¸ë¥¼ ì¦ê°ìí¤ë 문ì ë ì´ ë³µí¸ ì²ë¦¬ê° ë¹ìí¸í í¤ë¥¼ ìµì¢ ì ì¼ë¡ ìì±í기 ìí´ ìì ìì ìì ë³µì í ìíëì´ì¼ íë¤ë ê²ì ì미íê³ , ë°ë¼ì ëì§í¸ ìëª ì´ ì¨ì¹©ì¼ë¡ ì ì¥ëë ê²ì íë¡í ì½ì ëìì ì¤ìí ê²ì´ ìëë¤.In this respect there are a number of optional additional features that can be used to enhance the operation of the protocol. One such possible option is to add the encoded message digest (digital signature) generated from either (or both) of the encryption key list data structure to the values stored in the on-chip security section of the target device. The MAC value resulting from the decryption of the digital signature can be used to quickly validate the validity of any special key list without having to go through the entire decryption process. However, the problem of increasing the nested key list means that this decryption process must be performed a plurality of times at a given point in time to finally generate an unencrypted key, so that the digital signature is stored on-chip, which is important for the operation of the protocol. It is not.
ì¦ë(enhancement)를 ìí ë¤ë¥¸ íëì ê°ë¥ì±ì ì¨ì¹© íìì¤í¬í ê°ì íëì© ì ì¥í기보ë¤ë ìì¼ë¡ ì ì¥íë ê²ì´ë¤. ì¶ê°ì ì¸ íìì¤í¬íë ìì í¤ ë¦¬ì¤í¸ê° ê°±ì ëì´ì¼ í ë ê°ì¥ ì´ë¥¸ (ë¤ì) ìê°ì íìí기 ìí´ ì¬ì©í ì ìë¤. ì´ê²ì 목í ì¥ì¹(100)ê° ë¦¬ì¤í¸ë¥¼ ì§ìì ì¼ë¡ ì²´í¬í ì ì기 ë문ì(ì´ê²ì ë³µí¸ ì²ë¦¬ì ìíì ìë°íë¤) ê·¸ ìì í¤ ë¦¬ì¤í¸ë¥¼ ê°ì í íìê° ìì ë를 ë ì½ê² ê²°ì í ì ìê² íë¤. ë¹ë¡ ì´ í¹ì§ì´ ë§¤ì° ì ì©íì§ë§, ì ëì´ ì´ íë¡í ì½ì ì¤íí ì ìê² íë 기본ì ì¸ íìì¡°ê±´ì ìëë¤. ë§ì¼ ì기 ì 2 íìì¤í¬í를 ë´í¬í ìì¤í ì´ êµ¬íëë©´, 2ê°ì íìì¤í¬íê° ì´ë¤ ì´ì ë¡ "ë기 íê´´(out of sync)"ë¡ ëë ê²½ì°ì í¼ëì ì¼ì¼í¬ ê°ë¥ì±ì´ ìë¤. ê·¸ë¬í ì ì¤ì íëë íëì íìì¤í¬íê° ê¸°ë¡ë ì§íì´ê³ ëë²ì§¸ íìì¤í¬íê° ê°±ì ë기 ì ì ìì ìì ëì°í ì ë ¥ ê³ ì¥ì´ ë°ìí ê²½ì°ì´ë¤.Another possibility for enhancement is to store on-chip timestamp values in pairs rather than one by one. An additional timestamp can be used to indicate the earliest (next) time when the temporary key list should be updated. This makes it easier to determine when the target device 100 needs to revise its temporary key list since it cannot continuously check the list (this entails performing a decryption process). Although this feature is very useful, it is not a basic requirement for the unit to implement this protocol. If a system incorporating the second timestamp is implemented, there is a possibility of confusion if the two timestamps become " out of sync " for some reason. One such example is when a sudden power failure occurs shortly after one timestamp is written and before the second timestamp is updated.
ë¤ë£¨ì´ì¼ í ìµì¢ ì´ìë ì기 ìì í¤ ë¦¬ì¤í¸ íìì¤í¬íì ê°ì ëí ìµì ë° ìµë íê³ê° 무ìì´ë íë 문ì ì´ë¤. íí¸ì¼ë¡, ìµë "ìì ëì¬ ê¸°ê°"ì ë í° íê³ë í¹ì ë°ì´í° ì í리ì¼ì´ì (ëë 미ëì´ ì¤í¸ë¦¼)ì ì¬ì©ê¶ì´ ìë¹í 긴 기ê°ëì íëì ì ëì¼ë¡ë¶í° ë¤ë¥¸ ì ëì¼ë¡ ì´ì í ì ìê² íë¤. ì´ê²ì ì¬ì©ìê° ë¯¸ëì´ ì¤í¸ë¦¼ì ìì ê¶ì ìì ì "í ì ë"ì¼ë¡ë¶í° í´ëì© ì¥ì¹ë¡ ì´ì íê³ ì íë ê²½ì°ì ì ì¬ì ì¼ë¡ ì¬ì©í ì ìë¤. 긴 "ì²´í¬ìì 기ê°"ì ê°ì§ë©´, ì¬ì©ìê° ìµì´ì "ëì¬ì" ì ë(710)ê³¼ ì ì´í íììì´ ì기 ì²´í¬ìì 기ê°(ê·¸ ê´ë ¨ ìì í¤ì í¨ê»)ì ê°ì§ í´ëì© ì¥ì¹ë¥¼ ê°ì§ê³ 긴 ì¬íì í ì ìë¤. 긴 "ì²´í¬ìì 기ê°"ì ë¶ë¦¬í ì ì ìµì´ ì ëìì ìì í¤ ë¦¬ì¤í¸ ë°ì´í° 구조ì ì´ë¤ ì¼ì´ ë°ìíë©´ ê·¸ ì ëì´ ì¥ìê° ëì ì ì¬ì ì¼ë¡ ëì¤ìì´ë¸ëë¤ë ê²ì´ë¤.The final issue to be addressed is what is the minimum and maximum limit on the value of the temporary key list timestamp. On the one hand, a larger limit of the maximum "temporary rental period" allows the use of special data applications (or media streams) to transfer from one unit to another for a fairly long period of time. This can potentially be used if the user wishes to transfer ownership of the media stream from his âhome unitâ to the portable device. Having a long " checkout period " allows a user to travel long with a portable device with the checkout period (along with its associated temporary key) without having to contact the original " lender " unit 710. The disadvantage of the long "checkout period" is that if something happens to the temporary key list data structure at the first unit, that unit is potentially disabled for a long time.
ì기 ìµì¢ ì´ìë ì¼ë¶ ì ì± ì½ëê° ì¨ì¹© íìì¤í¬í ë ì§ì¤í°ì ê°ì ì´ë¤ ë¶íì¤í ê°ì¼ë¡ ì¤ì í ì ìë ê²½ì°ì 목í ì ë(100)ìì ì ì¬ì ì¸ ìíì±ì ëí ëíë¸ë¤. ì´ê²ì 공격ì 목í를 ëì¤ìì´ë¸ìí¤ë ê²ê³¼ ì ì¬ì ì¼ë¡ ëë±í ê²ì´ê³ , ë°ë¼ì ì´ íìì¤í¬í ë ì§ì¤í°ì ê°ì "ë³´ì" ì½ë ë¸ë¡ì ìí´ìë§ ê¸°ë¡ë ì ìì´ì¼ íë¤. ëí, ê° ì ëì´ ë³ê°ì ë¹ë°í¤ ì§í©ì ê°ê¸° ë문ì, íëì í¹ì ì ëì ë¹ë°í¤(104) ë°ì´í°ì ë°ê²¬ì ë¶ë¹í ì¥ì¹ê° í©ë²ì ì¥ì¹ë¡ í¨ê³¼ì ì¼ë¡ ê°ì¥í ì ìë ê²½ì°ë¥¼ ì ì¸íê³ ììì ë¤ë¥¸ ì¥ì¹ì ê´ì¬ì ì¼ì¼í¤ì§ ìì ê²ì´ë¤. ì´ ê³µê²© 모ëë ë¤ìì ì ì ê²ì¦ê³¼ ê´ë ¨ë ì´ì를 ë¤ë£¨ë©´ì ì¤ëª íë¤.The final issue also indicates a potential risk in the target unit 100 if some malicious code can set the value of the on-chip timestamp register to some uncertain value. This is potentially equivalent to disabling the target of the attack, so the value of this timestamp register should only be able to be written by a "secure" code block. In addition, since each unit has a separate set of secret keys, the discovery of the secret key 104 data of one special unit is of interest to any other device, except where an unjust device can effectively impersonate a legitimate device. Will not produce. This mode of attack is discussed in the following section, which addresses issues related to identity verification.
ì구ì Permanent ë¼ì´ì¼ì¤license ì´ì  Previous
ì´ ì ì°¨ì ê´ë ¨í ë§ì ììë¤ì ì´ ë¬¸ìì ìì ì¹ì ìì ì¤ëª íìë¤. í¹ì í¤ë¥¼ íëì ì ëì¼ë¡ë¶í° ë¤ë¥¸ ì ëì¼ë¡ ì구ì ì¼ë¡ ì´ì íë 기본 ì²ë¦¬ë ììì ë 5ì ê´ë ¨íì¬ ì¤ëª íìë¤. ë§ì ì ìì ì´ ì ì°¨ë ë°ë¡ ìì ì¹ì ìì ì¤ëª í ê²ì²ë¼ í¤ ìì ê¶ì ìì ì´ì íë ì ì°¨ì 본ì§ì ì¼ë¡ ì ì¬íë¤.Many elements of this procedure are described in the earlier sections of this document. The basic process of permanently transferring a particular key from one unit to another has been described with reference to FIG. 5 above. In many respects, this procedure is essentially similar to the procedure for temporarily transferring key ownership, as described in the previous section.
2ê°ì ì ì°¨ ê°ì ì¤ìí ì°¨ì´ì ì ì구 ì´ì ì´ ìì ì´ì ë³´ë¤ ì²ë¦¬ê° ë ê°ë¨íê³ ì구 í¤ ìì ê¶ ì´ì ì ì°¨ë íê° ê¸°ê´(510)ê³¼ 목í ì ë(100)ì ìí¸ìì©ì íì©í´ì¼ íë¤ë ê²ì´ë¤. ì구 ì´ì ì²ë¦¬ê° ë ê°ë¨í ì´ì ë ìì í¤ ì²´í¬ìì ì ì°¨ììì ì íì¡°ê±´ì¸ ì²´í¬ìì ìê° ê¸°ê° íìì ì구 ì´ì ì²ë¦¬ìì ì구íì§ ìëë¤ë ì¬ì¤ì ìë¤. ì구 ì´ì 기ë¥ì´ íê° ê¸°ê´(510)ê³¼ 목í ì ë(100) ê°ì ìí¸ìì©ì íì©íë ì´ì ë ê°±ì ë í¤ ë¦¬ì¤í¸ ë°ì´í° êµ¬ì¡°ê° í¸ëìì ì ì ëìì ì¬êµ¬ì±ë ì ìì´ì¼ íë¤ë ì¬ì¤ì 기ì¸íë¤.An important difference between the two procedures is that permanent transfer is simpler to handle than temporary transfer and the permanent key ownership transfer procedure must utilize the interaction of the authorization authority 510 and the target unit 100. The reason that the permanent migration process is simpler is that the checkout time period negotiation, which is a prerequisite in the temporary key checkout procedure, does not require the permanent migration process. The reason that the permanent transfer function utilizes the interaction between the authorization authority 510 and the target unit 100 is due to the fact that the updated key list data structure must be reconstructable at both ends of the transaction.
ì구ì ë¼ì´ì¼ì¤ ì´ì ì´ ì¼ë°ì ì¼ë¡ íê° ê¸°ê´(510)ê³¼ì ìí¸ìì©ì ìí´ ë°ìí기 ë문ì, ì´ë¤ ì í리ì¼ì´ì ëë 미ëì´ ì¤í¸ë¦¼ ì§ì í¤ê° ì´ë¤ 목í ì ëì ìíëì§ì ê´í 기ë¡ì´ ìë¤. ììì ì¤ëª í ë°ì ê°ì´, ì´ê²ì 목í ì ë(100)ì í¤ ë¦¬ì¤í¸ê° ì´ë¤ íêµì ë°ì´í° ìì¤ ìí© íì ë³µìëì´ì¼ íë ê²½ì°ì, ëë í¹ì 목í ì ë(100)ì ìì ê¶ì´ ë¤ë¥¸ ìí°í°ë¡ ì´ì ë ê²½ì°ì íìíë¤. íê° ê¸°ê´(510) ë¶ë¶ììì ì´ë¬í ê°ì ì í¹ì í¤ì ì구 ìì ê¶ì´ íëì 목í ì ë(100)ì¼ë¡ë¶í° ë¤ë¥¸ 목í ì ëì¼ë¡ ì´ì ë ê²½ì°ì ëí íìíë¤. ìì ìê° ë¤ë¥¸ ìí°í°ë¡ë¶í° ìµì´ë¡ 구매í ìì°ì ëíë ì´ë¬í ë¥ë ¥ì "ìµì´ í매 ê¶í(right of first sale)"ì´ë¼ê³ ìë ¤ì ¸ ìê³ , ì¬ê¸°ìì ì¤ëª í íë¡í ì½ì´ ì기 í¹ì 기ë¥ì ì§ìíë ë¥ë ¥ì ì¤ìí ê²ì´ë¤.Since permanent license transfer generally occurs by interaction with the licensing authority 510, there is a record of which application or media stream designation key belongs to which target unit. As described above, this is necessary if the key list of the target unit 100 is to be restored after some catastrophic data loss situation, or if ownership of the special target unit 100 has been transferred to another entity. This intervention in the authority authority 510 part is also necessary if the permanent ownership of the special key has been transferred from one target unit 100 to another. This ability for owners to repurchase assets purchased for the first time from another entity is known as the "right of first sale" and the ability of the protocol described herein to support these special functions is important.
목í ì ë(100)ì ì구 í¤ ë¦¬ì¤í¸ê° íê° ê¸°ê´(510)ì ìí´ ì ì§ëë ì¬ì¤ì ë¤ë¥¸ ì¤ìí íìì 목í ì ë(100)ì´ ì´ë»ê²ë ì§ ì ì¶©ëììì´ ì ì¦ë ê²½ì°ì ëë í¤ë¤ ì¤ì íëê° ì ì¶©ë ê²ì¼ë¡ íì¸ë ê²½ì°ì, ì´ ë³´ë(body)ê° ê°ë³ì ì¸ ëª©í ì ë(100)ì ë¼ì´ì¼ì¤ í¤ì ì¼ë¶ ëë ì ë¶ë¥¼ ì·¨ìí ë¥ë ¥ì´ ìë¤ë ì ì´ë¤. ê°ê°ì 목í ì ë(100)ì (ììì ì¤ëª í ê²ì²ë¼) ì ì¼í í¤ ë¦¬ì¤í¸ë¥¼ ì ê³µí ê°ë¥ì±ì´ ì기 ë문ì, íê° ê¸°ê´(510)ì´ ììì ì ì¶©ë í¤ì ìì¤ë¥¼ ì¶ì í 기íê° ëí ì ê³µë ì ìë¤. ê·¸ë¬í ìí©ìì, ì´ íë¡í ì½ì ì íµì ì¸ ìí°ë§í¬ ì²ë¦¬ì ë¨ì (ìí°ë§í¬ê° 미ëì´ ì¤í¸ë¦¼ì íì§ì ì ìí¥ì ì¤ ê°ë¥ì± ë±) ìì´ ì¼ë°ì ì¼ë¡ "ìí°ë§í¬" í¹ì§ì 기ë¥ê³¼ ê´ë ¨ë 기ë¥ì 충족ìí¬ ì ìë¤.Another important aspect of the fact that the permanent key list of the target unit 100 is maintained by the licensing authority 510 is that if the target unit 100 proved to be somehow compromised or one of the keys was found to have been compromised In this case, this body is capable of revoking some or all of the license keys of the individual target units 100. Since there is a possibility to provide a unique list of keys (as described above) to each target unit 100, the opportunity may also be provided for the licensing authority 510 to track the source of any compromised keys. In such a situation, this protocol can meet the functionality generally associated with the functionality of the "watermark" feature without the disadvantages of traditional watermark processing (such as the possibility that the watermark will adversely affect the quality of the media stream).
ê·¸ë¬í ê²½ì°ë¡ ë³´ì´ì§ë ìì§ë§, ëì§í¸ ì½í í¸ ìì ìì íë¼ì´ë²ìë, ì í리ì¼ì´ì ì½ë ëë 미ëì´ ì¤í¸ë¦¼ ì§ì ID ì ë³´ê° ì í리ì¼ì´ì ê°ë°ì(520)ìê²ì ë°ìíê³ íê° ê¸°ê´(510)ì´ ììì í¹ìí ì í리ì¼ì´ì ëë 미ëì´ ì¤í¸ë¦¼ê³¼ ê·¸ íê°ë ìì ì ê°ì ì°í©(association)ì ë§ë¤ ì ìë ì¶©ë¶í ì 보를 ê°ì§ íìê° ì기 ë문ì, ì´ ì²ë¦¬ì ìí´ ì¬ì í ì ì§ëë¤. ìì ìì íë¼ì´ë²ì를 ë³´í¸í기 ìí ì´ë¬í ë¥ë ¥ì ìì ì´ íë¡í ì½ì ì¤ìí íìì´ë¤.Although not seen as such, the privacy of the digital content owner is that the application code or media stream specific ID information originates from the application developer 520 and the licensing authority 510 is responsible for any special application or media stream and its authorized owner. This process is still maintained because it is not necessary to have enough information to make an association. This ability to protect the privacy of the owner is also an important aspect of the protocol.
ì구 í¤ ì´ì ì²ë¦¬ì ê´ë ¨íì¬ ì£¼ëª©í´ì¼ í ë§ì§ë§ ì´ìë ì¬ì¤ì ì구ì í¤ ì´ì ì´ ìííë 모ë ëì¼í 기ë¥ì´ ìì í¤ ë¼ì´ì¼ì¤ ì´ì ê³¼ í¨ê» ë¬ì±ë ì ìë¤ë ì ì´ë¤. ê·¸ë¬ë, 목í ì ëì ë³´ì ìì¤í ì ì ì§ë ì´ìì ì¼ë¡ ì¤ì ë³´ì ìë²ì ìí´ ì ì´ëì´ì¼ íë 기ë¥ì´ê³ , ë°ë¼ì ì¬ì¬ì ì´ëê°ì ì ìì ê·¸ë¬í ë©ì¹´ëì¦ì ê°ì§ íìê° ìë¤. ëí, ì¬ì©ìê° ìì ì íë¼ì´ë²ì를 ì ì§íë ê²ì ê´ì¬ì´ ìë ê²½ì°ì, ì¤ì ìë²ê° ì ìê¶ ë³´ì ìì 목í ì ë(100) ê°ì ì충기(buffer)ë¡ì ìì©í ì ìë¤ë ì¬ì¤ì í¬ê² ì ìµí ê²ì´ë¤. ë§ì§ë§ì¼ë¡, íê° ê¸°ê´(510)ì´ ì기 기ë¥ì ìì í¤ ì´ì ë©ì¹´ëì¦ì ì ì¸íê³ ì¤ì íë í¹ì 목í ì ë(100)ì ì구 í¤ ë¦¬ì¤í¸ì ëí ì¤ì ë°±ì ì¤í ë¦¬ì§ ë©ì¹´ëì¦ì¼ë¡ì ìì©í ì ìë ì ë ëí í¥ë¯¸ë¡ì´ ì ì´ë¤.The last issue to note with regard to permanent key migration processing is that virtually all the same functions that permanent key migration performs can be achieved with temporary key license transfer. However, the maintenance of the security system of the target unit is a function that should ideally be controlled by a central security server, and therefore it is necessary to have such a mechanism somewhere in the chain. Also, if the user is interested in maintaining his or her privacy, the fact that the central server can act as a buffer between the copyright holder and the target unit 100 is of great benefit. Finally, it is also interesting that the authority authority 510 can act as a central backup storage mechanism for the permanent key list of the special target unit 100 which sets this function apart from the temporary key transfer mechanism.
ìì¤í ìì ê¶ ìë, íê° ì·¨ì ë° ë³´ì ìì¤í ê°±ì Transfer system ownership, revoke authorization and renew security system
íë ì´ìì 목í ì¥ì¹(100)ì ë¼ì´ì¼ì¤(ëë í¤)를 ì·¨ìíë ëª ê°ì§ ìì´í ìë¨ë¤ì´ ìë¤. ê°ì¥ ê°ë¨í ë°©ë²ì 목í ì¥ì¹(100)ì 1ì°¨ ë¹ë°í¤ë¥¼ ë¨ìí ê°±ì íë ê²ì´ë¤. ì´ ìì ìì, 목í ì¥ì¹(100)ë ìì ì ì구 í¤ ë¦¬ì¤í¸ì ì¡ì¸ì¤í ì ìê³ , ë°ë¼ì ìë¡ì´ í¤ ë¦¬ì¤í¸ë¥¼ ìì±íë ì²ë¦¬ë¥¼ ììíì¬ì¼ íë¤. 1ì°¨ ë¹ë°í¤ê° ìì í¤ ë¦¬ì¤í¸ ë°ì´í° 구조ì ìí¸í ì²ë¦¬ì ì¬ì©ë ì ìë ê²½ì°ì ì기 ìì í¤ ë¦¬ì¤í¸ë ì구 í¤ ë¦¬ì¤í¸ê° ë¤ë¥¸ ë°©ìì¼ë¡ ì¡ì¸ì¤ë¶ë¥ì¼ë¡ ëë¤ íëë¼ë ì ì¬ì ì¼ë¡ ì¬ì í ì¡ì¸ì¤ë ì ìë¤ë ì ì 주목íë¤.There are several different means of revoking a license (or key) of one or more target devices 100. The simplest way is to simply update the primary secret key of the target device 100. At this point, the target device 100 cannot access its permanent key list, and therefore must start the process of generating a new key list. Note that if the primary secret key cannot be used for the encryption process of the temporary key list data structure, the temporary key list can still be accessed even if the permanent key list is otherwise inaccessible.
ì´ ì ì ëí´ìë ìì í¤ ë¦¬ì¤í¸ì ìí¸í ì²ë¦¬ë¥¼ ì¤ëª íë©´ì ììì ì¤ëª íìë¤. ì´ ë문ì, ì구 ë° ìì í¤ ë¦¬ì¤í¸ ë°ì´í° 구조 ììì ëí ìí¸í í¤ë¡ì 목í ì¥ì¹(100)ì 1ì°¨ ë¹ë°í¤ë¥¼ ì¬ì©íë ê²ì´ ìë§ë ìµìì ìì´ëì´ì¼ ê²ì´ë¤.This point has been described above while explaining the encryption process of the temporary key list. Because of this, it is probably the best idea to use the primary secret key of the target device 100 as the encryption key for both the permanent and temporary key list data structures.
목í ì¥ì¹(100)ì ìì ê¶ì´ ì¼ ê°ì¸ì¼ë¡ë¶í° ë¤ë¥¸ ê°ì¸ì¼ë¡ ë³ê²½ëë ê²½ì°ì, ì´ ìì ê¶ ë³ê²½ì ìííë ê°ì¥ ê°ë¨í ë°©ë²ì 목í ì¥ì¹(100)ì 1ì°¨ ë¹ë°í¤ë¥¼ ì´ë¤ ìë¡ì´ ê°ì¼ë¡ ì¤ì íë ê²ì´ë¤. ê·¸ë¬ë, ì´ë¬í ë³ê²½ì´ ìµì´ ìì ìê° ìì ì 모ë ì구 í¤ë¥¼ 목íë¡ë¶í° 복구íë 기í를 ê°ê¸° ì ì ë°ìíë©´, ê·¸ë¤ì ìì ì ë¼ì´ì¼ì¤ë¥¼ ìì ê²ì´ë¤. ìµì´ ìì ìê° ê´ë ¨ ì구 í¤ ë¦¬ì¤í¸ì ìì ê¶ì 목í ì¥ì¹ì í¨ê» ì´ì í기를 ìíë ê²½ì°, ê·¸ í¹ì ì¥ì¹ì ê´ë ¨ë ìì ê¶ ì ë³´(íê° ê¸°ê´(510)ì ì ì¥ëì´ ìì)를 ë³ê²½íë ê² ì¸ì 목í ì¥ì¹(100)ê° í´ì¼ í ê²ì ì무ê²ë ìë¤.In the case where ownership of the target device 100 changes from one individual to another, the simplest way to effect this ownership change is to set the primary secret key of the target device 100 to some new value. However, if these changes occur before the original owner has a chance to recover all their permanent keys from the goal, they will lose their license. If the original owner wants to transfer ownership of the associated permanent key list with the target device, the target device 100 must do that in addition to changing the ownership information associated with that special device (stored in the authorization authority 510). There is nothing to do.
ë¼ì´ì¼ì¤ ì·¨ìê° ë°ìí ì ìë ë¤ë¥¸ ê²½ì°ë í¹ì 목í ì¥ì¹(100)ì ì구 í¤ ë¦¬ì¤í¸ì ë§ì¤í° í¤ê° "ë§ë£"ëë ê²½ì°ì´ë¤. 목í ì¥ì¹(100) ë³´ì ìì¤í ì ê°±ì ì´ ì구 í¤ ë¦¬ì¤í¸ì ì¼ë¶ë¡ì ì ì¥ë기 ë문ì, ì´ ìí©ì ì ì¬ì ì¼ë¡ ë¹ì°¸í ë°í¥ì ê°ì§ ì ìë¤.Another case where license revocation may occur is when the master key of the permanent key list of the special target device 100 is "expired". Since the update of the target device 100 security system is stored as part of the permanent key list, this situation can potentially have a disastrous echo.
ì ì¬ì ì¼ë¡ ì´ë¬í 곤경ì¼ë¡ë¶í° íë³µë ìë ìì§ë§, 목í ì¥ì¹(100)ë ì²ìë¶í° 구ì¶ëë ìì í ìë¡ì´ "ì 뢰 ì¬ì¬(chain of trust)"ì ê°ì§ íìê° ìë¤. ì´ ìí©ìì, ìë¡ ê°ìëë ë³´ì ìì¤í ì íµì¬ì 목í ì¥ì¹(100)ì ì¼ë¶ìì ìììì¼ë¡ ëìíë ê²ì²ë¼ ê²ì¦ë ì ìë ê·¸ë¬í ê³ì°ìë§ ê¸°ì´ë¥¼ ëì´ì¼ íë¤. ë°ë¼ì, ë¤ë¥¸ ë°©ìì ë²ì© ì½ë(ì´ê²ì ì ì¬ì ì¼ë¡ ìì¬ì ë°ì ì ìë¤)ì ìµìëë§ì ì구íë ììì í´ì± í¨ìì ì¬ì©ì ë°°ì íë¤. ë¤ííë, ì´ ìí©ì ë§ë£ê° ëì§ ìì ì구 í¤ ë¦¬ì¤í¸ ë°ì´í° 구조ì ì¼ë¶ë¡ì ê²ì¦ê°ë¥íê² ìì í ì½ë íí¸(fragment)ì ì구ì ì¸ íµì¬ì íì ì ì§íë ê°ë¨í ë°©ë²ì¼ë¡ í¼í ì ìë¤. ê·¸ë¬ë, ì´ê²ì ììì ì¤ëª í ì´ì ë문ì ë³´ìì ìíì´ ìê³ , ë°ë¼ì ì´ ì구 ì½ë íµì¬ì ì½í í¸ë ê°ë¥í í ë§ì´ ì íëì´ì¼ íë¤.While potentially recovering from this predicament, the target device 100 needs to have an entirely new "chain of trust" built from scratch. In this situation, the core of the newly disclosed security system should be based only on those calculations that can be verified as operating atomically on a portion of the target device 100. Thus, it excludes the use of any hashing function that requires only a minimal amount of other ways of general-purpose code (which can potentially be suspected). Fortunately, this situation can be avoided in a simple way that always maintains the permanent core of verifiably secure code fragments as part of the permanent key list data structure that has not expired. However, this is a security risk for the reasons described above, so the content of this permanent code core should be limited as much as possible.
ë¼ì´ì¼ì¤ ì·¨ìê° ë°ìí ì ìë ëë¤ë¥¸ ê²½ì°ë íê° ê¸°ê´(510)ì´ ëª©í ì¥ì¹(100)ì ì구 ëë ìì í¤ ë¦¬ì¤í¸ì í¹ì í¤ ìí¸ë¦¬ë¥¼ 무í¨í(override) íê¸°ë¡ ì íí ê²½ì°ì´ë¤. ì´ê²ì ë³´ì ìì¤í ì ê·¸ë ì´ëê° íìí ê²½ì° ëë í¹ì 목í ì¥ì¹(100)ê° í¹ì ì í리ì¼ì´ì ëë 미ëì´ ì¤í¸ë¦¼ì íê°ëì§ ìì ë³µì¬ë³¸ì ê°ê³ ìë ê²ì¼ë¡ íì¸ë ê²½ì°ì ì¬ì©ë ì ìë¤. 목í ì¥ì¹(100)ë íìì ìì ì í¤ ë¦¬ì¤í¸ ë°ì´í° 구조를 ì ì§íê³ ì기 ë문ì, ì´ ì ì°¨ë íê° ê¸°ê´(510)ê³¼ 목í ì¥ì¹ ê°ì ì ìì ì¸ ë¤í¸ìí¬ í¸ëí½ ìë³´ë¤ ë í° í¸ëí½ì ìë°í ê²ì´ë¤. ë°ë¼ì, ì´ ëì ê³¼ì ì ê·¹íì ê²½ì°ë¥¼ ìíì¬ ë³´ì¡´ëì´ì¼ íë¤.Another case where license revocation can occur is when the licensing authority 510 chooses to override a special key entry in the permanent or temporary key list of the target device 100. This may be used when a security system upgrade is needed or when the special target device 100 is found to have an unauthorized copy of the special application or media stream. Since the target device 100 normally maintains its key list data structure, this procedure will involve traffic that is greater than the normal amount of network traffic between the licensing authority 510 and the target device. Thus, this operating procedure must be preserved for extreme cases.
ê·¸ë¼ìë ë¶êµ¬íê³ , ì´ë¬í ì ì°¨ë ë¹í´ 목í ì¥ì¹(100)ê° ê²½ì í¤(disputed key)를 ì¡°ì¬íì¬ ëì¤ìì´ë¸ìí¤ëë¡ ì¤ê³ë 목í ì§ì 커ì¤í ë²ì ì¼ë¡ ìì ì ë³´ì ìì¤í ìíí¸ì¨ì´ë¥¼ ê°ì íê² íê³ ë°/ëë ì¤ëë ìíí¸ì¨ì´ë¥¼ ê°±ì ë²ì ì¼ë¡ êµì²´íê² í¨ì¼ë¡ì¨ ë¬ì±ë ì ìë¤. ë¬¼ë¡ , ì´ ì ì°¨ë 목í ì¥ì¹(100)ê° íê° ê¸°ê´ ì¤ì ìë²ìì ì ìì ê°ìí ëì ìì ììì ëìì¼ë¡ë§ ì¤ì í ì ìë¤. ì ìì ì¸ ìí©ììë ììì í¹ì 목í ì¥ì¹(100)ê° ììì í¹ìí ê³íì¼ë¡ íê° ê¸°ê´(510)ê³¼ ì ì´ì ê°ìíë ê²ì ë³´ì¥í ì ìë¤. ë¤ííë, ë¹í´ 목í ì¥ì¹(100)ë ìì ì ì구 í¤ ë¦¬ì¤í¸ì ëí ììì ìë¡ì´ ì¶ê°ë¥¼ ì¸ì¦í기 ìí´ íê° ê¸°ê´(510)ì (ì§ì ì ì¼ë¡ ëë ê°ì ì ì¼ë¡) ì ìíì¬ì¼ íê³ , ê·¸ëì ììì í¤ ì·¨ì ëìì´ ìë¡ì´ í¤ íê° ì ì°¨ì ì¼ë¶ë¡ì ë¬ì±ë ì ìë¤. ììì ì¤ëª í "ë³´ì ìì¤í íììì" ë©ì¹´ëì¦ì ì¬ì©íì¬ ì´ "리ì¤í¸ í´ë¦¬ì±(list policing)" ëìì ì§ìíë ê²ë ëí ê°ë¥íë¤. ê·¸ë¬ë, ì´ê²ì´ ê·¸ ê²½ì°ì¸ ê² ë° ê·¸ë¬í ìì¤í ì´ ì¬ì©ì íë¼ì´ë²ì ê¶ë¦¬ì í¼ìì ì´ëí ê°ë¥ì±ì´ ìë¤ë ê²ì ì´ íë¡í ì½ì ëí íìì¡°ê±´ì´ ìëë¤.Nevertheless, this procedure causes the target device 100 to revise its security system software with a targeted custom version designed to investigate and disable the disputed key and / or update the outdated software. It can be achieved by making a replacement. Of course, this procedure can be set only for the operation at the time when the target apparatus 100 initiates the connection with the authority authority central server. Under normal circumstances, no special target device 100 can be guaranteed to initiate contact with the licensing authority 510 with any special plan. Fortunately, the target device 100 must connect (directly or indirectly) to the authority authority 510 to authenticate any new additions to its permanent key list, so that any key revocation operation is a new key. It can be accomplished as part of the licensing process. It is also possible to support this "list policing" operation using the "Security System Timeout" mechanism described above. However, it is not a requirement for this protocol that this is the case and that such a system is likely to result in a compromise of user privacy rights.
기í ê´ì¬ì¬:Other interests:
ë°ëì íë¡í ì½ ìì²´ì ì¼ë¶ë ìëì§ë§ ê·¸ë¼ìë ë¶êµ¬íê³ ì¬ê¸°ìì ì¤ëª íë íë¡í ì½ì ì ì í ì¤íí ì ìë ì¤ì ì ì¸ ìì¤í ì ìì±íë ì²ë¦¬ìì ë¤ë£¨ì´ì¼ í ë¤ìì ì´ìê° ìë¤. ì´ë¬í ì´ìë¤ ì¤ì ì¼ë¶ë ì¤ì íë¡ì¸ì ì¥ì¹ì 구íì ìì¡´íê³ , ë¤ë¥¸ ê²ë¤ì ëë¶ë¶ ì í리ì¼ì´ì ì í¹ìí ê²ì´ë¤. ì´ ì ë³´ë ì í©í 목í ì¥ì¹(100)ì ì ì í 구ì±ì ë°ì í ê´ê³ê° ì기 ë문ì, ì°ë¦¬ë ì´ ì´ìì ì¼ë¶ì ëíì¬ ë¤ì ì¹ì ìì ì¤ëª í ê²ì´ë¤.Although not necessarily part of the protocol itself, there are nevertheless a number of issues that must be addressed in the process of creating a practical system that can properly implement the protocol described herein. Some of these issues depend on the implementation of the actual processor device, while others are mostly application specific. Since this information is closely related to the proper configuration of a suitable target device 100, we will discuss some of these issues in the next section.
ìí¸ ëìì´ ê°ë¥í ì¥ì¹ ì ì íLimit the Number of Devices That Can Interoperate
1ì°¨ 목í ì¥ì¹ê° ìì ê¶ì ììë¡ ì´ì í ì ìë ì¥ì¹ì ì´ ì를 ì ìê¶ ë³´ì ìê° ì ííê³ ì íë ê²½ì°ì, ì´ê²ì ììì íëì ìê°ì ëìí ì ìë ì íë ìì ê³µê°/ê°ì¸í¤ ìì í립íë ìë¨ì ìí´ ë¬ì±ë ì ìë¤. ì´ê²ì ëì¼í ì í리ì¼ì´ì ì§ì í¤ì ë³µìì ë³µì¬ë³¸ì´ ìì ì¹ì ìì ì¤ëª í ëì "ëì¬ì¤"ì¸ ê²½ì°ì ë¤ë¥´ë¤ë ì ì 주목íë¤. í¹ì 목í ì¥ì¹(100)ë¡ë¶í° ììì ì í리ì¼ì´ì ì§ì í¤ë¥¼ "ì²´í¬ìì"í ì ìë ì¥ì¹ë¤ì 리ì¤í¸ê° í¹ì ì¼ë ¨ ë²í¸ ì§í©ì¼ë¡ ì íë ì ìë ë¤ë¥¸ ìë리ì¤ê° ê°ë¥íë¤. íê° ê¸°ê´(510)ì 목í ì¥ì¹(100)ì ë³´ì ìì¤í ì´ ê´ë¦¬ëë ê²ê³¼ ì íí ëì¼í ë°©ë²ì¼ë¡ ì기 "ì¹ì¸ë ì°¨ì©ì" 리ì¤í¸ë¥¼ ê´ë¦¬í ì ìë¤. ë°ë¼ì, íê° ê¸°ê´(510)ì, ì를 ë¤ë©´, "ì¹ì¸ë ì°¨ì©ì" 리ì¤í¸ì ì¼ë ¨ ë²í¸ ì§í©ì ìµì´ 목í ì¥ì¹(100)ì ëì¼í ìì ê¶ ì 보를 ê°ë ê²ì¼ë¡ ì íí ì ìë¤. ì´ ë¬¸ì ì ëí ë¤ë¥¸ ê°ë¥í í´ë²ì ììì "ì°¨ì©ì" ì¥ì¹(720)ê° ì¤ì íê° ê¸°ê´(510)ì ê³µê°í¤ë¡ ì¦ëª ì(certificate)를 ë³µí¸í¨ì¼ë¡ì¨ë§ ê²ì¦ë ì ìë ì ìì¥(credential)(ìëª ë ì¦ëª ì ë±)ì ëì¬ììê² ì ê³µí¨ì¼ë¡ì¨ "ì¸ì¦"ë ì°¨ì©ìë¡ì ì í¨íë ê²ì ì구íë ê²ì´ë¤. ì´ ìë리ì¤ë ë¬¼ë¡ í¹ì ì ëì´ ì ì¶©ë ê²ì¼ë¡ ê²°ì ë ê²½ì°ì íê° ê¸°ê´(510)ì´ ì기 ì¦ëª ì를 ì·¨ìíë ë¥ë ¥ì ìë°íë¤. ì´ ì¦ëª ì ì·¨ì ì²ë¦¬ê° ë¬ì±ë ì ìë íê°ì§ ì ìë ¤ì ¸ ìë ë°©ë²ì ì 기ì ì¼ë¡ ë°íëë "ì·¨ì 리ì¤í¸"를 ì´ì©íë ê²ì´ë¤.If the copyright holder wishes to limit the total number of devices to which the primary target device can temporarily transfer ownership, this means that a limited number of public / private key pairs can be operated at any one time. Can be achieved by Note that this is different from the case where multiple copies of the same application specific key are concurrent "rental" described in the section above. Another scenario is possible where the list of devices capable of "checking out" any application specific key from the special target device 100 may be limited to a particular set of serial numbers. The authorization authority 510 may manage the "approved borrower" list in exactly the same way that the security system of the target device 100 is managed. Thus, the permitting authority 510 may restrict, for example, the set of serial numbers in the "Approved Borrower" list to having the same ownership information as the original target device 100. Another possible solution to this problem is to provide a credential (signed certificate, etc.) that can only be verified by any "borrower" device 720 decrypting the certificate with the public key of the central licensing authority 510. By providing to the lender, it is required to be validated as a "certified" borrower. This scenario, of course, involves the ability of the licensing authority 510 to revoke the certificate if it is determined that the special unit is compromised. One well-known method by which this certificate revocation process can be achieved is by using a regularly published "cancellation list".
ë¹ë°í¤ ë°ê²¬ ë° ì ì ê²ì¦ 문ì Secret Key Discovery and Identity Verification Issues
í¹ì íë ì´ì´ì ëí 1ì°¨ ë¹ë°í¤ê° 물리ì ì¸ ë¶í´ ë° ì¹© ë¤ì´ ìíì ìí´ ë°ê²¬ëë©´, ê° ì¥ì¹ê° ë³ëì ë¹ë°í¤(104) ì§í©ì ê°ì§ ê²ì´ê¸° ë문ì ììì ë¤ë¥¸ ì¥ì¹ì ë³´ìì±ì í¬ììì¼ìë ìëë¤. ê·¸ë¬ë, í¹ì íë ì´ì´ì 1ì°¨ í¤ê° ì´ë»ê²ë í¬ìëë©´ ì¸ì¦ëì§ ìì ì¥ì¹ê° í©ë²ì 목í ì¥ì¹ë¡ì ê°ì¥í ì ì¬ì ì¸ ê°ë¥ì±ì´ ìë¤. ì´ ë¬¸ì ê° ê²ì§ëì§ ìì ê²½ì°ì, ì´ ì§ìì¼ë¡ 무ì¥í íê°ë°ì§ ìì ì¥ì¹ê° ê·¸ í¹ì 목í ì¥ì¹ì ë°íë ììì ì í리ì¼ì´ì ì§ì ë³µí¸í¤ë¥¼ ìììí¬ ê°ë¥ì±ì´ ìë¤. 목í ì¥ì¹(100)ì ì¼ë ¨ ë²í¸(106)ë íê° ê¸°ê´(510)ì´ ì 1 ì¥ìì ìë ì¥ì¹ì ë³µí¸í¤ë¥¼ ë°íí기 ìí´ ë±ë¡ëì´ì¼ í기 ë문ì, ì´ì ì ëí 문ì ì ì íê°ëì§ ìì ì¥ì¹ì ìí ë¤ë¥¸ ë°©ìì í©ë²ì ì¸ ëª©í ì¥ì¹(100)ì ì íì¼ë¡ ëª ìì ì¼ë¡ ì íëë¤.If the primary secret key for a special player is found by physical disassembly and chip die testing, it should not be sacrificed for the security of any other device since each device will have a separate set of secret keys 104. However, if the primary player's primary key is somehow sacrificed, there is a potential for unauthorized devices to impersonate legitimate target devices. If this problem is not detected, there is a possibility that an unauthorized device armed with this knowledge would compromise any application specified decryption key issued to that special target device. Since the serial number 106 of the target device 100 must be registered in order for the authority authority 510 to issue a decryption key to the device at the first location, the problem with this advantage is that of another method by the unauthorized device. It is expressly limited by the limitation of the legal target device 100.
ê·¸ë¬ë, 목í ì¥ì¹(100)ì ë¹ë°í¤ê° ì´ë¬í ì²ë¦¬ì ìí´ ë°ê²¬ëë©´, ìí¸í í¤ ë¦¬ì¤í¸ ë¤ì´ì ì¤í¸ì ë³µì¬ë³¸ì ì´ì ì ë°±ì í ìíì 기ì´íì¬ ê·¸ ì ëì íê°ë¥¼ ì¤ ëª¨ë ì í리ì¼ì´ì ì§ì í¤ë¥¼ ìììí¬ ê°ë¥ì±ì´ ìë¤. ì´ ë문ì, 1ì°¨ ë¹ë°í¤ì 2ì°¨ ë¹ë°í¤ë ì´ í¤ë¤ì ê°ì ì°¾ìë´ê³ ì íë ììì ìëê° í¤ ë°ì´í°ì ìì¤ì ì¼ê¸°íë "ë³ê²½ ë°©ì§" ë°©ìì¼ë¡ 목í 칩ìì 구íëì´ì¼ íë¤.However, if the secret key of the target device 100 is found by such a process, there is a possibility of damaging all the application-specified keys that granted the unit based on a test that previously backed up a copy of the encryption key list digest. Because of this, the primary secret key and the secondary secret key must be implemented on the target chip in a "change prevention" manner in which any attempt to find the value of these keys would result in loss of the key data.
목í ì¥ì¹(100)ìì ë³ê²½ ë°©ì§ í¹ì§ì 구ííë ë¤ìì ìë¨ì´ ìì§ë§, ê·¸ ì íí 구íì ì´ ë¬¸ììì ì¤ëª í íë¡í ì½ì ì¤ìí ê²ì´ ìëë¤. ë§ì¼ "ë¹ë°í¤ ìì¤" ìí©ì´ ì¬ì©ì ë¶ë¶ìì ë¶ì£¼ì(ëë ë¨ì©)ì ë°ë¥¸ ì´ë¤ ì ììë íëì ìí´ ë°ìíìì¼ë©´, í©ë²ì ì¸ ì¬ì©ìë ììë ì ëì ì í리ì¼ì´ì ì§ì í¤ë¥¼ ìë¡ì´ ì¥ì¹ì ì´ì ìí¤ëë¡ ë°°ì´í ì ìë íê° ê¸°ê´(510)ì ìì ì ììë ì ëì ëëë ¤ë³´ë¼ ì ìì´ì¼ íë¤. ê·¸ë¬ë, ìµì´ì 목í ì¥ì¹(100)ê° ê¸°ë¥í ì ìë ê²½ì°ì, ìë¡ì´ 목í ì¥ì¹(100)ë¡ì í¤ ì´ì ì (ì ì´ë ì 1 ì¥ììì ëª ë¬¸ì¼ë¡ íê° ê¸°ê´(510)ì ê³µê¸ëì§ ìì í¤ì ëí´ì) ì í리ì¼ì´ì ê°ë°ì(520)ìì í¸ëìì ì ìë°íì¬ì¼ íë¤.While there are a number of means for implementing the tamper resistant feature in the target device 100, the exact implementation is not critical to the protocol described in this document. If the "lost key" situation was caused by some malicious act of negligence (or abuse) at the user's part, the legitimate user could arrange to transfer the application-specific key of the compromised unit to a new device. It should be possible to return its damaged unit to (510). However, if the original target device 100 is unable to function, the transfer of keys to the new target device 100 (at least for keys that are not supplied predominantly to the authorization authority 510 at the first location) is an application developer. Must be accompanied by a transaction with 520.
ê·¸ë¬ë, ë¤ë¥¸ ì§ì í 목í ì¥ì¹(100)를 íë´ë¼ ì ììë ì¥ì¹ë íë©´ìì¼ë¡, ì ì©íë í©ë²ì ì¼ë¡ íê°ë ì¥ì¹ë¥¼ íë ì´ìì ì í리ì¼ì´ì ì§ì í¤ì ìì í¬ê¸°íë ìì ê¶ì¼ë¡ ëë ì¼ì ì ì§í ëìì¼ë¡ ìì¼ ì ìë¤ë ì ì 주목íì¬ì¼ íë¤(ììì ì¤ëª íìì). íìì ê²½ì°ê° ë°ìíë©´, í¤ë¥¼ ì°¨ì©íë ¤ê³ ìëí 모ë ì¥ì¹ë¤ì ëì¤ìì´ë¸ìí¤ë "ë¶ì ì¥ì¹(rogue unit)"를 ê°ì§ ê°ë¥ì±ì´ ì¡´ì¬íë¤. ì ìì ê²½ì°ê° ë°ìíë©´, ìì ê°¯ìì ì í리ì¼ì´ì ëë 미ëì´ ì§ì í¤ë¤ì´ ì ì¬ì ì¼ë¡ ì ì¶©ë ì ìë¤.However, it is noted that a device that has been able to mimic another true target device 100 may, on the surface, fool a trusted legally authorized device with temporary relinquish ownership of one or more application-specified keys or with suspended operation. (As described above). If the latter case occurs, there is a possibility of having a "rogue unit" that disables all devices attempting to borrow a key. If the former case occurs, any number of application or media specific keys can potentially be compromised.
ë°ë¼ì, í¹ì 목í ì¥ì¹(100)ì ëí´ ì ì¬ì ì¸ "íê°ë ì°¨ì©ì"ì ì를 íê° ê¸°ê´(510) ìë²ë¡ë¶í°ì ìì í ê°±ì ì ìí´ í©ë²ì ì¸ ì¥ì¹ì ê³µê¸ë ì ìë 리ì¤í¸ë¡ ì ííë ê²ì ê´í ììì ì¤ëª í ê°ë ì ì¸ì¬í ê²ì´ë¤. ì ìì ê²½ì°ì, ì´ê²ì ì ëì´ ì 1 ì¥ììì ê·¸ë¤ìê² ì¤ì ë¡ ìíì§ ìë í ë¤ë¥¸ ì ì©íë ì¥ì¹ì ìì ìê° ê·¸ ë¹ë°í¤ì ì¡ì¸ì¤í기 ìí´ ê¸°ë¥ ì ëì ë¶í´íë í´ì»¤ì ìí´ ëì¤ìì´ë¸ë í©ë²ì ì¥ì¹ë¥¼ ê°ë ê²ì ë°©ì§í ê²ì´ë¤. íìì ê²½ì°ì, ì´ê²ì íëì ì§ì ìì íê° ê¸°ê´ì ì ì í ë±ë¡ë íê°ë ì¥ì¹ì´ìë ê·¸ë¬í ì¥ì¹ë¤ìê² ì í리ì¼ì´ì ëë 미ëì´ ì§ì í¤ê° ì´ì íë ê²ì ì íí ê²ì´ë¤. ê·¸ë¼ìë ë¶êµ¬íê³ , ë¨í¸í í´ì»¤ë ì¬ì í í©ë²ì ì¥ì¹ë¥¼ 구매íê³ , ê·¸ê²ì ë¶í´íì¬ ì´ë»ê²ë ê·¸ ë¹ë°í¤ ë°ì´í°ì ì¡ì¸ì¤íë©°, ê·¸ ë¤ìì í©ë²ì ì¥ì¹ë¡ ê°ì¥í기 ìí´ ì´ ì 보를 ì´ì©í ì ìë¤.Thus, the concept described above regarding limiting the number of potential "authorized borrowers" for the special target device 100 to a list that can be supplied to legitimate devices by a secure update from the license authority 510 server is It is meticulous. In the former case, this would prevent the owner of another crediting device from having a legitimate device disabled by a hacker who disassembles the functional unit to access its private key unless the unit actually belongs to them in the first place. will be. In the latter case, this would limit the transfer of the application or media assignment key to those devices that were authorized devices properly registered with the authority at one point. Nevertheless, a determined hacker can still use this information to purchase a legitimate device, disassemble it and somehow access its private key data, and then impersonate the legitimate device.
ê·¸ëì, ì´ë¬í ì¢ ë¥ì íë´ ì¬ê±´(impersonation event)ì íì§í기 ìíì¬ ì´ë»ê² í ê²ì¸ì§ì ëí ì´ìê° ë¨ììë¤. ì´ë¬í ì±ì§ì ê·¹í ì ëì²íë ë°ëì(opponent)를 ì¢ì ìí¤ê¸° ìí ì ì¼í ì±ê³µì ì¸ ì ëµì ì ì´ë ë¹ì© êµíì¡°ê±´ ê´ì ìì ì ì¬ì ì´ëì´ ì구ëë ë ¸ë ¥ì 무ê°ì¹íê² íëë¡ ìì¤í ì ì¤ê³íë ê²ì´ë¤.Thus, there remains an issue of what to do to detect this kind of impersonation event. The only successful strategy to frustrate opponents who cope very well with these properties is to design the system to make the effort worth the potential benefits at least in terms of cost exchange conditions.
íµì ì ííë ë¤ë¥¸ ì ì ìë ì¥ì¹ì ì§ì ì±ì ì¦ëª í기 ìí ëª ê°ì§ ìë¨ì´ ìë¤. ê·¸ë¬ë, ì¥ì¹ê° ì¬ì¤ì ì²êµ¬íë ê²ìì ì ì¦íë ê°ì¥ ì±ê³µì ì¸ ë°©ë²ì ì´ ì¥ì¹ë¥¼ ë¤ë¥¸ ì¥ì¹ì 구ë³ëê² íë í¹ì±ì ì´ì ì ë§ì¶ë ê²ì´ë¤. ì´ ë¬¸ììì ì¤ëª íë ëì§í¸ ë³µí¸ ë©ì¹´ëì¦ê³¼ ê°ì í¹ì ì©ë ì¥ì¹ì ê²½ì°ìë ì¥ì¹ê° ë³´ì íë¡í ì½ì ì ì í ì¤ííê³ ì£¼ì´ì§ ì ë ¥ ë³ì ì§í©ì 기ì´íì¬ ì íí 결과를 ê³ì°íë ë¥ë ¥ì´ë¤. ê·¸ë¬ë, ì¬ê¸°ìì ì¤ëª íë ë³´ì íë¡í ì½ì ê³µê°ì ì¼ë¡ ìë ¤ì§ ìê³ ë¦¬ì¦ì 기ì´ë¥¼ ë기 ë문ì, ì´ê²ì íë©´ì ê³ì° ìë£ê¹ì§ ì¶©ë¶í ìê°ì ê°ë ììì ë²ì© ì»´í¨í ì¥ì¹ì ìí´ ë¬ì±ë ì ìë¤. ì¬ì¤, ì´ ì´ìë ì¥ì¹ë¥¼ ì ì¼íê² íë ë¹ë°í¤ ì ë³´ê° ì´ë»ê²ë ì ì¶©ëë©´ ê³µê°ì ì¼ë¡ ì´ì©ê°ë¥í 기ì ì 기ì´í ììì ì¥ì¹ì ëíì¬ ì ì¬ì ì¸ ë¬¸ì ê° ë ê²ì´ë¤. ë°ë¼ì, ë¶í´ ë° ì¹© ë¤ì´ ê²ì¬ìë ë¶êµ¬íê³ ëª¨ë í©ë²ì 목í ì¥ì¹ë¥¼ ìíì¬ ì¨ì¹©ì¼ë¡ ì ì¥ë ë¹ë°í¤ ì ë³´ê° ë¹ë°ë¡ ì ì§ëì´ì¼ íë êµíì ê¶ê·¹ì ì¼ë¡ ìì¡´í´ì¼ íë¤.There are several means to prove the authenticity of other unknown devices that communicate. However, the most successful way to prove that a device is in fact a claim is to focus on the characteristics that make this device different from other devices. For special purpose devices, such as the digital decryption mechanism described in this document, it is the ability of the device to properly implement security protocols and to calculate accurate results based on a given set of input variables. However, since the security protocol described herein is based on publicly known algorithms, this can be achieved by any general purpose computing device having sufficient time to complete the on-the-fly calculation. In fact, this issue will be a potential problem for any device based on publicly available technology if the private key information that makes the device unique is somehow compromised. Thus, despite disassembly and chip die inspection, it must ultimately rely on the lesson that secret key information stored on-chip must be kept secret for all legitimate target devices.
ì°ë¦¬ë ìì ëì ìê° ë´ìì ê²ì¦ê°ë¥í MAC ê°ì ì ííê² ì°¾ìë´ë ë¥ë ¥ê³¼ ê°ì 목í ìë³ ë° ê²ì¦ ì²ë¦¬ì ëí íìì¡°ê±´ì íì¤íê² ì¶ê°í ì ìë¤. ì°ë¦¬ë ìµì¢ MAC ê°ì´ ë³µìí ìí¸íëë ê²ì ì구í¨ì¼ë¡ì¨ ì 차를 ë ì´ë µê² í ì ìë¤. ë°ë¼ì, ì°ë¦¬ë ë¼ì´ì¼ì¤ ìì²´ì í©ë²ì ë³µì¬ë³¸ì ë¨ìí 구매íë ë¹ì©ë³´ë¤ ì¼ë°ì ì¼ë¡ í¨ì¬ ë ë¹ì¼ (ë ì¼ë°ì ì¸) ì°ì° 리ìì¤ì ì¡ì¸ì¤í ê²ì´ ì구ëë¤ë ì ìì í©ë²ì ì¥ì¹ë¥¼ ìì¡°íë 공격ìì ë¥ë ¥ì ì ì¬ì ì¼ë¡ ì íí ì ìë¤. 미ëì´ ì¤í¸ë¦¼ íë ì´ì´ì ê²½ì°, íë ì´ì´ê° íë©´ì ìì©íëë¡ ì¤ê³ëë íë ì´ìì 미ëì´ ì¤í¸ë¦¼ì ì¼ë¶ë¥¼ ì íí ëì½ëíë ë¥ë ¥ì ëí í¬í¨í ì ìë¤.We can certainly add requirements for target identification and verification processing, such as the ability to accurately find verifiable MAC values within a certain amount of time. We can make the procedure more difficult by requiring the final MAC value to be encrypted multiple times. Thus, we could potentially limit the attacker's ability to forge a legitimate device in that it would be required to access computational resources that are generally much more expensive than simply buying a legal copy of the license itself. In the case of a media stream player, it may also include the ability to accurately decode a portion of one or more media streams that the player is designed to receive on the surface.
ê·¸ë¬ë, ì´ì¨ë , ëì§í¸ ì ìê¶ ë³´í¸ì ì ì²´ ê³¼ì ì íë§ ë¬¸ì (Turing problem)ì´ë¤. ë°ë¼ì, ì¶©ë¶í ìê° ë° ë¦¬ìì¤ê° 주ì´ì§ë©´, ììì ëì§í¸ ì ìê¶ ë³´í¸ ë°©ìì´ ë¨í¸í ë°ëìì ìí´ ì¢ì ë ì ìë¤. ì´ê²ì ë¬¼ë¡ ë¹ë°í¤ ì ë³´ì ëí ì¡ì¸ì¤ê° ëª ííê² ìë¹ ê³µê²©ìì ëí´ í° ì¥ì ì¼ë¡ ëë¤ë ì¬ì¤ê³¼ 무ê´íë¤. ê·¸ë¬ë¯ë¡, ì ëì ë¹ë°í¤ê° ì ì¶©ëì§ ìëë¡ ì§í¤ë ë¥ë ¥ì ì´ ë³´ì íë¡í ì½ì ì¤ìí ë¶ë¶ì´ë¤.However, anyway, the whole process of digital copyright protection is a Turing problem. Thus, given enough time and resources, any digital copyright protection scheme can be frustrated by determined opponents. This is of course irrelevant to the fact that access to private key information is clearly a huge advantage for prospective attackers. Therefore, the ability to keep the unit's private key from being compromised is an important part of this security protocol.
ê²°ë¡ :conclusion:
ììì ì¤ëª í ì ìê¶ ë³´í¸ íë¡í ì½ì ëª ê°ì§ ë°©ë²ìì ì ì¼í ê²ì´ë¤. 첫ë²ì§¸ë ì¬ì©ìê° í©ë²ì ì¼ë¡ 구매í ì í리ì¼ì´ì ëë 미ëì´ ì§ì í¤ ë°ì´í°ì ë°±ì ë³µì¬ë³¸ì ë§ë¤ ë¥ë ¥ì ê°ì§ 못íëë¡ ìëíì§ ìëë¤ë ì¬ì¤ì´ë¤. ë째ë¡, ì´ íë¡í ì½ì ìì ì¢ ë¥ì ëì§í¸ ë°ì´í° ê°ì ì°¨ì´ë¥¼ ë§ë¤ì§ ìì¼ë©°, ë°ë¼ì ë³´ì íë¡í ì½ì´ ë³´í¸íëë¡ ì¤ê³ë ë°ì´í° ì¤í¸ë¦¼ì²ë¼ ì½ê² ê°±ì ëê² íë¤. ì 째ë¡, ì´ íë¡í ì½ì ì¬ì©ìê° ìì ì ì í리ì¼ì´ì ëë 미ëì´ ì§ì í¤ì ìì ê¶ì íë¡í ì½ì ì¤íí ì ìë ë¤ë¥¸ ì ëì ììë¡ ì´ì í ì ìê² íë¤. ëí, ì´ íë¡í ì½ì íê°ë°ì ìê° ìì ê¶ì íëì 목í ì¥ì¹(100)ë¡ë¶í° ë¤ë¥¸ 목í ì¥ì¹ë¡ ì구 ì´ì íë ë¥ë ¥ì ì ê³µíë¤. ì기 ë§ì§ë§ í¹ì±ì ì´ íë¡í ì½ íìì ìë¹ìì ë²ì "ìµì´ í매 ê¶í"ì 구íì ê°ë¥íê² íë¤.The copyright protection protocol described above is unique in several ways. The first is that it does not attempt to prevent the user from having the ability to make backup copies of legally purchased application or media specific key data. Secondly, this protocol does not make a difference between any kind of digital data and thus allows the security protocol to be updated as easily as the data stream designed to protect. Third, the protocol allows users to temporarily transfer ownership of their application or media specific key to another unit capable of executing the protocol. The protocol also provides the ability for an authorized person to permanently transfer ownership from one target device 100 to another. This last feature enables the consumer to implement a legal "first selling right" under this protocol.
ì¬ì¤, ì´ ë¬¸ììì ì¤ëª í íë¡í ì½ê³¼ ë¤ë¥¸ ë³µì¬ ë³´í¸ ë°©ì ê°ì 기본ì ì¸ ì°¨ì´ ì¤ì íëë ì´ ìì¤í ì ë³´ìì´ í¹ì ë°ì´í° ì§í©ì ì¡ì¸ì¤íë ë¥ë ¥ì ì ì´íë ê²ì ìì¡´íë ê²ì´ ìëë¼ ì¤íë ¤ ë°ì´í° ì§í© ë´ì í¬í¨ë ìì´ëì´ë¥¼ íìíë ëìì ì ì´íë ë¥ë ¥ì ìì¡´íë¤ë ê²ì´ë¤.In fact, one of the fundamental differences between the protocols described in this document and other copy protection schemes is that the security of this system does not rely on controlling the ability to access special data sets, but rather to display ideas contained within the data sets. It depends on your ability to control.
ìì ëª ì¸ììì, 본 ë°ëª ì í¹ì ì¤ìì를 참조íì¬ ì¤ëª íìë¤. ê·¸ë¬ë, ì´ ê¸°ì ì íµìì ì§ìì ê°ì§ ìë¼ë©´ ìëì ì²êµ¬ë²ììì ê·ì íë 본 ë°ëª ì ë²ìë¡ë¶í° ë²ì´ëì§ ìê³ ì¬ë¬ ê°ì§ë¡ ìì ë° ë³ê²½ì´ ê°ë¥íë¤ë ê²ì ì ê²ì´ë¤. ë°ë¼ì, ëª ì¸ì ë° ëë©´ì ì ííë ìëë¼ê¸°ë³´ë¤ë ììì ì¸ ê²ì¼ë¡ ê°ì£¼ëì´ì¼ íê³ , ê·¸ë¬í ìì ë¤ì 모ë 본 ë°ëª ì ë²ìì í¬í¨ë ê²ì¼ë¡ ìëëë¤.In the foregoing specification, the invention has been described with reference to specific embodiments. However, one of ordinary skill in the art appreciates that various modifications and changes can be made without departing from the scope of the invention as set forth in the claims below. Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of present invention.
ìì , ë¤ë¥¸ ì¥ì ë° ë¬¸ì ì ì ëí í´ë²ì í¹ì ì¤ììì ê´ë ¨íì¬ ììì ì¤ëª íìë¤. ê·¸ë¬ë, ìì , ì¥ì , 문ì ì ì ëí í´ë², ë° ììì ìì , ì¥ì ëë í´ë²ì ë°ììí¤ê±°ë ë ëª ë°±íê² íë ììì ì»´í¬ëí¸ë ììì ëë 모ë ì²êµ¬íì ì¤ìí, ì구ë, ëë 본ì§ì ì¸ í¹ì§ ëë ì»´í¬ëí¸ë¡ í´ìëì´ìë ìëë¤.Benefits, other advantages, and solutions to problems have been described above in connection with specific embodiments. However, any benefit, advantage, solution to a problem, and any component that produces or makes any benefit, advantage, or solution more obvious, should be construed as an important, required, or essential feature or component of any or all claims. Can not be done.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4