KR101663632B1 - 데이터베이스 암호화를 지원하는 스토리지 서비스 제공 서버 및 방법 - Google Patents
데이터베이스 암호화를 지원하는 스토리지 서비스 제공 서버 및 방법 Download PDFInfo
- Publication number
- KR101663632B1 KR101663632B1 KR1020150065135A KR20150065135A KR101663632B1 KR 101663632 B1 KR101663632 B1 KR 101663632B1 KR 1020150065135 A KR1020150065135 A KR 1020150065135A KR 20150065135 A KR20150065135 A KR 20150065135A KR 101663632 B1 KR101663632 B1 KR 101663632B1
- Authority
- KR
- South Korea
- Prior art keywords
- database
- service providing
- providing server
- query
- client
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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
-
- G06F17/30—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
본 발명은 클라이언트 및 데이터베이스 서비스 제공 서버와의 통신을 수행하는 통신 모듈, 암호화된 데이터베이스를 저장하는 스토리지 모듈, 데이터베이스 암호화를 지원하는 프로그램이 저장된 메모리 및 프로그램을 실행하는 프로세서를 포함한다. 이때, 프로세서는 프로그램의 실행에 따라, 클라이언트에서 전송한 암호화된 데이터베이스에 대한 쿼리를 수신하면, 쿼리에 대응하여 암호화된 데이터베이스를 부분적으로 복호화하고, 쿼리 및 부분 복호화된 데이터베이스를 데이터베이스 서비스 제공 서버에 전송하여, 클라이언트에 쿼리에 대응하는 결과를 제공한다. 그리고 쿼리에 대응하는 결과는 데이터베이스 서비스 제공 서버에 의하여 쿼리 및 부분 복호화된 데이터베이스에 기초하여 생성되어, 클라이언트에 전송된다.
Description
본 발명은 데이터베이스 암호화를 지원하는 스토리지 서비스 제공 서버 및 방법에 관한 것이다.
클라우드 컴퓨팅 서비스는 신속하게 서비스 도입이 가능하고, 확장이 용이하므로 서비스 구축을 위한 비용을 절감할 수 있다. 이와 같은 장점을 지닌 클라우드 컴퓨팅 서비스가 보편화하면서, 최근에는 클라우드 컴퓨팅 환경에서 개인 데이터를 저장하고, 이를 안전하게 보호하는 것이 중요한 이슈가 되고 있다. 특히, 클라우드 환경에서 데이터베이스 암호화를 통한 데이터 암호화 방법에 대한 관심이 높아지고 있다.
클라우드 컴퓨팅 환경에서 종래의 데이터 암호화 방법은 데이터베이스의 전체를 암호화하여 관리하는 동형 암호화 방법과 SMM(secure meta mediator) 서버에 기반한 데이터베이스 제공자(database service provider; DSP)를 사용하는 방법이 있다.
동형 암호화 방법은 데이터베이스 전체를 암호화하는 방법이다. 동형 암호화 방법은 전체가 암호화된 데이터베이스에서 클라이언트가 복호화 과정을 거치지 않고, 원하는 자료를 검색 및 통계 처리할 수 있다. 그러므로 동형 암호화 방법은 복호화된 자료의 유출로 인한 피해를 막을 수 있는 기술이다. 그러나 동형 암호화 방법은 처리하는 데이터의 크기가 크며, 소모되는 컴퓨팅 리소스가 많아 오버헤드가 커질 수 있다.
SMM 서버에 기반한 데이터베이스 서비스 제공자 방법은 SMM 서버를 통하여 클라이언트가 요청한 쿼리를 수행한다. 구체적으로 이 방법은 클라이언트와 데이터베이스 서비스 제공자 서버 사이에 SMM을 위치시키고, SMM을 통하여 클라이언트 인증과 클라이언트 및 데이터베이스 서비스 제공자 서버로부터 수신한 요청을 처리한다. 그러므로 SMM 서버에 기반한 데이터베이스 제공자 방법은 SMM 서버에서 병목 현상이 발생할 확률이 높고, 확장성을 보장할 수 없다. 또한, SMM 서버에 기반한 데이터베이스 제공자 방법은 SMM 서버가 손상되는 경우, 외부의 다양한 공격을 막을 수 없다는 단점이 있다.
이와 관련한 종래 기술로써, 한국 등록특허공보 제10-1103403호(발명의 명칭: “향상된 보안성을 갖는 데이터 관리 시스템의 제어방법”)는 데이터를 분할하여 저장 및 관리하는 데이터 관리 시스템을 개시하고 있다. 구체적으로 이 발명은 데이터를 분할시켜 복수 개의 노드 데이터를 생성하고, 노드 데이터를 각 서버에 분산 저장한다. 그러므로 본 발명은 각각의 서버에 저장된 노드 데이터가 외부 침입에 의해 유출되더라도 이를 통해서는 데이터에 포함된 정보의 열람이 불가능하도록 구성하여 향상된 보안성을 갖도록 구성한 데이터 관리 시스템의 제어 방법을 제공한다.
또한, 한국 공개특허공보 제10-2008-0103118호(발명의 명칭: “서버 공유에 따른 데이터베이스 안전 관리시스템”)는 서버 공유에 따른 데이터베이스 안전 관리시스템을 개시하고 있다. 구체적으로 이 발명은 다중 서버들을 마치 하나의 서버처럼 사용가능하게 하기 위하여 라우팅 기능을 포함하고 있는 CPU와 메모리 같은 리소스들을 활용함에 있어서 분산 저장을 하여 작업 처리한 후 완료된 정보를 안전하게 저장하고 관리하기 위한 서버 공유에 따른 데이터베이스 안전 관리시스템을 제공한다.
본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 본 실시예는 부분적인 데이터베이스의 암호화 및 복호화를 지원하는 스토리지 서비스 제공 서버 및 방법을 제공하는데 그 목적이 있다.
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 제 1 측면에 따른 데이터베이스 암호화를 지원하는 스토리지 서비스 제공 서버는 클라이언트 및 데이터베이스 서비스 제공 서버와의 통신을 수행하는 통신 모듈, 암호화된 데이터베이스를 저장하는 스토리지 모듈, 데이터베이스 암호화를 지원하는 프로그램이 저장된 메모리 및 프로그램을 실행하는 프로세서를 포함한다. 이때, 프로세서는 프로그램의 실행에 따라, 클라이언트에서 전송한 암호화된 데이터베이스에 대한 쿼리를 수신하면, 쿼리에 대응하여 암호화된 데이터베이스를 부분적으로 복호화하고, 쿼리 및 부분 복호화된 데이터베이스를 데이터베이스 서비스 제공 서버에 전송하여, 클라이언트에 쿼리에 대응하는 결과를 제공한다. 그리고 쿼리에 대응하는 결과는 데이터베이스 서비스 제공 서버에 의하여 쿼리 및 부분 복호화된 데이터베이스에 기초하여 생성되어, 클라이언트에 전송된다.
그리고 본 발명의 제 2 측면에 따른 스토리지 서비스 제공 서버의 데이터베이스 암호화 방법은 암호화된 데이터베이스에 대한 쿼리를 클라이언트로부터 수신하는 단계; 쿼리에 대응하여 암호화된 데이터베이스를 부분적으로 복호화하는 단계; 및 쿼리 및 부분 복호화된 데이터베이스를 데이터베이스 서비스 제공 서버에 전송하여, 클라이언트에 쿼리에 대응하는 결과를 제공하는 단계를 포함한다. 이때, 쿼리에 대응하는 결과는 데이터베이스 서비스 제공 서버에 의하여 쿼리 및 부분 복호화된 데이터베이스에 기초하여 생성되어, 클라이언트에 전송된다.
전술한 과제 해결 수단 중 어느 하나에 의하면, 본 발명은 전체 데이터베이스 중 필요한 데이터베이스만 복호화하여 사용하므로, 종래의 암호화 방식에 비하여 복호화를 위하여 사용되는 리소스 및 오버헤드가 적으며, 안정성이 높다. 그러므로 본 발명은 빠르고 안전하게 클라이언트가 원하는 데이터를 제공할 수 있다.
또한, 본 발명은 데이터베이스 서비스 제공 서버에 부분 복호화된 데이터베이스 및 암호화된 쿼리를 제공하므로, 데이터베이스 서비스 제공 서버가 공격을 받거나 손상되더라도 데이터베이스 전체의 유출을 방지할 수 있다. 그러므로 본 발명은 클라이언트의 민감하고 중요한 데이터를 저장하는 일반 데이터베이스 시스템 및 클라우드 컴퓨팅 기반의 데이터베이스 시스템 등에 적용이 가능하다.
도 1은 본 발명의 일 실시예에 따른 데이터베이스 암호화를 지원하는 스토리지 서비스 제공 시스템의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 스토리지 서비스 제공 시스템에서 데이터베이스 암호화 및 데이터베이스 제공 과정의 순서도이다.
도 3은 본 발명의 일 실시예에 따른 스토리지 서비스 제공 서버의 데이터베이스 암호화 방법의 순서도이다.
도 4는 본 발명의 일 실시예에 따른 부분적으로 복호화된 데이터베이스의 생성 방법의 순서도이다.
도 2는 본 발명의 일 실시예에 따른 스토리지 서비스 제공 시스템에서 데이터베이스 암호화 및 데이터베이스 제공 과정의 순서도이다.
도 3은 본 발명의 일 실시예에 따른 스토리지 서비스 제공 서버의 데이터베이스 암호화 방법의 순서도이다.
도 4는 본 발명의 일 실시예에 따른 부분적으로 복호화된 데이터베이스의 생성 방법의 순서도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
다음은 도 1 및 도 2를 참조하여 본 발명의 일 실시예에 따른 데이터베이스 암호화를 지원하는 스토리지 서비스 제공 시스템(100) 및 서버(110)를 설명한다.
도 1은 본 발명의 일 실시예에 따른 데이터베이스 암호화를 지원하는 스토리지 서비스 제공 시스템(100)의 블록도이다.
스토리지 서비스 제공 시스템(100)은 스토리지 서비스 제공 서버(110)에 포함된 암호화된 데이터베이스에서 클라이언트(120)의 쿼리에 대응하는 결과를 제공하는 시스템이다. 이때, 스토리지 서비스 제공 시스템(100)은 스토리지 서비스 제공 서버(110), 데이터베이스 서비스 제공 서버(130) 및 클라이언트(120)를 포함한다.
이때, 스토리지 서비스 제공 서버(110)는 클라이언트(120)에 의해 생성되거나, 저장된 하나 이상의 데이터를 저장하고 관리하는 서버이다. 즉, 스토리지 서비스 제공 서버(110)는 데이터 센터(data center)일 수 있으며, 데이터베이스 관리 시스템(database management system) 서버 및 스토리지 서버 등이 될 수 있다.
데이터베이스 제공 서버(130)는 클라이언트(120)의 요청에 따라, 스토리지 서비스 제공 서버(110)에 저장된 하나 이상의 데이터를 클라이언트(120)에 제공하는 서버이다. 그러므로 데이터베이스 제공 서버(130)는 스토리지 서비스 제공 서버(110)와 달리 클라이언트(120)의 요청에 있을 경우에만 해당 클라이언트의 데이터를 저장할 수 있다.
즉, 데이터베이스 제공 서버(130)는 클라이언트(120)의 요청이 있는 경우, 클라이언트(120)의 데이터를 스토리지 서비스 제공 서버(110)로부터 수신하고, 저장할 수 있다. 그리고 데이터베이스 제공 서버(130)는 클라이언트(120)에게 저장된 데이터를 제공할 수 있다. 클라이언트(120)가 데이터에 대한 작업을 종료하면, 데이터베이스 제공 서버(130)는 스토리지 서비스 제공 서버(110)로부터 수신한 데이터를 삭제할 수 있다.
한편, 본 발명의 다른 실시예에서는 스토리지 서비스 제공 서버(110) 및 데이터베이스 서비스 제공 서버(130)는 동일한 서버 또는 컴퓨팅 장치에 각각 서비스(service) 형태로 탑재되어 실행될 수 있다. 또한, 본 발명의 또 다른 실시예에서는 스토리지 서비스 제공 서버(110) 및 데이터베이스 서비스 제공 서버(130)는 클라우드 컴퓨팅 환경에서 가상 머신(virtual machine)으로 실행될 수 있다.
스토리지 서비스 제공 시스템(100)의 구체적인 데이터베이스 암호화 및 제공 과정은 도 2를 참조하여 설명한다.
도 2는 본 발명의 일 실시예에 따른 스토리지 서비스 제공 시스템(100)에서 데이터베이스 암호화 및 데이터베이스 제공 과정의 순서도이다.
먼저, 스토리지 서비스 제공 시스템(100)에서 클라이언트(120)는 미리 인증된 스토리지 서비스 제공 서버(110)에 저장된 암호화된 데이터베이스에 대한 쿼리를 전송할 수 있다(S210). 이때, 미리 인증된 스토리지 서비스 제공 서버(110)는 클라이언트(120)와 비밀키를 교환한 스토리지 서비스 제공 서버(110)가 될 수 있다(S200).
클라이언트(120)의 쿼리를 수신한 스토리지 서비스 제공 서버(110)는 클라이언트(120)의 쿼리에 대응하여, 암호화된 데이터베이스를 부분적으로 복호화하기 위하여 클라이언트(120)의 쿼리를 암호화한 쿼리로 변환시킬 수 있다. 그리고 스토리지 서비스 제공 서버(110)는 암호화된 쿼리를 데이터베이스 서비스 제공 서버(130)에 전송할 수 있다(S220).
암호화된 쿼리를 수신한 데이터베이스 서비스 제공 서버(130)는 암호화된 쿼리에 기초하여 스토리지 서비스 제공 서버(110)에 데이터베이스를 요청할 수 있다.
스토리지 서비스 제공 서버(110)는 데이터베이스를 요청한 데이터베이스 서비스 제공 서버(130)에 대한 인증을 수행할 수 있다(S230). 그리고 인증이 성공하면, 스토리지 서비스 제공 서버(110)는 데이터베이스 서비스 제공 서버(130)가 요청한 데이터베이스를 부분적으로 복호화하여 데이터베이스 서비스 제공 서버(130)에 전달할 수 있다(S240).
데이터베이스 서비스 제공 서버(130)는 스토리지 서비스 제공 서버(110)로부터 수신한 부분 복호화된 데이터베이스에 기초하여 암호화된 쿼리를 실행하여 결과를 생성할 수 있다. 그리고 데이터베이스 서비스 제공 서버(130)는 실행된 결과를 클라이언트(120)로 전송할 수 있다(S250).
다음은 다시 도 1을 참조하여 본 발명의 일 실시예에 따른 스토리지 서비스 제공 서버(110)를 설명한다.
스토리지 서비스 제공 서버(110)는 데이터베이스의 암호화를 지원하며, 클라이언트(120)의 요청에 따라 복호화된 데이터를 클라이언트(120)에 제공한다. 이때, 스토리지 서비스 제공 서버(110)는 메모리(111), 통신 모듈(112), 스토리지 모듈(113) 및 프로세서(114)를 포함한다.
메모리(111)는 데이터베이스 암호화를 지원하는 프로그램이 저장된다. 이때, 메모리(111)는 전원이 공급되지 않아도 저장된 정보를 계속 유지하는 비휘발성 저장장치 및 저장된 정보를 유지하기 위하여 전력이 필요한 휘발성 저장장치를 통칭하는 것이다.
통신 모듈(112)은 클라이언트(120) 및 데이터베이스 서비스 제공 서버(130)와 통신을 수행한다. 이때, 통신 모듈(112)은 유선 또는 무선 네트워크 통신을 지원하는 네트워크 모듈이 될 수 있다.
스토리지 모듈(113)은 암호화된 데이터베이스를 저장할 수 있다. 이때, 스토리지 모듈(113)은 솔리드 스테이트 드라이버(solid state driver) 및 하드디스크 드라이버(hard disk driver) 등과 같은 저장장치(storage device)로 스토리지 서비스 제공 서버(110)에 내장될 수 있다. 또한, 스토리지 모듈(113)은 스토리지 서비스 제공 서버(110)에 컴퓨팅 버스(computing bus) 모듈을 통하여 연결된 저장장치일 수 있다. 또한, 스토리지 모듈(113)은 통신 모듈(112)을 통하여 연결된 저장장치 또는 스토리지 서버일 수 있다.
그리고 프로세서(114)는 메모리(111)에 저장된 데이터베이스 암호화를 지원하는 프로그램을 실행한다. 또한, 프로세서(114)는 스토리지 모듈에 저장된 암호화된 데이터베이스를 관리할 수 있다.
먼저, 프로세서(114)는 데이터베이스 암호화를 지원하기 위하여 통신 모듈(112)을 통하여 클라이언트(120)로부터 암호화된 데이터베이스에 대한 쿼리를 수신한다. 이때, 클라이언트(120)는 스토리지 서비스 제공 서버(110)와 미리 비밀키를 교환하여, 스토리지 서비스 제공 서버(110)에 저장된 데이터베이스의 사용이 허가된 클라이언트(120)일 수 있다.
프로세서(114)는 클라이언트(120)에서 암호화된 데이터베이스에 대하여 수신한 쿼리에 대응하여 부분적으로 복호화하여 부분 복호화된 데이터베이스를 생성한다. 이때, 부분 복호화된 데이터베이스는 클라이언트(120)에서 수신한 쿼리에 대응하는 하나 이상의 테이블(table), 필드(field), 레코드(recode) 및 데이터(data) 등을 포함할 수 있다.
프로세서(114)는 통신 모듈(112)을 통하여, 쿼리 및 부분 복호화된 데이터베이스를 데이터베이스 서비스 제공 서버(130)로 전송한다. 그리고 프로세서는 데이터베이스 서비스 제공 서버(130)를 통하여 클라이언트(120)가 전송한 쿼리에 대응하는 결과를 제공한다.
이때, 프로세서(114)는 데이터베이스 서비스 제공 서버(130)로 쿼리 및 부분 복호화된 데이터베이스를 전송하기 위하여 먼저 클라이언트(120)에서 수신한 쿼리에 대응하는 암호화된 쿼리를 생성할 수 있다. 암호화된 쿼리를 생성한 다음 프로세서(114)는 통신 모듈(112)을 통하여 데이터베이스 서비스 제공 서버(130)로 생성된 암호화된 쿼리를 전송할 수 있다.
암호화된 쿼리를 수신한 데이터베이스 서비스 제공 서버(130)가 암호화된 쿼리를 처리하기 위하여 암호화된 쿼리에 대응하는 데이터베이스를 요청하면, 프로세서(114)는 요청을 전송한 데이터베이스 서비스 제공 서버(130)에 대한 인증을 수행할 수 있다. 그리고 인증에 성공하면 프로세서(114)는 부분 복호화된 데이터베이스를 데이터베이스 서비스 제공 서버(130)에 전송한다.
이를 통하여, 프로세서(114)는 데이터베이스 서비스 제공 서버(130)에 전체 데이터베이스 또는 쿼리를 제공하지 않을 수 있다. 그러므로 프로세서(114)는 데이터베이스 서비스 제공 서버(130)가 공격을 받거나 손상되더라도 데이터베이스 전체의 유출을 방지할 수 있다.
또한, 클라이언트(120)가 전송한 쿼리에 대응하는 결과는 데이터베이스 서비스 제공 서버(130)에 의하여 생성된다. 즉, 부분 복호화된 데이터베이스를 수신한 데이터베이스 서비스 제공 서버(130)는 부분 복호화된 데이터베이스에 대하여 암호화된 쿼리를 수행하여 결과를 생성하고 클라이언트(120)로 전송한다. 이때, 생성된 결과는 데이터베이스 서비스 제공 서버(130)가 직접 클라이언트(120)로 전송할 수 있다. 또는 프로세서(114)가 데이터베이스 서비스 제공 서버(130)로부터 결과를 수신하고, 수신한 결과를 다시 클라이언트(120)로 전송할 수 있다.
예를 들어, 암호화된 제 1 데이터베이스에 제 1 필드 내지 제 3 필드를 포함하는 제 1 테이블 및 제 4 필드와 제 5 필드를 포함하는 제 2 테이블이 있을 때, 클라이언트(120)에서 수신한 제 1 쿼리가 제 1 테이블의 제 1 필드 및 제 3 필드만을 이용한다면, 프로세서(114)는 제 1 테이블의 제 1 필드 및 제 2 필드만 복호화한 제 2 데이터베이스를 생성할 수 있다. 그리고 프로세서(114)는 제 1 쿼리를 암호화하여 제 2 쿼리를 생성하고, 데이터베이스 서비스 제공 서버(130)로 전송할 수 있다.
제 2 쿼리를 수신한 데이터베이스 서비스 제공 서버(130)는 제 2 쿼리에 따라, 프로세서(114)로 제 1 데이터베이스를 요청할 수 있다. 제 1 데이터베이스에 대한 요청을 수신한 프로세서(114)는 제 1 데이터베이스 대신 제 1 데이터베이스가 부분적으로 복호화된 제 2 데이터베이스를 데이터베이스 서비스 제공 서버(130)로 전송할 수 있다. 그러므로 데이터베이스 서비스 제공 서버(130)는 제 2 데이터베이스를 통하여, 복호화된 제 1 테이블의 제 1 필드와 제 3 필드에 접근할 수 있으며, 복호화되지 않은 제 1 테이블의 제 2 필드 및 제 2 테이블에 접근할 수 없다. 데이터베이스 서비스 제공 서버(130)는 제 2 쿼리를 수행하고, 생성된 결과를 클라이언트(120)로 전송할 수 있다.
이와 같이, 프로세서(114)는 암호화된 제 1 데이터베이스 중 제 1 쿼리에 대응하는 일부만 복호화하므로 암호화 및 복호화 시 오버헤드를 줄일 수 있다. 또한, 프로세서(114)는 데이터베이스 서비스 제공 서버(130)에게 제 1 데이터베이스에 포함된 제 1 테이블의 제 1 필드 및 제 3 필드만이 복호화된 제 2 데이터베이스를 전송하므로 데이터베이스의 유출될 가능성을 줄일 수 있다.
다음은 도 3 및 도 4를 참조하여 본 발명의 일 실시예에 따른 스토리지 서비스 제공 서버(110)의 데이터베이스 암호화 방법을 설명한다.
도 3은 본 발명의 일 실시예에 따른 스토리지 서비스 제공 서버(110)의 데이터베이스 암호화 방법의 순서도이다.
스토리지 서비스 제공 서버(110)는 미리 비밀키를 교환한(S300) 클라이언트(120)로부터 암호화된 데이터베이스에 대한 쿼리를 수신한다(S310).
그리고 스토리지 서비스 제공 서버(110)는 클라이언트(120)로부터 수신한 쿼리에 대응하여 암호화된 데이터베이스를 부분적으로 복호화할 수 있다(S320). 그리고 스토리지 서비스 제공 서버(110)는 클라이언트(120)로부터 수신한 쿼리 및 부분 복호화된 데이터베이스를 데이터베이스 서비스 제공 서버(130)에 전송할 수 있다(S330). 부분 복호화된 데이터베이스를 생성하는 방법은 도 4를 참조하여 설명한다.
도 4는 본 발명의 일 실시예에 따른 부분적으로 복호화된 데이터베이스의 생성 방법의 순서도이다.
스토리지 서비스 제공 서버(110)는 먼저 클라이언트(120)로부터 수신한 쿼리를 데이터베이스 서비스 제공 서버(130)로 전송할 수 있다. 이때, 스토리지 서비스 제공 서버(110)는 데이터베이스 서비스 제공 서버(130)에 쿼리를 전송하기 전에 전송할 쿼리를 암호화할 수 있다.
암호화된 쿼리를 수신한 데이터베이스 서비스 제공 서버(130)는 스토리지 서비스 제공 서버(110)에 암호화된 쿼리에 대응하는 데이터베이스를 요청할 수 있다. 이때, 스토리지 서비스 제공 서버(110)는 데이터베이스 서비스 제공 서버(130)에 대한 인증을 수행할 수 있다(S400). 그리고 인증에 성공하면(S410), 스토리지 서비스 제공 서버(110)는 쿼리에 대응하여 암호화된 데이터베이스를 부분적으로 복호화할 수 있다(S420).
한편, 데이터베이스 서비스 제공 서버(130)가 쿼리 및 부분 복호화된 데이터베이스에 기초하여 결과를 생성하면, 스토리지 서비스 제공 서버(110)는 생성된 결과를 클라이언트(120)로 제공한다(S330). 이때, 생성된 결과를 제공하기 위하여, 스토리지 서비스 제공 서버(110)는 데이터베이스 서비스 제공 서버(130)로부터 생성된 결과를 수신하고, 수신된 결과를 클라이언트(120)로 전송할 수 있다. 또한, 스토리지 서비스 제공 서버(110)는 데이터베이스 서비스 제공 서버(130)에 요청하여, 데이터베이스 서비스 제공 서버(130)가 직접 클라이언트(120)로 생성된 결과를 전송하도록 할 수 있다.
본 발명의 일 실시예에 따른 데이터베이스 암호화를 지원하는 스토리지 서비스 제공 서버(110) 및 방법은 전체 데이터베이스 중 필요한 데이터베이스만 복호화하여 사용하므로, 종래의 암호화 방식에 비하여 복호화를 위하여 사용되는 리소스 및 오버헤드가 적으며, 안정성이 높다. 그러므로 스토리지 서비스 제공 서버(110) 및 방법은 빠르고 안전하게 클라이언트가 원하는 데이터를 제공할 수 있다.
또한, 스토리지 서비스 제공 서버(110) 및 방법은 데이터베이스 서비스 제공 서버(130)에 부분 복호화된 데이터베이스 및 암호화된 쿼리를 제공하므로, 데이터베이스 서비스 제공 서버(130)가 공격을 받거나 손상되더라도 데이터베이스 전체의 유출을 방지할 수 있다. 그러므로 스토리지 서비스 제공 서버(110) 및 방법은 클라이언트의 민감하고 중요한 데이터를 저장하는 일반 데이터베이스 시스템 및 클라우드 컴퓨팅 기반의 데이터베이스 시스템 등에 적용이 가능하다.
본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스 될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 스토리지 서비스 제공 시스템
110: 스토리지 서비스 제공 서버
111: 메모리
112: 통신 모듈
113: 스토리지 모듈
114: 프로세서
120: 클라이언트
130: 데이터베이스 서비스 제공 서버
110: 스토리지 서비스 제공 서버
111: 메모리
112: 통신 모듈
113: 스토리지 모듈
114: 프로세서
120: 클라이언트
130: 데이터베이스 서비스 제공 서버
Claims (7)
- 데이터베이스 암호화를 지원하는 스토리지 서비스 제공 서버에 있어서,
클라이언트 및 데이터베이스 서비스 제공 서버와의 통신을 수행하는 통신 모듈,
암호화된 데이터베이스를 저장하는 스토리지 모듈,
데이터베이스 암호화를 지원하는 프로그램이 저장된 메모리 및
상기 프로그램을 실행하는 프로세서를 포함하고,
상기 프로세서는 상기 프로그램의 실행에 따라, 상기 클라이언트로부터 상기 암호화된 데이터베이스에 대한 쿼리를 수신하면, 상기 수신한 쿼리를 암호화하고, 상기 암호화된 쿼리를 데이터베이스 서비스 제공 서버로 전송하고,
상기 데이터베이스 서비스 제공 서버로부터, 상기 암호화된 쿼리에 대응하는 요청을 수신하면, 상기 수신한 요청에 대응하여 상기 암호화된 데이터베이스를 부분적으로 복호화하고, 상기 부분 복호화된 데이터베이스를 상기 데이터베이스 서비스 제공 서버에 전송하여, 상기 데이터베이스 서비스 제공 서버를 통하여, 상기 클라이언트에 상기 클라이언트로부터 수신한 쿼리에 대응하는 결과를 제공하되,
상기 클라이언트로부터 수신한 쿼리에 대응하는 결과는 상기 데이터베이스 서비스 제공 서버에 의하여 상기 암호화된 쿼리 및 상기 부분 복호화된 데이터베이스에 기초하여 생성되어, 상기 데이터베이스 서비스 제공 서버에 의하여 상기 클라이언트로 전송된 것인, 스토리지 서비스 제공 서버. - 삭제
- 제 1 항에 있어서,
상기 프로세서는 상기 데이터베이스 서비스 제공 서버에 대한 인증을 수행하고, 상기 인증이 성공하면 상기 암호화된 데이터베이스를 부분적으로 복호화하는, 스토리지 서비스 제공 서버. - 제 1 항에 있어서,
상기 프로세서는 비밀 키를 교환한 클라이언트에서 상기 쿼리를 수신하는 것인, 스토리지 서비스 제공 서버. - 스토리지 서비스 제공 서버의 데이터베이스 암호화 방법에 있어서,
스토리지 모듈에 저장된 암호화된 데이터베이스에 대한 쿼리를 클라이언트로부터 수신한 쿼리를 암호화하는 단계;
상기 암호화된 쿼리를 데이터베이스 서비스 제공 서버로 전송하는 단계;
상기 암호화된 쿼리를 데이터베이스 서비스 제공 서버로 전송하는 단계 이후에, 상기 데이터베이스 서비스 제공 서버로부터, 상기 암호화된 쿼리에 대응하는 요청을 수신하는 단계;
상기 수신된 요청에 대응하여 상기 암호화된 데이터베이스를 부분적으로 복호화하는 단계; 및
상기 부분 복호화된 데이터베이스를 데이터베이스 서비스 제공 서버에 전송하여, 상기 클라이언트로 상기 클라이언트로부터 수신한 쿼리에 대응하는 결과를 제공하는 단계를 포함하되,
상기 클라이언트로부터 수신한 쿼리에 대응하는 결과는 상기 데이터베이스 서비스 제공 서버에 의하여 상기 암호화된 쿼리 및 상기 부분 복호화된 데이터베이스에 기초하여 생성되어, 상기 데이터베이스 서비스 제공 서버에 의하여 상기 클라이언트로 전송되는 것인, 데이터베이스 암호화 방법. - 삭제
- 제 5 항에 있어서,
상기 부분적으로 복호화하는 단계는
상기 쿼리를 수신한 데이터베이스 서비스 제공 서버의 인증을 수행하는 단계; 및
상기 인증의 결과에 따라, 상기 쿼리에 대응하여 상기 암호화된 데이터베이스를 부분적으로 복호화하는 단계를 포함하는, 데이터베이스 암호화 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150049510 | 2015-04-08 | ||
KR20150049510 | 2015-04-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101663632B1 true KR101663632B1 (ko) | 2016-10-07 |
Family
ID=57145306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150065135A KR101663632B1 (ko) | 2015-04-08 | 2015-05-11 | 데이터베이스 암호화를 지원하는 스토리지 서비스 제공 서버 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101663632B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102250084B1 (ko) * | 2020-11-20 | 2021-05-10 | 주식회사 넥스트아이비 | 블록체인을 이용한 비대면 부동산 경매 서비스 제공방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060099866A (ko) * | 2005-03-15 | 2006-09-20 | (주)잉카엔트웍스 | 자막 정보를 제공하는 방법 및 그 시스템 |
KR100859162B1 (ko) * | 2007-10-16 | 2008-09-19 | 펜타시큐리티시스템 주식회사 | 암호화된 칼럼을 포함하는 데이터베이스에서의 쿼리의 암호화 변조를 통한 사용자 쿼리 처리 장치 및 방법 |
KR20110060674A (ko) * | 2009-11-30 | 2011-06-08 | 한국전자통신연구원 | 위탁 서비스를 위한 데이터의 부분 암복호화 방법 및 그 장치, 그리고 그 데이터의 이용방법 |
KR101440751B1 (ko) * | 2014-02-13 | 2014-09-17 | 그루솔루션(주) | Db 네트워크 프로토콜의 dml 암복호화 처리를 통한 db 암호화 장치 및 방법 |
-
2015
- 2015-05-11 KR KR1020150065135A patent/KR101663632B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060099866A (ko) * | 2005-03-15 | 2006-09-20 | (주)잉카엔트웍스 | 자막 정보를 제공하는 방법 및 그 시스템 |
KR100859162B1 (ko) * | 2007-10-16 | 2008-09-19 | 펜타시큐리티시스템 주식회사 | 암호화된 칼럼을 포함하는 데이터베이스에서의 쿼리의 암호화 변조를 통한 사용자 쿼리 처리 장치 및 방법 |
KR20110060674A (ko) * | 2009-11-30 | 2011-06-08 | 한국전자통신연구원 | 위탁 서비스를 위한 데이터의 부분 암복호화 방법 및 그 장치, 그리고 그 데이터의 이용방법 |
KR101440751B1 (ko) * | 2014-02-13 | 2014-09-17 | 그루솔루션(주) | Db 네트워크 프로토콜의 dml 암복호화 처리를 통한 db 암호화 장치 및 방법 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102250084B1 (ko) * | 2020-11-20 | 2021-05-10 | 주식회사 넥스트아이비 | 블록체인을 이용한 비대면 부동산 경매 서비스 제공방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109144961B (zh) | 授权文件共享方法及装置 | |
CN107959567B (zh) | 数据存储方法、数据获取方法、装置及系统 | |
US8639928B2 (en) | System and method for mounting encrypted data based on availability of a key on a network | |
US9122888B2 (en) | System and method to create resilient site master-key for automated access | |
CN107689869B (zh) | 用户口令管理的方法和服务器 | |
US8111828B2 (en) | Management of cryptographic keys for securing stored data | |
CN111008228A (zh) | 区块链中账户隐私信息的查询方法及装置 | |
US10063372B1 (en) | Generating pre-encrypted keys | |
US8856530B2 (en) | Data storage incorporating cryptographically enhanced data protection | |
US10104049B2 (en) | Secure distributed publish/subscribe system | |
US20140096213A1 (en) | Method and system for distributed credential usage for android based and other restricted environment devices | |
US8635465B1 (en) | Counter-based encryption of stored data blocks | |
US20120173885A1 (en) | Key management using trusted platform modules | |
CN106487763B (zh) | 一种基于云计算平台的数据访问方法及用户终端 | |
CN110688666B (zh) | 一种分布式存储中数据加密保存方法 | |
KR20210058313A (ko) | 클라우드 환경에서 안전하고 효율적인 데이터 공유를 위한 속성기반 암호를 활용한 데이터 접근 제어 방법 및 시스템 | |
Tayade | Mobile cloud computing: Issues, security, advantages, trends | |
US20210124812A1 (en) | Distributed license encryption and distribution | |
US9436849B2 (en) | Systems and methods for trading of text based data representation | |
KR101812311B1 (ko) | 사용자 단말 및 속성 재암호 기반의 사용자 단말 데이터 공유 방법 | |
US11722295B2 (en) | Methods, apparatus, and articles of manufacture to securely audit communications | |
KR101473656B1 (ko) | 모바일 데이터 보안 장치 및 방법 | |
KR101663632B1 (ko) | 데이터베이스 암호화를 지원하는 스토리지 서비스 제공 서버 및 방법 | |
EP3044720A1 (en) | Performing an operation on a data storage | |
US20240179150A1 (en) | Management of access rights to digital files with possible delegation of the rights |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20190624 Year of fee payment: 4 |