KR20230160744A - 계산적 스토리지 다운로드 프로그램을 위한 인증 메커니즘 - Google Patents

계산적 스토리지 다운로드 프로그램을 위한 인증 메커니즘 Download PDF

Info

Publication number
KR20230160744A
KR20230160744A KR1020230063365A KR20230063365A KR20230160744A KR 20230160744 A KR20230160744 A KR 20230160744A KR 1020230063365 A KR1020230063365 A KR 1020230063365A KR 20230063365 A KR20230063365 A KR 20230063365A KR 20230160744 A KR20230160744 A KR 20230160744A
Authority
KR
South Korea
Prior art keywords
key
user
computational storage
program
storage device
Prior art date
Application number
KR1020230063365A
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 삼성전자주식회사
Publication of KR20230160744A publication Critical patent/KR20230160744A/ko

Links

Classifications

    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/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/3247Cryptographic 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
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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/3297Cryptographic 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 time stamps, e.g. generation of time stamps

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명의 기술적 사상은 키 교환 및 관리 방법을 제공합니다. 상기 방법은 연산 스토리지 장치에서 사용자의 공개 키에 기초하여 생성된 사용자 인증서를 수신하는 단계; 연산 스토리지 장치에서 인증 기관의 공개 키를 사용하여 사용자의 공개 키를 추출하는 단계; 연산 스토리지 장치에서 암호화 프로그램 키를 생성하는 단계; 암호화된 암호화 프로그램 키를 생성하기 위해 사용자의 공개 키를 사용하여 연산 스토리지 장치에서 상기 암호화 프로그램 키를 암호화하는 단계; 및 상기 암호화된 암호화 프로그램 키를 연산 스토리지 장치에 저장하는 단계를 포함한다.

Description

계산적 스토리지 다운로드 프로그램을 위한 인증 메커니즘 {AUTHENTICATION MECHANISM FOR COMPUTATIONAL STORAGE DOWNLOAD PROGRAM}
본 출원은 2022년 05월 17일 출원된 미국 임시 출원번호 제63/342,856호의 우선권을 주장하며, 그 전문이 여기에서 인용문헌으로 참조된다.
본 발명은 일반적으로 다운로드 가능한 프로그램에 대한 연산 스토리지(Computational storage, CS) 보안에 관한 것이다.
연산 스토리지 장치는 데이터가 저장된 곳에서 직접 데이터를 처리할 수 있는 전자 장치이다. 이러한 접근 방식은 많은 양의 데이터가 외부에서 처리되는 것을 줄이고, 지연 시간 및 대역폭 사용량을 감소시키고, 에너지를 절감할 수 있다.
연산 스토리지 장치는 계산 오버헤드를 저장 장치로 오프로드하도록 설계되어, 대용량 데이터 세트의 처리 효율성을 향상시킬 수 있다. 예를 들어, 일부 시스템은 일반적인 오프로딩 플랫폼을 제공하는 데 중점을 둔 NVME(Nonvolatile Memory Express) 장치를 통해 연산 스토리지 장치를 제공하도록 설계될 수 있다. 그러나, 오프로드 프로그래밍은 공격에 취약할 수 있다. 그러므로, 공격의 위험을 줄일 수 있는 연산 스토리지 보안을 향상시킬 필요가 있다.
본 발명은 전술한 문제점을 해결하기 위한 것이다.
본 발명은 적어도 전술한 문제점을 해결하고 적어도 후술하는 이점을 제공한다.
일부 실시예들에 따른 트랜지스터 소자는 기판 및 상기 기판 상에 적층된 제1 트랜지스터 및 제2 트랜지스터를 포함할 수 있다. 상기 제1 트랜지스터의 절연 스페이서는 상기 제1 트랜지스터의 금속 게이트의 측벽 상 및 상기 제1 트랜지스터의 한 쌍의 반도체 채널층들의 사이에 배치될 수 있다. 상기 제2 트랜지스터의 금속 게이트의 측벽 상 및 상기 제2 트랜지스터의 한 쌍의 반도체 채널층들 사이에는 절연 스페이서가 배치되지 않을 수 있다. 또한, 제1 트랜지스터 및 제2 트랜지스터는 각각 NMOS(N-channel metal oxide semiconductor) 트랜지스터 및 PMOS(P-channel metal oxide semiconductor) 트랜지스터이거나, 또는 그 반대일 수 있다.
일부 실시예들에 따른 트랜지스터 소자 형성 방법은 제1 트랜지스터의 복수의 제1 반도체 채널층들 사이에 절연 스페이서를 형성하는 단계를 포함할 수 있다. 트랜지스터 소자 형성 방법은 제2 트랜지스터의 복수의 제2 반도체 채널층들 사이에 반도체 스페이서를 형성하는 단계를 포함할 수 있다. 제1 트랜지스터 및 제2 트랜지스터는 서로 트랜지스터 스택 내에 있을 수 있다.
도 1은 본 발명의 일 실시예에 따른 연산 스토리지 아키텍쳐를 도시하는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 다운로드 가능한 프로그램에 대해 가능한 보안 위협 모델을 나타내는 도면이다.
도 3A 내지 도 3B는 본 발명의 예시적인 실시예들에 따른 CA 기반의 CSD의 키 분배 메커니즘을 도시하는 도면이다.
도 4는 본 발명의 일 실시예에 따른 CSD 내부의 키 분배 기능을 설명하는 도면이다.
도 5는 본 발명의 일 실시예에 따른 보안 연산 스토리지 다운로드 프로그램의 이미지 포맷 및 구축 절차를 도시하는 도면이다.
도 6은 본 발명의 일 실시에에 따른 연산 스토리지 장치에서 연산 스토리지 다운로드 프로그램에 대한 인증 및 데이터 무결성 검사 절차를 설명하는 도면이다.
[0013] 도 7은 본 발명의 일 실시예에 따른 연산 스토리지 다운로드 명령에 대한 전체 인증 아키텍처를 도시하는 도면이다.
[0014] 도 8은 본 발명의 예시적인 실시예에 따른 네트워크 환경의 전자 장치를 도시하는 도면이다.
본 발명은 연산 스토리지 시스템에서 프로그램 다운로드의 보안을 향상시키는 보안 다운로드 프로그램 이미지를 구축하는 방법을 제공할 수 있다. 또한, 본 발명은 연산 스토리지 다운로드 프로그램에 대한 인증 및 데이터 무결성 검사 메커니즘을 제공할 수 있다. 더 나아가, 본 발명은 계산 다운로드 프로그램을 위한 안전 키(대칭 암호 키) 교환 메커니즘을 제공 수 있다. 아래에서 논의되는 바와 같이, 본 발명은 영향을 받은/수정된(예를 들어, 손상된) 데이터를 검출하는 방법을 제공함으로써 악성 다운로드 프로그램으로부터 연산 스토리지 시스템을 보호한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다. 동일한 구성 요소에 대해서는 다른 도면상에 표시되더라도 동일한 도면 부호를 부여함을 유의하여야 한다. 이하의 설명에서 상세한 구성 및 구성 요소와 같은 특정 세부 사항은 본 발명의 실시예에 대한 전반적인 이해를 돕기 위해 제공된 것일 뿐이다. 그러므로 본 명세서에 기술된 실시예에 대한 다양한 변경 및 수정이 본 개시의 범위를 벗어나지 않는 범위 내에서 이루어질 수 있음은 당업자에게 자명하다. 또한, 명확하고 간결한 설명을 위해 잘 알려진 기능 및 구성에 대한 설명은 생략한다. 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 이용자, 이용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 용어의 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 발명은 다양한 변경을 가할 수 있고, 여러 실시예들을 가질 수 있는 바, 이들 중 실시예들을 첨부된 도면과 함께 상세하게 설명한다. 그러나, 본 발명은 실시예에 한정되지 않고 본 발명의 범위 내에 있는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
다양한 구성요소를 설명하기 위해 제1, 제2 등의 서수를 포함하는 용어가 사용될 수 있으나, 구조적 구성요소가 이러한 용어에 의해 제한되는 것은 아니다. 용어는 한 요소를 다른 요소와 구별하는 데 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 지칭될 수 있다. 유사하게, 제2 구조적 요소는 또한 제1 구조적 요소로 지칭될 수 있다. 여기에서 사용된 "및/또는"이라는 용어는 하나 이상의 관련 항목의 모든 조합을 포함합니다.
본 명세서에서 사용된 용어는 단지 본 발명의 다양일 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수형은 문맥상 명백히 다르게 나타내지 않는 한 복수형을 포함할 수 있다. 본 개시에서 "포함하다" 또는 "가지다" 등의 용어는 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재를 나타내고, 이를 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의된 용어와 같은 용어는 해당 기술 분야의 문맥적 의미와 동일한 의미로 해석되어야 하며, 본 명세서에서 명확하게 정의되지 않는 한 이상적이거나 지나치게 형식적인 의미로 해석되어서는 안 된다.
일 실시예에 따른 전자 장치는 저장 장치를 활용하는 다양한 형태의 전자 장치일 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치(예: 스마트폰), 컴퓨터, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치 또는 가전 제품을 포함할 수 있다. 본 발명의 일 실시예에 따른 전자 장치는 전술한 바에 한정되지 않는다.
본 발명에서 사용한 용어는 본 발명을 한정하려는 의도가 아니라 해당 실시예에 대한 다양한 변경, 균등물 내지 대체물을 포함한다. 첨부된 도면을 설명함에 있어서 유사하거나 관련된 구성요소에 대해서는 유사한 참조번호를 부여할 수 있다. 항목에 해당하는 명사의 단수형은 관련 문맥에서 달리 명시하지 않는 한 하나 이상의 항목을 포함할 수 있다. 본 명세서에서 사용되는 바와 같이, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B, C 중 적어도 하나"와 같은 각각의 문구는 해당 문구에 함께 열거된 항목들의 가능한 모든 조합을 포함할 수 있다. 본 명세서에서 "제1", "제2", "제1", "제2" 등의 용어는 해당 구성요소를 다른 구성요소와 구별하기 위해 사용될 수 있으나, 다른 측면(예: 중요도, 순서)에서 구성요소를 한정하려는 의도가 아니다. 한 구성 요소(예: 제1 구성요소)가 "작동적으로" 또는 "통신적으로"라는 용어를 사용하거나 사용하지 않고 다른 구성요소(예: 제2 구성요소)와 "연결된"으로 언급되는 경우, 상기 구성 요소는 직접(예: 유선), 무선 또는 제3 구성요소를 통해 연결될 수 있음을 나타낸다.
본 명세서에서 사용되는 용어 "모듈"은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합으로 구현된 단위를 포함할 수 있으며, 예를 들어, 모듈은 "로직", "로직 블록", "부품" 및 "회로"와 같은 다른 용어와 상호 교환하여 사용될 수 있다. 모듈은 하나 이상의 기능을 수행하도록 조정된 단일 통합 구성요소 또는 최소 단위 또는 그 부분일 수 있다. 예를 들어, 일 실시예에 따르면, 모듈은 어플리케이션별 집적 회로(ASIC)의 형태로 구현될 수 있다.
본 발명은 오프로드 프로그램 보호, 연산 스토리지의 다운로드 가능한 프로그램, 연산 스토리지 장치에서 인증 및 데이터 무결성 검사를 수행하는 방법을 제공함으로써 연산 스토리지 보안을 향상시킬 수 있다. 본 발명에 개시된 바와 같이, 특정 요소는 아래 첨자를 사용하여 축약된다(예를 들어, CAuser, PUuser 등). 설명의 편의를 위해 이러한 축약된 요소는 축약된 요소를 참조하기 위해 아래 첨자를 사용할 수도 있고 반드시 사용하지 않을 수도 있다(예: " CAuser"는 "CA 사용자"와 동일할 수 있고, " PUuser"는 "PU 사용자"와 동일할 수 있음).
도 1은 본 발명의 일 실시예에 따른 연산 스토리지 아키텍쳐를 도시하는 블록도이다.
도 1을 참조하면, 연산 스토리지 장치(101)는 적어도 하나의 프로그램 슬롯 또는 n개까지의 복수의 프로그램 슬롯으로 구성될 수 있다. 프로그램 슬롯은 고정 또는 사용자 정의 다운로드 프로그램을 저장하는 공간으로 정의될 수 있다. 또한, 연산 스토리지 장치(101)는 적어도 하나의 연산 엔진 또는 최대 M개까지의 복수의 연산 엔진을 포함할 수 있다. 상기 연산 엔진은 프로그램을 처리하기 위한 로직일 수 있고, 메모리 영역(예를 들어, 프로그램에 의해 입출력에 사용되는 메모리 공간)을 사용하여 연산을 수행할 수 있다.
따라서, 도 1에 도시된 구성은 연산 스토리지 서비스를 제공할 수 있다. 연산 스토리지 서비스는 연산 스토리지 드라이브에서 작동하는 알고리즘 및 기능에 대한 엑세스를 제공할 수 있다. 예를 들어, 상기 연산 스토리지 서비스는 탐색 방법(연산 스토리지의 기능 정보, 연산 스토리지의 상태 정보 및/또는 기능 정보를 포함하는 보고서), 프로그램 등록 방법(예: 프로그래밍 가능한 연산 스토리지 서비스), 연산 리소스(예: 메모리) 할당 및 해제 방법, 연산 리소스(예: 메모리)와 네임스페이스 간의 데이터 이동 방법, 연산 리소스(예: 메모리) 엑세스 방법 및 등록된 프로그램 실행 방법을 포함할 수 있다.
사용자는 연산 스토리지 장치의 다운로드 프로그램 인터페이스를 통해 사용자 정의 프로그램을 등록할 수 있으므로, 연산 스토리지 장치에 새로운 안전 취약성이 발생할 수 있다.
도 2는 본 발명의 일 실시예에 따른 다운로드 가능한 프로그램에 대해 가능한 보안 위협 모델을 나타내는 도면이다.
도 2를 참조하면, 세 개의 위협 취약성 위치가 식별된다. 첫째로, 다운로드 프로그램은 다운로드 프로그램 이미지를 악성 바이너리 코드로 교체됨으로써 공격받을 수 있다. 또는 상기 다운로드 프로그램은 호스트에 저장된 위치(203)에 존재하는 바이너리 코드에 취약 코드를 추가함으로써 수정될 수 있다. "일반적인 바이너리" 또는 "바이너리 코드"는 암호화되지 않았기 때문에 공격에 취약한 다운로드 프로그램을 가리킬 수 있다. 둘째로, 다운로드 프로그램 이미지가 위치(204)의 연산 스토리지 장치(201)로 전송될 때, 다운로드 프로그램은 공격자에 의해 교체될 수 있다. 셋째로, 악성코드가 연산 스토리지 장치(201)의 내부에서 실행될 때, 악성 코드는 연산 스토리지 장치(201)를 공격할 수 있고, 위치(204)에서의 연산 엔진(202)에 영향을 미칠 수 있다.
위에서 언급된 위협 모델로부터 아래 표 1과 같은 세가지 원칙을 추출할 수 있다.
[표 1]
연산 스토리지 다운로드 프로그램 이미지를 안전하게 보관하는 하나의 방법은 승인되지 않은 사용자로부터 수정을 방지하기 위해 읽기 전용 매체 또는 전용 보안 저장소에 연산 스토리지 다운로드 프로그램 이미지를 배치하는 것일 수 있다. 그러나 이러한 구성은 실제의 업무 환경에서 현실적이지 않을 수 있다.
보안 전송을 수행하기 위해 대규모 시스템은 세션 키 기반의 암호화된 전송 메커니즘을 구비할 수 있지만, 운용 비용이 많이 들고, 타사 인증 서비스가 필요할 수 있다.
연산 스토리지 장치에서 인증에 대한 공격을 탐지하기 위해, 사용자는 연산 스토리지 장치에 공개 키를 등록하고, 사용자의 개인 키를 사용하여 연산 스토리지 다운로드 프로그램 이미지를 암호화할 수 있다. 그 다음으로, 연산 스토리지 장치는 사용자의 공개 키와 연산 스토리지 다운로드 이미지를 복호화함으로써 연산 스토리지 다운로드 프로그램 이미지를 인증할 수 있다. 그러나 사용자의 개인 키 및 공용 키는 보호되어야 할 수 있으며, 연산 스토리지 장치는 유효한 사용자 공개 키를 보유해야 할 수 있다.
그러므로, 표 2에서 나타난 바와 같이 세가지의 원칙을 알 수 있다.
[표 2]
암호화된 포맷으로 연산 스토리지 다운로드 이미지를 수정함으로써, 사용자와 연산 스토리지 장치 간에 보안 전송의 필요성이 충족될 수 있다.
여기서, 보안 키 분배 방법을 설명한다.
연산 스토리지 프로그램 이미지를 암호화(crypto)하여 다운로드하는 방식에서 인증을 하기 위해서는 사용자와 연산 스토리지 프로그램 간에 암호화 키를 안전하게 배포해야 할 수 있다.
예를 들어, 키 분배 메커니즘에 기반한 대칭 마스터 키는 인증을 위해 사용될 수 있고, 타사 키 배포 센터(key distribution center, KDC)가 필요할 수 있다. 두 항목(사용자 및 연산 스토리지 장치)의 마스터를 키 배포 센터에 등록하기 위해 초기 시간이 필요할 수 있다. 상기 키 배포 센터는 키를 생성할 수 있고, 마스터 키가 있는 항목(entry)으로 추후 메시지를 작성할 수 있다.
대칭 마스터 키로 키 배포를 사용하는 연산 스토리지 장치의 몇 가지 단점은 키 배포 전에 마스터 키를 타사에 등록해야 할 수 있으며, 이는 연산 스토리지 장치의 마스터 키를 등록하기 위한 추가 보안 방법이 필요할 수 있다. 또한, 키 배포 센터의 마스터 키는 안전하게 전송되어야 하며, 이는 추가적인 보안 방법이 필요할 수도 있다. 또한, 키 배포 센터에 의한 키 생성은 안전하지 않을 수 있다. 또한 키 배포 센터의 키는 항상 보호되어야 할 수 있다.
인증을 달성하기 위해 사용되는 또 다른 보안 키 분배 방법은 비대칭 키(개인 키/공용 키)를 사용하는 간단한 키 분배 방법일 수 있다. 이 기술의 한 가지 단점은 중간자 공격에 취약할 수 있다. 중간자 공격을 피하는 비대칭 키를 사용하는 키 배포 방법에는 보안을 개선하기 위한 추가 단계가 필요할 수 있다. 예를 들어 중간자 공격을 피하는 한 가지 접근 방식은 키를 배포하기 전에 공개 키를 다른 항목에 등록하는 것일 수 있다. 이 경우, 키를 안전하게 배포하기 위해 추가 메시지를 교환해야 할 수 있다. 또는 보안을 향상시키기 위해 키 배포 중에 인증서를 사용하는 것이 또 다른 접근 방식일 수 있다. 그러나 이 접근 방식에서는 인증서를 사용하기 위해 타사 인증 기관(certificate authority, CA)(및 인증 기관의 공개 키)에 의존해야 할 수 있다.
여기에서 개시된 연산 스토리지 장치를 갖는 인증 기관에 기반한 키 분배 메커니즘에 의해 하기 표 3에 도시된 다음의 4가지 원칙이 달성될 수 있다.
[표 3]
본 명세서에 기술된 바와 같이, 인증서는 "E(PR ca, [IDuser| T | PUuser])"로 표현될 수 있다. E는 암호화, PR은 개인 키, PU는 공개 키, T는 타임스탬프, ID는 아이디를 나타낼 수 있다.
아래에서, 연산 스토리지 서비스 내의 인증 기관 기반 보안 키 배포에 대해 설명한다.
도 3A 내지 도 3B는 본 발명의 예시적인 실시예들에 따른 인증 기관 기반의 연산 스토리지 장치의 키 분배 메커니즘을 도시하는 도면이다.
도 3a 및 도 3b를 참조하면, 인증 기관 시스템이 표시된다. 인증 기관은 연산 스토리지 서비스 내에서 여러 역할을 가질 수 있다. 예를 들어, 인증 기관은 기본적으로 공개 키 인프라(public key infrastructure)를 제공할 수 있다. 인증 기관은 사용자와 연산 스토리지 장치에 대한 인증서를 발급함으로써, 사용자와 연산 스토리지 장치의 공개 키에 대한 공증 서비스를 제공할 수 있다. 인증 기관의 인증서(CAcsd)는 연산 스토리지 장치를 사용하여 응용 프로그램 계산 처리를 오프로드할 수 있는 사용자에게 제공될 수 있다. 인증 기관의 공개 키는 TCG(Trusted Computing Group)의 OPAL 스토리지 SSC(Secure Subsystem Class) 인터페이스를 통해 연산 스토리지 장치에 등록될 수 있다.
도 3a는 본 발명의 일 실시예에 따른 디폴트 키 분배 절차(예를 들어, 키 분배 흐름도)를 도시한다.
301 단계 에서, 인증 기관의 공개 키(PUca)는 연산 스토리지 장치에 등록될 수 있다. 연산 스토리지 장치는 사용자에게 알려진 인증서(CAcsd)를 생성할 수 있다. 302 단계에서, 사용자의 공개 키(PUuser)는 인증 기관에 제공될 수 있고, 단계 303 에서 사용자는 암호화 메시지와 사용자의 공개 키에 기초하여 생성된 사용자의 인증서(CAuser)를 수신할 수 있다. ("E(PR ca, [ID user || T|| PU user]"로 표시, 여기서 "E" 뒤에 괄호는 CA의 개인키인 "PR ca"를 사용하여 암호화된 메시지를 나타낼 수 있다. 또한, "ID user"는 사용자의 식별, "T"는 타임스탬프, "PU user"는 사용자의 공개 키를 나타낼 수 있다).
304 단계에서, 키 분배는 CAuser를 연산 스토리지 장치로 전송함으로써 시작될 수 있다. 305 단계에서, 연산 스토리지 장치는 CAuser를 PUca로 복호화하여 PUuser와 사용자의 아이디(IDuser)를 추출하여 안전하게 저장할 수 있다. 이후, 306단계에서, 연산 스토리지 장치는 키 유도 함수(Key derivation function, KDF)를 이용하여 사용자의 프로그램 암호키(KEYuser)(예를 들어, 사용자의 대칭형 프로그램 암호키)를 생성하여 안전하게 저장할 수 있다. IDuser, PUuser, 및 KEYuser는 연산 스토리지 장치 내부의 프로그램 키 테이블에 안전하게 저장될 수 있다. 이 시간 동안, KEYuser는 연산 스토리지 장치의 키 암호화 키(Key Encrypt Key, KEK)로 암호화된 포맷으로 저장될 수 있다.
연산 스토리지 장치 내부의 프로그램 키 테이블은 아래 표 4와 같이 ID 필드, 프로그램 키(암호화 키) 필드 및 공개 키 필드를 포함할 수 있다.
[표 4]
상기 아이디 및 공개 키 필드는 인증 기관에서 추출할 수 있다. 상기 프로그램 키는 연산 스토리지 장치에 의해 생성되고, 보안 암호화된 포맷으로 보관될 수 있다.
다시 도 3a를 참조하면, 307 단계에서, 연산 스토리지 장치는 PUuser로 KEYuser를 암호화하는 키 메시지를 생성하며, 이는 사용자(PRuser)의 개인 키로 키 메시지를 복호화함으로써 사용자가 안전하게 KEYuser를 추출할 수 있음을 보장할 수 있다. 308 단계에서, 연산 스토리지 장치는 키 메시지를 사용자에게 전송하기 전에, 연산 스토리지 장치의 개인 키(PRcsd)로 키 메시지에 대한 추가 암호화를 수행할 수 있다. 이는 키 메시지가 연산 스토리지 장치로부터 전송되는 것을 보장할 수 있다(예: 메시지 PUcsd로 복호화 가능). 단계 309에서, 사용자는 PUcsd로 메시지를 해독하여 키 메시지(E(PUuser, Keyuser))를 추출하고, 상기 키 메시지를 안전한 장소에 보관할 수 있다(예: PUuser로 암호화된 키 메시지 저장). 키 분배 시스템은 SSD(Solid state Drive)의 수정된 TCG opal SSC 인터페이스를 사용할 수 있다.
도 3b는 본 발명의 실시예에 따라 사용자의 서비스 수준 계약(SLAuser)을 등록하기 위한 키 분배 메커니즘의 확장을 도시한다. 설명의 편의를 위해, 단계에 대한 설명은 도 1과 유사하게 한다. 도 3a는 생략될 수 있으나, 당업자는 도 3a의 단계에 관한 설명을 이해할 것이다. 도 3a는 도 3b에도 적용될 수 있다.
프로그램 슬롯(PS)은 키 분배 프로세스 중에 SLA(Service level agreement) 값을 제공하여 SLA를 기반으로 제한해야 할 수 있는 제한된 리소스일 수 있다.
도 3b를 참조하면, 단계 351에서, 인증 기관은 SLA 메시지를 발행함으로써 SLA 발행자 역할을 맡을 수 있으며, 이는 런타임 프로그램 슬롯 할당을 제어할 수 있다. SLA 메시지는 E(PRca, [IDuser, SLAuser])로 구성될 수 있다. 따라서, 352단계에서 SLAuser와 IDuser는 인증 기관의 개인키로 암호화된다. CAuser가 등록된 경우, 상기 SLA 메시지는 전송될 수 있다. 353 단계에서, 연산 스토리지 장치는 SLAuser 사용자를 추출하여 프로그램 키 테이블에 저장할 수 있다. 또한 SLAuser는 연산 스토리지 장치의 다운로드 프로그램 요청을 처리할 때 프로그램 슬롯 할당을 제어하는 데 사용될 수 있다. 예를 들어, 연산 스토리지 장치는 다운로드 프로그램을 처리할 때 SLA 값을 확인하고 SLA 값을 기반으로 프로그램 슬롯 할당을 제어할 수 있다.
도 4는 본 발명의 일 실시예에 따른 CSD 내부의 키 분배 기능을 설명하는 도면이다.
도 4를 참조하면, CAuser 및 SLAuser 메시지가 주어지면, 401 단계에서, 상기 연산 스토리지 장치는 PUuser, IDuser 및 SLAuser를 추출할 수 있다. 연산 스토리지 장치는 주어진 CAuser에 대해 PUCA로 인증 기관을 복호화하여 PUuser 를 추출할 수 있다. 주어진 SLA 메시지에 대해 연산 스토리지 장치는 SLA 메시지를 PUCA로 복호화하여 SLAuser를 추출할 수 있다. 이후, 402단계에서 연산 스토리지 장치는 KDF(예를 들어, PUuser)를 이용하여 사용자를 위한 프로그램 키를 생성할 수 있다. 403단계에서 연산 스토리지 장치는 상기 프로그램 키를 연산 스토리지 장치의 KEK로 암호화하여 안전하게 저장할 수 있다. 404 단계에서, 연산 스토리지 장치는 프로그램 키 테이블에 PUuser, e(KEYuser), IDuser 및 SLAuser를 저장할 수 있다.
405 단계에서, 사용자에게 KEYuser를 제공하기 위해, 연산 스토리지 장치는 KEYuser를 PUuser로 암호화하여 키 메시지를 작성할 수 있다. 상기 PUuser는 상기 사용자가 상기 PRuser를 복호화함으로써 KEYuser를 추출할 수 있음을 보장할 수 있다. 406 단계에서, 연산 스토리지 장치는 PRcsd로 키 메시지에 대한 추가 암호화를 수행하여, 이 메시지가 연산 스토리지 장치에 의해 작성되었음을 보장합니다. 407 단계에서, 사용자는 PUcsd로 키 메시지를 복호화 및 추출하여 이 메시지를 보낸 연산 스토리지 장치를 확인할 수 있고, 408단계에서 상기 키 메시지를 안전한 장소에 저장할 수 있다.
따라서, 사용자가 프로그램을 암호화할 필요가 있을 때 아래의 표 5와 같은 원칙에 따라 KEYuser를 추출하고, 프로그램 암호화에 사용할 수 있다.
[표 5]
아래에서, 보안 연산 스토리지 다운로드 프로그램 이미지 포맷에 대하여 설명한다.
도 5는 본 발명의 일 실시예에 따른 보안 연산 스토리지 다운로드 프로그램의 이미지 포맷 및 구축 절차를 도시하는 도면이다.
도 5를 참조하면, 안전한 다운로드가능한 프로그램은 다운로드 가능한 프로그램의 보안을 향상시킬 수 있다. 악성 공격자로부터 공격을 감지하기위해, 상기 연산 스토리지 장치는 상기 다운로드 프로그램을 위한 인증 매커니즘을 제공할 수 있다. 그리고 상기 프로그램은 프로그램 키와 함께 암호화된 포맷으로 저장될 수 있다.
도 5를 참조하면, 사용자는 501 단계에서 KEYuser로 일반적인 바이너리 메시지를 암호화할 수 있다. 이전에 언급한 바와 같이, 키 메시지는 E(PUuser, KEYuser)로 구성될 수 있다. 사용자는 PRuser로 Key 메시지를 복호화하여 Keyuser를 추출할 수 있다. 502 단계에서, 사용자는 인증 기관로부터 추출한 IDuser에 PUca를 추가할 수 있다. 503단계에서, 일반적인 바이너리(다운로드 가능한 프로그램)에 대해 취약성 검사 및/또는 결함 검사를 수행할 수 있다. 상기 503단계에서 취약성 검사 및/또는 불량 검사가 성공적으로 수행되면, 504 단계에서, 인증 기관은 one-way-hash 함수를 이용하여 해시 값을 추출하고, 이를 PRca로 암호화하여 디지털 서명을 제공할 수 있다. 이에 따라, 인증 기관은 프로그램 권한 역할을 수행하고 제공할 수 있다. 사용자는 연산 스토리지 프로그램 이미지를 인증 기관에 제공함으로써, 디지털 서명을 요청하거나 요청할 수 있다. 인증 기관은 주어진 연산 스토리지 다운로드 프로그램 이미지에 대한 취약성 검사와 같은 추가 검사를 수행하고 디지털 서명을 제공할 수 있다.
보안 연산 스토리지 다운로드 프로그램 이미지는 암호화된 암호(예: KEYuser로 암호화된 암호), IDuser(CAuser로부터 추출된 것) 및 디지털 서명(예: 평문의 해시 값에 대해 CA가 서명한 것)으로 구성될 수 있고, 호스트 시스템에 저장될 수 있다.
연산 스토리지 장치에서 연산 스토리지 다운로드 프로그램 이미지의 인증에 대해 설명한다.
도 6은 본 발명의 일 실시에에 따른 연산 스토리지 장치에서 연산 스토리지 다운로드 프로그램에 대한 인증 및 데이터 무결성 검사 절차를 설명하는 도면이다.
도 6을 참조하면, 601 단계에서, 연산 스토리지 장치는 KEYuser로 암호화된 암호 데이터를 해독하고, 일반적인 바이너리 메시지를 생성합니다. Keyuser는 연산 스토리지 장치의 KEK를 이용하여 복호화함으로써, e(KEYuser)에서 추출될 수 있다. 이 절차를 통해 등록된 유효한 사용자가 프로그램을 보내는 것을 보장할 수 있다. 602 단계에서, 연산 스토리지 장치는 데이터 무결성 및 유효성 검사를 준비하기 위해 단방향 함수를 사용하여 일반적인 바이너리 메시지로부터 제1 해시 값을 생성할 수 있다. 그 다음으로, 603 단계에서 연산 스토리지 장치는 디지털 서명과 함께 PUca를 복호화함으로써 디지털 서명으로부터 제2 해시 값을 추출할 수 있다. 그 다음 단계 604에서, 연산 스토리지 장치는 상기 제2 시 값을 일반 이진 메시지의 제1 해시 값과 비교할 수 있다. 제1 해시 값이 제2 해시 값과 동일하지 않은 경우, 보안 연산 스토리지 다운로드 프로그램 이미지가 호스트에서 또는 전송되는 동안 누군가에 의해 수정되었을 수 있다. 또는 연산 스토리지 다운로드 프로그램 이미지가 확인 기관에 의해 서명되지 않은 경우, 연산 스토리지 장치는 이를 감지하고 연산 스토리지 다운로드 프로그램 요청을 거부할 수 있다. 반면에, 연산 스토리지 장치는 제1 해시 값이 제2 해시 값과 동일하고 및/또는 연산 스토리지 다운로드 프로그램 이미지가 인증 기관에 의해 서명된 경우 연산 스토리지 다운로드 프로그램 요청을 승인할 수 있다.
아래에서, 연산 스토리지 장치에서 연산 스토리지 다운로드 프로그램을 위한 인증 아키텍처에 대해 설명한다.
도 7은 본 발명의 일 실시예에 따른 연산 스토리지 다운로드 명령에 대한 전체 인증 아키텍처를 도시하는 도면이다.
도 7을 참조하면, 연산 스토리지 장치는 인증 기관의 공개 키(PU ca)를 등록하고, 사용자에게 키 배포를 제공하기 위해, TCG Opal SSC 인터페이스를 제공합니다. 단계 701에서 시스템이 개시되면 관리자(예를 들어, 키 관리 어플리케이션)는 연산 스토리지 장치에 PUca를 등록할 수 있다. 사용자는 인증 기관를 통해 CAuser 및 SLAuser 메시지를 구축하고, 이를 안전하게 저장할 수 있다. 그러면 사용자는 TCG Opal SSC 인터페이스를 통해 연산 스토리지 장치에 CAuser 및 SLAuser 메시지를 등록하여 KEYuser 메시지를 얻을 수 있다. 연산 스토리지 장치는 KEYuser, IDuser 및 SLAuser를 프로그램 키 테이블에 보관(또는 저장)할 수 있다.
키 분배를 위해 연산 스토리지 장치는 KDF, 단방향 함수, 암호화/복호화 함수 및 안전하게 저장된 프로그램 키 테이블을 제공할 수 있다. 안전한 연산 스토리지 다운로드 프로그램 이미지를 구축하기 위해서는 시스템에서 암호화 기능(연산 스토리지 장치 복호화 기능 지원)을 제공해야 할 수 있다. 사용자는KEYuser 메시지(E(PUuser, KEYuser)) 및 CAuser를 안전하게 저장해야 할 수 있다. 한편, 시스템은 KEYuser 메시지(E(PUuser, KEYuser))와 CAuser를 안전하게 저장하고, 보안 연산 스토리지 다운로드 이미지를 구축하거나 생성할 때, 이를 추출할 수 있는 인터페이스를 제공할 수 있다. 상술한 바와 같이 인증 기관은 보안 연산 스토리지 다운로드 프로그램 이미지를 구축할 때 프로그램 권한자 역할을 수행할 수 있다. 이를 위해서는 시스템이 프로그램에 서명하기 전에 프로그램 유효성 검사를 위해 프로그램 및 시스템의 취약성을 확인해야 할 수 있다.
또한, 사용자는 연산 스토리지 다운로드 프로그램 API(Application Program Interface)를 호출하여 프로그램을 등록할 수 있다. 인증 절차를 위해 연산 스토리지 장치는 복호화 및 단방향 기능을 제공할 수 있다. 먼저, 연산 스토리지 장치는 IDuser를 기준으로 SLAuser와 KEYuser를 추출하고 SLAuser와 프로그램 슬롯(PS) 할당량을 확인하여 사용자가 프로그램을 다운로드하도록 등록되어 있는지 여부를 판단할 수 있다. 사용자가 프로그램을 다운로드하기 위해 등록한 경우 연산 스토리지 장치는 암호화된 프로그램 이미지를 KEYuser로 복호화하고 전자 서명으로 유효성 검사를 수행할 수 있다. 각 단계를 거쳐 추출된 다운로드 프로그램은 프로그램 슬롯에 등록될 수 있다.
도 8은 본 발명의 예시적인 실시예에 따른 네트워크 환경의 전자 장치를 도시하는 도면이다.
도 8을 참조하면, 전자 장치(801)(예: GPS 기능을 포함하는 모바일 단말)은 네트워크 환경(800)에서 제 1 네트워크(898)(예: 근거리 무선 통신 네트워크), 전자 장치(804) 또는 전자 장치(802)를 통해 전자 장치(802)와 통신할 수 있다. 제2 네트워크(899)(예를 들어, 장거리 무선 통신 네트워크)를 통해 서버(808). 전자 장치(801)는 서버(808)를 통하여 전자 장치(804)와 통신할 수 있다. 전자 장치(801)는 프로세서(820), 메모리(830), 입력 장치(850), 음향 출력 장치(855), 디스플레이 장치(860), 오디오 모듈(870), 센서 모듈(876), 인터페이스(877), 햅틱 모듈(879), 카메라 모듈(880), 전원 관리 모듈(888), 배터리(889), 통신 모듈(890), SIM(Subscriber Identification Module)(896) 또는 GNSS 안테나를 포함하는 안테나 모듈(897)을 포함할 수 있다. 일 실시예에 따르면, 전자 장치(801)의 구성요소들 중 적어도 하나(예: 표시 장치(860) 또는 카메라 모듈(880))가 생략되거나, 또는 하나 이상의 다른 구성요소가 전자 장치(801)에 추가될 수 있다. 구성 요소 중 일부는 단일 집적 회로(IC)로 구현될 수 있다. 예를 들면, 센서 모듈(876)(예: 지문 센서, 홍채 센서, 조도 센서 등)은 디스플레이 장치(860)(예: 디스플레이)에 내장될 수 있다.
프로세서(820)은, 예를 들면, 프로세서(820)과 결합된 전자 장치(801)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어하기 위한 소프트웨어(예: 프로그램 840)를 실행하고, 다양한 데이터 처리를 수행할 수 있다. 처리 또는 계산. 데이터 처리 또는 계산의 적어도 일부로서, 프로세서(820)는 다른 구성요소(예: 센서 모듈(876) 또는 통신 모듈(890))로부터 수신된 명령 또는 데이터를 휘발성 메모리(832)에 로드할 수 있고, 휘발성 메모리(832)에 저장하고 결과 데이터를 비휘발성 메모리(834)에 저장할 수 있다.
프로세서(820)는 메인 프로세서(821)(예: 중앙 처리 장치(CPU) 또는 어플리케이션 프로세서) 및 보조 프로세서(823)(예: 그래픽 처리 장치(GPU), 이미지 신호 프로세서(ISP), 허브 프로세서 또는 통신 프로세서(CP))를 포함할 수 있다. 보조 프로세서(823)는 메인 프로세서(821)와 별개로 구현되거나 그 일부로 구현될 수 있다. 추가적으로 또는 대안적으로, 보조 프로세서(823)는 메인 프로세서(821)보다 적은 전력을 소비하거나 특정 기능을 실행하도록 적응될 수 있다. 보조 프로세서(823)는 메인 프로세서(821)와 별개로 구현되거나 그 일부로 구현될 수 있다.
보조 프로세서(823)은 전자 장치(801)의 구성요소들 중 적어도 하나(예: 표시 장치 860, 센서 모듈 876, 또는 통신 모듈 890)와 관련된 기능 또는 상태 중 적어도 일부를 제어할 수 있다. 메인 프로세서(821)가 비활성(예: 슬립) 상태일 때 메인 프로세서(821)와 함께 작동하거나, 메인 프로세서(821)가 활성 상태(예: 어플리케이션 실행)일 때 메인 프로세서(821)와 함께 작동할 수 있다. 일 실시예에 따르면, 보조 프로세서(823)(예: 영상 신호 프로세서 또는 통신 프로세서)는 보조 프로세서(823)와 기능적으로 관련된 다른 구성요소(예: 카메라 모듈(880) 또는 통신 모듈(890))로 구현될 수 있다.
메모리(830)는 전자 장치(801)의 적어도 하나의 구성요소(예: 프로세서(820) 또는 센서 모듈(876))에서 사용되는 다양한 데이터를 저장할 수 있다. 다양한 데이터는, 예를 들면, 소프트웨어(예: 프로그램(840)) 및 입력을 포함할 수 있다. 관련 명령에 대한 데이터 또는 출력 데이터. 메모리(830)는 휘발성 메모리(832) 또는 비휘발성 메모리(834)를 포함할 수 있다.
프로그램(840)은 소프트웨어로서 메모리(830)에 저장될 수 있고, 예를 들면, OS(operating system)(842), 미들웨어(844) 또는 어플리케이션(846)을 포함할 수 있다.
입력 장치(850)은 전자 장치(801)의 외부(예: 사용자)로부터 전자 장치(801)의 다른 구성요소(예: 프로세서(820))가 사용할 명령 또는 데이터를 입력받을 수 있다. 예를 들어, 입력 장치(850)은 마이크, 마우스 또는 키보드를 포함할 수 있다.
음향 출력 장치(855)는 음향 신호를 전자 장치(801)의 외부로 출력할 수 있다. 음향 출력 장치(855)는, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어를 재생하거나 녹음하는 등 일반적인 용도로 사용할 수 있으며, 리시버는 전화 수신용으로 사용할 수 있다. 일 실시예에 따르면, 리시버는 화자와 별개로 구현되거나 화자의 일부로 구현될 수 있다.
표시 장치(860)는 시각적으로 정보를 전자 장치(801)의 외부(예: 사용자)에게 제공할 수 있다. 예를 들어, 표시 장치(860)는 디스플레이, 홀로그램 장치, 또는 프로젝터를 포함할 수 있다. 또한, 상기 표시 장치(860)는 상기 디스플레이, 홀로그램 장치 및 프로젝터 중 어느 하나를 제어하기 위한 제어 회로를 포함할 수 있다. 일 실시예에 따르면, 디스플레이 장치(860)는 터치를 감지하도록 적응된 터치 회로, 또는 터치에 의해 발생한 힘의 세기를 측정하도록 적응된 센서 회로(예를 들어, 압력 센서)를 포함할 수 있다.
오디오 모듈(870)은 소리를 전기 신호로 변환하거나 그 반대로 변환할 수 있다. 일 실시예에 따르면, 오디오 모듈(870)은 입력 장치(850)를 통해 소리를 획득하거나, 전자 장치(801)와 직접(예: 유선) 또는 무선으로 결합된 외부 전자 장치(802)의 음향 출력 장치(855) 또는 헤드폰을 통해 소리를 출력할 수 있다.
센서 모듈(876)은 전자 장치(801)의 동작 상태(예: 전원 또는 온도) 또는 전자 장치(801) 외부의 환경 상태(예: 사용자의 상태)를 감지하여 전기 신호 또는 데이터 값을 생성할 수 있다. 센서 모듈(876)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 자기 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, 적외선(IR) 센서, 생체 인식 센서, 온도 센서, 습도 센서 또는 조도 센서를 포함할 수 있다.
인터페이스(877)는 전자 장치(801)가 외부 전자 장치(802)와 직접(예: 유선) 또는 무선으로 결합하기 위해 사용되는 하나 이상의 지정된 프로토콜을 지원할 수 있다. 일 실시예에 따르면, 인터페이스(877)는, 예를 들면, HDMI(High Definition Multimedia Interface), USB(Universal Serial Bus) 인터페이스, SD(secure digital) 카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(878)은 전자 장치(801)과 외부 전자 장치(802)를 물리적으로 연결할 수 있는 커넥터를 포함할 수 있다. 일 실시예에 따르면, 연결 단자(878)은, 예를 들면, HDMI 커넥터, USB 커넥터, SD 커넥터, 카드 커넥터 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(879)은 전기 신호를 촉각 또는 운동 감각을 통해 사용자가 인지할 수 있는 기계적 자극(예: 진동 또는 움직임) 또는 전기적 자극으로 변환할 수 있다. 일 실시예에 따르면, 햅틱 모듈(879)은, 예를 들면, 모터, 압전 소자 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(880)은 정지영상 또는 동영상을 촬영할 수 있다. 일 실시예에 따르면, 카메라 모듈(880)은 하나 이상의 렌즈, 이미지 센서, 이미지 신호 프로세서, 또는 플래쉬를 포함할 수 있다.
전원 관리 모듈(888)은 전자 장치(801)에 공급되는 전원을 관리할 수 있다. 전원 관리 모듈(888)은, 예를 들면, PMIC(Power Management Integrated Circuit)의 적어도 일부로 구현될 수 있다.
배터리(889)는 전자 장치(801)의 적어도 하나의 구성요소에 전원을 공급할 수 있다. 일 실시예에 따르면, 배터리(889)는, 예를 들면, 충전 불가능한 1차 전지, 충전 가능한 2차 전지, 또는 연료 전지를 포함할 수 있다. .
통신 모듈(890)은 전자 장치(801)와 외부 전자 장치(예: 전자 장치(802), 전자 장치(804), 또는 서버(808)) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널 형성을 지원할 수 있으며, 설정된 통신 채널을 통해 통신을 수행할 수 있다. 통신 모듈(890)은 프로세서(820)(예: 어플리케이션 프로세서)와 독립적으로 동작하며, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 통신 프로세서를 포함할 수 있다. 일 실시예에 따르면, 통신 모듈(890)은 무선 통신 모듈(892)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈 또는 GNSS 통신 모듈) 또는 유선 통신 모듈(894)을 포함할 수 있다. (예를 들어, 근거리 통신망(LAN) 통신 모듈 또는 전력선 통신(PLC) 모듈). 이들 통신 모듈 중 대응하는 하나는 제1 네트워크(898)(예: BluetoothTM, 무선 충실도(Wi-Fi) 다이렉트 또는 적외선 데이터 표준(IrDA)과 같은 근거리 통신 네트워크) 또는 제2 네트워크(899)(예를 들어, 셀룰러 네트워크와 같은 장거리 통신 네트워크, 인터넷, 또는 컴퓨터 네트워크(예를 들어, LAN 또는 WAN(wide area network))를 통해 외부 전자 장치와 통신할 수 있다. 이러한 다양한 유형의 상기 통신 모듈은 하나의 구성요소(예: 하나의 IC)로 구현될 수도 있고, 서로 분리된 복수의 구성요소(예: 복수의 IC)로 구현될 수도 있다. 무선 통신 모듈(892)은 전자 장치(801)의 식별 및 인증을 수행할 수 있다. 제1 네트워크(898) 또는 제2 네트워크(899)와 같은 통신 네트워크에서 가입자 식별 모듈(896)에 저장된 가입자 정보(예를 들어, IMSI(international mobile subscriber identity))를 사용할 수 있다.
안테나 모듈(897)은 전자 장치(801)의 외부(예: 외부 전자 장치)와 신호 또는 전력을 송수신할 수 있다. 일 실시예에 따르면, 안테나 모듈 897은 하나 이상의 안테나를 포함할 수 있으며, 그로부터 예를 들면, 통신 모듈(890)(예: 무선 통신 모듈(892))에 의해 제1 네트워크(898) 또는 제2 네트워크(899)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가 선택될 수 있다. 그러면 선택된 적어도 하나의 안테나를 통하여 통신 모듈(890)과 외부 전자 장치 사이에서 신호 또는 전력을 송수신할 수 있다.
상술한 구성요소들 중 적어도 일부는 상호 연결되어 상호간 통신 방식(예: 버스, 범용 입출력(GPIO), 직렬 주변장치 인터페이스(SPI) 또는 모바일 산업 프로세서 인터페이스(MIPI))을 통해 신호(예: 명령 또는 데이터)를 주고받을 수 있다.
일 실시예에 따르면, 제2 네트워크(899)에 연결된 서버(808)를 통하여 전자 장치(801)와 외부 전자 장치(804) 간에 명령 또는 데이터 송수신이 가능할 수 있다. 상기 전자 장치(802, 804) 각각은 동일한 장치일 수 있다. 전자 장치(801)에서 실행되는 동작들의 전부 또는 일부는 외부 전자 장치(802, 804, 808) 중 하나 이상에서 실행될 수 있다. 예를 들면, 만약 전자 장치(801)은 자동으로 기능이나 서비스를 수행하거나, 사용자 또는 다른 장치의 요청에 응답하여 전자 장치(801)가 기능이나 서비스를 실행하는 대신 또는 실행에 추가하여 상기 적어도 일부의 기능 또는 서비스의 수행을 상기 적어도 하나의 외부 전자 장치에 요청할 수 있다. 요청을 수신한 상기 하나 이상의 외부 전자 장치는 요청된 기능이나 서비스의 적어도 일부, 또는 요청과 관련된 부가 기능이나 부가 서비스를 수행하고, 그 결과를 전자 장치(801)로 전달할 수 있다. 전자 장치(801)는 요청에 대한 응답의 적어도 일부로서 결과를 추가로 처리하거나 처리하지 않고 결과를 제공할 수 있다. 이를 위해 예를 들어 클라우드 컴퓨팅, 분산 컴퓨팅 또는 클라이언트-서버 연산 기술이 사용될 수 있다.
본 발명의 일 실시예는 기계(예: 전자 장치(801))에 의해 판독 가능한 저장 매체(예: 내부 메모리 836 또는 외부 메모리 838)에 저장된 하나 이상의 명령을 포함하는 소프트웨어(예: 프로그램 840)로 구현될 수 있다. 예를 들면, 전자 장치(801)의 프로세서는 프로세서의 제어 하에 하나 이상의 다른 구성 요소를 사용하거나 사용하지 않고 저장 매체에 저장된 하나 이상의 명령어 중 적어도 하나를 호출하고 실행할 수 있다. 따라서, 호출된 적어도 하나의 명령에 따라 적어도 하나의 기능을 수행하도록 기계가 작동될 수 있다. 하나 이상의 명령어는 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행 가능한 코드를 포함할 수 있다. 기계 판독 가능 저장 매체는 비일시적 저장 매체의 형태로 제공될 수 있다. 비일시적(non-transitory)이라는 용어는 저장매체가 유형의 장치로서 신호(예: 전자파)를 포함하지 않는 것을 의미하나, 데이터가 저장매체에 반영구적으로 저장되는 것과 저장매체에 데이터가 저장되는 것을 구분하지 않을 수 있다. 여기서 데이터는 저장 매체에 임시로 저장될 수 있다.
일 실시예에 따르면, 본 발명의 방법은 컴퓨터 프로그램 제품에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 판매자와 구매자 사이에서 상품으로 거래될 수 있다. 컴퓨터 프로그램 제품은 기계 판독 가능 저장 매체(예: CD-ROM(compact disc read only memory))의 형태로 배포되거나 어플리케이션 스토어(예: PlayStoreTM) 또는 두 사용자 장치(예: 스마트폰) 간에 직접 연결합니다. 온라인으로 배포되는 경우, 컴퓨터 프로그램 제품의 적어도 일부는 일시적으로 생성되거나, 제조사 서버의 메모리, 어플리케이션 스토어의 서버 또는 중계 서버와 같은 기계 판독 가능 저장 매체에 적어도 일시적으로 저장될 수 있다.
일 실시예에 따르면, 전술한 구성요소들 각각(예: 모듈 또는 프로그램)은 하나의 개체 또는 복수의 개체를 포함할 수 있다. 전술한 구성요소 중 하나 이상이 생략되거나, 하나 이상의 다른 구성요소가 추가될 수 있다. 대안적으로 또는 추가적으로, 복수의 구성요소(예: 모듈 또는 프로그램)가 하나의 구성요소로 통합될 수 있다. 이 경우, 통합된 구성요소는 통합 이전의 복수의 구성요소 중 대응하는 하나의 구성요소에 의해 수행되었던 것과 동일 또는 유사한 방식으로 복수의 구성요소 각각의 하나 이상의 기능을 여전히 수행할 수 있다. 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작은 순차적, 병렬, 반복 또는 휴리스틱 방식으로 수행되거나 하나 이상의 동작이 다른 순서로 실행되거나 생략되거나 하나 이상의 다른 동작이 추가될 수 있다.
본 발명의 상세한 설명에서는 본 발명의 특정 실시예를 설명하였으나, 본 발명은 본 발명의 범위를 벗어나지 않는 범위에서 다양한 형태로 변형될 수 있다. 따라서, 본 발명의 범위는 설명된 실시예에만 근거하여 정해지는 것이 아니라 첨부된 특허청구범위 및 그 균등물에 근거하여 정해질 것이다.

Claims (10)

  1. 연산 스토리지 장치에서 사용자의 공개 키에 기초하여 생성된 사용자 인증서를 수신하는 단계;
    상기 연산 스토리지 장치에서, 인증 기관의 공개 키을 사용하여 상기 사용자의 공개 키를 추출하는 단계;
    상기 연산 스토리지 장치에서, 암호화 프로그램 키를 생성하는 단계;
    상기 연산 스토리지 장치에서, 암호화된 암호화 프로그램 키를 생성하기 위해 상기 사용자의 공개 키를 사용하여 상기 암호화 프로그램 키를 암호화하는 단계; 및
    상기 암호화된 암호화 프로그램 키를 저장하는 단계;를 포함하는 키 교환및 관리 방법.
  2. 제1항에 있어서,
    상기 연산 스토리지 장치에서 추가 암호화된 암호화 프로그램 키를 생성하기 위해 상기 암호화된 암호화 프로그램 키에 추가적인 암호화를 수행하는 단계; 및
    상기 추가 암호화된 암호화 프로그램 키를 상기 사용자에게 제공하는 단계;를 포함하는 키 교환 및 관리 방법.
  3. 제2항에 있어서,
    상기 연산 스토리지 장치의 공개 키를 이용하여 상기 추가 암호화된 암호화 프로그램 키를 복호화한 후, 상기 암호화된 암호화 키를 안전하게 저장하는 단계를 더 포함하는 키 교환 및 관리 방법.
  4. 제1항에 있어서,
    상기 연산 스토리지 장치에서, 제1 공개 키와 제1 암호화된 암호화 프로그램 키를 저장하는 단계; 및
    상기 연산 스토리지 장치에서, 제2 공개 키와 제2 암호화된 암호화 프로그램 키를 저장하는 단계;를 포함하는 키 교환 및 관리 방법.
  5. 제1항에 있어서,
    상기 연산 스토리지 장치에서, 상기 인증 기관의 공개 키를 사용하여 상기 사용자의 공개 키를 추출하는 단계는,
    할당량을 결정하기 위한 서비스 수준 계약을 추출하는 단계를 더 포함하는 것을 특징으로 하는 키 교환 및 관리 방법.
  6. 제1항에 있어서,
    상기 연산 스토리지 장치에서 상기 암호화 프로그램 키를 생성하는 단계는,
    키 유도 함수(key derivation function)를 사용하여 대칭 프로그램 키를 생성하는 단계를 더 포함하는 것을 특징으로 하는 키 교환 및 관리 방법.
  7. 제1항에 있어서,
    상기 암호화된 암호화 프로그램 키는 키 암호화 키(key encrypt key)를 사용하여 상기 연산 스토리지 장치에 저장되는 것을 특징으로 하는 키 교환 및 관리 방법.
  8. 암호화된 암호를 생성하기 위해 암호화 프로그램 키를 사용하여 일반적인 바이너리 다운로드 가능한 프로그램을 암호화하는 단계;
    보안 다운로드 프로그램 이미지 포맷에 상기 암호화된 암호를 저장하는 단계;
    상기 일반적인 바이너리 다운로드 가능한 프로그램에 대한 취약성 및 결함 검사 중 적어도 어느 하나를 수행하는 단계;
    상기 취약성 및 결함 검사 중 적어도 하나를 성공적으로 수행한 경우, 상기 일반적인 바이너리 다운로드 가능한 프로그램에 대한 해시 값을 생성하고, 상기 해시 값을 인증 기관의 개인 키를 사용하여 암호화하여 암호화된 해시 값을 생성하는 단계; 및
    상기 보안 다운로드 프로그램 이미지 포맷의 디지털 서명으로 상기 암호화된 해시 값을 저장하는 단계;를 포함하는 호스트에 저장된 보안 다운로드 프로그램 이미지 포맷을 구축하는 방법.
  9. 제8항에 있어서,
    상기 인증 기관의 개인 키를 사용하여 사용자의 아이디를 복호화 및 추출하는 단계; 및
    상기 보안 다운로드 프로그램 이미지 포맷에 상기 사용자의 아이디를 저장하는 단계;를 더 포함하는 호스트에 저장된 보안 다운로드 프로그램 이미지 포맷을 구축하는 방법.
  10. 제8항에 있어서,
    상기 암호화 프로그램 키는 사용자의 개인 키를 사용하여 암호화된 암호화 프로그램 키 메시지를 복호화함으로써 획득되는 것을 특징으로 하는 호스트에 저장된 보안 다운로드 프로그램 이미지 포맷을 구축하는 방법.
KR1020230063365A 2022-05-17 2023-05-16 계산적 스토리지 다운로드 프로그램을 위한 인증 메커니즘 KR20230160744A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202263342856P 2022-05-17 2022-05-17
US63/342,856 2022-05-17
US17/879,502 US20230379142A1 (en) 2022-05-17 2022-08-02 Authentication mechanism for computational storage download program
US17/879,502 2022-08-02

Publications (1)

Publication Number Publication Date
KR20230160744A true KR20230160744A (ko) 2023-11-24

Family

ID=88600061

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230063365A KR20230160744A (ko) 2022-05-17 2023-05-16 계산적 스토리지 다운로드 프로그램을 위한 인증 메커니즘

Country Status (3)

Country Link
US (1) US20230379142A1 (ko)
KR (1) KR20230160744A (ko)
DE (1) DE102023112860A1 (ko)

Also Published As

Publication number Publication date
US20230379142A1 (en) 2023-11-23
DE102023112860A1 (de) 2023-11-23

Similar Documents

Publication Publication Date Title
CN109074449B (zh) 在安全飞地中灵活地供应证明密钥
US9386045B2 (en) Device communication based on device trustworthiness
US9509502B2 (en) Symmetric keying and chain of trust
US9768951B2 (en) Symmetric keying and chain of trust
KR101201622B1 (ko) 보안 기능을 가진 시스템 온 칩 및 이를 이용한 디바이스 및 스캔 방법
US9521125B2 (en) Pseudonymous remote attestation utilizing a chain-of-trust
US20200104528A1 (en) Data processing method, device and system
US9571280B2 (en) Application integrity protection via secure interaction and processing
US11050570B1 (en) Interface authenticator
CN107077567B (zh) 标识计算设备上的安全边界
WO2014159180A1 (en) Secure cloud storage and encryption management system
JP6552714B2 (ja) データ処理方法およびシステム、ならびにウェアラブル電子デバイス
US11436305B2 (en) Method and system for signing an artificial intelligence watermark using implicit data
KR20210017083A (ko) 퓨즈된 키에 기반하여 증명 인증서를 생성하는 전자 장치 및 방법
US11347897B2 (en) Electronic device and method for transmitting and receiving data on the basis of security operating system in electronic device
EP3221996B1 (en) Symmetric keying and chain of trust
US11520859B2 (en) Display of protected content using trusted execution environment
US10938254B2 (en) Secure wireless charging
US20210110066A1 (en) Method and system for encrypting data using a kernel
JP6939313B2 (ja) 分散認証システム
KR20230160744A (ko) 계산적 스토리지 다운로드 프로그램을 위한 인증 메커니즘
KR20210050215A (ko) 전자 장치의 고유 정보에 대한 무결성을 보장하는 전자 장치 및 그의 동작 방법
CN117081729A (zh) 交换和管理密钥的方法、构建方法和认证的方法
US11457002B2 (en) Method and system for encrypting data using a command
US11704390B2 (en) Method and system for signing an artificial intelligence watermark using a query