본 논문은 전자책 ePub 파일 저작권자의 저작권 보호 시스템을 설계한다. 전자책 제작 Sigil 프로그램 환경과 C언어 프로그램 환경을 이용하여 보호 시스템을 설계한다. 전자책 ePub에 대해서 서버/클라이언트 통신을 통한 인증 시스템 설계로 전자책 저작권 보호 시스템을 구축한다. 서버 내에 존재하는 인증 정보를 활용하여 클라이언트 사용자가 전자책의 사용가능 여부를 판별하게 된다. 서버 인증 정보로는 ID, 패스워드, IP 주소, 인증 정보의 제한된 시간, GUID(Globally Unique IDentifier)가 있다. 클라이언트에서 입력한 인증 정보를 서버 측으로 보낸 후 서버 시스템에 저장되어 있는 전자책의 인증 정보를 비교한 후 결과를 클라이언트로 다시 되돌려 준다. 전자책의 인증 정보가 정상적이라면 전자책은 열람 가능하다. 인증 정보가 비정상적인 경우로 조건에 만족하지 않는다면 사용자가 구동중인 전자책 프로그램을 종료함으로써 악의적인 의도를 가진 사용자가 전자책을 읽을 수 없도록 한다.
In recent times, the high-tech society has become the most important issue by IT technology and publication network. Today such flows have also been the case in the e-book field. Today's electronic publication is changing day by day. But there are some problems according to the prevalence of e-book. E-book is similar to p-book(paper-book). There is a limit to have perfect feeling of a texture of p-book. In order to purchase an e-book, people use online. People having malicious intent could copy and distribute it illegally. It leads to cyber abuses. This paper aims at the copyright protection of e-book ePub writers. The proposed e-book copyright protection system is designed using e-book production Sigil environment and C program environment. This system uses client-server communication through e-book ePub as authentication information . It discerns whether to permit or not for a client to read the e-book using authentication information. Authentication information includes ID, password, IP address, limited time of authentication information, GUID(Globally Unique Identifier). If authentication information about e-book meets requirements, people can use it. But if not, it blocks people's approach by quitting program.
최근 정보 통신 기술의 발달과 더불어 전자책 ePub 사용자가 지속적으로 증가되고 있는 추세이다. 본 논문에서 다루고자 하는 전자책 저작권 보호 기술에 대한 관심도가 높지만, 실제 기술을 접목하여 사용하는 환경으로 연결이 되지 못하고 있는 실정이다.
한국전자출판협회에 따르면 국내 전자책 시장 규모는 2010년 1975억원에서 2012년 3250억원, 2013년에는 5838억원, 2014년에는 7000억원 규모로 최근 눈에 띄게 성장하고 있다 [1-3]. 전 세계로 퍼져나가고 있는 책의 전자화가 급속도로 진행이 되고 있다. 특히, 최근들어 전자책의 보급이 증가하고 있고, 전자책 콘텐츠의 다변화로 인해 그 어느 때보다 국내 전자책 시장의 활성화에 대한 업계의 기대가 커지고 있다.
정부 발표에 따르면, 정부는 2014년까지 국고 600억원을 투입하여 전자책 시장 규모를 7,000억 원으로 확대할 계획을 가지고 있다. 국내 전자출판 시장은 그 동안 유동업체를 중심으로 한 민간 중심의 성장을 지속했다. 하지만 향후 정부의 정책적 지원과 함께 성장이 가속화될 것으로 예상된다. 전자책 시장이 활성화되고 있는 배경으로는 전자책 단말기의 보급 확대, 가독성 높은 디스플레이 개발, 무선 네트워크 서비스의 확대, 전자책이 갖는 장점, 전자책 시장 선점을 위한 업체 간 경쟁 등 여러 요인이 복합적으로 작용하고 있다[4-7]. 이로 인한 전자책 시장의 활성화에 대한 높은 기대와 관심도 커지고 있다. 하지만 전자책의 관심도가 커지고 변화에 따른 기술적인 측면의 문제점도 있다. 전자책의 포맷 표준화와 저작권 보호를 위한 무단 복제 및 배포 방지 기술의 미흡함이 선결되어야 한다.
본 논문은 전자책 보호 시스템 설계를 위한 전자책 제작 Sigil 환경과 C 프로그램 환경을 이용한다. 전자책 ePub과 서버 시스템, 클라이언트 통신을 통해 인증 정보를 사용한 전자책 저작권 보호 시스템을 설계한다. 서버와 클라이언트 통신을 통해 전자책의 인증 정보를 이용하여 전자책 사용 권한 유무를 판별할 수 있도록 한다. 전자책 인증 정보를 관리하는 서버 시스템으로부터 전자책 사용자에 대한 인증이 정상적으로 수행되게 되면 사용자는 전자책을 열람할 수 있다[8]. 전자책 인증 정보를 관리하는 서버 시스템으로부터 전자책 인증이 되지 않을 경우에 사용자는 전자책을 열람할 수 없게 된다. 본 논문의 구성은 2장에서 전자책 ePub 저작권 보호 구조, 3장 전자책 ePub 저작권 보호 시스템 실험, 4장 결론의 순으로 설명한다.
본 논문에서는 전자책 ePub 저작권 보호 시스템을 설계한다. 본 논문에서 제안하는 전자책 보호 저작권 시스템 구조에서 전자책 ePub의 저작권 보호를 하기 위 해서는 서버 시스템 내의 인증 정보와 클라이언트 전송데이터 간의 통신을 통해 사용자의 전자책 사용 유무를 판단하게 된다. 서버 시스템으로 정상적인 인증을 거치지 않은 경우에 사용자는 전자책을 오픈할 수 없도록 한다. 다음 그림 1은 전자책 저작권 보호 시스템 구조도를 나타낸다.
본 논문에서 제안하는 전자책 ePub 저작권 보호를 위해서는 서버 시스템과 클라이언트 시스템이 가지고 있는 인증 정보를 이용하여 사용 여부를 제어하도록 한다. 전자책과 관련한 인증 정보는 서버 시스템에 저장한다. 클라이언트가 전자책 사용을 위한 인증 정보를 입력하면 서버 시스템과 통신을 통해서 사용 가능한지를 비교하게 된다.
서버 시스템에서 비교된 인증 값이 일치로 판별이 되게 되면 클라이언트 내에 전자책을 open할 수 있도록 한다. 서버 시스템 내에 사용자 인증 정보로 관리하는 데이터는 표 1과 같다.
서버 시스템내의 인증 정보 리스트
서버 시스템과 클라이언트 프로그램 간에 통신을 하기 위해서는 IP 주소와 포트 번호를 알아야 한다. IP 주소는 현재 서버의 IP로 지정하고, 클라이언트 측에서는 현재 IP로 접속을 해야 한다. 그림 2는 서버 시스템과 클라이언트 프로그램 간의 통신 상태를 나타낸다.
그림 3은 서버 시스템과 클라이언트 프로그램간의 통신 구조를 나타낸다. 소켓 생성 함수 socket, 닫기 함수 closesocket에서 socket함수는 사용자가 요청한 프로토콜을 사용해 통신할 수 있도록 한다. 내부적으로 리소스를 할당하고, 접근할 수 있는 일종의 핸들 값을 리턴한다. 이 값을 소켓 디스크립터(Socket Desoriptor)라 고 한다. 소켓 디스크립터는 각종 소켓 함수를 호출할 때 인자로 사용한다. 소켓 닫기 함수를 이용하여 소켓을 사용한 통신이 끝나면 리소스를 반환하는데 사용한다.
클라이언트 프로그램이 실행되면서 클라이언트 내에 전자책 뷰어를 실행했을 경우 위에서 설명한 인증절차를 거치게 된다. 이때 클라이언트 프로그램을 통해서 사용자는 ID와 패스워드를 입력하게 되고, 입력된 ID, 패스워드 값은 서버 시스템으로 전송되게 된다. 그림 4는 ID 와 패스워드, 그리고 GUID를 전송하는 과정을 나타낸다. 클라이언트 프로그램으로 전송 받은 값은 서버 시스템에서 체크할 수 있도록 되어 있다.
그림 5는 GUID 생성 및 변환 과정을 보여준다. 연산을 통해 GUID 키 값을 총 4개의 값으로 분할 후 변환한다. 최종적으로 변환된 키 값을 저장하여 이 키 값을 GUID 인증 정보로 사용하기 위하여 서버 시스템에 저장한다. GUID 인증 정보를 서버 시스템에 저장한 후 이 정보를 이용하여 서버 시스템과 클라이언트 프로그램 간에 통신을 통해 전자책 인증 절차를 거치게 된다. 전자책 인증 성공 시 사용자는 전자책을 읽을 수 있게 된다.
그림 6은 서버 시스템에서 인증 정보를 이용한 인증과정에 대한 프로그램이다. 서버에 저장된 인증 정보와 클라이언트 프로그램에서 보내온 인증 정보를 상호 비교하게 된다.
인증 정보가 일치할 경우 서버 시스템은 일치한다는 것을 클라이언트 프로그램에 알려주게 된다. 클라이언트 프로그램에서는 일치한다는 메시지를 받게 되면 전자책 파일 열기 과정을 수행하게 된다. 사용자 ID 인증 불일치로 인증이 실패할 경우는 서버 시스템에서 ‘ID_error’ 메시지를 클라이언트 프로그램에 전송하게 된다. ‘ID_error’ 메시지를 받은 클라이언트 프로그램은 전자책 열기를 더 이상 실행할 수 없게 된다.
서버 시스템에서 인증하는 과정에서 패스워드가 불일치할 경우, ‘Password_error’ 메시지를 클라이언트 프로그램으로 전송하게 된다. ‘Password_error’ 메시지를 받은 클라이언트 프로그램은 전자책 열기 과정을 더 이상 진행할 수 없게 된다. 서버 시스템에서 IP 주소 인증에 실패한 경우, ‘error_IP’ 메시지를 클라이언트 프로그램에 전송하게 된다. ‘error_IP’ 메시지를 받은 클라이언트 프로그램은 전자책 열기 과정을 더 이상 진행할 수 없게 된다.
클라이언트 프로그램은 그림 7과 같은 순서로 함수를 수행한다. socket 함수는 소켓을 생성하고 사용할 프로토콜을 결정한다. connect 함수는 서버 시스템에 연결하고 원격 IP 주소와 원격 포트 번호, 지역 IP 주소와 지역 포트 번호를 결정한다. send, recv 등의 데이터 전송 함수로 서버 시스템과 데이터 통신을 수행한 후 closesocket 함수를 이용하여 소켓을 닫는다. bind 함수를 호출하지 않은 상태에서 connect 함수를 호출하면, 운영체제가 자동으로 지역 IP 주소와 지역 포트 번호를 할당하게 된다. recvn 함수는 recv 함수의 리턴 값을 저장하고, 포인터 변수 ptr은 프로그램 버퍼의 시작 주소, 데이터를 읽을 때 마다 ptr 값은 증가, left 변수는 아직 읽지 않은 데이터의 크기이다. 데이터 값을 읽게 되면 left 값은 감소하게 된다.
그림 9는 GUID 정보 읽는 과정을 나타낸다. GUID 키 값이 서버에 존재하는지를 확인한다. 만약 처음으로 전자책을 실행하여 GUID 정보가 없을 경우, 서버 시스템에서 GUID를 생성하여 클라이언트프로그램으로 전송을 하게 된다.
위에서 설명한 전자책 인증 과정의 전체적인 과정은 그림 10과 같다.
아래 그림 11은 전자책 저작권 보호 시스템 설계한 것에 대한 실험을 수행하는 화면이다.
그림 11에서 ‘운수좋은날’ 이라는 폴더 안에는 전자책 ‘운수좋은날.abcd’, ‘운수좋은날.exe’ 파일이 있다. ‘운수좋은날.abcd’ 파일은 서버 시스템과 클라이언트 프로그램 간에 아직 통신이 이루어지지 않은 상태의 상태에서의 전자책이다. 이 전자책은 일반 뷰어로는 읽을 수 없다. ‘운수좋은날.exe’ 파일은 실행 파일로 서버 시스템과 통신할 수 있는 기능을 갖고 있다. 사용자가 이용하는 PC 내에 서버 시스템으로부터 받게되는 GUID 값은 Information 폴더에 저장하게 된다. 클라이언트 프로그램의 최초 실행 시 GUID 인증 정보가 없기 때문에 서버 시스템에서는 GUID 생성하게 된다. 서버 시스템에서 생성된 GUID 정보는 클라이언트 측에 전송이 되게 된다. 전자책을 사용하는 중에 GUID를 분실하는 경우에 서버 시스템을 통해서 재생성 가능하도록 되어 있다.
클라이언트 프로그램을 최초로 실행하게 돼서버 시스템은 자동으로 GUID 값을 할당하게 된다. 이렇게 할당된 GUID 값은 서버 시스템과 클라이언트 시스템에 저장되게 된다. 전자책 사용 권한 여부를 체크하는 서버 시스템은 중단없이 구동상태를 유지하고 있다. 그리고 그림 14에서 보듯 전자책은 확장자가 ‘*.abcd’로 되어 있어서 일반 전자책 뷰어로는 읽을 수가 없다. 하지만 본 논문에서 설계한 클라이언트 프로그램을 실행하게 되면 이 포캣 파일을 자동으로 ePub 형태로 변환할 수 있도록 되어 있다.
그림 14에서 보는바와 같이 실험을 위해서 사용자 ID는 ‘111’, 패스워드는 ‘222’, IP 주소는 ‘127.0.0.1’로 사용하였다. IP 주소는 클라이언트 프로그램이 구동중인 PC의 IP 주소이다. 현재 사용중인 PC가 아닌 다른 PC의 IP로 접속하여 전자책을 사용하고자 할 경우 서버 시스템에 클라이언트 해당 IP 주소를 등록하는 절차가 필요하다. 그렇지 않을 경우 전자책을 사용할 수 없게 된다.
그림 15는 클라이언트 프로그램 실행 화면이다. 서버 시스템이 구동중이 상태에서 클라이언트 프로그램을 실행하게 되면 확장자가 .abcd인 파일을 찾게된다. 확장자가 ‘*.abcd’ 인 파일을 검색하게 되면 ‘*abcd’ 파일을 ‘*.epub’ 포맷으로 변환하게 된다. 이 과정이 끝나게 되면 서버 시스템에 저장된 인증 정보 확인을 받는절차를 거치게 된다. 전자책 사용자 인증을 받기 위해서 사용자 ID, 패스워드, IP 주소와 비교하여 서버 시스템에 저장된 값과 클라이언트에서 사용자가 입력한 인증 정보가 동일하다면 전자책을 읽을 수 있도록 하고, 인증정보가 불일치할 경우는 전자책 사용을 더 이상 할 수 없도록 한다.
전자책을 열람하기 위해 클라이언트 프로그램을 실행하게 되면 암호화된 전자책이 일반 뷰어로 확인할 수 있는 ePub 포맷의 전자책으로 변환이 된다. 전자책을 읽기 위해서 파일 열기를 수행하면 그림 16과 같이 사용자 ID와 패스워드를 묻는 메시지가 나타난다. 사용자 ID, 패스워드를 입력하면 이 값은 서버 시스템으로 전 송되게 된다. 서버 시스템에서는 클라이언트로부터 받은 값을 서버 시스템에 저장된 인증 정보와 비교를 하게 된다. 인증 정보를 비교하여 허가된 사용자인 경우 클라이언트에 허가권을 전송하여 전자책을 사용할 수 있도록 허가하게 된다. 사용자가 사용하던 전자책을 종료하기 위해서는 ‘q’ 혹은 ‘Q’를 입력하게 되면 전자책이 종료되고 클라이언트 프로그램이 종료된 후 다시 전자책은 암호화 상태로 되돌아간다.
전자책 사용 인증 절차를 마친 후 전자책 사용에 대한 인증이 성공적으로 이루어지면 이때부터 전자책을 읽을 수 있게 된다.
그림 19는 전자책과 클라이언트 프로그램이 종료되면 다시 암호화 상태인 ‘운수좋은날.abcd’로 자동저장이 되게 된다.
이렇게 암호화시켜둠으로써 사용자가 일반 전자책 뷰어로 읽을 수 없도록 하기 위함이다.
전자책 ePub은 전세계 많은 사람들이 사용하고 있다. 하지만 그에 따른 전자책 저작권 보호 문제는 심각한 수준으로 침해가 되고 있는 실정이다. 웹브라우저나 전자책 뷰어 자체는 저작권자의 콘텐츠 복제나 전자책 이용을 제어하는 디지털 저작권 관리 기능을 갖고 있지 못한 실정이다. 기존의 전자책 뷰어는 단순히 개발된 전자책 ePub이나 PDF 파일, Flash, App 확장자 파일을 열람하는 기능만 가지고 있다. 또한 DRM 기술은 디지털 콘텐츠나 하드웨어의 사용을 제어하고, 저작권자가 의도한 용도로만 사용할 수 있게 하는 기술이다.
반면에 본 논문에서 제안하는 기술은 기존의 전자책을 변형시키지 않고, 서버 시스템과 클라이언트 프로그램 간에 통신을 통해 인증 정보 공유를 통해서 사용 가능 여부에 대한 인증을 받아서 전자책을 열람할 수 있도록 한다. 특정 컴퓨터의 IP 주소에서만 전자책 사용을 제한하기 때문에 다른 PC에서 사용을 원할 경우 서버 시스템에 요청하여 IP주소를 추가로 할당받아야 한다. 그리고 서버 시스템으로부터 전자책 사용 인증이 되면, 클라이언트 내에 있는 암호화 된 전자책이 복호화가 되어서 원래의 ePub 전자책 포맷으로 변환된다. 인증을 받을 때 사용하는 정보는 사용자 ID, 패스워드, GUID 등을 이용한다. 서버 시스템으로부터 사용 인증이 되면 전자책을 계속 열람이 가능하고, 인증이 불일치하거나 제한 시간 내에 인증 정보를 입력하지 못할 시 전자책을 열람할 수 없게 된다. 이와 같이 인증 정보를 이용하여 전자책을 제어함으로써 불법적인 방법으로 전자책을 소지하거나, 유포할 수 없도록 저작권을 보호하고 있다.
본 논문에서 제안한 전자책 보호 시스템 설계 내용을 실제 구현하여 실험을 수행하였다. 서버 시스템과 클라이언트 시스템을 구축하여 정상 동작 여부를 실험하였다. 실험 결과 정상적으로 동작이 잘 이루어지는 것을 확인하였다.