KR20230131864A - 리소스에 대한 액세스를 제어하기 위한 방법 및 디바이스 - Google Patents
리소스에 대한 액세스를 제어하기 위한 방법 및 디바이스 Download PDFInfo
- Publication number
- KR20230131864A KR20230131864A KR1020237024752A KR20237024752A KR20230131864A KR 20230131864 A KR20230131864 A KR 20230131864A KR 1020237024752 A KR1020237024752 A KR 1020237024752A KR 20237024752 A KR20237024752 A KR 20237024752A KR 20230131864 A KR20230131864 A KR 20230131864A
- Authority
- KR
- South Korea
- Prior art keywords
- secret data
- electronic device
- persistent memory
- initialization value
- secure element
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000002085 persistent effect Effects 0.000 claims abstract description 65
- 238000004519 manufacturing process Methods 0.000 claims description 14
- 238000012360 testing method Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000010367 cloning Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/73—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/76—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/127—Trusted platform modules [TPM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/60—Digital content management, e.g. content distribution
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
OTP 영역(21)을 갖는 영구 메모리(20)와 함께 보안 요소(11)를 포함하는 전자 디바이스(10)에서 리소스(30)에 대한 액세스를 제어하기 위한 방법으로서, 보안 요소 또는 전자 디바이스가 부팅될 때 먼저 수행되는 다음 단계들을 포함한다:
- 영구 메모리(20)에서 비밀 데이터(23) 및 초기화 값(27) 중 적어도 하나의 존재를 확인하고, 네거티브 이벤트의 경우, 초기화 값(27)을 생성하고 이를 OTP 영역(21)에 저장하는 단계,
- 포지티브 이벤트의 경우, 영구 메모리가 비밀 데이터(23)를 포함하는 경우, 암호화 키(15) 및, 영구 메모리가 초기화 값(27)을 추가로 포함하는 경우에는, 초기화 값(27)을 사용하는 알고리즘(13)을 사용하여 비밀 데이터(23)를 보안 요소(11) 내에서 복호화하는 단계,
- 영구 메모리(20)에 저장된 서명(22)을 사용하여 비밀 데이터(23)의 무결성을 확인하고, 성공적으로 완료 시에, 리소스(30)에 대한 액세스를 제공하는 단계.
- 영구 메모리(20)에서 비밀 데이터(23) 및 초기화 값(27) 중 적어도 하나의 존재를 확인하고, 네거티브 이벤트의 경우, 초기화 값(27)을 생성하고 이를 OTP 영역(21)에 저장하는 단계,
- 포지티브 이벤트의 경우, 영구 메모리가 비밀 데이터(23)를 포함하는 경우, 암호화 키(15) 및, 영구 메모리가 초기화 값(27)을 추가로 포함하는 경우에는, 초기화 값(27)을 사용하는 알고리즘(13)을 사용하여 비밀 데이터(23)를 보안 요소(11) 내에서 복호화하는 단계,
- 영구 메모리(20)에 저장된 서명(22)을 사용하여 비밀 데이터(23)의 무결성을 확인하고, 성공적으로 완료 시에, 리소스(30)에 대한 액세스를 제공하는 단계.
Description
본 개시내용은 전자 디바이스들에 의해 제공되는, 하드웨어 또는 소프트웨어 리소스를 위한 보안 액세스 분야에 관한 것이다. 통상적으로 그러한 액세스는, 예를 들어 유료 TV 분야에 제공되는 것들과 같은 민감하거나 조건부인 서비스들에 연결된다. 본 개시내용은 보다 구체적으로 프로그래밍 키 슬롯을 갖는 칩셋과 같은 프로그래밍 가능한 비밀(secrets)이 제공되는 칩 또는 칩셋에 적용가능하다. 이러한 맥락에서, 리소스에 대한 액세스를 제어하기 위한 비밀 데이터에 기반한 방법 및 이러한 방법을 구현하기 위한 전자 디바이스가 이하에서 개시된다.
칩셋이 비밀 데이터로 프로그래밍되어야 할 때, 이는 일반적으로 웨이퍼 레벨, 즉 반도체 또는 그의 기판의 얇은 슬라이스 레벨에서 행해진다. 그러한 작동은 시간이 걸리며 많은 비용이 든다. 유료 TV 분야의 디코더와 같은 특정 디바이스의 제조사들에 의해 제조된 칩셋은, 예를 들어, 특별히 이러한 목적을 위해 보존될 수 있는 메모리 영역인 일회성 프로그래밍 가능 영역(OTP 영역)에 저장된 비밀 데이터가 제공된다. 그러나, 일부 제조사들은 부주의 때문에 또는 병렬 솔루션으로의 통합에 대해 관심있는 제3자에게 동일한 칩셋을 제공하기 위해서 그러한 비밀 데이터를 프로그래밍하지 않는다. 실제로, 조건부 액세스 시스템을 개발하는 하나 이상의 회사에 의해 동일한 칩셋이 사용되는 것이 일반적이다. 따라서, 동일한 칩셋이 몇몇 회사에서 사용될 수 있지만, 일반적으로 회사끼리 서로 다르게 구성될 것이다.
비밀 데이터는 통상적으로, 조건부 액세스 솔루션에 좌우되는 소비자 또는 고객 디바이스에 제안되는 일부 제품들 또는 서비스에 액세스하는 데 필요한 복호화 키 또는 키 파일들을 지칭한다. 칩셋 제조사 내에서, 이러한 비밀은 일반적으로 다소간 보호되는 서버의 일종인 소위 블랙 박스 내부에 일반 텍스트로 (즉, 암호화되지 않은 형태로) 저장된다. 제조사들은 이러한 비밀들을 반드시 알아야 하는데, 이는 이들이 관련 프로그래밍 키 슬롯에 제조 프로세스 동안 로딩되어야 하기 때문이다.
따라서, 아직 손대지 않은 OTP 영역을 갖는 프로그래밍되지 않은 칩셋이 사기성 목적을 위해 복구되는 위험이 있다. 예를 들어, 칩셋 제조사 내의 악의적인 사람은 아직 손대지 않은 OTP 영역을 갖는 프로그래밍되지 않은 칩셋뿐만 아니라 블랙 박스로부터 발행된 비밀 데이터에 액세스할 수 있다. 따라서, 그러한 사람은 이들 비밀 데이터로 프로그래밍된 원래의 칩셋의 모조품을 만드는 데 필요한 것들을 손에 넣을 것이다.
다른 시나리오에 따르면, 아직 손대지 않은 OTP 영역을 갖는 프로그래밍되지 않은 칩셋은 사기성 시장을 통해 획득될 수 있는데, 이는 일부 제조사들이 그들의 고객들 중 일부에게 그러한 칩셋을 합법적으로 제공하기 때문이다. 해커들은 비밀 데이터로 프로그래밍된 진짜 칩셋에 대한 물리적 공격을 감행할 수 있다. 공격이 성공하는 경우, 그러한 해커들은 진짜 칩셋을 복제하기 위해 비밀 데이터를 프로그래밍되지 않은 칩셋으로 복사할 수 있다. 따라서, 이러한 칩셋에 기반하여 조건부 액세스 시스템을 개발하는 회사들에게는 불법적인 접근법을 사용하는 사기꾼들에 의해 복사될 위험이 여전히 존재한다.
이러한 문제들을 극복하기 위해, 하나의 솔루션은 비밀 데이터를 수신하도록 설계된 OTP 영역에 대한 외부 액세스를 방지하는 것으로 구성될 수 있다. 실제로, 가령 칩셋이 조건부 액세스 이외의 목적을 위해 사용되도록 설계되어, 칩셋이 비밀 데이터가 로딩될 필요가 없는 경우, 칩셋 외부로부터 OTP 영역으로의 액세스는 예를 들어 퓨즈 역할을 하는 구성요소를 연소시킴으로써 방지될 수 있다. 그러나, 일부 제조사들은 프로그래밍 키 슬롯을 연소시키는 것을 자제하는데, 그 이유는 그들 고객들 중 일부가 비밀 데이터를 스스로 로딩하는 것을 선호하거나 다른 채널을 통해 이를 수행하는 것을 선호하기 때문이다.
게다가, 칩셋의 OTP 영역이 액세스 가능하게 유지된다는 사실, 즉, 프로그래밍되지 않은 경우에도 휴면 상태로 유지된다는 사실은 조건부 액세스 솔루션을 만드는 회사에게 관심사로 남아 있다. 실제로, 이러한 회사는, 예를 들어 회사의 인수 또는 합병의 경우에, 제3 회사로부터 이러한 칩셋을 합법적으로 복구하는 데에 관심을 가질 수 있다. 그러나, 복구된 칩셋들이 연소된 빈 키 슬롯 또는 연소된 OTP 영역을 포함하는 경우, 이어서 어떠한 후속 프로그래밍도 가능하지 않다는 것을 알아야 한다. 이 경우, 이러한 회사는 더 이상 비밀 데이터를 로딩하는 것이 가능하지 않은 프로그래밍되지 않은 칩셋을 복구하는 데 관심을 갖지 않는다.
따라서, 전술한 문제 및 단점을 적어도 부분적으로 극복하기 위한 효율적이고 신뢰할 수 있는 솔루션이 필요하다. 보다 구체적으로, 이러한 솔루션은 바람직하게는 비밀 데이터가 칩셋에 로딩되지 않은 경우 비밀 데이터를 저장하도록 설계된 아직 손대지 않은 OTP 영역을 연소시켜야 것을 피하며, 후속적으로 이러한 영역이 칩셋 제조 프로세스 후에 비밀 데이터가 로딩될 수 있다는 점을 방지할 수 있어야 한다. 따라서, 이러한 솔루션은 해커들이 초기 OTP 영역이 제공된 프로그래밍되지 않은 칩셋으로부터 가치 있는 비밀 데이터가 제공된 칩셋을 복제하는 것을 효율적으로 방지할 수 있어야 한다.
이러한 문제를 해결하기 위해, 본 개시내용은, 제1 양태로 전자 디바이스에서 리소스에 대한 액세스를 제어하기 위한 방법으로서, 상기 전자 디바이스는 일회성 프로그래밍 가능 영역을 갖는 영구 메모리와 연결된 보안 요소를 포함하고, 상기 방법은 보안 요소 또는 전자 디바이스가 부팅될 때 먼저 수행되는, 다음 단계들을 포함하는 방법을 제시한다:
- 영구 메모리에서 비밀 데이터 및 초기화 값 중 적어도 하나의 존재를 확인하는 단계 및
- 네거티브 이벤트의 경우, 초기화 값을 생성하고 이를 일회성 프로그래밍 가능 영역에 저장하는 단계,
- 포지티브 이벤트의 경우, 그리고 영구 메모리가 비밀 데이터를 포함하는 경우, 암호화 키 및, 영구 메모리가 초기화 값을 추가로 포함하는 경우에는, 초기화 값을 사용하는 알고리즘을 사용하여 비밀 데이터를 보안 요소 내에서 복호화하는 단계,
- 영구 메모리에 저장된 서명을 사용하여 비밀 데이터의 무결성을 확인하고, 성공적으로 완료 시에, 리소스에 대한 액세스를 제공하는 단계.
본 솔루션으로 인해, 비밀 데이터 및/또는 초기화 값이 칩셋의 제조 프로세스 동안 프로그래밍되지 않은 경우에, 후자는 동력이 공급될 때 이루어지는 제1 작동으로서 OTP 영역에 초기화 값을 자동으로 생성하고 저장할 것이다. 알고리즘의 복호화 프로세스는 암호화 키 및, 존재하는 경우, 초기화 값을 사용하도록 구성되기 때문에, 이러한 값은 영구 메모리에 저장된 비밀 데이터를 복호화하는 동안 고려되어야 하는 파라미터가 된다. 따라서, 원래의 칩셋을 복제하려는 시도로, 암호화된 비밀 데이터를 이로부터 영구 메모리로 복사하려는 것은 소용없는 일인데, 이는 원래의 비밀 데이터의 암호화가 반드시 초기화 값에 기초하여 만들어지지 않으며 초기화 값이 처음에 사용되었더라도 어떤 값이 초기에 사용되었는지를 유추할 가능성이 거의 없기 때문이다.
반면에, 알고리즘 및 암호화 키로 보안 요소를 프로그래밍한 엔티티만, 초기화 값이 OTP 영역에 저장된 후에 영구 메모리에 저장되어야 하는 적절한 비밀 데이터 또는 암호화된 비밀 데이터를 임의의 부과된 초기화 값으로 재계산하는 것이 가능하다. 따라서, 칩셋은 유리하게는 그러한 엔티티에 대해서만 후속 사용을 위해 복구될 수 있다.
바람직하게는, 비밀 데이터 및 서명 중 적어도 하나는 일회성 프로그래밍 가능 영역에 저장된다.
일 실시예에서, 암호화 키는 난독화 암호화 키이다. 바람직하게는, 암호화 키는 소스 데이터 세트 내에, 여전히 바람직하게는 알고리즘 내에 분산된다.
바람직한 실시예에 따르면, 암호화 키는, 일반적이며 제조 단계에서 복수의 전자 디바이스에 통합되는 글로벌 키이다. 바람직하게는, 비밀 데이터는 개인용 키를 사용하여 암호화되고, 방법은 글로벌 키 및, 존재하는 경우, 초기화 값으로부터 상기 개인용 키를 도출하기 위한 단계를 추가로 포함한다.
바람직한 실시예에서, 알고리즘은 비밀로 유지되는 독점적 또는 맞춤형 알고리즘이다.
또 다른 실시예에 따르면, 초기화 값은 랜덤 방식으로 생성되고/되거나 일회성 프로그래밍 가능 영역 내에 일반 텍스트로 저장된다.
일 실시예에서, 상기 비밀 데이터는, 존재하는 경우, 전자 디바이스의 제조 단계 동안 저장된다.
추가적인 실시예에 따르면, 존재를 확인하는 단계에 앞서, 전자 디바이스가 특정 회사 또는 시장용 조건인지를 선택기로 테스트하는 단계가 이루어지며, 전자 디바이스가 특정 회사 또는 시장용이 아닌 경우, 확인하는 단계가 실행되고, 전자 디바이스가 특정 회사 또는 시장용이 아닌 경우, 확인하는 단계는 생략된다.
제2 양태에 따르면, 본 개시내용은 또한 이의 실시예들 중 어느 것에 따라 또는 이들 실시예들의 임의의 가능한 조합에 따라 실행될 수 있는, 앞서 언급된 방법에 따라 리소스에 대한 액세스를 제어하기 위한 전자 디바이스에 관한 것이다. 적어도 일회성 프로그래밍 가능 영역을 갖는 영구 메모리와 연결된 보안 요소를 포함하는 상기 전자 디바이스로서, 보안 요소는 암호화 키로 알고리즘을 호스팅하고:
- 먼저, 보안 요소 또는 전자 디바이스가 부팅될 때, 영구 메모리에서 비밀 데이터 및 초기화 값 중 적어도 하나의 존재를 확인하도록 구성되고,
-네거티브 이벤트의 경우, 초기화 값을 생성하고 이를 일회성 프로그래밍 가능 영역에 저장하도록 구성되고,
- 포지티브 이벤트의 경우, 그리고 영구 메모리가 비밀 데이터를 포함하는 경우, 암호화 키 및, 영구 메모리가 초기화 값을 추가로 포함하는 경우에는, 초기화 값을 사용하는 상기 알고리즘을 통해 비밀 데이터를 복호화하도록 구성되고,
- 영구 메모리에 저장된 서명을 통해 비밀 데이터의 무결성을 확인하고, 성공적으로 완료 시에, 리소스에 대한 액세스를 제공하도록 구성되는 것을 특징으로 한다.
일 실시예에서, 전자 디바이스는 보안 요소에 의한 것 이외에 영구 메모리에 대한 액세스를 방지할 수 있는 임의의 보호 하드웨어가 없다.
다른 실시예에 따르면, 전자 디바이스는, 보안 요소 또는 전자 디바이스의 최초 부팅 전에, 비밀 데이터의 존재 또는 초기화 값의 존재를 확인할지와, 적용 가능하다면, 초기화 값을 생성 및 저장하는 것이 생략되어야 하는지의 여부를 결정하도록 구성된 선택기를 추가로 포함한다.
바람직하게는, 전자 디바이스는 시스템 온 칩으로 구성된다.
다른 실시예들 및 이점들이 상세한 설명에서 개시될 것이다.
본 개시내용에서 제시된 솔루션 및 실시예들은 비제한적인 예들로 해석되어야 하며, 다음의 첨부 도면들을 참조하여 더 잘 이해될 것이다:
도 1은 종래 기술에 따른, 리소스에 대한 액세스를 제어하기 위해 일반적으로 사용되는 공지된 전자 디바이스를 나타내며,
도 2는 그 안에 포함된 주요 엔티티를 나타내는 한편 본 방법이 구현될 수 있는 통상적인 환경의 예이며,
도 3은 본 솔루션의 방법의 흐름도를 도시하며,
도 4는 비밀 데이터의 무결성을 체크하기 위해 수행되는 단계들을 더 상세히 나타내며,
도 5는 비밀 데이터를 복호화하기 위해 개인용 키가 먼저 도출되어야 하는 변형을 도시하며,
도 6은 방법의 제1 단계가 추가적인 조건에 더 좌우되는 다른 실시예를 나타낸다.
도 1은 종래 기술에 따른, 리소스에 대한 액세스를 제어하기 위해 일반적으로 사용되는 공지된 전자 디바이스를 나타내며,
도 2는 그 안에 포함된 주요 엔티티를 나타내는 한편 본 방법이 구현될 수 있는 통상적인 환경의 예이며,
도 3은 본 솔루션의 방법의 흐름도를 도시하며,
도 4는 비밀 데이터의 무결성을 체크하기 위해 수행되는 단계들을 더 상세히 나타내며,
도 5는 비밀 데이터를 복호화하기 위해 개인용 키가 먼저 도출되어야 하는 변형을 도시하며,
도 6은 방법의 제1 단계가 추가적인 조건에 더 좌우되는 다른 실시예를 나타낸다.
도 1은 종래 기술에 따라 리소스(30)에 대한 액세스를 제어하기 위해 일반적으로 사용되는 공지된 전자 디바이스(10')를 나타낸다. 통상적으로, 이들 2개의 디바이스를 연결하는 이중 화살표에 의해 도 1에 도시된 것과 같이, 이러한 공지된 전자 디바이스(10')는 영구 메모리(2)에 연결된 보안 요소(1)를 포함한다. 보안 요소(1)는 영구 메모리(2)에 저장된 비밀 데이터(23)에 대한 액세스를 얻는 데 일반적으로 요구되는 암호화 데이터(3)를 포함한다. 후자는 바람직하게는 일회성 프로그래밍 가능(OTP) 메모리, 즉 데이터가 한번만 기록될 수 있도록 하는 특수한 유형의 비휘발성 메모리이다.
전자 디바이스(10') 외부로부터의 영구 메모리(2)에 대한 액세스는 퓨즈(4)를 통과하며, 이는 따라서, 비밀 데이터(23)를 영구 메모리(2)로 프로그래밍하는 단일 방식이다. 이를 위해, 일반적으로 스캔 체인(40)이 비밀 데이터를 메모리에 프로그래밍하기 위해서 뿐만 아니라 제조 단계에서 전자 디바이스(10')를 테스트하기 위해서도 사용된다. 스캔 체인은 체인을 형성하도록 서로 연결된 복수의 스캔 플립-플롭(flip-flops)을 포함한다. 스캔 플립-플롭 각각은 대체 소스로부터 그 입력을 받도록 하는 D 플립-플롭(즉, 데이터 또는 지연 플립-플롭)이다. 스캔 체인이 제공하는 기술은 집적 회로에서 모든 플립-플롭을 설정하고 관찰하는 간단한 방법을 제공함으로써 테스트를 더 용이하게 한다.
퓨즈(4)는, 예를 들어 제조 단계의 끝에서 전자 디바이스(10')가 일단 프로그래밍되면, 누구든 OTP 메모리를 재판독할 수 있는 것을 방지하는 하드웨어 디바이스이다. 퓨즈(4)는 일단 해당 디바이스가 프로그래밍되면 전자 디바이스의 외부로부터 영구 메모리를 판독 또는 기록하려는 임의의 시도를 어렵게 한다. 따라서, 예를 들어, 스캔 체인(40)을 사용하여 영구 메모리를 판독 또는 수정하는 것은 퓨즈(40)가 일단 활성화되거나 파괴되면 불가능한 상태로 유지될 것이다. 따라서, 퓨즈(4)는 영구 메모리에서 비밀 데이터가 판독 또는 수정되는 것으로부터 보호하는 효율적인 디바이스이다.
영구 메모리에 비밀 데이터를 저장할 필요가 없는 상이한 목적들을 위해 전자 디바이스(10')가 사용되는 경우, 예를 들어 비밀 데이터를 복사하여 원래의 것을 복제하려고 시도하는 악의적인 사람들에 의해 그러한 전자 디바이스의 임의의 재사용을 방지하기 위해 퓨즈(4)를 연소시키는 것이 권장될 수 있다. 그러나, 일단 퓨즈가 사용(연소)되면, 더 이상 영구 메모리(2)에 임의의 비밀 데이터를 프로그래밍할 가능성은 없다. 이는, 비밀 데이터가 필요치 않아 퓨즈가 연소되는 시장을 위해 설계된 경우에, 회사가 전자 디바이스(10')를 회수할 가능성도 없음을 의미한다.
이러한 문제를 극복하기 위해, 본 개시내용에 제시된 솔루션은 먼저 도 2가 제공하는 개요에 개략적으로 도시된 것과 같은 전자 디바이스(10)에서 구현될 수 있는 방법을 제안한다. 해당 전자 디바이스(10)는 칩, 칩셋, 집적 회로, 지적 재산성 블록, 스마트카드 또는 적어도 본 방법의 단계들을 구현하기에 적합한 임의의 다른 전자 디바이스일 수 있다. 해당 전자 디바이스(10)는 일회성 프로그래밍 가능(OTP) 영역(21)을 갖는 영구 메모리(20)에 연결되거나 이와 연결된 보안 요소(11)를 포함한다. 보안 요소는 하드웨어 보안 블록 또는 신뢰 실행 환경(TEE: Trusted Execution Environment), 즉 메인 프로세서 내부의 보안 영역으로 간주될 수 있다. 추가적으로, 그리고 점선을 통해 개략적으로 나타낸 것과 같이, 영구 메모리(20)는 전자 디바이스(10)의 내부 또는 외부에 위치할 수 있다. 그럼에도 불구하고, 영구 메모리(20)는 바람직하게는, 가령 그것이 다른 메모리에 의해 대체될 수 없게끔 보장하기 위해 전자 디바이스 내부에 위치한다. 영구 메모리는 적어도 하나의 OTP 영역(21)을 포함할 수 있거나 OTP 영역으로 이루어질 수 있다. 바람직한 실시예에서, 영구 메모리는 이들 중 하나가 도 2에 도시된 것과 같이 OTP 영역(21)이 되도록 적어도 2개의 부분으로 나뉘어진다.
본 방법의 주요 단계는 다음과 같이 도 3의 흐름도에 도시되어 있다:
제1 주요 단계(S1)는 영구 메모리(20)에서 비밀 데이터(23)의 존재 또는 초기화 값(27)의 존재를 확인하는 것을 목표로 한다. 위에서 언급된 표현에서 등위 접속사 "또는"은 배타적인 "또는"이 아님으로, 이는 "및/또는"을 의미할 수 있음을 유념해야 한다. 비밀 데이터(23)는 하나 또는 여러 복호화 키와 같이 적어도 하나의 비밀 데이터를 지칭할 수 있다. 이는 비밀로서 인정되기 때문에, 이러한 비밀 데이터(23)는 전자 디바이스(10) 외부로부터의 임의의 판독에 대해 보호된다. 보다 구체적으로, 비밀 데이터(23)는 암호화된 비밀 데이터와 관련되어, 영구 메모리(20) 내에 이해불가능한 형태로 저장된다. 주요 단계(S1)가 네거티브 응답(도 3에서 값 0으로 도시됨)을 제공하는 경우, 즉 초기화 값(27) 또는 비밀 데이터(23)가 영구 메모리(20)에 저장되지 않는 경우, 초기화 값(27)이 생성되어 OTP 영역(21)에 저장된다. 초기화 값은 첨부된 도면에서 IV로 표시되며, 또한 초기화 벡터로 지칭될 수 있다. 포지티브 이벤트(도 3의 값 1)에서, 제2 주요 단계 (S2)가 실행될 수 있다. 일 실시예에서, 초기화 값은 무작위로 생성될 수 있다. 따라서, 초기에 초기화 값 및 비밀 데이터가 영구 메모리(20)에 저장되지 않을 때, 제1 주요 단계(S1)에서 초기화 값이 생성되어 영구 메모리(20)에 저장된다. 이러한 방식으로, 영구 메모리(20)에 저장된, 생성된 초기화 값은 리소스(30)에 대한 액세스를 제어하기 위해 보안 요소(11) 및 이의 영구 메모리(20)의 임의의 추후 사용에 부과된다. 결과적으로, 리소스(30)에 대한 액세스를 제어하기 위해 보안 요소(11)를 사용하기 위해서는 생성된(부과된) 초기화 값에 대응하는 적절한 비밀 데이터 또는 암호화된 비밀 데이터가 영구 메모리(20)에 저장되어야 한다. 실제로, (아래에서 설명하는 것과 같이 알고리즘(13) 및 암호화 키(15)로) 보안 요소(11)를 프로그래밍한 엔티티만, 초기화 값이 생성되어 영구 메모리(20)에 저장된 후에 영구 메모리에 저장되어야 하는 적절한 비밀 데이터 또는 암호화된 비밀 데이터를 부과된(생성된) 초기화 값으로 계산하는 것이 가능하다. 따라서, 보안 요소(11) 및 그의 영구 메모리(20)는 유리하게는 그러한 엔티티에 대해서만 후속 사용을 위해 복구될 수 있다.
제2 주요 단계(S2)는 알고리즘(13)을 사용하여 보안 요소(11) 내에서 비밀 데이터(23)를 복호화하는 것을 목표로 한다. 도 3에 도시된 것과 같이, 이러한 알고리즘(13)은 적어도 비밀 데이터(23)를 복호화하기 위해 여러 입력을 사용한다. 특히, 알고리즘(13)은 적어도 암호화 키(15)와, 존재하는 경우, 초기화 값(27)을 사용한다. 이는, 초기화 값(27)이 OTP 영역에 저장되지 않은 경우, 비밀 데이터(27)가 제1 주요 단계(S1)에서 그의 존재를 확인할 때 이미 영구 메모리(20)에 프로그래밍되었기 때문에, 알고리즘(13)이 비밀 데이터(23)를 복호화하기 위한 추가 입력으로서 초기화 값을 필요로 하지 않음을 의미한다. 이러한 경우, 비밀 데이터를 적절하게 복호화하기 위해, 암호화된 비밀 데이터(27) 및 암호화 키(15)만이 알고리즘(13)에 의해 요구된다. 바람직하게는, 비밀 데이터(23)가 영구 메모리(20)에 저장되면, 초기화 값(27)이 자동으로 존재하게 된다. 이는 통상적으로 비밀 데이터(23)가 영구 메모리에 프로그래밍되어야 하는 경우, 초기화 값(27)을 프로그래밍하여 획득될 수 있다. 이는 초기화 값(27)과 비밀 데이터(23) 둘 모두를 프로그래밍하여 달성될 수 있다.
제3 주요 단계(S3)는 도 4에 더 잘 예시되어 있으며, 서명(22)을 사용하여 비밀 데이터(23)의 무결성을 확인하는 것을 목표로 한다. 이러한 서명(22)은 영구 메모리(20), 예를 들어 OTP 영역(21)과 별개인 제2 영역에 저장된다. 통상적으로, 서명(22)을 저장하는 것은, 예를 들어 전자 디바이스(10)의 제조 프로세스 동안 또는 해당 전자 디바이스가 제3자에게 제공되거나 판매되기 전에, 비밀 데이터(23)가 저장되는 것과 동시에 수행된다. 서명(22) 및 비밀 데이터(23)는 영구 메모리(20) 내의 레코드(26)(도 2)에 함께 배치될 수 있다.
도 4를 참조하면, 제3 주요 단계(S3)는 서명(22)을 검증하는 것을 목표로 한다. 이를 위해, 영구 메모리(20)에 저장된 서명(22)은, 전용 알고리즘 또는 이전에 개시된 동일한 알고리즘(13)일 수 있는 알고리즘에 입력됨으로써, 후자가 비밀 데이터(23)를 복호화하고 서명(22)을 확인하도록 구성된 경우에 보안 요소(11)에 의해 판독된다.
통상적으로 서명(22)은 먼저, 상기 비밀 데이터(23)에 대해 소위 해시 또는 일방향 함수를 적용한 후에 비밀 데이터(23)를 다이제스트한 결과이다. 따라서, 다이제스트는 또한 도 4에 해시(SD)로 표시되며, 여기서 약어 SD는 비밀 데이터(23)를 나타낸다. 이어서, 다이제스트는 해당 암호화 키로부터 도출된 키의 암호화 키(15)일 수 있는 암호화 키를 사용하여 암호화된다. 암호화 결과는 식 S=[해시(SD)]K로 나타낼 수 있는 서명(22)을 제공하며, 여기서 K는 전술한 암호화 키(15)일 수 있다.
서명(22)은 주요 단계(S3)에서 수행되는 확인 작동 동안 검증된다. 이를 위해, 예를 들어 암호화 키(15)와 같은 적합한 키는 다이제스트 해시(SD)를 회수하도록 서명(22)을 복호화하는 데 사용된다. 서명(22)의 다이제스트를 생성하기 위해 이전에 사용된 것과 동일한 해시 함수는 보안 요소(11)에 의해 사용되며, 특히, 이전 주요 단계(S2)에서 알고리즘(13)에 의해 획득된 비밀 데이터(23)를 사용하여 제2 다이제스트 해시'(SD)를 계산하기 위해 서명을 확인하는 데 전용되는 알고리즘과 동일하다. 도 4에 개략적으로 도시된 것과 같이, 영구 메모리(20)로부터 수신한 서명(22)으로부터 생성된 다이제스트 수신 해시(SD)가 보안 요소(11)에 의해 계산된 제2 다이제스트 해시'(SD)와 동일한 경우, 비밀 데이터(23)는 비밀 데이터의 무결성이 정상적으로 검증되었기 때문에 인증된 또는 유효한 것으로 정의될 수 있다.
이들 3개의 주요 단계(S1, S2 및 S3)는 도 3에 도시된 정사각형 파선(S) 내에 개략적으로 도시되어 있다. 주요 단계(S1, S2 및 S3)는 보안 요소(11) 또는 전자 디바이스(10)가 활성화되자마자, 즉 전력이 공급되거나 부팅되자마자 실행된다는 것에 유의할 수 있다. 이러한 요소 또는 디바이스의 점화는 단계(S0)에 도시된 전력 심볼로 개략적으로 도시된다. 또한, 제1 주요 단계(S1)는 비밀 데이터(23), 보다 구체적으로는 암호화된 비밀 데이터(23)의 존재, 또는 초기화 값(27)의 존재를 확인하는 대신에, 영구 메모리(20)가 비어있는지 여부를 확인하는 것일 수 있다는 점에 유의해야 한다. 그러한 경우에, 영구 메모리가 비어있는 경우, 초기화 값(27)이 자동으로 생성되고 OTP 영역(21)에 저장된다. 초기화 값(27)이 바람직하게는 알고리즘(13)에 의해 보안 요소(11) 내에 생성되지만, 예를 들어 특정 유닛 내에서 실행되는 별개의 또는 전용 루틴에 의해 생성될 수 있다는 점 또한 언급되어야 한다. 게다가, 암호화 키(15)는 보안 요소(11)에 의해서만 판독될 수 있는 키이다. 이는 임의의 다른 디바이스 또는 채널은 암호화 키(15)를 판독할 수 없는 상태임을 의미한다.
바람직한 실시예에 따르면, 그리고 도 3의 흐름도에 개략적으로 도시된 것과 같이, 비밀 데이터(23)의 존재 또는 초기화 값(27)의 존재를 확인하고, 존재하는 경우(즉, 적용 가능한 경우), 초기화 값(27)을 생성하고 이를 OTP 영역(21)에 저장하는 것을 목표로 하는 제1 주요 단계(S1)는 보안 요소(11) 또는 전자 디바이스(10)가 부팅될 때 먼저 수행된다. 따라서, 이러한 실시예로 인해, 이러한 제1 확인을 건너 뛰거나 생략하는 수단은 없다.
또 다른 실시예에 따르면, 비밀 데이터(23) 및/또는 서명(22)은 OTP 영역(21)에 저장될 수 있다. 비밀 데이터(23)와 그의 서명(22) 모두가 OTP 영역(21)에 저장되는 경우, 영구 메모리는 예컨대 단일 일회성 프로그래밍 가능 영역에서 이루어질 수 있다.
암호화 키(15)는 바람직하게는 보호되는 형태로 보안 요소(11)에 저장된다. 이를 위해, 암호화 키(15)는 보안 요소(11) 내에 숨겨질 수 있다. 예를 들어, 이러한 키는 도 2에 도시된 것이 같은 난독화 암호화 키일 수 있다. 일 실시예에서, 암호화 키(15)는 알고리즘(13)일 수 있는 소스 데이터 세트 내에 내장되거나 분산된다. 이 경우, 암호화 키는 소위 넷리스트(netlist) 키, 즉 프로그램 코드 형태로 제시되는 키로 지칭될 수 있는데, 이는 프로그램 코드는 또한 당업자에 의해 "넷리스트"라고 지칭되기 때문이다. 소위 넷리스트는, 일단 프로그래밍되면, 적어도 하나의 원하는 기능 또는 애플리케이션을 갖게 될 프로그래밍 디바이스용 코드의 형태로 제시된 소스 데이터 세트로 간주될 수 있다. 코드는 고수준 소프트웨어 언어일 수 있고, 프로그램 코드는 소위 소스 파일에 저장될 수 있다. 따라서, 암호화 키는 분해된 형태로 알고리즘(13)의 프로그램 코드 전체에 분산됨으로써 숨겨질 수 있다. 이러한 경우, 프로그램 코드의 설계자만이 프로그램 코드의 어느 부분이 또는 비트가 암호화 키에 해당하는지를 알 수 있다. 따라서, 악의적인 사람이 이러한 프로그램 코드로부터 암호화 키(15)를 재구성하는 것이 매우 어렵거나 심지어 불가능해진다.
바람직한 실시예에 따르면, 암호화 키(15)는 글로벌 키, 즉 일반적이며 통상적으로 제조 단계에서 복수의 전자 디바이스(10)에 통합되는 키이다. 암호화 키(15)는 보안 요소(11) 내의 잠재적인 공격에 대해 고도로 보안될 수 있는 키이기 때문에, 이러한 키는 유리하게는 과도한 위험을 감수하지 않으며 다수의 전자 디바이스에 일반적일 수 있다. 따라서, 암호화 키와 전자 디바이스 사이의 관계를 관리하는 것 또한 보다 간단해진다.
또 다른 실시예에 따르면, 비밀 데이터(23)는 도 2에 개략적으로 도시된 것과 같이 개인용 키(25)를 사용하여 암호화된다. 이 경우에, 본 방법은, 예를 들어 제1 주요 단계와 제2 주요 단계(S1, S2) 사이에서 행해지는 추가적인 단계를 더 포함하며, 이는 도 5에 도시되고, 개인용 키(25)를 글로벌 키(즉, 암호화 키(15)) 및, 존재하는 경우, 초기화 값(27)으로부터 도출하는 것을 목표로 한다. 그러한 도출은 알고리즘(13), 예컨대 도 5에 도시된 것과 같이 이러한 알고리즘의 전용 부분에 의해 수행될 수 있다.
또 다른 바람직한 실시예에 따르면, 알고리즘(13)은 도 2의 관련 픽토그램에 적용된 마스크를 통해 개략적으로 도시된 것과 같이 비밀로 유지되는 독점 또는 맞춤형 알고리즘이다. 이는, 보안 요소(11)에서 구현된 알고리즘(13)이 당업자에게 그 작동이 잘 알려진 AES 또는 DES와 같은 공통 암호화 알고리즘이 아니지만, 예컨대 특정 작업, 작동, 조직 및/또는 명령어에 의해 맞춤화되는 알고리즘임을 의미한다. 따라서, 그리고 이러한 독점 알고리즘(13)이 비밀로 유지된다는 사실로 인해, 영구 메모리(20)에 저장된 비밀 데이터(23)을 복호화하는 것은 해커에게 매우 까다로운 일이 되는데, 이는 해커가 알고리즘(13)의 작업에 관한 표시가 없으며 보안 요소(11) 내의 암호화 키를 복구하는 방법에 대한 추가 표시가 없기 때문이다.
일 실시예에 따르면, 초기화 값(27)은 예를 들어 랜덤 생성기 또는 값-생성 랜덤 함수를 사용하여 랜덤 방식으로 생성된다. 바람직하게는, 초기화 값(27)이 영구 메모리(20) 내에, 특히 이러한 메모리의 OTP 영역(21) 내에 일반 텍스트로 저장된다. 실제로, 보안 요소(11)에는 암호화 키(15)를 사용해 비밀 데이터(27)를 올바르게 복호화하기 위해 초기화 값이 어떻게 그리고 언제 알고리즘(13)에서 사용되어야 하는지를 알려줄 안내가 없기 때문에 초기화 값(27)은 암호화되지 않은 형태로 유지될 수 있다. 또한, 일반 텍스트로 초기화 값(27)을 유지하는 것은, 예를 들어, 상이한 시장용으로 초기에 의도되었기 때문에 비밀 데이터(27)가 영구 메모리(20)에 저장되지 않았던 전자 디바이스(10)를, 예를 들어 재사용하기 위해, 새로운 비밀 데이터가 계산되어야 할 때 작업을 단순화할 수 있게 한다.
바람직한 실시예에서, 비밀 데이터(23)는, 존재하는 경우, 전자 디바이스(10)의 제조 단계 동안 저장된다.
주요 단계(S1) 동안 영구 메모리에 초기화 값(27)을 프로그래밍하는 것을 포함하는 보안 요소(11)의 부팅 시퀀스가 정확하게 수행되지 않는 경우가 있을 수 있다. 실제로, 가령 제조 프로세스 동안 비밀 데이터(23)의 프로그래밍이 완료되기 전에 전자 디바이스(10)가 시작하지 않을 것임을 보장할 수 없는 경우들이 있다. 실제로, 일부 제조사들은 스캔 체인(40)을 사용하는 대신에 전자 디바이스(10)를 활성화함으로써 영구 메모리의 프로그래밍을 수행한다. 제조사가 영구 메모리(20)에 비밀 데이터(23)를 프로그래밍하려고 의도한 반면에 발생하는 경우, 초기화 값(27)이 의도치 않게 생성되고 OTP 영역(21)에 저장될 것이다. 전술한 비밀 데이터(27)는 그러한 초기화 값을 고려하도록 설계되지 않았으며, 알고리즘(13)의 작동, 특히 초기화 값이 암호화 키(15)와 조합되어 처리되는 방법이 비밀로 유지되기 때문에, 초기화 값(27)을 고려하지 않고 영구 메모리에 프로그래밍된 암호화된 비밀 데이터(27)는 알고리즘(13)이 복호화 후에 적절한 비밀 데이터로 반환되도록 하지 않을 것이다.
이러한 시나리오로부터 생성되는 문제를 방지하기 위해, 본 방법은 또한 도 6에 개략적으로 나타낸 축소 실시예에 따라 제안된다. 이 실시예에서, 비밀 데이터(23)의 존재 또는 초기화 값(27)의 존재를 확인하고, 존재하는 경우(즉, 적용 가능한 경우), 초기화 값(27)을 생성하고 이를 OTP 영역(21)에 저장하는 것을 목표로 하는 제1 주요 단계(S1)는 보안 요소(11) 또는 전자 디바이스(10)의 최초 부팅 전에 설정된 조건(19)에 좌우된다. 통상적으로 제조 프로세스 동안 설정될 수 있는 그러한 조건(19)은 전자 디바이스(10)가 특정 회사 또는 시장용으로 의도되는지 여부를 결정할 수 있게 한다. 그렇다면, 제1 주요 단계(S1)는 적어도 생략될 수 있다. 제1 주요 단계(S1) 전에 테스트되는 조건(19)은 선택기(18)에 의해 미리 결정될 수 있다. 도 6에 도시된 것과 같이, 선택기(18)는 비밀 데이터의 존재 또는 초기화 값의 존재를 확인하는 것과, 존재하는 경우(즉, 적용 가능한 경우), 초기화 값(27)을 생성 및 저장하는 것이 생략되어야 하는지의 여부를 결정하기 위해 설정될 수 있다. 다시 말해, 선택기(18)는, 예컨대, 제1 주요 단계(S1) 이전에 테스트될 상수에 관련 값(예를 들어, 0 또는 1)을 할당함으로써, 전자 디바이스(10)가 특정 시장 또는 회사용으로 의도되는지의 여부를 결정하도록 설정될 수 있다. 도 6에 도시된 예에서, 선택기(18)에 의해 설정된 상수(C)는 전자 디바이스(10)가 특정 시장 또는 회사용으로 의도된 것이 아님을 보여주는데, 이는 체크된 박스가 특정 회사가 해당함을 보여주는 픽토그램과 대응하기 때문이다. 결과적으로, 상수(C) 값은 0과 동일할 수 있다. 이어서, 전자 디바이스(10)가 전술한 특정 시장 또는 회사용으로 의도되었는지의 여부를 결정하는 것을 목표로 하는 테스트는 제1 주요 단계(S1)에 이르기 전에 수행된다. 본 예에 따르면, 조건(19)은 충족되지 않고, 관련 테스트에 의해 제공된 답변은 "아니오(No)"이거나, 0과 동일한 값을 갖는다. 따라서, 전자 디바이스(10)가 선택기(18)를 사용하여 미리 정의될 수 있는 특정 시장 또는 회사용으로 의도되지 않기 때문에, 제1 주요 단계(S1)가 실행된다. 반면에, 조건(19)과 관련한 테스트에 대한 응답이 "예(Yes)"이거나 1과 동일한 값을 갖는 경우, 제1 주요 단계(S1)는 생략될 수 있다. 전술한 회사 또는 시장이 정의될 수 있다는 점을 고려하면, 이러한 경우, 비밀 데이터(23)가 영구 메모리에 저장될 필요가 있음에 따라, 초기화 값(27)이 메모리에, 특히, 소거될 수 없으며 오직 한 번만 기록될 수 있는 OTP 영역(21)에 의도치 않게 프로그래밍될 임의의 위험이 더 이상 없다. 따라서, 이러한 실시예는, 스캔 체인(40)의 사용에 기초하지 않는 프로그래밍 프로세스 동안 잠재적인 문제가 비자발적으로 발생할 수 있는 경우에 전자 디바이스(10)가 낭비되는 것을 방지한다.
제2 양태에서, 본 솔루션은 또한 전술한 방법 또는 그의 실시예들의 임의의 가능한 조합에 따른 리소스(30)에 대한 액세스를 제어하기 위한 전자 디바이스(10)에 관한 것이다. 도 2에 예시된 것과 같이, 이러한 전자 디바이스(10)는 적어도 일회성 프로그래밍 가능 영역(21)을 갖는 영구 메모리(20)에 연결된 보안 요소(11)를 포함한다. 보안 요소(11)는 알고리즘(13) 및 암호화 키(15)를 호스팅한다. 후자는 알고리즘과 분리될 수 있거나, 바람직하게는 알고리즘(13)에 내장, 매립, 또는 통합될 수 있다. 전자 디바이스(10), 바람직하게는 보안 요소(11)는:
- 영구 메모리(20)에서 비밀 데이터(23), 특히 암호화된 비밀 데이터(23)의 존재, 또는 초기화 값(27)의 존재를 확인하고, 네거티브 이벤트의 경우, 초기화 값(27)을 생성하고 이 초기화 값을 OTP 영역(21)에 저장하도록 구성되고,
- 영구 메모리(20)에 저장된 서명(22)을 사용하여, 비밀 데이터(23), 특히 암호화된 비밀 데이터(23)를 복호화하고, 성공적으로 완료 시에, 리소스(30)에 대한 액세스를 제공하도록 구성된다.
비밀 데이터(23)의 존재 또는 초기화 값(27)의 존재를 확인하는 것은 여러 방식들을 통해 달성될 수 있다. 예를 들어, 영구 메모리의 나머지 자유 공간(보다 구체적으로는, 비밀 데이터를 저장하는 데 전용되는 영역)은, 예컨대, 어떠한 데이터도 저장되지 않았을 때 이러한 메모리의 용량과 비교함으로써 결정될 수 있다. 또 다른 방식으로, 메모리는 저장된 데이터, 특히 저장된 비밀 데이터(23)를 검출하기 위해 스캔될 수 있다. 대안적으로, 영구 메모리 내에서 마커로서의 역할을 하는 레지스터 또는 파라미터는, 일단 데이터 또는 비밀 데이터(23)가 메모리에 저장되면 미리 결정된 값으로 설정될 수 있다. 추가적인 예로서, 영구 메모리에 대해 기록된 액세스는 비밀 데이터(23)가 이 안에 저장되자마자, 그리고 메모리의 전체 용량에 미치지 않더라도 잠길 수 있다. 또 다른 예로서, OTP 영역(21)에는, 영역이 비어 있는지(즉, 공간이 완전히 없는지), 프로그래밍되었는지(즉, 이미 비밀 데이터 또는 초기화 값을 포함하는지) 또는 잠겼는지의 여부를 나타내기에 적합한 제어 비트가 제공될 수 있다. 이러한 제어 비트 덕분에, 보안 요소(11)는 초기화 값을 생성하여 OTP 영역(21)에 저장해야 하는지의 여부를 결정할 수 있다. 본 명세서에서 예로서 제공되는 이러한 작동들은 전용 루틴 또는 알고리즘(13)을 통해 보안 요소(11)에 의해 수행될 수 있다.
초기화 값(27)을 생성하는 것을 목표로 하는 작동은 알고리즘(13)에 의해 또는, 예를 들어 랜덤 생성기에 의해 수행될 수 있다. 그러한 생성기는, 존재하는 경우, 바람직하게는 보안 요소 내부에 위치하여, 초기 값의 생성을 방지하려고 하는 악의적인 사람에 의해 물리적으로 파괴되는 것을 피하도록 한다. 특히 이러한 이유로, 보안 요소(11)는 모놀리식 폼 팩터(monolithic form factor)를 가질 수 있다.
비밀 데이터(23)의 무결성을 체크하는 것을 목표로 하는 작동은 또한 통상적으로 알고리즘(13) 또는 전용 루틴을 사용하여 보안 요소(11)에 의해 수행될 수 있다.
이러한 작동들을 관리하기 위해, 보안 요소(11)는 적어도 신뢰 실행 환경에 위치하는 중앙 처리 유닛인 것으로 간주될 수 있다. 보안 요소(11)는 스마트 카드에 위치할 수 있으며, 이는 유료 TV 분야에서, 예를 들어 조건부 액세스 모듈(CAM: Conditional Access Module) 또는 임의의 다른 스마트 카드 판독기에 의해 판독될 수 있다. 이러한 분야에서, 스마트 카드(보안 모듈이라고도 함)는 디스크램블링 키의 복호화와 조건부 액세스 권한의 보안뿐만 아니라 사용자의 권한을 저장하는 것을 담당한다. 따라서, 보안 요소(11)는 매우 민감한 데이터를 관리하도록 의도될 수 있기 때문에 굉장히 중요한 디바이스로 간주될 수 있다.
도 2에 도시된 것과 같이, 바람직하게는 전자 디바이스(10)에는 도 1의 퓨즈(4)와 같은, 보안 요소(11) 이외의 임의의 수단에 의해 영구 메모리(20)에 대한 액세스를 방지할 수 있는 임의의 보호 하드웨어가 없다.
도 6과 관련하여 개시된 것과 같이, 전자 디바이스(10)는 또한, 보안 요소(11) 또는 전자 디바이스(10)의 최초 부팅 전에, 비밀 데이터(23)의 존재 또는 초기화 값(27)의 존재를 확인하고, 존재하는 경우(즉, 적용 가능한 경우), 초기화 값을 생성하고 영구 메모리(20)에 저장할 필요가 있는지를 설정 또는 결정하도록 구성된 선택기(18)을 포함할 수 있다. 선택기(18)는, 전자 디바이스(10)에게 그것이 특정 시장 또는 회사용으로 의도되었는지를 해당 전자 디바이스(10) 또는 그의 보안 요소(11)가 처음 시작할 때 알리는 표시(예를 들어, 상수에 저장된 값 0 또는 1)로 간주될 수 있다. 이전에 언급된 것들과 유사한 이유로, 그러한 선택기(18)는 바람직하게는 보안 요소(11) 내부에 위치할 것이다.
또 다른 바람직한 실시예에 따르면, 전자 디바이스(10)는 시스템 온 칩(SoC), 즉 컴퓨터 또는 다른 전자 시스템의 모든 또는 대부분의 구성요소들을 통합하는 집적 회로(칩으로도 알려짐)이다. 이들 구성요소들은 통상적으로 중앙 처리 유닛(CPU), 메모리(예컨대, 임시 메모리), 입력/출력 포트 및 2차 저장소를 포함할 수 있다. 이들 모든 구성요소들은 단일 기재 또는 마이크로칩 상에 위치할 수 있고, 바람직하게는 모놀리식 폼 팩터로 제조될 수 있다.
본 방법(제1 양태)과 관련하여 개시된 임의의 특징 또는 특징들의 조합이 또한, 적용 가능하다면, 전자 디바이스(10)(제2 양태)의 일부일 수 있다는 점에 유의해야 한다. 유사하게, 본 솔루션의 제2 양태와 관련하여 개시된 임의의 특징 또는 특징들의 조합이, 적용 가능하다면, 제1 양태에서 고려될 수 있다.
최종 고려사항
본 발명 대상의 개요가 특정한 예시적인 실시예들을 참조하여 설명되었지만, 본 발명의 실시예들의 더 넓은 사상 및 범위로부터 벗어남이 없이 다양한 수정들 및 변경들이 이러한 실시예들에 대해 이루어질 수 있다. 예를 들어, 그의 특징들의 다양한 실시예들이 당업자에 의해 혼합 및 매칭되거나 선택적인 것으로 될 수 있다. 따라서, 상세한 설명은 제한적인 의미로 해석되지 않아야 하고, 다양한 실시예들의 범위는 첨부된 청구항들과 함께, 그러한 청구항들에 부여되는 등가물들의 전체 범위에 의해서만 한정된다.
Claims (14)
- 전자 디바이스(10)에서 리소스(30)에 대한 액세스를 제어하기 위한 방법으로서, 상기 전자 디바이스(10)는 일회성 프로그래밍 가능 영역(21)을 갖는 영구 메모리(20)와 연결된 보안 요소(11)를 포함하고, 상기 방법은 보안 요소 또는 전자 디바이스가 부팅될 때 먼저 수행되는, 다음 단계들을 포함하는, 방법:
- 영구 메모리(20)에서 비밀 데이터(23) 및 초기화 값(27) 중 적어도 하나의 존재를 확인하는 단계, 및
- 네거티브 이벤트의 경우, 초기화 값(27)을 생성하고 이를 일회성 프로그래밍 가능 영역(21)에 저장하는 단계,
- 포지티브 이벤트의 경우, 그리고 영구 메모리가 비밀 데이터(23)를 포함하는 경우, 암호화 키(15) 및, 영구 메모리가 초기화 값(27)을 추가로 포함하는 경우에는, 초기화 값(27)을 사용하는 알고리즘(13)을 사용하여 비밀 데이터(23)를 보안 요소(11) 내에서 복호화하는 단계,
- 영구 메모리(20)에 저장된 서명(22)을 사용하여 비밀 데이터(23)의 무결성을 확인하고, 성공적으로 완료 시에, 리소스(30)에 대한 액세스를 제공하는 단계. - 제1항에 있어서, 비밀 데이터(23) 및 서명(22) 중 적어도 하나는 일회성 프로그래밍 가능 영역(21)에 저장되는, 방법.
- 제1항 또는 제2항 중 어느 한 항에 있어서, 암호화 키(15)는 난독화 암호화 키인, 방법.
- 제1항 내지 제3항 중 어느 한 항에 있어서, 암호화 키(15)는 소스 데이터 세트 내에, 바람직하게는 알고리즘(13) 내에 분산되는, 방법.
- 제1항 내지 제4항 중 어느 한 항에 있어서, 암호화 키(15)는, 일반적이며 제조 단계에서 복수의 전자 디바이스(10)에 통합되는 글로벌 키인, 방법.
- 제5항에 있어서, 비밀 데이터(23)는 개인용 키(25)를 사용하여 암호화되고, 방법은 글로벌 키(15) 및, 존재하는 경우, 초기화 값(27)으로부터 상기 개인용 키(25)를 도출하기 위한 단계를 추가로 포함하는, 방법.
- 제1항 내지 제6항 중 어느 한 항에 있어서, 알고리즘(13)은 비밀로 유지되는 독점적 또는 맞춤형 알고리즘인, 방법.
- 제1항 내지 제7항 중 어느 한 항에 있어서, 초기화 값(27)은 랜덤 방식으로 생성되고/되거나 일회성 프로그래밍 가능 영역(21) 내에 일반 텍스트로 저장되는, 방법.
- 제1항 내지 제8항 중 어느 한 항에 있어서, 상기 비밀 데이터(23)는, 존재하는 경우, 전자 디바이스(10)의 제조 단계 동안 저장되는, 방법.
- 제1항 내지 제9항 중 어느 한 항에 있어서, 확인하는 단계에 앞서, 전자 디바이스(10)가 특정 회사 또는 시장용 조건(19)인지를 선택기(18)로 테스트하는 단계가 이루어지며, 전자 디바이스(10)가 특정 회사 또는 시장용이 아닌 경우, 확인하는 단계가 실행되고, 전자 디바이스(10)가 특정 회사 또는 시장용이 아닌 경우, 확인하는 단계는 생략되는, 방법.
- 제1항 내지 제10항 중 어느 한 항의 방법에 따라 리소스(30)에 대한 액세스를 제어하기 위한 전자 디바이스(10)로서, 적어도 일회성 프로그래밍 가능 영역(21)을 갖는 영구 메모리(20)에 연결된 보안 요소(11)를 포함하고, 보안 요소(11)는 암호화 키(15)로 알고리즘(13)을 호스팅하고:
- 먼저, 보안 요소 또는 전자 디바이스가 부팅될 때, 영구 메모리(20)에서 비밀 데이터(23) 및 초기화 값(27) 중 적어도 하나의 존재를 확인하도록 구성되고,
- 네거티브 이벤트의 경우, 초기화 값(27)을 생성하고 이를 일회성 프로그래밍 가능 영역(21)에 저장하도록 구성되고,
- 포지티브 이벤트의 경우, 그리고 영구 메모리가 비밀 데이터(23)를 포함하는 경우, 암호화 키(15) 및, 영구 메모리가 초기화 값(27)을 추가로 포함하는 경우에는, 초기화 값(27)을 사용하는 상기 알고리즘(13)을 사용하여 비밀 데이터(23)를 복호화하도록 구성되고,
- 영구 메모리(20)에 저장된 서명(22)을 사용하여 비밀 데이터(23)의 무결성을 확인하고, 성공적으로 완료 시에, 리소스(30)에 대한 액세스를 제공하도록 구성되는 것을 특징으로 하는, 디바이스(10). - 제11항에 있어서, 보안 요소(11)에 의한 것 이외에 영구 메모리(20)에 대한 액세스를 방지할 수 있는 임의의 보호 하드웨어(4)가 없는, 디바이스(10).
- 제11항 또는 제12항에 있어서, 보안 요소(11) 또는 전자 디바이스(10)의 최초 부팅 전에, 비밀 데이터(23)의 존재 또는 초기화 값(27)의 존재를 확인할지와, 존재하는 경우, 초기화 값(27)을 생성 및 저장하는 것이 생략되어야 하는지의 여부를 결정하도록 구성된 선택기(18)를 추가로 포함하는, 디바이스(10).
- 제11항 내지 제13항 중 어느 한 항에 있어서, 시스템 온 칩으로 구성되는, 디바이스(10).
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP21151382.5A EP4030682A1 (en) | 2021-01-13 | 2021-01-13 | Method and device for controlling access to a resource |
EP21151382.5 | 2021-01-13 | ||
PCT/EP2021/086340 WO2022152500A1 (en) | 2021-01-13 | 2021-12-16 | Method and device for controlling access to a resource |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230131864A true KR20230131864A (ko) | 2023-09-14 |
Family
ID=74181022
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237024752A KR20230131864A (ko) | 2021-01-13 | 2021-12-16 | 리소스에 대한 액세스를 제어하기 위한 방법 및 디바이스 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20240064026A1 (ko) |
EP (2) | EP4030682A1 (ko) |
KR (1) | KR20230131864A (ko) |
CN (1) | CN116724310A (ko) |
WO (1) | WO2022152500A1 (ko) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201633207A (zh) * | 2014-12-12 | 2016-09-16 | 納格維遜股份有限公司 | 裝置金鑰保護 |
GB201511385D0 (en) * | 2015-06-29 | 2015-08-12 | Nagravision Sa | Secure programming of secret data |
-
2021
- 2021-01-13 EP EP21151382.5A patent/EP4030682A1/en not_active Withdrawn
- 2021-12-16 KR KR1020237024752A patent/KR20230131864A/ko unknown
- 2021-12-16 US US18/261,073 patent/US20240064026A1/en active Pending
- 2021-12-16 EP EP21840548.8A patent/EP4278559A1/en active Pending
- 2021-12-16 CN CN202180090091.0A patent/CN116724310A/zh active Pending
- 2021-12-16 WO PCT/EP2021/086340 patent/WO2022152500A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN116724310A (zh) | 2023-09-08 |
WO2022152500A1 (en) | 2022-07-21 |
EP4278559A1 (en) | 2023-11-22 |
EP4030682A1 (en) | 2022-07-20 |
US20240064026A1 (en) | 2024-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11003781B2 (en) | Root key processing method and associated device | |
Trimberger et al. | FPGA security: Motivations, features, and applications | |
TWI567580B (zh) | 用於防止惡意軟體執行的方法與系統 | |
EP2115655B1 (en) | Virtual secure on-chip one time programming | |
US20230020278A1 (en) | Secure boot assist for devices, and related systems, methods and devices | |
US7694121B2 (en) | System and method for protected operating system boot using state validation | |
KR100851631B1 (ko) | 보안 모드 제어 메모리 | |
EP1785902B1 (en) | Decryption key table access control on ASIC or ASSP | |
US20070162964A1 (en) | Embedded system insuring security and integrity, and method of increasing security thereof | |
US20070297606A1 (en) | Multiple key security and method for electronic devices | |
EP1638033A2 (en) | Self testing and securing RAM system and method | |
KR20070001893A (ko) | 탬퍼-레지스턴트 트러스티드 가상 머신 | |
TW201633207A (zh) | 裝置金鑰保護 | |
US20160055331A1 (en) | Detecting exploits against software applications | |
Trimberger et al. | FPGA security: From features to capabilities to trusted systems | |
JP4791250B2 (ja) | マイクロコンピュータおよびそのソフトウェア改竄防止方法 | |
KR102592286B1 (ko) | 비밀 데이터의 보안 프로그래밍 | |
Sami et al. | End-to-end secure soc lifecycle management | |
US10387653B2 (en) | Secure provisioning of semiconductor chips in untrusted manufacturing factories | |
KR20230131864A (ko) | 리소스에 대한 액세스를 제어하기 위한 방법 및 디바이스 | |
EP3930254B1 (en) | Method for setting permissions for cryptographic keys, computer program and cryptographic processing system | |
TIEMPO et al. | Security Target Lite of the Security Enclave in SEQUANS communication SoC Monarch 2/N-SQN3401 | |
Amato et al. | Mobile Systems Secure State Management | |
CN117763587A (zh) | 一种算法加密的处理方法、装置、设备及介质 | |
Feller et al. | Requirements for Trustworthiness |