상기 목적을 달성하기 위한 본 발명의 관점에 따른 그룹 내 문서에 대한 유출 방지 및 접근 제어 시스템은, 그룹 내 문서의 보안 시스템에 있어서, 사용자 인증서를 저장 관리하고, 사용자의 등록 요청에 응답하여 개인 키 생성 관리를 수행하며, 문서의 열람, 생성, 수정 및 전환될 때 클라이언트와의 시간 동기화를 지원하는 문서 보안서버; 상기 사용자 인증서의 개인 인증정보(DN : Distinguish Name)를 토대로 상기 문서 보안서버의 사용권한 여부를 판단하고, 상기 사용권한에 기초하여 동기화된 시간정보 및 상기 개인 키를 수신하여 상기 문서에 대한 암호화 또는 복호화를 수행하는 클라이언트 단말; 및 상기 클라이언트 단말 및 문서 보안서버 간 안정적인 통신 기반을 유지하기 위한 인터넷 네트워크 터널로 구성되는 것을 특징으로 한다.
본 발명의 바람직한 실시 예에 따르면 상기 문서 보안서버는, 상기 클라이언트 단말에서 보안 요청된 문서의 열람, 생성, 수정 및 전환될 때 시간 동기화를 지원하는 시간 동기 모듈; 상기 사용자 인증서의 갱신시 새로운 구조체를 생성하며, 사용자 등록, 사용자 인증서의 삭제, 사용자의 서버 사용시간 및 기타 환경 정보 같은 사용자의 로그를 관리하기 위한 사용자 관리부; 사용자의 등록시나 상기 사용자 인증서가 갱신될 경우 상기 개인 키의 생성과 관리를 수행하기 위한 키 관리부; 상기 사용자 인증서 및 사용자 인증서의 개인 인증 정보 등의 사용자 정보, 개인 키 및 개인 키에 대한 만료일 및 생성일 등의 개인 키 정보를 Linked-List 형태로 암호화하여 저장 관리하는 데이터베이스; 및 상기 데이터베이스로 기 저장된 사용자 정보 및 개인 키 정보를 클라이언트 환경에 따라 액세스 승인 여부를 결정하고, 해당 정보에 대한 복호화를 수행하기 위한 메타데이터 제어부로 이루어지는 것을 특징으로 한다.
또한 상기 클라이언트 단말은, 사용자 인증서로 포함되는 개인 인증정보와 환경 정보의 처리를 담당하는 사용자 속성 처리모듈; 사용자의 로그인/아웃을 담당하며, 개인 인증 정보를 토대로 상기 문서 보안서버에 유효한 사용자인지를 판단하고, 판단결과에 따라 상기 문서 보안서버와의 세션 관계를 유지하고 사용자의 로그를 저장 관리하는 사용자 로그 관리모듈; 상기 사용자 인증서가 저장된 저장매체로부터 사용자의 개인 인증정보를 추출하고, 사용자 인증서의 운용관리를 수행하기 위한 인증서 관리부; 상기 클라이언트 단말로 탑재되는 워드 프로세서나 사무용 프로그램을 통해 임의 문서를 편집하기 위한 문서화 소프트웨어(Documentation Software); 및 상기 사용자 속성 처리모듈과 사용자 로그 관리모듈에서 제공되는 정보 및 상기 동기화된 시간 정보를 토대로 상기 문서 보안서버로부터 개인 키를 수신하고, 상기 개인 키를 토대로 상기 문서화 소프트웨어에서 작성된 문서 파일을 암호화 및 복호화를 수행하기 위한 문서 보안 제어부로 구성되는 것을 특징으로 한다.
이하, 본 발명의 바람직한 실시 예를 첨부된 예시도면에 의거 상세히 설명하면 다음과 같다.
먼저 본 발명에서는 정부 기관이나 기업 등에서 생성되는 내부 정보가 외부로 무단 유출되었을 때, 그 피해를 없애거나 위험성을 최소화하기 위한 것이다. 이를 위해, 허가되지 않은 물리적 또는 논리적인 위치에서의 접근을 포함하여, 허가되지 않은 사용자의 접근을 방지한다. 또한, 문서 작성 프로그램 자체적으로 제공하는 보안 기능을 이용하여, 사용자가 인지하지 못하는 상황에서 보안 요소가 첨부된 데이터를 생성, 수정 및 접근을 제어한다.
도 1은 본 발명에 따른 문서 보안 시스템을 나타낸 구성도이다.
도시된 바와 같이, 사용자 인증서를 저장 관리하고, 사용자의 등록 요청에 응답하여 개인 키 생성 관리를 수행하며, 문서의 열람, 생성, 수정 및 전환될 때 클라이언트와의 시간 동기화를 지원하는 문서 보안서버(101)와, 상기 사용자 인증서의 개인 인증정보(DN : Distinguish Name)를 토대로 상기 문서 보안서버(101)의 사용권한 여부를 판단하고, 상기 사용권한에 기초하여 동기화된 시간정보 및 상기 개인 키를 수신하여 상기 문서에 대한 암호화 또는 복호화를 수행하는 클라이언트 단말(103)과, 상기 클라이언트 단말(103) 및 문서 보안서버(101) 간 안정적인 통신 기반을 유지하기 위한 인터넷 네트워크 터널(105)로 구성된다.
바람직하게, 상기 인터넷 네트워크 터널(105)은 VPN SSL 인터넷 터널을 이용할 수 있다. 상기 SSL VPN은 인터넷 접속이 가능한 환경이라면 장소에 구애받지 않고 VPN 접속을 가능하게 하기 위한 솔루션이다. 이는 이동성을 제공함으로써 기업의 생산성과 업무 효율성을 향상시켜, 기존 인터넷 프로토콜(Internet protocol)이 보안면에서 기밀성을 유지하지 못한다는 단점을 극복하기 위해 개발된 SSL 기반 프로토콜이다.
도 2는 전술된 문서 보안서버(101)의 주요 기능을 설명하기 위한 구성도이다. 도시된 바와 같이, 상기 클라이언트 단말(103)에서 보안 요청된 문서의 열람, 생성, 수정 및 전환될 때 시간 동기화를 지원하는 시간 동기 모듈(207), 상기 사용자 인증서의 갱신시 새로운 구조체를 생성하며, 사용자 등록, 사용자 인증서의 삭제, 사용자의 서버 사용시간 및 기타 환경 정보 같은 사용자의 로그를 관리하기 위한 사용자 관리부(203), 사용자의 등록시나 상기 사용자 인증서가 갱신될 경우 상기 개인 키의 생성과 관리를 수행하기 위한 키 관리부(205), 상기 사용자 인증서 및 사용자 인증서의 개인 인증 정보 등의 사용자 정보, 개인 키 및 개인 키에 대한 만료일 및 생성일 등의 개인 키 정보를 Linked-List 형태로 암호화하여 저장 관리하는 데이터베이스(213), 상기 데이터베이스(213)로 기 저장된 사용자 정보 및 개 인 키 정보를 클라이언트 환경에 따라 액세스 승인 여부를 결정하고, 해당 정보에 대한 복호화를 수행하기 위한 메타데이터 제어부(201)로 구성된다.
상기 메타데이터 제어부(201)는 시간 동기 모듈(207)로 시간 정보를 제공하기 위한 타이머(211)와 연동하며, 사용자 등록 신청에 대응하여 상기 문서 보안서버(101)의 이용 승인 여부를 관리자로부터 결정된 후, 그 결과를 상기 메타데이터 제어부(201)로 통지하기 위한 관리자 모듈(209)과 접속된다.
상기 사용자 관리부(203)는 사용자 인증서에 대한 삭제, 갱신을 포함하여 개인 인증정보에 대한 등록, 수정 등을 수행하는 사용자 등록/삭제 모듈(205)과, 사용자의 로그 정보를 관리하고, 상기 클라이언트 단말(103)과의 세션을 유지하기 위한 사용자 로그 관리모듈(217)로 구성된다. 한편, 상기 키 관리부(205)는 사용자 개인 인증정보 및 기타 환경 정보와 관계없이 특정 길이의 랜덤 문자열로 개인 키 정보를 생성하는 키 생성모듈(219)과, 상기 개인 키에 대한 생성 주기를 관리하기 위한 키 갱신 및 주기관리 모듈(221)로 구성된다.
도 3은 상기 문서 보안서버(101)에서 사용자 등록을 처리하기 위한 절차를 도시하고 있다. 먼저, 클라이언트 단말(103)은 SSL VPN 인터넷 터널(105)을 통해 상기 문서 보안서버(101)와 접속한다. 클라이언트 단말(103)은 S301 단계에서 문서 보안서버(101)와의 접속을 위한 인증서 로그인을 시도한다. 상기 메타데이터 제어부(201)는 데이터베이스(213)로 기 저장된 사용자 인증서를 추출한다.
S303 단계에서 상기 메타데이터 제어부(201)는 사용자 인증서에 대한 만료일 경과 여부를 판단한다. 상기 S303 단계에서 판단한 결과, 사용자 인증서가 만료되 지 않았을 경우 즉, 유효한 사용자 인증서로 확인될 경우, S305 단계로 진입한다. 상기 사용자 로그 관리모듈(217)은 사용자 인증서에 대한 로그인 상태를 검출하고, 그 결과를 상기 메타데이터 제어부(201)를 통해 상기 데이터베이스(213)로 저장 관리 요청한다. 또한 사용자 로그 관리모듈(217)은 사용자 인증서를 이용한 로그인 상태가 정상임을 판단할 경우, S307 단계로 진입하여 상기 메타데이터 제어부(201)로 사용자 등록을 신청한다. 반면, S305 단계에서 판단한 결과 사용자 인증서에 대한 로그 인이 성공하지 못했을 경우 S321 단계로 진입하여 에러 메시지를 제공한다.
S307 단계에서 사용자 로그 관리모듈(217)에 의한 사용자 등록 신청은 메타데이터 제어부(201)로 수용되며, 상기 메타데이터 제어부(201)는 관리자 모듈(209)로부터 최종 승인 여부를 기다린다. 즉, S309 단계에서 관리자는 사용자 등록에 대한 승인을 결정하며, 관리자에 의한 사용자 등록 승인 시 상기 메타데이터 제어부(201)는 S311 단계로 진입하여 상기 사용자 등록/삭제 모듈(215)로 사용자 등록을 지시한다.
상기 사용자 등록/삭제 모듈(215)은 사용자 등록을 위해, 사용자 등록정보를 메타데이터 제어부(201)로 제공한다. 메타데이터 제어부(201)는 사용자 등록정보를 암호화하여 상기 데이터베이스(213)로 저장한다. 이후, 메타데이터 제어부(201)는 키 관리부(205)로 개인 키 정보를 생성하도록 지시하며, 상기 개인 키 정보는 클라이언트 단말(103)로 제공된다.
한편 전술된 S303 단계에서 상기 사용자 인증서 만료일이 경과할 경우, S315 단계로 진입하여 문서 보안서버(101)는 해당 클라이언트 단말(103)로 인증서 재발급을 위한 안내를 수행한다. S317 단계에서 클라이언트는 안내에 따라 인증서 재발급 여부를 판단하며, 인증서를 재발급하지 않을 경우 본 과정을 종료한다. 반면, 클라이언트가 인증서를 재발급하고자 할 경우 S319 단계로 진입하여 인증서 재발급을 수행한다.
본 발명에서 만료일이 지난 개인 인증정보는 전체 개인 키 갱신시 갱신 대상서 제외되지만, 이전에 저장된 문서의 열람을 위해 정보를 삭제하지는 않는다. 이는 상기 키 관리부(205)의 키 갱신 및 주기 관리모듈(221)을 통해 개인 키에 대한 주기 관리를 수행함에 있어, 개인 키에 대한 생성일, 만료일 등을 저장 관리한다.
즉, 개인 인증정보 각각에 연결된 개인 키 정보는 키의 생성일과 함께 저장되며, 이 정보는 문서 생성 당시의 키 정보를 찾는데 사용된다. 키의 갱신시에는 마지막 키 구조체 뒤에 생성 날짜와 함께 새로 키를 생성하여 저장한다. 이때, 새로 생성된 개인 키는 사용자 개인 인증 정보 및 기타 환경 정보와 관계없이 특정 길이의 랜덤 문자열로 생성되며, 이 개인 키 정보는 사용자가 절대 알 수 없는 상태이다.
도 4는 본 발명에 따른 클라이언트 단말(103)의 주요 기능을 설명하기 위한 구성도이다.
사용자 인증서로 포함되는 개인 인증정보와 환경 정보의 처리를 담당하는 사용자 속성 처리모듈(407), 사용자의 로그인/아웃을 담당하며, 개인 인증 정보를 토 대로 상기 문서 보안서버(101)에 유효한 사용자인지를 판단하고, 판단결과에 따라 상기 문서 보안서버(101)와의 세션 관계를 유지하고 사용자의 로그를 저장 관리하는 사용자 로그 관리모듈(409), 상기 사용자 인증서가 저장된 저장매체로부터 사용자의 개인 인증정보를 추출하고, 사용자 인증서의 운용관리를 수행하기 위한 인증서 관리부(405), 상기 클라이언트 단말(103)로 탑재되는 워드 프로세서나 사무용 프로그램을 통해 임의 문서를 편집하기 위한 문서화 소프트웨어(Documentation Software:403), 상기 사용자 속성 처리모듈(407)과 사용자 로그 관리모듈(406)에서 제공되는 정보 및 상기 동기화된 시간 정보를 토대로 상기 문서 보안서버(101)로부터 개인 키를 수신하고, 상기 개인 키를 토대로 상기 문서화 소프트웨어(403)에서 작성된 문서 파일을 암호화 및 복호화를 수행하기 위한 문서 보안 제어부(401)로 구성된다.
상기 인증서 관리부(405)에서 접속되는 저장매체는 컴퓨터 하드디스크, 이동식디스크, 스마트카드 등을 포함하며, 또한 상기 개인 키는 사용자 개인 정보와 열람 시에 문서 생성일, 저장, 수정, 편집 시에는 오늘 날자 정보를 이용하여 상기 문서 보안서버(101)의 데이터베이스(213)에서 찾을 수 있다. 만약 사용자가 문서에 특정 암호로 문서를 암호화하였을 경우, 상기 문서 보안서버(101)에서 제공되는 개인 키와 사용자가 입력한 특정 암호를 조합하여 새로운 키로 만들어 암호화 또는 복호화를 처리할 수 있다.
한편, 상기 인증서 관리부(405)는 사용자 인증서의 다른 경로 또는 다른 매체로의 백업 및 저장하기 위한 인증서 백업모듈(411), 신규 사용자 인증서를 발급 하기 위한 인증서 발급모듈(413), 구 사용자 인증서를 폐지하기 위한 인증서 폐지모듈(421), 상기 문서 보안서버(101)의 디렉토리로 저장된 인증서를 검색하기 위한 인증서 검색모듈(415), 상기 사용자 인증서에 대한 유효성 여부를 판단하기 위한 인증서 검증모듈(419), 상기 사용자 인증서로부터 개인 인증정보를 추출하기 위한 개인정보 추출모듈(417)로 구성된다.
도 5는 본 발명에 따른 문서 열람절차를 설명하기 위한 플로우챠트이다.
도시된 바와 같이, S501 단계에서 상기 클라이언트 단말(103)은 문서 보안을 위한 사용자 요구에 따라 문서화 소프트웨어(403)의 애플리케이션을 실행한다. 그리고, 사용자는 S503 단계로 진입하여 사용자 인증서에 대한 로그인을 수행한다. 인증서 로그인은 사용자의 개인 암호를 요구하며, 입력된 개인 암호를 토대로 인증서 로그인의 승인여부가 결정된다. 인증서 로그인이 실패할 경우, 상기 사용자 로그 관리모듈(409)은 S505 단계로 진입하여 에러 메시지를 제공한다.
반면, 인증서 로그인이 성공했을 경우 S507 단계로 진입하여 클라이언트 단말(103)의 사용자 로그 관리모듈(409)을 통해 상기 문서 보안서버(101)로 사용자 정보를 전송한다. 사용자 정보는 사용자 인증서로 포함된 개인 인증정보이며, 개인 인증정보는 상기 문서 보안 제어부(401) 및 VPN SSL 인터넷 터널을 통해 문서 보안서버(101)로 제공된다.
상기 문서 보안서버(101)의 메타데이터 제어부(201)는 클라이언트 단말(103)로부터 제공된 사용자 정보를 수신하며, 사용자 관리부(203)를 통해 현재 수신된 사용자 정보가 문서 보안서버(101)에 유효한 사용자인지를 판단한다. 이는 사용자 정보가 상기 사용자 등록/삭제 모듈(215)에 기 등록되어 있는지, 등록된 정보가 유효기간을 넘지 않았는지를 판단한다. 상기 사용자 정보가 유효한 정보일 경우, 상기 문서 보안서(101)는 클라이언트 단말(103)과의 세션 관계를 유지하고, 상기 사용자 로그 관리모듈(217)을 통해 사용자 로그를 저장 관리한다.
이후, 상기 문서 보안서버(101)는 S509 단계로 진입하여, 상기 시간 동기모듈(207)을 통해 클라이언트 단말(103)로 동기화된 시간정보를 제공한다. 상기 동기화된 시간정보는 S511 단계에서, 클라이언트 단말(103)의 문서 보안 제어부(401)는 SSL VPN 인터넷 터널을 통해 수신한다. 문서 보안 제어부(401)는 문서 보안서버(101)의 시간정보와 정확하게 동기시키며, 동기가 이루어지지 않았을 경우에는 상기 S505 단계로 진입하여 에러 메시지를 제공한다.
반면, 상기 S511 단계에서 상기 클라이언트 단말(103)이 문서 보안서버(101)와의 시간 동기가 이루어졌을 경우 S513 단계에서 문서 보안 제어부(401)는 개인정보 추출모듈(417)을 이용하여 해당 문서에 대한 최종 작성자 즉, 저작자에 대한 개인정보를 추출한다. 또한, 상기 문서 보안 제어부(401)는 S515 단계를 통해 해당 문서에 대한 최종 저장일을 추출한다. 그리고, 상기 문서의 최종 저작자 정보인 개인정보와 최종 수정일 정보를 상기 문서 보안서버(101)로 전달한다. 그리고, S517 단계에서 상기 클라이언트 단말(103)의 문서 보안 제어부(401)는 문서 보안서버(101)로 개인 키 정보를 요청한다.
문서 보안서버(101)는 키 관리부(205)의 키 생성모듈(219)을 기동한다. 상기 키 생성모듈(219)은 전술된 문서 최종 저작자에 대응하는 개인 인증정보 및 문서에 대한 최종 저장시간을 토대로 개인 키 정보를 생성한다. S519 단계에서 문서 보안서버(101)는 클라이언트 단말(103)로 개인 키 정보를 전송하며, 클라이언트 단말(103)은 개인 키에 대한 수신 여부를 확인한다. 개인 키가 수신되지 않았을 경우 S505 단계의 에러 메시지를 제공하며, 개인 키를 안전하게 수신하였을 경우, S521 단계로 진입한다.
상기 클라이언트 단말(103)의 문서 보안 제어부(401)는 현재의 문서가 개인 암호로 암호화된 문서인지를 판단한다. 판단결과, 현재의 문서가 개인 암호화된 문서일 경우, S527 단계로 진입하여 사용자는 개인 암호를 입력한다. 그리고, S529 단계에서 문서 보안서버(101)는 사용자 등록/삭제 모듈(215)을 이용하여 개인 암호에 대한 인증을 수행하며, 상기 키 생성모듈(219)을 통해 새로운 개인 키를 조합한다. 그리고, 상기 클라이언트 단말(103)의 문서 보안 제어부(401)는 S523 단계에서 해당 문서에 대한 복호화를 수행한다. S525 단계에서, 복호화된 문서는 상기 클라이언트 단말(103)의 디스플레이 패널을 통해 화면 출력이 이루어진다.
도 6은 문서에 대한 편집, 저장, 변형을 위한 암호화 절차를 도시하고 있다. 먼저, 도시된 S501 단계 내지 S511 단계는 도 5의 문서에 대한 복호화 절차와 동일하며, 이에 대한 중복 설명은 생략한다.
S601 단계에서 상기 문서 보안 제어부(401)는 개인정보 추출모듈(417)을 이용하여 해당 문서에 대한 현재 사용자 식별정보 즉, 문서 수신자에 대한 개인정보를 추출한다. 또한, 상기 문서 보안 제어부(401)는 S603 단계를 통해 현재 시간정 보를 인지한다. 현재 시간정보는 상기 문서 보안서버(101)에서 제공된 동기화된 시간에 준한다. 그리고, 상기 클라이언트 단말(103)의 문서 보안 제어부(401)는 문서의 사용자 개인정보를 포함하여, 현재 시각정보를 상기 문서 보안서버(101)로 전달한다. 이후, S605 단계에서 상기 클라이언트 단말(103)의 문서 보안 제어부(401)는 문서 보안서버(101)로 개인 키 정보를 요청한다.
상기 문서 보안서버(101)는 키 관리부(205)의 키 생성모듈(219)을 기동한다. 상기 키 생성모듈(219)은 전술된 사용자에 대응하는 개인 인증정보 및 현재 시각정보를 토대로 개인 키 정보를 생성한다. S607 단계에서 문서 보안서버(101)는 클라이언트 단말(103)로 개인 키 정보를 전송하며, 클라이언트 단말(103)은 개인 키에 대한 수신 여부를 확인한다. 개인 키가 수신되지 않았을 경우 S505 단계의 에러 메시지를 제공하며, 개인 키를 안전하게 수신하였을 경우, S609 단계로 진입한다.
상기 클라이언트 단말(103)의 문서 보안 제어부(401)는 현재의 문서를 개인 암호화할 것인지를 질의한다. 사용자가 개인 암호화를 하고자 할 경우 S611 단계로 진입하여 사용자는 개인 암호를 입력한다. 그리고, S613 단계에서 문서 보안서버(101)는 사용자 등록/삭제 모듈(215)을 이용하여 개인 암호에 대한 인증을 수행하며, 상기 키 생성모듈(219)을 통해 새로운 개인 키를 조합한다. 이후, 상기 클라이언트 단말(103)의 문서 보안 제어부(401)는 S615 단계에서 해당 문서에 대한 암호화를 수행한다. 개인 암호화는 개인 암호와 서버 키 정보를 이용한 새로운 2-layer 키를 생성을 통해 이루어진다. 그리고, 클라이언트 단말(103)은 S617 단계에서 암호화된 문서를 저장한다.