KR101638398B1 - 이미지 분할 및 병합 방법 및 상기 방법을 실행하기 위한 프로그램을 기록한 컴퓨터 판독가능 기록매체 - Google Patents
이미지 분할 및 병합 방법 및 상기 방법을 실행하기 위한 프로그램을 기록한 컴퓨터 판독가능 기록매체 Download PDFInfo
- Publication number
- KR101638398B1 KR101638398B1 KR1020150117205A KR20150117205A KR101638398B1 KR 101638398 B1 KR101638398 B1 KR 101638398B1 KR 1020150117205 A KR1020150117205 A KR 1020150117205A KR 20150117205 A KR20150117205 A KR 20150117205A KR 101638398 B1 KR101638398 B1 KR 101638398B1
- Authority
- KR
- South Korea
- Prior art keywords
- image
- divided
- authentication key
- user
- client terminal
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000003709 image segmentation Methods 0.000 title description 6
- 230000005540 biological transmission Effects 0.000 claims abstract description 5
- 238000004891 communication Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 6
- 230000002265 prevention Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000013497 data interchange Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000003702 image correction Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0021—Image watermarking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Editing Of Facsimile Originals (AREA)
Abstract
본 발명은 디지털 이미지 컨텐츠 보안을 위한 이미지 분할 및 병합 기술에 관한 것으로서, 웹서버의 임시 폴더에 저장된 원본 이미지의 분할 및 전송을 처리하는 웹서버; 상기 원본 이미지와 관련된 데이터를 저장하는 DB서버; 및 상기 원본 이미지로부터 분할된 이미지 파일을 보관하는 파일서버를 포함하고, 웹브라우저를 포함하는 클라이언트 단말기가 이미지 요청시 상기 웹브라우저에 상기 분할 이미지가 병합 표시되는 이미지 분할 및 병합 시스템 및 방법이 개시되어 있다.
Description
본 발명은 디지털 이미지 컨텐츠 보안을 위한 이미지 분할 및 이미지 병합 기술에 관한 것이다.
더욱 상세하게는 원본 이미지를 m×n개의 작은 직사각형 이미지로 분할하여 서버에 저장하고, 클라이언트가 이미지 요청시 1회용 인증키를 발급하여 클라이언트와 서버간 비동기식 통신으로 인증키를 주고받으며 워터마크가 삽입된 분할 이미지를 임의의 순서대로 전송하는 디지털 이미지 다중 보안 시스템에 관한 것이다.
최근 인터넷에서 다양한 유료 디지털 이미지 컨텐츠 서비스가 증가하고 있으나 웹브라우저 기능이 고도화됨에 따라 클릭 몇 번 만으로 누구나 손쉽게 원본 이미지에 접근하여 파일을 그대로 복사할 수 있을 뿐 아니라 원본 URL 노출로 외부 트래픽이 유발되는 등 다양한 공격에 쉽게 노출되어 있다.
현재, 인터넷으로 디지털 이미지 컨텐츠를 전송하면, 마우스 우클릭으로 이미지를 쉽게 복제하거나, 우클릭 기능을 무력화하더라도, 임시 인터넷 파일 폴더에 남아 있는 이미지 파일에 사용자가 손쉽게 접근할 수 있어, 저작권 있는 컨텐츠가 그대로 복제될 수 있는 보안상의 취약점이 존재한다.
기존 인터넷 서비스 업체들은 마우스 우클릭 방지, 드래그 방지, 토큰키 발급 등 다양한 자바스크립트 보안 및 인증 기술을 이용해 원본 파일로의 접근을 어렵게 하고 있으나, 웹브라우저에서 자바스크립트 동작을 일시 중단하는 기능을 실행하면 복잡한 자바스크립트 보안 기술도 한순간에 무용지물이 되고, 일단 웹브라우저에 이미지가 표시되기만 하면 임시 인터넷 폴더에 원본 이미지 파일이 저장되기 때문에 누구나 손쉽게 원본 파일에 접근할 수 있다는 문제가 있다.
따라서 자바스크립트 보안에 의존하지 않으면서 근본적으로 원본 이미지 파일의 유출을 막을 수 있는 여러 단계의 다중 보안 시스템이 필요한 상황이다.
본 발명은 디지털 이미지 컨텐츠의 불법 복제 방지를 통한 저작권 보호를 목적으로 한다.
본 발명은 이러한 종래 이미지 컨텐츠 서비스의 보안 취약성을 개선하기 위해 고안한 것으로, 웹브라우저에서의 원본 이미지 접근을 근본적으로 차단하기 위해, 원본 이미지를 타인이 알아볼 수 없는 복수의 작은 이미지 조각으로 분할하여 서버에 저장하고, 이용자의 요청시 분할된 이미지를 전송하여 원본 이미지 형태로 병합 표시함으로써 원천적으로 원본 이미지 파일에 접근할 수 없게 하였다. 또한 매 요청시마다 새로 발급되는 1회용 인증키를 발급하여 브라우저와 웹서버간 비동기 방식으로 통신하여 인증받게 함으로써 이미지 고유의 URL을 매번 다르게 하여, URL을 통한 이미지 접근을 원천 차단하였다. 또한 분할 이미지를 무작위 순서로 요청, 전송하도록 함으로써 웹브라우저 임시 폴더에 분할 이미지가 첫 번째 조각부터 마지막 조각까지 순차적으로 저장되는 것을 방지하여 매크로 등 프로그래밍 된 복제 시도에도 대응할 수 있게 하였다. 마지막으로, 1개 이상의 분할 이미지에 컨텐츠 정보와 이용자 정보 등이 담긴 암호문을 QR코드로 워터마크 삽입함으로써 화면 캡쳐 등에 의한 복제이미지 유통시 최초 유출자를 가려낼 수 있게 하였다.
상기와 같은 과제를 해결하기 위한 본 발명은 디지털 이미지 컨텐츠 보안을 위해 이미지를 분할 및 병합하는 방법을 포함하고 있다. 상기 방법은 웹서버의 임시 폴더에 저장된 원본 이미지의 분할 및 전송을 처리하는 웹서버가, 클라이언트 단말기가 이미지를 요청할 때,
상기 원본 이미지와 관련된 데이터를 저장하는 DB서버로부터 소정의 시간 주기로 이미지 분할을 실행할 이미지 데이터를 하나씩 읽고, 상기 원본 이미지의 가로, 세로 사이즈를 각각 m 및 n으로 나눈 나머지 픽셀을 잘라낸 수정된 이미지를 생성하고, 상기 수정된 이미지로부터 분할된 m×n개의 분할 이미지 파일을 파일서버에 저장하는 단계;
클라이언트 단말기의 웹브라우저 화면에, 수정된 이미지와 동일한 크기의 빈 이미지 영역을 표시하고, 그 내부를 가로 m개, 세로 n개의 직사각형 영역으로 나누는 단계;
상기 분할 이미지 파일을 상기 클라이언트 단말기에 랜덤 순서로 전송하는 단계; 및
상기 분할 이미지 파일을 요청 순서에 맞는 위치의 직사각형 영역에 여백 없이 표시하는 단계를 포함하고 있다.
본 발명의 다른 특징에 따라, 상기 웹서버는, 상기 클라이언트 단말기가 이미지를 요청할 때,
상기 클라이언트 단말기의 이미지 요청시마다 새로 발급되는 1회용 인증키를 발급하고;
이미지 파일명 + 타임스탬프 + 이용자 ID + 이용자 IP의 정보를 하나의 스트링값으로 묶은 다음 암호화한 1회용 인증키를 생성하여 HTML 문서에 포함시키고, 클라이언트 단말기의 이미지 요청시 상기 HTML 문서를 클라이언트 단말기에 전송하고;
상기 인증키의 위변조를 막기 위해 상기 인증키의 특정 위치에 1바이트 크기의 유효성 체크값을 심고;
상기 클라이언트 단말기의 웹브라우저에 빈 이미지 영역이 표시됨과 동시에 상기 클라이언트와 웹서버간 비동기 통신을 통해 웹서버에 인증키를 요청한다.
본 발명의 또 다른 특징에 따라, 상기 클라이언트와 웹서버간 비동기 통신은, 상기 웹서버가,
요청받은 인증키의 특정 위치에 있는 체크값을 체크하여 인증키의 유효성을 검증하고, 검증된 경우 이미지 파일명, 타임스탬프, 이용자 ID, 이용자 IP 정보를 읽는 단계;
상기 타임스탬프와 현재시간을 비교해 유효성을 체크하는 단계;
상기 이용자 ID 정보를 바탕으로 비회원, 회원 또는 회원 등급별로 선별적으로 응답하는 단계;
상기 이용자 IP 정보를 통해 이용자가 접속한 국가를 검출하여 특정 국가에서의 이미지 접근을 거부하는 단계;
상기 인증키를 통한 인증이 끝나면, 상기 이미지 파일명으로부터 분할된 이미지 파일명을 생성하는 단계;
상기 분할 이미지 각각에 대해 분할 이미지 파일명 + 타임스탬프 + 이용자 ID + 이용자 IP를 다시 암호화한 1회용 인증키를 생성하는 단계;
상기 인증키의 위변조를 막기 위해, 인증키의 특정 위치에 1바이트 크기의 유효성 체크값을 심는 단계;
각 분할 이미지 정보를 담은 인증키 m×n 개의 시작과 끝에 허수의 인증키를 한 개씩 생성하여 총 (m×n)+2개의 인증키를 생성하여 이미지 요청에 대한 응답값으로 클라이언트 단말기에 전송하는 단계;
1부터 m×n까지 정수를 랜덤 순서대로 나열하고, 임의로 설정된 순서에 대응하는 각 분할 이미지 영역의 이미지 URL에 순차적으로 분할이미지 URL를 지정하는 단계를 포함하고 있다.
본 발명의 또 다른 특징에 따라, 상기 분할 이미지 파일을 전송하는 단계는, 상기 웹서버가,
a) 요청받은 인증키의 체크값을 체크하여 인증키의 유효성을 검증하고, 올바른 인증키일 경우 분할 이미지 파일명 + 타임스탬프 + 이용자 ID + 이용자 IP 정보를 읽는 단계;
b) 인증키에 대한 인증이 끝나면, 상기 웹서버가 파일서버에 분할 이미지를 요청하고, 이미지 데이터를 가져오는 단계;
c) 특정 분할 이미지에, 원본 파일명 + 타임스탬프 + 이용자 ID + 이용자 IP 정보를 암호화한 QR코드 이미지를 병합하는 방식으로 워터마크를 삽입하는 단계;
d) 분할 이미지 데이터에 이미지 헤더값을 추가하여 이용자에게 전송하는 단계;
e) 이용자 웹브라우저에 분할 이미지를 지정된 영역에 표시하는 단계;
f) 상기 단계 a) ~ e)를 총 m×n회 반복하여 모든 분할 이미지를 웹브라우저에 표시하는 단계를 포함하고 있다.
본 발명의 또 다른 특징에 따라, 상기 원본 이미지와 관련된 데이터는 이미지 파일명, 파일 포맷, 업로드 시간, 이미지 분할 여부를 포함하고 있다.
본 발명의 또 다른 특징에 따라, 본 발명은 웹서버로 하여금 상기 방법을 실행하도록 하는 프로그램이 저장된 컴퓨터 판독가능 기록매체를 포함하고 있다.
상기 설명한 바와 같이 본 발명은, 원본 이미지를 타인이 알아볼 수 없는 복수의 이미지로 분할한 후 서버에 저장하고, 원본 이미지 요청시 1회용 인증키를 발급하여 비동기 통신 방식으로 인증 절차를 거친 후 워터마크가 삽입된 이미지 데이터를 전송하기 때문에 원본 이미지 파일이 그대로 유출되는 것을 막을 수 있을 뿐만 아니라, 프로그래밍된 복제 공격을 차단하고, 화면 캡쳐 등을 통한 복제물 무단 유출시 저작자의 저작권을 보호하고, 불법 복제물 유포로 인한 경제적 손실을 예방할 수 있다.
도 1은 본 발명의 하나의 실시예에 따른 디지털 이미지 컨텐츠 보안을 위한 이미지 분할 및 병합 시스템을 도시하는 도면이다.
도 2는 본 발명의 하나의 실시예에 따라 원본 이미지를 분할하는 과정을 도시한 도면이다.
도 3은 본 발명의 하나의 실시예에 따라 분할 이미지를 병합하는 과정을 도시한 도면이다.
도 2는 본 발명의 하나의 실시예에 따라 원본 이미지를 분할하는 과정을 도시한 도면이다.
도 3은 본 발명의 하나의 실시예에 따라 분할 이미지를 병합하는 과정을 도시한 도면이다.
본 발명의 디지털 이미지 컨텐츠 보안을 위한 이미지 분할 및 병합 시스템은 이미지 분할 및 전송을 처리하는 웹서버, 이미지 관련 데이터를 저장하는 DB서버, 분할된 이미지 파일을 보관하는 파일서버로 구성되어 있다.
1. 이미지 업로드 단계 (/upload)
이해를 쉽게 하기 위해 sample.jpg (사이즈 800px×600px) 파일을 가로 3조각, 세로 3조각으로 분할하고, 병합하는 것을 가정하여 설명한다.
a. 원본이미지 소유자 또는 저작권자가 웹서버에 접속해 파일을 업로드하면, 웹서버는 업로드된 디지털 문서 또는 이미지가 유효한 파일 포맷인지 검출한다. 파일 포맷은 PDF문서 또는 JPG이미지로 제한하였다.
b. 파일이 PDF 문서 파일이면(sample.pdf) 문서의 각 페이지를 JPG 이미지 포맷으로 변환한 후, 각각의 이미지(sample_1.jpg, sample_2.jpg, sample_3.jpg,...)를 웹서버의 임시 폴더(temp/sample.pdf/...)에 저장한다.
c. 파일이 JPG 이미지 파일이면(sample.jpg) 이미지 파일 그대로 웹서버의 임시 폴더(temp/sample.jpg/...)에 저장한다.
d. 저장된 이미지에 관한 데이터(이미지 파일명, 파일 포맷, 업로드 시간, 이미지 분할 여부 등)를 DB서버에 저장한다.
2. 웹서버에서 이미지를 분할하는 단계 (/divide)
e. 웹서버에서 매 10초마다 /divide를 자동으로 수행하도록 스레드(thread)를 실행한다.
f. 매 10초마다 /divide는 DB서버에서 이미지 분할을 수행할 이미지 데이터를 하나씩 읽어, 다음의 이미지 보정 및 이미지 분할을 수행한다.(예 sample.jpg)
g. 먼저, 웹서버의 임시 폴더에서 원본 이미지 파일(sample.jpg)을 읽어 이미지의 가로, 세로 사이즈를 픽셀 단위로 검출한다. 이미지를 가로 m개, 세로 n개의 동일한 직사각형 조각으로 정확히 분할하려면, 이미지의 가로 사이즈가 m으로 나누어 떨어지고, 세로 사이즈가 n으로 나누어 떨어져야 한다. 따라서 가로, 세로 사이즈를 m, n으로 나눈 나머지 만큼 가로, 세로 픽셀을 잘라낸다. 즉, 도 2에 도시된 바와 같이, 가로 사이즈가 m으로 나누어 떨어지도록 나머지 만큼 우측 픽셀을 잘라내고, 세로 사이즈가 n으로 나누어 떨어지도록 나머지 만큼 하단 픽셀을 잘라내어 원본 이미지 사이즈를 수정한다. 도 2에서는 우측과 하단 픽셀을 잘라내었지만, 좌측과 상단 픽셀을 잘라낼 수도 있다. sample.jpg의 경우, 이미지를 가로 3개 × 세로 3개 = 총 9개로 분할하고자 하면, 가로 800 = 3*266 + 2(나머지), 세로 600 = 3*200이므로, 원본 이미지의 가로를 2픽셀만큼 잘라내 원본 이미지 사이즈 800×600픽셀을 798×600픽셀로 수정한다.
h. 가로 사이즈(w)를 m으로 나눈 값을 w/m, 세로 사이즈(h)를 n으로 나눈 값을 h/n이라 하면, 분할된 이미지의 각 조각 사이즈는 w/m × h/n 픽셀이 된다. 원본 이미지의 좌측 상단 (0,0)부터 시작하여 w/m × h/n 크기의 직사각형으로 이미지를 순차적으로 자르고(Crop), 잘려진 m×n개의 이미지를 이미지명_m×n.jpg라는 파일명으로 파일서버에 저장한다.
예)
sample_1x1.jpg , sample_1x2.jpg , sample_1x3.jpg
sample_2x1.jpg , sample_2x2.jpg , sample_2x3.jpg
sample_3x1.jpg , sample_3x2.jpg , sample_3x3.jpg
파일서버에는 제한된 접근 권한을 설정하고, 웹서버에만 이미지를 전송할 수 있게 한다.
3. 이미지 요청 단계 (/view)
i. 이용자는 컴퓨터(PC 또는 스마트폰)로부터 웹서버에 접속하여 sample.jpg라는 이미지에 접근하기 위해 HTML 형태로 웹서버에 이미지를 요청한다. http://www.test.com/view?v=sample.jpg
j. 웹서버는 가로 m개, 세로 n개의 이미지 영역으로 구성된 HTML 문서를 생성한다. 각 이미지 영역의 <img> 태그는 이미지 URL (src 속성)이 지정되어 있지 않은 빈 이미지 태그이다.
k. 웹서버는 이미지 파일명(sample.jpg) + 타임스탬프(2015-01-01 12:00:00) + 이용자 ID(guest) + 이용자 IP(255.255.255.255) 등의 정보를 하나의 String값으로 묶은 후, AES(Advanced Encryption Standard) 128bit 대칭키 암호 알고리즘을 이용하여 암호화한 1회용 인증키를 생성하여, HTML문서에 포함한다. 이때, 암호문의 위변조를 막기 위해 암호문의 특정 위치에 1바이트 크기의 유효성 체크값을 심는다. (체크값은 암호문을 구성하는 36진수 각 자리를 10진수로 변환한 후 모두 더하고, 이를 다시 36으로 나눠 그 나머지에 해당하는 값을 36진수로 변환한 값이다.) 이를 통해 Brute force attack(무작위 대입 공격)으로부터 시스템을 효율적으로 방어하고, 암호문의 위조, 변조를 막을 수 있다.
l. 웹서버는 XMLHttpRequest를 이용한 비동기 자바스크립트 데이터 교환 방식(Ajax)으로 클라이언트와 웹서버가 통신하면서 인증키를 웹서버에 전송하고 분할 이미지 정보를 수신하고, 랜덤 순서대로 웹서버에 분할 이미지를 요청하는 자바스크립트 기능을 HTML문서에 포함한다. 이때, 랜덤 순서를 결정하는 함수는 웹서버에서 실행되게 할 수도 있고, 자바스크립트 기능에 포함시켜 이용자 웹브라우저에서 실행되게 할 수도 있다. 본 실시예에서는 자바스크립트 기능에 포함시키는 것으로 가정한다.
m. 웹서버는 이용자가 이미지 요청시(/view) j, k, l 기능이 포함된 HTML문서를 이용자에게 전송한다.
n. 이용자의 웹브라우저에는 가로 m개, 세로 n개의 빈 이미지 영역이 표시되며, 각 이미지 영역의 가로 사이즈는 width:(100/m)%, 세로 사이즈는 주어진 이미지의 가로, 세로 비율에 맞춰 자동 조절되므로 height:auto로 설정한다.
o. 이용자 웹브라우저에 빈 이미지 영역이 표시됨과 동시에 비동기 자바스크립트 통신을 통해 웹서버에 ‘/page?v=인증키’를 요청한다.
4. 클라이언트,
웹서버간
비동기 통신 단계 (/page)
p. 웹서버의 /page는 요청받은 인증키의 특정 위치에 있는 체크값을 체크하여 인증키의 유효성을 검증하고, 올바른 인증키일 경우 암호문을 비밀키로 풀어, 이미지 파일명(sample.jpg), 타임스탬프(2015-01-01 12:00:00), 이용자 ID(guest), 이용자 IP(255.255.255.255) 정보를 읽는다.
q. 타임스탬프와 현재시간을 비교해 유효성을 체크한다. 예를 들어 타임스탬프와 현재시간의 차이가 5초 이상이면 웹서버는 응답을 거부한다.
r. 이용자 ID 정보를 바탕으로 비회원, 회원 또는 회원 등급별로 선별적으로 응답할 수 있다.
s. 이용자 IP 주소를 통해 이용자가 접속한 국가를 검출하여 특정 국가에서의 이미지 접근을 거부할 수 있다.
t. 인증키를 통한 인증이 끝나면, 이미지 파일명으로부터 다음과 같이 분할된 이미지 파일명을 생성한다.
sample_1x1.jpg, sample_1x2.jpg, sample_1x3.jpg,
sample_2x1.jpg, sample_2x2.jpg, sample_2x3.jpg,
sample_3x1.jpg, sample_3x2.jpg, sample_3x3.jpg
u. 분할된 이미지 각각에 대해 분할이미지 파일명 + 타임스탬프 + 이용자 ID + 이용자 IP를 다시 AES 대칭키 암호 알고리즘으로 암호화한 1회용 인증키를 생성한다.
sample_1x1.jpg + 2015-01-01 12:00:00 + guest + 255.255.255.255
sample_1x2.jpg + 2015-01-01 12:00:00 + guest + 255.255.255.255
sample_1x3.jpg + 2015-01-01 12:00:00 + guest + 255.255.255.255
sample_2x1.jpg + 2015-01-01 12:00:00 + guest + 255.255.255.255
sample_2x2.jpg + 2015-01-01 12:00:00 + guest + 255.255.255.255
sample_2x3.jpg + 2015-01-01 12:00:00 + guest + 255.255.255.255
sample_3x1.jpg + 2015-01-01 12:00:00 + guest + 255.255.255.255
sample_3x2.jpg + 2015-01-01 12:00:00 + guest + 255.255.255.255
sample_3x3.jpg + 2015-01-01 12:00:00 + guest + 255.255.255.255
앞에서와 마찬가지로 암호문의 위변조를 막기 위해, 암호문의 특정 위치에 1바이트 크기의 유효성 체크값을 심는다.
v. 각 분할 이미지 정보를 담은 인증키 m×n개(3×3=9개)의 시작과 끝에 허수의 인증키를 한 개씩 생성하여 총 (m×n)+2개의 암호문을 JSON 타입의 데이터로 생성해 /page 요청에 대한 응답값으로 전송한다.(callback)
예)
"00f39ff19a28fc8f16648dcc2aa2f735c051531b2b70f714a45437c7bb",
"c547b85e1c6bfe3e5c965ac888408e5d587f4fd9c67853a0e003a42a7",
"b33b8e3b63a6ca74ecbad9f1df38a0d51f3fe616c1c1d58b0b4cf3ccb",
"00f39ff19a28fc8f16648dcc2aa2f735a25ebe960edab47cfddda80fcd",
"613de86a7e8b87d299ca35f46c05285213c64b960fe8cf4109a80fcd5",
"00f39ff19a28fc8f16648d012cf1444bc718d082d4c213f04109a80fcd5",
"39417e43b5552ca8fdcab4b87a3cab1afa2025033de8bc4109a80fcd5",
"ccd6ca0269b79a46b5943e5ec3a90946737d9fbaa4fce24109a80fcd5",
"b33b8e3b63a6cf7d4b73ee7ba4477d5690218bba9057d4109a80fcd5",
"b33b8e3b63a6ca74ecbad9f193043d0c3d9cf69db0a8ff4109a80fcd5",
"c547b85e1c6bfe3e5c965b3214220074531a11c8aa2064109a80fcd5"
w. 웹브라우저 자바스크립트는 첫 번째와 마지막 데이터를 제외한 JSON 데이터를 배열 변수에 저장한다.
x. 웹브라우저 자바스크립트는 임의의 순서대로 이미지를 요청하기 위해 1부터 m×n까지 정수를 랜덤 순서대로 나열하고, 임의로 설정된 순서에 대응하는 각 분할 이미지 영역의 이미지 URL (src 속성)에 순차적으로 분할이미지 URL인 "/piece?v=암호문" 을 지정한다. 웹브라우저는 각 이미지의 URL (src 속성)이 지정됨과 동시에 웹서버에 이미지 요청을 하게 된다.
5. 분할 이미지 전송 단계 (/piece)
y. 웹서버의 /piece는 요청받은 인증키의 체크값을 체크하여 인증키의 유효성을 검증하고, 올바른 인증키일 경우 암호문을 비밀키로 풀어, 분할이미지 파일명(sample_1x1.jpg) + 타임스탬프(2015-01-01 12:00:00) + 이용자 ID(guest) + 이용자 IP(255.255.255.255) 정보를 읽는다.
z. 앞의 q, r, s에서와 마찬가지로 값에 대한 인증키에 대한 인증이 끝나면, 웹서버는 파일서버에 sample_1x1.jpg 이미지를 요청하고, 이미지 데이터를 가져온다.
aa. 특정 분할 이미지에는, 원본 파일명(sample.jpg) + 타임스탬프(2015-01-01-12:00:00) + 이용자ID(guest) + 이용자 IP(255.255.255.255) 정보를 AES 대칭키 암호 알고리즘으로 암호화한 QR코드 이미지를 병합하는 방식으로 워터마크를 삽입한다.
ab. 분할 이미지 데이터에 이미지 헤더값을 추가하여 이용자에게 전송한다.
ac. 이용자 웹브라우저에는 분할 이미지가 각 위치의 직사각형의 지정된 영역에 여백 없이 표시된다. 이때 이미지 URL에는 파일명, 파일서버 URL이 직접 노출되지 않고 암호화된 1회용 인증키 정보만 표시되어 직접적인 URL 접근을 차단한다.
ad. x에서 결정된 랜덤 순서대로 분할 이미지를 순차적으로 요청하는 y~ac 과정이 총 m×n회 반복되면 웹서버는 각 분할된 영역에 해당하는 분할 이미지 파일을 랜덤 순서대로 전송하여, 모든 분할 이미지가 화면에 표시된다. 클라이언트 단말기 화면에 분할된 이미지가 여백없이 연결되어 원본 이미지와 똑같이 보이도록 표시된다. 즉, 이용자에게는 원본 이미지와 동일하게 보이는 이미지가 보여져 이용자는 분할된 이미지임을 인식할 수 없다. 따라서, 이용자는 파일을 복제하기 위해 접근하더라도 조각난 이미지 파일에만 접근할 수 있다.
상기에서 구체적인 실시예에 의해 본 발명을 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이나 수정이 가능하다. 따라서, 본 발명의 기술적 범위는 설명된 실시예에 국한되어 정해져서는 아니되며 후술하는 청구의 범위뿐만 아니라, 이 청구의 범위와 균등한 것들에 의해 정해져야 한다.
디지털 이미지 저작물의 무단 복제를 차단함으로써 저작자의 저작권을 보호하고, 불법 복제물 유포로 인한 경제적 손실을 예방할 수 있다.
Claims (6)
- 디지털 이미지 컨텐츠 보안을 위해 이미지를 분할 및 병합하는 방법으로서, 웹서버의 임시 폴더에 저장된 원본 이미지의 분할 및 전송을 처리하는 웹서버가, 클라이언트 단말기가 이미지를 요청할 때,
상기 원본 이미지와 관련된 데이터를 저장하는 DB서버로부터 소정의 시간 주기로 이미지 분할을 실행할 이미지 데이터를 하나씩 읽고, 상기 원본 이미지의 가로, 세로 사이즈를 각각 m 및 n으로 나눈 나머지 픽셀을 잘라낸 수정된 이미지를 생성하고, 상기 수정된 이미지로부터 분할된 m×n개의 분할 이미지 파일을 파일서버에 저장하는 단계;
클라이언트 단말기의 웹브라우저 화면에, 수정된 이미지와 동일한 크기의 빈 이미지 영역을 표시하고, 그 내부를 가로 m개, 세로 n개의 직사각형 영역으로 나누는 단계;
상기 분할 이미지 파일을 상기 클라이언트 단말기에 랜덤 순서로 전송하는 단계; 및
상기 분할 이미지 파일을 요청 순서에 맞는 위치의 직사각형 영역에 여백 없이 표시하는 단계를 포함하고,
상기 웹서버는, 상기 클라이언트 단말기가 이미지를 요청할 때,
상기 클라이언트 단말기의 이미지 요청시마다 새로 발급되는 1회용 인증키를 발급하고;
이미지 파일명 + 타임스탬프 + 이용자 ID + 이용자 IP의 정보를 하나의 스트링값으로 묶은 다음 암호화한 1회용 인증키를 생성하여 HTML 문서에 포함시키고, 클라이언트 단말기의 이미지 요청시 상기 HTML 문서를 클라이언트 단말기에 전송하고;
상기 인증키의 위변조를 막기 위해 상기 인증키의 특정 위치에 1바이트 크기의 유효성 체크값을 심고;
상기 클라이언트 단말기의 웹브라우저에 빈 이미지 영역이 표시됨과 동시에 상기 클라이언트와 웹서버간 비동기 통신을 통해 웹서버에 인증키를 요청하는 것을 특징으로 하는 이미지 분할 및 병합 방법. - 삭제
- 제1항에 있어서,
상기 클라이언트와 웹서버간 비동기 통신은, 상기 웹서버가,
요청받은 인증키의 특정 위치에 있는 체크값을 체크하여 인증키의 유효성을 검증하고, 검증된 경우 이미지 파일명, 타임스탬프, 이용자 ID, 이용자 IP 정보를 읽는 단계;
상기 타임스탬프와 현재시간을 비교해 유효성을 체크하는 단계;
상기 이용자 ID 정보를 바탕으로 비회원, 회원 또는 회원 등급별로 선별적으로 응답하는 단계;
상기 이용자 IP 정보를 통해 이용자가 접속한 국가를 검출하여 특정 국가에서의 이미지 접근을 거부하는 단계;
상기 인증키를 통한 인증이 끝나면, 상기 이미지 파일명으로부터 분할된 이미지 파일명을 생성하는 단계;
상기 분할 이미지 각각에 대해 분할 이미지 파일명 + 타임스탬프 + 이용자 ID + 이용자 IP를 다시 암호화한 1회용 인증키를 생성하는 단계;
상기 인증키의 위변조를 막기 위해, 인증키의 특정 위치에 1바이트 크기의 유효성 체크값을 심는 단계;
각 분할 이미지 정보를 담은 인증키 m×n 개의 시작과 끝에 허수의 인증키를 한 개씩 생성하여 총 (m×n)+2개의 인증키를 생성하여 이미지 요청에 대한 응답값으로 클라이언트 단말기에 전송하는 단계; 및
1부터 m×n까지 정수를 랜덤 순서대로 나열하고, 임의로 설정된 순서에 대응하는 각 분할 이미지 영역의 이미지 URL에 순차적으로 분할이미지 URL를 지정하는 단계를 포함하는 것을 특징으로 하는 이미지 분할 및 병합 방법. - 디지털 이미지 컨텐츠 보안을 위해 이미지를 분할 및 병합하는 방법으로서, 웹서버의 임시 폴더에 저장된 원본 이미지의 분할 및 전송을 처리하는 웹서버가, 클라이언트 단말기가 이미지를 요청할 때,
상기 원본 이미지와 관련된 데이터를 저장하는 DB서버로부터 소정의 시간 주기로 이미지 분할을 실행할 이미지 데이터를 하나씩 읽고, 상기 원본 이미지의 가로, 세로 사이즈를 각각 m 및 n으로 나눈 나머지 픽셀을 잘라낸 수정된 이미지를 생성하고, 상기 수정된 이미지로부터 분할된 m×n개의 분할 이미지 파일을 파일서버에 저장하는 단계;
클라이언트 단말기의 웹브라우저 화면에, 수정된 이미지와 동일한 크기의 빈 이미지 영역을 표시하고, 그 내부를 가로 m개, 세로 n개의 직사각형 영역으로 나누는 단계;
상기 분할 이미지 파일을 상기 클라이언트 단말기에 랜덤 순서로 전송하는 단계; 및
상기 분할 이미지 파일을 요청 순서에 맞는 위치의 직사각형 영역에 여백 없이 표시하는 단계를 포함하고,
상기 분할 이미지 파일을 전송하는 단계는, 상기 웹서버가,
a) 요청받은 인증키의 체크값을 체크하여 인증키의 유효성을 검증하고, 올바른 인증키일 경우 분할 이미지 파일명 + 타임스탬프 + 이용자 ID + 이용자 IP 정보를 읽는 단계;
b) 인증키에 대한 인증이 끝나면, 상기 웹서버가 파일서버에 분할 이미지를 요청하고, 이미지 데이터를 가져오는 단계;
c) 특정 분할 이미지에, 원본 파일명 + 타임스탬프 + 이용자 ID + 이용자 IP 정보를 암호화한 QR코드 이미지를 병합하는 방식으로 워터마크를 삽입하는 단계;
d) 분할 이미지 데이터에 이미지 헤더값을 추가하여 이용자에게 전송하는 단계;
e) 이용자 웹브라우저에 분할 이미지를 지정된 영역에 표시하는 단계; 및
f) 상기 단계 a) ~ e)를 총 m×n회 반복하여 모든 분할 이미지를 웹브라우저에 표시하는 단계를 포함하는 것을 특징으로 하는 이미지 분할 및 병합 방법. - 제1항에 있어서, 상기 원본 이미지와 관련된 데이터는 이미지 파일명, 파일 포맷, 업로드 시간, 이미지 분할 여부를 포함하는 것을 특징으로 하는 이미지 분할 및 병합 방법.
- 웹서버로 하여금 제1항 및 제3항 내지 제5항중 어느 한 항의 방법을 실행하도록 하는 프로그램이 저장된 컴퓨터 판독가능 기록매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150117205A KR101638398B1 (ko) | 2015-08-20 | 2015-08-20 | 이미지 분할 및 병합 방법 및 상기 방법을 실행하기 위한 프로그램을 기록한 컴퓨터 판독가능 기록매체 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150117205A KR101638398B1 (ko) | 2015-08-20 | 2015-08-20 | 이미지 분할 및 병합 방법 및 상기 방법을 실행하기 위한 프로그램을 기록한 컴퓨터 판독가능 기록매체 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101638398B1 true KR101638398B1 (ko) | 2016-07-12 |
Family
ID=56505327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150117205A KR101638398B1 (ko) | 2015-08-20 | 2015-08-20 | 이미지 분할 및 병합 방법 및 상기 방법을 실행하기 위한 프로그램을 기록한 컴퓨터 판독가능 기록매체 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101638398B1 (ko) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101919286B1 (ko) | 2018-06-12 | 2018-11-15 | 이성훈 | 웹서버에서의 이미지 복제 방지 방법 |
KR102155647B1 (ko) * | 2019-09-06 | 2020-09-14 | 주식회사 테르텐 | 구매증빙 관리서버의 동작방법과 블록체인 기반의 콘텐츠 거래관리 방법 |
KR20220074199A (ko) | 2020-11-27 | 2022-06-03 | 주식회사 테르텐 | 원본 파일을 여러개로 분할하고 분할된 파일들을 암호화하고 암호화된 파일들을 복호화하여 원본 파일을 복원하는 컴퓨터 프로그램과 그 방법 |
CN115514494A (zh) * | 2022-09-16 | 2022-12-23 | 长城汽车股份有限公司 | 一种图像的传输方法、装置、电子设备及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100321771B1 (ko) * | 1998-08-12 | 2002-03-08 | 이계철 | 셀분할에의한이미지합성시스템및그방법 |
JP2004252992A (ja) * | 2003-02-20 | 2004-09-09 | Vr Photo Co Ltd | 多重ウェッブサーバにおける多重解像度イメージ提供アプリケーション供給サービス方法および装置(ThemethodandequipmentofASPserviceformulti−resolutionimageontheenvironmentofmulti−server) |
-
2015
- 2015-08-20 KR KR1020150117205A patent/KR101638398B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100321771B1 (ko) * | 1998-08-12 | 2002-03-08 | 이계철 | 셀분할에의한이미지합성시스템및그방법 |
JP2004252992A (ja) * | 2003-02-20 | 2004-09-09 | Vr Photo Co Ltd | 多重ウェッブサーバにおける多重解像度イメージ提供アプリケーション供給サービス方法および装置(ThemethodandequipmentofASPserviceformulti−resolutionimageontheenvironmentofmulti−server) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101919286B1 (ko) | 2018-06-12 | 2018-11-15 | 이성훈 | 웹서버에서의 이미지 복제 방지 방법 |
KR102155647B1 (ko) * | 2019-09-06 | 2020-09-14 | 주식회사 테르텐 | 구매증빙 관리서버의 동작방법과 블록체인 기반의 콘텐츠 거래관리 방법 |
KR20220074199A (ko) | 2020-11-27 | 2022-06-03 | 주식회사 테르텐 | 원본 파일을 여러개로 분할하고 분할된 파일들을 암호화하고 암호화된 파일들을 복호화하여 원본 파일을 복원하는 컴퓨터 프로그램과 그 방법 |
CN115514494A (zh) * | 2022-09-16 | 2022-12-23 | 长城汽车股份有限公司 | 一种图像的传输方法、装置、电子设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3560136B1 (en) | Distributed blockchain-based method for saving the location of a file | |
US7293293B2 (en) | Apparatus and method for detecting illegitimate change of web resources | |
US11496512B2 (en) | Detecting realtime phishing from a phished client or at a security server | |
US7555784B2 (en) | Method and system for safely disclosing identity over the internet | |
US8887290B1 (en) | Method and system for content protection for a browser based content viewer | |
KR101638398B1 (ko) | 이미지 분할 및 병합 방법 및 상기 방법을 실행하기 위한 프로그램을 기록한 컴퓨터 판독가능 기록매체 | |
US20040030784A1 (en) | Methods of accessing and using web-pages | |
CN104077624A (zh) | 带防伪二维码的电子票据的生成方法、校验方法及其*** | |
US20130262864A1 (en) | Method and system for supporting secure documents | |
Wang et al. | 2D barcodes for visual cryptography | |
EP2913973A1 (en) | Trusted NFC smart poster tag | |
US6954854B1 (en) | Electronic authentication method, electronic authentication apparatus and electronic authentication storage medium | |
CN111177666A (zh) | 基于脆弱水印的司法文书防伪防篡改方法及*** | |
KR20160077747A (ko) | Html 문서에 포함되는 콘텐츠를 보호하는 장치 및 방법 | |
KR100434653B1 (ko) | 웹 페이지 열람 제한 방법과 서버 시스템 | |
US7739500B2 (en) | Method and system for consistent recognition of ongoing digital relationships | |
Li et al. | A blockchain‐based privacy‐preserving authentication system for ensuring multimedia content integrity | |
KR20190120498A (ko) | 전산화된 기록물의 보안출력 시스템 및 방법 | |
Hajiali et al. | Preventing phishing attacks using text and image watermarking | |
Dakroury et al. | Protecting GIS data using cryptography and digital watermarking | |
KR102490756B1 (ko) | 암호화된 문서 컨텐츠를 제공하는 서버와 그 문서 컨텐츠의 뷰어 디바이스 | |
CN102054132A (zh) | 数据库***的安全组件 | |
CN109543364B (zh) | 一种防止复制资料的***和方法 | |
CN114760078B (zh) | 一种防止恶意篡改页面请求参数的方法和*** | |
US20230385811A1 (en) | Secure and decentralized payment for digital media content via certificates with wallet information |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |