KR101247564B1 - 데이터베이스 데이터의 위변조 방지 방법 - Google Patents
데이터베이스 데이터의 위변조 방지 방법 Download PDFInfo
- Publication number
- KR101247564B1 KR101247564B1 KR1020130007768A KR20130007768A KR101247564B1 KR 101247564 B1 KR101247564 B1 KR 101247564B1 KR 1020130007768 A KR1020130007768 A KR 1020130007768A KR 20130007768 A KR20130007768 A KR 20130007768A KR 101247564 B1 KR101247564 B1 KR 101247564B1
- Authority
- KR
- South Korea
- Prior art keywords
- security key
- security
- string
- data
- forgery
- 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
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
본 발명은 DB 보안값으로 해쉬값을 이용하여 시스템 자원을 적게 사용하면서도 처리속도를 높일 수 있는 데이터베이스(Data Base; DB) 데이터의 위/변조 방지 방법에 관한 것이다. 본 발명의 방법은, 보안키를 생성한 후 서버 인증서로 보안키를 암호화하여 보관하는 단계; 시스템 구동시 암호화된 보안키를 복호화하는 단계; 사용자 정보 DB 테이블에 데이터가 삽입되면, DB 테이블 행의 모든 속성값을 하나의 문자열로 연접하는 단계; 생성된 문자열에 복호화된 보안키를 추가로 연접하여 보안키 추가 문자열을 생성하는 단계; 상기 보안키 추가 문자열에 대한 해쉬값을 계산하는 단계; 상기 해쉬값을 해당 사용자 정보 DB테이블에 DB 보안값으로 저장하는 단계; 검증이 요청되면, 해당 DB 테이블 행의 모든 속성값을 검증을 위한 하나의 문자열로 연접하는 단계; 생성된 문자열에 복호화된 보안키를 추가로 연접하여 검증을 위한 보안키 추가 문자열을 생성하는 단계; 상기 검증을 위한 보안키 추가 문자열에 대한 해쉬값을 계산하는 단계; 및 새로 계산된 해쉬값과 해당 사용자 정보 DB 테이블에 저장된 DB 보안값을 비교하여 일치 여부로 데이터 위/변조를 검증하는 단계로 구성된다.
Description
본 발명은 데이터베이스의 보안기술에 관한 것으로, 더욱 상세하게는 DB 보안값으로 해쉬값을 이용하여 시스템 자원을 적게 사용하면서도 처리속도를 높일 수 있는 데이터베이스(Data Base; DB) 데이터의 위/변조 방지 방법에 관한 것이다.
일반적으로, 데이터가 생성되어 처리·유통을 거쳐 소멸 또는 폐기되기까지 생명주기 전반에 걸처 기밀성, 무결성, 가용성 등이 확보되어야 한다. 특히, 데이터베이스(DB)의 안전한 보호를 위해 DB에 대한 접근제어(Access Control)와 인증(Authentication)이 가미되어 DB 보안 정책으로 활용되는 것이 일반적이다. DB 보안은 기밀성(Confidentiality), 무결성(Integrity), 가용성(Availability)의 위협에 대비해서 DB를 보호하기 위해 광범위한 보안통제를 사용한다.
현재 많은 기관 시스템들이 데이터를 보관하기 위한 방법으로 데이터베이스(DB)를 사용하고 있다. 데이터베이스는 정보의 저장 및 빠른 검색 등의 정보 관리를 위해 최고의 효율성을 제공하고 있지만, DB의 계정 정보를 알고 있는 관리자(내부 침입자)가 DB에 직접 접속하거나 기타 다른 방법에 의해 중요 데이터를 조작할 수 있다. 악의적인 목적으로 이와 같이 중요 데이터가 조작된 경우, 시스템은 사용자에게 잘못된 정보를 제공할 수 있을 뿐만 아니라 사용자가 권한을 가지고 있지 않은 타인의 정보를 획득할 수도 있는 위험 요소를 가지고 있다. 이러한 위험을 방지하기 위하여 대부분의 데이터베이스 시스템들은 DB 데이터의 위/변조를 방지하기 위한 솔루션을 필요로 하고 있다.
DB 데이터의 위/변조 방지를 위해 많은 솔루션들이 알려져 있는데, 대표적인 방법이 데이터 저장시 DB 테이블 행(Table Row)의 모든 열(Column)의 데이터를 하나의 문자열로 연접한 후 시스템의 서버 인증서 개인키를 사용하여 전자서명한 값을 해당 열(Row)의 별도의 Column(DB 보안값)에 저장하는 것이다. 이렇게 저장된 데이터는 데이터 조회 또는 해당 데이터의 위/변조 검증이 필요한 시점에 해당 데이터 행(Row)의 전자서명 검증을 수행함으로써 해당 데이터가 위/변조되었는지 확인할 수 있다.
도 1은 종래에 DB 테이블 데이터 저장시 보안값을 생성하여 저장하는 절차를 도시한 순서도이고, 도 2는 종래에 저장된 보안값으로 데이터 위/변조를 검증하는 절차를 도시한 순서도이다.
종래의 전자서명에 의한 DB 위/변조 방지 방법은 도 1과 같이 DB 테이블(Table)에 데이터를 저장할 때 DB 테이블 각 행(Row)의 모든 열(Column)의 데이터들을 하나의 문자열로 연접한 후 시스템 서버 인증서로 전자서명하여 보안 값(SignedData)을 생성하고, 생성된 보안 값을 해당 테이블 행(Table Row)의 “DB 보안 값” 열(column)에 저장한다(S11~S14). 따라서 DB 접속 정보를 알고 있는 내부자가 악의적인 목적으로 데이터를 조작하더라도 시스템 서버 인증서의 개인키 비밀번호를 모르면 DB 보안 값을 생성할 수 없다.
그리고 DB 데이터의 위/변조 검증 시에는 도 2와 같이, 검증하려는 DB 테이블 행(Table Row)의 모든 열(column) 데이터(DB 보안 값 제외)를 하나의 문자열로 연접한 후, 해당 행(Row)의 DB 보안 값(SignedData)을 전자서명 검증함으로써 해당 데이터의 위/변조 여부를 검증할 수 있다(S21~S27).
그런데 이와 같은 전자서명에 의한 DB 위/변조 방지 기술은 수 많은 데이터가 각각의 테이블(Table)에 삽입(Insert)될 때마다 인증서에 의한 전자서명이 수행되어야 하므로 시스템 부하를 가중시키고, 처리속도를 현저히 떨어뜨리는 문제점이 있다. 뿐만 아니라 DB 보안값으로 저장되는 보안값 데이터(SingedData)의 크기가 수십 Kbyte 이상되는 큰 사이즈(Size)이기 때문에 스토리지(Storage)의 증가를 초래하여 자원 사용에 대한 효율성을 떨어뜨린다. 즉, 종래와 같이 DB Table의 모든 Row에 대해 전자서명하는 방법은 보관 대상 정보 외에 전자서명 값(SignedData)을 DB에 저장 관리해야 하는데, 전자서명 값의 데이터 사이즈(size)가 보관정보보다 더 큰 경우가 많기 때문에 스토리지(Storage)의 추가적인 확보에 대한 부담을 가지게 된다.
[선행특허자료]
1. 등록특허공보 10-0430469 (공고일자 2004. 05. 08)
2. 등록특허공보 10-0831521 (공고일자 2008. 05. 22)
공인전자문서센터나 공인전자문서중계자 등과 같은 국가인증시스템 및 금융권 시스템 등과 같이 보관 데이터의 보안을 중요하게 여기는 시스템들은 보관데이터의 위/변조 방지라는 보안적인 이슈와 처리 성능적인 이슈 사이에서 더 나은 방법을 요구하고 있다. 이에 데이터베이스 데이터의 위/변조 방지를 위해 더 적은 자원(Storage, CPU, Memory)을 사용하면서도 빠른 처리속도로 시스템의 성능을 향상시킬 수 있는 DB 위/변조 방지 방법이 필요하다. 이러한 DB 위/변조 방지 기술은 DB 데이터의 위/변조 여부를 검증할 수 있는 DB 보안 값을 저장 관리하여 필요 시 보안 값을 이용하여 데이터의 위/변조 여부를 검증할 수 있어야 하고, 시스템에 의한 정상적인 방법 외에 임의로 보안 값을 생성할 수 없어야 하며, DB 보안 값 생성이 전체 시스템의 처리 속도에 미치는 영향을 최소화 하여야 하고, 추가적으로 보관 관리해야 하는 DB 보안 값의 크기가 크지 않아야 한다.
본 발명은 종래의 문제점을 해소함과 아울러 상기와 같은 필요성을 충족시키기 위해 제안된 것으로, 본 발명의 목적은 DB 보안값으로 해쉬값을 이용하여 시스템 자원을 적게 사용하면서도 처리속도를 높일 수 있는 데이터베이스 데이터의 위/변조 방지 방법을 제공하는 것이다.
상기와 같은 목적을 달성하기 위하여 본 발명의 방법은, 보안키를 생성한 후 서버 인증서로 보안키를 암호화하여 보관하는 단계; 시스템 구동시 암호화된 보안키를 복호화하는 단계; 사용자 정보 DB 테이블에 데이터가 삽입되면, DB 테이블 행의 모든 속성값을 하나의 문자열로 연접하는 단계; 생성된 문자열에 복호화된 보안키를 추가로 연접하여 보안키 추가 문자열을 생성하는 단계; 상기 보안키 추가 문자열에 대한 해쉬값을 계산하는 단계; 상기 해쉬값을 해당 사용자 정보 DB테이블에 DB 보안값으로 저장하는 단계; 검증이 요청되면, 해당 DB 테이블 행의 모든 속성값을 검증을 위한 하나의 문자열로 연접하는 단계; 생성된 문자열에 복호화된 보안키를 추가로 연접하여 검증을 위한 보안키 추가 문자열을 생성하는 단계; 상기 검증을 위한 보안키 추가 문자열에 대한 해쉬값을 계산하는 단계; 및 새로 계산된 해쉬값과 해당 사용자 정보 DB 테이블에 저장된 DB 보안값을 비교하여 일치 여부로 데이터 위/변조를 검증하는 단계를 포함하는 것을 특징으로 한다.
상기 사용자 정보 DB 테이블은 데이터 위/변조를 검증하기 위한 DB 보안값 열을 구비하고 있고, 상기 보안키는 관리자도 알 수 없도록 시스템이 랜덤(Random)하게 생성한 값(UUID)이다. 또한 상기 보안키는 시스템 정책에 따라 주기적으로 재 생성되어 보안키 정보 DB 테이블에 저장 관리될 수 있다.
본 발명의 다른 실시예는 사용자 정보 DB 테이블 행의 모든 속성 데이터를 하나의 문자열로 연접하는 단계; 보안키 정보 DB 테이블에서 연결정보와 보안키를 획득하여 연접된 문자열에 해당 보안키를 추가로 연접하여 보안키 추가 문자열을 생성하는 단계; 보안키 추가 문자열에 대한 해쉬값을 계산하는 단계; 사용자 정보 DB 테이블의 DB 보안값 열에 상기 해쉬값을 저장하고, 해당 보안키의 연결정보를 보안키 ID 열에 저장하는 단계; 검증이 요청되면, 해당 사용자 정보 DB 테이블 행의 모든 속성 데이터를 하나의 문자열로 연접하는 단계; 보안키 정보 DB 테이블에서 연결정보에 해당되는 보안키를 획득하는 단계; 연접된 문자열에 해당 보안키를 추가로 연접하여 검증을 위한 보안키 추가 문자열을 생성하는 단계; 검증을 위한 보안키 추가 문자열에 대한 해쉬값을 계산하는 단계; 및 계산된 해쉬값을 해당 DB 보안값과 비교하여 일치 여부로 데이터 위/변조를 검증하는 단계로 구성되는 것을 특징으로 한다.
본 발명에 따른 데이터 위/변조 방지 방법은 해쉬(Hash)값 계산만으로 DB 보안 값을 생성할 수 있으므로 DB 위/변조 방지 기술 적용에 따른 시스템 부하 증가를 현저히 줄일 수 있어 처리속도에 크게 영향을 주지 않고, DB 보안 값으로 저장되는 Hash값의 크기가 작기 때문에(예컨대, SHA256에 Base64로 인코딩한 경우 41Byte이다) 추가적으로 저장되는 스토리지(Storage)의 증가에 대한 부담이 없는 장점이 있다.
도 1은 종래에 DB 테이블 데이터 저장시 보안값을 생성하여 저장하는 절차를 도시한 순서도,
도 2는 종래에 저장된 보안값으로 데이터 위/변조를 검증하는 절차를 도시한 순서도,
도 3은 본 발명이 적용될 수 있는 전형적인 데이터베이스의 구조를 도시한 개략도,
도 4는 본 발명의 실시예에 따라 데이터 위/변조 방지를 위해 데이터 저장시 DB 보안값을 생성하는 절차를 도시한 순서도,
도 5는 본 발명의 실시예에 따라 데이터 위/변조 방지를 위해 데이터를 검증하는 절차를 도시한 순서도,
도 6은 본 발명의 실시예에 따라 보안키를 생성하여 암호화하는 절차를 도시한 순서도,
도 7은 본 발명의 실시예에 따라 보안키를 복호하는 절차를 도시한 순서도,
도 8은 본 발명의 다른 실시예에 따라 보안키를 자동으로 재생성하는 절차를 도시한 순서도,
도 9는 본 발명의 다른 실시예에 따라 보안키 연결정보를 관리하는 개념을 도시한 개략도,
도 10은 본 발명의 다른 실시예에 따라 자동으로 재생성된 보안키로 데이터 위/변조 방지를 위해 데이터 저장시 DB 보안값을 생성하는 절차를 도시한 순서도,
도 11은 본 발명의 다른 실시예에 따라 데이터 위/변조 방지를 위해 데이터를 검증하는 절차를 도시한 순서도이다.
도 2는 종래에 저장된 보안값으로 데이터 위/변조를 검증하는 절차를 도시한 순서도,
도 3은 본 발명이 적용될 수 있는 전형적인 데이터베이스의 구조를 도시한 개략도,
도 4는 본 발명의 실시예에 따라 데이터 위/변조 방지를 위해 데이터 저장시 DB 보안값을 생성하는 절차를 도시한 순서도,
도 5는 본 발명의 실시예에 따라 데이터 위/변조 방지를 위해 데이터를 검증하는 절차를 도시한 순서도,
도 6은 본 발명의 실시예에 따라 보안키를 생성하여 암호화하는 절차를 도시한 순서도,
도 7은 본 발명의 실시예에 따라 보안키를 복호하는 절차를 도시한 순서도,
도 8은 본 발명의 다른 실시예에 따라 보안키를 자동으로 재생성하는 절차를 도시한 순서도,
도 9는 본 발명의 다른 실시예에 따라 보안키 연결정보를 관리하는 개념을 도시한 개략도,
도 10은 본 발명의 다른 실시예에 따라 자동으로 재생성된 보안키로 데이터 위/변조 방지를 위해 데이터 저장시 DB 보안값을 생성하는 절차를 도시한 순서도,
도 11은 본 발명의 다른 실시예에 따라 데이터 위/변조 방지를 위해 데이터를 검증하는 절차를 도시한 순서도이다.
본 발명과 본 발명의 실시에 의해 달성되는 기술적 과제는 다음에서 설명하는 본 발명의 바람직한 실시예들에 의하여 보다 명확해질 것이다. 다음의 실시예들은 단지 본 발명을 설명하기 위하여 예시된 것에 불과하며, 본 발명의 범위를 제한하기 위한 것은 아니다.
도 3은 본 발명이 적용될 수 있는 전형적인 데이터베이스의 구조를 도시한 개략도이다.
본 발명이 적용될 수 있는 데이터베이스 구조는 도 3에 도시된 바와 같이, 데이터베이스(10)가 데이터 파일(12)과 로그 파일(14)을 포함하고, 데이터 파일(12)은 테이블(table;20) 구조로 되어 있다. 테이블(20)은 행(Row)과 열(Column)로 이루어지는데, 행(Row)은 튜플이라고 하고, 열(Column)은 애트리뷰트라 하며, 각 Column에는 속성값이 저장되어 있다. 도 3에서 데이터 파일의 DB 테이블은 사용자ID, 비밀번호, 주소, 전화번호로 이루어진 속성을 가지며, 사용자 ID를 기본 키로 하고 있다.
본 발명에 따른 DB 위/변조 방지 방법은 DB 위/변조 방지를 위한 DB 보안 값으로 해쉬(Hash)값을 사용한다. 테이블 행(Table Row)의 모든 열(column) 데이터(속성값)를 하나의 문자열로 연접한 후, 연접한 문자열에 대한 해쉬(Hash)값을 계산하여 'DB 보안 값' 열(column)에 저장한다. 이를 위하여 본 발명이 적용되는 DB의 사용자 정보 테이블에는 'DB 보안 값' 속성이 있으며, 보안키를 관리하기 위한 절차를 필요로 한다.
즉, 해당 테이블 행의 속성값 데이터만을 단순히 연접하여 해쉬(Hash)값을 계산한다면 누구나 해당 데이터를 조작한 후 'DB 보안 값'을 생성할 수 있기 때문에 본 발명에서는 데이터 연접 시 추가적으로 '보안키(Key)'를 연접하여 해쉬(Hash)값을 계산한다. 여기서 말하는 보안키(Key)는 관리자도 알 수 없도록 시스템이 랜덤(Random)하게 생성한 값(ex. UUID)이며, 보안 Key값은 시스템 서버 인증서로 암호화되어 저장 관리된다. 따라서 본 발명에 따르면, 내부자라 하더라도 보안Key를 알 수 없기 때문에 DB 보안 값을 생성할 수 없다.
도 4는 본 발명의 실시예에 따라 데이터 위/변조 방지를 위해 데이터 저장시 DB 보안값을 생성하는 절차를 도시한 순서도이고, 도 5는 본 발명의 실시예에 따라 데이터 위/변조 방지를 위해 데이터를 검증하는 절차를 도시한 순서도이다.
본 발명에 따라 데이터베이스의 사용자 정보 테이블의 데이터 저장(Insert)시 DB 보안 값을 생성하는 방법은 도 4에 도시된 바와 같이, 먼저 보안키를 생성하여 서버 인증서로 보안 키를 암호화한 후 보관하고 있다가 보안키를 복호화하여 사용한다(S31~S33).
도 4를 참조하면, 데이터베이스의 사용자 정보 테이블 저장시 DB 테이블 행(Row)의 모든 속성(column) 데이터를 하나의 문자열로 연접한 후, 단계 33에서 구한 보안 Key를 추가로 연접한다(S34~S36). 예컨대, 본 발명의 실시예에 따른 사용자 정보 DB 테이블이 다음 표 1과 같다고 하자.
사용자 ID | 비밀번호 | 주소 | 전화번호 | 상태 | DB 보안값 |
hong | h12345 | 서울 | 021234567 | 0 | |
표 1에서 DB 테이블 행(Row)의 모든 값을 연접하면 " hong + h12345 + 서울 + 021234567 + 0 " = " hongh12345tjdnf0212345670 "과 같은 문자열이 된다. 그리고 복호된 보안키를 " 8E8sDF379Qwqm5 "라 하면, 보안키가 추가로 연접되면 하나의 문자열 " hongh12345tjdnf02123456708E8sDF379Qwqm5 "가 생성된다.
이어 보안키까지 연접된 문자열에 대한 해쉬(Hash)값을 계산하고, 산출된 해쉬값을 DB 보안값으로 하여 표1과 같은 사용자 정보 DB 테이블의 'DB 보안값' 열(column)에 저장한다(S37,S38).
보안키(Key)는 시스템 서버 인증서로 암호화되어 보관 관리되며, 시스템 기동 시 복호화하여 시스템 메모리에 저장한다. DB 보안 값을 여러 번 생성하더라도 암호화되어 저장되어 있는 보안 Key에 대한 복호화는 시스템 구동 시 한번만 수행된다.
본 발명에 따른 DB 보안 값 검증 방법은 도 5에 도시된 바와 같이, 테이블 행(Table Row)의 모든 열(column) 데이터(즉, 속성값)를 하나의 문자열로 연접한 후 추가로 보안키(Key)를 연접한다(S41~S43). 예컨대, 본 발명의 실시예에 따른 사용자 정보 DB 테이블이 다음 표 2와 같다고 하자.
사용자 ID | 비밀번호 | 주소 | 전화번호 | 상태 | DB 보안값 |
hong | h12345 | 서울 | 021234567 | 0 | hash값 |
표 2에서 DB 테이블 행(Row)의 모든 속성값을 연접하면 " hong + h12345 + 서울 + 021234567 + 0 " = " hongh12345tjdnf0212345670 "이란 문자열이 된다. 그리고 복호된 보안키를 " 8E8sDF379Qwqm5 "라 하면, 보안키가 추가로 연접되면 하나의 문자열 " hongh12345tjdnf02123456708E8sDF379Qwqm5 "가 생성된다.
이어, 이와 같이 연접한 문자열에 대한 Hash값을 계산하여 해당 테이블 행(Table Row)의 'DB 보안 값' 열(column)에 저장되어 있는 해쉬(Hash) 값(즉, DB 보안 값)과 비교하여 검증한다(S44,S45). 이때 해쉬값이 일치하면 데이터 위변/조가 없는 것이고, 일치하지 않으면 데이터 위/변조가 발생된 것이므로 경보 메시지로 이를 시스템에 알린다(S46~S48).
보안키(Key)는 시스템 서버 인증서로 암호화되어 보관 관리되며, 시스템 기동 시 복호화하여 시스템 메모리에 저장한다(S31~S33). DB 보안 값을 여러 번 검증하더라도 암호화되어 저장되어 있는 보안 Key에 대한 복호화는 시스템 구동 시 한번만 수행된다.
도 6은 본 발명의 실시예에 따라 보안키를 생성하여 암호화하는 절차를 도시한 순서도이고, 도 7은 본 발명의 실시예에 따라 보안키를 복호하는 절차를 도시한 순서도이다.
본 발명에 따라 보안키(Key)를 생성하여 관리하는 절차는 도 6에 도시된 바와 같이, 시스템에 의해 랜덤하게 보안키를 생성한 후 시스템 서버 인증서로 보안키를 암호화하여 암호화된 보안키를 서버에 저장한다(S51~S53). 이때 보안키(Key)는 관리자도 알 수 없도록 시스템이 랜덤(Random)하게 생성한 값(ex. UUID)이며, 보안키(Key)값은 시스템 서버 인증서로 암호화되어 저장 관리하므로 내부자라 하더라도 보안키(Key)를 알 수 없기 때문에 'DB 보안 값'을 생성할 수 없다.
또한 본 발명에 따라 암호화된 보안키를 복호화하는 절차는 도 7에 도시된 바와 같이, DB 서버에 저장된 암호화된 보안키를 독출하여 시스템 구동시 서버 인증서로 암호화된 보안키를 복호화하고, 복호화된 보안키를 시스템 메모리에 저장하고 있으면서 보안키를 사용할 수 있도록 한다(S61~S64). 따라서 DB 보안 값을 여러 번 검증하더라도 암호화되어 저장되어 있는 보안 Key에 대한 복호화는 시스템 구동 시 한번만 수행된다.
도 8은 본 발명의 다른 실시예에 따라 보안키를 자동으로 재생성하는 절차를 도시한 순서도이고, 도 9는 본 발명의 다른 실시예에 따라 보안키 연결정보를 관리하는 개념을 도시한 개략도이다.
도 8을 참조하면, 시스템 정책에 의해 정해진 재생성 주기가 되면, 데몬에 의해 새로운 보안키를 생성하여 서버 인증서로 새로운 보안키를 암호화하여 암호화된 보안키를 다음 표 3과 같은 보안키 정보 DB 테이블에 추가로 저장한다(S71~S74).
그리고 보안키의 위/변조를 방지하기 위해 보안키를 재생성하기 전 마지막에 추가된 보안키를 사용하여 DB 보안값을 생성하여 DB보안값을 보안키 정보 DB 테이블의 DB 보안값에 저장한다(S75,S76).
Key ID | 암호화된 보안키 | 버전 | DB 보안값 |
001 | jafh98yrfuihfagierauhefi | 보안값 | |
002 | f78aye4fga7ttf78aegifga | Latest | 보안값 |
003 |
상기 표 3의 보안키 정보 DB 테이블에는 보안키를 구분하기 위한 Key ID와 암호화된 보안키가 저장되어 있고, 보안키의 버전정보와 보안키의 위/변조를 방지하기 위한 DB 보안값이 저장되어 있다.
이와 같이 본 발명의 다른 실시예에서는 보안키(Key) 자동 재생성 단계에서 더 높은 Level의 보안을 적용하기 위해 보안 Key를 자동으로 재 생성할 수 있다. 데몬에 의해 주기적으로 새로운 보안키(Key)를 생성하여 저장하고, 보안 Key 재생성 이후 각 테이블들의 DB 보안 값 생성 시 가장 마지막에 추가된 보안키(Key)를 사용한다. 이는 만에 하나라도 보안 Key가 유출될 경우를 대비하여 한 차원 높은 보안을 적용하기 위한 것이다. 보안 Key의 재생성 주기는 시스템 정책에 따른다.
그리고 보안키(Key)를 주기적으로 재생성하는 경우 도 9에 도시된 바와 같이, DB 보안값(Hash값) 생성에 사용된 보안키(Key)에 대한 연결정보(Key ID)를 함께 저장하여야 하며, 보안키(Key) 연결정보를 이용하여 향후 해당 데이터의 검증 시 DB 보안 값 생성 때와 동일한 보안 Key를 사용하여 검증할 수 있도록 한다. 도 9을 참조하면, 사용자 정보 DB 테이블에는 본 발명의 다른 실시예에 따라 보안키에 대한 연결정보를 관리하기 위해 보안키 ID가 추가되어 있고, 보안키 정보 DB 테이블에는 보안키 ID에 따른 암호화된 보안키가 저장되어 있다. 따라서 데이터의 위/변조 검증 시 보안키 ID를 이용하여 DB 보안 값 생성 때와 동일한 보안 Key를 사용하여 검증할 수 있다.
도 10은 본 발명의 다른 실시예에 따라 자동으로 재생성된 보안키로 데이터 위/변조 방지를 위해 데이터 저장시 DB 보안값을 생성하는 절차를 도시한 순서도이고, 도 11은 본 발명의 다른 실시예에 따라 데이터 위/변조 방지를 위해 데이터를 검증하는 절차를 도시한 순서도이다.
본 발명의 다른 실시예에 따른 DB 보안값 생성절차는 도 10에 도시된 바와 같이, 사용자 정보 DB 테이블 행의 모든 속성 데이터를 하나의 문자열로 연접하고, 보안키 정보 DB 테이블에서 마지막 버전의 보안키 연결정보와 보안키를 획득하여 연접된 문자열에 해당 보안키를 추가로 연접한다(S81~S84).
그리고 연접된 문자열에 대한 해쉬값을 계산한 후 사용자 정보 DB 테이블의 DB 보안값 열에 해쉬값을 저장하고, 해당 보안키의 연결정보를 보안키 ID 열에 저장한다(S85,S86).
한편, 본 발명의 다른 실시예에서 위/변조 방지를 위해 데이터를 검증하는 절차는 도 11에 도시된 바와 같이, 해당 사용자 정보 DB 테이블 행의 모든 속성 데이터를 하나의 문자열로 연접하고, 보안키 정보 DB 테이블에서 연결정보에 해당되는 보안키를 획득한 후 연접된 문자열에 해당 보안키를 추가로 연접한다(S91~S94).
그리고 연접된 문자열에 대한 해쉬값을 계산한 후 계산된 해쉬값을 해당 DB 보안값과 비교하여 일치하면 데이터 위/변조가 없는 것으로 판단하고, 일치하지 않으면 데이터 위/변조가 발생된 것으로 판단하여 경보를 발생한다(S95~S99).
이와 같이 본 발명의 다른 실시예에서는 보안값이 노출되는 경우에 대비하여 보안값을 주기적으로 재 생성한 후 암호화하여 사용함으로써 데이터베이스의 보안을 한층 더 강화시킬 수 있다.
이상에서 본 발명은 도면에 도시된 일 실시예를 참고로 설명되었으나, 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다.
10: 데이터베이스 12: 데이터 파일
14: 로그 파일 20: 테이블
14: 로그 파일 20: 테이블
Claims (7)
- 보안키를 생성한 후 서버 인증서로 보안키를 암호화하여 보관하는 단계;
시스템 구동시 암호화된 보안키를 복호화하는 단계;
사용자 정보 DB 테이블에 데이터가 삽입되면, DB 테이블 행의 모든 속성값을 하나의 문자열로 연접하는 단계;
생성된 문자열에 복호화된 보안키를 추가로 연접하여 보안키 추가 문자열을 생성하는 단계;
상기 보안키 추가 문자열에 대한 해쉬값을 계산하는 단계;
상기 해쉬값을 해당 사용자 정보 DB테이블에 DB 보안값으로 저장하는 단계;
검증이 요청되면, 해당 DB 테이블 행의 모든 속성값을 검증을 위한 하나의 문자열로 연접하는 단계;
생성된 문자열에 복호화된 보안키를 추가로 연접하여 검증을 위한 보안키 추가 문자열을 생성하는 단계;
상기 검증을 위한 보안키 추가 문자열에 대한 해쉬값을 계산하는 단계; 및
새로 계산된 해쉬값과 해당 사용자 정보 DB 테이블에 저장된 DB 보안값을 비교하여 일치 여부로 데이터 위/변조를 검증하는 단계를 포함하는 데이터베이스 데이터의 위변조 방지 방법.
- 제1항에 있어서, 상기 사용자 정보 DB 테이블은
데이터 위/변조를 검증하기 위한 DB 보안값 열을 구비하고 있는 것을 특징으로 하는 데이터베이스 데이터의 위변조 방지 방법.
- 제1항에 있어서, 상기 보안키는
관리자도 알 수 없도록 시스템이 랜덤(Random)하게 생성한 값(UUID)인 것을 특징으로 하는 데이터베이스 데이터의 위변조 방지 방법.
- 제1항에 있어서, 상기 보안키는
시스템 정책에 따라 주기적으로 재 생성되어 보안키 정보 DB 테이블에 저장 관리되는 것을 특징으로 하는 데이터베이스 데이터의 위변조 방지 방법.
- 제4항에 있어서, 상기 보안키 정보 DB 테이블은
보안키에 대한 연결정보인 키 아이디(Key ID)와, 암호화된 보안키와, 버전정보와, 보안키의 위/변조를 방지하기 위한 DB보안값이 저장된 것을 특징으로 하는 데이터베이스 데이터의 위변조 방지 방법.
- 제5항에 있어서, 상기 보안키 정보 DB 테이블의 주기적으로 재 생성된 보안키를 사용할 경우, 상기 사용자 정보 DB 테이블은 보안키에 대한 연결정보를 관리하기 위한 '보안키 아이디(Key ID)' 열을 추가하고 있는 것을 특징으로 하는 데이터베이스 데이터의 위변조 방지 방법.
- 사용자 정보 DB 테이블 행의 모든 속성 데이터를 하나의 문자열로 연접하는 단계;
보안키 정보 DB 테이블에서 연결정보와 보안키를 획득하여 연접된 문자열에 해당 보안키를 추가로 연접하여 보안키 추가 문자열을 생성하는 단계;
보안키 추가 문자열에 대한 해쉬값을 계산하는 단계;
사용자 정보 DB 테이블의 DB 보안값 열에 상기 해쉬값을 저장하고, 해당 보안키의 연결정보를 보안키 ID 열에 저장하는 단계;
검증이 요청되면, 해당 사용자 정보 DB 테이블 행의 모든 속성 데이터를 하나의 문자열로 연접하는 단계;
보안키 정보 DB 테이블에서 연결정보에 해당되는 보안키를 획득하는 단계;
연접된 문자열에 해당 보안키를 추가로 연접하여 검증을 위한 보안키 추가 문자열을 생성하는 단계;
검증을 위한 보안키 추가 문자열에 대한 해쉬값을 계산하는 단계; 및
계산된 해쉬값을 해당 DB 보안값과 비교하여 일치 여부로 데이터 위/변조를 검증하는 단계를 포함하는 데이터베이스 데이터의 위변조 방지 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130007768A KR101247564B1 (ko) | 2013-01-24 | 2013-01-24 | 데이터베이스 데이터의 위변조 방지 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130007768A KR101247564B1 (ko) | 2013-01-24 | 2013-01-24 | 데이터베이스 데이터의 위변조 방지 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101247564B1 true KR101247564B1 (ko) | 2013-03-26 |
Family
ID=48182576
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130007768A KR101247564B1 (ko) | 2013-01-24 | 2013-01-24 | 데이터베이스 데이터의 위변조 방지 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101247564B1 (ko) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180037632A (ko) * | 2016-10-04 | 2018-04-13 | 주식회사 셀파소프트 | Was 모니터링 시스템과 db 서버 모니터링 시스템의 연계 서비스를 제공하기 위한 시스템 및 방법 |
KR102012515B1 (ko) * | 2018-10-25 | 2019-10-21 | 주식회사 케이앤씨가람 | 난수암호화 id카드를 이용한 보안 제어 시스템 |
KR20190135700A (ko) * | 2018-05-29 | 2019-12-09 | 주식회사 한글과컴퓨터 | 스프레드시트 전자 문서의 개체 보호 장치 및 이의 동작 방법 |
WO2020101087A1 (ko) * | 2018-11-16 | 2020-05-22 | (주) 더존비즈온 | 개인정보 처리를 위한 암호화 시스템 및 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100935684B1 (ko) | 2007-12-17 | 2010-01-08 | 한국전자통신연구원 | 단말기 메모리 데이터 추출 장치 및 그 방법 |
KR20100081873A (ko) * | 2009-01-07 | 2010-07-15 | 포항공과대학교 산학협력단 | 분산된 데이터베이스 시스템에서 공통 id를 이용한 레코드 저장 방법 및 무결성 확인 방법 |
KR20130005468A (ko) * | 2011-07-06 | 2013-01-16 | 삼성에스디에스 주식회사 | 보안 토큰에 대한 발급자 인증 방법 및 그 장치 |
-
2013
- 2013-01-24 KR KR1020130007768A patent/KR101247564B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100935684B1 (ko) | 2007-12-17 | 2010-01-08 | 한국전자통신연구원 | 단말기 메모리 데이터 추출 장치 및 그 방법 |
KR20100081873A (ko) * | 2009-01-07 | 2010-07-15 | 포항공과대학교 산학협력단 | 분산된 데이터베이스 시스템에서 공통 id를 이용한 레코드 저장 방법 및 무결성 확인 방법 |
KR20130005468A (ko) * | 2011-07-06 | 2013-01-16 | 삼성에스디에스 주식회사 | 보안 토큰에 대한 발급자 인증 방법 및 그 장치 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180037632A (ko) * | 2016-10-04 | 2018-04-13 | 주식회사 셀파소프트 | Was 모니터링 시스템과 db 서버 모니터링 시스템의 연계 서비스를 제공하기 위한 시스템 및 방법 |
KR101909625B1 (ko) | 2016-10-04 | 2018-12-19 | 주식회사 셀파소프트 | Was 모니터링 시스템과 db 서버 모니터링 시스템의 연계 서비스를 제공하기 위한 시스템 및 방법 |
KR20190135700A (ko) * | 2018-05-29 | 2019-12-09 | 주식회사 한글과컴퓨터 | 스프레드시트 전자 문서의 개체 보호 장치 및 이의 동작 방법 |
KR102119726B1 (ko) * | 2018-05-29 | 2020-06-05 | 주식회사 한글과컴퓨터 | 스프레드시트 전자 문서의 개체 보호 장치 및 이의 동작 방법 |
KR102012515B1 (ko) * | 2018-10-25 | 2019-10-21 | 주식회사 케이앤씨가람 | 난수암호화 id카드를 이용한 보안 제어 시스템 |
WO2020101087A1 (ko) * | 2018-11-16 | 2020-05-22 | (주) 더존비즈온 | 개인정보 처리를 위한 암호화 시스템 및 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sultan et al. | IOT security issues via blockchain: a review paper | |
Zafar et al. | A survey of cloud computing data integrity schemes: Design challenges, taxonomy and future trends | |
US9530011B2 (en) | Method and system for provision of cryptographic services | |
GB2583993A (en) | Immutable ledger with efficient and secure data destruction, system and method | |
US8175269B2 (en) | System and method for enterprise security including symmetric key protection | |
WO2020192406A1 (zh) | 数据存储、验证方法及装置 | |
JP2015504222A (ja) | データ保護方法及びシステム | |
CN110795126A (zh) | 一种固件安全升级系统 | |
US8667284B2 (en) | Detection of invalid escrow keys | |
KR20060100466A (ko) | 데이터 기록 세트의 무결성 보장 방법 | |
KR101817152B1 (ko) | 신뢰된 권한 정보 제공 방법, 신뢰된 권한 정보를 포함하는 사용자 크리덴셜 발급 방법 및 사용자 크리덴셜 획득 방법 | |
GB2520056A (en) | Digital data retention management | |
CN110765449A (zh) | 一种基于安全芯片的身份认证的方法、设备及介质 | |
KR101247564B1 (ko) | 데이터베이스 데이터의 위변조 방지 방법 | |
GB2598296A (en) | Digital storage and data transport system | |
KR20170089352A (ko) | 가상화 시스템에서 수행하는 무결성 검증 방법 | |
Liu et al. | Data integrity audit scheme based on quad Merkle tree and blockchain | |
CN110837634B (zh) | 基于硬件加密机的电子签章方法 | |
CN104484628A (zh) | 一种具有加密解密功能的多应用智能卡 | |
CN114942729A (zh) | 一种计算机系统的数据安全存储与读取方法 | |
CN101355428B (zh) | 采用增量检验来保护数据完整性的方法 | |
Adlam et al. | Applying Blockchain Technology to Security-Related Aspects of Electronic Healthcare Record Infrastructure | |
CN105631310A (zh) | 高效可信进程认证方案 | |
CN114553557A (zh) | 密钥调用方法、装置、计算机设备和存储介质 | |
WO2022199796A1 (en) | Method and computer-based system for key management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160126 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170308 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20180309 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20190320 Year of fee payment: 7 |