Nothing Special   »   [go: up one dir, main page]

KR20210069473A - 사용자에 대한 인증을 통해 유저 데이터에 대한 권한을 부여하는 시큐리티 프로세서 및 이를 포함하는 컴퓨팅 시스템 - Google Patents

사용자에 대한 인증을 통해 유저 데이터에 대한 권한을 부여하는 시큐리티 프로세서 및 이를 포함하는 컴퓨팅 시스템 Download PDF

Info

Publication number
KR20210069473A
KR20210069473A KR1020190159351A KR20190159351A KR20210069473A KR 20210069473 A KR20210069473 A KR 20210069473A KR 1020190159351 A KR1020190159351 A KR 1020190159351A KR 20190159351 A KR20190159351 A KR 20190159351A KR 20210069473 A KR20210069473 A KR 20210069473A
Authority
KR
South Korea
Prior art keywords
user
access
key
user data
list
Prior art date
Application number
KR1020190159351A
Other languages
English (en)
Inventor
박근영
박동진
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020190159351A priority Critical patent/KR20210069473A/ko
Priority to US17/027,824 priority patent/US11615207B2/en
Priority to EP20205767.5A priority patent/EP3832511A1/en
Priority to TW109139358A priority patent/TWI857176B/zh
Priority to CN202011392294.9A priority patent/CN112906072A/zh
Publication of KR20210069473A publication Critical patent/KR20210069473A/ko
Priority to US18/190,427 priority patent/US12067148B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/72Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Medical Informatics (AREA)
  • Automation & Control Theory (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

사용자에 대한 인증을 통해 유저 데이터에 대한 권한을 부여하는 시큐리티 프로세서 및 이를 포함하는 컴퓨팅 시스템이 개시된다. 본 개시의 예시적 실시예에 따른 시큐리티 프로세서는 무작위성(Randomness)에 기초하여 키를 생성하는 키 생성기, 상기 키를 기초로 유저 데이터를 암호화하는 암호화 모듈 및 디바이스의 사용자가 고유로 소유하는 제1 유저 아이디를 수신하고, 상기 제1 유저 아이디에 대한 인증 절차를 통해 상기 유저 데이터에 대한 억세스를 허가할지 여부를 결정하는 시큐리티 매니저;를 포함할 수 있다.

Description

사용자에 대한 인증을 통해 유저 데이터에 대한 권한을 부여하는 시큐리티 프로세서 및 이를 포함하는 컴퓨팅 시스템{SECURITY PROCESSOR AUTHORIZING USER DATA BY AUTHENTICATION ON AN USER AND COMPUTING SYSTEM COMPRISING THE SAME}
본 개시의 기술적 사상은 시큐리티 프로세서 및 컴퓨팅 시스템에 관한 것으로서, 자세하게는 사용자 인증을 통해 유저 데이터에 대한 권한을 부여하는 시큐리티 프로세서 및 이를 포함하는 컴퓨팅 시스템에 관한 것이다.
반도체 장치 또는 시스템의 동작 중 장애가 발생하면 장애의 원인을 파악하고 디버깅을 수행하기 위해 메모리에 저장된 정보들이 필요할 수 있다. 이들 정보들을 획득하기 위해 메모리에 저장된 데이터를 그대로 추출하는 메모리 덤프(memory dump) 기법이 사용된다.
그런데 메모리는 보안이 요구되는 보안 데이터와 보안이 요구되지 않는 노멀 데이터를 함께 저장하고 있을 수 있다. 장애가 발생한 경우, 일반적으로 노멀 데이터에 대해서는 제3자에게 메모리 덤프를 허용할 수 있으나, 예컨대 개인 정보를 포함하고 있는 보안 데이터에 대해서는 권한이 없는 제3자에게 메모리 덤프를 허용할 수 없다. 그럼에도 불구하고 정확한 장애 원인을 파악하기 위해 때로는 보안 데이터를 메모리 덤프하여 분석해야만 하는 상황도 존재할 수 있다.
따라서 보안 데이터와 노멀 데이터를 모두 메모리 덤프하되, 보안 안정성을 유지하면서 권한이 있는 자에게만 보안 데이터를 제공할 수 있도록 메모리 덤프를 할 수 있는 방안이 요구된다.
본 개시의 기술적 사상이 해결하고자 하는 과제는 보안이 요구되는 유저 데이터에 대한 억세스 권한을 디버거(debugger)에게 부여할 때, 사용자에 대한 인증 및 디버거에 대한 인증을 수행하는 시큐리티 프로세서 및 이를 포함하는 컴퓨팅 시스템을 제공하는 데 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 시큐리티 프로세서는 무작위성(Randomness)에 기초하여 키를 생성하는 키 생성기, 상기 키를 기초로 유저 데이터를 암호화하는 암호화 모듈 및 디바이스의 사용자가 고유로 소유하는 제1 유저 아이디를 수신하고, 상기 제1 유저 아이디에 대한 인증 절차를 통해 상기 유저 데이터에 대한 억세스를 허가할지 여부를 결정하는 시큐리티 매니저를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 컴퓨팅 시스템은 무작위성에 기초하여 키를 생성하고, 상기 키를 기초로 유저 데이터를 암호화하는 시큐리티 프로세서 및 암호화된 유저 데이터를 복수의 시큐어 영역들 중 어느 하나에 저장하는 시스템 메모리를 포함하고, 상기 시큐리티 프로세서는 디바이스의 사용자가 고유로 소유하는 제1 유저 아이디를 수신하고, 상기 제1 유저 아이디에 대한 인증 절차를 통해 상기 복수의 시큐어 영역들 중 상기 유저 데이터가 저장된 제1 영역에 대한 억세스를 허가할지 여부를 결정하는 것을 특징으로 할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 진단 시스템은 무작위성에 기초하여 키를 생성하고, 상기 키를 기초로 유저 데이터를 암호화하여 저장하는 컴퓨팅 시스템 및 억세스 아이디를 상기 컴퓨팅 시스템으로 출력함으로써 상기 유저 데이터를 획득함으로써 상기 컴퓨팅 시스템에 대한 오류를 진단하는 디버거를 포함하고, 상기 컴퓨팅 시스템은, 상기 억세스 아이디가 상기 유저 데이터에 대한 억세스 권한을 갖는 인증 억세스 아이디인지 판단하고, 상기 판단 결과에 기초하여 상기 디버거에게 상기 유저 데이터에 대한 억세스 권한을 제공하는 것을 특징으로 할 수 있다.
본 개시의 기술적 사상에 따른 시큐리티 프로세서는 유저 데이터에 대한 억세스 권한을 디버거에게 부여할 때, 사용자 인증 및 디버거 인증을 수행함으로써 보안성이 향상되고, 사용자 인증에 따라서 추후 개인 정보 유출에 대한 부인 방지 수단을 제공할 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 진단 시스템을 나타내는 블록도이다.
도 2는 본 개시의 예시적 실시예에 따른 컴퓨팅 시스템을 나타내는 도면이다.
도 3은 본 개시의 예시적 실시예에 따른 시스템 온 칩을 나타내는 도면이다.
도 4a 내지 도 4d는 본 개시의 예시적 실시예에 따른 시큐어 메모리에 저장된 정보들을 나타내는 도면이다.
도 5는 본 개시의 예시적 실시예에 따른 시큐리티 프로세서의 동작을 나타내는 블록도이다.
도 6은 본 개시의 예시적 실시예에 따른 시큐리티 프로세서의 동작을 나타내는 순서도이다.
도 7a 및 도 7b는 본 개시의 예시적 실시예에 따른 시큐리티 프로세서의 동작을 나타내는 블록도이다.
도 8은 본 개시의 예시적 실시예에 따른 시큐리티 프로세서의 동작을 나타내는 순서도이다.
도 9는 본 개시의 예시적 실시예에 따른 진단 시스템의 동작 방법을 나타내는 순서도이다.
도 10은 본 개시의 예시적 실시예에 따른 진단 시스템의 동작 방법을 나타내는 순서도이다.
도 11은 본 개시의 예시적 실시예에 따른 컴퓨팅 시스템의 동작을 나타내는 순서도이다.
도 12는 본 개시의 예시적 실시예에 따른 컴퓨팅 시스템의 동작을 나타내는 도면이다.
도 13은 본 개시의 예시적 실시예에 따른 컴퓨팅 시스템을 나타내는 도면이다.
이하, 첨부한 도면을 참조하여 본 개시의 실시예에 대해 상세히 설명한다.
도 1은 본 개시의 예시적 실시예에 따른 진단 시스템을 나타내는 블록도이다.
도 1을 참조하면, 진단 시스템(1)은 컴퓨팅 시스템(10) 및 디버거(20)를 포함할 수 있다. 디버거(20)는 컴퓨팅 시스템(10)에 장애(예를 들면, 시스템 페일(System Fail))가 발생한 경우, 컴퓨팅 시스템(10)에 저장된 유저 데이터(Dat_Us)를 제공 받고, 그 유저 데이터(Dat_Us)를 분석함으로써 컴퓨팅 시스템(10)에 발생한 장애의 원인을 진단할 수 있다. 일 예시에서, 디버거(20)는 컴퓨팅 시스템(10)의 제조사, 컴퓨팅 시스템(10)에 포함되는 하드웨어의 제조사, 컴퓨팅 시스템(10)에 활용되는 소프트웨어의 제조사 등을 포함할 수 있으며, 컴퓨팅 시스템(10)과 통신하여 시스템 메모리(300)에 저장된 정보를 수신할 수 있는 컴퓨팅 시스템을 통칭할 수 있다. 본 명세서에서, 유저 데이터(Dat_Us)는 컴퓨팅 시스템(10)에 저장된 데이터 중 보안이 필요한 데이터를 의미할 수 있으며, 일 예시에서, 사용자의 개인 정보 또는 보안이 필요한 시스템 정보를 포함할 수 있다.
디버거(20)는 디버거(20)가 고유로 갖는 억세스 아이디(ID_Acc)를 컴퓨팅 시스템(10)에 출력하고, 컴퓨팅 시스템(10)은 억세스 아이디(ID_Acc)를 기초로 디버거(20)가 보안 데이터에 대한 억세스 권한이 있는지 판단할 수 있다. 일 실시예에서, 컴퓨팅 시스템(10)은 사용자에게 유저 아이디를 요구하고, 사용자로부터 수신한 유저 아이디를 이용하여 사용자가 유저 데이터(Dat_Us)에 대한 정당 권한자인지 판단할 수 있다. 사용자가 제공하는 유저 아이디는 사용자에 대한 식별을 위해 컴퓨팅 시스템(10)에 저장될 수 있고, 일 예시에서, 유저 아이디는 사용자에 대한 인증 정보로서 패스워드, 패턴 정보, 지문 정보, 얼굴 인식 정보, 홍채 정보를 포함할 수 있다. 또 다른 실시예에서, 컴퓨팅 시스템(10)은 컴퓨팅 시스템(10)에 미리 저장된 유저 아이디를 이용하여 사용자가 유저 데이터(Dat_Us)에 대한 정당 권한자인지 판단할 수 있다.
컴퓨팅 시스템(10)은 사용자가 유저 데이터(Dat_Us)에 대한 정당 권한자인 경우에만 디버거(20)에게 유저 데이터(Dat_Us)를 출력할 수 있다. 이에 대한 상세한 설명은 도 5 내지 12에서 상세하게 후술한다.
컴퓨팅 시스템(10)은 반도체 소자를 이용하여 연산을 수행함으로써 각종 기능을 수행하는 시스템을 나타내고, 일 예시에서, 컴퓨팅 시스템(10)은 시스템 온 칩(System-On-Chip), 모바일 기기(mobile device), 데스크탑 컴퓨터(desktop computer), 서버(server), IoT(Internet Of Thing) 장치 등을 포함할 수 있다.
컴퓨팅 시스템(10)은 시큐리티 프로세서(100), 시큐어 메모리(200) 및 시스템 메모리(300)를 포함할 수 있다. 시큐어 메모리(200)는 시큐리티 프로세서(100) 만이 접근 가능한 메모리일 수 있고, 일 실시예에서, 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되지 않는 비휘발성 메모리로 구성될 수 있으나 이에 제한되지 않고, 시큐어 메모리(200)는 휘발성 메모리로 구성될 수도 있다. 일 예시에서 시큐어 메모리(200)는 낸드 플래시 메모리(NAND Flash Memory;NAND), 수직형 낸드 플래시 메모리(Vertical NAND), 노아 플래시 메모리(NOR Flash Memory), 저항성 램(Resistive Random Access Memory), 상변화 메모리(Phase-Change Memory), 자기저항 메모리(Magnetoresistive Random Access Memory) 등을 포함할 수 있다.
시스템 메모리(300)는 디버거(20) 및 컴퓨팅 시스템(10) 가 접근 가능한 메모리일 수 있다. 디버거(20)는 컴퓨팅 시스템(10)에 시스템 메모리(300)에 대한 접근을 요청하고, 컴퓨팅 시스템(10)이 제공하는 인터페이스(예를 들면, USB(Universal Serial Bus), UART(Universal Asynchronous Receiver/Transmitter) Serial)를 통해 시스템 메모리(300)에 저장된 데이터를 획득할 수 있다. 일 실시예에서, 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되는 휘발성 메모리로 구성될 수 있으나, 본 개시의 기술적 사상은 이에 제한되지 않고, 시스템 메모리(300)는 비휘발성 메모리로 구성될 수도 있다. 일 예시에서, 시스템 메모리(300)는 정적 랜덤 시스템 메모리(Static Random Access Memory; SRAM), 동적 랜덤 시스템 메모리(Dynamic Random Access Memory;DRAM), 래치(Latch), 플립플롭(Flip-Flop), 레지스터(Register)를 포함할 수 있다.
컴퓨팅 시스템(10)은 시스템 메모리(300)에 유저 데이터(Dat_Us)를 저장할 수 있다. 유저 데이터(Dat_Us)는 무작위성에 기반해서 생성된 키에 의해 암호화 될 수 있고, 일 실시예에 따른 컴퓨팅 시스템(10)은 유저 데이터(Dat_Us) 별로 서로 다른 키를 이용하여 암호화 하고, 키에 대한 정보 및 유저 데이터(Dat_Us)를 시스템 메모리(300) 내 서로 다른 시큐어 영역에 저장할 수 있다. 본 명세서에서, 시큐어 영역은 시스템 메모리(300) 내에 보안 데이터를 저장하는 영역을 의미할 수 있고, 컴퓨팅 시스템(10)은 보안 모드로 동작 할 때만 시큐어 영역에 접근가능할 수 있다.
시큐리티 프로세서(100)는 유저 데이터(Dat_Us)를 암호화 하기 위한 키를 생성하고, 생성된 키를 이용하여 유저 데이터(Dat_Us)를 암호화할 수 있다. 일 실시예에서, 시큐리티 프로세서(100)는 컴퓨팅 시스템(10) 내 다른 구성이나 외부 구성(예를 들면, 디버거(20))에 의해 직접 억세스 되지 못하도록 보안될 수 있다. 일 예시에서, 시큐리티 프로세서(100)는 컴퓨팅 시스템(10)과 메일 박스 프로토콜을 이용하여 통신할 수 있다.
시큐리티 프로세서(100)는 유저 데이터(Dat_Us)가 저장된 시큐어 영역과 유저 데이터(Dat_Us)를 암호화한 키에 대한 대응 정보를 시큐어 메모리(200)에 저장할 수 있다. 시큐어 메모리(200)는 시큐리티 프로세서(100) 외에는 접근 가능하지 못하기 때문에 키에 대한 정보는 컴퓨팅 시스템(10) 내 다른 구성이나 외부 구성(예를 들면, 디버거(20))에 의해 억세스되지 못할 수 있다.
일 실시예에 따르면, 시큐리티 프로세서(100)는 키에 대한 정보와 함께 유저 데이터(Dat_Us)에 대한 정당한 권한을 갖는 사용자의 유저 아이디도 함께 시큐어 메모리(200)에 저장할 수 있다. 시큐리티 프로세서(100)는 디버거(20)가 유저 데이터(Dat_Us)를 요구하는 경우, 시큐리티 프로세서(100)는 사용자의 유저 아이디(예를 들면, 사용자 인증 정보)를 수신하고, 수신한 유저 아이디가 시큐어 메모리(200)에 저장된 유저 아이디와 동일한 경우에만 키에 대한 정보를 디버거(20)에게 출력할 수 있다.
본 개시의 기술적 사상에 따른 시큐리티 프로세서(100)는 유저 데이터(Dat_Us)에 대한 정당한 권리를 갖는 사용자의 허락을 득한 경우에만 유저 데이터(Dat_Us)가 외부(예를 들면, 디버거(20))로부터 억세스 되도록 할 수 있고, 이에 따라서 유저 데이터(Dat_Us)에 대한 보안성을 증가시킬 수 있다. 또한, 시큐리티 프로세서(100)는 사용자의 허락에 대한 정보를 보관할 수 있고, 이에 따라서, 사용자의 허락에 대한 정보는 추후 정보 유출에 대한 부인 방지 수단으로 역할할 수 있다.
일 실시예에 따르면, 시큐리티 프로세서(100)는 유저 데이터(Dat_Us)가 저장된 시큐어 영역에 대한 정보와 함께 디버거(20)의 억세스 아이디를 시큐어 메모리(200)에 저장할 수 있다. 시큐리티 프로세서(100)는 시큐어 메모리(200)에 저장된 정보를 기초로 디버거(20)가 유저 데이터(Dat_Us)에 대한 억세스 허가 여부를 판단할 수 있고, 디버거(20)가 유저 데이터(Dat_Us)에 대한 억세스가 가능한 경우에만 키에 대한 정보를 디버거(20)에게 출력할 수 있다.
본 개시의 기술적 사상에 따른 시큐리티 프로세서(100)는 디버거(20)가 유저 데이터(Dat_Us)에 대한 억세스 권한을 갖는지 여부를 시큐어 메모리(200)에 저장된 정보를 기초로 판단하고, 디버거(20)가 유저 데이터(Dat_Us)에 대한 억세스 권한을 갖는 경우에만 유저 데이터(Dat_Us)에 대응하는 키에 대한 정보를 디버거(20)에게 출력함으로써 유저 데이터(Dat_Us)에 대한 보안성을 증가시킬 수 있다.
디버거(20)는 컴퓨팅 시스템(10)으로부터 유저 데이터(Dat_Us)와 유저 데이터(Dat_Us)를 암호화하는데 사용한 키에 대한 정보를 수신하고, 유저 데이터(Dat_Us)를 복호화할 수 있다. 일 실시예에서, 컴퓨팅 시스템(10)은 디버거(20)가 고유로 제공하는 공개 키를 이용하여 유저 데이터(Dat_Us)를 암호화하는데 사용한 키를 암호화할 수 있고, 디버거(20)는 공개 키에 대응하는 비밀 키를 이용하여 암호화된 키를 복호화함으로써 키를 획득할 수 있다. 또한, 디버거(20)는 획득한 키를 이용하여 유저 데이터(Dat_Us)를 복호화할 수 있다.
이를 위해 도시되지는 않았지만, 디버거(20)는 암호화된 키를 복호화하기 위한 키 복호부, 유저 데이터를 복호화하기 위한 데이터 복호부 및 공개 키에 대응되는 비밀 키를 관리하는 비밀 키 관리부를 포함할 수 있다.
도 2는 본 개시의 예시적 실시예에 따른 컴퓨팅 시스템을 나타내는 도면이다. 도 1과 중복되는 내용에 대한 설명은 생략한다.
도 2를 참조하면, 컴퓨팅 시스템(10)은 시스템 온 칩(System On Chip;SOC)(30), 시큐어 메모리(200) 및 시스템 메모리(300)를 포함하고, 시스템 온 칩(30)은 시큐리티 프로세서(100)를 포함할 수 있다.
시큐어 메모리(200)는 시스템 온 칩(30) 내부의 시큐리티 프로세서(100)와 직접 연결될 수 있고, 시큐리티 프로세서(100)는 시큐어 메모리(200)에 유저 정보(Info_User), 키 리스트(List_Key), 허가 리스트(List_Pms) 및 공개 키 리스트(List_PKey)를 저장할 수 있다.
유저 정보(Info_User)는, 현재 컴퓨팅 시스템(10)을 사용하는 사용자의 유저 아이디 및 유저 패스워드를 포함할 수 있다. 일 예시에서, 유저 아이디는 사용자가 고유로 갖고 있는 식별자로서, 일 예시에서, OS(Operating System)을 운용하기 위한 로그인 아이디, 컴퓨팅 시스템(10)을 구동시키기 위한 로그인 아이디 등을 포함할 수 있다.
유저 패스워드는 사용자 만이 알고 있는 고유 정보 또는 사용자의 생체 정보로써, 일 예시에서, OS(Operating System)을 운용하기 위한 로그인 패스워드, 컴퓨팅 시스템(10)을 구동시키기 위한 로그인 패스워드, 사용자 지문 정보, 사용자 입력 패턴, 사용자 홍채 정보 등을 포함할 수 있다. 이에 관해서는 도 4a에서 상세하게 후술한다.
키 리스트(List_Key)는 유저 데이터(Dat_US1~Dat_US3)를 암호화 하는데 활용된 키, 키에 대응되는 키 아이디(ID_Key1~ID_Key3), 유저 데이터(Dat_US1~Dat_US3)가 저장된 시큐어 영역(310)에 대한 정보 및 유저 데이터(Dat_US1~Dat_US3)에 대한 정당한 권한을 갖는 사용자의 유저 아이디를 포함할 수 있다. 이에 관해서는 도 4b에서 상세하게 후술한다.
허가 리스트(List_Pms)는 유저 데이터(Dat_US1~Dat_US3)에 대한 억세스를 요청하는 디버거(도 1, 20) 고유의 억세스 아이디, 유저 데이터(Dat_US1~Dat_US3)가 저장된 시큐어 영역(310)에 대한 정보 및 디버거(도 1, 20)의 유저 데이터(Dat_US1~Dat_US3)에 대한 억세스 요청을 허가 여부에 대한 정보를 포함할 수 있다. 이에 관해서는 도 4c에서 상세하게 후술한다.
공개 키 리스트(List_PKey)는 디버거(도 1, 20) 고유의 억세스 아이디 및 디버거(도 1, 20)가 배포한 공개 키에 대한 정보를 포함한다. 이에 관해서는 도 4d에서 상세하게 후술한다.
시스템 메모리(300)는 시스템 온 칩(30)과 연결될 수 있고, 시큐리티 프로세서(100)는 시스템 온 칩(30) 내부 구성을 통해 시스템 메모리(300)와 통신할 수 있다. 시스템 메모리(300)는 컴퓨팅 시스템(10)이 보안 모드로 작동할 때 억세스 될 수 있는 시큐어 영역(310)을 포함할 수 있고, 시큐어 영역(310)은 영역별로 서로 다른 유저 데이터(Dat_US1~Dat_US3)가 저장될 수 있다.
제1 유저 데이터(Dat_US1)는 시큐어 영역(310) 내부의 제1 영역(Rg1)에 저장될 수 있고, 제1 유저 데이터(Dat_US1)를 암호화하는데 사용된 제1 키에 대응하는 제1 키 아이디(ID_Key1)가 제1 영역(Rg1)에 함께 저장될 수 있다. 제2 유저 데이터(Dat_US2)는 시큐어 영역(310) 내부의 제2 영역(Rg2)에 저장될 수 있고, 제2 유저 데이터(Dat_US2)를 암호화하는데 사용된 제2 키에 대응하는 제2 키 아이디(ID_Key2)가 제2 영역(Rg2)에 함께 저장될 수 있다. 제3 유저 데이터(Dat_US3)는 시큐어 영역(310) 내부의 제3 영역(Rg3)에 저장될 수 있고, 제3 유저 데이터(Dat_US3)를 암호화하는데 사용된 제3 키에 대응하는 제3 키 아이디(ID_Key3)가 제3 영역(Rg3)에 함께 저장될 수 있다.
본 개시의 일 실시예에 따르면, 시스템 메모리(300) 내부의 시큐어 영역(310)은 영역 별로 서로 다른 유저 데이터(Dat_US1~Dat_US3)를 키 아이디(ID_Key1~ID_Key3)와 함께 저장할 수 있고, 디버거(도 1, 20)는 시큐어 영역(310)에 저장된 키 아이디(ID_Key1~ID_Key3)를 획득하고, 이를 이용하여 유저 데이터(Dat_US1~Dat_US3)에 대한 키를 시큐리티 프로세서(100)에 요청할 수 있다.
일 실시예에서, 시큐리티 프로세서(100)는 디버거의 요청에 대응하여, 디버거의 시큐어 영역(310)에 저장된 유저 데이터(Dat_US1~Dat_US3)에 대한 억세스가 허용되는지 판단할 수 있다. 시큐리티 프로세서(100)는 디버거가 시큐어 영역(310)에 저장된 유저 데이터(Dat_US1~Dat_US3)에 대한 억세스가 허용되는 경우, 요청한 유저 데이터(Dat_US1~Dat_US3)와, 유저 데이터(Dat_US1~Dat_US3)를 암호화 하는데 사용한 키(또는, 공개 키로 암호화된 키)를 디버거에 출력할 수 있다. 또 다른 실시예에서, 시큐리티 프로세서(100)는 디버거가 시큐어 영역(310)에 저장된 유저 데이터(Dat_US1~Dat_US3)에 대한 억세스가 허용되는 경우, 요청한 유저 데이터(Dat_US1~Dat_US3)를, 암호화하는데 사용한 키 없이 출력할 수 있다.
도 2에서는 시큐어 메모리(200)가 시스템 온 칩(30) 외부 구성으로 도시되어 있으나 이는 일 실시예이고, 시큐어 메모리(200)는 시스템 온 칩(30) 내부에 구성되거나, 시큐리티 프로세서(100) 내부에 구성될 수 있다.
도 3은 본 개시의 예시적 실시예에 따른 시스템 온 칩을 나타내는 도면이다. 도 2와 중복되는 설명은 생략한다.
도 3을 참조하면, 시스템 온 칩(30)은 시큐리티 프로세서(100), 프로세서(420), ROM(Read Only Memory)(440), 억세스 컨트롤러(460) 및 메모리 컨트롤러(480)를 포함할 수 있다.
프로세서(420)는 시스템 온 칩(30)의 전반적인 작업들을 처리할 수 있다. 일 실시예에서, 복수의 어플리 케이션 프로세서들(420)은 디버거(도 1, 20)의 억세스 요청에 대응하여 사용자에게 인증 요청을 각종 디스플레이 장치를 통해 출력할 수 있다. 일 예시에서 프로세서(420)은 적어도 하나의 프로세성서 코어(Processing Core)를 포함하는 CPU(Central Processing Unit) 및/또는 GPU(Graphic Processing Unit) 등을 포함할 수 있다.
ROM(440)은 어플리케이션의 실행 또는 시스템 온 칩(30)의 동작에 필요한 각종 프로그램 코드 또는 제어 정보를 저장할 수 있다. 억세스 컨트롤러(460)는 시스템 메모리(300)에 대한 보안 모드를 관리할 수 있다. 일 예시에서, 억세스 컨트롤러(460)는 보안 모드 또는 노멀 모드 중 어느 하나로 시스템 온 칩(30)을 구동함으로써 시스템 메모리(300)의 시큐어 영역에 대한 억세스 여부를 관리할 수 있다.
메모리 컨트롤러(480)는 시스템 메모리(300)를 관리할 수 있다. 일 예시에서, 메모리 컨트롤러(480)는 시큐리티 프로세서(100)로부터 수신한 유저 데이터를 시스템 메모리(300)의 시큐어 영역에 저장할 수 있다.
시큐리티 프로세서(100)는 시큐리티 매니저(110), 키 생성기(120), 암호화 모듈(130), 메일 박스 모듈(140), 시큐어 메모리 컨트롤러(150) 및 DMA(Direct Memory Access)(160)를 포함할 수 있고, 시큐리티 매니저(110)는 인증 모듈(112) 및 허가 모듈(114)를 포함할 수 있다. 도시되지 않았지만, 일 예시에서 후술할 시큐리티 매니저(110)의 동작은 실제로 시큐리티 프로세서(100) 내부에 포함되는 CPU(Central Processing Unit), ROM(Read Only Memory) 및 RAM(Random Access Memory)에 의해 동작할 수 있다.
인증 모듈(112)은 사용자가 제시한 사용자 인증 정보를 이용하여, 사용자에게 인증을 요청함으로써 획득한 유저 아이디가 유저 데이터에 대한 정당한 권한을 갖는 유저 아이디인지 판단할 수 있다. 일 실시예에서, 인증 모듈(112)은 시큐어 메모리(200)로부터 키 리스트를 수신하고, 키 리스트에 포함되는 유저 아이디가 사용자로부터 획득한 유저 아이디와 동일한지 판단할 수 있다.
허가 모듈(114)은 외부(예를 들면, 도 1의 디버거(20))로부터 수신한 억세스 아이디를 이용하여 외부로부터의 유저 데이터에 대한 억세스 요청을 허가할지 여부를 판단할 수 있다. 일 실시예에서, 허가 모듈(114)은 시큐어 메모리(200)로부터 허가 리스트를 수신하고, 억세스 아이디가 유저 데이터가 저장된 영역에 대한 억세스가 허가되었는지 판단할 수 있다.
키 생성기(120)는 무작위성에 기초하여 키를 생성할 수 있다. 일 예시에서, 키는 데이터 암호화 키(Data Encryption Key;DEK)로 칭해질 수 있다. 키 생성기(120)는 복수의 링 오실레이터들을 포함할 수 있다. 복수의 링 오실레이터들은 무작위적으로 변동하는 신호를 생성하고, 키 생성기(120)는 복수의 링 오실레이터들로부터 생성된 신호를 기초로 랜덤 넘버를 갖는 키를 생성할 수 있다.
암호화 모듈(130)은 입력 데이터를 키를 이용하여 암호화할 수 있다. 일 실시예에서, 암호화 모듈(130)은 키 생성기(120)에 의해 생성된 키를 이용하여 오리지널 데이터를 암호화함으로써 유저 데이터를 생성하고, 생성된 유저 데이터는 시스템 메모리(300)의 시큐어 영역에 저장될 수 있다. 또한, 일 실시예에서, 암호화 모듈(130)은 유저 데이터를 암호화하는데 사용한 키를 억세스 아이디에 대응되는 공개 키로 암호화하고, 암호화된 키는 메일 박스 모듈(140)을 통해 외부(예를 들면, 도 1의 디버거(20))에 출력될 수 있다. 일 실시예에서, 키를 암호화하는데 사용되는 공개 키에 대한 정보는 시큐어 메모리(200)에 저장될 수 있다.
메일 박스 모듈(140)은 메일 박스 프로토콜을 이용하여 시큐리티 프로세서(100)와 시큐리티 프로세서(100) 외부에 있는 구성 간의 데이터 통신을 수행할 수 있다. 일 예시에서, 메일 박스 모듈(140)은 저장 소자를 포함하고, 시큐리티 프로세서(100)의 외부 구성(예를 들면, 프로세서(420))은 저장 소자에 전달하고자 하는 커맨드 또는 데이터를 저장함으로써 시큐리티 프로세서(100)는 외부 구성과 통신할 수 있다.
시큐어 메모리 컨트롤러(150)는 시큐어 메모리(200)를 관리할 수 있다. 시큐어 메모리(200)가 비휘발성 메모리인 실시예에서, 시큐어 메모리 컨트롤러(150)는 비휘발성 메모리 컨트롤러로 구성될 수 있다. 시큐어 메모리 컨트롤러(150)는 시큐리티 매니저(110)의 요청에 기초하여 시큐어 메모리(200)에 저장된 유저 정보, 키 리스트, 허가 리스트 및 공개 키 리스트를 업데이트 하거나, 시큐어 메모리(200)로부터 유저 정보, 키 리스트, 허가 리스트 및 공개 키 리스트를 독출할 수 있다.
도 4a 내지 도 4d는 본 개시의 예시적 실시예에 따른 시큐어 메모리에 저장된 정보들을 나타내는 도면이다.
도 2 및 도 4a를 참조하면, 유저 정보(Info_User)는 현재 유저 아이디(ID_CUser) 및 현재 유저 패스워드(Pw_CUser)를 포함할 수 있다. 현재 유저 아이디(ID_CUser)는 컴퓨팅 시스템(10)의 사용자의 식별자를 포함할 수 있고, 일 예시에서, 사용자가 컴퓨팅 시스템(10)을 사용하면서 활용 했던 각종 로그인 아이디를 포함할 수 있다. 본 명세서에서 사용자는 컴퓨팅 시스템(10)의 처분 권한(disposal right)을 갖는 관리자(manager) 또는 소유권(ownership)을 갖는 소유권자(owner)일 수 있다.
현재 유저 패스워드(Pw_CUser)는 컴퓨팅 시스템(10)의 현재 처분 권한을 갖는 사용자 만이 알고 있는 고유 정보 또는 생체 정보를 포함할 수 있고, 일 예시에서, 사용자가 컴퓨팅 시스템(10)을 사용(예를 들면, 로그인)하면서 활용했던 각종 생체 정보 또는 패스 워드를 포함할 수 있다. 일 실시예에서, 컴퓨팅 시스템(10)은 사용자 로그인 정보가 변경되는 경우 유저 정보(Info_User)를 업데이트할 수 있다.
도 2 및 도 4b를 참조하면, 키 리스트(List_Key)는 키 아이디(ID_Key1~ID_Key3), 유저 아이디(ID_User1, ID_User2), 키(Key1~Key3) 및 시큐어 영역(Rg1~Rg3)을 포함할 수 있다. 키 아이디(ID_Key1~ID_Key3)는 키(Key1~Key3)에 대응되는 고유 식별자를 나타낼 수 있고, 일 예시에서, 제1 키(Key1)에 대응되는 제1 키 아이디(ID_Key1)는 '1'로 결정되고, 제2 키(Key2)에 대응되는 제2 키 아이디(ID_Key2)는 '2'로 결정되고, 제3 키(Key3)에 대응되는 제3 키 아이디(ID_Key3)는 '3'으로 결정될 수 있다.
유저 아이디(ID_User1, ID_User2)는 각 시큐어 영역(Rg1~Rg3)에 저장된 유저 데이터에 대한 처분 권한을 갖는 정당 사용자에 대응하는 유저 아이디(ID_User1, ID_User2)를 나타낼 수 있다. 일 예시에서, 제1 영역(Rg1)에 저장된 유저 데이터 및 제2 영역(Rg2)에 저장된 유저 데이터에 대한 처분 권한을 갖는 사용자의 고유 식별자가 제1 유저 아이디(ID_User1)에 입력되고, 제3 영역(Rg3)에 저장된 유저 데이터에 대한 처분 권한을 갖는 사용자의 고유 식별자가 제2 유저 아이디(ID_User2)에 입력될 수 있다. 유저 데이터(ID_User1, ID_User2)에 대한 처분 권한에는 유저 데이터(ID_User1, ID_User2)의 접근, 생성, 삭제 및/또는 변경에 대한 권한을 포함할 수 있다. 일 예시에서, 시큐리티 프로세서(100)는 유저 데이터 생성시에 유저 정보(Info_User)에 포함된 현재 유저 아이디(ID_CUser)를 키 리스트(Key_List)에 포함된 유저 아이디(ID_User1, ID_User2)로 입력할 수 있다.
일 실시예에서, 유저 아이디(ID_User1, ID_User2)는 같은 사용자라 하더라도 사용하는 어플리케이션에 따라 서로 다른 유저 아이디(ID_User1, ID_User2)를 사용할 수 있으며, 각 유저 아이디(ID_User1, ID_User2)는 서로 다른 복수의 시큐어 영역에 각각 대응될 수 있다. 일 실시예에서, 유저 아이디(ID_User1, ID_User2)는 컴퓨팅 시스템(10)의 복수의 사용자들에 따라 서로 다른 복수의 유저 아이디들을 포함할 수 있다. 상기 복수의 유저 아이디들은 각각 서로 다른 복수의 시큐어 영역에 각각 대응될 수 있다.
키(Key1~Key3)는 각각 키 생성기(120)에서 생성될 수 있고, 암호화 모듈(130)이 유저 데이터를 암호화하는데 사용했던 키(Key1~Key3)를 나타낼 수 있다. 또한, 키(Key1~Key3)는 시큐어 영역(Rg1~Rg3) 별로 서로 다르게 결정될 수 있으며, 랜덤 키(Random Key)로 구성될 수 있다. 일 예시에서, 키(Key1~Key3)는 시스템 크래쉬(System crash) 발생 상황에서 생성될 수 있으며, 새로운 키(Key1~Key3)가 생성될 때 이에 대응하는 키 아이디(ID_Key1~ID_Key3)가 새로 부여될 수 있다.
일 예시에서, 제1 영역(Rg1)에 저장된 유저 데이터를 암호화할 때 사용된 제1 키(Key1)는 키 리스트(List_Key)에서 제1 영역(Rg1)에 대응되도록 입력될 수 있고, 제2 영역(Rg2)에 저장된 유저 데이터를 암호화할 때 사용된 제2 키(Key2)는 키 리스트(List_Key)에서 제2 영역(Rg2)에 대응되도록 입력될 수 있고, 제3 영역(Rg3)에 저장된 유저 데이터를 암호화할 때 사용된 제3 키(Key3)는 키 리스트(List_Key)에서 제3 영역(Rg3)에 대응되도록 입력될 수 있다.
도 2 및 도 4c를 참조하면, 허가 리스트(List_Pms)는 억세스 아이디(ID_Acc1, ID_Acc2), 시큐어 영역(Rg1~Rg3) 및 허가 여부(Granted/Denied)를 포함할 수 있다. 억세스 아이디(ID_Acc1, ID_Acc2)는 디버거가 갖는 고유의 식별자를 나타낼 수 있다. 허가 여부(Granted/Denied)는 디버거의 시큐어 영역(Rg1~Rg3)에 대한 억세스 허가 여부를 나타낼 수 있다. 일 예시에서, 제1 억세스 아이디(ID_Acc1)를 갖는 디버거는 제1 영역(Rg1)에 대한 억세스가 허가(Granted)되고, 제2 억세스 아이디(ID_Acc2)를 갖는 디버거는 제2 영역(Rg2)에 대한 억세스는 불허(Denied)되지만, 제3 영역(Rg3)에 대한 억세스는 허가(Granted)될 수 있다.
일 실시예에서, 컴퓨팅 시스템(10)은 컴퓨팅 시스템(10)에 대한 제조 단계에서 컴퓨팅 시스템(10)에 접근 가능한 디버거의 억세스 아이디를 미리 저장할 수 있다. 일 실시예에서, 컴퓨팅 시스템(10)에 접근한 디버거의 억세스 아이디가 미리 저장되어 있지 않은 경우, 컴퓨팅 시스템(10)은 접근 가능한 디버거의 억세스 아이디를 생성하여 허가 리스트(List_Pms)에 저장할 수 있다.
도 2 및 도 4d를 참조하면, 공개 키 리스트(List_PKey)는 억세스 아이디(ID_Acc1, ID_Acc2) 및 공개 키(PKey1, PKey2)를 포함할 수 있다. 공개 키(PKey1)는 디버거가 배포하는 키일 수 있고, 디버거는 공개 키에 대응되는 비밀 키를 소유할 수 있다. 일 예시에서, 제1 억세스 아이디(ID_Acc1)에 대응되는 디버거는 제1 공개 키(PKey1)를 배포할 수 있고, 제2 억세스 아이디(ID_Acc2)에 대응되는 디버거는 제2 공개 키(PKey2)를 배포할 수 있다. 공개키로 암호화한 정보는 각 디버거가 소유하는 개인키를 이용하여 복호화할 수 있다.
다시, 도 2, 도 4a 내지 도 4d를 참조하면, 일 예시에서, 컴퓨팅 시스템(도1, 10)에 대한 시스템 크래쉬가 발생하면, 디버거(도 1, 20)는 컴퓨팅 시스템에 연결되어 디버거(도 1, 20)에 대응하는 제2 억세스 아이디(ID_Acc2) 및 억세스 하고자 하는 제3 영역(Rg3)에 대응하는 제3 키 아이디(ID_Key3)를 컴퓨팅 시스템에 출력할 수 있다.
시큐리티 프로세서(100)는 디버거로부터 제2 억세스 아이디(ID_Acc2) 및 제3 키 아이디(ID_Key3)를 수신하면, 사용자에게 유저 아이디를 요청함으로써 제2 유저 아이디(ID_User2)를 수신할 수 있다. 시큐리티 프로세서(100)는 키 리스트(List_Key)를 이용하여 제2 유저 아이디(ID_User2)가 제3 키 아이디(ID_Key3)에 대응되는 유저 아이디인지 확인할 수 있다.
제2 유저 아이디(ID_User2)가 제3 키 아이디(ID_Key3)에 대응되는 유저 아이디인 경우, 시큐리티 프로세서(100)는 허가 리스트(List_Pms)를 이용하여 디버거로부터 수신한 제2 억세스 아이디(ID_Acc2)가 제3 키 아이디(ID_Key3)에 대응하는 제3 영역(Rg3)에 대한 억세스 권한이 있는지 확인할 수 있다.
일 실시예에서, 제2 억세스 아이디(ID_Acc2)가 제3 영역(Rg3)에 대한 억세스 권한이 있는 경우, 시큐리티 프로세서(100)는 공개 키 리스트(List_PKey)를 이용하여 제2 억세스 아이디(ID_Acc2)에 대응하는 제2 공개 키(PKey2)를 획득하고, 제3 키 아이디(ID_Key3)에 대응하는 제3 키(Key3)를 제2 공개 키(PKey2)를 이용하여 암호화한 뒤 디버거에 출력할 수 있다. 디버거는 암호화된 제3 키(Key3)를 개인 키를 이용하여 복호화 함으로써 얻은 제3 키(Key3)를 이용하여 제3 영역(Rg3)에 저장된 데이터를 복호화할 수 있다.
또 다른 실시예에서, 제2 억세스 아이디(ID_Acc2)가 제3 영역(Rg3)에 대한 억세스 권한이 있는 경우, 시큐리티 프로세서(100)는 제3 키(Key3)를 이용하여 제3 영역(Rg3)에 저장된 데이터를 복호화하고, 복호화된 데이터를 디버거에 출력할 수 있다.
도 5는 본 개시의 예시적 실시예에 따른 시큐리티 프로세서의 동작을 나타내는 블록도이다. 상세하게는, 도 5는 시큐리티 프로세서(100)가 오리지널 데이터(Dat_Org)를 암호화함으로써 유저 데이터(Dat_Us)를 생성하는 방법을 나타낸다. 상술한 내용과 중복되는 설명은 생략한다.
도 5를 참조하면, 키 생성기(120)는 키(Key)를 생성하고, 생성된 키(Key)를 암호화 모듈(130) 및 인증 모듈(112)에 출력할 수 있다. 암호화 모듈(130)은 오리지널 데이터(Dat_org)를 수신하고, 키(Key)를 이용하여 암호화함으로써 유저 데이터(Dat_Us)를 생성할 수 있다. 암호화 모듈(130)은 생성한 유저 데이터(Dat_Us)를 인증 모듈(112)에 출력할 수 있다.
인증 모듈(112)은 수신한 키(Key) 및 키 아이디(ID_Key)를 유저 데이터(Dat_Us)와 함께 시스템 메모리(300)의 제1 영역(Rg)에 저장할 수 있다. 일 예시에서, 인증 모듈(112)은 메일 박스 모듈(도 3, 140) 및 메모리 컨트롤러(480)를 이용하여 유저 데이터(Dat_Us) 및 키 아이디(ID_Key)를 시스템 메모리(300)에 저장할 수 있다.
인증 모듈(112)은 시큐어 메모리(200)에 저장된 유저 정보(도 4a, Info_User)를 이용하여 현재 사용자의 유저 아이디(ID_User)를 획득하고, 획득한 유저 아이디(ID_User), 키 아이디(ID_Key), 키(Key) 및 유저 데이터(Dat_Us)를 저장한 영역 정보(Rg)를 이용하여 키 리스트(List_Key)를 생성하고, 생성한 키 리스트(List_Key)를 시큐어 메모리(200)에 저장할 수 있다. 일 예시에서, 인증 모듈(112)은 키 리스트(List_Key)를 시큐어 메모리 컨트롤러(150)를 이용하여 시큐어 메모리(200)에 저장할 수 있다.
도 6은 본 개시의 예시적 실시예에 따른 시큐리티 프로세서의 동작을 나타내는 순서도이다. 상세하게는, 도 6은 시큐리티 프로세서가 오리지널 데이터를 암호화하는 방법(S100)을 나타낸다.
도 5 및 도 6을 참조하면, 시큐리티 프로세서(100)는 오리지널 데이터(Dat_org)를 수신하고(S110), 키(Key)를 이용하여 오리지널 데이터(Dat_org)를 암호화함으로써 유저 데이터(Dat_Us)를 생성할 수 있다(S120). 시큐리티 프로세서(100)는 생성한 키(Key) 및 키 아이디(ID_Key)를 생성하고(S130), 유저 데이터(Dat_Us)를 키 아이디(ID_Key)와 함께 시스템 메모리(300)의 시큐어 영역에 저장할 수 있다(S140).
시큐리티 프로세서(100)는 시큐어 메모리(200)에 저장된 유저 아이디(ID_User)를 획득하고(S150), 획득한 유저 아이디(ID_User), 키(Key), 키 아이디(ID_Key) 및 시큐어 영역을 이용하여 시큐어 메모리(200)에 저장된 키 리스트(List_Key)를 업데이트 할 수 있다(S160). 일 예시에서, 유저 아이디(ID_User)는 컴퓨팅 시스템의 시스템 크래쉬가 발생하는 경우 사용자의 유저 아이디일 수 있다.
도 7a 및 도 7b는 본 개시의 예시적 실시예에 따른 시큐리티 프로세서의 동작을 나타내는 블록도이다. 상세하게는, 도 7a 및 도 7b는 시큐리티 프로세서가 유저 아이디 및 억세스 아이디를 인증하는 동작을 나타낸다.
도 7a를 참조하면, 인증 모듈(112)은 사용자로부터 유저 아이디(ID_User)를 수신하고, 디버거(도 1, 20)로부터 키 아이디(ID_Key)를 수신할 수 있다. 인증 모듈(112)은 시큐어 메모리(200)로부터 키 리스트(List_Key)를 획득하고, 키 리스트(List_Key)를 이용하여 키 아이디(ID_Key)에 대응하는 영역 정보(Rg)를 획득할 수 있다.
허가 모듈(114)은 디버거로부터 억세스 아이디(ID_Acc)를 수신하고, 시큐어 메모리(200)로부터 허가 리스트(List_Pms)를 획득할 수 있다. 허가 모듈(114)은 허가 리스트(List_Pms)를 이용하여 억세스 아이디(ID_Acc)가 인증 모듈(112)로부터 수신한 영역 정보(Rg)에 대해서 억세스가 허용되는지 판단할 수 있다. 허가 모듈(114)은 억세스 아이디(ID_Acc)에 대응되는 허가 여부(Pms)가 허용(Granted)인 경우, 인증 모듈(112)에 허가 여부(Pms)를 출력할 수 있다. 엑세스 아이디(ID_Acc)에 대응되는 영역 정보(Rg)가 복수 개일 경우, 허가 모듈(114)는 복수의 영역 정보(Rg)들을 순차적으로 입력 받고, 복수의 영역 정보(Rg)들 각각에 대한 허가 여부(Pms)를 순차적으로 출력할 수 있다.
도 7b를 참조하면, 인증 모듈(112)은 허가 여부(Pms)에 대응하여, 영역 정보(Rg)에 대응하는 키(Key)를 암호화 모듈(130)에 출력할 수 있다. 허가 모듈(114)는 시큐어 메모리(200)로부터 공개 키 리스트(List_Key)를 획득하고, 공개 키 리스트(List_Key)를 이용하여 억세스 아이디(ID_Acc)에 대응하는 공개 키(PKey)를 암호화 모듈(130)에 출력할 수 있다. 암호화 모듈(130)은 공개 키(PKey)를 이용하여 키(Key)를 암호화할 수 있고, 암호화된 키(PK(Key))를 디버거(도 1, 20)에 출력할 수 있다.
도 8은 본 개시의 예시적 실시예에 따른 시큐리티 프로세서의 동작을 나타내는 순서도이다. 상세하게는, 도 8은 시큐리티 프로세서가 유저 아이디 및 억세스 아이디를 인증하는 동작(S200)을 나타낸다.
도 7a, 도 7b 및 도 8을 참조하면, 시큐리티 프로세서(100)는 사용자로부터 유저 아이디(ID_User) 및 유저 패스워드(Pw_User)를 수신하고, 디버거(도 1, 20)로부터 키 아이디(ID_Key) 및 억세스 아이디(ID_Acc)를 수신하고(S210), 시큐어 메모리(200)에 저장된 유저 정보를 이용하여 유저 아이디(ID_User) 및 유저 패스워드(Pw_User)를 입증할 수 있다(S220).
수신한 유저 아이디(ID_User) 및 유저 패스워드(Pw_User)가 시큐어 메모리(200)에 저장된 유저 아이디(ID_User) 및 유저 패스워드(Pw_User)와 동일한 경우, 즉, 사용자가 정당한 사용자인 경우(S230), 시큐리티 프로세서(100)는 시큐어 메모리(200)에 저장된 키 리스트(List_Key)를 이용하여 수신한 키 아이디(ID_Key)에 대응하는 시큐어 영역 정보(Rg)를 획득할 수 있다(S240). 시큐리티 프로세서(100)는 시큐어 메모리에 저장된 허가 리스트(List_Pms)를 이용하여 억세스 아이디(ID_Acc)의 시큐어 영역에 대한 허가 여부(Pms)를 판단할 수 있다(S250).
억세스 아이디(ID_Acc)의 시큐어 영역에 대한 억세스가 허가된 경우(S260), 시큐리티 프로세서(100)는 시큐어 메모리(200)에 저장된 공개 키 리스트(List_Key)를 이용하여 억세스 아이디(ID_Acc)에 대응하는 공개 키(PKey)를 획득할 수 있다(S270). 시큐리티 프로세서(100)는 공개 키(PKey)를 이용하여 키(Key)를 암호화하고, 암호화된 키(Key)를 출력할 수 있다(S280).
도 9는 본 개시의 예시적 실시예에 따른 진단 시스템의 동작 방법을 나타내는 순서도이다. 상세하게는, 도 9는 시스템 크래시가 발생한 경우, 디버거(20)가 유저 데이터를 획득하는 과정을 시간의 흐름에 따라서 나타낸다.
도 9를 참조하며, 시스템 온 칩(30)은 시스템 크래시를 검출하고(T110), 시큐리티 프로세서(100)가 부팅될 수 있다(T120). 시스템 온 칩(30)(예를 들면, 복수의 어플리케이션 프로세서들)은 시큐리티 프로세서(100)에 오리지널 데이터에 대한 암호화 요청을 출력할 수 있다(T130). 시큐리티 프로세서(100)는 도 5 및 도 6에서 상술한 방법으로 오리지널 데이터를 암호화할 수 있다(S100). 시큐리티 프로세서(100)는 오리지널 데이터를 암호화함으로써 생성한 유저 데이터 및 유저 데이터를 암호화하는데 사용된 키에 대응하는 키 아이디를 시스템 온 칩(30)에 전송할 수 있다(T140). 시스템 온 칩(30)은 수신한 키 아이디 및 유저 데이터를 시스템 메모리의 시큐어 영역에 저장할 수 있다(T150).
이 후, 디버거(20)는 시스템 온 칩(30)에 유저 데이터를 요청할 수 있고(T160), 시스템 온 칩(30)은 유저 데이터 요청을 허가할 수 있다(T170). 시스템 온 칩(30)은 유저 데이터를 디버거(20)에 전송할 수 있다(T180).
도 10은 본 개시의 예시적 실시예에 따른 진단 시스템의 동작 방법을 나타내는 순서도이다. 상세하게는, 도 10은 디버거(20)가 오리지널 데이터를 획득하기 위한 과정을 시간의 흐름에 따라서 나타낸다.
도 10을 참조하면, 디버거(20)는 유저 데이터를 획득한 이후, 유저 데이터를 복호화하기 위해 억세스 아이디 및 유저 데이터와 함께 시큐어 영역에 저장된 키 아이디를 시스템 온 칩(30)에 출력할 수 있다(T210). 그리고, 시스템 온 칩(30)은 사용자에게 유저 데이터의 유출에 대한 승인 요청을 출력할 수 있다(T220).
일 예시에서, 시스템 온 칩(30)은 컴퓨팅 시스템(도 1, 10)에 포함된 디스플레이 장치를 통해 사용자에게 유저 데이터의 유출을 알리는 문구를 출력하고, 사용자는 자신이 인지하는 각종 방법으로 유저 데이터의 유출을 승인할 수 있다. 일 예시에서, 시스템 온 칩(30)은 유저 데이터의 유출을 알리는 미리 결정된 문구를 사용자에게 표시하고, 사용자는 사인, 로그인, 생체 정보 등록 등의 각종 방법을 이용하여 유저 데이터의 유출을 인식하였음을 확인할 수 있다. 이러한 사용자의 승인은 추후 사용자가 유출을 부인하는 것을 방지하는 부인 방지 수단으로서 활용될 수 있다.
사용자에게 상술한 방법을 통해 승인 받은 경우, 시스템 온 칩(30)은 사용자의 유저 아이디, 유저 패스워드, 키 아이디 및 억세스 아이디를 시큐리티 프로세서(100)에 출력할 수 있다(T230). 사용자의 유저 아이디, 유저 패스워드는 상술한 사용자의 승인을 통해 획득할 수 있고, 키 아이디 및 억세스 아이디는 디버거(20)로부터 수신할 수 있다.
시큐리티 프로세서(100)는 도 7a 내지 도 8에서 상술한 방법으로 유저 아이디 및 억세스 아이디를 인증할 수 있다(S200). 시큐리티 프로세서(100)는 유저 아이디 및 억세스 아이디가 인증된 경우, 공개 키를 이용하여 암호화된 키를 시스템 온 칩(30)에 출력할 수 있고(T240), 시스템 온 칩(30)은 시큐리티 프로세서(100)로부터 수신한 암호화된 키를 디버거(20)에 출력할 수 있다(T250).
디버거(20)는 비밀 키를 이용하여 공개 키로 암호화된 키를 복호화할 수 있고, 이에 따라서, 디버거(20)는 유저 데이터를 암호화한 키를 획득할 수 있다(T260). 디버거(20)는 복호화한 키를 이용하여 유저 데이터를 복호화 함으로써 오리지널 데이터를 획득할 수 있다(T260).
도 11은 본 개시의 예시적 실시예에 따른 컴퓨팅 시스템의 동작을 나타내는 순서도이다. 상세하게는, 도 11은 허가 리스트의 업데이트 과정을 시간의 흐름에 따라서 나타낸다.
도 11을 참조하면, 시스템 온 칩(30)은 시큐리티 프로세서(100)에 허가 리스트에 대한 업데이트 요청을 출력할 수 있다(T310). 일 예시에서, 제1 억세스 아이디의 제1 유저 데이터에 대한 억세스가 기존에는 승인(Granted)되었다가 이후 정책의 변화로 부인(Denied)될 수 있다. 이 경우, 시스템 온 칩(30)은 시큐리티 프로세서(100)에 제1 억세스 아이디의 제1 유저 데이터에 대한 억세스를 부인하도록 허가 리스트를 업데이트할 것을 요청할 수 있다.
시큐리티 프로세서(100)는 허가 리스트 업데이트 요청을 인증할 수 있다(T320). 일 예시에서, 시큐리티 프로세서(100)는 허가 리스트 업데이트 요청에 포함된 서명과 시큐어 메모리에 저장된 허가 리스트에 포함된 서명을 비교할 수 있고, 두 서명이 일치하는 경우, 허가 리스트 업데이트 요청에 따른 동작을 수행할 수 있다.
시큐리티 프로세서(100)는 수신한 허가 리스트 업데이트 요청에 포함된 새로운 허가 리스트를 이용하여 시큐어 메모리에 저장된 허가 리스트를 업데이트할 수 있다(T330). 일 예시에서, 시큐리티 프로세서(100)는 시큐어 메모리에 저장된 허가 리스트 중 허가 리스트 업데이트 요청에 포함된 새로운 허가 리스트와 다른 내용을 변경함으로써 허가 리스트를 업데이트 할 수 있다.
도 11에서는 허가 리스트를 업데이트 하는 방법이 도시되어 있으나, 또 다른 실시예에서, 도 4a 내지 도 4d에 도시된 키 리스트, 공개 키 리스트 및 유저 정보도 유사한 방법을 이용하여 업데이트할 수 있음은 통상의 기술자의 지식과 경험칙 상 이해되어야 할 것이다.
일 실시예에서, 시큐리티 프로세서(100)는 시스템 온 칩(30)으로부터 새로운 유저 아이디(도 4b, ID_User1~ID_User3)를 키 리스트(도 4b, List_Key)에 추가시키기 위한 추가 요청을 수신하고, 상기 추가 요청에 대응하여 수신한 새로운 유저 아이디를 키 리스트에 추가시킬 수 있다. 일 실시예에서, 시큐리티 프로세서(100)는 시스템 온 칩(30)으로부터 키 리스트에 포함된 적어도 하나의 유저 아이디를 키 리스트로부터 삭제시키기 위한 삭제 요청을 수신하고, 상기 삭제 요청에 대응하여 상기 적어도 하나의 유저 아이디를 키 리스트로부터 삭제할 수 있다.도 12는 본 개시의 예시적 실시예에 따른 컴퓨팅 시스템의 동작을 나타내는 도면이다. 상세하게는, 도 12는 허가 리스트의 업데이트 과정을 나타낸다.
도 11 및 도 12를 참조하면, 시큐리티 프로세서(100)는 허가 리스트 업데이트 요청(Req_PLU)을 수신하면, 제1 허가 리스트(List_Pms1)를 시큐어 메모리로부터 획득할 수 있다. 시큐리티 프로세서(100)는 제1 허가 리스트(List_Pms1)에 저장된 서명 정보(Sig1)와 허가 리스트 업데이트 요청(Req_PLU)에 저장된 서명 정보(Sig1)가 일치하는지 판단할 수 있다.
시큐리티 프로세서(100)는 제1 허가 리스트(List_Pms1)에 저장된 서명 정보(Sig1)와 허가 리스트 업데이트 요청(Req_PLU)에 저장된 서명 정보(Sig1)가 일치하는 경우, 제1 허가 리스트(List_Pms1) 중 허가 리스트 업데이트 요청(Req_PLU)와 상이한 정보를 업데이트 할 수 있다.
도 12의 예시에서, 허가 리스트 업데이트 요청(Req_PLU)에 포함된 제2 억세스 아이디(ID_Acc2)의 제3 영역(Rg3)에 대한 억세스는 부인(Denied)되므로, 시큐리티 프로세서(100)는 제1 허가 리스트(List_Pms1)에서 제2 억세스 아이디(ID_Acc2)의 제3 영역(Rg3)에 대한 억세스를 부인(Denied)으로 정정함으로써 제2 허가 리스트(List_Pms2)를 생성하고, 생성한 제2 허가 리스트(List_Pms2)를 시큐어 메모리에 저장할 수 있다.
본 개시의 일 실시예에 따른 시큐리티 프로세서(100)는 억세스 아이디에 대응되는 허가 정보가 정책 변화 등을 이유로 변경되는 경우, 허가 리스트를 업데이트 함으로써 손쉽게 억세스 아이디 별 권한을 제어할 수 있다.
도 13은 본 개시의 예시적 실시예에 따른 컴퓨팅 시스템을 나타내는 도면이다.
도 13을 참조하면, 컴퓨팅 시스템(1000)은 시스템 온 칩(1010), 메모리 장치(1020), 입출력 장치(1030) 및 디스플레이 장치(1040)를 포함할 수 있고, 이들 구성 요소는 버스(1050)를 이용하여 서로 전기적으로 연결될 수 있다.
또한, 시스템 온 칩(1010)은 시큐리티 프로세서(1012)를 포함할 수 있고, 시큐리티 프로세서(1012)는 도 1 내지 도 12를 이용하여 상술한 각종 동작을 수행할 수 있다. 또한, 시스템 온 칩(1010) 역시 도 1 내지 도 12를 이용하여 상술한 각종 동작을 수행할 수 있다.
메모리 장치(1020)는 도 1 내지 도 12에서 상술한 시스템 메모리로 동작하여 시큐어 영역 별로 키 아이디 및 유저 아이디를 저장할 수 있고, 디스플레이 장치(1040)는 시스템 온 칩(1010)의 제어에 기초하여 사용자에게 인증 문구를 출력하는 역할을 수행할 수 있다. 입출력 장치(1030)는 도 1 내지 도 12에서 상술한 디버거로부터 각종 요청 또는 데이터를 수신하거나 디버거에게 각종 데이터를 전송하는 역할을 수행할 수 있다.
본 개시의 일 실시예에 따르면, 시스템 온 칩(1010)은 사용자의 인증 및 디버거에 대한 인증을 통해 디버거의 메모리 장치(1020) 내부의 유저 데이터에 대한 접근 허가 여부를 판단할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 무작위성(Randomness)에 기초하여 키를 생성하는 키 생성기;
    상기 키를 기초로 유저 데이터를 암호화하는 암호화 모듈;및
    디바이스의 사용자가 고유로 소유하는 제1 유저 아이디를 수신하고, 상기 제1 유저 아이디에 대한 인증 절차를 통해 상기 유저 데이터에 대한 억세스를 허가할지 여부를 결정하는 시큐리티 매니저;를 포함하는 시큐리티 프로세서.
  2. 제1항에 있어서,
    상기 시큐리티 매니저는,
    상기 제1 유저 아이디를 기초로 상기 디바이스의 사용자가 상기 유저 데이터에 대한 권한을 갖는지 판단하는 인증 모듈;및
    제1 억세스 아이디를 수신하고, 상기 제1 억세스 아이디가 상기 유저 데이터에 대한 억세스 권한을 갖는지 판단하는 허가 모듈;을 포함하는 것을 특징으로 하는 시큐리티 프로세서.
  3. 제2항에 있어서,
    상기 인증 모듈은,
    상기 유저 데이터에 권한을 갖는 사용자의 인증(authorized) 유저 아이디, 상기 유저 데이터가 저장된 메모리 내 영역에 대한 영역 정보 및 상기 유저 데이터를 암호화시킬 때 사용한 상기 키를 포함하는 키 리스트를 생성하고,
    상기 키 리스트를 이용하여 상기 제1 유저 아이디가 상기 인증 유저 아이디와 일치 하는지 판단함으로써 상기 디바이스의 사용자가 상기 유저 데이터에 대한 권한을 갖는지 판단하는 것을 특징으로 하는 시큐리티 프로세서.
  4. 제3항에 있어서,
    상기 인증 모듈은,
    상기 키에 대응하는 키 아이디를 생성하고, 생성한 상기 키 아이디를 상기 키 리스트에 더 포함시킴으로써 상기 키 리스트를 생성하고,
    생성한 상기 키 아이디는 상기 유저 데이터와 함께 상기 메모리에 저장하는 것을 특징으로 하는 시큐리티 프로세서.
  5. 제2항에 있어서,
    상기 허가 모듈은,
    상기 유저 데이터에 억세스 권한을 갖는 인증 억세스 아이디, 상기 유저 데이터가 저장된 메모리 내 영역에 대한 영역 정보 및 상기 유저 데이터에 대한 억세스 허가 여부에 대한 정보를 포함하는 허가 리스트를 생성하고,
    상기 허가 리스트를 이용하여 상기 제1 억세스 아이디가 상기 인증 억세스 아이디와 일치 하는지 판단함으로써 상기 제1 억세스 아이디에 대응하여 상기 유저 데이터에 대한 억세스 권한을 줄지 여부를 판단하는 것을 특징으로 하는 시큐리티 프로세서.
  6. 제5항에 있어서,
    상기 허가 모듈은 상기 제1 억세스 아이디가 상기 인증 억세스 아이디와 일치하는 경우, 상기 키를 출력하는 것을 특징으로 하는 시큐리티 프로세서.
  7. 제6항에 있어서,
    상기 인증 모듈은, 상기 키에 대응하는 제1 키 아이디를 생성하고, 생성한 상기 제1 키 아이디를 상기 유저 데이터와 함께 상기 메모리에 저장하고,
    상기 허가 모듈은, 상기 제1 억세스 아이디 및 상기 제1 키 아이디를 수신하고, 상기 제1 억세스 아이디가 상기 인증 억세스 아이디와 일치하는 경우, 상기 제1 억세스 아이디에 대응되는 공개 키를 상기 암호화 모듈에 출력하고,
    상기 암호화 모듈은, 상기 공개 키를 이용하여 암호화한 키를 외부로 출력하는 것을 특징으로 하는 시큐리티 프로세서.
  8. 제7항에 있어서,
    상기 허가 모듈은 억세스 아이디와 상기 억세스 아이디에 대응되는 공개 키에 대한 대응 정보를 포함하는 공개 키 리스트를 더 생성하는 것을 특징으로 하는 시큐리티 프로세서.
  9. 제5항에 있어서,
    상기 허가 모듈은 상기 제1 억세스 아이디가 상기 인증 억세스 아이디와 일치하는 경우, 상기 유저 데이터를 상기 제1 억세스 아이디에 대응되는 공개 키로 암호화한 뒤, 암호화된 유저 데이터를 출력하는 것을 특징으로 하는 시큐리티 프로세서.
  10. 제1항에 있어서,
    상기 시큐리티 매니저는,
    상기 유저 데이터에 권한을 갖는 사용자의 인증(authorized) 유저 아이디, 상기 유저 데이터가 저장된 메모리 내 영역에 대한 영역 정보 및 상기 유저 데이터를 암호화시킬 때 사용한 상기 키를 포함하는 키 리스트,
    상기 유저 데이터에 억세스 권한을 갖는 인증 억세스 아이디, 상기 영역 정보 및 상기 유저 데이터에 대한 억세스 허가 여부에 대한 정보를 포함하는 허가 리스트 및
    억세스 아이디와 상기 억세스 아이디에 대응되는 공개 키에 대한 대응 정보를 포함하는 공개 키 리스트를 생성하고,
    생성한 상기 키 리스트, 상기 허가 리스트 및 상기 공개 키 리스트를 시큐어 메모리에 저장하는 것을 특징으로 하는 시큐리티 프로세서.
  11. 제10항에 있어서,
    상기 시큐리티 매니저는, 사용자의 요청에 기초하여 상기 키 리스트, 상기 허가 리스트 및 상기 공개 키 리스트 중 적어도 하나를 업데이트하는 것을 특징으로 하는 시큐리티 프로세서.
  12. 무작위성에 기초하여 키를 생성하고, 상기 키를 기초로 유저 데이터를 암호화하는 시큐리티 프로세서;및
    암호화된 유저 데이터를 복수의 시큐어 영역들 중 어느 하나에 저장하는 시스템 메모리;를 포함하고,
    상기 시큐리티 프로세서는 디바이스의 사용자가 고유로 소유하는 제1 유저 아이디를 수신하고, 상기 제1 유저 아이디에 대한 인증 절차를 통해 상기 복수의 시큐어 영역들 중 상기 유저 데이터가 저장된 제1 영역에 대한 억세스를 허가할지 여부를 결정하는 것을 특징으로 하는 컴퓨팅 시스템.
  13. 제12항에 있어서,
    상기 시큐리티 프로세서는,
    상기 제1 유저 아이디를 기초로 상기 디바이스의 사용자가 상기 유저 데이터에 대한 권한을 갖는지 판단하고,
    제1 억세스 아이디를 수신하고, 상기 제1 억세스 아이디가 상기 유저 데이터에 대한 억세스 권한을 갖는지 판단하는 것을 특징으로 하는 컴퓨팅 시스템.
  14. 제13항에 있어서,
    상기 시큐리티 프로세서 만이 억세스 할 수 있는 시큐어 메모리;를 더 포함하는 것을 특징으로 하는 컴퓨팅 시스템.
  15. 제14항에 있어서,
    상기 시큐리티 프로세서는,
    상기 유저 데이터에 권한을 갖는 사용자의 인증(authorized) 유저 아이디, 상기 유저 데이터가 저장된 메모리 내 영역에 대한 영역 정보 및 상기 유저 데이터를 암호화시킬 때 사용한 상기 키를 포함하는 키 리스트를 생성하고,
    상기 키 리스트를 이용하여 상기 제1 유저 아이디가 상기 인증 유저 아이디와 일치 하는지 판단함으로써 상기 디바이스의 사용자가 상기 유저 데이터에 대한 권한을 갖는지 판단하는 것을 특징으로 하는 컴퓨팅 시스템.
  16. 제14항에 있어서,
    상기 시큐리티 프로세서는,
    상기 유저 데이터에 억세스 권한을 갖는 인증 억세스 아이디, 상기 유저 데이터가 저장된 메모리 내 영역에 대한 영역 정보 및 상기 유저 데이터에 대한 억세스 허가 여부에 대한 정보를 포함하는 허가 리스트를 생성하고,
    상기 허가 리스트를 이용하여 상기 제1 억세스 아이디가 상기 인증 억세스 아이디와 일치 하는지 판단함으로써 상기 제1 억세스 아이디에 대응하여 상기 유저 데이터에 대한 억세스 권한을 줄지 여부를 판단하는 것을 특징으로 하는 컴퓨팅 시스템.
  17. 제16항에 있어서,
    상기 시큐리티 프로세서는 상기 제1 억세스 아이디가 상기 인증 억세스 아이디와 일치하는 경우, 상기 키를 출력하는 것을 특징으로 하는 컴퓨팅 시스템.
  18. 제14항에 있어서,
    상기 시큐리티 프로세서는,
    상기 유저 데이터에 권한을 갖는 사용자의 인증(authorized) 유저 아이디, 상기 유저 데이터가 저장된 메모리 내 영역에 대한 영역 정보 및 상기 유저 데이터를 암호화시킬 때 사용한 상기 키를 포함하는 키 리스트,
    상기 유저 데이터에 억세스 권한을 갖는 인증 억세스 아이디, 상기 영역 정보 및 상기 유저 데이터에 대한 억세스 허가 여부에 대한 정보를 포함하는 허가 리스트 및
    억세스 아이디와 상기 억세스 아이디에 대응되는 공개 키에 대한 대응 정보를 포함하는 공개 키 리스트를 생성하고,
    생성한 상기 키 리스트, 상기 허가 리스트 및 상기 공개 키 리스트를 상기 시큐어 메모리에 저장하는 것을 특징으로 하는 컴퓨팅 시스템.
  19. 제12항에 있어서,
    상기 시큐리티 프로세서는 서로 다른 키들을 이용하여 암호화된 유저 데이터들을 상기 시스템 메모리에 출력하고,
    상기 시스템 메모리는 상기 유저 데이터들을 서로 다른 영역에 대응되는 키와 함께 저장하는 것을 특징으로 하는 컴퓨팅 시스템.
  20. 무작위성에 기초하여 키를 생성하고, 상기 키를 기초로 유저 데이터를 암호화하여 저장하는 컴퓨팅 시스템;및
    억세스 아이디를 상기 컴퓨팅 시스템으로 출력함으로써 상기 유저 데이터를 획득함으로써 상기 컴퓨팅 시스템에 대한 오류를 진단하는 디버거;를 포함하고,
    상기 컴퓨팅 시스템은, 상기 억세스 아이디가 상기 유저 데이터에 대한 억세스 권한을 갖는 인증 억세스 아이디인지 판단하고, 상기 판단 결과에 기초하여 상기 디버거에게 상기 유저 데이터에 대한 억세스 권한을 제공하는 것을 특징으로 하는 진단 시스템.
KR1020190159351A 2019-12-03 2019-12-03 사용자에 대한 인증을 통해 유저 데이터에 대한 권한을 부여하는 시큐리티 프로세서 및 이를 포함하는 컴퓨팅 시스템 KR20210069473A (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020190159351A KR20210069473A (ko) 2019-12-03 2019-12-03 사용자에 대한 인증을 통해 유저 데이터에 대한 권한을 부여하는 시큐리티 프로세서 및 이를 포함하는 컴퓨팅 시스템
US17/027,824 US11615207B2 (en) 2019-12-03 2020-09-22 Security processor configured to authenticate user and authorize user for user data and computing system including the same
EP20205767.5A EP3832511A1 (en) 2019-12-03 2020-11-04 Security processor configured to authenticate user and authorize user for user data and computing system including the same
TW109139358A TWI857176B (zh) 2019-12-03 2020-11-11 安全性處理器、計算系統以及診斷系統
CN202011392294.9A CN112906072A (zh) 2019-12-03 2020-12-02 安全处理器和计算系统
US18/190,427 US12067148B2 (en) 2019-12-03 2023-03-27 Security processor configured to authenticate user and authorize user for user data and computing system including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190159351A KR20210069473A (ko) 2019-12-03 2019-12-03 사용자에 대한 인증을 통해 유저 데이터에 대한 권한을 부여하는 시큐리티 프로세서 및 이를 포함하는 컴퓨팅 시스템

Publications (1)

Publication Number Publication Date
KR20210069473A true KR20210069473A (ko) 2021-06-11

Family

ID=73059780

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190159351A KR20210069473A (ko) 2019-12-03 2019-12-03 사용자에 대한 인증을 통해 유저 데이터에 대한 권한을 부여하는 시큐리티 프로세서 및 이를 포함하는 컴퓨팅 시스템

Country Status (4)

Country Link
US (2) US11615207B2 (ko)
EP (1) EP3832511A1 (ko)
KR (1) KR20210069473A (ko)
CN (1) CN112906072A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024005419A1 (ko) * 2022-07-01 2024-01-04 삼성전자 주식회사 암호화 서비스를 제공하는 전자 장치 및 그 동작 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210069473A (ko) 2019-12-03 2021-06-11 삼성전자주식회사 사용자에 대한 인증을 통해 유저 데이터에 대한 권한을 부여하는 시큐리티 프로세서 및 이를 포함하는 컴퓨팅 시스템
US11930109B2 (en) * 2021-01-22 2024-03-12 International Business Machines Corporation Encrypted storage with secure access
GB2609390B (en) * 2021-06-24 2023-09-06 Istorage Ltd Portable encryption device with multiple keys

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7155616B1 (en) * 2000-07-31 2006-12-26 Western Digital Ventures, Inc. Computer network comprising network authentication facilities implemented in a disk drive
AU2002321718A1 (en) 2002-08-13 2004-02-25 Nokia Corporation Computer architecture for executing a program in a secure of insecure mode
US8838950B2 (en) 2003-06-23 2014-09-16 International Business Machines Corporation Security architecture for system on chip
WO2006066604A1 (en) 2004-12-22 2006-06-29 Telecom Italia S.P.A. Method and system for access control and data protection in digital memories, related digital memory and computer program product therefor
US7900064B2 (en) * 2005-04-20 2011-03-01 Honeywell International Inc. Encrypted debug interface
US9171187B2 (en) 2005-05-13 2015-10-27 Nokia Technologies Oy Implementation of an integrity-protected secure storage
JP2008103936A (ja) * 2006-10-18 2008-05-01 Toshiba Corp 秘密情報管理装置および秘密情報管理システム
JP4912921B2 (ja) 2007-02-27 2012-04-11 富士通セミコンダクター株式会社 セキュアプロセッサシステム、セキュアプロセッサ及びセキュアプロセッサシステムの制御方法
US9270679B2 (en) * 2009-06-23 2016-02-23 Yahoo! Inc. Dynamic access control lists
EP2278514B1 (en) 2009-07-16 2018-05-30 Alcatel Lucent System and method for providing secure virtual machines
US8856530B2 (en) * 2011-09-21 2014-10-07 Onyx Privacy, Inc. Data storage incorporating cryptographically enhanced data protection
US20130282951A1 (en) 2012-04-19 2013-10-24 Qualcomm Incorporated System and method for secure booting and debugging of soc devices
US9286152B2 (en) 2013-06-14 2016-03-15 Microsoft Technology Licensing, Llc Securely obtaining memory content after device malfunction
US9170957B2 (en) 2013-08-29 2015-10-27 Qualcomm Incorporated Distributed dynamic memory management unit (MMU)-based secure inter-processor communication
US9607177B2 (en) 2013-09-30 2017-03-28 Qualcomm Incorporated Method for securing content in dynamically allocated memory using different domain-specific keys
US9171133B2 (en) 2013-10-11 2015-10-27 Landis+Gyr Innovations, Inc. Securing a device and data within the device
US9135472B2 (en) 2013-10-31 2015-09-15 Square, Inc. Systems and methods for secure processing with embedded cryptographic unit
US11100242B2 (en) * 2014-05-30 2021-08-24 Apple Inc. Restricted resource classes of an operating system
US10402797B2 (en) 2016-06-20 2019-09-03 Cyber Armor Pte Ltd Secured authentication and transaction authorization for mobile and internet-of-things devices
US10721067B2 (en) 2016-08-10 2020-07-21 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Secure processor for multi-tenant cloud workloads
TWI602077B (zh) 2017-02-06 2017-10-11 蓋特資訊系統股份有限公司 資料保護方法與系統
KR20210069473A (ko) 2019-12-03 2021-06-11 삼성전자주식회사 사용자에 대한 인증을 통해 유저 데이터에 대한 권한을 부여하는 시큐리티 프로세서 및 이를 포함하는 컴퓨팅 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024005419A1 (ko) * 2022-07-01 2024-01-04 삼성전자 주식회사 암호화 서비스를 제공하는 전자 장치 및 그 동작 방법

Also Published As

Publication number Publication date
CN112906072A (zh) 2021-06-04
EP3832511A1 (en) 2021-06-09
TW202127245A (zh) 2021-07-16
US20230237193A1 (en) 2023-07-27
US12067148B2 (en) 2024-08-20
US11615207B2 (en) 2023-03-28
US20210165909A1 (en) 2021-06-03

Similar Documents

Publication Publication Date Title
US11366906B2 (en) Domain-authenticated control of platform resources
CN112513857B (zh) 可信执行环境中的个性化密码安全访问控制
US9875368B1 (en) Remote authorization of usage of protected data in trusted execution environments
US8572392B2 (en) Access authentication method, information processing unit, and computer product
KR20210069473A (ko) 사용자에 대한 인증을 통해 유저 데이터에 대한 권한을 부여하는 시큐리티 프로세서 및 이를 포함하는 컴퓨팅 시스템
CN101771689B (zh) 通过管理性引擎进行企业网单点登录的方法和系统
US7945776B1 (en) Securing a passphrase
US8424077B2 (en) Simplified management of authentication credentials for unattended applications
US8590037B2 (en) Managing host application privileges
US9183415B2 (en) Regulating access using information regarding a host machine of a portable storage drive
EP2063378B1 (en) Telecommunications device security
CN111813614B (zh) 调试处理方法、装置与调试处理系统
US7873835B2 (en) Accessing data storage devices
TWI708159B (zh) 包含安全處理器之裝置平台、裝置中之安全處理器、以及相關儲存媒體
KR20080078708A (ko) 한정된 리소스 디바이스에 대한 오프-라인 인증 방법
US20090064273A1 (en) Methods and systems for secure data entry and maintenance
US20220166762A1 (en) Integrated circuit for obtaining enhanced privileges for a network-based resource and performing actions in accordance therewith
US20150047001A1 (en) Application program execution device
CN109076337B (zh) 用于用户与移动终端设备和另一个实体的安全交互方法
WO2022127510A1 (zh) 认证方法及装置
TWI857176B (zh) 安全性處理器、計算系統以及診斷系統
US20170295147A1 (en) Key-based access in batch mode
US20170310480A1 (en) Access to software applications
US11340801B2 (en) Data protection method and electronic device implementing data protection method
AU2017412654A1 (en) Assuring external accessibility for devices on a network

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal