가. 구성요소 및 설명
상기와 같은 목적을 달성하기 위하여, 본 발명은 크게 P2P 클라이언트(파일 생산자, 파일 수요자, 파일 공유자), P2P 서버, DB 서버 그리고 인증서버로 구성된다. 각 구성요소는 아래와 같은 기능을 가진다.
구성요소 |
설 명 및 역할 |
P2P 클라이언트 |
P2P 서버에 연결하는 전용 프로그램 사용자로서, 파일 수요자,파일공유자,파일생산자로 구성됨. 역할은 파일의 등록,검색,공유,등록 취소 등을 수행하는 일반적인 사용자단 시스템 기능을 수행. |
P2P 서버[파일 배포자] |
P2P 클라이언트 들에게 본 P2P 서비스의 핵심 기능을 제공하는 시스템으로서, P2P접속자 회원관리, 불법파일의 탐지, 등록 차단 및 유통 차단, 특정 파일을 소유한 클라이언트 목록 제공 , 거래 파일의 이익분배 등의 기능 수행 |
P2P DB |
P2P 서버와 함께, 파일의 저작권 관리 및 인증, 구매 파일 정보, 생산 파일 정보,차단파일 정보 등의 모든 파일의 정보를 저장하여 불법파일의 판단 기준을 제공하는 DataBase |
파일 수요자 |
파일을 검색 수행하고, 파일을 수신하는 자 |
파일 공유자 |
파일을 공유를 통해 제공하는 자 |
파일 생산자 |
파일을 최초 생산하는 자 또는 이에 준하는 권한을 가진 저작권자 |
나. 생산자 또는 공유자 등록 파일 구조
최초에 파일의 생산자 또는 공유자는 자신의 파일을 본 발명의 P2P 서버에 등록하기 위해서는 [도 3]의 과정과 같이 아래 파일 형식으로 우선 변환하고, 전자 TAG의 타당성을 검증한 후에 정상적으로 P2P 서버의 파일 목록 DB에 생산자 또는 공유자의 IP와 파일의 TAG 정보 및 유료 가격 등의 정보가 등록된다.
위와 같은 과정을 통해 생산된 파일의 상세 구조는 아래와 같다.
등록파일구조 |
original data |
전자 tag 헤더 |
공유 bit |
유료 bit |
생산제품명 |
생산자정보 |
파일 반 hash 값 |
파일 전체 hash값 |
인증센터정보 |
성인등급 |
file 서명값 |
다운로드 user id |
추적 서명값 |
약어 |
A |
ID(A) |
SH(A) |
M(A) |
N(A) |
P(A) |
Hash(A/2) |
Hash(A) |
CA(A) |
AGE(A) |
Sign_P(A) |
UID(A) |
Sign_S[Sign_P(A)+UID(A)+R(UID(A))] |
[표1] 전자 TAG 붙여진 파일 형식
변형된 파일 구조관련 용어의 정의는 아래와 같다.
- Original Data : 최초 생산자 파일의 data로서 약어로는 A 로 표현한다.
- 전자 TAG : [표1]에서 ID(A), SH(A), M(A), N(A), P(A), Hash(A/2),Hash(A), CA(A),
AGE(A),Sign_P(A), UID(A) , R(UID(A)) , Sign_S[Sign_P(A)+UID(A)+R(UID(A))] 값들을 모두 차례로 연결한 데이터 값을 말한다.
- 전자 TAG 헤더 : 원본 파일(A)과 전자 TAG 사이에 존재하는 필드로서, 전자 TAG의 버전, 전자 TAG 각 필드의 속성, 위치정보제공 등의 기능을 수행한다.
- 공유 bit : 파일의 생산자 또는 공유자가 파일의 공유 여부를 표현하는 부분.
- 유료 bit : 파일의 유료/무료 여부를 결정하는 부분
- 생산 제품명 : 생산 제품명 또는 이에 준하는 생산제품을 설명 가능한 값
- 생산자 정보 : 원본 파일 A의 생산자 정보
- 파일 반 Hash 값 : 원본 데이터(A)의 1/2사이즈인 A/2 만 암호학적 해쉬 알고리즘으로 Hash 한 값
- 파일 전체 Hash 값 : 원본 데이터 전체인 A를 암호학적 해쉬 알고리즘으로 Hash 한 값
- file 서명 값 : [전자서명값 생성절차]를 통해 원본 파일 A에 대해 [파일 생산자]의 개인 KEY로 서명한 값
- 인증센터 정보 : 파일 생산자의 개인 KEY에 대응하는 공개키를 저장/관리하는 인증 센터 정보
- 성인 등급 : 19세 이하 가입자가 보지 못하도록 하는 성인물 표시 필드
- 다운로드 user id : 파일 공유자로부터 파일은 다운 받은 사용자의 ID
- random key : 파일별로 다운로드 받은 즉시 P2P 서버에서 랜덤하게 생성하는 숫자
- 추적 서명값 : 파일의 무단 배포시, 배포자 추적 위해 생성하는 고유값으로써, P2P 서버의 개인 KEY 로 모든 파일 거래 완료 즉시 다운로드 받은 ID와 random key 통해 이 값을 생성하고, P2P 서버 및 다운받은 파일의 전자 TAG 값에 반영함.
다. 전자 TAG 부여 절차
생산자 또는 공유자가 P2P 서버에 해당 파일을 처음으로 등록하고자 할 때, 해당파일 형식의 변환 절차는 아래와 같다.
Step 1> 전자 TAG 헤더는 파일 생산자 또는 공유자의 P2P클라이언트 프로그램 버전 에 의해 결정 및 입력된다.
Step 2> 원본 파일 A에 대해서 생산자는 해당 파일을 공유할 것인지 의사 결정한다. 만일 공유할 것이라면 공유 bit 값을 1로 설정한다. 아니면 0으로 설정한다.
Step 3> 해당 원본 파일에 대해서 공유할 경우 유료로 할 것인지 여부에 따라 유료 bit 값을 설정한다. 예를 들어 유료라면 1, 아니면 0으로 설정한다.
Step 4> 원본 파일 A에 대한 공식적인 제품이름을 입력한다.
Step 5> 원본 파일 A에 대한 생산자 정보를 입력한다.
Step 6> 원본 파일 전체 A SIZE 중에서 앞에서 1/2 크기 DATA에 대해서 암호학적 Hash 알고리즘을 적용한 값을 입력한다.
Step 7> 원본 파일 A에 대해 암호학적 Hash 알고리즘을 적용한 값을 입력한다.
이 부분은 P2P클라이언트의 프로그램 자체 기능으로 자동화 입력 가능하다.
Step 8> 유료 파일 등록의 경우, 파일 서명값(Sign_P(A) ) 생성시 사용할 개인 KEY로부터 CA정보(CRL정보 및 주체 정보)를 추출하여 저장한다.
Step 9> 원본 파일에 대한 성인 등급을 부여한다.
Step 10> 유료 파일 등록의 경우, 파일 서명할 개인 KEY(일반적으로,P2P 중계 서버 운영자의 개인KEY)를 활용하여 아래와 같이 파일 서명값 (Sign_P(A) )을 생성한다.
Step 11> 유료 파일 등록의 경우,최초 파일 생산자 ID 또는 매번 공유시 다운받은 사용자의 ID를 UID 부분에 입력한다.
Step 12> 유료 파일 등록의 경우, P2P 서버는 랜덤 R(UID(A)) 값을 생성하고, 이 값과 자신의 비밀 개인 KEY 를 이용하여 Sign_S[Sign_P(A)+UID(A)+R(UID(A))] 값을 생성한다.
[전자서명값 생성절차]
a. 먼저 Step 1> ~ Step6> 과정 통해 구성된 모든 값을 연결한 데이터를 아래와 같이 Identities(A)라고 하자.
Identities(A) = ID(A) + SH(A) + M(A) + N(A) + P(A) + Hash(A/2) +Hash(A) + CA(A) + AGE(A)
b. 암호학적 Hash 함수를 사용하여 아래와 같이 수행한다.
H ( Identities(A) )
c. 파일 서명할 개인 KEY로 아래와 같이 전자 서명 값 Sign_P(A)을 획득한다.
Sign_P(A) = Encryption [ H ( Identities(A) ) ] with [개인 KEY]
라. 전자 TAG 타당성 확인 법
A. 파일 생산자 진위 여부 확인 절차
전자 TAG 안의 정보를 통해서 생산자 진위 여부를 알 수 있어, 파일의 유통에 있어서 핵심적 역할을 수행한다.
먼저 유통될 원본 파일을 B라 표현하자. 이 공유 유통되는 파일은 [표1]과 같이 [ B + 전자 TAG(B)] 형식을 가진다. 이 원본 파일 B의 전자 TAG 가 정상적으로 잘 생성 것인지 확인하는 절차는 아래와 같다.
Step 1> P2P클라이언트의 환경정보로터 전자 TAG 에 할당된 기억공간크기 정보를 입수하고, 공유 등록 파일 [B + 전자 TAG(B)]의 끝에서 전자 TAG(B) 데이터 크기만 읽어온다.
Step 2> 전자 TAG 의 헤더가 표준형식으로 존재하는지 검사하고, 그렇지 않은 경우, 본 전자서명은 실패로 돌아간다. 전자 TAG 의 헤더가 표준 형식으로 존재할 경우에, P2P 프로그램은 전자 TAG 헤더의 규약대로, 각 공유 bit 등의 각 필드를 얻는다.
Step 3> 전자 TAG로부터 전자서명 값을 읽어온다. 이 값을 본 설명에서는 Sign_P(B')로 표현한다.(B' : 가상의 원본 파일 DATA )
Step 4> TAG(B) 파일 안에 존재하는 생산자 정보[P(B)]와 인증센터 정보[CA]로부터 생산자의 인증센터위치를 확보하고, 이 인증센터에 질의하여 받은 생산자의 인증서로부터 공개키값[Pub_key]을 획득, 아래와 같은 계산을 수행한다.
Decryption ( Sign_P(B') ) with Public key [Pub_key]
Step 5> 공유 등록 파일의 전자 TAG 안에 존재하는 Identities(B) ( = ID(B) + SH(B) + M(B) + N(B) + P(B) +Hash(B/2) + Hash(B) + CA(B) +AGE(B) ) 를 추출하고, 아래와 같이 Hash 를 수행한다.
H ( Identities(B) )
Step 6> 마지막으로 Step 4> 에서 얻은 값과 Step 5>에서 얻은 값을 비교하여 일치 여부를 점검한 후 같다면, 원본파일 B를 Hash하여 Hash(B') 을 만들어 전자 TAG안의 Hash(B)와 비교한다. 같다면 성공하며, 같지 않다면 실패한다.
B. 각 파일 공유자 권한 소유 여부 확인 절차
먼저 파일 공유 원하는 파일 공유자는 P2P 서버에 자신의 계정으로 접속을 한다. 그리고, 자신이 공유 원하는 파일의 전자 TAG 값을 P2P 서버로 전송한다.그러면, P2P 서버는 받은 전자 TAG 로부터 생산자ID,상품명 및 해쉬값을 추출하여 해당 파일을 공유자가 구매한 사실이 있는지, P2P DB 정보안의 [구매목록]을 통해서 확인하고, 구매 사실 없는 경우, 공유를 거부한다.
마. 전자 TAG 이용한 통신상의 불법 의심 파일 전송 탐지 시스템 절차
본 발명의 P2P 시스템은 자신을 통해서는 불법 파일이 유통되는 것을 차단가능하지만, 자신의 시스템이 아닌 다른 P2P 시스템과 일반 인터넷 통신을 통해서 불법파일이 유통되는 것을 차단 또는 탐지하지 못하는 단점이 있다. 이런 단점을 극복하는 하나의 도우미로써, 본 발명의 전자 TAG 는 자신의 끝부분에 부착되는 [다운로드 user id]값과 [추적 서명값]을 하나의 DB 정보[일명,저작권파일 Signature]로서, 타 P2P 서버 또는 N/W 단 불법 저작권 탐지 시스템에 제공하여, 해당 시스템이 아래와 같은 방법으로 이용하여 저작권파일의 불법 유통 IP 또는 불법 유통 취약자 정보를 추출할 수 있다.
예로써 설명하면, 먼저 저작권 보호 대상 파일(A)이 통신상에 매우 많이 유포되고 있다고 하자.
그러면 , N/W 단 불법 저작권 탐지 시스템은, 본 발명의 전자 TAG를 확인하여 아래와 같은 절차로 A 파일의 불법 여부 판단 가능하고, 불법 저작권 위한 파일이 아닌 경우, 무단 복제 배포자 ID 정보 또는 구매 파일 해킹 피해자 ID 정보를 탐지할 수 있다.
Step 1> 먼저 본 N/W 단 불법 저작권 탐지 시스템은 각종 저작권자 협회 또는 본 발명의 P2P 서버 운영자로부터 각 저작권 보호 파일 안에 존재하는 정당한 파일 해쉬값과 [다운로드 user id]값과 [추적 서명값] , 각 저작권보호 원본 파일의 일정부분[예,data 끝부분의 일정 길이] 등의 정보를 확보한다.
Step 2> N/W 단 불법 저작권 탐지 시스템을 인터넷 통신상의 주요 길목(gate way)에 설치한다. 그리고, 지나가는 통신상에 모든 data의 일정부분[예,data 끝부분의 일정 길이]의 정보를 포착, 해당 파일이 저작권 보호 요청 원본 파일의 각 파일 data 끝부분의 일정 부분값과 일치하는지 진단한다. 일치하지 않는 data 파일들은 그냥 무시한다.
Step 3> 일치하는 data 파일 탐지시, 해당 파일에 전자 TAG안의 [다운로드 user id, 추적 서명값]의 존재성을 체크하고,비 존재시 해당 파일은 변조된 파일이므로, 해당 IP 를 탐지 신고한다.
Step 4> [다운로드 user id, 추적 서명값]을 추출하고, 저작권 보호 파일 정보 db의 전자 TAG 값 [다운로드 user id, 추적 서명값]과 일치하는지를 점검한다. 일치 하는 값이 비존재시 해당 파일은 변조된 파일이므로, 해당 IP 를 탐지 신고한다.
Step 5>[다운로드 user id, 추적 서명값]일치하는 값이 존재하지 않는 경우,[추적 서명값]만 일치하는 것이 DB 안에 존재하는지 점검하고, 없으면 해당 전자 TAG 는 고의적 변형에 해당되므로, 해당 파일의 유통자 IP를 추출, 즉각 신고 한다. 그러나, 만일 [추적 서명값]만 일치하는 것이 DB 안에 존재시, P2P 서버의 KEY를 사용하여 아래 값을 해독하여 UID(A) 값을 획득한다. 그 결과 추적서명값에 해당하는 [다운로드 user id] 정보를 획득하여 해당 ID 사용자에게 통지 또는 경고하는 역할을 수행한다.
Sign_S[Sign_P(A)+UID(A)+R(UID(A))]
Step 6>일치하는 [다운로드 user id, 추적 서명값]값이 존재시, 이 값들 각각에 대해서 N/W 단 불법 저작권 탐지 시스템은 일별/지역별 통계를 추출하여 해당 파일의 통신 전송 횟수가 다소 많은 경우, 해당 파일안의 [다운로드 User id]가 구매한 위 조건 일치 파일을 blacklist 로 등록하여 통신상 유통 차단한다.
Step 7>[다운로드 user id, 추적 서명값]이 불일치하는 값들에 대해서는 이 값들에 대해서 일별/지역별 통계를 추출하여 blacklist 로 [다운로드 user id, 추적 서명값]값을 등록하여 통신상 유통 차단한다.
바. 생산자 파일 상품 등록 단계 ( 도면 1 )
본 과정은 파일 생산자 또는 저작권 없는 파일에 대한 공유 희망자가 파일의 유통을 위하여 P2P 서버에 등록 요청하는 과정을 설명한 것이다. 우선 파일 생산자 또는 파일 공유희망자가, 자신이 배포 또는 유통하고자 하는 파일에 대해서 유료 파일 등록 신청의 경우, 파일과 파일을 서명한 값,생산자 ID,상품명 등을 P2P서버로 전송하고,[102]무료 파일의 배포 신청의 경우는 파일 자체는 P2P서버에 전송필요없이, 파일의 생산자 ID,상품명,해쉬값 등의 전자 TAG 정보를 P2P 서버로 전송한다.[103]. 특히, 전달 과정에서 중요 유료 파일의 경우 직접 방문이 이상적이지만, 직접 방문 전달 수준에 준하는 암호학적 기법에 의해서도 서버로 전송이 가능하다.[102].
다음으로, P2P 서버는 받은 유료 파일에 대해서 암호학적 Hash 함수를 적용하고[104], 이 결과로 나온 값이 기존의 생산 상품 목록에 존재하는지 점검한다.[105].
만일 존재하면, 그 파일은 상품 등록이 거부되고[106] 거부된 사유를 상품 등록 신청자에게 통보하며, 이런 유형의 파일에 대해서 서버관리자는 로그를 관리함으로써, 차후 해당 상품 관련 저작권 침해 신고에 대비한 감사/추적을 수행한다. 일단 동일한 해쉬값이 존재하지 않는 파일인 경우, P2P DB 정보의 생산 상품 목록에 [생산자 ID,해쉬값,상품명] 등록하고[107] DB 정보의 구매 목록에 해당 생산자 계정의 구매목록에 [생산자 ID,해쉬값,상품명] 정보에 추가한다.[108]. 그리고 마지막으로, 유료 상품 파일 인 경우, 운영자에 의한 적절한 저작권 심의를 거쳐 해당 파일에 대해 전자 TAG 를 부착한다[111] 이 전자 TAG 가 붙여진 파일을 최초 파일 상품 등록자에게 DOWNLOAD 허락한다.[112] .무료 상품인 경우는 단지 전자 TAG 생성하여 파일 등록 신청자의 P2P 클라이언트 프로그램으로 전달하여 신청파일의 끝에 자동으로 전자 TAG 가 붙도록 하며, P2P 서버 자신의 발급한 전자 TAG 정보를 DB 에 별도 저장하여 차후 거래시 사용한다.[110]
사. P2P 클라이언트에서 P2P 서버로 파일 공유 목록 등록 단계 (도면 2 )
본 단계는 파일 공유자가 자신이 공유하고자 하는 파일 목록을 P2P서버에게 제공할 때 , P2P서버가 P2P Client 로부터 받은 공유 신청 파일 목록 중, 불법 저작권파일 공유를 제한하기 위한 인증 절차에 관한 것이다.
우선, 파일 공유자가 자신이 공유하고자 하는 파일 목록이 존재시, P2P 에 정당한 자신의 계정을 통해서 접속해야 한다.[201]. 그리고 나서 , 공유 희망 각 파일의 정보[생산자 ID, Hash 값]들을 P2P서버에게 전송한다.[202]. 그러면, 이 값을 받은 P2P 서버는 우선 P2P DB 서버의 공유 차단 목록에 해당 파일 정보가 포함되는지 점검하고[203-204], 존재치 않는 경우에 한해서, 다음 과정인 해당 파일이 본 P2P 시스템을 통해서 거래 가능한 파일인지를 P2P DB 서버안의 생산 상품 목록정보를 통해 인증 수행한다.[204-206]. 그리고, 마지막으로 해당 공유 신청 파일을 공유 신청자가 구매한 사실이 있는지를 점검하기 위해서 P2P DB 서버안의 구매 상품 목록 정보에서 해당 공유 희망자의 계정의 구매사실 여부를 진단하고[207], 이를 통과한 파일에 한해서 본 발명의 P2P 시스템은 다른 사용자들에게 해당 파일의 원할한 거래가 가능토록 파일 공유자 정보 및 파일 정보 제공을 허락한다.[208-209]
자. 파일 조회 및 조회 파일 거래 단계 (도면 3 )
본 단계는 파일 수요자가 자신이 원하는 파일을 찾음은 물론, 해당 파일의 거래시, 결제가 성립되는 과정을 설명한 것이다.
우선 파일 수요자는 P2P 서버에 자신이 찾기를 원하는 정보 및 상품 등 관련 검색 조건을 입력한다.[301]. 그러면, P2P 서버는 이 검색 조건에 부합되는 모든 자료 목록을, 파일 생산자 DB 정보에서 추출하고, 파일 수요자가 최상의 파일을 선택 가능하도록 파일 공유자,기타 상품명,상품설명,해쉬값,가격정보 등과 함께 파일 수요자에게 제공한다.[302] 그러면, 파일 수요자는 검색결과 목록에서 마음에 드는 상품/공유자ID 를 선택하게 되고[303], P2P 서버는 해당 상품의 공유자와 상품 파일 수요자가 서로 원할히 통신가능토록 서로의 IP/PORT 정보를 알려준다.[304] 이 정보를 받은 파일 수요자와 파일 공유자는 서로 통신이 가능하게 되는데, 최초 파일의 실제 통신을 수행하기 전에 우선 해당 파일의 전자 TAG 값을 파일 공유자는 파일수요자에게 전송한다.[305] 그러면, 이 전자 TAG 의 타당성을 상기한 [라. 전자 TAG 인증 확인 법]에 따라 파일 수요자는 P2P 서버와 자동 인증 확인하여, 타당한 경우 P2P 서버를 통해 구매 결제를 수행한다.[306]
이때 P2P 서버도 파일 수요자의 구매 사실을 자신의 구매 DB 목록에 저장한다.[306]
그리고 나서, 파일 수요자와 파일 공급자는 실제 파일 전송을 시작하고[307], 파일 수요자는 전체 파일(A)의 1/2 받은 시점에서 , 받은 파일의 1/2 에 대한 Hash 수행을 하게 되고[308], 그[305]단계에서 받은 전자 TAG 안의 Hash(A/2)값과 일치확인 후 일치시, P2P 서버의 결제 시스템을 통해서 해당 상품의 1/2 공유 대가에 대한 금액을 파일 공유자에게 지불하게 된다. [309-310]
마지막으로, 모든 파일을 받은 후 파일 수요자는 받은 전체 파일(A)에 대한 Hash(A)를 수행하게 되고, 이전에 받은 전자 TAG 안의 Hash(A/2)값과 일치확인 후 일치시, P2P 서버의 결제시스템을 통해서 나머지 해당 상품의 공유대가의 1/2 금액을 파일 공유자에게 제공함과 동시에 P2P서버로부터 구매를 증명하는 전자 TAG 를 새로이 부여받아 다운 받은 파일 끝에 붙이며, 자신의 PC 에 해당 파일은 저장됨으로써 파일 거래는 완성된다. [311-312]
아. 생산자, 공유자, P2P 서버 운영자 사이의 이익 배분 기법
본 단계는 파일 송수신 단계[305-312]에서 해당 거래 파일의 전자 TAG 안의 DATA 속성 기반으로 이익을 분배하는 기법에 관한 것이다.
본 발명 P2P를 포함한 일반적 P2P 시스템은 파일 송수신시 원본 데이터 크기의 1/2를 받은 시점에 1차적인 정산을 수행한다.
그러나 일반적으로 다른 P2P 시스템은, 거래 파일 자체에 파일 생산자 정보가 없으므로 파일 생산자와 파일 공유자를 구별할 수 없다. 그래서 파일 수요자가 파일 공급자로부터 원하는 파일의 1/2을 받은 시점이라 할지라도, P2P 서버는 파일 공급자를 파일 생산자로 인식할 수밖에 없어, 파일 거래 댓가의 1/2을 모두 파일 공유자에게 지불할 수밖에 없었다.
본 P2P시스템은 파일 수요자와 공유자 사이에 파일 송수신 발생과정에서, 파일의 1/2을 받은 시점에서 해당 파일의 전자TAG 안의 생산자 정보를 추출,P2P서버에 전송하게 된다.
그러면, P2P서버는 받은 생산자 정보를 기준으로, 본 파일 거래에 대해, 파일 공유자와 파일 생산자에 대한 차등적으로 각각 이익 배분이 가능하다.