KR20070017329A - 프록시에 의한 안전한 단말간 tcp/ip 통신 방법 및통신 시스템 - Google Patents

프록시에 의한 안전한 단말간 tcp/ip 통신 방법 및통신 시스템 Download PDF

Info

Publication number
KR20070017329A
KR20070017329A KR1020067018502A KR20067018502A KR20070017329A KR 20070017329 A KR20070017329 A KR 20070017329A KR 1020067018502 A KR1020067018502 A KR 1020067018502A KR 20067018502 A KR20067018502 A KR 20067018502A KR 20070017329 A KR20070017329 A KR 20070017329A
Authority
KR
South Korea
Prior art keywords
request
communication
common key
server
information
Prior art date
Application number
KR1020067018502A
Other languages
English (en)
Inventor
쥰지 요시다
신지 하마이
지요코 마츠미
Original Assignee
마츠시타 덴끼 산교 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마츠시타 덴끼 산교 가부시키가이샤 filed Critical 마츠시타 덴끼 산교 가부시키가이샤
Priority to KR1020067018502A priority Critical patent/KR20070017329A/ko
Publication of KR20070017329A publication Critical patent/KR20070017329A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

서버 장치(101)는, 요구 발행 기기(102)로부터 송신되는 TCP 접속 개시 신호를 수신하여 요구 발행 기기(102)와의 사이의 TCP 접속을 설정하고, 요구 수락 기기(103)의 기기 ID와, 요구 발행 기기의 IP 어드레스 및 포트 번호를 포함하는 접속 요구 신호를 수신하고, 수신된 접속 요구 신호에 포함된 요구 수락 기기의 기기 ID를 기기 정보 리스트로부터 검색하고, 접속 요구 신호에 포함된 요구 수락 기기의 기기 ID와 일치하는 기기 ID를 포함하는 기기 정보의 세트에 관련된 기기를 요구 수락 기기(103)로서 식별하고, 식별된 요구 수락 기기(103)에 관한 기기 정보의 세트에 포함된 IP 어드레스 및 포트 번호를 식별하고, 또한 수신된 접속 요구 신호에 포함된 IP 어드레스 및 포트 번호를 포함하는 접속 요구 신호를 송신한다.

Description

프록시에 의한 안전한 단말간 TCP/IP 통신 방법 및 통신 시스템{METHOD AND SYSTEM FOR PROXY-BASED SECURE END-TO-END TCP/IP COMMUNICATIONS}
본 발명은 TCP/IP 프로토콜을 이용한 통신 시스템에 관한 것이다. 또한, 본 발명은, (a) 인터넷 등의 네트워크에 접속된 기기 간의 피어 투 피어(pier to pier) 접속에 의한 통신에 이용하기 위한 서버 장치와, (b) 접속 요구 신호를 발행하는 요구 발행(request issuance) 기기와, (c) 접속 요구 신호를 수락하는 요구 수락(request acceptance) 기기와, (d) 서버 장치와, (e) 요구 발행 기기 및 요구 수락 기기를 포함하는 통신 시스템과, (f) 통신 방법에 관한 것이다. 본 발명은, 또한, 상기 통신 방법에 관한 각 단계를 포함하는 프로그램에 관한 것이다.
최근, xDSL이나 광섬유 케이블 등의 광대역 환경이 구축됨으로써, 기업뿐만 아니라, 일반 가정에도 인터넷이 더욱더 보급되어 왔다. 또한, (a) 퍼스널 컴퓨터(PC) 뿐만 아니라, (b) 텔레비전 수상기나 DVD 리코더 등의 AV 기기, (c) 공기 조화기, (d) 냉장고 등의 가정용 전기 기기도 인터넷에 접속할 수 있다. 본 명세서에서는, 상기 인터넷 등의 네트워크에 접속되어서 기타 기기와 통신을 실행하는 장치를, "통신 기기" 또는 "기기"라고 부른다.
가정이나 기업 내의 근거리 통신망(이하, LAN이라고 한다)을 인터넷에 접속 하기 위해서는, 통상, 네트워크 어드레스 변환(Network Address Translation; 이하, NAT라고 한다) 기능 및 네트워크 어드레스 포트 변환(Network Address Port Translation; 이하, NAPT라고 한다) 기능을 갖는 라우터 장치를 이용한다.
인터넷에 접속된 기기 간에 통신을 실행하는 경우에는, 각각의 기기에 고유하게 할당된 글로벌(global) IP 어드레스가 사용된다. 그러나, 인터넷에 접속하는 기기의 수가 급격히 증가하여, 글로벌 IP 어드레스의 수가 부족한 경향이 있다. 이로 인하여, 인터넷에 직접 접속되지 않는 LAN에 있어서는, RFC1918에 의하여 규정된 LAN 내에서만 고유한 프라이빗 IP 어드레스가 많이 사용된다. 프라이빗 IP 어드레스는 인터넷상에서는 고유하지 않고, 또한 인터넷상에서의 사용이 허용되지 않는 것을 염두에 두어야 한다. 이로 인하여, 프라이빗 IP 어드레스를 갖는 기기는, 기기에 대한 지원 없이는 인터넷에 접속된 기타 기기와 통신할 수 없다.
NAT 기능 또는 NAPT 기능은 이러한 문제를 해결하는 것이다. 즉, NAT 기능 또는 NAPT 기능은 프라이빗 IP 어드레스와 글로벌 IP 어드레스의 상호 변환을 실행하여, LAN에 접속되고 프라이빗 IP 어드레스가 할당된 기기가, 인터넷에 접속된 다른 기기와 통신할 수 있게 한다.
이하, NAPT 기능의 메커니즘에 대하여, 도 10 내지 도 12를 참조하여 설명한다.
도 10은 종래 기술의 통신 시스템의 네트워크 구성의 일례를 나타내는 블록도이다. 도 10을 참조하면, 요구 수락 기기(13)와, NAPT 기능을 갖는 라우터 장치(104)는 LAN(106)을 구성하고, LAN(106)은, 라우터 장치(104)의 WAN측의 포 트(port)의 인터넷(WAN; Wide Area Network, 광역 통신망)(105)에 접속되어 있다. 서버 장치(11)와 요구 발행 기기(12)도, 또한 인터넷(WAN)(105)에 접속되어 있다.
여기서, 소위 인터넷과 LAN을 구별하기 위하여, 인터넷을 WAN(Wide Area Network)으로 표기하는 것으로 한다.
도 11은 NAPT 기능을 이용한 통신의 통신 시퀀스 다이어그램의 일례이다. 도 11을 참조하면, 패킷(21)은 요구 수락 기기(13)로부터 라우터 장치(104)에 송신된다. 패킷(23)은, 라우터 장치(104)가 패킷(21)에 대하여 왕로(往路) 변환(forward path conversion) 처리 단계 S22를 실행함으로써, 라우터 장치(104)로부터 서버 장치(11)에 송신된다. 또한, 패킷(25)은 서버 장치(11)로부터 라우터 장치(104)에 송신된다. 패킷(27)은, 라우터 장치(104)가 패킷(25)에 대하여 귀로(歸路) 변환 처리(backward path conversion) 단계 S26을 실행함으로써, 라우터 장치(104)로부터 요구 수락 기기(13)에 송신된다. 또한, 도 12는 라우터 장치(104)의 NAPT 테이블의 일례를 나타내는 표이다. 이 NAPT 테이블의 내용은, 라우터 장치(104) 내의 테이블 메모리(도시되어 있지 않음)에 저장되어 있다.
도 10에 나타내는 바와 같이, 서버 장치(11)에는 글로벌 IP 어드레스 "130.74.23.6"이 할당되고, 라우터 장치(104)의 WAN측에는 글로벌 IP 어드레스 "202.204.16.13"이 할당되어 있으며, 또한 요구 수락 기기(13)에는 프라이빗 IP 어드레스 "192.168.1.3"이 할당되어 있는 것으로 한다.
인터넷상에서의 통신에 이용되는 IP 패킷은, 발신처(source)를 특정하는 발신처 IP 어드레스 필드(이하, SA라고 한다)와, 수신처(destination)를 지정하는 수 신처 IP 어드레스 필드(이하, DA라고 한다)를 포함한다. 또한, 통신 프로토콜로서, TCP(Transmission Control Protocol)나 UDP(User Datagram Protocol)를 사용하는 경우에는, IP 패킷은 또한 발신처의 포트 번호인 발신처 포트 번호 필드(이하, SP라고 한다)와 수신처의 포트 번호인 수신처 포트 번호 필드(이하, DP라고 한다)도 포함한다.
요구 수락 기기(13)가 서버 장치(11)와 TCP 통신을 실행하는 경우에는, 요구 수락 기기(13)는, 예로서, 도 11에 나타낸 패킷(21)을 라우터 장치(104)에 송신한다. 패킷(21)은, 발신처를 특정하는 SA "192.168.1.3" 및 SP "2000"과, 수신처를 나타내는 DA "130.743.23.6" 및 DP "1200"을 포함하고 있다.
라우터 장치(104)는, 단계 S22에서, 수신한 패킷(21)에 대한 왕로 변환 처리를 실행하고, 처리된 패킷(23)을, 패킷의 수신처인 서버 장치(11)에 송신한다. 단계 S22의 왕로 변환 처리에서, 라우터 장치(104)는, 프라이빗 IP 어드레스인 SA "192.168.1.3"을, 라우터 장치(104)의 WAN측 글로벌 IP 어드레스인 "202.204.16.13"으로 대체한다. 또한, 라우터 장치(104)는 SP "2000"을 라우터 장치(104)의 WAN측 포트 번호 "3400"으로 대체한다. 이때, 라우터 장치(104)는, 도 12에 나타내는 바와 같이, IP 어드레스 "192.168.1.3" 및 "202.204.16.13"과, 포트 번호 "2000" 및 "3400"의 세트를, NAPT 테이블에 저장한다.
서버 장치(11)는, 패킷(23)을 수신하면, 단계 S24에서 소정의 응답 처리를 실행한 후, 패킷(23)에 대한 응답으로서, 패킷(25)을 라우터 장치(104)에 송신한다. 패킷(25)은 발신처를 특정하는 SA "130.743.23.6" 및 SP "1200"과, 수신처를 나타내는 DA "202.204.16.13" 및 DP "3400"을 포함하고 있다.
라우터 장치(104)는, 패킷(25)을 수신하면, NAPT 테이블을 참조하여, 패킷(25)에 대하여 단계 S26의 귀로 변환 처리를 실행하고, 처리된 패킷(27)을 요구 수락 기기(13)에 송신한다. 단계 S26의 귀로 변환 처리에 있어서, 라우터 장치(104)는, 우선, NAPT 테이블에서의 DA "202.204.16.13"과 DP "3400"의 쌍을 참조한다. 여기에는 이 쌍이 존재하므로, 라우터 장치(104)는, 패킷(25)의 DA "202.204.16.13"을 DA "192.168.1.3"으로 대체하고, 이어서, 패킷(25)의 DP "3400"을 DP "2000"으로 대체한다.
NAPT 테이블에 저장된 데이터는, 그 통신이 실행되는 동안 유지되고, 통신 종료 후에는 파기된다.
이상의 동작으로써, LAN상의 프라이빗 IP 어드레스를 갖는 기기는 인터넷에 접속된 다른 기기와 통신을 실행할 수 있다. 그러나, 반대로, 인터넷에 접속된 기기는 LAN상의 프라이빗 IP 어드레스를 갖는 기기와 통신을 개시할 수 없다.
이 문제를 해결하기 위하여, "정적(靜的) NAPT"라고 하는 기능이 있다. 환언하면, 정적인 NAPT 테이블을 라우터 장치(104)상에 미리 설정한다. 정적인 NAPT 테이블의 내용은, 도 12에 나타낸 NAPT 테이블의 내용과 동일하다. 그러나, 이 경우, 설정시에 WAN측의 포트 번호로서, 미사용 포트 번호를 지정해야 한다. 정적 NAPT 기능을 이용하면, 이하의 유리한 효과가 있다. 예로서, 인터넷측의 기기가, 설정된 글로벌 IP 어드레스와 설정된 포트 번호를 갖는 라우터 장치(104)에 패킷을 송신하면, 라우터 장치(104)는 도 11에 나타낸 동작과 유사한 방법으로 IP 어드레스와 포 트 번호를 변환한다. 이어서, 프라이빗 IP 어드레스를 갖고 있고 또한 LAN에 접속되어 있는 요구 수락 기기(13)에 패킷이 도달한다. 이에 따라서, 인터넷에 접속된 기기는 LAN상의 프라이빗 IP 어드레스를 갖는 기기와 통신을 실행할 수 있다.
그런데, 라우터 장치(104)의 글로벌 IP 어드레스는 항상 일정한 것은 아니다. 예로서, 라우터 장치(104)가 PPP(Point-to-Point Protocol; 두 지점간 프로토콜)를 이용하여 인터넷 서비스 제공자와 접속되거나, 또는 DHCP(Dynamic Host Configuration Protocol)에 의하여 IP 어드레스가 동적으로 할당되는 경우에는, 라우터 장치(104)가 인터넷에 접속할 때마다 글로벌 IP 어드레스가 변경되는 수가 있다. 이로 인하여, 접속되는 기기의 글로벌 IP 어드레스를 파악하는 것이 곤란하게 된다. 또한, 정적 NAPT를 이용하면, 통신을 실행하지 않는 동안에도 기기는 LAN상의 다른 기기에 액세스할 수 있으므로, 불리하게도 보안성이 낮아진다.
이러한 과제를 해결하기 위한 통신 시스템이, 일본국 특허 제3,445,986호에 관련되는 국제 특허 WO-2004-030314-A1호에 제안되어 있다. 상기 국제 특허에 제안된 통신 시스템에 대하여 도 10 내지 도 13을 이용하여 설명한다.
도 13은 도 10에 나타낸 통신 시스템의 통신 시퀀스의 일례를 나타내는 시퀀스 다이어그램이다. 도 10에 나타내는 바와 같이, 요구 발행 기기(12)에는, 글로벌 IP 어드레스로서 "8.117.12.109"가 할당되어 있는 것으로 한다. 또한, 요구 수락 기기(13)는, 기기(13)에 고유하게 할당된 기기 ID를 그 내부 메모리(도시되어 있지 않음)에 저장하고 있는 것으로 한다.
요구 수락 기기(13)는, 기기 ID를 페이로드에 포함하는 기기 등록 패킷(31) 을, UDP를 이용하여 서버 장치(11)에 정기적으로 송신한다. UDP 패킷인 기기 등록 패킷(31)의 SA에는, 요구 수락 기기(13)의 프라이빗 IP 어드레스인 "192.168.1.3"이 기록되어 있다. 기기 등록 패킷(31)이 라우터 장치(104)를 통과할 때에, 상기한 바와 같이 NAPT 기능에 의하여 기기 등록 패킷(31)의 SA와 SP가 변환되고, 변환된 패킷(31)이 서버 장치(11)에 송신된다. 서버 장치(11)는, 수신한 기기 등록 패킷(31)을 참조하여, 단계 S32에서, 요구 수락 기기(13)의 기기 ID, 글로벌 IP 어드레스 및 포트 번호의 세트를 저장한다.
요구 수락 기기(13)는 기기 등록 패킷(31)을 서버 장치(11)에 정기적으로 송신한다. 따라서, 라우터 장치(104)의 글로벌 IP 어드레스 또는 WAN측 포트 번호가 변경된 경우에도, 단계 S32, 또는 단계 S32와 유사한 단계 S32A 등을 실행함으로써, 서버 장치(11)에 저장된, 요구 수락 기기(13)의 기기 ID, 글로벌 IP 어드레스 및 포트 번호의 세트가 자동적으로 갱신된다.
한편, 요구 발행 기기(12)가 요구 수락 기기(13)와의 통신을 희망하는 경우에는, 요구 발행 기기(12)는, 우선, 서버 장치(11)에 TCP 접속 개시 패킷(33)을 송신함으로써 서버 장치(11)와의 TCP 접속을 설정하고, 접속 상대인 요구 수락 기기(13)의 기기 ID를 갖는 접속 요구 패킷(34)을 서버 장치(11)에 송신한다. 서버 장치(11)는, 접속 요구 패킷(34)을 수신하면, 단계 S35에서, 내부 메모리(도시되어 있지 않음)에 저장된 기기 ID의 리스트를 참조한다. 접속 요구 패킷(34)에 포함된 기기 ID와 동일한 기기 ID의 정보가 존재하면, 서버 장치(11)는 이 기기 ID에 관련되어 있는 IP 어드레스 및 포트 번호가 나타내는 기기에 대하여, UDP를 이용하여 접속 요구 통지 패킷(36)을 송신한다. 접속 요구 통지 패킷(36)은, 기기 등록 패킷(31)에 대한 응답으로서 라우터 장치(104)에 송신된다. 따라서, 라우터 장치(104)에 의해서 IP 어드레스와 포트 번호가 변환되어서, 접속 요구 통지 패킷(36)이 요구 수락 기기(13)에 도달할 수 있다. 요구 수락 기기(13)는, 접속 요구 통지 패킷(36)을 수신하면, 서버 장치(11)에 TCP 접속 개시 패킷(37)을 송신함으로써, 서버 장치(11)와의 TCP 접속을 설정한다.
이후, 요구 발행 기기(12)가, TCP 접속 개시 패킷(33)에 의하여 개시된 TCP 접속을 이용하여 명령(command) 신호(38)를 서버 장치(11)에 송신하면, 서버 장치(11)는, TCP 접속 개시 패킷(37)에 의하여 개시된 TCP 접속을 이용하여 명령 신호(38)를 요구 수락 기기(13)에 전송할 수 있다. 또한, 요구 수락 기기(13)가, TCP 접속 개시 패킷(37)에 의하여 개시된 TCP 접속을 이용하여 서버 장치(11)에 패킷을 송신하면, 서버 장치(11)는, TCP 접속 개시 패킷(33)에 의하여 개시된 TCP 접속을 이용하여 이 패킷을 요구 발행 기기(12)에 전송한다.
이러한 방법으로, 서버 장치(11)의 중계에 의하여, 인터넷에 접속된, 글로벌 IP 어드레스를 갖는 기기인 요구 발행 기기(12)와, LAN에 접속된, 프라이빗 IP 어드레스를 갖는 기기인 요구 수락 기기(13)와의 사이에, 통신을 실행할 수 있다. 요구 발행 기기(12)가 다른 LAN에 존재하고, 라우터 장치를 통하여 인터넷에 접속되어 있는 경우에도, 요구 발행 기기(12)는 동일한 동작에 의하여 요구 수락 기기(13)와 통신을 실행할 수 있다.
또한, 일본국 특허 출원 공개 공보 제2003-203023호에는, 인터넷에 접속된, 미지(未知)의 기기 간에 글로벌 IP 어드레스를 직접 전송하기 위한, 즉, 피어 투 피어 전송을 실행하기 위한 정보 처리 시스템이 개시되어 있다. 글로벌 IP 어드레스를 각각 갖는 클라이언트인 퍼스널 컴퓨터를 피어 투 피어 접속으로써 서로 접속하고, 기타 클라이언트를 서버를 통하여 클라이언트-서버 접속으로써 서로 접속한다. 피어 투 피어 접속은 서버로부터 취득한 서로의 글로벌 IP 어드레스에 따라서 설정된다. 클라이언트-서버 접속을 피어 투 피어 접속으로 부분적으로 변경함으로써, 서버에 대한 트래픽(traffic)의 국부적인 집중을 방지할 수 있다.
그러나, 국제 특허 WO-2004-030314-A1호에 개시된 통신 시스템은 이하의 문제가 있다. 상기 국제 특허에 개시된 통신 시스템은 항상 서버 장치(11)를 통하여 통신을 실행한다. 이로 인하여, 기기 간에 동화상 데이터 등 대용량의 데이터를 전송하는 경우, 서버 장치(11)에 큰 부하가 걸린다. 특히 복수의 통신이 동시에 실행되면, 복수의 서버 장치를 이용하여 분산 처리를 실행해도 때로는 통신을 처리할 수 없다.
또한, 일본국 특허 출원 공개 공보 제2003-203023호에 개시된 정보 처리 시스템은, 글로벌 IP 어드레스를 갖는 기기 간에만 피어 투 피어 전송을 실행하고, 프라이빗 IP 어드레스를 갖는 LAN에 접속된 기기 간에는 피어 투 피어 전송을 실행하지 않는다.
본 발명의 목적은, 종래 기술의 상기 문제점을 해결하고, 프라이빗 IP 어드레스를 각각 갖는, 다른 LAN상의 기기 간에 피어 투 피어 전송을 실현하며, 또한 부정 액세스를 방지할 수 있는 서버 장치, 요구 발행 기기, 요구 수락 기기, 통신 시스템 및 통신 방법을 제공하는 것이다.
또한, 본 발명의 다른 목적은, 상기 통신 방법의 각 단계를 포함하는 프로그램을 제공하는 것이다.
본 발명의 제1형태에 의하면, 통신 시스템에 설치되는 서버 장치가 제공된다. 상기 통신 시스템에 있어서, 서버 장치, 및 요구 발행 기기와 요구 수락 기기를 포함하는 복수의 기기가, 각각, 네트워크에 접속되고, 상기 서버 장치는 상기 요구 발행 기기로부터 상기 요구 수락 기기에의 접속 요구 신호를 전송한다. 상기 서버 장치는, 상기 복수의 기기의 각각에 관한 기기 정보의 세트를 포함하는 기기 정보 리스트를 저장하는 기기 정보 저장 장치를 구비하고, 상기 기기 정보의 세트는, 상기 복수의 기기의 각각에 관련된 IP 어드레스 및 포트 번호, 및 상기 복수의 기기의 각각의 기기 ID를 포함한다.
상기 서버 장치는, 상기 요구 수락 기기에 관한 기기 정보의 세트를 포함하고 또한 상기 요구 수락 기기로부터 정기적으로 송신되는 기기 등록 신호를 수신하여, 상기 수신된 기기 등록 신호에 포함된 상기 요구 수락 기기에 관한 기기 정보의 세트를 상기 기기 정보 저장 장치에 저장한다. 상기 서버 장치는, 상기 요구 발행 기기로부터 송신되는 제1TCP 접속 개시 신호를 수신하여 상기 요구 발행 기기와의 사이의 제1TCP 접속을 설정한다. 상기 서버 장치는, 상기 요구 수락 기기의 기기 ID와, 상기 요구 발행 기기에 관련된 IP 어드레스 및 포트 번호를 포함하는, 상기 요구 수락 기기에의 요구인 제1접속 요구 신호를 상기 제1TCP 접속을 이용하여 상기 요구 발행 기기로부터 수신한다. 상기 서버 장치는, 상기 수신된 제1접속 요구 신호에 포함된 상기 요구 수락 기기의 기기 ID를 상기 기기 정보 리스트로부터 검색하고, 상기 기기 정보 리스트에서, 상기 제1접속 요구 신호에 포함된 요구 수락 기기의 기기 ID와 일치하는 기기 ID를 포함하는 기기 정보의 세트에 관련된 기기를 상기 요구 수락 기기로서 식별하고, 또한 상기 식별된 요구 수락 기기에 관한 기기 정보의 세트에 포함된 IP 어드레스 및 포트 번호를 상기 요구 수락 기기에 관련된 IP 어드레스 및 포트 번호로서 식별한다. 상기 서버 장치는, 상기 식별된 요구 수락 기기에, 상기 식별된 IP 어드레스 및 상기 식별된 포트 어드레스를 수신처로 하여, 상기 수신된 제1접속 요구 신호에 포함되고 상기 요구 발행 기기에 관련된 IP 어드레스 및 포트 번호를 포함하는 제2접속 요구 신호를, 상기 기기 등록 신호에 대한 응답 신호로서 송신한다.
상기 서버 장치에 있어서, 상기 식별된 요구 수락 기기에 관한 기기 정보의 세트에 포함된 IP 어드레스 및 포트 번호를 상기 요구 수락 기기에 관련된 IP 어드레스 및 포트 번호로서 식별한 후, 또한 상기 식별된 요구 수락 기기에 상기 제2접속 요구 신호를 송신하기 전에, 상기 서버 장치는, 상기 요구 수락 기기에 제3접속 요구 신호를 송신하고, 상기 요구 수락 기기로부터 상기 제3접속 요구 신호에 대한 응답 신호로서 제2TCP 접속 개시 신호를 수신하여 상기 요구 수락 기기와의 제2TCP 접속을 설정한다. 상기 서버 장치는, 상기 설정된 제2TCP 접속을 이용하여 상기 요구 수락 기기에 상기 제2접속 요구 신호를 송신한다.
상기 서버 장치에 있어서, 상기 제1접속 요구 신호는, 상기 요구 수락 기기의 패스워드 정보를 추가로 포함한다. 상기 서버 장치는, 상기 제1접속 요구 신호에 포함된 상기 패스워드 정보를 상기 제2접속 요구 신호에 부가하여, 상기 패스워드 정보를 포함하는 제2접속 요구 신호를 송신한다.
또한, 상기 서버 장치는, 제1암호 통신 장치와 증명서 정보 저장 장치를 구비하고 있다. 제1암호 통신 장치는 제1통신용 공통 키(key) 및 제2통신용 공통 키를 생성하고, 상기 제1통신용 공통 키를 이용하여 수신한 신호를 복호화하고, 또한 상기 제2통신용 공통 키를 이용하여 송신하는 신호를 암호화한다. 증명서 정보 저장 장치는 상기 서버 장치의 정당성을 증명하기 위한 서버 증명서 정보를 저장한다.
상기 서버 장치는, 상기 제1접속 요구 신호를 수신하기 전에, 상기 요구 발행 기기에 상기 서버 증명서 정보를 송신한다. 상기 서버 장치는, 상기 요구 발행 기기로부터, 상기 서버 증명서 정보에 응답하여 생성된 제1공통 키 생성 정보를 상기 제1TCP 접속을 이용하여 수신하고, 상기 제1공통 키 생성 정보에 응답하여 상기 제1암호 통신 장치로써 제2공통 키 생성 정보를 생성하고, 상기 제1공통 키 생성 정보 및 상기 제2공통 키 생성 정보에 따라서 상기 제1암호 통신 장치로써 제1통신용 공통 키를 생성하고, 상기 제2공통 키 생성 정보를 상기 요구 발행 기기에 상기 제1TCP 접속을 이용하여 송신하고, 또한 상기 요구 발행 기기에 대하여 상기 제1통신용 공통 키와 동일한 통신용 공통 키를 상기 제1공통 키 생성 정보 및 상기 제2공통 키 생성 정보에 따라서 생성하게 하여 상기 제1통신용 공통 키를 상기 요구 발행 기기와 공유한다. 상기 서버 장치는, 상기 요구 발행 기기로부터, 상기 제1통신용 공통 키를 이용하여 암호화된 상기 제1접속 요구 신호를, 상기 제1TCP 접속을 이용하여 수신하고, 또한 상기 제1암호 통신 장치가 상기 수신된 제1접속 요구 신호를, 상기 제1통신용 공통 키를 이용하여 복호화한다. 상기 서버 장치는, 상기 제2접속 요구 신호를 송신하기 전에, 상기 요구 수락 기기에 상기 서버 증명서 정보를 송신한다. 상기 서버 장치는, 상기 요구 수락 기기로부터, 상기 서버 증명서 정보에 응답하여 생성된 제3공통 키 생성 정보를 상기 제2TCP 접속을 이용하여 수신하고, 상기 제1암호 통신 장치로써 상기 제3공통 키 생성 정보에 응답하여 제4공통 키 생성 정보를 생성하고, 상기 제1암호 통신 장치로써 상기 제3공통 키 생성 정보 및 상기 제4공통 키 생성 정보에 따라서 제2통신용 공통 키를 생성하고, 상기 제4공통 키 생성 정보를 상기 요구 수락 기기에 상기 제2TCP 접속을 이용하여 송신하고, 또한 상기 요구 수락 기기에 대하여 상기 제2통신용 공통 키와 동일한 통신용 공통 키를 상기 제3공통 키 생성 정보 및 상기 제4공통 키 생성 정보에 따라서 생성하게 하여 상기 제2통신용 공통 키를 상기 요구 수락 기기와 공유한다. 상기 서버 장치는, 상기 제1접속 요구 신호를 수신한 후, 또한 상기 제2접속 요구 신호를 송신하기 전에, 상기 제1암호 통신 장치로써 상기 제2통신용 공통 키를 이용하여 상기 제2접속 요구 신호를 암호화한다.
본 발명의 제2형태에 의하면, 통신 시스템에 설치되는 요구 발행 기기가 제공된다. 요구 발행 기기에 있어서, 서버 장치, 및 요구 발행 기기와 요구 수락 기기를 포함하는 복수의 기기가, 각각, 네트워크에 접속되고, 상기 요구 발행 기기는 상기 서버 장치 및 상기 요구 수락 기기와의 통신을 실행한다. 상기 요구 발행 기기는, 상기 서버 장치에 제1TCP 접속 개시 신호를 송신함으로써 상기 서버 장치와의 사이의 제1TCP 접속을 설정한다. 상기 요구 발행 기기는, 상기 요구 수락 기기의 기기 ID와, 상기 요구 발행 기기에 관련된 IP 어드레스 및 포트 번호를 포함하는, 상기 요구 수락 기기에의 요구인 제1접속 요구 신호를 상기 제1TCP 접속을 이용하여 상기 서버 장치에 송신한다. 상기 요구 발행 기기는, 상기 요구 발행 기기와 상기 요구 수락 기기와의 사이의 통신을 요구하는 통신 요구 신호를 상기 요구 수락 기기로부터 수신한 후에, 상기 통신 요구 신호에 응답하여 상기 요구 발행 기기와 상기 요구 수락 기기와의 사이의 통신을 수락하고, 상기 요구 수락 기기와의 통신을 개시한다.
상기 요구 발행 기기에 있어서, 상기 제1접속 요구 신호는, 상기 요구 수락 기기의 패스워드 정보를 추가로 포함한다.
또한, 상기 요구 발행 기기는, 제2암호 통신 장치와 제1증명서 정보 인증 장치를 포함한다. 제2암호 통신 장치는, 제1통신용 공통 키를 생성하고, 또한 상기 제1통신용 공통 키를 이용하여 송신하는 신호를 암호화한다. 상기 제1증명서 정보 인증 장치는, 상기 서버 장치의 정당성을 증명하기 위한 서버 증명서 정보를 인증한다. 상기 요구 발행 기기는, 상기 제1접속 요구 신호를 송신하기 전에, 상기 서버 장치로부터 상기 서버 증명서 정보를 수신한다. 상기 요구 발행 기기는, 상기 수신된 서버 증명서 정보를 상기 제1증명서 정보 인증 장치로써 인증하고, 또한 상기 수신된 서버 증명서 정보가 정당한가 아닌가를 확인한다. 상기 요구 발행 기기는, 상기 수신된 서버 증명서 정보가 정당한 것으로 확인되었을 때, 상기 제2암호 통신 장치로써 제1공통 키 생성 정보를 생성하고, 상기 생성된 제1공통 키 생성 정보를 상기 제1TCP 접속을 이용하여 상기 서버 장치에 송신하고, 상기 서버 장치로부터, 상기 제1공통 키 생성 정보에 응답하여 생성된 제2공통 키 생성 정보를 상기 제1TCP 접속을 이용하여 수신하고, 상기 제1공통 키 생성 정보 및 상기 제2공통 키 생성 정보에 따라서 상기 제2암호 통신 장치로써 제1통신용 공통 키를 생성하고, 또한 상기 서버 장치에 대하여 상기 제1공통 키 생성 정보 및 상기 제2공통 키 생성 정보에 따라서 상기 제1통신용 공통 키와 동일한 통신용 공통 키를 생성하게 하여, 상기 제1통신용 공통 키를 상기 서버 장치와 공유한다. 상기 요구 발행 기기는, 상기 제1접속 요구 신호를 송신하기 전에, 상기 제2암호 통신 장치로써 상기 제1통신용 공통 키를 이용하여 상기 제1접속 요구 신호를 암호화한다. 상기 요구 발행 기기는, 상기 암호화된 상기 제1접속 요구 신호를 상기 제1TCP 접속을 이용하여 상기 서버 장치에 송신한다.
본 발명의 제3형태에 의하면, 통신 시스템에 설치되는 요구 수락 기기가 제공된다. 상기 통신 시스템에 있어서, 서버 장치, 및 요구 발행 기기와 요구 수락 기기를 포함하는 복수의 기기가, 각각, 네트워크에 접속되고, 상기 요구 수락 기기는 상기 서버 장치 및 상기 요구 발행 기기와의 통신을 실행한다. 상기 요구 수락 기기는 상기 요구 수락 기기의 기기 ID를 저장하는 기기 ID 저장 장치를 구비하고 있다. 상기 요구 수락 기기는, 상기 요구 수락 기기의 기기 ID를 포함하는 기기 등록 신호를 상기 서버 장치에 정기적으로 송신한다. 상기 요구 수락 기기는, 상기 요구 발행 기기에 관련된 IP 어드레스 및 포트 번호를 포함하는 제2접속 요구 신호를, 상기 기기 등록 신호에 대한 응답 신호로서 상기 서버 장치로부터 수신한다. 상기 요구 수락 기기는, 상기 수신된 제2접속 요구 신호에 포함된 IP 어드레스 및 포트 번호가 나타내는 상기 요구 발행 기기에, 상기 요구 수락 기기와 상기 요구 발행 기기와의 사이의 통신을 요구하는 통신 요구 신호를 송신한다. 상기 요구 수락 기기는, 상기 요구 발행 기기가 상기 통신 요구 신호에 응답하여 상기 요구 수락 기기와 상기 요구 발행 기기와의 사이의 통신을 수락한 후에, 상기 요구 발행 기기와의 통신을 개시한다.
상기 요구 수락 기기에 있어서, 상기 기기 등록 신호를 상기 서버 장치에 송신한 후, 또한 상기 제2접속 요구 신호를 수신하기 전에, 상기 요구 수락 기기는, 상기 기기 등록 신호에 대한 응답 신호로서 상기 서버 장치로부터 제3접속 요구 신호를 수신하고, 상기 제3접속 요구 신호에 대한 응답 신호로서 제2TCP 접속 개시 신호를 상기 서버 장치에 송신함으로써 상기 서버 장치와의 제2TCP 접속을 설정한다. 상기 요구 수락 기기는, 상기 설정된 제2TCP 접속을 이용하여 상기 서버 장치로부터 상기 제2접속 요구 신호를 수신한다.
또한, 상기 요구 수락 기기는 상기 요구 수락 기기의 패스워드 정보를 저장하는 패스워드 정보 저장 장치를 구비하고 있다. 상기 요구 수락 기기는, 패스워드 정보를 추가로 포함하는 상기 제2접속 요구 신호를, 상기 제2TCP 접속을 이용하여 상기 서버 장치로부터 수신한다. 상기 요구 수락 기기는, 상기 제2접속 요구 신호에 포함된 패스워드 정보가, 상기 패스워드 정보 저장 장치에 저장된, 상기 요구 수락 기기의 패스워드 정보와 일치할 때에만, 상기 통신 요구 신호를 상기 요구 발행 기기에 송신한다.
또한, 상기 요구 수락 기기는, 제3암호 통신 장치와 제2증명서 정보 인증 장치를 구비하고 있다. 제3암호 통신 장치는, 제2통신용 공통 키를 생성하고, 상기 제2통신용 공통 키를 이용하여 수신한 신호의 복호화를 실행한다. 제2증명서 정보 인증 장치는, 상기 서버 장치의 정당성을 증명하기 위한 서버 증명서 정보를 인증한다. 상기 요구 수락 기기는, 상기 제2접속 요구 신호를 수신하기 전에, 상기 서버 장치로부터 상기 서버 증명서 정보를 수신한다. 상기 요구 수락 기기는, 상기 제2증명서 정보 인증 장치로써 상기 수신된 서버 증명서 정보가 정당한가 아닌가를 인증하여, 상기 수신된 서버 증명서 정보가 정당한가 아닌가를 확인한다. 상기 요구 수락 기기는, 상기 수신된 서버 증명서 정보가 정당한 것으로 확인되었을 때, 상기 제3암호 통신 장치로써 제3공통 키 생성 정보를 생성하고, 상기 생성된 제3공통 키 생성 정보를 상기 제2TCP 접속을 이용하여 상기 서버 장치에 송신하고, 상기 서버 장치로부터, 상기 제3공통 키 생성 정보에 응답하여 생성된 제4공통 키 생성 정보를 상기 제2TCP 접속을 이용하여 수신하고, 상기 제2공통 키 생성 정보 및 상기 제4공통 키 생성 정보에 따라서 상기 제3암호 통신 장치로써 제2통신용 공통 키를 생성하고, 또한 상기 서버 장치에 대하여 상기 제3공통 키 생성 정보 및 상기 제4공통 키 생성 정보에 따라서 상기 제2통신용 공통 키와 동일한 통신용 공통 키를 생성하게 하여, 상기 제2통신용 공통 키를 상기 서버 장치와 공유한다. 상기 요구 수락 기기는, 상기 서버 장치로부터, 상기 제2통신용 공통 키를 이용하여 암호화된 상기 제2접속 요구 신호를, 상기 제2TCP 접속을 이용하여 수신하고, 또한 상기 제3암호 통신 장치로써 상기 제2통신용 공통 키를 이용하여 상기 수신된 제2접속 요구 신호를 복호화한다.
본 발명의 제4형태에 의하면, 서버 장치, 및 요구 발행 기기와 요구 수락 기기를 포함하는 복수의 기기를 구비한 통신 시스템이 제공된다. 상기 통신 시스템에 있어서, 상기 복수의 기기 및 상기 서버 장치가, 각각, 네트워크에 접속되어 있다.
본 발명의 제5형태에 의하면, 상기 서버 장치, 상기 요구 발행 기기, 및 상기 요구 수락 기기에 의해서 실행되는 단계를 포함하는 통신 방법이 제공된다.
본 발명의 제6형태에 의하면, 상기 통신 방법을 컴퓨터로써 실행하기 위한 프로그램이 제공된다.
따라서, 본 발명에 의하면, 프라이빗 IP 어드레스를 각각 갖는 상이한 LAN상의 기기인 요구 발행 기기와 요구 수락 기기와의 사이에, 부정 액세스를 방지하면서 피어 투 피어 통신을 실현할 수 있다. 또한, 본 발명에 의하면, 인터넷에 접속된 컴퓨터 또는 기기에 의해서 판독되었을 때에 상기 통신 방법의 각 단계를 상기 컴퓨터 또는 기기가 실행할 수 있게 하는, 상기 통신 방법의 각 단계를 포함하는 프로그램이 제공될 수 있다.
도 1은 본 발명의 바람직한 실시형태에 의한 통신 시스템의 네트워크 구성의 블록도.
도 2는 도 1에 나타낸 통신 시스템에서 실행되는 통신 시퀀스의 일례를 나타내는 시퀀스 다이어그램.
도 3은 도 2에 나타낸 단계 S203의 제1접속 요구 시퀀스에서의 상세한 처리를 나타내는 시퀀스 다이어그램.
도 4는 도 2에 나타낸 단계 S206의 제2접속 요구 시퀀스에서의 상세한 처리를 나타내는 시퀀스 다이어그램.
도 5는 도 1에 나타낸 요구 발행 기기(102) 및 요구 수락 기기(103)에 대하여 서버 장치(101)가 정당한가 아닌가를 인증하는 증명서 인증 장치(51)의 블록도.
도 6은 도 1에 나타낸 라우터 장치(104a)의 내부 테이블 메모리(104am)에 저장된 NAPT 테이블의 일례를 나타내는 표.
도 7A는 도 2에 나타낸 LAN측에서의 기기 등록 패킷(201)의 구성을 나타내는 개략도.
도 7B는 도 2에 나타낸 WAN측에서의 기기 등록 패킷(201)의 구성을 나타내는 개략도.
도 7C는 도 3에 나타낸 LAN측에서의 접속 요구 패킷(217)의 구성을 나타내는 개략도.
도 7D는 도 3에 나타낸 WAN측에서의 접속 요구 패킷(217)의 구성을 나타내는 개략도.
도 8A는 도 2에 나타낸 LAN측에서의 접속 요구 통지 패킷(205)의 구성을 나타내는 개략도.
도 8B는 도 2에 나타낸 WAN측에서의 접속 요구 통지 패킷(205)의 구성을 나타내는 개략도.
도 8C는 도 4에 나타낸 LAN측에서의 접속 요구 패킷(226)의 구성을 나타내는 개략도.
도 8D는 도 4에 나타낸 WAN측에서의 접속 요구 패킷(226)의 구성을 나타내는 개략도.
도 9는 도 1에 나타낸 서버 장치(101)의 테이블 메모리(101m)에 저장된 기기 정보 리스트의 일례를 나타내는 표.
도 10은 종래 기술의 통신 시스템의 네트워크 구성의 일례를 나타내는 블록도.
도 11은 라우터 장치(104)의 NAPT 기능을 이용한 통신의 통신 시퀀스의 일례를 나타내는 시퀀스 다이어그램.
도 12는 라우터 장치(104)의 NAPT 테이블의 일례를 나타내는 표.
도 13은 도 10에 나타낸 통신 시스템의 통신 시퀀스의 일례를 나타내는 시퀀스 다이어그램.
이하, 본 발명의 바람직한 실시형태에 대하여 도 1 내지 도 9를 참조하여 설명한다.
도 1은 본 발명의 바람직한 실시형태에 의한 통신 시스템의 네트워크 구성의 일례를 나타내는 블록도이다. 요구 발행 기기(102)와, NAPT 기능을 구비한 라우터 장치(104a)는 요구 발행측 LAN(106a)을 구성한다. 요구 발행측 LAN(106a)은, 라우터 장치(104a)의 WAN측 포트에서 인터넷(WAN)(105)에 접속되어 있다. 또한, 요구 수락 기기(103)와, NAPT 기능을 갖는 라우터 장치(104b)는 요구 수락측 LAN(106b)을 구성한다. 요구 수락측 LAN(106b)은, 라우터 장치(104b)의 WAN측의 포트에서 인터넷(WAN)(105)에 접속되어 있다. 또한, 서버 장치(101)는 인터넷(WAN)(105)에 접속되어 있다.
본 바람직한 실시형태에 의한 통신 시스템은, 인터넷(WAN)(105)에 각각 접속된, 요구 발행 기기(102) 및 요구 수락 기기(103) 등의 복수의 기기와, 인터넷(105)에 접속된 서버 장치(101)를 구비하고 있다. 상기 통신 시스템에 있어서, 요구 발행측 LAN(106a)상의 요구 발행 기기(102)는, 접속 요구 신호를 서버 장치(101)를 통하여 요구 수락측 LAN(106b)상의 요구 수락 기기(103)에 전송하여, 요구 발행 기기(102)와 요구 수락 기기(103)와의 사이에 통신을 실행한다. 이 통신 시스템에 있어서, 서버 장치(101)는 각각의 기기에 관련된 IP 어드레스와 포트 번호, 및 상기 각 기기의 기기 ID로 구성된, 각각의 기기에 관한 기기 정보의 세트를 포함하는, 도 9에 나타낸 기기 정보 리스트를 저장하는 기기 정보 저장 수단 또는 장치의 테이블 메모리(101m)를 구비하고 있다. 요구 수락 기기(103)는 요구 수락 기기(103)에 관한 기기 정보의 세트를 포함하는 기기 등록 패킷(201)을 서버 장치(101)에 정기적으로 송신한다. 서버 장치(101)는 기기 등록 패킷(201)을 수신하고, 도 2에 나타낸 단계 S202 및 S202A에서, 이 수신된 기기 등록 패킷(201)에 포함된, 요구 수락 기기(103)에 관한 기기 정보의 세트를 상기 기기 정보 저장 수단의 테이블 메모리(101m)에 저장한다. 요구 발행 기기(102)는, 요구 수락 기기(103)와 통신을 실행할 때에, 우선, 단계 S203의 제1접속 요구 시퀀스를 실행한다. 단계 S203에서는, 요구 발행 기기(102)가 서버 장치(101)에 TCP 접속 개시 패킷(211)을 송신함으로써 서버 장치(101)와 제1TCP 접속을 설정하고, 이어서, 요구 수락 기기(103)의 기기 ID와, 요구 발행 기기(102)에 관련된 IP 어드레스 및 포트 번호를 포함하는, 요구 수락 기기(103)에 전송할 접속 요구 패킷(217)을, 상기 제1TCP 접속을 이용하여 서버 장치(101)에 송신한다. 서버 장치(101)는 접속 요구 패킷(217)을 수신한다. 단계 S204에서, 서버 장치(101)는, 수신된 접속 요구 패킷(217)에 포함된 요구 수락 기기(103)의 기기 ID를 상기 기기 정보 리스트로부터 검색하고, 상기 기기 정보 리스트에서, 접속 요구 패킷(217)에 포함된, 요구 수락 기기(103)의 기기 ID와 일치하는 기기 ID를 포함하는 기기 정보의 세트에 관련된 기기를, 요구 수락 기기(103)로서 식별하고, 또한 상기 기기 정보 리스트에서, 상기 식별된 요구 수락 기기(103)에 관한 기기 정보의 세트에 포함된 IP 어드레스 및 포트 번호를, 요구 수락 기기(103)에 관련된 IP 어드레스 및 포트 번호로서 식별한다. 단계 S205에서, 서버 장치(101)는, 상기 식별된 요구 수락 기기(103)에, 상기 식별된 IP 어드레스 및 포트 번호를 수신처로 하여, 요구 발행 기기(102)에 관련되고 또한 상기 수신된 접속 요구 패킷(217)에 포함된, IP 어드레스 및 포트 번호를 포함하는 접속 요구 패킷(226)을, 기기 등록 패킷(201)에 대한 응답 신호로서 송신한다. 요구 수락 기기(103)는 상기 접속 요구 패킷(226)을 수신한다. 또한, 요구 수락 기기(103)는, 상기 수신된 접속 요구 패킷(226)에 포함된 IP 어드레스 및 포트 번호가 나타내는 요구 발행 기기(102)에, 요구 발행 기기(102)와 요구 수락 기기(103)와의 사이의 통신을 요구하는 통신 요구 신호로서, TCP 접속 요구 패킷(208)을 송신한다. 요구 발행 기기(102)가 TCP 접속 요구 패킷(208)에 응답하여 요구 발행 기기(102)와 요구 수락 기기(103)와의 사이의 통신을 수락하면, 단계 S209에서 요구 발행 기기(102)와 요구 수락 기기(103)와의 사이의 데이터 통신을 위한 데이터 통신 시퀀스가 개시된다.
본 바람직한 실시형태에 있어서, 서버 장치(101), 요구 발행 기기(102) 및 요구 수락 기기(103)는 전용 통신 기기로 구성할 수도 있고, 또는 이후에 설명하는 복수의 단계를 실행하기 위한, 컴퓨터로써 판독 가능한 프로그램에 의하여 동작되는 범용 컴퓨터로 구성할 수도 있다.
본 바람직한 실시형태에 있어서는, 이하와 같이, 도 1에 나타내는 바와 같이 되어 있는 것으로 한다. 서버 장치(101)에는 글로벌 IP 어드레스로서 "130.74.23.6"이 할당되고, 서버 장치(101)는 그 자체의 글로벌 IP 어드레스와 기기 정보 리스트를 저장하는 테이블 메모리(101m)를 구비하고 있다. 요구 발행 기기(102)에는 프라이빗 IP 어드레스로서 "192.168.1.11"이 할당된다. 요구 수락 기기(103)에는 프라이빗 IP 어드레스로서 "192.168.1.3"이 할당된다. 요구 발행 기기(102)는 그 자체의 프라이빗 IP 어드레스와 포트 번호를 저장하는 테이블 메모리(102m)를 구비하고 있다. 요구 수락 기기(103)는 그 자체의 프라이빗 IP 어드레스와 포트 번호를 저장하는 테이블 메모리(103m)를 구비하고 있다. 라우터 장치(104a)에는 글로벌 IP 어드레스로서 "4.17.168.2"가 할당되고, 라우터 장치(104b)에는 글로벌 IP 어드레스로서 "202.204.16.13"이 할당된다. 라우터 장치(104a)는, 그 WAN측의 포트 번호 및 글로벌 IP 어드레스와, 요구 발행 기기(102) 의 프라이빗 IP 어드레스 및 포트 번호를 포함하는, 도 12에 나타내는 방법과 마찬가지의 방법으로, 도 6의 NAPT 테이블의 내용을, 그 내부의 테이블 메모리(104am)에 저장한다. 또한, 라우터 장치(104b)는, 그 WAN측의 포트 번호 및 글로벌 IP 어드레스와, 요구 수락 기기(103)의 프라이빗 IP 어드레스 및 포트 번호를 포함하는 NAPT 테이블의 내용을, 그 내부의 테이블 메모리(104bm)에 저장한다.
또한, 이하와 같이 하는 것으로 한다. 요구 발행 기기(102)는 그 기기(102)에 고유하게 할당된 기기 ID "1051"을 그 내부의 테이블 메모리(102m)에 저장하고, 요구 수락 기기(103)는 그 기기(103)에 고유하게 할당된 기기 ID "2133"을 그 내부의 테이블 메모리(103m)에 저장한다. 이 기기 ID는, 피어 투 피어 통신을 실행하는 본 바람직한 실시형태의 각각의 기기에 대하여 고유하게 지정된 식별 정보이다. 예로서, 이 기기의 제조업자에 의하여 할당된 식별 번호, 또는 MAC 어드레스를 기기 ID로 이용할 수 있다. 그러나, 기기 ID는 그것들에 한정되지 않는다.
또한, 요구 수락 기기(103)는 비밀 정보인 패스워드를 그 내부의 테이블 메모리(103m)에 저장하는 것으로 한다. 이후에 설명하는 바와 같이, 요구 수락 기기(103)와의 피어 투 피어 통신을 실행하는 요구 발행 기기(102)는, 요구 수락 기기(102)의 패스워드 및 기기 ID와, 라우터 장치(104a)의 글로벌 IP 어드레스 및 WAN측 포트 번호를 미리 취득하여 내부의 테이블 메모리(102m)에 저장하는 것을 필요로 한다.
도 2 내지 도 4는 도 1에 나타낸 통신 시스템에서 실행되는 통신 시퀀스의 일례를 나타내는 시퀀스 다이어그램이다. 또한, 도 7A 내지 7D 및 도 8A 내지 8D 는, 도 2 내지 도 4에 나타낸 통신 시퀀스에서 이용하는 복수의 패킷의 예를 나타낸다.
요구 수락 기기(103)는, 기기 ID를 페이로드에 포함하는 기기 등록 패킷(201)을, UDP를 이용하여 정기적으로, 또는 소정의 주기로, 서버 장치(101)에 송신한다. 도 7A에 나타내는 바와 같이, 요구 수락측 LAN(106b)내에는, 기기 등록 패킷(201)의 SA에 "192.168.1.3"이 기록되어 있고, 기기 등록 패킷(201)의 SP에는 "2000"이 기록되어 있다. 기기 등록 패킷(201)은 라우터 장치(104b)를 통하여 서버 장치(101)에 송신된다. 기기 등록 패킷(201)이 라우터 장치(104b)를 통과할 때에, 라우터 장치(104b)는, 그 NAPT 기능으로써, 기기 등록 패킷(201)상의 SA를 "202.204.16.13"으로 변환하고, 또한 기기 등록 패킷(201)상의 SP를 "3400"으로 변환한다. 도 7B에 나타내는, NAPT 기능에 의하여 변환된 후의 기기 등록 패킷(201)은 인터넷(WAN)(105)을 경유하여 서버 장치(101)에 송신된다.
서버 장치(101)는, 인터넷(WAN)(105)에 접속된 각각의 기기에 관련된 IP 어드레스와 포트 번호, 및 상기 각 기기의 기기 ID로 구성되는 상기 각 기기에 관한 기기 정보의 세트를 포함하는 기기 정보 리스트를 저장하는 테이블 메모리(101m)를 구비하고 있다. 서버 장치(101)는 수신한 기기 등록 패킷(201)의 SA, SP 및 페이로드를 참조하여, 단계 S202에서, 요구 수락 기기(103)의 기기 ID와, 라우터 장치(104b)의 글로벌 IP 어드레스와, 라우터 장치(104b)의 WAN측의 포트 번호의 세트를, 요구 수락 기기(103)에 대응하는 기기 정보의 세트(즉, 기기 정보 리스트의 항목)로서, 서버 장치(101)에 포함된 테이블 메모리(101m)에 저장한다. 본 바람직한 실시형태에서는, 서버 장치(101)는 라우터 장치(104b)의 글로벌 IP 어드레스와 WAN측의 포트 번호를, 요구 수락 기기(103)에 관련된 IP 어드레스 및 포트 번호로서 참조한다. 환언하면, 서버 장치(101)가 요구 수락 기기(103)에 패킷을 송신할 때에, 서버 장치(101)는 요구 수락 기기(103)를 포함하는 요구 수락측 LAN(106b)의 글로벌 IP 어드레스 및 WAN측 포트 번호(따라서, 라우터 장치(104b)의 글로벌 IP 어드레스와 WAN측의 포트 번호)를 수신처로서 참조한다. 도 9는 서버 장치(101) 내의 테이블 메모리(101m)에 저장된 기기 정보 리스트의 일례를 나타낸다.
요구 수락 기기(103)는 기기 등록 패킷(201)을 서버 장치(101)에 정기적으로 송신한다. 이로 인하여, 라우터 장치(104b)의 글로벌 IP 어드레스 또는 WAN측 포트 번호가 변경이 되는 경우에도, 단계 S202 및, 단계 S202와 유사한 단계 S202A를 실행함으로써, 서버 장치(101)상의 기기 정보 리스트가 자동적으로 갱신된다.
한편, 요구 발행 기기(102)가 요구 수락 기기(103)와의 데이터 통신을 희망하는 경우에는, 요구 발행 기기(102)가 요구 수락 기기(103)와의 데이터 통신을 희망하는 것을 통지하는 접속 요구 메시지를 요구 발행 기기(102)로부터 요구 수락 기기(103)에 전송하기 위하여, 요구 발행 기기(102)와 서버 장치(101)와의 사이에서의 단계 S203의 제1접속 요구 시퀀스와, 서버 장치(101)에 의한 단계 S204, 패킷(205)의 송신, 및 서버 장치(101)와 요구 수락 기기(103)와의 사이에서의 단계 S206의 제2접속 요구 시퀀스를 일련의 처리로서 실행한다. 이에 따라서, 요구 발행 기기(102)로부터의 접속 요구 메시지는, 서버 장치(101)에 의해서 중계되어서, 요구 발행 기기(102)로부터 요구 수락 기기(103)에 전송된다. 요구 발행 기기(102) 는, 접속 요구 메시지를 요구 수락 기기(103)에 전송하기 위하여, 우선, 요구 발행 기기(102)와 서버 장치(101)와의 사이의 단계 S203의 제1접속 요구 시퀀스를 실행한다.
단계 S203의 제1접속 요구 시퀀스에서는, 요구 수락 기기(103)의 패스워드, 요구 수락 기기(103)의 기기 ID, 요구 발행 기기(102)에 관련된 IP 어드레스 및 포트 번호 등의 비밀 정보를 전송할 필요가 있다. 따라서, 본 바람직한 실시형태에서는 SSL(Secure Socket Layer)을 이용하여 비밀 정보를 암호화한다. 이후에 설명하는 접속 요구 패킷(217)의 송신을 암호화하는데에 이용되는 SSL 통신에 대하여 도 3 및 도 5를 참조하여, 우선 설명한다.
도 5는 요구 발행 기기(102) 및 요구 수락 기기(103)에 대하여 서버 장치(101)가 정당한가 아닌가를 인증하는 증명서 인증 장치(51)의 블록도이다. 특히, 도 5는 서버 장치(101)의 정당성을 증명하기 위한 서버 증명서 데이터(65)의 배부 방법 및 인증 방법을 나타낸다. 도 5에서, 라우터 장치(104a 및 104b)는 인증에 관한 설명에 필수적인 것이 아니므로 나타내지 않았다. 도 5를 참조하면, 증명서 인증 장치(51)(이하, 증명서 인증을 CA라고 한다)는 고유한 CA 공개 키(key)(52) 및 CA 비밀 키(53)의 쌍을 증명서 인증 장치(51)의 테이블 메모리(51m)에 저장한다. 서버 장치(101)는 고유한 서버 비밀 키(61) 및 서버 공개 키(62)의 쌍과, 증명서 인증 장치(51)에 의하여 발행된 서버 증명서 데이터(65)를, 서버 장치(101)의 테이블 메모리(101m)에 저장한다. 서버 증명서 데이터(65)는, 서버 공개 키(62)와, 증명서 인증 장치(51)에 의하여 생성된 서명(署名)(64)으로 구성되어 있다.
단계 S203의 제1접속 요구 시퀀스 및 단계 S206의 제2접속 요구 시퀀스의 처리를 실행하기 위해서는, 서버 장치(101)는, 우선 이하의 처리에 따라서, 증명서 인증 장치(51)에 대하여 서버 증명서 데이터(65)를 미리 발행하게 하는 것이 필요하다.
증명서 인증 장치(51)는 CA 공개 키(52)와 CA 비밀 키(53)의 쌍을 미리 저장하는 테이블 메모리(51m)를 구비하고 있다. 서버 장치(101)는 서버 공개 키(62)와 서버 비밀 키(61)의 쌍을 생성한다. 서버 장치(101)는 서버 공개 키(62)와, 서버 장치(101)에 관한 정보를, 서버 증명서 데이터 요구 패킷(63)으로서 증명서 인증 장치(51)에 송신하여, 증명서 인증 장치(51)에 대하여 서버 증명서 데이터(65)의 발행을 요구한다. 증명서 인증 장치(51)는, 서버 증명서 데이터 요구 패킷(63)을 수신하면, CA 비밀 키(53)를 이용하여, 서버 장치(101)로부터 수신한 정보 및 기타 필요한 정보에 따라서 서명(64)을 생성한다. 이어서, 증명서 인증 장치(51)는, 서버 장치(101)로부터 수신한 정보, 기타 필요한 정보 및 서명(64)을 조합하여 생성한 데이터를, 서버 증명서 데이터(65)로서 서버 장치(101)에 대하여 발행한다. 이와 같이 발행된 서버 증명서 데이터(65)는 서버 증명서 데이터 발행 패킷(54)으로서, 증명서 인증 장치(51)로부터 서버 장치(101)에 송신된다. 서버 장치(101)는 수신한 서버 증명서 데이터(65)를 서버 장치(101)의 내부의 테이블 메모리(101m)에 저장한다.
또한, 클라이언트 장치로서의 역할을 하는, 요구 발행 기기(102) 및 요구 수락 기기(103)는 증명서 인증 장치(51)로부터 CA 공개 키(52)를 미리 취득하고, 상 기 취득한 CA 공개 키(52)를 자체의 각각의 내부 메모리(102m 및 103m)에 저장한다. 일반적으로, CA 공개 키(52)는 증명서 인증 장치(51)의 정보 등과 결합된 CA 증명서 데이터 패킷(55)의 형태로 클라이언트 장치(즉, 서버 장치(101)와 통신하는 기타 기기)에 배포된다. 각각의 요구 발행 기기(102) 및 요구 수락 기기(103)는, 서버 장치(101)로부터의 서버 증명서 데이터 패킷(214)을 통하여 서버 증명서 데이터(65)를 수신하면, 각각의 기기(102 및 103)에 설치된 각각의 증명서 정보 인증 처리부(102c 및 103c)로써, 각각의 내부 테이블 메모리(102m 및 103m)에 저장된 CA 공개 키(52)를 이용하여, 서버 증명서 데이터(65)에 포함된 서명(64)이 정당한가 아닌가를 인증한다. 이에 따라서, 각각의 요구 발행 기기(102) 및 요구 수락 기기(103)는 서버 증명서 데이터(65) 내의 서버 공개 키(62)가 정당한가 아닌가를 확인할 수 있다.
실제로, 요구 발행 기기(102)와 서버 장치(101)와의 사이의 비밀 통신을 위한 단계 S203의 제1접속 요구 시퀀스는 이하와 같이 실행된다.
도 3은 단계 S203의 제1접속 요구 시퀀스의 상세한 처리를 나타내는 시퀀스 다이어그램이다. 도 3은 SSL 통신을 이용하여 접속 요구 패킷(217)을 송신하는 흐름을 나타낸다. 도 3에 있어서, 참조 번호 73은 비밀 통신에 이용하는 통신용 공통 키를 나타낸다.
서버 장치(101)는 암호 통신 처리부(101e)를 추가로 구비하고 있는 것으로 한다. 암호 통신 처리부(101e)는, 송수신하는 신호를 암호화하고 또한 복호화하기 위한, 통신용 공통 키(73 및 83)를 생성하고, 상기 생성된 통신용 공통 키(73)를 이용하여, 요구 발행 기기(102)와의 사이에 송수신하는 신호의 암호화 및 복호화를 실행하고, 통신용 공통 키(83)를 이용하여, 요구 수락 기기(103)와의 사이에 송수신하는 신호의 암호화 및 복호화를 실행한다. 또한, 요구 발행 기기(102)는 암호 통신 처리부(102e)와 증명서 정보 인증 처리부(102c)를 추가로 구비하고 있는 것으로 한다. 상기 기기(102)의 암호 통신 처리부(102e)는 송수신하는 신호를 암호화하고 또한 복호화하기 위한 통신용 공통 키(73)를 생성하고, 상기 생성한 통신용 공통 키(73)를 이용하여, 서버 장치(101)와의 사이에 송수신하는 신호의 암호화 및 복호화를 실행한다. 증명서 정보 인증 처리부(102c)는 서버 증명서 데이터(65)가 정당한가 아닌가를 인증한다.
SSL 통신에 있어서, 클라이언트측인 요구 발행 기기(102)는, 우선, TCP 접속 개시 패킷(211)을, 라우터 장치(104a)를 통하여 서버 장치(101)에 송신함으로써, TCP 접속에 의한 서버 장치(101)와의 통신 개시를 요구한다. 도 6은 라우터 장치(104a)의 내부 테이블 메모리(104am)에 저장된 NAPT 테이블의 일례를 나타낸다. TCP 접속 개시 패킷(211)이 라우터 장치(104a)를 통과할 때에, 라우터 장치(104a)는, 그 NAPT 기능을 이용하여, 상기 NAPT 테이블에 따라서, TCP 접속 개시 패킷(211)상의 SA를 "192.168.1.11"로부터 "4.17.168.2"로 변환하고, 또한 TCP 접속 개시 패킷(211)상의 SP를 "1500"으로부터 "7000"으로 변환한다. 또한, 라우터 장치(104a)는, 요구 발행 기기(102)를 수신처로 하는 패킷을 수신하면, 이 패킷의 DA에 대하여 상기의 변환과 반대의 변환을 실행하고, 또한 이 패킷의 DP에 대하여 상이한 변환을 실행하여, 그 생성된 패킷을 요구 발행 기기(102)에 송신한다. 본 명 세서에서는, 설명을 간략화하기 위하여 라우터 장치(104a)의 NAPT 처리 동작에 대하여 설명하지 않는다. 그러나, 실제로 요구 발행 기기(102)가 인터넷(WAN)(105)상의 서버 장치(101) 또는 다른 기기와의 사이에 패킷을 송수신하기를 희망할 때에는, 상기 기기(102)는 항상 라우터 장치(104a)를 통하여 패킷을 송수신하고, 라우터 장치(104a)는 이 패킷에 대하여 NAPT 처리를 실행한다.
이어서, 요구 발행 기기(102)와 서버 장치(101)는 암호화 규격 교섭 단계(encryption specification negotiation step)를 실행함으로써, 비밀 통신에 이용하는 암호화 방식의 규격을 서로 확인한다. 요구 발행 기기(102)는, 우선, TCP 접속 개시 패킷(211)에 의해서 설정된 TCP 접속을 이용하여, 암호화 통신 개시 요구 패킷(Client_hello 패킷이라고 한다)(212)을 서버 장치(101)에 송신한다. 암호화 통신 개시 요구 패킷(212)은, 사용 가능한 SSL의 버전, 사용 가능한 암호화 방식의 리스트, 세션 ID 등을 포함하고, 또한 요구 발행 기기(102)가 생성한 난수(亂數)인 ClientHello.random도 포함하고 있다. 서버 장치(101)는, 암호화 통신 개시 요구 패킷(212)을 수신하여, 통신의 개시를 허락하면, TCP 접속 개시 패킷(211)에 의해서 설정된 TCP 접속을 이용하여 암호화 통신 개시 응답 패킷("server hello 패킷"이라고 한다)(213)을 요구 발행 기기(102)에 송신한다. 이 암호화 통신 개시 응답 패킷(213)은 사용하는 SSL의 버전(요구 발행 기기(102)와 서버 장치(101) 모두에 의해서 지원되는 버전 중에서 최신의 버전), 세션 ID, 사용하는 암호화 방식 등을 포함하고, 또한, 서버 장치(101)에 의해서 "ClientHello.random"과 마찬가지 방법으로 생성된 난수인 "ServerHello.random"을 포함하고 있다. 이하의 단계 S203의 제1접속 요구 시퀀스에서는, 암호화 통신 개시 응답 패킷(213)에 의해서 지정된 SSL의 버전 및 암호화 방식이 사용된다. "ClientHello.random" 및 "ServerHello.random"은, 32 비트의 타임 스탬프(time stamp)와, 28 바이트의 난수(또는 충분히 안전한 의사(擬似) 난수)로서, 요구 발행 기기(102)와 서버 장치(101)에 의해서 서로 독립적으로 각각 생성된다. 이러한 난수 "ClientHello.random" 및 "ServerHello.random"을 각각 포함하는 암호화 통신 개시 요구 패킷(212) 및 암호화 통신 개시 응답 패킷(213)은 암호화되지 않고 송신된다.
이어서, 서버 장치(101)는 요구 발행 기기(102)에 서버 증명서 데이터 패킷(214)을 송신한다. 요구 발행 기기(102)에의 서버 증명서 데이터 패킷(214)의 송신은, 반드시 암호화 통신 개시 응답 패킷(213)의 송신 이후에 실행하는 것은 아니다. 이후에 설명하는, 요구 발행 기기측 통신용 공통 키 생성 정보 패킷(215)을 수신하기 전에(예로서, 단계 S203의 제1접속 요구 시퀀스의 전에), 서버 증명서 데이터 패킷(214)을 송신하는 한, 패킷(214)의 송신은 언제라도 좋다. 요구 발행 기기(102)의 증명서 정보 인증 처리부(102c)는, 상기 설명한 바와 같이, 기기(102)에 저장된 CA 공개 키(52)를 이용하여, 송신된 서버 증명서 데이터 패킷(214)에 포함된 서버 증명서 데이터(65)가 정당한가 아닌가를 확인한다.
요구 발행 기기(102)는, 송신된 서버 증명서 데이터 패킷(214)에 포함된 서버 증명서 데이터(65)가 상기 증명서 정보 인증 처리부(102c)에 의해서 정당한 것으로 확인되면, 요구 발행 기기측 통신용 공통 키 생성 정보(71) 및 서버 장치측 통신용 공통 키 생성 정보(72)의 송수신을 포함하는, 공통 키 생성 정보 교환 단계 를 개시한다.
공통 키 생성 정보 교환의 단계에서, 요구 발행 기기(102)는, 우선, 요구 발행 기기(102)의 암호 통신 처리부(102e)에서 요구 발행 기기측 통신용 공통 키 생성 정보(71)를 생성한다. 또한, 요구 발행 기기(102)는, 이 생성된 요구 발행 기기측 통신용 공통 키 생성 정보(71)를 포함하는 요구 발행 기기측 통신용 공통 키 생성 정보 패킷(215)을, TCP 접속 개시 패킷(211)에 의해서 설정된 TCP 접속을 이용하여 서버 장치(101)에 송신한다. 서버 장치(101)는, 송신된 요구 발행 기기측 통신용 공통 키 생성 정보 패킷(215)에 응답하여, 서버 장치(101)의 암호 통신 처리부(101e)에서, 서버 장치측 통신용 공통 키 생성 정보(72)를 생성한다. 또한, 서버 장치(101)는, 이 생성된 서버 장치측 통신용 공통 키 생성 정보(72)를 포함하는 서버 장치측 통신용 공통 키 생성 정보 패킷(216)을, TCP 접속 개시 패킷(211)에 의해서 설정된 TCP 접속을 이용하여 요구 발행 기기(102)에 송신한다. 요구 발행 기기(102) 및 서버 장치(101)는 공통 키 생성 정보(71 및 72)에 따라서, 자체의 암호 통신 처리부(102e 및 101e)에서 동일한 통신용 공통 키(73)를 각각 생성한다. 이에 따라서, 요구 발행 기기(102)와 서버 장치(101)와의 사이에 통신용 공통 키(73)를 공유한다.
공통 키 생성 정보 교환의 바람직한 실시형태는, SSL의 키 교환에 사용되는 암호화 방식에 따라서 변경된다. RSA 암호화 방식을 사용하는 경우에, 요구 발행 기기(102)의 암호 통신 처리부(102e)는, 요구 발행 기기측 통신용 공통 키 생성 정보(71)로서, "프리마스터 시크릿(Pre Master Secret; PMS)"이라고 하는 48 바이트 의 난수를 생성하고, 상기 생성된 PMS를 서버 증명서 데이터(65)에 포함된 서버 공개 키(62)를 이용하여 암호화한다. 이어서, 요구 발행 기기(102)는 암호화된 PMS를 TCP 접속 개시 패킷(211)에 의하여 설정된 TCP 접속을 이용하여 서버 장치(101)에 송신한다. 서버 장치(101)는, 암호화되어 있는 상태에서 수신된 PMS를, 암호 통신 처리부(101e)로써, 서버 장치(101)가 보유하고 있는 서버 비밀 키(61)를 이용하여 복호화함으로써, 송신된 PMS를 취득한다. 서버 장치측 통신용 공통 키 생성 정보(72)의 생성 및 송신은 실행하지 않는다. 서버 장치(101) 및 요구 발행 기기(102)는, 이후에 설명하는 바와 같이, PMS를 이용하여 통신용 공통 키(73)를 생성함으로써, 양자 간에 키를 공유한다.
디피-헬만(Diffie-Hellman) 암호화 방식을 사용하는 경우에는, 요구 발행 기기(102) 및 서버 장치(101)는 양자 간에 디피-헬만 키를 공유하기 위한 2개의 파라미터(즉, 소수(素數) "p"와, 그 소수 "p"의 원시 근(根)(primitive root) "g")에 대하여 미리 동의하고 있다. 서버 증명서 패킷(214)을 수신한 후, 요구 발행 기기(102)는 난수 "a"를 생성하고, "p"를 제수(除數, 법(法), modulus)로 하는 ga의 최소의 정(正)의 나머지를 요구 발행 기기측 통신용 공통 키 생성 정보(71)로서 계산하고, 이 요구 발행 기기측 통신용 공통 키 생성 정보(71)를 포함하는 요구 발행 기기측 통신용 공통 키 생성 정보 패킷(215)을 서버 장치(101)에 송신한다. 서버 장치(101)는, 난수 "b"를 생성하고, "p"를 제수로 하는 gb의 최소의 정의 나머지를 서버 장치측 통신용 공통 키 생성 정보(72)로서 계산하고, 이 서버 장치측 통신용 공통 키 생성 정보(72)를 포함하는 서버 장치측 통신용 공통 키 생성 정보 패킷(216)을 요구 발행 기기(102)에 송신한다. 따라서, 이와 같이 서로 송신되는 공통 키 생성 정보가, 디피-헬만 공개 키로서 이용된다. 또한, 이러한 공통 키 생성 정보(71 및 72)를 송신할 때에, 요구 발행 기기(102) 및 서버 장치(101)의 서명을 각각 부가해도 좋다.
디피-헬만 암호화 방식의 일종인, 고정 디피-헬만 암호화 방식을 이용하는 경우에는, 서버 장치(101)로부터의 정보로서 서버 증명서 데이터(65)에 포함된 값을 사용한다. 따라서, 서버 장치측 통신용 공통 키 생성 정보(72)의 생성 및 송신은 실행하지 않는다.
이상과 같이, 요구 발행 기기(102) 및 서버 장치(101)의 사이에 공통 키 생성 정보(71 및 72)가 교환되면, 이러한 공통 키 생성 정보(71 및 72)를 이용하여, 이후의 통신에서 비밀 키로서 이용되는 통신용 공통 키(73)가 우선 생성된다. 통신용 공통 키(73)를 생성하기 위해서는, 서로 교환된 공통 키 생성 정보(71 및 72)에 따라서 PMS를 생성한다. RSA 암호화 방식의 경우에, PMS는, 상기한 바와 같이, 요구 발행 기기측 통신용 공통 키 생성 정보(71)이다. 디피-헬만 암호화 방식의 경우에는, 장치(101)와 기기(102) 모두의 디피-헬만 공개 키를 이용하여 PMS를 생성한다. 환언하면, 서버 장치(101)는, 수신한, "p"를 제수로 하는 ga의 최소의 정의 나머지를 b승(乘)하여 취득한 값인, "p"를 제수로 하는 최소의 정의 나머지를, 계산하여 PMS로 한다. 요구 발행 기기(102)는, 수신한, "p"를 제수로 하는 gb의 최소의 정의 나머지를 a승하여 취득한 값인, "p"를 제수로 하는 최소의 정의 나머지를 계산하여 PMS로 한다. 디피-헬만 암호화 방식을 이용하는 경우에는, 요구 발행 기기(102) 및 서버 장치(101)의 각각에 의해서 계산된 PMS는, "p"를 제수로 하는 gab의 최소의 정의 나머지와 동일하다.
PMS로부터 통신용 공통 키(73)를 생성하기 위하여, MD5(Message Digest 5)와 SHA(Secret Hash Algorithm)의 2개의 해시 알고리즘을 사용하여, 이하의 계산을 실행한다.
공통 키 master_secret =
MD5(PMS∥SHA('A'∥PMS∥ClientHello.random∥ServerHello.random))∥MD5(PMS∥SHA('BB'∥PMS∥ClientHello.random∥ServerHello.random))∥MD5(PMS∥SHA('CCC'∥PMS∥ClientHello.random∥ServerHello.random)) (1)
식 (1)에서, "∥"은 비트 열의 연결을 나타낸다.
이후, 요구 발행 기기(102) 및 서버 장치(101)는 식 (1)로 표시된 바와 같이 계산된 공통 키 "master_secret"를 통신용 공통 키(73)로서 이용하여, 접속 요구 패킷(217)을 암호화하고 복호화함으로써, 비밀 통신을 실행할 수 있다. 환언하면, 요구 발행 기기(102) 및 서버 장치(101)와의 사이의 통신용 공통 키(73)의 공유가 완료되면, 요구 발행 기기(102)는, 제1접속 요구 패킷(217)을 송신하기 전에, 요구 발행 기기(102)의 암호 통신 처리부(102e)로써, 접속 상대인 요구 수락 기기(103)의 기기 ID와, 요구 수락 기기(103)의 패스워드와, 요구 발행 기기(102)에 관련되 고 또한 통신에 이용하기 위한 IP 어드레스 및 포트 번호를 포함하는 데이터를 통신용 공통 키(73)를 이용하여 암호화한다. 여기서, 요구 발행 기기(102)에 관련된 IP 어드레스 및 포트 번호는, 요구 발행 기기(102)를 포함하는 요구 발행측 LAN(106a)의 글로벌 IP 어드레스 및 WAN측 포트 번호, 즉, 라우터 장치(104a)의 WAN측 글로벌 IP 어드레스 및 WAN측 포트 번호이다. 요구 발행 기기(102)는 이 암호화된 데이터를 페이로드로서 포함하는 접속 요구 패킷(217)을 생성하고, 이 생성된 접속 요구 패킷(217)을, TCP 접속 개시 패킷(211)에 의하여 설정된 TCP 접속을 이용하여 서버 장치(101)에 송신한다. 더욱 상세하게는, 요구 발행 기기(102)는 도 7C에 나타낸 접속 요구 패킷(217)을 라우터 장치(104a)에 송신한다. 또한, 라우터 장치(104a)는 수신한 접속 요구 패킷(217)에 대하여 NAPT 처리를 실행하고, 도 7D에 나타낸, NAPT 처리후의 접속 요구 패킷(217)을 서버 장치(101)에 송신한다. 한편, 서버 장치(101)는, 서버 장치(101)와 요구 발행 기기(102)와의 사이에 설정된 TCP 접속을 이용하여, 요구 발행 기기(102)로부터, 비밀 정보로서 암호화된 데이터를 포함하는 접속 요구 패킷(217)을 수신한다. 서버 장치(101)는, 패킷(217)의 수신에 응답하여, 서버 장치(101)의 암호 통신 처리부(101e)로써, 통신용 공통 키(73)를 이용하여, 상기 암호화된 데이터를 복호화한다.
접속 요구 패킷(217)에 기록된, 라우터 장치(104a)의 WAN측 글로벌 IP 어드레스와 WAN측 포트 번호는, 이후에 설명하는 TCP 접속 개시 패킷(208) 및 단계 S209의 데이터 통신 시퀀스에 관련된 패킷을 송수신할 때에 사용된다. 환언하면, 요구 발행 기기(102)가 요구 수락 기기(103)로부터 TCP 접속 개시 패킷(208)을 수 신하여, 양 기기(102 및 103) 간의 TCP 접속을 설정한다. 요구 발행 기기(102)가, 설정된 TCP 접속을 이용하여 단계 S209의 데이터 통신 시퀀스에 관한 패킷을 송수신할 때에(이후에 설명하는 바와 같이), 라우터 장치(104a)의 WAN측 글로벌 IP 어드레스와 WAN측 포트 번호는, 이와 같이 송수신되는 패킷에 기록된다. 이 패킷에 기록된 라우터 장치(104a)의 WAN측 글로벌 IP 어드레스와 WAN측 포트 번호는, 라우터 장치(104a)의 NAPT 기능을 이용하여 요구 발행 기기(102)의 프라이빗 IP 어드레스와 포트 번호로, 또는 그 반대로 변환될 수 있는 것으로 한다.
예로서, 요구 발행 기기(102)가 요구 수락 기기(103)로부터 TCP 접속 개시 패킷(208)을 수신하기 위한 포트 번호가 "1600"이면, 라우터 장치(104a)의 NAPT 테이블은 도 6에 나타내는 바와 같다.
도 6의 NAPT 테이블의 두 번째 행(行)이, 요구 발행 기기(102)가 요구 수락 기기(103)로부터의 TCP 접속 개시 패킷(208)과 그 이후의 단계 S209의 데이터 통신 시퀀스에서의 패킷을 수신할 때 이용되는 변환 테이블이다. 요구 수락 기기(103)는, 글로벌 IP 어드레스가 "4.17.168.2"이고 포트 번호가 "5000"인 라우터 장치(104a)에 TCP 접속을 설정하기 위하여 TCP 접속 개시 패킷(208)을 송신한다. 이어서, 라우터 장치(104a)의 NAPT 기능에 의하여, TCP 접속 개시 패킷(208)에 기록된 IP 어드레스와 포트 번호가 요구 발행 기기(102)의 프라이빗 IP 어드레스와 라우터 장치(104a)의 포트 번호로 각각 변환된다. 최종적으로, 요구 수락 기기(103)는 요구 발행 기기(102)와의 TCP 접속을 설정한다.
서버 장치(101)는, 접속 요구 패킷(217)을 수신하면, 단계 S204에서, 서버 장치(101)의 내부 테이블 메모리(101m)에 저장된, 도 9에 나타내는 기기 정보 리스트 내의 복수의 기기 정보의 세트를 참조하여, 기기 정보 리스트로부터, 수신된 접속 요구 패킷(217)에 포함된 요구 수락 기기(103)의 기기 ID "2133"을 검색한다. 기기 정보 리스트에서 "2133"과 일치하는 기기 ID가 발견되면, 서버 장치(101)는 이 기기 ID "2133"을 포함하는 기기 정보의 세트에 관련된 기기를 접속 상대의 요구 수락 기기(103)로서 식별한다. 또한, 서버 장치(101)는 식별된 요구 수락 기기(103)에 관한 기기 정보의 세트에 포함된 IP 어드레스 및 포트 번호를 각각 요구 수락 기기(103)에 관련된 IP 어드레스 및 포트 번호로서 식별한다. 서버 장치(101)는, 수신된 접속 요구 패킷(217)에 포함되고 또한 요구 발행 기기(102)에 관련된 IP 어드레스 및 포트 번호와, 요구 수락 기기(103)의 패스워드를 요구 수락 기기(103)에 즉시 송신하지는 않는다. 이 경우에, 서버 장치(101)는, 요구 수락 기기(103)에 관련된(기기 ID "2133"과 동일한 기기 정보의 세트에 포함된) IP 어드레스 "202.204.16.13" 및 포트 번호 "3400"을 수신처로 하여, UDP를 이용해서 접속 요구 통지 패킷(205)을 송신한다. 접속 요구 통지 패킷(205)은, 기기 등록 패킷(201)에 대한 응답 신호로서 라우터 장치(104b)에 송신된다. 라우터 장치(104b)는 IP 어드레스와 포트 번호의 변환을 실행하고, 이에 따라서, 변환된 IP 어드레스와 포트 번호를 포함하는 패킷(205)이 요구 수락 기기(103)에 도달할 수 있다. 도 8A 및 8B에 나타내는 바와 같이, 접속 요구 통지 패킷(205)은, 패킷이 접속 요구 통지인 것을 나타내는 접속 요구 통지 플래그(flag)를 포함하고 있다.
요구 수락 기기(103)는, 접속 요구 통지 패킷(205)을 수신하면, 요구 수락 기기(103)와 서버 장치(101)와의 사이에서의 단계 S206의 제2접속 요구 시퀀스를 실행한다.
도 4는 단계 S206의 제2접속 요구 시퀀스에서의 상세한 처리를 나타내는 시퀀스 다이어그램이다. 단계 S206의 제2접속 요구 시퀀스에서도, 단계 S203의 제1접속 요구 시퀀스와 마찬가지로, 요구 수락 기기(103)의 패스워드, 요구 발행 기기(102)에 관련된 IP 어드레스 및 포트 번호 등의 비밀 정보를 전송할 필요가 있다. 이 때문에, 본 바람직한 실시형태에서는 SSL을 이용하여 비밀 정보를 암호화한다. 여기서, 요구 수락 기기(103)는 암호 통신 처리부(103e)와 증명서 정보 인증 처리부(103c)를 추가로 구비하는 것으로 한다. 상기 요구 수락 기기(103)의 암호 통신 처리부(103e)는 송수신하는 신호를 암호화하고 또한 복호화하기 위한 통신용 공통 키(83)를 생성하고, 이 생성한 통신용 공통 키(83)를 이용하여, 서버 장치(101)와의 사이에 송수신하는 신호의 암호화 및 복호화를 실행한다. 상기 요구 수락 기기(103)의 증명서 정보 인증 처리부(103c)는 서버 증명서 데이터(65)가 정당한가 아닌가를 인증한다. 서버 장치(101)와 요구 수락 기기(103)와의 사이의 비밀 통신을 위한 단계 S206의 제2접속 요구 시퀀스는, 이하와 같이 실행된다.
SSL 통신에 있어서, 클라이언트측인 요구 수락 기기(103)는, 우선, TCP 접속 개시 패킷(221)을, 라우터 장치(104b)를 통하여 서버 장치(101)에 송신함으로써, TCP 접속에 의한 서버 장치(101)와의 통신 개시를 요구한다. TCP 접속 개시 패킷(221)이 라우터 장치(104b)를 통과할 때에, 라우터 장치(104b)는, 기기 등록 패킷(201)의 송신시에 이용한 NAPT 기능을 사용하여, TCP 접속 개시 패킷(221)상의 SA 및 SP를 변환한다. 또한, 라우터 장치(104b)는, 요구 수락 기기(103)를 수신처로 하는 패킷을 수신하면, 이 패킷의 DA에 대하여 상기의 SA에 실행된 변환과 반대의 변환을 실행하고, 또한 이 패킷의 DP에 대하여 상기의 SD에 실행된 변환과 상이한 변환을 실행하여, 그 생성된 패킷을 요구 수락 기기(103)에 송신한다. 본 명세서에서는, 설명을 간략화하기 위하여 라우터 장치(104b)의 NAPT 처리 동작에 대해서는 설명하지 않는다. 그러나, 실제로, 요구 수락 기기(103)가 패킷의 송수신을 희망하는 경우에는, 요구 수락 기기(103)는 라우터 장치(104b)를 통하여 패킷을 항상 송수신하고, 라우터 장치(104b)는 이 패킷에 대하여 NAPT 처리를 실행한다.
이어서, 요구 수락 기기(103)와 서버 장치(101)는 암호화 규격 교섭 단계를 실행함으로써, 비밀 통신에 이용하는 암호화 방식의 규격을 서로 체크한다. 요구 수락 기기(103)는, 우선, TCP 접속 개시 패킷(221)에 의해서 설정된 TCP 접속을 이용하여, 암호화 통신 개시 요구 패킷("Client_hello 패킷"이라고 하는)(222)을 서버 장치(101)에 송신한다. 암호화 통신 개시 요구 패킷(222)은, 사용 가능한 SSL의 버전, 사용 가능한 암호화 방식의 리스트, 세션 ID 등을 포함하고, 또한 요구 수락 기기(103)가 생성한 난수인 ClientHello.random도 포함하고 있다. 서버 장치(101)는, 요구 수락 기기(103)로부터 암호화 통신 개시 요구 패킷(222)을 수신하면, TCP 접속 개시 패킷(221)에 의해서 설정된 TCP 접속을 이용하여 암호화 통신 개시 응답 패킷("server_hello 패킷"이라고 하는)(223)을 요구 수락 기기(103)에 송신한다. 암호화 통신 개시 응답 패킷(223)은, 사용하는 SSL의 버전(요구 발행 기기(102)와 서버 장치(101) 모두에 의해서 지원되는 버전 중에서 최신의 버전), 세션 ID, 사용 하는 암호화 방식 등을 포함하고, 또한 서버 장치(101)에 의해서 생성된 난수인 "ServerHello.random"을 포함하고 있다. 이하의 단계 S206의 제2접속 요구 시퀀스에서는, 암호화 통신 개시 응답 패킷(223)에 의해서 지정된 SSL의 버전 및 암호화 방식이 사용된다. 이러한 난수 "ClientHello.random" 및 "ServerHello.random"은, 32 비트의 타임 스탬프와, 28 바이트의 난수(또는 충분히 안전한 의사 난수)로서, 요구 수락 기기(103)와 서버 장치(101)에 의해서 서로 독립적으로 각각 생성된다. 이러한 난수 "ClientHello.random" 및 "ServerHello.random"을 각각 포함하는 암호화 통신 개시 요구 패킷(222) 및 암호화 통신 개시 응답 패킷(223)은 암호화되지 않고 송신된다.
이어서, 서버 장치(101)는 요구 수락 기기(103)에 서버 증명서 데이터 패킷(214)을 송신한다. 요구 수락 기기(103)에의 서버 증명서 데이터 패킷(214)의 송신은, 반드시 암호화 통신 개시 응답 패킷(223)의 송신 이후에 실행하는 것은 아니다. 요구 수락 기기측 통신용 공통 키 생성 정보 패킷(224)을 수신하기 전에(예로서, 단계 S206의 제2접속 요구 시퀀스의 전에), 서버 증명서 데이터 패킷(214)을 송신하는 한, 패킷(214)의 송신은 언제라도 좋다. 요구 수락 기기(103)의 증명서 정보 인증 처리부(103c)는, 도 5를 참조하여 상기에서 설명한 바와 같이, 요구 발행 기기(102)의 경우와 마찬가지의 방법으로 요구 수락 기기(103)에 저장된 CA 공개 키(52)를 이용하여, 송신된 서버 증명서 데이터 패킷(214)에 포함된 서버 증명서 데이터(65)가 정당한가 아닌가를 확인한다.
요구 수락 기기(103)는, 송신된 서버 증명서 데이터 패킷(214)에 포함된 서 버 증명서 데이터(65)가 상기 증명서 정보 인증 처리부(103c)에 의해서 정당한 것으로 확인되면, 요구 수락 기기측 통신용 공통 키 생성 정보(81) 및 서버 장치측 통신용 공통 키 생성 정보(82)의 송수신을 포함하는, 공통 키 생성 정보 교환 단계를 개시한다.
공통 키 생성 정보 교환의 단계에서, 요구 수락 기기(103)는, 우선, 요구 수락 기기(103)의 암호 통신 처리부(103e)에서 요구 수락 기기측 통신용 공통 키 생성 정보(81)를 생성한다. 또한, 요구 수락 기기(103)는, 이 생성된 요구 수락 기기측 통신용 공통 키 생성 정보(81)를 포함하는 요구 수락 기기측 통신용 공통 키 생성 정보 패킷(224)을, TCP 접속 개시 패킷(221)에 의해서 설정된 TCP 접속을 이용하여 서버 장치(101)에 송신한다. 서버 장치(101)는, 송신된 요구 수락 기기측 통신용 공통 키 생성 정보 패킷(224)에 응답하여, 서버 장치(101)의 암호 통신 처리부(101e)에서, 서버 장치측 통신용 공통 키 생성 정보(82)를 생성한다. 또한, 서버 장치(101)는, 이 생성된 서버 장치측 통신용 공통 키 생성 정보(82)를 포함하는 서버 장치측 통신용 공통 키 생성 정보 패킷(225)을, TCP 접속 개시 패킷(221)에 의해서 설정된 TCP 접속을 이용하여 요구 발행 기기(102)에 송신한다. 요구 발행 기기(102) 및 서버 장치(101)는 공통 키 생성 정보(81 및 82)에 따라서, 자체의 암호 통신 처리부(102e 및 101e)에서 동일한 통신용 공통 키(83)를 각각 생성한다. 통신용 공통 키(83)를 생성하기 위해서는, 단계 S203의 제1접속 요구 시퀀스의 경우와 마찬가지의 방법으로 RSA 암호화 방식 또는 디피-헬만 암호화 방식 등을 이용한다. 생성된 공통 키 생성 정보(81 및 82)를 요구 수락 기기(103)와 서버 장치(101) 간 에 각각 교환한다. 요구 수락 기기(103) 및 서버 장치(101)의 암호 통신 처리부(103e 및 101e)는, 이들 공통 키 생성 정보(81 및 82)를 이용하여, 이후의 통신용 비밀 키로서 이용하기 위한 통신용 공통 키(83)를 각각 생성한다.
이에 따라서, 요구 수락 기기(103)와 서버 장치(101)와의 사이에 통신용 공통 키(83)를 공유할 수 있다. 서버 장치(101) 및 요구 수락 기기(103)는 통신용 공통 키(83)를 이용하여, 접속 요구 패킷(226)을 암호화하고 복호화함으로써, 양자 간에 비밀 통신을 실행할 수 있다. 환언하면, 제1접속 요구 패킷(217)을 수신한 후, 또한 제2접속 요구 패킷(226)을 송신하기 전에, 요구 수락 기기(103) 및 서버 장치(101)와의 사이에 통신용 공통 키(83)의 공유가 완료되면, 서버 장치(101)는, 서버 장치(101)의 암호 통신 처리부(101e)에 대하여 접속 요구 패킷(217)에 포함되어 있는 요구 수락 기기(103)의 패스워드와, 통신에 이용하는 라우터 장치(104a)의 글로벌 IP 어드레스 "4.17.168.2"와 포트 번호 "5000"을 포함하는 데이터를, 통신용 공통 키(83)를 이용하여 암호화한다. 서버 장치(101)는, 이 암호화된 데이터를 페이로드로서 포함하는 접속 요구 패킷(226)을 생성하고, 이 생성된 접속 요구 패킷(226)을, 기기 등록 패킷(201)에 대한 응답 신호로서, TCP 접속 개시 패킷(221)에 의하여 설정된 TCP 접속을 이용하여 요구 수락 기기(103)에 송신한다. 더욱 상세하게는, 서버 장치(101)는, 도 2에 나타낸 단계 S204에서 서버 장치(101)의 기기 정보 리스트 내에서 요구 수락 기기(103)의 것으로서 식별된 IP 어드레스 및 포트 번호를 수신처로 하여, 도 8D에 나타낸 접속 요구 패킷(226)을 라우터 장치(104b)에 송신한다. 또한, 라우터 장치(104b)는, 수신한 접속 요구 패킷(226)에 대하여 NAPT 처리를 실행하고, 도 8C에 나타낸, NAPT 처리된 접속 요구 패킷(226)을 요구 수락 기기(103)에 송신한다. 한편, 요구 수락 기기(103)는 서버 장치(101)와 요구 수락 기기(103)와의 사이에 설정된 TCP 접속을 이용하여, 서버 장치(101)로부터, 비밀 정보로서 암호화된 데이터를 포함하는 접속 요구 패킷(226)을 수신한다. 요구 수락 기기(103)는, 상기 패킷(226)의 수신에 응답하여, 요구 수락 기기(103)의 암호 통신 처리부(103e)로써, 통신용 공통 키(83)를 이용하여, 상기 암호화된 데이터를 복호화한다. 이러한 방법으로, 요구 발행 기기(102)가 요구 수락 기기(103)와의 데이터 통신을 희망하는 것을 통지하는 접속 요구 메시지가, 결과적으로, 요구 발행 기기(102)로부터 요구 수락 기기(103)에 전송된다.
도 2를 다시 참조하면, 요구 수락 기기(103)는, 단계 S207에서, 접속 요구 패킷(226)에 포함되어 있는 패스워드가, 요구 수락 기기(103)의 내부 메모리(103m)에 저장된, 요구 수락 기기(103)의 패스워드와 일치하는 정당한 것인가 아닌가를 인증한다. 패스워드가 정당한 경우에만, 요구 수락 기기(103)는 접속 요구 패킷(226)에 포함되어 있는 IP 어드레스 "4.17.168.2" 및 포트 번호 "5000"에 관련된 요구 발행 기기(102)에 요구 발행 기기(102)와 요구 수락 기기(103)와의 사이의 TCP 접속에 의한 통신을 개시할 것을 요구하기 위한 통신 요구 신호로서, TCP 접속 개시 패킷(208)을 라우터 장치(104a)에 송신한다. TCP 접속 개시 패킷(208)은, 상기한 바와 같이 라우터 장치(104a)의 NAPT 기능에 의하여 요구 발행 기기(102)에 도달한다. 따라서, 요구 수락 기기(103)는 요구 발행 기기(102)와의 TCP 접속을 설정할 수 있다.
요구 발행 기기(102)가 TCP 접속 개시 패킷(208)에 응답하여 요구 발행 기기(102)와 요구 수락 기기(103)와의 사이의 통신을 수락한 후에, 요구 발행 기기(102)와 요구 수락 기기(103)는, TCP 접속 개시 패킷(208)에 의하여 설정된 TCP 접속을 이용하여 단계 S209의 데이터 통신 시퀀스를 실행할 수 있다.
이러한 방법으로, 서버 장치(101)를 이용함으로써, 프라이빗 IP 어드레스를 각각 갖는, LAN(106a)과 LAN(106b)의 각각 상이한 LAN에 위치한, 요구 발행 기기(102)와 요구 수락 기기(103)와의 사이에 데이터 통신을 실행할 수 있다.
요구 발행 기기(102)가 글로벌 IP 어드레스를 보유하고, 또한 인터넷(WAN)(105)에 직접 접속되어 있는 경우에도, 상기의 동작과 동일한 동작으로써 요구 발행 기기(102)와 요구 수락 기기(103)와의 사이에 통신을 실행할 수 있다. 또한, 요구 수락 기기(103)가 글로벌 IP 어드레스를 보유하고, 또한 인터넷(WAN)(105)에 직접 접속되어 있는 경우에도, 상기의 동작과 동일한 동작으로써 요구 발행 기기(102)와 요구 수락 기기(103)와의 사이에 통신을 실행할 수 있다. 어느 경우에도, 라우터 장치가 IP 어드레스 및 포트 번호의 변환을 실행하지 않는 것을 제외하고는, 상기한 것과 동일한 동작을 실행한다.
본 바람직한 실시형태에서는, 서버 장치(101), 요구 발행 기기(102) 및 요구 수락 기기(103)는 인터넷(WAN)(105)에 접속되어 있다. 그러나, 본 발명의 바람직한 실시형태는 이것에 한정되지 않는다. 서버 장치(101), 요구 발행 기기(102) 및 요구 수락 기기(103)는 기타의 공개된 네트워크와 전용 네트워크의 하나 또는 모두에 접속되도록 구성되어도 좋다.
또한, 각각의 라우터 장치(104a 및 104b)가, NAPT 기능이 아니고 NAT 기능만을 구비하고 있는 경우에도, 상기의 동작과 동일한 동작으로써 요구 발행 기기(102)와 요구 수락 기기(103)와의 사이에 통신을 실행할 수 있다. 이 경우, 각각의 라우터 장치(104a 및 104b)는 포트 번호의 변환을 실행하지 않는다.
요구 발행 기기(102)는, TCP 접속 개시 패킷(208)을 수신하기 위한 IP 어드레스와 포트 번호의 조합을 도 6에 나타낸 NAPT 테이블에 설정한 바와 같이 항상 유지하거나, 또는 단계 S203의 제1접속 요구 시퀀스에서 TCP 접속 개시 패킷(211)을 송신할 때에 이 조합을 NAPT 테이블에 설정하고, 단계 S209의 데이터 통신 시퀀스가 종료되면 이 조합을 NAPT 테이블로부터 삭제해도 좋다. NAPT 테이블의 설정은, 정적(static) NAPT, 또는 유니버설 플러그 앤드 플레이(universal plug and play) 등의 기능의 어느 하나를 이용하여 실행할 수도 있다.
또한, 단계 S203의 제1접속 요구 시퀀스에서의 TCP 접속 개시 패킷(211)에 의하여 개시되는 TCP 접속을 통한 통신과, 단계 S203의 제2접속 요구 시퀀스에서의 TCP 접속 개시 패킷(221)에 의하여 개시되는 TCP 접속을 통한 통신은, SSL과는 상이한 암호화 통신 방식을 이용하여 실행할 수도 있다. 또 다른 방법으로는, 단계 S203 및 S206에서의 TCP 통신의 암호화를 생략해도 좋다. 후자의 경우, 단계 S203에 있어서, 요구 발행 기기(102)는 TCP 접속 개시 패킷(211)을 송신하여 TCP 접속을 설정한 직후 접속 요구 패킷(217)을 송신해도 좋다. 단계 S206에 있어서, 서버 장치(101)는 TCP 접속 개시 패킷(221)을 수신한 직후 접속 요구 패킷(226)을 송신해도 좋다.
단계 S209의 데이터 통신 시퀀스의 처리는, 단계 S202 및 S206과 마찬가지로, SSL 방식 등의 암호화 접속 방식을 이용하여 실행해도 좋다. 또한, 단계 S209에서의 데이터의 송수신은, UDP 등 기타의 전송 프로토콜을 이용하여 실행해도 좋다.
도 7A 내지 7D 및 도 8A 내지 8D에 나타내는 기기 등록 패킷(201), 접속 요구 패킷(217), 접속 요구 통지 패킷(205) 및 접속 요구 패킷(226)은 설명을 위해서 제시된 것뿐이다. 기타 필드를 추가로 이용해도 좋고, 또는 각각의 필드를 다른 순서로 구성해도 좋다.
도 1 내지 도 9에서 이용한 IP 어드레스, 포트 번호 및 기기 ID는 설명을 위해서 제시된 것뿐이다. 이것들은 상이한 값이라도 좋다.
본 발명은, 또 다른 바람직한 실시형태로서, 도 2 내지 도 4에 나타낸 처리에 관한 각각의 단계를 포함하는 컴퓨터 판독 가능한 프로그램으로서 제공될 수도 있다, 또 다른 방법으로는, 본 발명은, 상기 프로그램을 기록한, 컴퓨터 판독 가능한 기록 매체로서 제공될 수도 좋다. 후자의 경우, 상기 프로그램을, 인터넷에 접속된 컴퓨터 또는 기기로써 판독하여, 상기 프로그램에 포함된 각 단계를 컴퓨터 또는 기기로써 실행한다. 이에 따라서, 이 컴퓨터 또는 기기는, 이상 설명한 바람직한 실시형태에 의한 서버 장치(101), 요구 발행 기기(102),및 요구 수락 기기(103)의 모두 또는 하나로서 동작할 수 있다.
상기 프로그램을 기록한 기록 매체의 예로서, CD-ROM 및 DVD-ROM 등의 광 기록 매체, 플렉시블 디스크 및 하드 디스크 등의 자기 기록 매체, 또는 반도체 메모 리를 포함할 수도 있다. 그러나, 상기 프로그램을 기록하는 기록 매체의 방식은 이것들에 한정되지 않는다. 또한, 상기 프로그램은, 인터넷 등의 네트워크를 통하여 분배할 수도 있다.
상기한 바와 같이, 본 발명은, 인터넷(WAN)에 접속된, 다른 LAN상의 기기 간에 피어 투 피어 통신을 용이하게 실현하고, 또한 부정 액세스를 방지할 수 있는 통신 시스템을 제공할 수 있다.
따라서, 이상 상세하게 설명한 바와 같이, 본 발명에 의하면, 프라이빗 IP 어드레스를 각각 갖는, 다른 LAN상의 기기인 요구 발행 기기와 요구 수락 기기 간에 부정 액세스를 방지할 수 있는 피어 투 피어 통신을 실현할 수 있다. 또한, 본 발명에 의하면, 인터넷에 접속된 컴퓨터 또는 기기에 대하여, 상기 컴퓨터 또는 기기에 의해서 프로그램이 판독되었을 때 통신 방법의 각각의 단계를 실행하게 하는 상기 통신 방법의 각각의 단계를 포함하는 프로그램이 제공된다.

Claims (34)

  1. 서버 장치, 및 요구 발행 기기와 요구 수락 기기를 포함하는 복수의 기기가 네트워크에 각각 접속된 통신 시스템에 설치된 서버 장치로서, 상기 요구 발행 기기로부터 상기 요구 수락 기기에의 접속 요구 신호를 전송하는 서버 장치에 있어서, 상기 서버 장치는,
    상기 복수의 기기의 각각에 관련된 IP 어드레스 및 포트 번호, 및 상기 복수의 기기의 각각의 기기 ID로 구성되는, 상기 복수의 기기의 각각에 관한 기기 정보의 세트를 포함하는 기기 정보 리스트를 저장하는 기기 정보 저장 장치를 구비하고,
    상기 요구 수락 기기에 관한 기기 정보의 세트를 포함하고 또한 상기 요구 수락 기기로부터 정기적으로 송신되는 기기 등록 신호를 수신하여, 상기 수신된 기기 등록 신호에 포함된 상기 요구 수락 기기에 관한 기기 정보의 세트를 상기 기기 정보 저장 장치에 저장하고,
    상기 요구 발행 기기로부터 송신되는 제1TCP 접속 개시 신호를 수신하여 상기 요구 발행 기기와의 사이의 제1TCP 접속을 설정하고,
    상기 요구 수락 기기의 기기 ID와, 상기 요구 발행 기기에 관련된 IP 어드레스 및 포트 번호를 포함하는, 상기 요구 수락 기기에의 요구인 제1접속 요구 신호를 상기 제1TCP 접속을 이용하여 상기 요구 발행 기기로부터 수신하고,
    상기 수신된 제1접속 요구 신호에 포함된 상기 요구 수락 기기의 기기 ID를 상기 기기 정보 리스트로부터 검색하고, 상기 기기 정보 리스트에서, 상기 제1접속 요구 신호에 포함된 요구 수락 기기의 기기 ID와 일치하는 기기 ID를 포함하는 기기 정보의 세트에 관련된 기기를 상기 요구 수락 기기로서 식별하고, 또한 상기 식별된 요구 수락 기기에 관한 기기 정보의 세트에 포함된 IP 어드레스 및 포트 번호를 상기 요구 수락 기기에 관련된 IP 어드레스 및 포트 번호로서 식별하고, 또한
    상기 식별된 요구 수락 기기에, 상기 식별된 IP 어드레스 및 상기 식별된 포트 어드레스를 수신처로 하여, 상기 수신된 제1접속 요구 신호에 포함되고 상기 요구 발행 기기에 관련된 IP 어드레스 및 포트 번호를 포함하는 제2접속 요구 신호를, 상기 기기 등록 신호에 대한 응답 신호로서 송신하는 것을 특징으로 하는 서버 장치.
  2. 제1항에 있어서, 상기 서버 장치는,
    상기 식별된 요구 수락 기기에 관한 기기 정보의 세트에 포함된 IP 어드레스 및 포트 번호를 상기 요구 수락 기기에 관련된 IP 어드레스 및 포트 번호로서 식별한 후, 또한 상기 식별된 요구 수락 기기에 상기 제2접속 요구 신호를 송신하기 전에, 상기 요구 수락 기기에 제3접속 요구 신호를 송신하고, 상기 요구 수락 기기로부터 상기 제3접속 요구 신호에 대한 응답 신호로서 제2TCP 접속 개시 신호를 수신하여 상기 요구 수락 기기와의 제2TCP 접속을 설정하고, 또한
    상기 설정된 제2TCP 접속을 이용하여 상기 요구 수락 기기에 상기 제2접속 요구 신호를 송신하는 것을 특징으로 하는 서버 장치.
  3. 제2항에 있어서,
    상기 제1접속 요구 신호는 상기 요구 수락 기기의 패스워드 정보를 추가로 포함하고,
    상기 서버 장치는, 상기 제1접속 요구 신호에 포함된 상기 패스워드 정보를 상기 제2접속 요구 신호에 부가하여, 상기 패스워드 정보를 포함하는 제2접속 요구 신호를 송신하는 것을 특징으로 하는 서버 장치.
  4. 제3항에 있어서, 상기 서버 장치는,
    제1통신용 공통 키(key) 및 제2통신용 공통 키를 생성하고, 상기 제1통신용 공통 키를 이용하여 수신한 신호를 복호화하고, 또한 상기 제2통신용 공통 키를 이용하여 송신하는 신호를 암호화하는 제1암호 통신 장치, 및
    상기 서버 장치의 정당성을 증명하기 위한 서버 증명서 정보를 저장하는 증명서 정보 저장 장치를 구비하고,
    상기 제1접속 요구 신호를 수신하기 전에, 상기 요구 발행 기기에 상기 서버 증명서 정보를 송신하고,
    상기 요구 발행 기기로부터, 상기 서버 증명서 정보에 응답하여 생성된 제1공통 키 생성 정보를 상기 제1TCP 접속을 이용하여 수신하고, 상기 제1공통 키 생성 정보에 응답하여 상기 제1암호 통신 장치로써 제2공통 키 생성 정보를 생성하고, 상기 제1공통 키 생성 정보 및 상기 제2공통 키 생성 정보에 따라서 상기 제1 암호 통신 장치로써 제1통신용 공통 키를 생성하고, 상기 제2공통 키 생성 정보를 상기 요구 발행 기기에 상기 제1TCP 접속을 이용하여 송신하고, 또한 상기 요구 발행 기기에 대하여 상기 제1통신용 공통 키와 동일한 통신용 공통 키를 상기 제1공통 키 생성 정보 및 상기 제2공통 키 생성 정보에 따라서 생성하게 하여 상기 제1통신용 공통 키를 상기 요구 발행 기기와 공유하고,
    상기 요구 발행 기기로부터, 상기 제1통신용 공통 키를 이용하여 암호화된 상기 제1접속 요구 신호를, 상기 제1TCP 접속을 이용하여 수신하고, 또한 상기 제1암호 통신 장치로써 상기 수신된 제1접속 요구 신호를, 상기 제1통신용 공통 키를 이용하여 복호화하고,
    상기 제2접속 요구 신호를 송신하기 전에, 상기 요구 수락 기기에 상기 서버 증명서 정보를 송신하고,
    상기 요구 수락 기기로부터, 상기 서버 증명서 정보에 응답하여 생성된 제3공통 키 생성 정보를 상기 제2TCP 접속을 이용하여 수신하고, 상기 제1암호 통신 장치로써 상기 제3공통 키 생성 정보에 응답하여 제4공통 키 생성 정보를 생성하고, 상기 제1암호 통신 장치로써 상기 제3공통 키 생성 정보 및 상기 제4공통 키 생성 정보에 따라서 제2통신용 공통 키를 생성하고, 상기 제4공통 키 생성 정보를 상기 요구 수락 기기에 상기 제2TCP 접속을 이용하여 송신하고, 또한 상기 요구 수락 기기에 대하여 상기 제2통신용 공통 키와 동일한 통신용 공통 키를 상기 제3공통 키 생성 정보 및 상기 제4공통 키 생성 정보에 따라서 생성하게 하여 상기 제2통신용 공통 키를 상기 요구 수락 기기와 공유하고, 또한
    상기 제1접속 요구 신호를 수신한 후, 또한 상기 제2접속 요구 신호를 송신하기 전에, 상기 제1암호 통신 장치로써 상기 제2통신용 공통 키를 이용하여 상기 제2접속 요구 신호를 암호화하는 것을 특징으로 하는 서버 장치.
  5. 서버 장치, 및 요구 발행 기기와 요구 수락 기기를 포함하는 복수의 기기가 네트워크에 각각 접속된 통신 시스템에 설치된 요구 발행 기기로서, 상기 서버 장치 및 상기 요구 수락 기기와 통신하는 요구 발행 기기에 있어서,
    상기 요구 발행 기기는,
    상기 서버 장치에 제1TCP 접속 개시 신호를 송신함으로써 상기 서버 장치와의 사이의 제1TCP 접속을 설정하고,
    상기 요구 수락 기기의 기기 ID와, 상기 요구 발행 기기에 관련된 IP 어드레스 및 포트 번호를 포함하는, 상기 요구 수락 기기에의 요구인 제1접속 요구 신호를 상기 제1TCP 접속을 이용하여 상기 서버 장치에 송신하고,
    상기 요구 발행 기기와 상기 요구 수락 기기와의 사이의 통신을 요구하는 통신 요구 신호를 상기 요구 수락 기기로부터 수신한 후에, 상기 통신 요구 신호에 응답하여 상기 요구 발행 기기와 상기 요구 수락 기기와의 사이의 통신을 수락하고, 상기 요구 수락 기기와의 통신을 개시하는 것을 특징으로 하는 요구 발행 기기.
  6. 제5항에 있어서, 상기 제1접속 요구 신호는, 상기 요구 수락 기기의 패스워 드 정보를 추가로 포함하는 것을 특징으로 하는 요구 발행 기기.
  7. 제6항에 있어서, 상기 요구 발행 기기는,
    제1통신용 공통 키를 생성하고, 상기 제1통신용 공통 키를 이용하여 송신하는 신호를 암호화하는 제2암호 통신 장치, 및
    상기 서버 장치의 정당성을 증명하기 위한 서버 증명서 정보를 인증하는 제1증명서 정보 인증 장치를 구비하고,
    상기 제1접속 요구 신호를 송신하기 전에, 상기 서버 장치로부터 상기 서버 증명서 정보를 수신하고,
    상기 수신된 서버 증명서 정보를 상기 제1증명서 정보 인증 장치로써 인증하고, 또한 상기 수신된 서버 증명서 정보가 정당한가 아닌가를 확인하고,
    상기 수신된 서버 증명서 정보가 정당한 것으로 확인되었을 때, 상기 제2암호 통신 장치로써 제1공통 키 생성 정보를 생성하고, 상기 생성된 제1공통 키 생성 정보를 상기 제1TCP 접속을 이용하여 상기 서버 장치에 송신하고, 상기 서버 장치로부터, 상기 제1공통 키 생성 정보에 응답하여 생성된 제2공통 키 생성 정보를 상기 제1TCP 접속을 이용하여 수신하고, 상기 제1공통 키 생성 정보 및 상기 제2공통 키 생성 정보에 따라서 상기 제2암호 통신 장치로써 제1통신용 공통 키를 생성하고, 또한 상기 서버 장치에 대하여 상기 제1공통 키 생성 정보 및 상기 제2공통 키 생성 정보에 따라서 상기 제1통신용 공통 키와 동일한 통신용 공통 키를 생성하게 하여, 상기 제1통신용 공통 키를 상기 서버 장치와 공유하고,
    상기 제1접속 요구 신호를 송신하기 전에, 상기 제2암호 통신 장치로써 상기 제1통신용 공통 키를 이용하여 상기 제1접속 요구 신호를 암호화하고, 또한
    상기 암호화된 상기 제1접속 요구 신호를 상기 제1TCP 접속을 이용하여 상기 서버 장치에 송신하는 것을 특징으로 하는 요구 발행 기기.
  8. 서버 장치, 및 요구 발행 기기와 요구 수락 기기를 포함하는 복수의 기기가 네트워크에 각각 접속된 통신 시스템에 설치된 요구 수락 기기로서, 상기 서버 장치 및 상기 요구 발행 기기와 통신하는 요구 수락 기기에 있어서,
    상기 요구 수락 기기는,
    상기 요구 수락 기기의 기기 ID를 저장하는 기기 ID 저장 장치를 구비하고,
    상기 요구 수락 기기의 기기 ID를 포함하는 기기 등록 신호를 상기 서버 장치에 정기적으로 송신하고,
    상기 요구 발행 기기에 관련된 IP 어드레스 및 포트 번호를 포함하는 제2접속 요구 신호를, 상기 기기 등록 신호에 대한 응답 신호로서 상기 서버 장치로부터 수신하고,
    상기 수신된 제2접속 요구 신호에 포함된 IP 어드레스 및 포트 번호가 나타내는 상기 요구 발행 기기에, 상기 요구 수락 기기와 상기 요구 발행 기기와의 사이의 통신을 요구하는 통신 요구 신호를 송신하고, 또한
    상기 요구 발행 기기가 상기 통신 요구 신호에 응답하여 상기 요구 수락 기기와 상기 요구 발행 기기와의 사이의 통신을 수락한 후에, 상기 요구 발행 기기와 의 통신을 개시하는 것을 특징으로 하는 요구 수락 기기.
  9. 제8항에 있어서, 상기 요구 수락 기기는,
    상기 기기 등록 신호를 상기 서버 장치에 송신한 후, 또한 상기 제2접속 요구 신호를 수신하기 전에, 상기 기기 등록 신호에 대한 응답 신호로서 상기 서버 장치로부터 제3접속 요구 신호를 수신하고, 상기 제3접속 요구 신호에 대한 응답 신호로서 제2TCP 접속 개시 신호를 상기 서버 장치에 송신함으로써 상기 서버 장치와의 제2TCP 접속을 설정하고, 또한
    상기 설정된 제2TCP 접속을 이용하여 상기 서버 장치로부터 상기 제2접속 요구 신호를 수신하는 것을 특징으로 하는 요구 수락 기기.
  10. 제9항에 있어서, 상기 요구 수락 기기는,
    상기 요구 수락 기기의 패스워드 정보를 저장하는 패스워드 정보 저장 장치를 추가로 구비하고,
    패스워드 정보를 추가로 포함하는 상기 제2접속 요구 신호를, 상기 제2TCP 접속을 이용하여 상기 서버 장치로부터 수신하고, 또한
    상기 제2접속 요구 신호에 포함된 패스워드 정보가, 상기 패스워드 정보 저장 장치에 저장된, 상기 요구 수락 기기의 패스워드 정보와 일치할 때에만, 상기 통신 요구 신호를 상기 요구 발행 기기에 송신하는 것을 특징으로 하는 요구 수락 기기.
  11. 제10항에 있어서, 상기 요구 수락 기기는,
    제2통신용 공통 키를 생성하고, 상기 제2통신용 공통 키를 이용하여 수신한 신호의 복호화를 실행하는 제3암호 통신 장치, 및
    상기 서버 장치의 정당성을 증명하기 위한 서버 증명서 정보를 인증하는 제2증명서 정보 인증 장치를 추가로 구비하고,
    상기 제2접속 요구 신호를 수신하기 전에, 상기 서버 장치로부터 상기 서버 증명서 정보를 수신하고,
    상기 제2증명서 정보 인증 장치로써 상기 수신된 서버 증명서 정보가 정당한가 아닌가를 인증하여, 상기 수신된 서버 증명서 정보가 정당한가 아닌가를 확인하고,
    상기 수신된 서버 증명서 정보가 정당한 것으로 확인되었을 때, 상기 제3암호 통신 장치로써 제3공통 키 생성 정보를 생성하고, 상기 생성된 제3공통 키 생성 정보를 상기 제2TCP 접속을 이용하여 상기 서버 장치에 송신하고, 상기 서버 장치로부터, 상기 제3공통 키 생성 정보에 응답하여 생성된 제4공통 키 생성 정보를 상기 제2TCP 접속을 이용하여 수신하고, 상기 제2공통 키 생성 정보 및 상기 제4공통 키 생성 정보에 따라서 상기 제3암호 통신 장치로써 제2통신용 공통 키를 생성하고, 또한 상기 서버 장치에 대하여 상기 제3공통 키 생성 정보 및 상기 제4공통 키 생성 정보에 따라서 상기 제2통신용 공통 키와 동일한 통신용 공통 키를 생성하게 하여, 상기 제2통신용 공통 키를 상기 서버 장치와 공유하고, 또한
    상기 서버 장치로부터, 상기 제2통신용 공통 키를 이용하여 암호화된 상기 제2접속 요구 신호를, 상기 제2TCP 접속을 이용하여 수신하고, 또한 상기 제3암호 통신 장치로써 상기 제2통신용 공통 키를 이용하여 상기 수신된 제2접속 요구 신호를 복호화하는 것을 특징으로 하는 요구 수락 기기.
  12. 제1항에 기재된 상기 서버 장치, 및
    제5항에 기재된 상기 요구 발행 기기와 제8항에 기재된 상기 요구 수락 기기를 포함하는 복수의 기기를 구비한 통신 시스템으로서,
    상기 복수의 기기와 상기 서버 장치의 각각이 네트워크에 접속된 것을 특징으로 하는 통신 시스템.
  13. 제2항에 기재된 상기 서버 장치, 및
    제5항에 기재된 상기 요구 발행 기기와 제9항에 기재된 상기 요구 수락 기기를 포함하는 복수의 기기를 구비한 통신 시스템으로서,
    상기 복수의 기기와 상기 서버 장치의 각각이 네트워크에 접속된 것을 특징으로 하는 통신 시스템.
  14. 제3항에 기재된 상기 서버 장치, 및
    제6항에 기재된 상기 요구 발행 기기와 제10항에 기재된 상기 요구 수락 기기를 포함하는 복수의 기기를 구비한 통신 시스템으로서,
    상기 복수의 기기와 상기 서버 장치의 각각이 네트워크에 접속된 것을 특징으로 하는 통신 시스템.
  15. 제4항에 기재된 상기 서버 장치, 및
    제7항에 기재된 상기 요구 발행 기기와 제11항에 기재된 상기 요구 수락 기기를 포함하는 복수의 기기를 구비한 통신 시스템으로서,
    상기 복수의 기기와 상기 서버 장치의 각각이 네트워크에 접속된 것을 특징으로 하는 통신 시스템.
  16. 서버 장치, 및 요구 발행 기기와 요구 수락 기기를 포함하는 복수의 기기가 네트워크에 각각 접속된 통신 시스템에 설치된 서버 장치로서, 상기 요구 발행 기기로부터 상기 요구 수락 기기에의 접속 요구 신호를 전송하는 서버 장치를 이용한 통신 방법에 있어서,
    상기 서버 장치는, 상기 복수의 기기의 각각에 관련된 IP 어드레스 및 포트 번호, 및 상기 복수의 기기의 각각의 기기 ID로 구성되는, 상기 복수의 기기의 각각에 관한 기기 정보의 세트를 포함하는 기기 정보 리스트를 저장하는 기기 정보 저장 장치를 구비하고,
    상기 통신 방법은,
    상기 요구 수락 기기에 관한 기기 정보의 세트를 포함하고 또한 상기 요구 수락 기기로부터 정기적으로 송신되는 기기 등록 신호를 수신하여, 상기 수신된 기 기 등록 신호에 포함된 상기 요구 수락 기기에 관한 기기 정보의 세트를 상기 기기 정보 저장 장치에 저장하는 단계와,
    상기 요구 발행 기기로부터 송신되는 제1TCP 접속 개시 신호를 수신하여 상기 요구 발행 기기와의 사이의 제1TCP 접속을 설정하는 단계와,
    상기 요구 수락 기기의 기기 ID와, 상기 요구 발행 기기에 관련된 IP 어드레스 및 포트 번호를 포함하는, 상기 요구 수락 기기에의 요구인 제1접속 요구 신호를 상기 제1TCP 접속을 이용하여 상기 요구 발행 기기로부터 수신하는 단계와,
    상기 수신된 제1접속 요구 신호에 포함된 상기 요구 수락 기기의 기기 ID를 상기 기기 정보 리스트로부터 검색하고, 상기 기기 정보 리스트에서, 상기 제1접속 요구 신호에 포함된 요구 수락 기기의 기기 ID와 일치하는 기기 ID를 포함하는 기기 정보의 세트에 관련된 기기를 상기 요구 수락 기기로서 식별하고, 또한 상기 식별된 요구 수락 기기에 관한 기기 정보의 세트에 포함된 IP 어드레스 및 포트 번호를 상기 요구 수락 기기에 관련된 IP 어드레스 및 포트 번호로서 식별하는 단계와,
    상기 식별된 요구 수락 기기에, 상기 식별된 IP 어드레스 및 상기 식별된 포트 어드레스를 수신처로 하여, 상기 수신된 제1접속 요구 신호에 포함되고 상기 요구 발행 기기에 관련된 IP 어드레스 및 포트 번호를 포함하는 제2접속 요구 신호를, 상기 기기 등록 신호에 대한 응답 신호로서 송신하는 단계를 포함하는 것을 특징으로 하는 통신 방법.
  17. 제16항에 있어서, 상기 식별하는 단계 후, 또한 상기 제2접속 요구 신호를 송신하는 단계 전에, 상기 요구 수락 기기에 제3접속 요구 신호를 송신하고, 또한 상기 요구 수락 기기로부터 상기 제3접속 요구 신호에 대한 응답 신호로서 제2TCP 접속 개시 신호를 수신하여 상기 요구 수락 기기와의 제2TCP 접속을 설정하는 단계를 추가로 포함하고,
    상기 제2접속 요구 신호를 송신하는 단계는, 상기 설정된 제2TCP 접속을 이용하여 상기 요구 수락 기기에 상기 제2접속 요구 신호를 송신하는 단계를 포함하는 것을 특징으로 하는 통신 방법.
  18. 제17항에 있어서,
    상기 제1접속 요구 신호는 상기 요구 수락 기기의 패스워드 정보를 추가로 포함하고,
    상기 통신 방법은, 상기 제1접속 요구 신호에 포함된 상기 패스워드 정보를 상기 제2접속 요구 신호에 부가하여, 상기 패스워드 정보를 포함하는 제2접속 요구 신호를 송신하는 단계를 추가로 포함하는 것을 특징으로 하는 통신 방법.
  19. 제18항에 있어서, 상기 통신 방법은,
    상기 제1접속 요구 신호를 수신하는 단계 전에, 상기 서버 장치의 정당성을 증명하기 위한 서버 증명서 정보를 상기 요구 발행 기기에 송신하는 단계와,
    상기 요구 발행 기기로부터, 상기 서버 증명서 정보에 응답하여 생성된 제1공통 키 생성 정보를 상기 제1TCP 접속을 이용하여 수신하고, 상기 제1공통 키 생 성 정보에 응답하여 제2공통 키 생성 정보를 생성하고, 상기 제1공통 키 생성 정보 및 상기 제2공통 키 생성 정보에 따라서 제1통신용 공통 키를 생성하고, 상기 제2공통 키 생성 정보를 상기 요구 발행 기기에 상기 제1TCP 접속을 이용하여 송신하고, 또한 상기 요구 발행 기기에 대하여 상기 제1통신용 공통 키와 동일한 통신용 공통 키를 상기 제1공통 키 생성 정보 및 상기 제2공통 키 생성 정보에 따라서 생성하게 하여 상기 제1통신용 공통 키를 상기 요구 발행 기기와 공유하는 단계와,
    상기 요구 발행 기기로부터, 상기 제1통신용 공통 키를 이용하여 암호화된 상기 제1접속 요구 신호를, 상기 제1TCP 접속을 이용하여 수신하고, 또한 상기 수신된 제1접속 요구 신호를, 상기 제1통신용 공통 키를 이용하여 복호화하는 단계와,
    상기 제2접속 요구 신호를 송신하는 단계 전에, 상기 요구 수락 기기에 상기 서버 증명서 정보를 송신하는 단계와,
    상기 요구 수락 기기로부터, 상기 서버 증명서 정보에 응답하여 생성된 제3공통 키 생성 정보를 상기 제2TCP 접속을 이용하여 수신하고, 상기 제3공통 키 생성 정보에 응답하여 제4공통 키 생성 정보를 생성하고, 상기 제3공통 키 생성 정보 및 상기 제4공통 키 생성 정보에 따라서 제2통신용 공통 키를 생성하고, 상기 제4공통 키 생성 정보를 상기 요구 수락 기기에 상기 제2TCP 접속을 이용하여 송신하고, 또한 상기 요구 수락 기기에 대하여 상기 제2통신용 공통 키와 동일한 통신용 공통 키를 상기 제3공통 키 생성 정보 및 상기 제4공통 키 생성 정보에 따라서 생성하게 하여 상기 제2통신용 공통 키를 상기 요구 수락 기기와 공유하는 단계와,
    상기 제1접속 요구 신호를 수신하는 단계 후, 또한 상기 제2접속 요구 신호를 송신하는 단계 전에, 상기 제2통신용 공통 키를 이용하여 상기 제2접속 요구 신호를 암호화하는 단계를 추가로 포함하는 것을 특징으로 하는 통신 방법.
  20. 서버 장치, 및 요구 발행 기기와 요구 수락 기기를 포함하는 복수의 기기가 네트워크에 각각 접속된 통신 시스템에 설치된 요구 발행 기기로서, 상기 서버 장치 및 상기 요구 수락 기기와 통신하는 요구 발행 기기를 이용한 통신 방법에 있어서, 상기 통신 방법은,
    상기 서버 장치에 제1TCP 접속 개시 신호를 송신함으로써 상기 서버 장치와의 사이의 제1TCP 접속을 설정하는 단계와,
    상기 요구 수락 기기의 기기 ID와, 상기 요구 발행 기기에 관련된 IP 어드레스 및 포트 번호를 포함하는, 상기 요구 수락 기기에의 요구인 제1접속 요구 신호를 상기 제1TCP 접속을 이용하여 상기 서버 장치에 송신하는 단계와,
    상기 요구 발행 기기와 상기 요구 수락 기기와의 사이의 통신을 요구하는 통신 요구 신호를 상기 요구 수락 기기로부터 수신하는 단계 후에, 상기 통신 요구 신호에 응답하여 상기 요구 발행 기기와 상기 요구 수락 기기와의 사이의 통신을 수락하고, 상기 요구 수락 기기와의 통신을 개시하는 단계를 포함하는 것을 특징으로 하는 통신 방법.
  21. 제20항에 있어서, 상기 제1접속 요구 신호는, 상기 요구 수락 기기의 패스워 드 정보를 추가로 포함하는 것을 특징으로 하는 통신 방법.
  22. 제21항에 있어서, 상기 통신 방법은,
    상기 제1접속 요구 신호를 송신하는 단계 전에, 상기 서버 장치로부터 상기 서버 증명서 정보를 수신하는 단계와,
    상기 수신된 서버 증명서 정보가 정당한가 아닌가를 인증하여 상기 수신된 서버 증명서 정보가 정당한가 아닌가를 확인하는 단계와,
    상기 수신된 서버 증명서 정보가 정당한 것으로 확인되었을 때, 제1공통 키 생성 정보를 생성하고, 상기 생성된 제1공통 키 생성 정보를 상기 제1TCP 접속을 이용하여 상기 서버 장치에 송신하고, 상기 서버 장치로부터, 상기 제1공통 키 생성 정보에 응답하여 생성된 제2공통 키 생성 정보를 상기 제1TCP 접속을 이용하여 수신하고, 상기 제1공통 키 생성 정보 및 상기 제2공통 키 생성 정보에 따라서 제1통신용 공통 키를 생성하고, 또한 상기 서버 장치에 대하여 상기 제1공통 키 생성 정보 및 상기 제2공통 키 생성 정보에 따라서 상기 제1통신용 공통 키와 동일한 통신용 공통 키를 생성하게 하여, 상기 제1통신용 공통 키를 상기 서버 장치와 공유하는 단계와,
    상기 제1접속 요구 신호를 송신하는 단계 전에, 상기 제1통신용 공통 키를 이용하여 상기 제1접속 요구 신호를 암호화하는 단계를 추가로 포함하는 것을 특징으로 하는 통신 방법.
  23. 서버 장치, 및 요구 발행 기기와 요구 수락 기기를 포함하는 복수의 기기가 네트워크에 각각 접속된 통신 시스템에 설치된 요구 수락 기기로서, 상기 서버 장치 및 상기 요구 발행 기기와 통신하는 요구 수락 기기를 이용한 통신 방법에 있어서, 상기 통신 방법은,
    상기 요구 수락 기기의 기기 ID를 포함하는 기기 등록 신호를 상기 서버 장치에 정기적으로 송신하는 단계와,
    상기 요구 발행 기기에 관련된 IP 어드레스 및 포트 번호를 포함하는 제2접속 요구 신호를, 상기 기기 등록 신호에 대한 응답 신호로서 상기 서버 장치로부터 수신하는 단계와,
    상기 수신된 제2접속 요구 신호에 포함된 IP 어드레스 및 포트 번호가 나타내는 상기 요구 발행 기기에, 상기 요구 수락 기기와 상기 요구 발행 기기와의 사이의 통신을 요구하는 통신 요구 신호를 송신하는 단계와,
    상기 요구 발행 기기가 상기 통신 요구 신호에 응답하여 상기 요구 수락 기기와 상기 요구 발행 기기와의 사이의 통신을 수락한 후에, 상기 요구 발행 기기와의 통신을 개시하는 단계를 포함하는 것을 특징으로 하는 통신 방법.
  24. 제23항에 있어서,
    상기 기기 등록 신호를 상기 서버 장치에 송신하는 단계 후, 또한 상기 제2접속 요구 신호를 수신하는 단계 전에, 상기 기기 등록 신호에 대한 응답 신호로서 상기 서버 장치로부터 제3접속 요구 신호를 수신하고, 상기 제3접속 요구 신호에 대한 응답 신호로서 제2TCP 접속 개시 신호를 상기 서버 장치에 송신함으로써 상기 서버 장치와의 제2TCP 접속을 설정하는 단계와,
    상기 설정된 제2TCP 접속을 이용하여 상기 서버 장치로부터 상기 제2접속 요구 신호를 수신하는 단계를 추가로 포함하는 것을 특징으로 하는 통신 방법.
  25. 제24항에 있어서,
    상기 요구 수락 기기는, 상기 요구 수락 기기의 패스워드 정보를 저장하는 패스워드 정보 저장 장치를 구비하고,
    상기 제2접속 요구 신호는 패스워드 정보를 추가로 포함하고, 또한
    상기 통신 방법은, 상기 제2접속 요구 신호에 포함된 패스워드 정보가, 상기 패스워드 정보 저장 장치에 저장된, 상기 요구 수락 기기의 패스워드 정보와 일치할 때에만, 상기 통신 요구 신호를 상기 요구 발행 기기에 송신하는 단계를 추가로 포함하는 것을 특징으로 하는 통신 방법.
  26. 제25항에 있어서, 상기 통신 방법은,
    상기 제2접속 요구 신호를 수신하는 단계 전에, 상기 서버 장치로부터 상기 서버 증명서 정보를 수신하는 단계와,
    상기 수신된 서버 증명서 정보가 정당한가 아닌가를 인증하여, 상기 수신된 서버 증명서 정보가 정당한가 아닌가를 확인하는 단계와,
    상기 수신된 서버 증명서 정보가 정당한 것으로 확인되었을 때, 제3공통 키 생성 정보를 생성하고, 상기 생성된 제3공통 키 생성 정보를 상기 제2TCP 접속을 이용하여 상기 서버 장치에 송신하고, 상기 서버 장치로부터, 상기 제3공통 키 생성 정보에 응답하여 생성된 제4공통 키 생성 정보를 상기 제2TCP 접속을 이용하여 수신하고, 상기 제2공통 키 생성 정보 및 상기 제4공통 키 생성 정보에 따라서 제2통신용 공통 키를 생성하고, 또한 상기 서버 장치에 대하여 상기 제3공통 키 생성 정보 및 상기 제4공통 키 생성 정보에 따라서 상기 제2통신용 공통 키와 동일한 통신용 공통 키를 생성하게 하여, 상기 제2통신용 공통 키를 상기 서버 장치와 공유하는 단계를 추가로 포함하고,
    상기 제2접속 요구 신호를 수신하는 단계는, 상기 제2통신용 공통 키를 이용하여 상기 수신된 제2접속 요구 신호를 복호화하는 단계를 추가로 포함하는 것을 특징으로 하는 통신 방법.
  27. 서버 장치, 및 요구 발행 기기와 요구 수락 기기를 포함하는 복수의 기기를 구비한 통신 시스템을 이용한 통신 방법으로서,
    상기 복수의 기기와 상기 서버 장치의 각각이 네트워크에 접속되고, 또한
    상기 통신 방법은 제16항에 기재된 통신 방법, 제20항에 기재된 통신 방법, 및 제23항에 기재된 통신 방법을 포함하는 것을 특징으로 하는 통신 방법.
  28. 서버 장치, 및 요구 발행 기기와 요구 수락 기기를 포함하는 복수의 기기를 구비한 통신 시스템을 이용한 통신 방법으로서,
    상기 복수의 기기와 상기 서버 장치의 각각이 네트워크에 접속되고, 또한
    상기 통신 방법은 제17항에 기재된 통신 방법, 제20항에 기재된 통신 방법, 및 제24항에 기재된 통신 방법을 포함하는 것을 특징으로 하는 통신 방법.
  29. 서버 장치, 및 요구 발행 기기와 요구 수락 기기를 포함하는 복수의 기기를 구비한 통신 시스템을 이용한 통신 방법으로서,
    상기 복수의 기기와 상기 서버 장치의 각각이 네트워크에 접속되고, 또한
    상기 통신 방법은 제18항에 기재된 통신 방법, 제21항에 기재된 통신 방법, 및 제25항에 기재된 통신 방법을 포함하는 것을 특징으로 하는 통신 방법.
  30. 서버 장치, 및 요구 발행 기기와 요구 수락 기기를 포함하는 복수의 기기를 구비한 통신 시스템을 이용한 통신 방법으로서,
    상기 복수의 기기와 상기 서버 장치의 각각이 네트워크에 접속되고, 또한
    상기 통신 방법은 제19항에 기재된 통신 방법, 제22항에 기재된 통신 방법, 및 제26항에 기재된 통신 방법을 포함하는 것을 특징으로 하는 통신 방법.
  31. 제16항에 기재된 통신 방법을 컴퓨터로써 실행하기 위한 프로그램.
  32. 제20항에 기재된 통신 방법을 컴퓨터로써 실행하기 위한 프로그램.
  33. 제23항에 기재된 통신 방법을 컴퓨터로써 실행하기 위한 프로그램.
  34. 제27항에 기재된 통신 방법을 컴퓨터로써 실행하기 위한 프로그램.
KR1020067018502A 2004-02-20 2005-01-21 프록시에 의한 안전한 단말간 tcp/ip 통신 방법 및통신 시스템 KR20070017329A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020067018502A KR20070017329A (ko) 2004-02-20 2005-01-21 프록시에 의한 안전한 단말간 tcp/ip 통신 방법 및통신 시스템

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2004-00044141 2004-02-20
KR1020067018502A KR20070017329A (ko) 2004-02-20 2005-01-21 프록시에 의한 안전한 단말간 tcp/ip 통신 방법 및통신 시스템

Publications (1)

Publication Number Publication Date
KR20070017329A true KR20070017329A (ko) 2007-02-09

Family

ID=43651129

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067018502A KR20070017329A (ko) 2004-02-20 2005-01-21 프록시에 의한 안전한 단말간 tcp/ip 통신 방법 및통신 시스템

Country Status (1)

Country Link
KR (1) KR20070017329A (ko)

Similar Documents

Publication Publication Date Title
JP4729602B2 (ja) サーバ装置、通信機器、通信システム、プログラム及び記録媒体
JP4081724B1 (ja) クライアント端末、中継サーバ、通信システム、及び通信方法
EP1719324A1 (en) Method and system for proxy-based secure end-to-end tcp/ip communications
JP4033868B2 (ja) IPv6ネットワークで認証を処理する方法及びその装置
Winter et al. Transport layer security (TLS) encryption for RADIUS
US20100077204A1 (en) Information processing apparatus, management apparatus, communication system and computer readable medium
US20080056501A1 (en) Method and system for providing authentication service for Internet users
US20170126623A1 (en) Protected Subnet Interconnect
JP2006005909A (ja) 情報処理装置、情報処理方法および情報処理プログラム
KR20050054970A (ko) 가정용 단말을 제어하는 장치, 방법 및 컴퓨터 소프트웨어제품
JP4006403B2 (ja) ディジタル署名発行装置
JP5012173B2 (ja) 暗号通信処理方法及び暗号通信処理装置
US7243368B2 (en) Access control system and method for a networked computer system
WO2023241176A1 (zh) 通信方法、装置、设备、存储介质及程序产品
WO2009082950A1 (fr) Procédé, dispositif et système de distribution de clés
JP6056970B2 (ja) 情報処理装置、端末機、情報処理システム及び情報処理方法
WO2018115221A1 (en) Transport layer security (tls) based method to generate and use a unique persistent node identity, and corresponding client and server
JP2006109152A (ja) ネットワーク上で通信を行う接続要求機器、応答機器、接続管理装置、及び通信システム
JP4837470B2 (ja) Vpnサーバホスティングシステム、vpn構築方法、およびコンピュータプログラム
JP2005303784A (ja) サーバ装置、要求発行機器、要求受諾機器、通信システム、通信方法及びプログラム
KR20070017329A (ko) 프록시에 의한 안전한 단말간 tcp/ip 통신 방법 및통신 시스템
JP2007166552A (ja) 通信装置及び暗号通信方法
JP2002247023A (ja) セッション共有鍵共有方法、ネットワーク端末認証方法、ネットワーク端末および中継装置
JP2005311747A (ja) サーバ装置、要求発行機器、要求受諾機器、通信システム及びプログラム
CN111641539B (zh) 一种家电设备的安全交互方法

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid