KR102580570B1 - 클라우드 서버 내 가상 서버의 복호화 방법 및 이를 이용하는 클라우드 서버 - Google Patents

클라우드 서버 내 가상 서버의 복호화 방법 및 이를 이용하는 클라우드 서버 Download PDF

Info

Publication number
KR102580570B1
KR102580570B1 KR1020210137490A KR20210137490A KR102580570B1 KR 102580570 B1 KR102580570 B1 KR 102580570B1 KR 1020210137490 A KR1020210137490 A KR 1020210137490A KR 20210137490 A KR20210137490 A KR 20210137490A KR 102580570 B1 KR102580570 B1 KR 102580570B1
Authority
KR
South Korea
Prior art keywords
key
virtual server
block device
decrypting
cloud server
Prior art date
Application number
KR1020210137490A
Other languages
English (en)
Other versions
KR20230053989A (ko
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 KR1020210137490A priority Critical patent/KR102580570B1/ko
Publication of KR20230053989A publication Critical patent/KR20230053989A/ko
Application granted granted Critical
Publication of KR102580570B1 publication Critical patent/KR102580570B1/ko

Links

Images

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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • 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
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

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

Abstract

본 출원은 클라우드 서버 내 가상 서버의 복호화 방법 및 이를 이용하는 클라우드 서버에 관한 것으로서, 본 발명의 일 실시예에 의한 가상 서버의 복호화 방법은 키 설정 솔루션으로부터, 상기 가상 서버의 암호화된 블록 디바이스(block device)에 대한 제1 키를 로딩하는 단계; 상기 가상 서버의 고객 키로 상기 제1 키를 복호화하여 암호화키를 추출하고, 상기 암호화키로 상기 블록 디바이스를 복호화하는 단계; 상기 블록 디바이스에 대한 복호화가 실패하면, 상기 키 설정 솔루션으로부터 상기 블록 디바이스에 대한 제2 키를 로딩하는 단계; 및 임시키로 상기 제2 키를 복호화하여 상기 암호화키를 추출하고, 상기 암호화키로 상기 블록 디바이스를 복호화하는 단계를 포함할 수 있다.

Description

클라우드 서버 내 가상 서버의 복호화 방법 및 이를 이용하는 클라우드 서버 {Method for decrypting virtual server in cloud server and cloud server using the same}
본 발명은 클라우스 서버 내 가상서버의 데이터를 암호화하는 FDE(Full-disc Encryption) 서비스를 제공하기 위한 클라우드 서버 내 가상 서버의 복호화 방법 및 이를 이용하는 클라우드 서버에 관한 것이다.
클라우드 환경에서 가상화 자원을 이용하여 데이터를 저장할 때에는 데이터 보호를 위해 데이터를 암호화해야 한다. 일반적으로 리눅스 시스템의 디스크를 암호화하는 방식에서는 파일 시스템과 물리 디스크 사이에서 암호화 및 복호화를 수행하는 DM(Device Mapper) 암호화 서브 모듈(이하, 'dm-crypt')과 리눅스 통합 키 설정(Linux Unified Key Setup, LUKS) 기술을 이용한다. 여기서, DM은 물리 디스크와 가상 디스크 사이의 매핑을 담당하는 모듈로 프로세스 입장에서 물리 디스크를 하나의 논리적 볼륨으로 인식할 수 있도록 할 수 있다. 또한, 'dm-crypt'는 파일 시스템과 물리 디스크 사이에서 암호화 및 복호화를 처리하는 모듈로서 일례로 리눅스 커널의 DM 내부에서 crypto API를 사용해 디스크를 암호화 해주는 서브 모듈일 수 있다. 또한, LUKS는 여러 암호화 기술과 연동되는 키 설정 솔루션으로서, 리눅스의 dm-crypt 또는 윈도우즈의 BitLocker와 연동될 수 있다. 리눅스의 경우 'cryptsetup'이라는 패키지를 설치하면 dm-crypt 및 LUKS 의 기능을 이용할 수 있다. 이러한 LUKS는 기본적으로 dm-crypt 기준인 블록장치를 대상으로 암호화 수행할 수 있으며, 설정에 따라 파티션 또는 디렉토리에도 적용될 수 있다.
다만, 가상 디스크의 복호화 과정에서, 네트워크 단절이나 지연, 오류 등으로 인하여 암호화키를 얻지 못하는 경우가 발생할 수 있으며, 그에 따라 가상 디스크의 부팅 지연이 빈번하게 발생하는 등의 문제점이 존재하였다.
본 발명은 가상 서버의 보안성 향상을 위한 FDE 서비스를 제공할 수 있는 클라우드 서버 내 가상 서버의 복호화 방법 및 이를 이용하는 클라우드 서버를 제공하고자 한다.
본 발명은 네트워크 단절이나 지연, API 오류 등으로 인해 암호화키를 얻지 못하여 가상 서버의 부팅이 중단되는 등의 장애를 해결할 수 있는 클라우드 서버 내 가상 서버의 복호화 방법 및 이를 이용하는 클라우드 서버를 제공하고자 한다.
본 발명은 고객 키를 이용한 암호화키 획득이 어려운 경우, 임시키를 활용하여 안정적으로 가상 서버의 데이터를 복호화할 수 있는 클라우드 서버 내 가상 서버의 복호화 방법 및 이를 이용하는 클라우드 서버를 제공하고자 한다.
본 발명의 일 실시예에 의한 클라우드 서버 내 가상 서버의 복호화 방법은, 키 설정 솔루션으로부터, 상기 가상 서버의 암호화된 블록 디바이스(block device)에 대한 제1 키를 로딩하는 단계; 상기 가상 서버의 고객 키로 상기 제1 키를 복호화하여 암호화키를 추출하고, 상기 암호화키로 상기 블록 디바이스를 복호화하는 단계; 상기 블록 디바이스에 대한 복호화가 실패하면, 상기 키 설정 솔루션으로부터 상기 블록 디바이스에 대한 제2 키를 로딩하는 단계; 및 임시키로 상기 제2 키를 복호화하여 상기 암호화키를 추출하고, 상기 암호화키로 상기 블록 디바이스를 복호화하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 의한 클라우드 서버는, 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서에 의해, 키 설정 솔루션으로부터, 상기 가상 서버의 암호화된 블록 디바이스(block device)에 대한 제1 키를 로딩하고, 상기 가상 서버의 고객 키로 상기 제1 키를 복호화하여 암호화키를 추출하고, 상기 암호화키로 상기 블록 디바이스를 복호화하고, 상기 블록 디바이스에 대한 복호화가 실패하면, 상기 키 설정 솔루션으로부터 상기 블록 디바이스에 대한 제2 키를 로딩하며, 임시키로 상기 제2 키를 복호화하여 상기 암호화키를 추출하고, 상기 암호화키로 상기 블록 디바이스를 복호화할 수 있다.
덧붙여 상기한 과제의 해결수단은, 본 발명의 특징을 모두 열거한 것이 아니다. 본 발명의 다양한 특징과 그에 따른 장점과 효과는 아래의 구체적인 실시형태를 참조하여 보다 상세하게 이해될 수 있을 것이다.
본 발명의 일 실시예에 의한 클라우드 서버 내 가상 서버의 복호화 방법 및 이를 이용하는 클라우드 서버에 의하면, 네트워크 단절이나 지연, API 오류 등으로 인해 암호화키를 얻지 못하여 가상 서버의 부팅이 중단되는 등의 장애를 해결할 수 있다. 즉, 고객 키를 이용한 암호화키 획득이 어려운 경우, 임시키를 활용하여 안정적으로 가상 서버의 데이터를 복호화하는 것이 가능하다.
본 발명의 일 실시예에 의한 클라우드 서버 내 가상 서버의 복호화 방법 및 이를 이용하는 클라우드 서버는, 암호화키를 얻지 못하여 가상 서버의 부팅이 중단되는 등의 장애를 방지할 수 있으므로, 고객이 원할 때 가상 서버의 구동을 보장할 수 잇다.
본 발명의 일 실시예에 의한 클라우드 서버 내 가상 서버의 복호화 방법 및 이를 이용하는 클라우드 서버는, 동적 부팅 스크립트 방식을 활용하므로, 가상 서버의 암호화를 위한 키가 무단으로 탈취되는 것을 방지할 수 있다.
다만, 본 발명의 실시예들에 따른 클라우드 서버 내 FDE(Full Disk Encryption)가 적용된 가상 서버의 복호화 방법 및 이를 이용하는 클라우드 서버 가 달성할 수 있는 효과는 이상에서 언급한 것들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도1은 본 발명의 일 실시예에 의한 복수의 가상 서버들을 포함하는 클라우드 시스템을 나타내는 블록도이다.
도2는 클라우드 서버 내 가상 서버의 부팅을 나타내는 개략도이다.
도3은 본 발명의 일 실시예에 의한 가상 서버의 복호화 방법을 나타내는 순서도이다.
도4는 본 발명의 일 실시예에 의한 제1 키 및 제2 키가 저장된 블록 디바이스의 헤더부를 나타내는 개략도이다.
도5는 본 발명의 일 실시예에 의한 클라우드 서버를 나타내는 블록도이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 즉, 본 발명에서 사용되는 '부'라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '부'는 어떤 역할들을 수행한다. 그렇지만 '부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '부'들로 결합되거나 추가적인 구성요소들과 '부'들로 더 분리될 수 있다.
또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
도1은 본 발명의 일 실시예에 의한 복수의 가상 서버들을 포함하는 클라우드 시스템을 나타내는 블록도이다.
도1을 참조하면, 클라우드 시스템은 클라우드 서버(100) 및 사용자 단말(1)을 포함할 수 있다.
이하 도1을 참조하여 본 발명의 일 실시예에 의한 클라우드 시스템을 설명한다.
클라우드 서버(100)는 복수의 사용자 단말(1)과 네트워크(N)를 통해 통신을 수행하여, 명령, 코드, 파일, 컨텐츠, 서비스 등을 제공하는 컴퓨터 장치일 수 있다. 클라우드 서버(100)는 사용자 단말(1)들에 대하여 SaaS(Software as a Service), PaaS(Platform as a Servcie), IaaS(Infrastructure as a Service) 등 다양한 클라우드 서비스를 제공할 수 있다.
실시예에 따라서는, 클라우드 서버(100)가 웹 서버를 가상화하여 제공하는 IaaS 클라우드 서비스를 제공할 수 있으며, 이 경우 클라우드 서버(100)를 통하여 각각의 가상 서버(V1, V2, ... , Vn)로 접속하는 사용자들에게 해당 가상 서버(V1, V2, ... , Vn)가 제공하는 다양한 서비스들을 제공할 수 있다. 이 경우, 자체적으로 서버를 구축하여 운영하기 어려운 영세사업자 등은 전문업체에서 관리하는 클라우드 서버(100) 내에 가상 서버를 활용하여, 간편하게 온라인 쇼핑몰 웹 페이지 등을 운영하는 등의 방식으로 활용할 수 있다.
사용자 단말(1)은 컴퓨터 장치로 구현되는 고정형 단말이거나 이동형 단말일 수 있다. 복수의 사용자 단말(1)은, 예를 들면, 스마트폰(smart phone), 휴대폰, 네비게이션, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 태블릿 PC 등일 수 있다.
도 1에서는 사용자 단말(1)의 예로 스마트폰의 형상을 나타내고 있으나, 본 발명의 실시예들에서 사용자 단말(1)은 실질적으로 무선 또는 유선 통신 방식을 이용하여 네트워크(N)를 통해 다른 사용자 단말들(1) 및/또는 클라우드 서버(100)와 통신할 수 있는 다양한 물리적인 컴퓨터 장치들 중 하나일 수 있다.
여기서, 클라우드 서버(100)와 사용자 단말(1) 사이의 통신 방식은 제한되지 않으며, 네트워크(N)가 포함할 수 있는 통신망(일례로, 이동통신망, 유선 인터넷, 무선 인터넷, 방송망)을 활용하는 통신 방식뿐만 아니라 기기들간의 근거리 무선 통신 역시 포함될 수 있다. 예를 들어, 네트워크(N)는, PAN(personal area network), LAN(local area network), CAN(campus area network), MAN(metropolitan area network), WAN(wide area network), BBN(broadband network), 인터넷 등의 네트워크 중 하나 이상의 임의의 네트워크를 포함할 수 있다. 또한, 네트워크(N)는 버스 네트워크, 스타 네트워크, 링 네트워크, 메쉬 네트워크, 스타-버스 네트워크, 트리 또는 계층적(hierarchical) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있으나, 이에 제한되지 않는다.
한편, 클라우드 서버(100) 내에 복수의 가상 서버(V1, V2, ... , Vn)들이 구현될 수 있으며, 각각의 가상 서버(V1, V2, ... , Vn)들의 보안을 유지하기 위하여는, 각각의 가상 서버(V1, V2, ... , Vn)들의 데이터를 암호화하는 FDE(Full-disk Encryption) 서비스를 적용할 필요가 있다.
일반적으로, 가상서버의 데이터에 대한 암호화가 적용되는 경우, 도2에 도시한 바와 같이, 가상서버에 대한 부팅이 수행될 수 있다.
구체적으로, 기본 이미지 제작(10)은 가상 머신의 생성을 위한 템플릿으로서의 기본 이미지를 생성하는 과정에 해당한다. 즉, 기존의 기본 이미지에, 암호화 설정을 위한 패키지, SSH(secure shell)를 위한 패키지, LUKS(Linux Unified Key Setup)의 설정 및 복호화, 그리고 후킹을 위한 'systemd' 모듈, 'initramfs'의 커스텀을 위해 요구되는 커멘드 등을 추가하여 기본 이미지를 생성할 수 있다. 생성된 기본 이미지는 가상 서버(V1)가 생성될 물리적인 장치인 클라우드 서버(100)로 제공될 수 있다.
VM 생성 & 부팅(20)은 클라우드 서버(100)가 제공된 기본 이미지에 기반하여 가상 서버(V1)를 생성 및 부팅하는 과정이고, systemd 서비스 실행(30)은 클라우드 서버(100)가 기본 이미지에 추가된 systemd 모듈을 실행시키는 과정에 해당한다. 예를 들어, 실행된 systemd 모듈은 SSH를 위한 패키지를 이용하여 SSH를 실행시킬 수 있다.
루트파일시스템 로딩(40)은 클라우드 서버(100)가 가상 서버를 위한 루트파일시스템을 로딩하는 과정에 해당한다. 이때, 클라우드 서버(100)는 가상 서버에 암호화를 적용하기 위하여, 도2의 ①의 과정 또는 ②의 과정을 실행할 수 있다. 즉, 클라우드 서버(100)는 가상 서버를 최초로 설치하여 암호화 설정이 아직 적용되지 않은 경우에는 ①의 과정을 수행할 수 있으며, 암호화 설정이 이미 적용된 경우에는 ②의 과정을 실행할 수 있다.
상술한 ①의 과정에서 클라우드 서버(100)는 암호화 설정의 적용을 위한 로깅을 시작(41-1)하여 initramfs를 메모리로 복사(41-2)할 수 있다. 기본적인 리눅스 파일시스템은 압축되어 부팅시에 메모리에 로딩되며, 이러한 압축된 기본 파일시스템이 initramfs으로, initramfs의 목적은 루트파일시스템을 로딩하는 것이다. 이때, 클라우드 서버(100)는 가상 서버의 데이터에 대한 암호화를 위해 암호화 키를 생성하고, 향후 파티션으로 마운트되는 /sysroot에 LUKS를 적용(41-4)할 수 있다. 또한, 클라우드 서버(100)는 고객 키로 암호화키를 암호화한 제1 키를 생성하고, 제1 키를 로컬 저장소에 저장(41-5)할 수 있다. 이후, 클라우드 서버(100)는 LUKS 헤더와 제1 키를 백업(41-6)한 후, 암호화 설정의 적용을 위한 로깅을 종료(41-7)할 수 있다.
또한, 상술한 ②의 과정에서는 클라우드 서버(100)가 로깅을 시작(42-1)하여 제1 키를 고객 키로 복호화할 수 있다(42-2). 이후, 컴퓨터 장치(200)는 복호화된 암호화키로 LUKS를 오픈(42-3)할 수 있으며, 로깅을 종료(42-4)할 수 있다.
파티션 마운트(50)는 클라우드 서버(100)가 루트파일시스템을 마운트하는 과정일 수 있으며, 이때, 클라우드 서버(100)는 메모리로 복사된 initramfs를 물리 스토리지로 복원할 수 있다. systemd 서비스 종료(60)은 실행된 systemd 모듈을 종료시키는 과정에 해당하고, init 스크립트 실행(70)은 init 프로세스를 실행시켜 가상 서버의 부팅을 마무리하는 과정에 해당한다.
즉, 도2에 도시한 바와 같이, 일반적으로 클라우드 서버(100) 내 가상 서버에 대한 암호화 및 복호화시에는 고객 키를 활용하나, 이 경우 고객 키를 활용한 암호화키의 획득이 어려워져 가상 서버에 대한 복호화에 실패하는 경우가 발생할 수 있다. 예를들어, 네트워크의 단절이나 지연, API 오류 등으로 인하여 고객 키를 이용한 암호화키의 확보에 실패하는 경우가 발생할 수 있으며, 이에 의하여 가상 서버의 부팅이 중단되는 등의 장애가 빈번하게 발생할 수 있다.
한편, 본 발명의 일 실시예에 의한 클라우드 서버에 의하면 고객 키를 이용한 암호화키 확보가 어려운 경우에는, 임시키를 활용한 복호화를 수행하는 것이 가능하다. 이하, 본 발명의 일 실시예에 의한 클라우드 서버 내 FDE가 적용된 가상 서버에서의 복호화 방법을 설명한다.
도3은 본 발명의 일 실시예에 의한 클라우드 서버 내 FDE가 적용된 가상 서버에 대한 복호화 방법을 나타내는 순서도이다. 여기서, 본 실시예에 따른 복호화 방법은 가상 서버를 포함하는 클라우드 서버(100)에 의해 수행될 수 있다. 이 경우 도5에 도시한 바와 같이, 클라우드 서버(100)의 프로세서(120)가 메모리(110)에 포함하는 운영체제의 코드나, 적어도 하나의 컴퓨터 프로그램의 코드에 따른 제어 명령(instruction)을 실행하도록 구현될 수 있다. 즉, 프로세서(120)는 클라우드 서버(100)에 저장된 코드가 제공하는 제어 명령에 따라, 도 3의 방법이 포함하는 단계들(S10 내지 S40)을 수행하도록 클라우드 서버(100)를 제어할 수 있다.
먼저, 클라우드 서버(100)는 키 설정 솔루션을 이용하여, 가상 서버의 암호화된 블록 디바이스에 대한 제1 키를 로딩할 수 있다(S10).
여기서, 각각의 가상 서버들의 데이터가 저장된 블록 디바이스들은 DM-crypt 또는 Bitlocker로 암호화된 것일 수 있다. 즉, 리눅스 기반인 경우에는 DM-crypt를 이용하고, 윈도우 기반인 경우 Bitlocker를 이용하여 각각 암호화할 수 있다. 이때, 키 설정 솔루션은 DM-crypt, BitLocker 등의 암호화 기술과 연동되어, 가상 서버의 데이터들에 대한 암호화키를 관리할 수 있다. 실시예에 따라서는 키 설정 솔루션으로 LUKS를 활용할 수 있다.
한편, 키 설정 솔루션이 로드하는 제1 키는 블록 디바이스에 대한 암호화키를 고객키로 암호화한 것일 수 있다. 즉, DM-crypt 등에서 블록 디바이스를 암호화하기 위해 사용한 암호화키를 직접 제1 키로 저장하는 것이 아니라, 암호화키를 고객 키로 암호화하여 제1 키로 저장할 수 있다. 여기서, 고객 키는 고객용 키 관리 시스템(KMS: Key Management System)에서 관리하는 것일 수 있다.
도4를 참조하면, 각각의 가상 서버들의 블록 디바이스에는 헤더부가 포함될 수 있으며, 헤더부 내에 제1 키를 저장하기 위한 제1 슬롯(A)이 설정되어 있을 수 있다. 따라서, 클라우드 서버(100)는 해당 가상 서버에 대한 부팅이 요청되면, 복호화를 위하여 제1 슬롯(A) 내에 저장된 제1 키를 로딩할 수 있다.
이후, 클라우드 서버(100)는 가상 서버의 고객 키로 제1 키를 복호화하여 암호화키를 추출하고, 암호화키로 블록 디바이스를 복호화할 수 있다(S20). 다만, 경우에 따라서는 고객 키가 조회되지 않는 등의 장애가 발생할 수 있으며, 이 경우 가상서버가 구동되지 않는 등의 문제가 발생할 수 있다.
이를 해결하기 위하여, 클라우드 서버(100)는 제1 키를 이용한 블록 디바이스에 대한 복호화 실패시, 키 설정 솔루션으로부터 블록 디바이스에 대한 제2 키를 로딩할 수 있다(S20). 즉, 제1 키를 이용한 복호화 실패에 대비하여, 제2 키를 블록 디바이스의 헤더부 내에 포함되는 제2 슬롯(B)에 미리 저장해둘 수 있으며, 제2 키를 이용하여 가상 서버에 대한 복호화를 수행할 수 있다.
여기서, 제2 키를 설정하기 위하여, DM-Crypt의 passphrase 기능을 활성화하여 사용할 수 있다. 즉, 각각의 passphrase로 제1 키와 제2 키를 설정할 수 있으며, 블록 디바이스의 헤더부 내에 포함되는 제1 슬롯(A)과 제2 슬롯(B)에 각각의 제1 키와 제2 키를 저장할 수 있다.
한편, 제2 키는 암호화키를 임시키로 암호화한 것으로, 임시키는 가상 서버의 고객고유정보, 인스턴스정보 등의 메타정보를 이용하여 생성한 것일 수 있다. 예를들어, 메타정보에 랜덤밸류 등의 시드(seed)를 추가하여 해시함수에 입력하는 등의 방식으로 임시키를 생성할 수 있다. 따라서, 클라우드 서버(100)는 복호화 실패시에는 미리 설정된 임시키의 연산방법에 따라 임시키를 연산하고, 키 설정 솔루션으로부터 제2 키를 로딩할 수 있다.
이후, 클라우드 서버(100)는 임시키로 제2 키를 복호화하여 암호화키를 추출할 수 있으며, 암호화키로 블록 디바이스를 복호화할 수 있다(S40). 즉, 임시키의 경우 가상 서버의 메타정보 등를 이용하여 연산하는 것이므로, 안정적으로 암호화키를 추출하여 가상 서버의 블록 디바이스 등 데이터를 복호화하는 것이 가능하다.
이와 같이, 평시에는 고객키를 KMS에서 조회하여 제1 키를 이용한 복호화를 수행하고, 제1 키를 이용한 복호화에 실패한 경우에는, 예비적으로 임시키를 활용하여 복호화를 수행하도록 할 수 있다. 따라서, 본 발명에 의하면 내부 오류 등에 의해 고객 키가 조회되지 않는 등의 문제에 의하여 가상서버가 구동되지 않는 경우를 방지하는 것이 가능하다.
다만, 클라우드 서버(100) 내 가상 서버의 부팅을 수행하는 인스턴스가 탈취되는 등의 경우에는 임시키 등이 무단으로 공개될 수 있으므로, 이러한 위험을 방지할 필요가 있다. 이를 위하여, 블록 디바이스의 헤더부로부터 제1 키 및 제2 키를 추출하는 키 추출 모듈(key derive module)은 동적 부팅 스크립트 방식으로 구현되도록 할 수 있다. 즉, 가상 서버의 부팅시 키 추출 모듈이 다운로드되어 가상 서버의 부팅에 활용되고, 이후 부팅이 완료되면 삭제되도록 처리하여, 인스턴스 탈취 등으로 인한 키의 무단 유출을 방지할 수 있다.
여기서는 각각의 가상 서버의 블록 디바이스를 암호화 또는 복호화하는 경우를 예시하였으나, 실시예에 따라서는 블록 디바이스 내의 파티션이나 디렉토리에 대한 암호화 또는 복호화를 수행하는 것도 가능하다.
도5는 본 발명의 일 실시예에 의한 클라우드 서버(100)를 나타내는 블록도이다.
도5를 참조하면, 클라우드 서버(100)는 메모리(110), 프로세서(120), 통신 인터페이스(130), 입출력 인터페이스(140) 등을 포함할 수 있다. 메모리(110)는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 디스크 드라이브와 같은 비소멸성 대용량 기록장치는 메모리(110)와는 구분되는 별도의 영구 저장 장치로서 클라우드 서버(100)에 포함될 수도 있다. 또한, 메모리(110)에는 운영체제와 적어도 하나의 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(110)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 메모리(110)로 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신 인터페이스(130)를 통해 메모리(110)에 로딩될 수도 있다. 예를 들어, 소프트웨어 구성요소들은 네트워크(N)를 통해 수신되는 파일들에 의해 설치되는 컴퓨터 프로그램에 기반하여 클라우드 서버(100)의 메모리(110)에 로딩될 수 있다.
프로세서(120)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(110) 또는 통신 인터페이스(130)에 의해 프로세서(120)로 제공될 수 있다. 예를 들어 프로세서(120)는 메모리(110)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.
통신 인터페이스(130)은 네트워크(N)를 통해 클라우드 서버(100)가 다른 장치(일례로, 앞서 설명한 저장 장치들)와 서로 통신하기 위한 기능을 제공할 수 있다. 일례로, 클라우드 서버(100)의 프로세서(120)가 메모리(110)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청이나 명령, 데이터, 파일 등이 통신 인터페이스(130)의 제어에 따라 네트워크(N)를 통해 다른 장치들로 전달될 수 있다. 역으로, 다른 장치로부터의 신호나 명령, 데이터, 파일 등이 네트워크(N)를 거쳐 클라우드 서버(200)의 통신 인터페이스(130)를 통해 수신될 수 있다. 통신 인터페이스(130)를 통해 수신된 신호나 명령, 데이터 등은 프로세서(120)나 메모리(110)로 전달될 수 있고, 파일 등은 클라우드 서버(100)가 더 포함할 수 있는 저장 매체(상술한 영구 저장 장치)로 저장될 수 있다.
입출력 인터페이스(140)는 입출력 장치(150)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 마이크, 키보드 또는 마우스 등의 장치를, 그리고 출력 장치는 디스플레이, 스피커와 같은 장치를 포함할 수 있다. 다른 예로 입출력 인터페이스(140)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 입출력 장치(150)는 클라우드 서버(100)와 하나의 장치로 구성될 수도 있다.
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 본 발명에 따른 구성요소를 치환, 변형 및 변경할 수 있다는 것이 명백할 것이다.
1: 사용자 단말 100: 클라우드 서버
110: 메모리 120: 프로세서
130: 통신 인터페이스 140: 입출력 인터페이스
150: 입출력 장치 A: 제1 슬롯
B: 제2 슬롯 N: 네트워크
V1, V2, ... , Vn: 가상 서버

Claims (8)

  1. 클라우드 서버 내 가상 서버의 복호화 방법에 있어서,
    키 설정 솔루션으로부터, 상기 가상 서버의 암호화된 블록 디바이스(block device)에 대한 제1 키를 로딩하는 단계;
    상기 가상 서버의 고객 키로 상기 제1 키를 복호화하여 암호화키를 추출하고, 상기 암호화키로 상기 블록 디바이스를 복호화하는 단계;
    상기 블록 디바이스에 대한 복호화가 실패하면, 상기 키 설정 솔루션으로부터 상기 블록 디바이스에 대한 제2 키를 로딩하는 단계; 및
    임시키로 상기 제2 키를 복호화하여 상기 암호화키를 추출하고, 상기 암호화키로 상기 블록 디바이스를 복호화하는 단계를 포함하는 가상 서버의 복호화 방법.
  2. 제1항에 있어서,
    상기 제1 키 및 제2 키는 상기 암호화키를 상기 고객 키 및 임시키로 각각 암호화한 것으로, 상기 키 설정 솔루션에 의해 상기 블록 디바이스의 헤더부 내에 포함되는 제1 슬롯 및 제2 슬롯에 각각 저장되는 것을 특징으로 하는 가상 서버의 복호화 방법.
  3. 제1항에 있어서,
    상기 블록 디바이스는, DM(Device Mapper)-crypt 또는 BitLocker를 이용하여 암호화된 것을 특징으로 하는 가상 서버의 복호화 방법.
  4. 제1항에 있어서, 상기 제2 키를 로딩하는 단계는
    상기 블록 디바이스에 대한 복호화가 실패하면, 상기 가상 서버의 메타정보를 이용하여 상기 임시키를 연산하고, 상기 제2 키를 로딩하는 것을 특징으로 하는 가상 서버의 복호화 방법.
  5. 제4항에 있어서, 상기 임시키는
    상기 가상 서버의 고객고유정보 및 인스턴스정보 중 어느 하나를 포함하는 메타정보를 이용하여 생성하는 것을 특징으로 하는 가상 서버의 복호화 방법.
  6. 제1항에 있어서,
    상기 제1 키 및 제2 키는 키 추출 모듈(key derive module)에 의하여 상기 키 설정 솔루션으로부터 로딩되고, 상기 키 추출 모듈은 동적 부팅 스크립트 방식으로 구현되는 것을 특징으로 하는 가상 서버의 복호화 방법.
  7. 컴퓨터 장치와 결합되어 제1항 내지 제6항 중 어느 한 항의 방법을 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
  8. 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고,
    상기 적어도 하나의 프로세서에 의해,
    키 설정 솔루션으로부터, 가상 서버의 암호화된 블록 디바이스(block device)에 대한 제1 키를 로딩하고,
    상기 가상 서버의 고객 키로 상기 제1 키를 복호화하여 암호화키를 추출하고, 상기 암호화키로 상기 블록 디바이스를 복호화하고,
    상기 블록 디바이스에 대한 복호화가 실패하면, 상기 키 설정 솔루션으로부터 상기 블록 디바이스에 대한 제2 키를 로딩하며,
    임시키로 상기 제2 키를 복호화하여 상기 암호화키를 추출하고, 상기 암호화키로 상기 블록 디바이스를 복호화하는,
    클라우드 서버.
KR1020210137490A 2021-10-15 2021-10-15 클라우드 서버 내 가상 서버의 복호화 방법 및 이를 이용하는 클라우드 서버 KR102580570B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210137490A KR102580570B1 (ko) 2021-10-15 2021-10-15 클라우드 서버 내 가상 서버의 복호화 방법 및 이를 이용하는 클라우드 서버

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210137490A KR102580570B1 (ko) 2021-10-15 2021-10-15 클라우드 서버 내 가상 서버의 복호화 방법 및 이를 이용하는 클라우드 서버

Publications (2)

Publication Number Publication Date
KR20230053989A KR20230053989A (ko) 2023-04-24
KR102580570B1 true KR102580570B1 (ko) 2023-09-21

Family

ID=86141859

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210137490A KR102580570B1 (ko) 2021-10-15 2021-10-15 클라우드 서버 내 가상 서버의 복호화 방법 및 이를 이용하는 클라우드 서버

Country Status (1)

Country Link
KR (1) KR102580570B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008090791A (ja) 2006-10-05 2008-04-17 Nippon Telegr & Teleph Corp <Ntt> 仮想端末を利用した検疫ネットワークシステム、仮想端末を検疫する方法、及び、仮想端末を検疫するためのプログラム
JP2011048661A (ja) 2009-08-27 2011-03-10 Nomura Research Institute Ltd 仮想サーバ暗号化システム
JP2013003612A (ja) 2011-06-10 2013-01-07 Kddi Corp 仮想サーバ利用時のデータを秘匿するシステム及び方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10897459B2 (en) * 2017-01-26 2021-01-19 Microsoft Technology Licensing, Llc Addressing a trusted execution environment using encryption key

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008090791A (ja) 2006-10-05 2008-04-17 Nippon Telegr & Teleph Corp <Ntt> 仮想端末を利用した検疫ネットワークシステム、仮想端末を検疫する方法、及び、仮想端末を検疫するためのプログラム
JP2011048661A (ja) 2009-08-27 2011-03-10 Nomura Research Institute Ltd 仮想サーバ暗号化システム
JP2013003612A (ja) 2011-06-10 2013-01-07 Kddi Corp 仮想サーバ利用時のデータを秘匿するシステム及び方法

Also Published As

Publication number Publication date
KR20230053989A (ko) 2023-04-24

Similar Documents

Publication Publication Date Title
US11394548B2 (en) Secure provisioning of operating systems
CN108628658B (zh) 一种容器的许可证管理方法及装置
US9300640B2 (en) Secure virtual machine
US8694786B2 (en) Virtual machine images encryption using trusted computing group sealing
US10262130B2 (en) System and method for providing cryptographic operation service in virtualization environment
KR20170085503A (ko) 암호화된 템플릿으로부터 암호화된 가상 머신의 안전한 생성 기법
US20110202916A1 (en) Distribution control and tracking mechanism of virtual machine appliances
US8954760B2 (en) Authentication of solution topology
US10255089B2 (en) Self-deleting virtual machines
TW202038114A (zh) 將安全客體之安全金鑰繫結至硬體安全模組
US9639691B2 (en) Dynamic database and API-accessible credentials data store
US20210006402A1 (en) Securely processing secret values in application configurations
US10909248B2 (en) Executing encrypted boot loaders
US20170099267A1 (en) Systems and methods for pkcs #8 private file key support
WO2023073463A1 (en) Trusted workload execution
CA3028091A1 (en) Securing data at rest utilizing cloud provider service agnostic encrypted data transportability
KR102580570B1 (ko) 클라우드 서버 내 가상 서버의 복호화 방법 및 이를 이용하는 클라우드 서버
US11799629B2 (en) Access authorization utilizing homomorphically encrypted access authorization objects
CN113574837A (zh) 跟踪客户端设备上的图像发送者
US20210224393A1 (en) Method and system for dynamic application of storage encryption
WO2018233638A1 (zh) Ai软件系统安全状态的确定方法及装置
CN110430046B (zh) 一种面向云环境的可信平台模块两阶段密钥复制方法
KR102411144B1 (ko) 부팅 중 통신 모듈 적용을 통한 원격 터미널 접속을 위한 방법 및 시스템
Sianipar et al. Construction of agent-based trust in cloud infrastructure
CN117056943A (zh) 数据处理方法、系统、设备及可读存储介质

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right