WO2017007132A1 - 암호화된 통신 세션의 모니터링 방법, 장치 및 시스템 - Google Patents

암호화된 통신 세션의 모니터링 방법, 장치 및 시스템 Download PDF

Info

Publication number
WO2017007132A1
WO2017007132A1 PCT/KR2016/005836 KR2016005836W WO2017007132A1 WO 2017007132 A1 WO2017007132 A1 WO 2017007132A1 KR 2016005836 W KR2016005836 W KR 2016005836W WO 2017007132 A1 WO2017007132 A1 WO 2017007132A1
Authority
WO
WIPO (PCT)
Prior art keywords
encryption key
information
communication session
encryption
received
Prior art date
Application number
PCT/KR2016/005836
Other languages
English (en)
French (fr)
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 US15/742,816 priority Critical patent/US11153287B2/en
Priority to CN201680040278.9A priority patent/CN107852326B/zh
Publication of WO2017007132A1 publication Critical patent/WO2017007132A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/30Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information
    • H04L63/306Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information intercepting packet switched data communications, e.g. Web, Internet or IMS communications
    • 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/1066Session management
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/041Key generation or derivation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/047Key management, e.g. using generic bootstrapping architecture [GBA] without using a trusted network node as an anchor
    • H04W12/0471Key exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/80Arrangements enabling lawful interception [LI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication

Definitions

  • a part when a part is connected to another part, this includes not only the case where the part is directly connected, but also the case where the part is electrically connected with another element in between.
  • a part when a part includes a certain component, this means that the component may further include other components, not to exclude other components unless specifically stated otherwise.
  • the terms "... unit”, “module”, etc. described in the specification mean a unit for processing at least one function or operation, which may be implemented in hardware or software or a combination of hardware and software. .
  • the first device may generate a different encryption key than the second device.
  • the first device and the second device may generate and use the same encryption key in encrypted communication, and the first device and the second device may generate and use different encryption keys, respectively.
  • the first device may insert information about the encryption key into the confirm message based on whether the monitoring information has been received. If the monitoring information is not received, the first device may not insert information about the encryption key into the confirmation message.
  • FIG 5 shows a monitoring support system when the first device 101 and the second device 102 generate different encryption keys.
  • the first device 101 and the second device 102 may perform encrypted communication.
  • the first device 101 may encrypt and transmit data using the first encryption key
  • the second device 102 may encrypt and transmit data using the second encryption key.
  • Data encrypted using the first encryption key may be decrypted with the second encryption key
  • data encrypted using the second encryption key may be decrypted with the first encryption key.
  • the Message Type Blcok field 805 may include information for confirming whether the confirmation message is transmitted by the first device to the second device or the confirmation message transmitted by the second device to the first device. .
  • the ZRTP Identification field 901, Length field 903, Message Type Blcok field 905, Confirm MAC field 907, CFB Initialization Vector field 909, Hash Preimage field 911, Sig Since the Length and Flag field 915, the Cache Expiration Interval field 917, the Optional Signature Type Block field 919, and the Optional Signature Block field 921 correspond to those described with reference to FIG. 8, a detailed description thereof will be omitted.
  • the third device may acquire address information of the first device or the second device. According to some embodiments, the third device may obtain at least one of address information of the first device or the second device from the user's input or the server.
  • the first device or the second device may transmit encryption key information using a predetermined packet.
  • the third device may obtain encryption key information by intercepting a predetermined packet transmitted by the first device or the third device.
  • the key generation function may include a key operation function.
  • the third device may generate the same encryption key as the encryption key generated by the first device or the second device using the key operation function and the encryption key information.
  • the third device may restore the encryption key generated by the first device or the second device based on the obtained encryption key information.
  • FIG. 12 illustrates a system for describing a monitoring method according to some embodiments.
  • server 104 may initiate a session between first device 101 and second device 102, eg, with first device 101 of second device 102.
  • the server 104 receiving the session initiation request may forward the session initiation request to the first device 101 based on the database stored in the server 104.
  • the first device 101 can receive a session initiation request, and perform session establishment for initiating an encrypted session via the server 104 or directly with the second device 102.
  • FIG. 13 is a flowchart illustrating a monitoring support method according to some embodiments.
  • the server may send a communication session initiation signal to the first device.
  • the server may forward the communication session initiation signal received to the second device to the first device.
  • the controller 1405 typically controls the overall operation of the first device 101.
  • the controller 1405 may overall control the components included in the first device 101 by executing a program stored in the first device 101.
  • the controller 1405 may include at least one processor.
  • control unit 1405 identifies the encryption protocol version information used to encrypt the communication session, received by the receiving unit 1401 from the second device 102, the session with the second device 102. Based on the identifier and the information about the encryption algorithm supported by the second device 102, the encryption algorithm for generating the encryption key may be determined, and the encryption key may be generated using the determined encryption algorithm.
  • the meaning that the receiver 1401 acquires may also include the meaning of intercepting a packet. For example, even when the third device 103 is not determined as the final destination of the packet, the third device 103 may obtain the packet through intercept.
  • the storage unit (memory) 1640 may store a program for processing and controlling the control unit 1405, and may be input to or output from the first device 101. You can also store data.
  • connection or connection members of the lines between the components shown in the drawings by way of example shows a functional connection and / or physical or circuit connections, in the actual device replaceable or additional various functional connections, physical It may be represented as a connection, or circuit connections.
  • 'essential', 'importantly' it may not be a necessary component for the application of the present invention.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Technology Law (AREA)
  • General Business, Economics & Management (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)

Abstract

제 1 디바이스의 암호화된 데이터 통신 세션의 모니터링 지원 방법에 있어서, 제 2 디바이스와의 통신 세션 개시 신호를 수신하는 단계; 통신 세션의 암호화를 위한 암호화 키를 생성하는 단계; 통신 세션에 대한 모니터링 신호의 수신 여부를 판단하는 단계; 및 판단에 기초하여 암호화 키에 대한 정보를 소정의 패킷을 이용하여 제 2 디바이스에게 송신하는 단계를 포함하는 방법이 개시된다.

Description

암호화된 통신 세션의 모니터링 방법, 장치 및 시스템
본 발명은 암호화된 통신 세션의 모니터링 지원 방법, 장치 및 시스템에 관한 관한 것이다.
IoT(Internet of Things) 기술의 발전으로, 모든 디바이스들이 네트워크로 연결되어 정보를 공유하게 되었다. 다만, 네트워크를 통한 데이터의 송수신이 활발해 짐에 따라 디바이스를 통해 송수신되는 데이터의 보안의 강화성이 증대되고 있다. 하지만, 경찰, 국가 안보국과 같은 수사 기관의 수사, 테러 방지와 같은 사회 안전 유지를 위한 활동에는 합법적인 모니터링이 필요할 수 있다. 합법적인 모니터링과 보안 유지가 상충하면서, 두 가지 모두를 충족시킬 수 있는 모니터링 지원 방법이 필요하다.
도 1a 및 도 1b는 종래 기술에 따른 모니터링 지원 방법을 도시한다.
도 1a를 참조하면, 서버(30)가 제 1 디바이스(10) 및 제 2 디바이스(20)간의 세션을 개시하고, 제 1 디바이스(10)와 제 2 디바이스(20)간의 세션에서 사용될 암호화 키를 제 1 디바이스(10) 및 제 2 디바이스(20)에게 제공한다. 제 1 디바이스(10) 및 제 2 디바이스(20)는 서버(30)로부터 수신한 암호화 키를 이용하여 암호화된 통신을 수행한다. 합법적인 모니터링이 필요한 경우, 서버(30)가 모니터링이 필요한 수사 기관에게 세션에서 사용되는 암호화 키를 제공하고, 수사 기관은 서버(30)로부터 제공받은 암호화 키를 이용하여 제 1 디바이스(10) 와 제 2 디바이스(20)간의 통신 세션을 모니터링 한다.
도 1b를 참조하면, 서버(30)가 세션을 개시하지만, 도 1a와는 다르게 서버(30)가 제 1 디바이스(10) 및 제 2 디바이스(20)에게 제 1 디바이스(10)와 제 2 디바이스(20)간의 세션에서 사용될 암호화 키를 제공하지는 않는다. 수사 기관의 모니터링이 필요한 경우, 제 1 디바이스(10)로부터 세션 키 획득을 위한 별도의 통로(Path)를 준비해놓았다가,(예를 들면, Backdoor 방식), 암호화 키가 필요한 경우 마련해둔 통로를 이용하여 빼낸 세션 키를 수사 기관에 제공한다.
그러나, 종래의 방식은 서버가 암호화 키를 보관하고 있어, 수사 기관의 합법적 모니터링 이외에도 암호화된 통신 세션이 모니터링 될 위험이 있으며, 서버에 저장됨 암호화 키가 탈취될 수도 있어 문제점이 존재하였다. 또한 서버가 키를 보관하지 않는 방법의 경우, 제 1 디바이스(10)로부터 세션 키 획득을 위해 준비된 통로를 이용하여 제 1 디바이스(10) 내에 저장된 다른 정보 또한 유출될 수 있는 문제점이 존재하였다.
본 발명은 보안을 유지하면서도, 모니터링 할 수 있는 방법을 제공한다.
상기와 같은 종래 기술의 문제를 해결하기 위한 일부 실시예는, 제 1 디바이스의 암호화된 데이터 통신 세션의 모니터링 지원 방법에 있어서, 제 2 디바이스와의 통신 세션 개시 신호를 수신하는 단계; 상기 통신 세션의 암호화를 위한 암호화 키를 생성하는 단계; 상기 통신 세션에 대한 모니터링 신호의 수신 여부를 판단하는 단계; 및 상기 판단에 기초하여 상기 암호화 키에 대한 정보를 소정의 패킷을 이용하여 상기 제 2 디바이스에게 송신하는 단계를 포함할 수 있다.
상기 방법은, 제 3 디바이스가 상기 소정의 패킷을 획득함으로써, 상기 제 3 디바이스가 상기 암호화 키에 대한 정보를 획득할 수 있다.
상기 방법은, 상기 제 3 디바이스가 상기 암호화 키에 대한 정보를 획득함으로써, 상기 제 3 디바이스가 상기 세션을 통해 송수신되는 암호화된 데이터를 복호화하는 것을 포함할 수 있다.
상기 암호화 키를 생성하는 단계는, 상기 제 1 디바이스와 상기 제 2 디바이스의 암호화 알고리즘, 상기 통신 세션의 공개키, 상기 제 1 디바이스의 개인키(Private Key) 중 적어도 하나에 기초하여 생성할 수 있다.
상기 암호화 키를 생성하는 단계는, 상기 제 2 디바이스가 생성하는 암호화 키와는 상이한 암호화 키를 생성할 수 있다.
상기 암호화 키를 생성하는 단계는, 상기 통신 세션을 통해 송수신 되는 적어도 하나의 컨텐트 각각에 대한 암호화 키를 생성하는 단계를 포함하고, 상기 모니터링 신호의 수신 여부를 판단하는 단계는, 상기 적어도 하나의 컨텐트 중 어떤 컨텐트에 대한 모니터링 신호를 수신하였는지 여부를 판단하는 단계를 포함하고, 상기 판단에 기초하여 상기 암호화 키에 대한 정보를 소정의 패킷을 이용하여 상기 제 2 디바이스에게 송신하는 단계는, 상기 판단에 기초하여, 상기 모니터링 될 컨텐트의 암호화 키에 대한 정보를 상기 소정의 패킷을 이용하여 상기 제 2 디바이스에게 송신하는 단계를 포함할 수 있다.
상기 암호화 키에 대한 정보는, 상기 암호화 키의 적어도 일부일 수 있다.
상기 암호화 키에 대한 정보를 소정의 패킷을 이용하여 상기 제 2 디바이스에게 송신하는 단계는, 상기 암호화 키에 대한 정보를 ZRTP의 컨펌 메시지를 포함하는 패킷을 이용하여 상기 제 2 디바이스에게 송신할 수 있다.
상기 통신 세션의 암호화를 위한 암호화 키를 생성하는 단계는, 상기 제 2 디바이스로부터 상기 통신 세션의 암호화를 위해 사용되는 암호화 프로토콜 버전 정보 및 상기 제 2 디바이스와의 세션을 식별하는 식별자 및 상기 제 2 디바이스가 지원하는 암호화 알고리즘에 대한 정보를 수신하는 단계; 상기 수신된 정보에 기초하여, 상기 암호화 키를 생성하기 위한 암호화 알고리즘을 결정하는 단계; 및 상기 결정된 암호화 알고리즘을 이용하여 상기 암호화 키를 생성하는 단계를 포함할 수 있다.
상기 암호화 키는, 상기 제 2 디바이스가 생성한 암호화 키와 상이할 수 있다.
상기와 같은 종래 기술의 문제를 해결하기 위한 일부 실시예는, 암호화된 통신 세션에 대한 모니터링 지원 방법에 있어서, 제 1 디바이스가 제 2 디바이스와의 통신 세션 개시 신호를 수신하는 단계; 제 3 디바이스가 상기 제 1 디바이스에게 상기 통신 세션에 대한 모니터링 신호를 송신하는 단계; 상기 제 1 디바이스가 상기 통신 세션의 암호화를 위한 암호화 키를 생성하는 단계; 상기 제 1 디바이스가 상기 모니터링 신호의 수신 여부에 기초하여 상기 암호화 키에 대한정보를 소정의 패킷을 통해 상기 제 2 디바이스에게 송신하는 단계; 상기 제 3 디바이스가 상기 제 1 디바이스의 주소 정보 또는 상기 제 2 디바이스의 주소 정보 중 적어도 하나에 기초하여 상기 제 2 디바이스로 송신되는 상기 소정의 패킷을 획득하는 단계; 및 상기 소정의 패킷 내에 포함된 상기 암호화 키에 대한 정보에 기초하여 상기 통신 세션에 대한 암호화 키를 생성하는 단계를 포함할 수 있다.
상기 제 3 디바이스는 상기 생성된 암호화 키에 기초하여 상기 통신 세션을 통해 송수신되는 암호화된 데이터를 복호화 할 수 있다.
상기 암호화 키에 대한 정보는, 상기 암호화 키의 적어도 일부일 수 있다.
상기 생성하는 단계는, 상기 제 3 디바이스가 키 생성 함수를 획득하는 단계; 및 상기 획득한 키 생성 함수 및 상기 소정의 패킷 내에 포함된 상기 암호화 키에 대한 정보에 기초하여 상기 통신 세션에 대한 암호화 키를 생성하는 단계를 포함할 수 있다.
상기 소정의 패킷은, ZRTP의 컨펌 메시지를 포함하는 패킷일 수 있다.
상기 암호화 키를 생성하는 단계는, 상기 통신 세션을 통해 송수신 되는 적어도 하나의 컨텐트 각각에 대한 암호화 키를 생성하는 단계를 포함하고, 상기 모니터링 신호의 송신하는 단계는, 상기 적어도 하나의 컨텐트 중 어떤 컨텐트를 모니터링 할 지 여부를 결정하는 단계; 및 상기 결정에 기초하여 모니터링 신호를 송신하는 단계를 포함하고, 상기 암호화 키에 대한 정보를 소정의 패킷을 이용하여 상기 제 2 디바이스에게 송신하는 단계는, 상기 수신된 모니터링 신호에 기초하여, 상기 모니터링 될 컨텐트의 암호화 키에 대한 정보를 상기 소정의 패킷을 이용하여 상기 제 2 디바이스에게 송신하는 단계를 포함할 수 있다.
상기 제 3 디바이스가 생성한 암호화 키는, 상기 제 1 디바이스가 생성한 암호화 키와 동일하고, 상기 제 2 디바이스가 생성하는 암호화 키와 상이하며, 상기 제 3 디바이스는 상기 생성한 암호화 키에 기초하여 상기 제 1 디바이스가 상기 제 2디바이스에게 송신하는 데이터만을 복호화 할 수 있다.
상기와 같은 종래 기술의 문제를 해결하기 위한 일부 실시예는, 제 3 디바이스가 제 1 디바이스와 제 2 디바이스 간의 암호화 된 데이터 통신 세션을 모니터링 하는 방법에 있어서, 제 1 디바이스 또는 제 2 디바이스의 주소 정보를 획득하는 단계; 제 1 디바이스와 제 2 디바이스간의 통신 세션에 대한 모니터링 신호를 송신하는 단계; 상기 획득한 주소 정보에 기초하여, 상기 모니터링 될 통신 세션을 통해 송신되는, 상기 통신 세션의 암호화 키에 대한 정보를 포함하는 소정의 패킷을 획득하는 단계; 상기 암호화 키에 대한 정보에 기초하여, 상기 통신 세션의 암호화 키를 생성하는 단계; 및 상기 생성된 암호화 키에 기초하여, 상기 통신 세션을 통해 송수신되는 암호화 된 데이터를 복호화하는 단계를 포함 할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로써, 본 개시의 일부 실시예는 상기 방법을 구현하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
상기와 같은 종래 기술의 문제를 해결하기 위한 일부 실시예는, 암호화 된 데이터 통신 세션의 모니터링을 지원하는 제 1 디바이스에 있어서, 제 2 디바이스와의 통신 세션 개시 신호를 수신하는 수신부; 상기 통신 세션의 암호화를 위한 암호화 키를 생성하고, 상기 통신 세션에 대한 모니터링 신호의 수신 여부를 판단하는 제어부; 및 상기 판단에 기초하여 상기 암호화 키에 대한 정보를 소정의 패킷을 이용하여 상기 제 2 디바이스에게 송신부를 포함할 수 있다.
상기 디바이스는, 상기 송신부가 송신한 소정의 패킷을 제 3 디바이스가 획득함으로써, 상기 제 3 디바이스는 암호화 키에 대한 정보를 획득할 수 있다.
상기 디바이스는, 상기 송신부가 송신한 소정의 패킷을 획득한 상기 제 3 디바이스가 상기 암호화 키를 획득함으로써, 상기 제 3 디바이스가 상기 통신 세션을 통해 송수신되는 암호화된 데이터를 복호화 할 수 있다.
상기 제어부는, 상기 제 1 디바이스와 상기 제 2 디바이스의 암호화 알고리즘, 상기 통신 세션의 공개키, 상기 제 1 디바이스의 개인키(Private Key) 중 적어도 하나에 기초하여 암호화 키를 생성할 수 있다.
상기 제어부는, 상기 제 2 디바이스가 생성하는 암호화 키와는 상이한 암호화 키를 생성할 수 있다.
상기 제어부는, 상기 통신 세션을 통해 송수신 되는 적어도 하나의 컨텐트 각각에 대한 암호화 키를 생성하고, 상기 적어도 하나의 컨텐트 중 어떤 컨텐트에 대한 모니터링 신호를 수신하였는지 여부를 판단하며, 상기 송신부는, 상기 판단에 기초하여, 상기 모니터링 될 컨텐트에 대한 암호화 키에 대한 정보를 상기 소정의 패킷을 이용하여 상기 제 2 디바이스에게 송신할 수 있다.
상기 암호화 키에 대한 정보는, 상기 암호화 키의 적어도 일부일 수 있다.
상기 송신부는, 상기 암호화 키에 대한 정보를 ZRTP의 컨펌 메시지를 포함하는 패킷을 이용하여 상기 제 2 디바이스에게 송신할 수 있다.
상기 수신부는, 상기 제 2 디바이스로부터 상기 통신 세션의 암호화를 위해 사용되는 암호화 프로토콜 버전 정보,상기 제 2 디바이스와의 세션을 식별하는 식별자 및 상기 제 2 디바이스가 지원하는 암호화 알고리즘에 대한 정보를 수신하고, 상기 제어부는, 상기 수신된 정보에 기초하여, 상기 암호화 키를 생성하기 위한 암호화 알고리즘을 결정하고, 상기 결정된 암호화 알고리즘을 이용하여 상기 암호화 키를 생성할 수 있다.
상기 암호화 키는, 상기 제 2 디바이스가 생성한 암호화 키와 상이할 수 있다.
상기와 같은 종래 기술의 문제를 해결하기 위한 일부 실시예는, 암호화된 통신 세션에 대한 모니터링 지원 시스템에 있어서, 제 2 디바이스와의 통신 세션 개시 신호를 수신하고, 상기 통신 세션의 암호화를 위한 암호화 키를 생성하고, 모니터링 신호의 수신 여부에 기초하여 상기 암호화 키에 대한 정보를 소정의 패킷을 통해 상기 제 2 디바이스에게 송신하는 제 1 디바이스; 및 상기 제 1 디바이스에게 상기 통신 세션에 대한 모니터링 신호를 송신하고, 상기 제 3 디바이스가 상기 제 1 디바이스의 주소 정보 또는 상기 제 2 디바이스의 주소 정보 중 적어도 하나에 기초하여 상기 제 2 디바이스로 송신되는 상기 소정의 패킷을 획득하고, 상기 소정의 패킷 내에 포함된 상기 암호화 키에 대한 정보에 기초하여 상기 통신 세션에 대한 암호화 키를 생성하며, 상기 생성된 암호화 키에 기초하여 상기 통신 세션을 통해 송수신되는 암호화된 데이터를 복호화 하는 제 3 디바이스를 포함할 수 있다.
상기 암호화 키에 대한 정보는, 상기 암호화 키의 적어도 일부일 수 있다.
상기 제 3 디바이스는, 키 생성 함수를 획득하고, 상기 획득한 키 생성 함수 및 상기 소정의 패킷 내에 포함된 상기 암호화 키에 대한 정보에 기초하여 상기 통신 세션에 대한 암호화 키를 생성할 수 있다.
상기 소정의 패킷은, ZRTP의 컨펌 메시지를 포함할 수 있다.
상기 제 3 디바이스는, 상기 통신 세션을 통해 송수신 되는 적어도 하나의 컨텐트 각각에 대한 암호화 키를 생성하고, 상기 적어도 하나의 컨텐트 중 어떤 컨텐트를 모니터링 할 지 여부를 결정하고, 상기 결정에 기초하여 모니터링 신호를 송신하는 단계를 포함하며, 상기 제 1 디바이스는, 상기 수신된 모니터링 신호에 기초하여, 상기 모니터링 될 컨텐트에 대한 암호화 키에 대한 정보를 상기 소정의 패킷을 이용하여 상기 제 2 디바이스에게 송신할 수 있다.
상기 제 3 디바이스가 생성한 암호화 키는, 상기 제 1 디바이스가 생성한 암호화 키와 동일하고, 상기 제 2 디바이스가 생성하는 암호화 키와 상이하며, 상기 제 3 디바이스는 상기 생성한 암호화 키에 기초하여 상기 제 1 디바이스가 상기 제 2디바이스에게 송신하는 데이터만을 복호화 할 수 있다.
상기와 같은 종래 기술의 문제를 해결하기 위한 일부 실시예는, 제 1 디바이스와 제 2 디바이스 간의 암호화 된 데이터 통신 채널을 모니터링 하는 제 3 디바이스에 있어서, 제 1 디바이스 또는 제 2 디바이스의 주소 정보를 획득하는 주소 정보 획득부; 제 1 디바이스와 제 2 디바이스간의 통신 세션에 대한 모니터링 신호를 송신하는 송신부; 상기 획득한 주소 정보에 기초하여, 상기 모니터링 될 통신 세션을 통해 송신되는, 상기 통신 세션의 암호화 키에 대한 정보를 포함하는 소정의 패킷을 획득하는 수신부; 및 상기 암호화 키에 대한 정보에 기초하여, 상기 통신 세션의 암호화 키를 생성하고, 상기 생성된 암호화 키에 기초하여, 상기 통신 세션을 통해 송수신되는 암호화 된 데이터를 복호화하는 제어부를 포함할 수 있다.
본 발명의 실시예들은, 암호화된 통신 세션의 보안을 유지하면서도, 암호화된 통신 세션을 모니터링 할 수 있는 모니터링 및 모니터링 지원 방법을 제공한다.
도 1a 및 도1b는 종래 기술의 모니터링 지원 시스템을 도시한다.
도 2는 일부 실시예에 따른 암호화된 통신 세션의 모니터링 지원 시스템을 도시한다.
도 3은 일부 실시예에 따른 제 1 디바이스와 제 2 디바이스 간의 통신 세션의 모니터링 지원 방법을 설명하기 위한 순서도를 도시한다.
도 4는 일부 실시예에 따른 제 1 디바이스와 제 2 디바이스 간의 통신 세션의 모니터링 지원 방법을 설명하기 위한 세부 순서도를 도시한다.
도 5 및 도 6은 일부 실시예에 따른 제 1 디바이스와 제 2 디바이스 간의 통신 세션의 암호화 키의 생성 방법에 따른 모니터링 방법을 설명하기 위한 시스템을 도시한다.
도 7은 일부 실시예에 따른 각 컨텐트에 대한 모니터링 방법을 설명하기 위한 순서도를 도시한다.
도 8 및 도 9는 일부 실시예에 따른 암호화 키 데이터를 포함하는 패킷을 설명하기 위한 도면이다.
도 10은 일부 실시예에 따른 디바이스의 암호화 키를 생성하는 방법을 설명하기 위한 도면이다.
도 11은 일부 실시예에 따른 제 3 디바이스의 제 1 디바이스 및 제 2 디바이스 간의 통신 세션을 모니터링 하는 방법을 설명하기 위한 순서도이다.
도 12은 일부 실시예에 따른 모니터링 방법을 설명하기 위한 시스템을 도시한다.
도 13은 일부 실시예에 따른 모니터링 지원 방법을 설명하기 위한 플로우를 도시한다.
도 14는 일부 실시예에 따른 모니터링을 지원하는 디바이스를 설명하기 위한 도면이다.
도 15는 일부 실시예에 따른 모니터링을 수행하는 디바이스를 설명하기 위한 도면이다.
도 16은 일부 실시예에 따른 모니터링을 지원하는 디바이스를 설명하기 위한 세부 블록도이다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서, 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 전기적으로 연결되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
명세서 전체에서 디바이스라 함은, 퍼스널 컴퓨터(Personal Computer), 휴대폰(Cellular Phone), 스마트 폰, TV, 타블렛, 노트북, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, MP3 플레이어, 디지털 카메라, 냉장고, 세탁기, 청소기 등의 디바이스를 포함할 수 있고, 상기 예시에 제한되지 않으며, 다양한 디바이스를 포함할 수 있다.
명세서 전체에서 서버(104)라 함은, 단일 서버, 서버의 집합체, 클라우드 서버등을 포함할 수 있으며, VOIP 서비스, 컨텐트 제공 서비스 등의 서비스를 제공하는 서비스 서버를 포함할 수 있다. 다만 상기 예시에 제한되지 않는다.
명세서 전체에서 통신 세션이라 함은, 모든 통신 방식을 이용하여 설립(또는 형성)된 연결로써, 통신을 위한 채널과 같이, 디바이스간 데이터를 송수신하는데 사용되는 연결 또는 연결의 기간을 의미할 수 있다.
일부 실시예에 따르면, 통신 방식이라 함은 소정의 통신 규격, 소정의 주파수 대역, 소정의 프로토콜 또는 소정의 채널을 통한 통신 등 모든 통신 방식을 포함할 수 있다. 예를 들면, 블루투스, BLE, Wi-Fi, Zigbee, 3G, LTE, 초음파를 통한 통신 방식 등을 포함할 수 있으며, 근거리 통신, 원거리 통신, 무선 통신 및 유선 통신을 모두 포함할 수 있다. 물론 상기 예시에 제한되지 않는다.
명세서 전체에서 근거리 통신 방식이라 함은, 두 디바이스가 소정의 범위 내에 있을 때에만 통신이 가능한 통신 방식을 의미할 수 있으며, 예를 들어, 블루투스, NFC 등을 포함할 수 있다.
명세서 전체에서 원거리 통신 방식이라 함은, 두 디바이스가 거리와 관계 없이 통신이 가능한 통신 방식을 의미할 수 있다. 예를 들면, 원거리 통신 방식은 AP와 같은 중계기를 통해 두 디바이스가 소정의 거리 이상일 때에도 통신할 수 있는 방식을 의미할 수 있으며, SMS, 전화와 같은 셀룰러 네트워크를 이용한 통신 방식을 포함할 수 있다. 물론 상기 예시에 제한되는 것은 아니며, 근거리 통신 방식을 제외한 모든 통신 방식을 포함할 수 있다.
명세서 전체에서 암호화(Encryption)라 함은 통신할 데이터를 소정의 방식에 따라 변환하는 과정을 의미하며, 비화(Secret) 또는 보안화를 포함할 수 있다. 복호화란 암호화의 반대 과정을 의미한다. 암호화된 데이터는 데이터를 송신하는 디바이스와 협의된 수신 디바이스만이 복호화할 수 있다.
명세서 전체에서 암호화 키라 함은, 디바이스 간 송수신되는 데이터 또는 세션을 암호화 하는데 사용하는 데이터를 포함할 수 있다. 암호화 키는 공개키(비대칭키) 및 비밀키(대칭키)를 모두 포함할 수 있다. 암호화 키는 디바이스 내에 저장된 키 생성 알고리즘(또는 키 생성 함수)을 통해 생성될 수 있다. 키 생성 알고리즘은 AES, MD5, ECDH 등 다양한 알고리즘을 포함할 수 있으며, 상기 예시에 제한되지 않는다.
명세서 전체에서 개인키라 함은, 복수의 디바이스 중 하나의 디바이스만이 가지고 있는 키 데이터를 포함할 수 있다. 개인 키는 공개키 암호화 시스템에서, 공개키로 암호화된 데이터를 복호화 하는데 사용될 수 있으며, 상기 예시에 제한되지 않는다.
명세서 전체에서 서비스라 함은 모든 형태의 서비스를 포함할 수 있다. 예를 들면, 서비스란 컨텐트의 제공, VOIP(Voice Over Intenet Protocol)과 같은 서비스를 포함할 수 있으며, 상기 예시에 제한되지 않는다.
명세서 전체에서 모니터링이라 함은, 제 1 디바이스와 제 2 디바이스 간에 송수신되는 데이터를 제 3 디바이스가 감시하는 동작을 의미한다. 감시라 함은, 예를 들면, 제 3 디바이스가 제 1 디바이스와 제 2 디바이스 간의 데이터를 인터셉트 하는 등의 동작을 통해 제 1 디바이스와 제 2 디바이스 간에 송수신 되는 데이터를 확인하는 동작을 포함할 수 있으며, 다만 상기 예시에 제한되지 않는다. 본원발명에서의 모니터링이란, 합법적인 모니터링 권한을 가진 제 3 디바이스의 모니터링을 의미할 수 있다. 모니터링은 감청을 포함할 수 있다.
명세서 전체에서 ZRTP(Composed of Z and Realtime Transport Protocol)라 함은 필 짐머만(Phil Zimmermann)에 의해 개발된 디피-헬만(Diffie-Helamnn) 키 교환 방식 및 데이터의 보안을 유지하기 위해 사용되는 SRTP(Secured Real-time Transport Protocol)을 이용하는 암호화 키 교환 프로토콜을 의미할 수 있다. ZRTP는 VOIP(Voice Over Internet Protocol) 서비스에서 사용되며, 다만 상기 예시에 제한되지 않고 암호화된 통신이 필요한 모든 서비스에서 사용될 수 있다.
도 2는 일부 실시예에 따른 암호화된 통신 세션의 모니터링 지원 시스템을 도시한다.
일부 실시예에 따르면, 제 1 디바이스(101)는 제 2 디바이스(102)와의 세션을 개시할 것을 요청하는 세션 개시 신호를 서버(104)로부터 수신할 수 있다. 세션의 개시는 서버(104)의 제어에 의해 수행될 수 있다. 예를 들면, 제 2 디바이스(102)가 제 1 디바이스(101)와의 세션의 형성 요청을 서버(104)에 송신하면, 서버(104)가 제 1 디바이스(101)에게 제 2 디바이스(102)의 세션 형성 요청에 의해 세션 개시 신호를 제 1 디바이스(101) 및 제 2 디바이스(102)에게 송신한다.
일부 실시예에 제 1 디바이스(101)와 제 2 디바이스(102)와 세션을 설정할 수 있다. 일부 실시예에 따르면, 세션의 설정이라 함은, 제 1 디바이스(101)와 제 2 디바이스(102)간 형성된 세션에서 사용될 프로토콜의 버전, 디바이스의 식별 정보를 송수신하고, 암호화 키를 생성하기 위한 알고리즘을 협상하고, 암호화 키 알고리즘의 정보, 해시 값을 송수신하는 단계를 포함할 수 있다.
예를 들면, 제 1 디바이스(101)는 ZRTP 프로토콜 버전 정보, 제 2 디바이스(102)로부터 수신한 메시지 및 해시 함수에 기초하여 생성한 해시 값, 제 1 디바이스(101)와 제 2 디바이스(102)간의 협의에 의해 정해진 암호화 알고리즘을 결정하기 위한 정보를 송수신할 수 있다.
일부 실시예에 따르면, 제 3 디바이스(103)는 제 1 디바이스(101)에게 모니터링 신호를 송신할 수 있다. 모니터링 신호라 함은, 제 3 디바이스(103)가 제 1 디바이스(101)에게 제 1 디바이스(101)와 제 2 디바이스(102) 간의 송신 또는 수신되는 데이터 중 적어도 일부를 획득함하겠다는 신호를 포함할 수 있다. 모니터링은 정당한 권한이 있는 소정의 경우 당사자의 동의 없이 가능하므로, 제 1 디바이스(101)의 사용자, 제 1 디바이스(101)의 동의와는 무관하며, 본원의 제 3 디바이스(103)는 적법하고, 정당한 모니터링 권한을 가진 디바이스를 의미한다.
일부 실시예에 따르면, 제 3 디바이스(103)는 통신 세션을 통해 송신될 적어도 하나의 컨텐트 중 어떤 컨텐트를 모니터링 할 지 결정하고, 결정에 기초하여 모니터링 신호를 송신할 수 있다.
일부 실시예에 다르면, 세션 설정에 의해 정해진 암호화 알고리즘에 기초하여, 제 1 디바이스(101)와 제 2 디바이스(102)는 암호화 키를 생성할 수 있다. 일부 실시예에 따르면, 제 1 디바이스(101)는 암호화 키 정보를 제 2 디바이스(102)에게 송신할 수 있다. 또한 제 2 디바이스(102)는 암호화 키 정보를 제 1 디바이스(101)에게 송신할 수 있다.
일부 실시예에 따르면, 제 1 디바이스(101)는 제 2 디바이스(102)의 암호화 알고리즘, 제 2 디바이스(102)와 형성된 통신 세션의 공개 키, 제 1 디바이스(101)의 개인 키 중 적어도 하나에 기초하여 생성될 수 있다. 또한, 제 1 디바이스(101)가 생성한 암호화 키와 제 2 디바이스(102)가 생성한 암호화 키는 상이할 수 있다.
또한 일부 실시예에 따르면, 제 1 디바이스(101)는 제 2 디바이스(102)와 형성된 통신 세션을 통해 송수신되는 적어도 하나의 컨텐트 각각에 대한 암호화 키를 생성할 수 있다. 제 1 디바이스(101)가 모니터링 정보에 기초하여 암호화 키 정보를 제 2 디바이스(102)에게 송신할 때, 제 1 디바이스(101)는 적어도 하나의 컨텐트 중 어떤 컨텐트에 대한 모니터링 신호를 수신하였는지 판단하고, 판단 결과에 기초하여 적어도 하나의 컨텐트에 대한 암호화 키 중 적어도 하나를 송신할 수 있다. 즉, 제 1 디바이스(101)는 모니터링될 컨텐트에 대한 암호화 키를 송신할 수 있다.
일부 실시예에 따르면, 암호화 키 정보는 암호화 키의 적어도 일부 일 수 있다. 다시 말해서, 암호화 키 정보는 암호화 키의 일부에 대한 정보로써, 소정의 키 생성 알고리즘에 의해 암호화 키로 복원, 생성될 수 있는 정보를 포함할 수 있으며, 상기 예시에 제한되지 않는다.
일부 실시예에 따르면, 제 1 디바이스(101)는 제 3 디바이스(103)로부터 수신한 모니터링 신호에 기초하여 암호화 키 정보를 제 2 디바이스(102)에게 송신할 수 있다. 제 2 디바이스(102) 또한 제 3 디바이스(103)로부터 수신한 모니터링 신호에 기초하여 암호화 키 정보를 제 1 디바이스(101)에게 송신할 수 있다.
일부 실시예에 따르면, 제 1 디바이스(101)는 소정의 패킷을 이용하여 암호화 키에 대한 정보를 제 2 디바이스(102)에게 송신할 수 있다. 일부 실시예에 따르면, 소정의 패킷이라 함은 ZRTP의 컨펌 메시지를 포함하는 패킷일 수 있다.
일부 실시예에 따르면, 제 3 디바이스(103)는 암호화 키 정보를 획득할 수 있다. 일부 실시예에 따르면, 제 3 디바이스(103)는 모니터링을 수행함으로써, 제 1 디바이스(101)가 제 2 디바이스(102)에게 송신한 암호화 키 정보를 획득할 수 있다. 예를 들면, 제 3 디바이스(103)는 제 1 디바이스(101)와 제 2 디바이스(102)간 송수신되는 패킷을 인터셉트 함으로써, 암호화 키 정보를 획득할 수 있다.
일부 실시예에 따르면, 제 3 디바이스(103)는 소정의 패킷을 획득함으로써, 암호화 키에 대한 정보를 획득할 수 있다. 예를 들면, 제 3 디바이스(103)는 ZRTP의 컨펌 메시지를 포함하는 패킷을 획득함으로써, 암호화 키에 대한 정보를 획득할 수 있다.
일부 실시예에 따르면, 제 3 디바이스(103)는 제 1 디바이스(101) 또는 제 2 디바이스(102)의 식별 정보를 획득하고, 획득한 식별 정보에 기초하여, 제 1 디바이스(101)와 제 2 디바이스(102)간에 송수신되는 패킷을 인터셉트 할 수 있다. 제 3 디바이스(103)는 서버 또는 별도의 사용자 입력에 의해 제 1 디바이스(101) 또는 제 2 디바이스(102) 중 적어도 하나의 식별 정보를 획득할 수 있다.
일부 실시예에 따르면, 주소 정보라 함은 MAC 주소, IP 주소, 전화 번호 등의 단말의 주소 정보나, 일련 번호와 같은 단말 정보를 모두 포함할 수 있으며, 상기 예시에 제한되지 않는다.
일부 실시예에 따르면, 제 3 디바이스(103)는 키 생성 알고리즘(또는 키 생성 함수)을 서버, 제 1 디바이스(101) 또는 제 2 디바이스(102)의 제조사 또는 별도의 사용자 입력에 의해 획득할 수 있다. 제 3 디바이스(103)는 획득한 키 생성 알고리즘 또는 키 생성 함수 및 획득한 암호화 키 정보를 이용하여 암호화 키를 생성 또는 복원할 수 있다. 제 3 디바이스(103)가 암호화 키 정보에 기초하여 생성한 암호화 키는, 제 1 디바이스(101) 또는 제 2 디바이스(102) 중 적어도 하나가 생성한 암호화 키와 동일할 수 있다.
일부 실시예에 따르면 제 1 디바이스(101)는 제 2 디바이스(102)와 암호화 통신을 수행할 수 있다. 즉, 제 1 디바이스(101) 및 제 2 디바이스(102)는 앞서 생성한 암호화 키에 기초하여 송수신할 데이터를 암호화 하고, 상대 디바이스에게 송신할 수 있다. 제 3 디바이스(103)는 제 1 디바이스(101)와 제 2 디바이스(102)간에 송수신 되는 암호화된 데이터를 획득하고, 앞서 제 3 디바이스(103)가 생성한 암호화 키에 기초하여 암호화된 데이터를 복호화할 수 있다.
도 3은 일부 실시예에 따른 제 1 디바이스와 제 2 디바이스 간의 통신 세션의 모니터링 지원 방법을 설명하기 위한 순서도를 도시한다.
단계 301에서, 제 1 디바이스는 제 2 디바이스와의 통신 세션 개시 신호를 수신할 수 있다.
일부 실시예에 따르면, 제 1 디바이스는 서버로부터 제 2 디바이스와의 통신 세션 개시 신호를 수신할 수 있다. 통신 세션 개시 신호는 제 2 디바이스 또는 제 2 디바이스를 포함하는 복수의 디바이스와의 통신 세션을 시작할 것을 요청하는 신호를 포함할 수 있으며, 상기 예시에 제한되지 않는다. 또한 제 1 디바이스는 제 2 디바이스로부터 통신 세션 개시 신호를 수신할 수도 있다.
단계 303에서, 제 1 디바이스는 통신 세션의 암호화를 위한 암호화 키를 생성 할 수 있다.
일부 실시예에 따르면, 제 1 디바이스는 제 1 디바이스와 제 2 디바이스의 암호화 알고리즘, 제 2 디바이스와의 통신 세션의 공개 키, 제 1 디바이스의 개인 키 중 적어도 하나에 기초하여 생성할 수 있다. 또한 일부 실시예에 따르면, 제 1 디바이스는 제 2 디바이스와 암호화 알고리즘을 협의(Negotiation)하고, 협의 결과에 따라 결정된 암호화 알고리즘에 기초하여 암호화 키를 생성할 수 있다.
일부 실시예에 따르면, 제 1 디바이스가 제 2 디바이스와 암호화 알고리즘을 협의 하는 단계는, 제 1 디바이스는 제 2 디바이스로부터 통신 세션의 암호화를 위해 사용되는 암호화 프로토콜 버전 정보, 제 2 디바이스와의 세션을 식별하는 식별자, 제 2 디바이스가 지원하는 암호화 알고리즘에 대한 정보를 수신하고, 수신된 정보에 기초하여 암호화 알고리즘을 결정하고, 결정된 암호화 알고리즘에 기초하여 암호화 키를 생성할 수 있다.
일부 실시예에 따르면, 제 1 디바이스는 제 2 디바이스와 상이한 암호화 키를 생성할 수 있다. 예를 들면, 제 1 디바이스와 제 2 디바이스는 암호화 통신 시 동일한 암호화 키를 생성 및 사용 할 수도 있고, 제 1 디바이스와 제 2 디바이스가 각각 상이한 암호화 키를 생성 및 사용할 수도 있다.
또한 일부 실시예에 따르면, 제 1 디바이스는 통신 세션을 통해 송신 및 수신되는 적어도 하나의 컨텐트 각각에 대한 암호화 키를 생성할 수 있다. 예를 들면, 제 1 디바이스가 제 2 디바이스에게 적어도 하나의 컨텐트를 제공하는 경우, 제 1 디바이스는 각각의 컨텐트를 상이한 암호화 키로 암호화 하여 송신할 수 있다. 또한 컨텐트는 해상도에 따라 분류될 수도 있다. 즉, 동일한 음악 파일이라도, 음질에 따라 각각 다른 컨텐트로 분류될 수 있다. 따라서 제 1 디바이스는 해상도, 음질 및 해상도에 따라 각각 상이한 암호화 키로 컨텐트를 암호화 하여 제 2 디바이스에게 송신할 수 있다.
단계 305에서, 제 1 디바이스는 통신 세션에 대한 모니터링 신호의 수신 여부를 판단 할 수 있다.
일부 실시예에 따르면, 제 1 디바이스는 통신 세션에 대한 모니터링 신호를 제 3 디바이스로부터 수신할 수 있다. 물론, 제 1 디바이스는 통신 세션에 대한 모니터링 신호를 서버로부터 수신할 수도 있다.
일부 실시예에 따르면, 제 1 디바이스는 소정의 코드, 소정의 패킷을 수신함으로써, 모니터링 신호를 수신하였다고 판단할 수 있다. 또한 제 1 디바이스가 수신한 모니터링 신호에는 어떤 통신 세션을 모니터링 할지에 대한 정보(예를 들면, 세션 식별자)를 포함할 수 있으며, 어떤 컨텐트를 모니터링 할지 여부에 대한 정보를 포함할 수도 있다.
따라서, 제 1 디바이스는 모니터링 신호를 수신한 경우, 제 1 디바이스가 송신할 적어도 하나의 컨텐트 중 어떤 컨텐트에 대한 모니터링 신호를 수신하였는지 판단할 수 있다.
일부 실시예에 따르면, 제 1 디바이스와 제 2 디바이스가 상이한 암호화 키를 생성한 경우, 제 3 디바이스는 제 1 디바이스 또는 제 2 디바이스 중 적어도 하나에게 모니터링 신호를 송신할 수 있다. 즉, 제 3 디바이스는 모니터링을 수행하기를 원하는 디바이스를 선택하여 모니터링 신호를 송신할 수 있다. 이는 도 11에서 자세히 설명한다.
단계 307에서, 제 1 디바이스는 암호화 키에 대한 정보를 소정의 패킷을 이용하여 제 2 디바이스에게 송신 할 수 있다.
일부 실시예에 따르면, 암호화 키에 대한 정보라 함은 암호화 키의 전부 또는 암호화 키의 일부를 포함할 수 있다. 즉, 암호화 키에 대한 정보는 암호화 키의 적어도 일부일 수 있다.
또한 일부 실시예에 따르면, 제 1 디바이스는 ZRTP의 컨펌 메시지를 포함하는 패킷을 이용하여 제 2 디바이스에게 암호화 키에 대한 정보를 송신할 수 있다. 예를 들면, 제 1 디바이스는 제 2 디바이스의 통신 세션의 암호화를 위해 ZRTP를 이용한 암호화를 수행할 수 있다. ZRTP를 이용하는 경우, 제 1 디바이스는 제 2 디바이스와의 협의에 의해 결정된 암호화 알고리즘 및 생성된 암호화 키의 확인하기 위한 메시지인 컨펌 메시지를 송신할 수 있다. 컨펌 메시지 송신 시, 제 1 디바이스는 컨펌 메시지 내에 단계 305에서 생성한 암호화 키에 대한 정보를 삽입하여 송신할 수 있다.
일부 실시예에 따르면, 제 1 디바이스는 제 1 디바이스가 송신할 적어도 하나의 컨텐트 중 어떤 컨텐트에 대한 모니터링 신호를 수신하였는지 여부를 판단하고, 판단 결과에 기초하여, 모니터링 될 컨텐트에 대한 암호화 키에 대한 정보를 소정의 패킷을 이용하여 제 2 디바이스에게 송신할 수 있다.
도 4는 일부 실시예에 따른 제 1 디바이스와 제 2 디바이스 간의 통신 세션의 모니터링 지원 방법을 설명하기 위한 세부 순서도를 도시한다.
단계 401에서, 제 1 디바이스는 제 2 디바이스와의 통신 세션 개시 신호를 수신 할 수 있다.
단계 403에서, 제 1 디바이스는 통신 세션의 암호화를 위한 암호화 키를 생성할 수 있다. 단계 401 내지 단계 403은 도 3에서 설명한 내용과 대응되므로 자세한 설명은 생략한다.
단계 405에서, 제 1 디바이스는 모니터링 신호를 수신하였는지 판단할 수 있다. 제 1 디바이스가 모니터링 신호를 수신한 경우, 단계 407로 진행되며, 제 1 디바이스가 모니터링 신호를 수신하지 않은 경우, 단계 409로 진행된다.
단계 407에서, 제 1 디바이스는 암호화 키에 대한 정보를 컨펌 메시지 패킷에 삽입할 수 있다.
일부 실시예에 따르면, 제 1 디바이스는 모니터링 정보를 수신하였는지 여부에 기초하여 암호화 키에 대한 정보를 컨펌 메시지 내에 삽입할 수 있다. 모니터링 정보가 수신되지 않은 경우, 제 1 디바이스는 암호화 키에 대한 정보를 컨펌 메시지 내에 삽입하지 않을 수 있다.
모니터링이 필요하지 않은 경우에는 제 3 디바이스가 컨펌 메시지 패킷을 획득하지 않으며, 제 1 디바이스와 제 2 디바이스는 협의에 의해 암호화 키를 생성하였는 바, 제 1 디바이스는 제 2 디바이스에게 암호화 키에 대한 정보를 송신할 필요가 없다.
단계 409에서, 제 1 디바이스는 컨펌 메시지 패킷을 송신할 수 있다.
일부 실시예에 따르면, 제 1 디바이스는 컨펌 메시지 패킷을 제 2 디바이스에게 송신할 수 있다.
앞서 설명한 바와 같이, 제 1 디바이스가 모니터링 신호를 수신한 경우에는 컨펌 메시지 내에 암호화 키 정보를 삽입하고, 암호화 키 정보가 삽입된 컨펌 메시지 패킷을 송신할 수 있다. 다만, 제 1 디바이스가 모니터링 신호를 수신하지 않은 경우에는 암호화 키 정보를 삽입하지 않으므로, 암호화 키 정보가 삽입되지 않은 컨펌 메시지 패킷을 송신할 수 있다.
일부 실시예에 따르면, 제 3 디바이스는 제 1 디바이스가 송신한 컨펌 메시지 패킷을 획득하고, 획득한 컨펌 메시지 패킷 내에 포함된 암호화 키 정보에 기초하여 암호화 키를 생성하고, 생성된 암호화 키에 기초하여, 제 1 디바이스와 제 2 디바이스 간에 송신 및 수신되는 암호화된 데이터를 복호화 할 수 있다.
도 5 및 도 6은 일부 실시예에 따른 제 1 디바이스와 제 2 디바이스 간의 통신 세션의 암호화 키의 생성 방법에 따른 모니터링 방법을 설명하기 위한 시스템을 도시한다.
도 5는 제 1 디바이스(101)와 제 2 디바이스(102)는 상이한 암호화 키를 생성하는 경우의 모니터링 지원 시스템을 도시한다.
일부 실시예에 따르면, 제 1 디바이스(101)는 서버(104)로부터 세션 개시 신호를 수신할 수 있다. 이후, 제 1 디바이스(101)는 제 2 디바이스(102)와 세션 설정을 수행할 수 있다. 이는 앞선 도 2 에서 설명한 바와 대응된다.
일부 실시예에 따르면, 제 1 디바이스(101)는 제 2 디바이스(102)와의 세션 설정에 기초하여 제 1 암호화 키를 생성할 수 있다. 일부 실시예에 따르면, 제 1 디바이스(101)는 제 2 디바이스(102)가 생성한 제 2 암호화 키와는 상이한 제 1 암호화 키를 생성할 수 있다. 즉, 제 1 디바이스(101)와 제 2 디바이스(102)는 각각 서로 다른 암호화 키로 데이터를 암호화 하여 송신할 수 있다. 예를 들면, 제 1 디바이스(101)와 제 2 디바이스(102)는 비대칭키 암호화 방식을 이용할 수 있다.
일부 실시예에 따르면, 제 1 디바이스(101)는 제 2 디바이스(102)에게 제 1 암호화 키에 대한 정보를 송신할 수 있다. 예를 들면, 제 1 디바이스(101)는 모니터링 신호를 수신한 경우, 제 1 암호화 키에 대한 정보를 제 2 디바이스(102)에게 송신할 수 있다.
일부 실시예에 따르면, 제 1 디바이스(101)와 제 2 디바이스(102)는 암호화 된 통신을 수행할 수 있다. 예를 들면, 제 1 디바이스(101)는 제 1 암호화 키를 이용하여 데이터를 암호화 하여 송신하고, 제 2 디바이스(102)는 제 2 암호화 키를 이용하여 데이터를 암호화 하여 송신할 수 있다. 제 1 암호화 키를 이용하여 암호화된 데이터는 제 2 암호화 키로 복호화할 수 있으며, 제 2 암호화 키를 이용하여 암호화된 데이터는 제 1 암호화 키로 복호화 할 수 있다.
일부 실시예에 따르면, 제 3 디바이스(103)는 제 1 암호화 키에 대한 정보를 획득 할 수 있다. 제 3 디바이스(103)는 제 1 암호화 키에 대한 정보를 획득하고, 획득한 제 1 암호화 키에 대한 정보에 기초하여 제 1 암호화 키를 생성 또는 복원할 수 있다. 제 3 디바이스(103)는 제 1 암호화 키만을 획득하였으므로, 제 1 디바이스(101)가 제 1 암호화 키로 복호화가 가능한 데이터만을 획득 할 수 있다.
다시 말해서, 제 3 디바이스(103)는 제 1 디바이스(101) 또는 제 2 디바이스(102) 중 하나의 디바이스가 송신하는 데이터만을 복호화 할 수 있다. 즉, 제 3 디바이스(103)는 제 1 디바이스(101) 또는 제 2 디바이스(102) 중 하나의 디바이스만을 모니터링 할 수 있다.
도 6은 제 1 디바이스(101)가 송신할 각 컨텐트 마다 상이한 암호화 키를 생성하는 경우의 모니터링 지원 시스템을 도시한다.
일부 실시예에 따르면, 제 1 디바이스(101)는 서버(104)로부터 세션 개시 신호를 수신할 수 있다. 이후, 제 1 디바이스(101)는 제 2 디바이스(102)와 세션 설정을 수행할 수 있다. 이는 앞선 도 2 에서 설명한 바와 대응된다.
일부 실시예에 따르면, 제 1 디바이스(101)는 제 2 디바이스(102)와의 세션 설정에 기초하여 제 1 컨텐트 암호화 키 및 제 2 컨텐트 암호화 키를 생성할 수 있다. 일부 실시예에 따르면, 제 1 디바이스(101)는 제 2 디바이스(102)에게 송신할 적어도 하나의 컨텐트 각각에 대해 상이한 암호화 키를 생성할 수 있다.
예를 들면, 제 1 디바이스(101)는 제 1 컨텐트를 암호화 하기 위해 사용하는 제 1 컨텐트 암호화 키 및 제 2 컨텐트를 암호화 하기 위해 사용하는 제 2 컨텐트 암호화 키를 생성할 수 있다. 제 2 디바이스(102) 또한 제 1 컨텐트 암호화 키 및 제 2 컨텐트 암호화 키를 생성할 수 있다. 다만 도 5에서 설명한 바와 같이 제 2 디바이스(102)는 제 1 디바이스(101)가 생성한 제 1 컨텐트 암호화 키 및 제 2 컨텐트 암호화 키와는 상이한 제 3 컨텐트 암호화 키 및 제 4 컨텐트 암호화 키를 생성할 수도 있다.
일부 실시예에 따르면, 제 1 디바이스(101)는 제 2 디바이스(102)에게 제 1 컨텐트 암호화 키 또는 제 2 컨텐트 암호회 키에 대한 정보 중 적어도 하나를 송신할 수 있다. 예를 들면, 제 1 디바이스(101)는 어떤 컨텐트에 대한 모니터링 신호를 수신하였는지 판단하고, 판단 결과에 기초하여 제 1 컨텐트 암호화 키에 대한 정보 또는 제 2 컨텐트 암호화 키에 대한 정보 중 적어도 하나를 제 2 디바이스(102)에게 송신할 수 있다.
일부 실시예에 따르면, 제 1 디바이스(101)와 제 2 디바이스(102)는 암호화 된 통신을 수행할 수 있다. 예를 들면, 제 1 디바이스(101)는 제 1 컨텐트를 제 1 컨텐트 암호화 키를 이용하여 암호화 하여 송신하고, 제 2 컨텐트는 제 2 컨텐트 암호화 키를 이용하여 암호화 하여 송신할 수 있다. 각 컨텐트는 대응되는 암호화 키를 이용하여 복호화 될 수 있다.
일부 실시예에 따르면, 제 3 디바이스(103)는 제 1 컨텐트 암호화 키에 대한 정보를 획득 할 수 있다. 제 3 디바이스(103)는 제 1 컨텐트 암호화 키에 대한 정보를 획득하고, 획득한 제 1 컨텐트 암호화 키에 대한 정보에 기초하여 제 1 컨텐트 암호화 키를 생성 또는 복원할 수 있다. 제 3 디바이스(103)는 제 1 컨텐트 암호화 키만을 획득하였으므로, 제 1 디바이스(101)가 제 1 컨텐트 암호화 키로 암호화한 제 1 컨텐트만을 복호화 할 수 있다.
다시 말해서, 제 3 디바이스(103)는 제 1 디바이스(101)가 송신하는 적어도 하나의 컨텐트 중 적어도 하나만을 복호화 할 수 있다. 즉, 제 3 디바이스(103)는 제 1 디바이스(101)가 송신하는 복수의 컨텐트 중 하나의 컨텐트 만을 선택하여 모니터링 할 수 있다.
도 7은 일부 실시예에 따른 각 컨텐트에 대한 모니터링 방법을 설명하기 위한 순서도를 도시한다.
단계 701에서, 제 1 디바이스는 제 2 디바이스와의 통신 세션 개시 신호를 수신 할 수 있다. 단계 701은 도 3에서 설명한 바와 대응되므로 자세한 설명은 생략한다.
단계 703에서, 제 1 디바이스는 통신 세션을 통해 송수신되는 적어도 하나의 컨텐트 각각에 대한 암호화 키 생성를 생성할 수 있다.
일부 실시예에 따르면, 제 1 디바이스는 적어도 하나의 컨텐트를 제 2 디바이스에게 송신할 수 있다. 제 1 디바이스는 적어도 하나의 컨텐트를 하나의 암호화 키를 이용하여 암호화 할 수도 있고, 적어도 하나의 컨텐트 각각을 상이한 암호화 키를 이용하여 암호화 할 수도 있다. 도 7에서는 제 1 디바이스가 적어도 하나의 컨텐트를 각각을 상이한 암호화 키를 이용하여 암호화 하는 경우에 대해 설명한다.
일부 실시예에 따르면, 제 1 디바이스는 적어도 하나의 컨텐트 각각을 암호화 하기 위해 상이한 암호화 키를 생성할 수 있다. 또한 제 1 디바이스는 상이한 암호화 키를 이용하여 적어도 하나의 컨텐트 각각을 암호화 하고, 암호화된 적어도 하나의 컨텐트 각각을 제 2 디바이스에게 송신할 수 있다.
예를 들면, 제 1 디바이스는 음악, 이미지, 동영상, 텍스트와 같은 컨텐트의 타입에 따라 상이한 암호화 키를 생성하고, 상이한 암호화 키를 이용하여 컨텐트를 암호화 하여 송신할 수도 있고, 음질, 해상도에 따라 상이한 암호화 키를 생성하고, 상이한 암호화 키를 이용하여 컨텐트를 암호화 하여 송신할 수도 있다. 물론 상기 예시에 제한되지 않는다.
단계 705에서, 제 1 디바이스는 적어도 하나의 컨텐트 중 어떤 컨텐트에 대한 모니터링 신호를 수신하였는지 판단 할 수 있다.
일부 실시예에 따르면, 제 3 디바이스는 제 1 디바이스가 제 2 디바이스에게 송신할 컨텐트 중 어떤 컨텐트에 대해 모니터링 할 지에 대해 결정하고, 결정 결과에 기초하여, 제 1 디바이스에게 모니터링 신호를 송신할 수 있다.
또한, 제 3 디바이스는 제 1 디바이스가 제 2 디바이스에게 송신할 컨텐트에 대한 리스트를 수신할 수도 있다. 또한 제 3 디바이스는 제 1 디바이스가 제 2 디바이스에게 송신할 컨텐트에 대한 정보를 서버로부터 획득할 수도 있다. 추가적으로, 제 1 디바이스가 제 3 디바이스에게 송신하는 적어도 하나의 패킷을 획득하고, 획득한 패킷 내에 포함된 컨텐트에 관한 정보에 기초하여 모니터링 할 컨텐트를 결정할 수도 있다. 물론 상기 예시에 제한되지 않는다.
일부 실시예에 따르면, 제 1 디바이스는 수신된 모니터링 신호에 기초하여, 제 3 디바이스가 모니터링 하기를 원하는 컨텐트가 어떤 컨텐트 인지 판단할 수 있다. 즉, 제 1 디바이스는 수신된 모니터링 정보에 기초하여, 제 3 디바이스가 어떤 하 어떤 컨텐트를 모니터링 하기를 원하는지 판단할 수 있다. 일부 실시예에 따르면, 모니터링 신호에는 제 3 디바이스가 어떤 컨텐트의 모니터링을 원하는지에 대한 정보가 포함될 수 있다.
단계 707에서, 제 1 디바이스는 모니터링 될 컨텐트에 대한 암호화 키에 대한 정보를 소정의 패킷을 이용하여 송신 할 수 있다.
일부 실시예에 따르면, 제 1 디바이스는 모니터링 될 컨텐트의 암호화 키에 대한 정보를 컨펌 메시지 내에 삽입하여 송신할 수 있다. 제 3 디바이스는 제 1 디바이스가 송신하는 컨펌 메시지를 포함하는 패킷을 인터셉트 등의 방법을 이용하여 획득하고, 획득한 패킷 정보에 기초하여 모니터링 될 컨텐트를 복호화할 수 있는 암호화 키를 생성할 수 있다.
도 8 및 도 9는 일부 실시예에 따른 암호화 키 데이터를 포함하는 패킷을 설명하기 위한 도면이다.
도 8은 ZRTP 컨펌 메시지의 일 예를 도시한다. 일부 실시예에 따르면, ZRTP 컨펌 메시지는 ZRTP의 암호화 키 생성을 위한 세션 설정 절차에서 제 1 디바이스 및 제 2 디바이스 간에 송신 및 수신되는 메시지 중 하나의 메시지를 포함할 수 있다. 통신 세션의 암호화를 위한 세션 설정의 전체 절차는 도 10에서 자세히 설명한다.
일부 실시예에 따르면, 도 8의 ZRTP 메시지(800)는 ZRTP Identification 필드(801), Length 필드(803), Message Type Blcok 필드(805), Confirm MAC 필드(807), CFB Initialization Vector 필드(809), Hash Preimage 필드(811), Unused 필드(813), Sig Length and Flag 필드(815), Cache Expiration Interval 필드(817), Optional Signature Type Block 필드(819) 및 Optional Signature Block 필드(821)을 포함할 수 있다. 물론 상기 예시에 제한되지 않으며, 구현 예에 따라 상기 예시의 메시지 포맷에서 일부 필드를 제외하거나, 추가적인 정보를 포함하는 필드를 포함할 수 있다.
일부 실시예에 따르면 ZRTP Identification 필드(801)는, ZRTP 식별자(ZID)에 대한 정보를 포함할 수 있다. ZID 식별자는 ZRTP를 이용한 통신 세션을 암호화 하기 위한 세션 설정 시 사용되는 식별자를 포함할 수 있다. 물론 상기 예시에 제한되지 않고, ZRTP를 이용하는 디바이스를 식별하기 위한 식별 정보를 모두 포함할 수 있다.
일부 실시예에 따르면, Length 필드(803)는 컨펌 메시지가 포함된 패킷의 길이에 대한 정보를 포함할 수 있다.
일부 실시예에 따르면, Message Type Blcok 필드(805)는 제 1 디바이스가 제 2 디바이스에게 송신하는 컨펌 메시지인지, 제 2 디바이스가 제 1 디바이스에게 송신하는 컨펌 메시지인지를 확인할 수 있는 정보가 포함될 수 있다.
일부 실시예에 따르면, Confirm MAC 필드(807)는 컨펌 메시지의 메시지 인증 코드인 MAC(Message Authentication Code)에 대한 정보(예를 들면, MACKEY)를 포함할 수 있다.
일부 실시예에 따르면, CFB Initialization Vector 필드(809)는 블록 암호화 방식의 한 종류인 CFB(Cipher Feedback) 암호화 알고리즘에서 활용되는 초기 벡터 값에 대한 정보가 포함할 수 있다.
일부 실시예에 따르면, Hash Preimage 필드(811)는 해쉬 함수의 일종으로써, 해쉬 역상 공격(Hash Preimage attack)에 대한 저항성을 가지는 해쉬 함수에 대한 정보를 포함할 수 있다.
일부 실시예에 따르면, Unused 필드(813) 사용되지 않는 필드로써, 소저으이 정보가 포함되어 있지 않는 필드를 의미할 수 있다.
일부 실시예에 따르면, Sig Length and Flag 필드(815)는 서명에 대한 정보, 서명의 길이에 대한 정보를 포함할 수 있으며, 추가적으로 PBX(Private Branch Exchange) Enrollment 플래그, SAS(Short Authentication String) 인증 플래그, SRTP에서 RTP로 전환될 때 사용되는 플래그인 Allow Clear Flag 정보, ZRTP의 백도어(Back Door)와 같은 기능을 사용되는 ZRTP Disclosure Flag 등이 포함될 수 있다. 플래그에 대한 정보는 당업자에게 자명하므로, 자세한 설명은 생략한다.
일부 실시예에 따르면, Cache Expiration Interval 필드(817)는 인터럽트와 같이 통신이 제대로 이루어지지 않았을 때를 대비하여 제 1 디바이스와 제 2 디바이스가 공유하는 정보를 포함할 수 있다.
일부 실시예에 따르면, Optional Signature Type Block 필드(819) 및 Optional Signature Block 필드(821)는 서명(Signature)을 생성하기 위해 사용되는 Signatuer key 및 서명 값에 대한 정보를 포함할 수 있다.
상기 필드에 포함된 정보는 구현예에 따라 다른 정보가 포함될 수 있음은 당업자에게 자명하다.
도 9는 암호화 키 정보를 포함하는 ZRTP 컨펌 메시지를 도시한다.
일부 실시예에 따르면, 도 8의 ZRTP 메시지(900)는 ZRTP Identification 필드(901), Length 필드(903), Message Type Blcok 필드(905), Confirm MAC 필드(907), CFB Initialization Vector 필드(909), Hash Preimage 필드(911), Encrption Key Info 필드(913), Sig Length and Flag 필드(915), Cache Expiration Interval 필드(917), Optional Signature Type Block 필드(919) 및 Optional Signature Block 필드(921)을 포함할 수 있다. 물론 상기 예시에 제한되지 않으며, 구현 예에 따라 상기 예시의 메시지 포맷에서 일부 필드를 제외하거나, 추가적인 정보를 포함하는 필드를 포함할 수 있다.
일부 실시예에 따르면, ZRTP Identification 필드(901), Length 필드(903), Message Type Blcok 필드(905), Confirm MAC 필드(907), CFB Initialization Vector 필드(909), Hash Preimage 필드(911), Sig Length and Flag 필드(915), Cache Expiration Interval 필드(917), Optional Signature Type Block 필드(919) 및 Optional Signature Block 필드(921)는 도 8에서 설명한 바와 대응되므로, 자세한 설명은 생략한다.
일부 실시예에 따르면, Encrption Key Info 필드(913)는 제 1 디바이스가 생성한 암호화 키에 대한 정보를 포함할 수 있다. 앞서 설명한 바와 같이 암호화 키 정보는 암호화 키의 적어도 일부 일 수 있다.
일부 실시예에 따르면, 암호화 키의 일부는 키 생성 함수(키 생성 알고리즘)에 기초하여, 암호화 키로 복원될 수 있다. 즉, 소정의 디바이스가 암호화 키의 일부를 획득하더라도, 키 생성 함수가 없으면, 제 1 디바이스가 생성한 암호화 키와 동일한 암호화 키를 생성할 수 없다.
도 8과 비교할 때, 도 9의 컨펌 메시지(900)는, ZRTP 컨펌 메시지 내의 Unused 필드(813)이 Encrption Key Info 필드로 변경된 것이다. 즉, 제 1 디바이스는 ZRTP 컨펌 메시지 내에서 사용되지 않던 필드에 암호화 키 정보를 삽입하여 송신함으로써, 제 1 디바이스 및 제 2 디바이스 간의 통신 세션에 대한 모니터링을 지원할 수 있다.
또한 일부 실시예에 따르면, ZRTP 컨펌 메시지 내의 사용되지 않는 비트(Unused bit)에 암호화 키 정보를 삽입함으로써, 새로운 프로토콜을 사용하지 않고도 기존의 ZRTP를 이용하는 디바이스들 간의 통신 세션을 모니터링을 지원할 수 있다.
도 10은 일부 실시예에 따른 디바이스의 암호화 키를 생성하는 방법을 설명하기 위한 도면이다.
단계 1001에서, 제 1 디바이스(101)는 제 2 디바이스(102)에게 버전 정보 및 디바이스의 식별 정보를 송신할 수 있다.
일부 실시예에 따르면 버전 정보라 함은 제 1 디바이스(101)와 제 2 디바이스(102) 간의 통신 세션을 암호화 하는데 사용하는 프로토콜의 버전 정보를 포함할 수 있다. 예를 들어, 버전 정보라 함은 ZRTP의 버전 정보를 포함할 수 있으며, 상기 예시에 제한되지 않는다.
일부 실시예에 따르면 식별 정보라 함은, 세션 설정 단계에서 디바이스를 식별하는 정보를 포함할 수 있다. 예를 들어, 식별 정보라 함은 도 8 내지 도 9에서 설명한 ZRTP 식별자(ZID)를 포함할 수 있으며, 상기 예시에 제한되지 않는다.
단계 1003에서, 제 2 디바이스(102)는 ACK(Acknowledge) 신호를 제 1 디바이스(101)에게 송신할 수 있다. ACK 신호는 제 1 디바이스(101)가 송신한 신호를 수신하였다는 의미이며, 당업자에게 자명하므로 자세한 설명은 생략한다.
단계 1005에서, 제 2 디바이스(102)는 제 1 디바이스(101)에게 버전 정보 및 식별 정보를 송신할 수 있다. 버전 정보 및 식별 정보는 단계 1001에서 설명한 바와 대응되므로 자세한 설명은 생략한다.
단계 1007에서, 제 1 디바이스(101)는 제 2 디바이스(102)에게 ACK 신호를 송신할 수 있다. 이는 단계 1003에서 설명한 바와 대응되므로 자세한 설명은 생략한다.
단계 1009에서, 제 2 디바이스(102)는 제 1 디바이스(101)에게 해시 값 정보를 송신할 수 있다.
일부 실시예에 따르면, 해시 값 정보라 함은, 해시 함수를 이용하여 생성한 값으로, 암호화 키 알고리즘을 송신 또는 수신하기 전에, 암호화 키 알고리즘을 협의하기 위한 정보를 포함할 수 있다. 예를 들면, 해시 값은 hvi(hash value of initiator)를 포함할 수 있으며, 상기 예시에 제한되지 않는다.
추가적으로, 일부 실시예에 따르면, 제 2 디바이스(102)는 제 1 디바이스(101)에게 제 2 디바이스의 식별정보를 해시 값 정보와 함께 송신할 수도 있다.
단계 1011에서, 제 1 디바이스(101)는 암호화 키 알고리즘 정보를 제 2 디바이스(2)에게 송신할 수 있다. 일부 실시예에 따르면, 암호화 알고리즘에 대한 정보는 제 1 디바이스(101)와 제 2 디바이스(102)가 합의하여 정해진 알고리즘을 나타내는 소정의 값을 포함할 수 있다. 예를 들면, 제 1 디바이스(101)가 제 2 디바이스(102)와 디피 헬만 알고리즘을 이용하여 암호화 하기로 협의한 경우, 제 1 디바이스(1091)는 디피 헬만 알고리즘을 나타내는 소정의 값을 제 2 디바이스(101)에게 송신할 수 있다. 다만 상기 예시에 제한되지 않는다.
일부 실시예에 따르면, 암호화 알고리즘 정보는 svr(DH secret value of the responder)를 제 1 디바이스(101)와 제 2 디바이스(102)가 합의한 소정의 값으로 연산한 값인 pvr을 포함할 수 있다. 예를 들면, pvr = g^svr mod p로 연산될 수 있다.(g와 p는 제 1 디바이스(101)와 제 2 디바이스(102)가 합의한 값임) 다만, 상기 예시에 제한되지 않는다.
단계 1013에서, 제 2 디바이스(102)는 암호화 키 알고리즘 정보를 제 1 디바이스(101)에게 송신할 수 있다. 암호화 알고리즘 정보는 svi(DH secret value of the initiator)를 제 1 디바이스(101)와 제 2 디바이스(101)가 합의한 소정의 값으로 연산한 값인 pvi를 포함할 수 있다. 예를 들면, pvi = g^svi mod p로 연산될 수 있다.(g와 p는 제 1 디바이스(101)와 제 2 디바이스(102)가 합의한 값임) 다만, 상기 예시에 제한되지 않는다.
단계 1015에서, 제 1 디바이스(101) 및 제 2 디바이스(102)는 단계 1011 및 단계 1013에서 송수신한 암호화 알고리즘 정보에 기초하여 암호화 키를 생성할 수 있다. 제 1 디바이스(101)와 제 2 디바이스(102)는 동일하거나, 상이한 암호화 키를 생성할 수 있다.
단계 1017에서, 제 1 디바이스(101) 및 제 2 디바이스(102)는 암호화 세션을 개시할 수 있다. 즉, 제 1 디바이스(101)와 제 2 디바이스(102)는 단계 1015에 생성한 암호화 키를 이용하여 데이터를 암호화하고, 암호화 된 데이터를 송신할 수 있다.
단계 1019에서, 제 1 디바이스(101)는 암호화 키 정보를 제 2 디바이스(102)에게 송신할 수 있다. 일부 실시예에 따르면, 제 1 디바이스(101)는 모니터링 신호를 수신하였는지 판단하고, 판단 결과에 기초하여 암호화 키 정보를 제 2 디바이스(102)에게 송신할 수 있다.
일부 실시예에 따르면, 제 1 디바이스(101)는 소정의 패킷에 암호화 키 정보를 삽입하여 송신할 수 있다. 예를 들어, 제 1 디바이스(101)는 ZRTP의 컨펌 메시지를 포함하는 패킷에 암호화 키 정보를 삽입하여 제 2 디바이스(102)에게 송신할 수 있다. 물론 상기 예시에 제한되지 않는다.
일부 실시예에 따르면, 암호화 키 정보는 암호화 키의 적어도 일부를 포함할 수 있다. 제 3 디바이스는 제 1 디바이스(101)가 제 2 디바이스(102)에게 송신한 패킷을 획득함으로써, 암호화 키 정보를 획득하고, 획득한 암호화 키 정보에 기초하여 제 1 디바이스(101)가 생성한 암호화 키와 동일한 암호화 키를 생성할 수 있다. 제 3 디바이스는 제 1 디바이스(101)가 생성한 암호화 키와 동일한 암호화 키를 생성하고, 제 3 디바이스가 생성한 암호화 키를 이용하여 제 1 디바이스(101)와 제 2 디바이스(102)간에 송수신되는 적어도 일부의 데이터를 복호화 할 수 있다.
단계 1021에서, 제 2 디바이스는(102)는 암호화 키 정보를 제 1 디바이스(101)에게 송신할 수 있다. 제 1 디바이스(101)와 제 2 디바이스(102)가 생성한 암호화 키가 동일한 경우, 구현 예에 따라, 단계 1019 또는 단계 1021은 생략될 수 있다.
단계 1023에서, 제 1 디바이스(101)는 ACK 신호를 제 2 디바이스(102)에게 송신할 수 있다. 구현예에 따라 단계 1023은 생략될 수 있다.
도 11은 일부 실시예에 따른 제 3 디바이스의 제 1 디바이스 및 제 2 디바이스 간의 통신 세션을 모니터링 하는 방법을 설명하기 위한 순서도이다.
단계 1101에서, 제 3 디바이스는 제 1 디바이스 또는 제 2 디바이스의 주소 정보를 획득 할 수 있다. 일부 실시예에 따르면, 제 3 디바이스는 제 1 디바이스 또는 제 2 디바이스의 주소 정보 중 적어도 하나를 사용자의 입력 또는 서버로부터 획득할 수 있다.
단계 1103에서, 제 3 디바이스는 제 1 디바이스와 제 2 디바이스 간의 통신 세션에 대한 모니터링 신호를 송신 할 수 있다. 일부 실시예에 따르면, 제 3 디바이스는 제 1 디바이스에게 모니터링 신호를 송신하거나, 제 2 디바이스에게 모니터링 신호를 송신할 수 있다. 물론 제 3 디바이스는 제 1 디바이스와 제 2 디바이스 모두에게 모니터링 신호를 송신할 수도 있다. 예를 들면, 제 3 디바이스는 모니터링 할 디바이스를 결정하고, 결정 결과에 따라 모니터링 할 디바이스에게 모니터링 신호를 송신할 수 있다.
또한 일부 실시예에 따르면, 제 3 디바이스는 모니터링 신호를 서버를 통해 제 1 디바이스 또는 제 2 디바이스에게 송신할 수도 있다.
일부 실시예에 따르면, 제 3 디바이스는, 제 1 디바이스 또는 제 2 디바이스가 송신할 적어도 하나의 컨텐트 중 어떤 컨텐트를 모니터링 할 지 여부를 결정하고, 결정 결과에 따라, 제 1 디바이스 또는 제 2 디바이스에게 어떤 컨텐트를 모니터링 할 것인지에 대한 정보를 포함하는 모니터링 신호를 송신할 수 있다.
단계 1105에서, 제 3 디바이스는 획득한 주소 정보에 기초하여 모니터링될 통신 세션을 통해 송신되는 통신 세션의 암호화 키에 대한 정보를 포함하는 소정의 패킷을 획득 할 수 있다.
일부 실시예에 따르면, 제 1 디바이스 또는 제 2 디바이스는 소정의 패킷을 이용하여 암호화 키 정보를 송신할 수 있다. 제 3 디바이스는 제 1 디바이스 또는 제 3 디바이스가 송신한 소정의 패킷을 인터셉트 함으로써, 암호화 키 정보를 획득할 수 있다.
일부 실시예에 따르면, 제 3 디바이스는 제 1 디바이스 또는 제 2 디바이스 간의 패킷을 필터링 하여 인터셉트 함으로써, 암호화 키 정보를 포함하는 소정의 패킷을 획득할 수도 있다.
단계 1107에서, 제 3 디바이스는 암호화 키에 대한 정보에 기초하여 통신 세션의 암호화 키를 생성 할 수 있다. 일부 실시예에 따르면, 암호화 키 정보는 암호화 키의 적어도 일부를 포함할 수 있다. 물론 상기 예시에 제한되지 않으며, 암호화 키를 생성할 수 있는 정보를 모두 포함할 수 있다.
일부 실시예에 따르면, 제 3 디바이스는 제 1 디바이스의 제조사, 또는 제 2 디바이스의 제조사로부터 암호화 키 정보에 기초하여 암호화 키를 생성하기 위한 키 생성 함수(키 생성 알고리즘)을 획득할 수 있다. 또한 제 3 디바이스는 서버로부터 키 생성 함수를 획득할 수도 있다.
일부 실시예에 따르면, 키 생성 함수는 키 연산 함수를 포함할 수 있다. 예를 들면, 제 3 디바이스는 키 연산 함수 및 암호화 키 정보를 이용하여 제 1 디바이스 또는 제 2 디바이스가 생성한 암호화 키와 동일한 암호화 키를 생성할 수 있다. 다시 말해서, 제 3 디바이스는 획득한 암호화 키 정보에 기초하여 제 1 디바이스 또는 제 2 디바이스가 생성한 암호화 키를 복원할 수 있다.
단계 1109에서, 제 3 디바이스는 생성된 암호화 키에 기초하여 통신 세션을 통해 송수신되는 암호화 된 데이터를 복호화 할 수 있다. 일부 실시예에 따르면, 제 3 디바이스는 제 1 디바이스 또는 제 2 디바이스의 주소 정보에 기초하여 제 1 디바이스와 제 2 디바이스간의 통신 세션을 통해 송수신되는 암호화된 패킷을 획득하고, 획득한 암호화된 패킷을 복호화 할 수 있다.
예를 들면, 제 3 디바이스는 제 1 디바이스의 주소 정보에 기초하여 제 1 디바이스가 제 2 디바이스에게 송신하는 암호화된 패킷을 인터셉트 하고, 인터셉트한 암호화된 패킷을 제 3 디바이스가 생성한 암호화 키를 이용하여 복호화 함으로써, 제 1 디바이스가 제 2 디바이스에게 송신하는 데이터 내에 포함된 정보를 획득할 수 있다.
도 12은 일부 실시예에 따른 모니터링 방법을 설명하기 위한 시스템을 도시한다.
일부 실시예에 따르면, 서버(104)는 제 1 디바이스(101)와 제 2 디바이스(102)간의 세션을 개시할 수 있다, 예를 들면, 제 2 디바이스(102)의 제 1 디바이스(101)와의 세션 개시 요청을 수신한 서버(104)는, 서버(104)에 저장된 데이터 베이스에 기초하여 제 1 디바이스(101)에게 세션 개시 요청을 포워딩할 수 있다. 제 1 디바이스(101)는 세션 개시 요청을 수신하고, 서버(104)를 경유하거나, 제 2 디바이스(102)와 직접 암호화 된 세션을 개시 하기 위한 세션 설정을 수행할 수있다.
일부 실시예에 따르면, 제 1 디바이스(101)와 제 2 디바이스(102)간의 세션은 다양한 경로로 구성될 수 있다. 도 12를 참조하면, 제 1 디바이스(101)와 제 2 디바이스(102)의 통신 세션은 하나의 AP(Access point)을 포함하는 경로로 구성될 수 있다. 제 1 디바이스(101)는 AP(120)를 통해 제 2 디바이스(102)에게 데이터를 송신할 수 있다.
일부 실시예에 따르면, 제 3 디바이스(103)는 제 1 디바이스(101)가 제 2 디바이스(102)에게 송신하는 데이터가 AP를 경유할 때, 제 1 디바이스(101)가 송신한 데이터를 인터셉트 할 수 있다. 일부 실시예에 따르면, 제 3 디바이스(103)는 제 1 디바이스(101)의 주소 정보를 획득하고, AP(102)를 통과하는 패킷들을 제 1 디바이스(101)의 주소 정보에 기초하여 필터링 함으로써, 제 1 디바이스(101)가 송신하는 패킷을 획득할 수 있다. 제 3 디바이스(103)는 제 1 디바이스(101)가 송신하는 패킷을 인터셉트함으로써, 제 1 디바이스가 송신하는 암호화 키 정보를 획득하고, 암호화된 데이터(또는 패킷)를 모니터링 할 수 있다.
도 13은 일부 실시예에 따른 모니터링 지원 방법을 설명하기 위한 플로우를 도시한다.
단계 1301에서, 서버는 제 1 디바이스에게 통신 세션 개시 신호를 송신할 수 있다. 일부 실시예에 따르면, 서버는 제 2 디바이스에게 수신한 통신 세션 개시 신호를 제 1 디바이스에게 포워딩 할 수 있다.
단계 1303에서, 제 3 디바이스는 제 1 디바이스에게 모니터링 신호를 송신할 수 있다. 일부 실시예에 따르면, 제 3 디바이스는 제 1 디바이스가 송신할 적어도 하나의 컨텐트 중 어떤 컨텐트를 모니터링 할 지 여부를 결정하고, 결정에 기초하여 모니터링 신호를 송신할 수도 있다.
단계 1305에서, 제 1 디바이스는 암호화 키를 생성할 수 있다. 일부 실시예에 따르면, 제 1 디바이스는 제 2 디바이스와의 통신 세션을 암호화 하기 위해 세션 설정을 수행하고, 수행한 결과에 기초하여 암호화 키를 생성할 수 있다.
일부 실시예에 따르면, 제 1 디바이스는 송신할 적어도 하나의 컨텐트 각각에 대해 상이한 컨텐트 키를 생성할 수도 있다. 또한 제 1 디바이스는 제 2 디바이스와 상이한 암호화 키를 생성할 수도 있다.
단계 1307에서, 제 1 디바이스는 제 2 디바이스에게 암호화 키에 대한 정보인 암호화 키 정보를 송신할 수 있다. 일부 실시예에 따르면, 암호화 키 정보는 암호화 키 중 적어도 일부를 송신할 수 있다.
일부 실시예에 따르면, 제 1 디바이스는 암호화 키 정보를 소정의 패킷을 이용하여 송신할 수 있다. 예를 들면, 소정의 패킷은 ZRTP의 컨펌 메시지를 포함할 수 있다.
또한 일부 실시예에 따르면, 제 1 디바이스는 수신된 모니터링 신호에 기초하여, 모니터링 될 컨텐트를 식별하고, 모니터링 될 컨텐트에 대응하는 암호화 키에 대한 정보를 제 2 디바이스에게 송신할 수 있다.
단계 1309에서, 제 3 디바이스는 암호화 키에 대한 정보를 획득할 수 있다. 일부 실시예에 따르면, 제 3 디바이스는 제 1 디바이스의 주소 정보에 기초하여 제 1 디바이스가 송신한 암호화 키에 대한 정보를 획득할 수 있다.
단계 1311에서, 제 3 디바이스는 암호화 키를 생성할 수 있다. 일부 실시예에 따르면, 제 3 디바이스는 단계 1309에서 획득한 암호화 키에 대한 정보에 기초하여 암호화 키 정보를 생성할 수 있다. 또한 일부 실시예에 따르면, 제 3 디바이스는 키 생성 함수를 획득하고, 획득한 키 생성 함수와 획득한 암호화 키에 대한 정보에 기초하여 암호화 키 정보를 생성할 수 있다. 즉, 제 3 디바이스는 키 생성 함수 및 암호화 키 정보에 기초하여 제 1 디바이스가 생성한 암호화 키와 동일한 암호화 키를 생성 또는 복원 할 수 있다.
일부 실시예에 따르면, 제 3 디바이스는 키 생성 함수를 제 1 디바이스 또는 제 2 디바이스의 제조사로부터 획득하거나, 사용자 입력에 의해 획득할 수 있다. 또한 제 3 디바이스는 서버로부터 키 생성 함수를 획득할 수도 있다.
단계 1313에서, 제 1 디바이스는 제 2 디바이스와 암호화된 데이터를 송신 및 수신할 수 있다. 일부 실시예에 따르면, 제 1 디바이스는 단계 1305에서 생성한 암호화 키를 이용하여 데이터를 암호화 하고, 암호화된 데이터를 제 2 디바이스에게 송신할 수 있다.
단계 1315에서, 제 3 디바이스는 암호화된 데이터를 획득할 수 있다. 일부 실시예에 따르면, 제 3 디바이스는 제 1 디바이스의 주소 정보에 기초하여 제 1 디바이스가 제 2 디바이스에게 송신하는 암호화된 데이터를 획득할 수 있다.
단계 1317에서, 제 3 디바이스는 단계 1315에서 획득한 암호화 된 데이터를 복호화할 수 있다. 일부 실시예에 따르면, 제 3 디바이스는 단계 1311에서 획득한 암호화 키를 이용하여 제 1 디바이스와 제 2 디바이스 간에 송신되는 적어도 일부의 암호화 된 데이터를 복호화 할 수 있다.
도 14는 일부 실시예에 따른 모니터링을 지원하는 디바이스를 설명하기 위한 도면이다.
도 14에 도시된 바와 같이 일부 실시예에 따른 모니터링을 지원하는 디바이스인 제 1 디바이스(101)는 수신부(1401) 및 송신부(1403)을 포함하는 통신부(1410) 및 제어부(1405)를 포함할 수 있다. 그러나 도 14에 도시된 구성 요소가 모두 제 1 디바이스(101)의 필수 구성 요소인 것은 아니다. 도 14에 도시된 구성 요소보다 많은 구성 요소에 의해 제 1 디바이스(101)가 구현될 수도 있고, 도 14에 도시된 구성 요소보다 적은 구성 요소에 의해 제 1 디바이스(101)가 구현될 수도 있다. 또한 일부 실시예에 따르면, 앞서 설명한 제 2 디바이스(102) 또한 제 1 디바이스(101)와 동일한 구성을 포함할 수 있다.
일부 실시예에 따르면, 수신부(1401)는 제 2 디바이스(102)와의 통신 세션 개시 신호를 수신할 수 있다. 수신부(1401)는 서버 또는 제 2 디바이스(102)로부터 통신 세션 개시 신호를 수신할 수 있다.
일부 실시예에 따르면, 수신부(1401)는 제 2 디바이스(102)로부터 통신 세션을 암호화 하기 위해 사용되는 암호화 프로토콜 버전 정보, 제 2 디바이스(102)와의 세션을 식별하는 식별자 및 제 2 디바이스(102)가 지원하는 암호화 알고리즘에 대한 정보 중 적어도 하나를 수신할 수 있다.
또한 일부 실시예에 따르면, 수신부(1401)은 제 2 디바이스(102)로부터 암호화된 데이터를 수신할 수 있다. 일부 실시예에 따르면, 암호화된 데이터는 암호화된 컨텐트를 포함할 수 있다.
일부 실시예에 따르면, 송신부(1403)는 암호화 키에 대한 정보를 소정의 패킷을 이용하여 제 2 디바이스(102)에게 송신할 수 있다. 송신부(1403)가 송신한 소정의 패킷을 제 3 디바이스(103)가 획득함으로써, 제 3 디바이스(103)가 암호화 키에 대한 정보를 획득할 수 있다. 또한, 송신부(1403)이 송신한 소정의 패킷을 획득한 제 3 디바이스(103)가 암호화 키를 획득함으로써, 제 3 디바이스(103)가 제 1 디바이스(101)와 제 2 디바이스(102)간의 세션을 통해 송수신되는 암호화된 데이터를 복호화 할 수 있다.
일부 실시예에 따르면, 송신부(1403)는 제 2 디바이스(102)에게 통신 세션의 암호화를 위해 사용되는 암호화 프로토콜 버전 정보, 제 2 디바이스(102)와의 세션을 식별하는 식별자 및 제 2 디바이스(102)가 지원하는 암호화 알고리즘에 대한 정보를 송신할 수 있다. 일부 실시예에 따르면, 송신부(1403)는 암호화 키로 암호화한 데이터를 제 2 디바이스(102)에게 송신할 수 있다.
또한 일부 실시예에 따르면, 컨텐트 각각에 대응하는 암호화 키가 상이한 경우, 송신부(1403)는 제어부(1405)의 판단에 기초하여, 제 3 디바이스(103)가 모니터링 하기를 원하는 컨텐트에 대한 암호화 키에 대한 정보를 소정의 패킷을 이용하여 제 2 디바이스(102)에게 송신할 수 있다.
일부 실시예에 따르면, 수신부(1401) 및 송신부(1403)은 ZRTP를 이용하여 제 2 디바이스(102)와 송신할 수 있다. 또한 송신부(1403)가 암호화 키 정보를 송신하는데 사용하는 소정의 패킷은 ZRTP 컨펌 메시지를 포함하는 패킷을 포함할 수 있다. 또한 암호화 키에 대한 정보는 암호화 키의 적어도 일부일 수 있다.
일부 실시예에 따르면, 통신부(1410)는 제 3 디바이스(103)로부터 모니터링 신호를 획득하는 신호 획득부(미도시)를 더 포함 할 수도 있다. 물론 구현 예에 따라, 수신부(1401)가 제 3 디바이스(103)로부터 모니터링 신호를 획득할 수도 있다.
일부 실시예에 따르면, 제어부(1405)는 통상적으로 제 1 디바이스(101)의 전반적인 동작을 제어한다. 예를 들어, 제어부(1405)는 제 1 디바이스(101)에 저장된 프로그램을 실행함으로써, 제 1 디바이스(101)가 포함하는 구성요소들을 전반적으로 제어할 수 있다. 또한 제어부(1405) 적어도 하나의 프로세서를 포함할 수 있다.
일부 실시예에 따르면, 제어부(1405)는 제 2 디바이스(102)와의 통신 세션의 암호화를 위한 암호화 키를 생성하고, 통신 세션에 대한 모니터링 수신 여부를 판단할 수 있다. 제어부(1405)는 제 1 디바이스(101)와 제 2 디바이스(102)의 암호화 알고리즘, 제 1 디바이스(101)와 제 2 디바이스(102)간의 통신 세션의 공개키, 제 1 디바이스의 개인 키(Private Key) 중 적어도 하나에 기초하여 암호화 키를 생성할 수 있다.
일부 실시예에 따르면, 제어부(1405)는 제 2 디바이스(102)가 생성하는 암호화 키와는 상이한 암호화 키를 생성할 수 있다. 또한 제어부(1405)는 제 1 디바이스(101)가 송신할 적어도 하나의 컨텐트 각각에 대한 암호화 키를 생성할 수 있다. 즉, 제어부(1405)는 제 1 디바이스(101)가 송신할 적어도 하나의 컨텐트 각각을 상이한 암호화 키를 이용하여 암호화 하기 위해, 적어도 하나의 컨텐트 각각에 대응하는 암호화 키를 생성할 수 있다.
일부 실시예에 따르면, 제어부(1405)는 수신부(1401)가 제 2 디바이스(102)로부터 수신한, 통신 세션을 암호화 하기 위해 사용되는 암호화 프로토콜 버전 정보, 제 2 디바이스(102)와의 세션을 식별하는 식별자 및 제 2 디바이스(102)가 지원하는 암호화 알고리즘에 대한 정보에 기초하여, 암호화 키를 생성하기 위한 암호화 알고리즘을 결정하고, 결정된 암호화 알고리즘을 이용하여 암호화 키를 생성할 수 있다.
도 15는 일부 실시예에 따른 모니터링을 수행하는 디바이스를 설명하기 위한 도면이다.
도 15에 도시된 바와 같이 일부 실시예에 따른 모니터링 수행하는 디바이스인 제 3 디바이스(103)는 수신부(1501) 및 송신부(1503)을 포함하는 통신부(1510), 제어부(1505) 및 주소 정보 획득부(1507)을 포함할 수 있다. 그러나 도 15에 도시된 구성 요소가 모두 제 3 디바이스(103)의 필수 구성 요소인 것은 아니다. 도 15에 도시된 구성 요소보다 많은 구성 요소에 의해 제 3 디바이스(103)가 구현될 수도 있고, 도 15에 도시된 구성 요소보다 적은 구성 요소에 의해 제 3 디바이스(103)가 구현될 수도 있다.
일부 실시예에 따르면, 수신부(1401)는 제 1 디바이스(101) 또는 제 2 디바이스(102)의 주소 정보에 기초하여 모니터링 될 통신 세션인, 제 1 디바이스(101) 및 제 2 디바이스(102) 간의 통신 세션을 통해 송신되는 통신 세션의 암호화 키에 대한 정보를 포함하는 소정의 패킷을 획득할 수 있다.
또한 일부 실시예에 따르면, 수신부(1401)는 제 1 디바이스(101) 및 제 2 디바이스(102) 간의 통신 세션을 통해 송신 및 수신되는 암호화된 데이터를 획득할 수도 있다.
앞서 설명한 바와 같이 수신부(1401)가 획득한다는 의미는 패킷을 인터셉트 하는 의미 또한 포함할 수 있다. 예를 들어, 제 3 디바이스(103)가 패킷의 최종 목적지로 정해져 있지 않은 경우에도, 인터셉트를 통해 제 3 디바이스(103)가 패킷을 획득할 수 있다.
일부 실시예에 따르면, 수신부(1401)는 소정의 경로를 지나는 모든 패킷을 획득하고, 획득한 패킷을 제 1 디바이스(101) 또는 제 2 디바이스(102)의 주소 정보에 기초하여 필터링 함으로써, 제 1 디바이스(101)와 제 2 디바이스(102) 간에 송신 및 수신되는 데이터를 획득할 수 있다.
또한 일부 실시예에 따르면, 수신부(1401)는 제 1 디바이스(101), 제 2 디바이스(102) 또는 서버로부터 제 1 디바이스(101) 및 제 2 디바이스(102)간의 통신 세션을 통해 송신 또는 수신될 적어도 하나의 컨텐트에 대한 리스트를 획득할 수 있다.
일부 실시예에 따르면, 송신부(1403)는 제 1 디바이스(101) 또는 제 2 디바이스(102)에게 모니터링 신호를 송신할 수 있다. 일부 실시예에 따르면, 송신부(1403)는 제 1 디바이스(101) 또는 제 2 디바이스(102) 중 모니터링 할 디바이스에게만 모니터링 신호를 송신할 수 있다. 또한 송신부(1403)는 제 1 디바이스(101) 및 제 2 디바이스(102)간의 통신 세션을 통해 송신 또는 수신될 적어도 하나의 컨텐트 중 모니터할 컨텐트를 선택하고, 선택한 컨텐트에 대한 정보를 포함하는 모니터링 신호를 송신할 수도 있다.
일부 실시예에 따르면, 제어부(1505)는 통상적으로 제 3 디바이스(103)의 전반적인 동작을 제어한다. 예를 들어, 제어부(1505)는 제 3 디바이스(103)에 저장된 프로그램을 실행함으로써, 제 3 디바이스(103)가 포함하는 구성요소들을 전반적으로 제어할 수 있다. 또한 제어부(1505) 적어도 하나의 프로세서를 포함할 수 있다.
일부 실시예에 따르면, 제어부(1505)는 수신부(1501)을 통해 획득한 암호화 키 정보에 기초하여 암호화 키를 생성할 수 있다. 일부 실시예에 따르면 제어부(1505)가 생성한 암호화 키는 제 1 디바이스(101) 또는 제 2 디바이스(102)가 생성한 암호화 키와 동일할 수 있다. 즉, 제어부(1505)는 획득한 암호화 키 정보에 기초하여 제 1 디바이스(101) 또는 제 2 디바이스(102)가 생성한 암호화 키를 복원할 수 있다.
일부 실시예에 따르면, 제어부(1505)는 생성된 암호화 키에 기초하여 통신 세션을 통해 송수신되는 암호화 된 데이터를 복호화 할 수 있다. 일부 실시예에 따르면, 제어부(155)는 수신부(1501)에서 획득한 제 1 디바이스(101) 및 제 2 디바이스(102) 간의 통신 세션을 통해 송신 및 수신되는 암호화 데이터를 획득하고, 획득한 암호화 데이터를 복호화 할 수 있다.
일부 실시예에 따르면, 제어부(1505)는 서버, 제 1 디바이스(101) 또는 제 2 디바이스(102)의 제조사 또는 별도의 사용자 입력에 의해 획득한 키 생성 알고리즘(또는 키 생성 함수) 및 획득한 암호화 키 정보를 이용하여 암호화 키를 생성 또는 복원할 수 있다.
도 16은 일부 실시예에 따른 모니터링을 지원하는 디바이스를 설명하기 위한 세부 블록도이다.
도 14에 도시된 바와 같이 일부 실시예에 따른 모니터링을 지원하는 디바이스인 제 1 디바이스(101)는 수신부(1401) 및 송신부(1403)을 포함하는 통신부(1410) 및 제어부(1405) 외에도 사용자 입력부(1600), 출력부(1610), 센서부(1620), A/V 입력부(1630) 및 저장부(메모리)(1640)를 더 포함할 수도 있다. 그러나 도 16에 도시된 구성 요소가 모두 제 1 디바이스(101)의 필수 구성 요소인 것은 아니다. 도 16에 도시된 구성 요소보다 많은 구성 요소에 의해 제 1 디바이스(101)가 구현될 수도 있고, 도 16에 도시된 구성 요소보다 적은 구성 요소에 의해 제 1 디바이스(101)가 구현될 수도 있다. 또한 일부 실시예에 따르면, 앞서 설명한 제 2 디바이스(102) 또한 제 1 디바이스(101)와 동일한 구성을 포함할 수 있다.
제어부(1405)의 동작은 앞서 설명한 바와 대응되므로, 자세한 설명은 생략한다.
일부 실시예에 따르면, 통신부(1410)는 근거리 통신부(1601), 이동 통신부(1603) 및 방송 수신부(1605)를 포함할 수 있다. 근거리 통신부(1601)는 블루투스 통신부, BLE(Bluetooth Low Energy) 통신부, 근거리 자기장 통신부(Near Field Communication), WLAN(와이파이) 통신부, 지그비(Zigbee) 통신부, 적외선(IrDA, infrared Data Association) 통신부, WFD(Wi-Fi Direct) 통신부, UWB(ultra wideband) 통신부, Ant+ 통신부 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
또한 근거리 통신부(1601)가 포함하는 각 통신부들은 도 14에서 설명한 바와 같이 각각 송신부 및 수신부로 구성될 수 있다. 예를 들면, 블루 투스 통신부는 블루투스 송신부 및 블루투스 수신부를 포함할 수 있다. 물론 상기 예시에 제한되지 않는다.
일부 실시예에 따르면, 이동 통신부(1603)는, 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다. 여기에서, 무선 신호는, 음성 호 신호, 화상 통화 호 신호 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다.
방송 수신부(1605)는, 방송 채널을 통하여 외부로부터 방송 신호 및/또는 방송 관련된 정보를 수신한다. 방송 채널은 위성 채널, 지상파 채널을 포함할 수 있다. 구현 예에 따라서 제 1 디바이스(101)는 방송 수신부(1605)를 포함하지 않을 수도 있다. 통신부(1410)의 동작은 앞서 설명한 바와 대응되므로 자세한 설명은 생략한다.
일부 실시예에 따르면, 저장부(메모리)(1640)는, 제어부(1405)의 처리 및 제어를 위한 프로그램을 저장할 수 있고, 제 1 디바이스(101)로 입력되거나 제 1 디바이스(101)로부터 출력되는 데이터를 저장할 수도 있다.
일부 실시예에 따르면, 저장부(메모리)(1640)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
또한 일부 실시예에 따르면, 저장부(메모리)(1640)에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류할 수 있는데, 예를 들어, UI 모듈(1641), 터치 스크린 모듈(1642), 알림 모듈(1643) 등으로 분류될 수 있다.
UI 모듈(1641)은, 제 1 디바이스(101)와 연동되는 특화된 UI, GUI 등을 제공할 수 있다. 예를 들어, UI 모듈(1641)는 제 1 디바이스(101)가 제 2 디바이스(102)와 세션 설정을 수행하고 있는 지, 제 1 디바이스(101)가 제 2 디바이스(102)에게 암호화된 데이터를 송신하고 있는지를 나타내는 UI 또는 GUI를 제공할 수 있다.
터치 스크린 모듈(1642)은 사용자의 터치 스크린 상의 터치 제스처를 감지하고, 터치 제스처에 관한 정보를 제어부(1405)로 전달할 수 있다. 일부 실시예에 따른 터치 스크린 모듈(1642)은 터치 코드를 인식하고 분석할 수 있다. 터치 스크린 모듈(1642)은 컨트롤러를 포함하는 별도의 하드웨어로 구성될 수도 있다.
터치스크린의 터치 또는 근접 터치를 감지하기 위해 터치스크린의 내부 또는 근처에 다양한 센서가 구비될 수 있다. 터치스크린의 터치를 감지하기 위한 센서의 일례로 촉각 센서가 있다. 촉각 센서는 사람이 느끼는 정도로 또는 그 이상으로 특정 물체의 접촉을 감지하는 센서를 말한다. 촉각 센서는 접촉면의 거칠기, 접촉 물체의 단단함, 접촉 지점의 온도 등의 다양한 정보를 감지할 수 있다.
또한, 터치스크린의 터치를 감지하기 위한 센서의 일례로 근접 센서가 있다.
근접 센서는 소정의 검출면에 접근하는 물체, 혹은 근방에 존재하는 물체의 유무를 전자계의 힘 또는 적외선을 이용하여 기계적 접촉이 없이 검출하는 센서를 말한다. 근접 센서의 예로는 투과형 광전 센서, 직접 반사형 광전 센서, 미러 반사형 광전 센서, 고주파 발진형 근접 센서, 정전용량형 근접 센서, 자기형 근접 센서, 적외선 근접 센서 등이 있다. 또한 사용자의 터치 제스처에는 탭, 터치&홀드, 더블 탭, 드래그, 패닝, 플릭, 드래그 앤드 드롭, 스와이프 등이 있을 수 있다.
알림 모듈(1643)은 제 1 디바이스(101)의 이벤트 발생을 알리기 위한 신호를 발생할 수 있다. 재 1 디바이스(101)에서 발생되는 이벤트의 예로는 호 신호 수신, 메시지 수신, 키 신호 입력, 일정 알림 등이 있다. 알림 모듈(1643)은 디스플레이부(1611)를 통해 비디오 신호 형태로 알림 신호를 출력할 수도 있고, 음향 출력부(1612)를 통해 오디오 신호 형태로 알림 신호를 출력할 수도 있고, 진동 모터(1613)를 통해 진동 신호 형태로 알림 신호를 출력할 수도 있다.
일부 실시예에 따르면, 사용자 입력 수신부(1600)는, 사용자가 제 1 디바이스(101)를 제어하기 위한 데이터를 입력하는 수단을 의미한다. 예를 들어, 사용자 입력부(1600)에는 키 패드(key pad), 돔 스위치 (dome switch), 터치 패드(접촉식 정전 용량 방식, 압력식 저항막 방식, 적외선 감지 방식, 표면 초음파 전도 방식, 적분식 장력 측정 방식, 피에조 효과 방식 등), 조그 휠, 조그 스위치 등이 있을 수 있으나 이에 한정되는 것은 아니다.
출력부(1610)는, 오디오 신호 또는 비디오 신호 또는 진동 신호를 출력할 수 있으며, 출력부(1610)는 디스플레이부(1611), 음향 출력부(1612), 및 진동 모터(1613)를 포함할 수 있다.
디스플레이부(1611)는 제 1 디바이스(101)에서 처리되는 정보를 표시 출력한다.
한편, 디스플레이부(1611)와 터치패드가 레이어 구조를 이루어 터치 스크린으로 구성되는 경우, 디스플레이부(1611)는 출력 장치 이외에 입력 장치로도 사용될 수 있다. 디스플레이부(1611)는 액정 디스플레이(liquid crystal display), 박막 트랜지스터 액정 디스플레이(thin film transistor-liquid crystal display), 유기 발광 다이오드(organic light-emitting diode), 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display), 전기영동 디스플레이(electrophoretic display) 중에서 적어도 하나를 포함할 수 있다. 그리고 제 1 디바이스(101)의 구현 형태에 따라 제 1 디바이스(101)는 디스플레이부(1611)를 2개 이상 포함할 수도 있다. 이때, 2개 이상의 디스플레이부(1611)는 힌지(hinge)를 이용하여 마주보게 배치될 수 있다.
음향 출력부(1612)는 통신부(1410)로부터 수신되거나 저장부(메모리)(1640)에 저장된 오디오 데이터를 출력한다. 또한, 음향 출력부(1612)는 제 1 디바이스(101)에서 수행되는 기능(예를 들어, 호신호 수신음, 메시지 수신음, 알림음)과 관련된 음향 신호를 출력한다. 이러한 음향 출력부(1612)에는 스피커(speaker), 버저(Buzzer) 등이 포함될 수 있다.
진동 모터(1613)는 진동 신호를 출력할 수 있다. 예를 들어, 진동 모터(1613)는 오디오 데이터 또는 비디오 데이터(예컨대, 호신호 수신음, 메시지 수신음 등)의 출력에 대응하는 진동 신호를 출력할 수 있다. 또한, 진동 모터(1613)는 터치스크린에 터치가 입력되는 경우 진동 신호를 출력할 수도 있다.
일부 실시예에 따르면, 센서부(1620)는, 제 1 디바이스(101)의 상태 또는 제 1 디바이스(101) 주변의 상태를 감지하고, 감지된 정보를 제어부1(405)로 전달할 수 있다.
센서부(1620)는, 지자기 센서(Magnetic sensor)(1621), 가속도 센서(Acceleration sensor)(1622), 온/습도 센서(1623), 적외선 센서(1624), 자이로스코프 센서(1625), 위치 센서(예컨대, GPS)(1626), 기압 센서(1627), 근접 센서(1628), 및 RGB 센서(1629) 중 적어도 하나를 포함할 수 있으나, 이에 한정되는 것은 아니다. 각 센서들의 기능은 그 명칭으로부터 당업자가 직관적으로 추론할 수 있으므로, 구체적인 설명은 생략하기로 한다.
A/V(Audio/Video) 입력부(1630)는 오디오 신호 또는 비디오 신호 입력을 위한 것으로, 이에는 카메라(1631)와 음향 입력부(1632) 등이 포함될 수 있다. 카메라(1631)은 화상 통화모드 또는 촬영 모드에서 이미지 센서를 통해 정지영상 또는 동영상 등의 화상 프레임을 얻을 수 있다. 이미지 센서를 통해 캡쳐된 이미지는 제어부(1405) 또는 별도의 이미지 처리부(미도시)를 통해 처리될 수 있다.
카메라(1631)에서 처리된 화상 프레임은 저장부(메모리)(1640)에 저장되거나 통신부(1410)를 통하여 외부로 송신될 수 있다. 카메라(1631)는 단말기의 구성 태양에 따라 2개 이상이 구비될 수도 있다.
음향 입력부(1632)는, 외부의 음향 신호를 입력 받아 전기적인 음성 데이터로 처리한다. 일부 실시예에 따르면, 음향 입력부(1632)는 마이크로폰일 수 있으며, 상기 예시에 제한되지 않는다.
음향 입력부(1632)은 외부 디바이스, 서버 또는 사용자로부터 음향 신호를 수신할 수 있다. 마이크로폰(1632)는 외부의 음향 신호를 입력 받는 과정에서 발생 되는 잡음(noise)를 제거하기 위한 다양한 잡음 제거 알고리즘을 이용할 수 있다.
본 발명에 따른 장치는 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(permanent storage), 외부 장치와 통신하는 통신 포트, 터치 패널, 키(key), 버튼 등과 같은 사용자 인터페이스 장치 등을 포함할 수 있다. 소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 상기 프로세서상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다. 여기서 컴퓨터가 읽을 수 있는 기록 매체로 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
본 발명에서 인용하는 공개 문헌, 특허 출원, 특허 등을 포함하는 모든 문헌들은 각 인용 문헌이 개별적으로 및 구체적으로 병합하여 나타내는 것 또는 본 발명에서 전체적으로 병합하여 나타낸 것과 동일하게 본 발명에 병합될 수 있다.
본 발명의 이해를 위하여, 도면에 도시된 바람직한 실시 예들에서 참조 부호를 기재하였으며, 본 발명의 실시 예들을 설명하기 위하여 특정 용어들을 사용하였으나, 특정 용어에 의해 본 발명이 한정되는 것은 아니며, 본 발명은 당업자에 있어서 통상적으로 생각할 수 있는 모든 구성 요소들을 포함할 수 있다.
본 발명은 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 발명은 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 본 발명에의 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 발명은 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 발명은 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. 매커니즘’, ‘요소’, ‘수단’, ‘구성’과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, ‘필수적인’, ‘중요하게’ 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
본 발명의 명세서(특히 특허청구범위에서)에서 ‘상기’의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 발명에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 본 발명에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 본 발명이 한정되는 것은 아니다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 발명의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.

Claims (15)

  1. 제 1 디바이스의 암호화된 데이터 통신 세션의 모니터링 지원 방법에 있어서,
    제 2 디바이스와의 통신 세션 개시 신호를 수신하는 단계;
    상기 통신 세션의 암호화를 위한 암호화 키를 생성하는 단계;
    상기 통신 세션에 대한 모니터링 신호의 수신 여부를 판단하는 단계; 및
    상기 판단에 기초하여 상기 암호화 키에 대한 정보를 소정의 패킷을 이용하여 상기 제 2 디바이스에게 송신하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 방법은,
    제 3 디바이스가 상기 소정의 패킷을 획득함으로써, 상기 제 3 디바이스가 상기 암호화 키에 대한 정보를 획득하는 것 특징으로 하는 방법.
  3. 제 1 항에 있어서,
    상기 암호화 키를 생성하는 단계는,
    상기 제 1 디바이스와 상기 제 2 디바이스의 암호화 알고리즘, 상기 통신 세션의 공개키, 상기 제 1 디바이스의 개인키(Private Key) 중 적어도 하나에 기초하여 생성하는 것을 특징으로 하는 방법.
  4. 제 1 항에 있어서,
    상기 암호화 키를 생성하는 단계는,
    상기 제 2 디바이스가 생성하는 암호화 키와는 상이한 암호화 키를 생성하는 것을 특징으로 하는 방법.
  5. 제 1 항에 있어서,
    상기 암호화 키를 생성하는 단계는,
    상기 통신 세션을 통해 송수신 되는 적어도 하나의 컨텐트 각각에 대한 암호화 키를 생성하는 단계를 포함하고,
    상기 모니터링 신호의 수신 여부를 판단하는 단계는,
    상기 적어도 하나의 컨텐트 중 어떤 컨텐트에 대한 모니터링 신호를 수신하였는지 여부를 판단하는 단계를 포함하고,
    상기 판단에 기초하여 상기 암호화 키에 대한 정보를 소정의 패킷을 이용하여 상기 제 2 디바이스에게 송신하는 단계는,
    상기 판단에 기초하여, 상기 모니터링 될 컨텐트의 암호화 키에 대한 정보를 상기 소정의 패킷을 이용하여 상기 제 2 디바이스에게 송신하는 단계를 포함하는 방법.
  6. 제 1 항에 있어서,
    상기 암호화 키에 대한 정보를 소정의 패킷을 이용하여 상기 제 2 디바이스에게 송신하는 단계는,
    상기 암호화 키에 대한 정보를 ZRTP의 컨펌 메시지를 포함하는 패킷을 이용하여 상기 제 2 디바이스에게 송신하는 것을 특징으로 하는 방법.
  7. 제 1 항에 있어서,
    상기 통신 세션의 암호화를 위한 암호화 키를 생성하는 단계는,
    상기 제 2 디바이스로부터 상기 통신 세션의 암호화를 위해 사용되는 암호화 프로토콜 버전 정보 및 상기 제 2 디바이스와의 세션을 식별하는 식별자 및 상기 제 2 디바이스가 지원하는 암호화 알고리즘에 대한 정보를 수신하는 단계;
    상기 수신된 정보에 기초하여, 상기 암호화 키를 생성하기 위한 암호화 알고리즘을 결정하는 단계; 및
    상기 결정된 암호화 알고리즘을 이용하여 상기 암호화 키를 생성하는 단계를 포함하는 방법.
  8. 암호화된 통신 세션에 대한 모니터링 지원 방법에 있어서,
    제 1 디바이스가 제 2 디바이스와의 통신 세션 개시 신호를 수신하는 단계;
    제 3 디바이스가 상기 제 1 디바이스에게 상기 통신 세션에 대한 모니터링 신호를 송신하는 단계;
    상기 제 1 디바이스가 상기 통신 세션의 암호화를 위한 암호화 키를 생성하는 단계;
    상기 제 1 디바이스가 상기 모니터링 신호의 수신 여부에 기초하여 상기 암호화 키에 대한정보를 소정의 패킷을 통해 상기 제 2 디바이스에게 송신하는 단계;
    상기 제 3 디바이스가 상기 제 1 디바이스의 주소 정보 또는 상기 제 2 디바이스의 주소 정보 중 적어도 하나에 기초하여 상기 제 2 디바이스로 송신되는 상기 소정의 패킷을 획득하는 단계; 및
    상기 소정의 패킷 내에 포함된 상기 암호화 키에 대한 정보에 기초하여 상기 통신 세션에 대한 암호화 키를 생성하는 단계를 포함하고,
    상기 제 3 디바이스는 상기 생성된 암호화 키에 기초하여 상기 통신 세션을 통해 송수신되는 암호화된 데이터를 복호화 하는 것을 특징으로 하는 방법.
  9. 제 8 항에 있어서,
    상기 암호화 키를 생성하는 단계는,
    상기 통신 세션을 통해 송수신 되는 적어도 하나의 컨텐트 각각에 대한 암호화 키를 생성하는 단계를 포함하고,
    상기 모니터링 신호의 송신하는 단계는,
    상기 적어도 하나의 컨텐트 중 어떤 컨텐트를 모니터링 할 지 여부를 결정하는 단계; 및
    상기 결정에 기초하여 모니터링 신호를 송신하는 단계를 포함하고,
    상기 암호화 키에 대한 정보를 소정의 패킷을 이용하여 상기 제 2 디바이스에게 송신하는 단계는,
    상기 수신된 모니터링 신호에 기초하여, 상기 모니터링 될 컨텐트의 암호화 키에 대한 정보를 상기 소정의 패킷을 이용하여 상기 제 2 디바이스에게 송신하는 단계를 포함하는 방법.
  10. 제 8 항에 있어서,
    상기 제 3 디바이스가 생성한 암호화 키는, 상기 제 1 디바이스가 생성한 암호화 키와 동일하고, 상기 제 2 디바이스가 생성하는 암호화 키와 상이하며,
    상기 제 3 디바이스는 상기 생성한 암호화 키에 기초하여 상기 제 1 디바이스가 상기 제 2 디바이스에게 송신하는 데이터만을 복호화 하는 것을 특징으로 하는 방법.
  11. 암호화 된 데이터 통신 세션의 모니터링을 지원하는 제 1 디바이스에 있어서,
    제 2 디바이스와의 통신 세션 개시 신호를 수신하는 수신부;
    상기 통신 세션의 암호화를 위한 암호화 키를 생성하고, 상기 통신 세션에 대한 모니터링 신호의 수신 여부를 판단하는 제어부; 및
    상기 판단에 기초하여 상기 암호화 키에 대한 정보를 소정의 패킷을 이용하여 상기 제 2 디바이스에게 송신부를 포함하는 디바이스.
  12. 제 11 항에 있어서,
    상기 제어부는,
    상기 통신 세션을 통해 송수신 되는 적어도 하나의 컨텐트 각각에 대한 암호화 키를 생성하고, 상기 적어도 하나의 컨텐트 중 어떤 컨텐트에 대한 모니터링 신호를 수신하였는지 여부를 판단하며,
    상기 송신부는,
    상기 판단에 기초하여, 상기 모니터링 될 컨텐트에 대한 암호화 키에 대한 정보를 상기 소정의 패킷을 이용하여 상기 제 2 디바이스에게 송신하는 것을 특징으로 하는 디바이스.
  13. 제 11 항에 있어서,
    상기 수신부는,
    상기 제 2 디바이스로부터 상기 통신 세션의 암호화를 위해 사용되는 암호화 프로토콜 버전 정보, 상기 제 2 디바이스와의 세션을 식별하는 식별자 및 상기 제 2 디바이스가 지원하는 암호화 알고리즘에 대한 정보를 수신하고,
    상기 제어부는,
    상기 수신된 정보에 기초하여, 상기 암호화 키를 생성하기 위한 암호화 알고리즘을 결정하고, 상기 결정된 암호화 알고리즘을 이용하여 상기 암호화 키를 생성하는 것을 특징으로 하는 디바이스.
  14. 제 1 디바이스와 제 2 디바이스 간의 암호화 된 데이터 통신 채널을 모니터링 하는 제 3 디바이스에 있어서,
    제 1 디바이스 또는 제 2 디바이스의 주소 정보를 획득하는 주소 정보 획득부;
    제 1 디바이스와 제 2 디바이스간의 통신 세션에 대한 모니터링 신호를 송신하는 송신부;
    상기 획득한 주소 정보에 기초하여, 상기 모니터링 될 통신 세션을 통해 송신되는, 상기 통신 세션의 암호화 키에 대한 정보를 포함하는 소정의 패킷을 획득하는 수신부; 및
    상기 암호화 키에 대한 정보에 기초하여, 상기 통신 세션의 암호화 키를 생성하고, 상기 생성된 암호화 키에 기초하여, 상기 통신 세션을 통해 송수신되는 암호화 된 데이터를 복호화하는 제어부를 포함하는 디바이스.
  15. 제 1 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
PCT/KR2016/005836 2015-07-06 2016-06-02 암호화된 통신 세션의 모니터링 방법, 장치 및 시스템 WO2017007132A1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/742,816 US11153287B2 (en) 2015-07-06 2016-06-02 Method, apparatus, and system for monitoring encrypted communication session
CN201680040278.9A CN107852326B (zh) 2015-07-06 2016-06-02 用于监视加密通信会话的方法、设备和计算机可读存储介质

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020150095856A KR102507113B1 (ko) 2015-07-06 2015-07-06 암호화된 통신 세션의 모니터링 방법, 장치 및 시스템
KR10-2015-0095856 2015-07-06

Publications (1)

Publication Number Publication Date
WO2017007132A1 true WO2017007132A1 (ko) 2017-01-12

Family

ID=57685856

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2016/005836 WO2017007132A1 (ko) 2015-07-06 2016-06-02 암호화된 통신 세션의 모니터링 방법, 장치 및 시스템

Country Status (4)

Country Link
US (1) US11153287B2 (ko)
KR (1) KR102507113B1 (ko)
CN (1) CN107852326B (ko)
WO (1) WO2017007132A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10630845B2 (en) * 2017-02-07 2020-04-21 Agile Interoperable Solutions, Llc Inter-operable communication system
US11539518B2 (en) * 2017-05-17 2022-12-27 Apple Inc. Time-based encryption key derivation
KR101976583B1 (ko) * 2017-08-22 2019-05-09 덕성여자대학교 산학협력단 서로 다른 안전도와 서로 다른 대역외 채널을 사용하는 사물인터넷 경량 기기 사이의 비밀키 설정 방법
EP3518489A1 (de) * 2018-01-26 2019-07-31 Siemens Aktiengesellschaft Verfahren und system zur offenlegung mindestens eines kryptographischen schlüssels
US11303447B2 (en) * 2018-05-11 2022-04-12 Syferex, LLC Authentication system using paired, role reversing personal devices
KR102412719B1 (ko) 2018-09-19 2022-06-24 한국전자통신연구원 무선 통신 시스템에서 물리 계층 보안 통신을 위한 장치 및 방법
CN114785751B (zh) * 2021-01-06 2024-04-26 腾讯科技(深圳)有限公司 消息传输方法和相关装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050063544A1 (en) * 2001-12-07 2005-03-24 Ilkka Uusitalo Lawful interception of end-to-end encrypted data traffic
JP2007267064A (ja) * 2006-03-29 2007-10-11 Hitachi Ltd ネットワークセキュリィテイ管理システム、暗号化通信の遠隔監視方法及び通信端末。
JP2008035235A (ja) * 2006-07-28 2008-02-14 Nec Infrontia Corp クライアント・サーバ分散システム、サーバ装置、クライアント装置及びそれらに用いるクライアント間rtp暗号方法
KR20140030352A (ko) * 2012-08-06 2014-03-12 주식회사 케이티 결제 및 원격 모니터링을 통한 제어용 m2m 보안 게이트웨이 장치 및 통신 시스템
KR101516909B1 (ko) * 2011-05-11 2015-05-04 알까뗄 루슨트 공개키에 의존하는 키 관리를 위한 보안 연계의 발견

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6918038B1 (en) * 1996-08-13 2005-07-12 Angel Secure Networks, Inc. System and method for installing an auditable secure network
US20030037235A1 (en) * 1998-08-19 2003-02-20 Sun Microsystems, Inc. System for signatureless transmission and reception of data packets between computer networks
US7353382B2 (en) * 2002-08-08 2008-04-01 Fujitsu Limited Security framework and protocol for universal pervasive transactions
BRPI0508922A (pt) 2004-03-18 2007-08-14 Qualcomm Inc transmissão eficiente de informações criptográficas em protoloco seguro em tempo real
US8533479B2 (en) * 2004-11-22 2013-09-10 Liaison Technologies, Inc. Translating information between computing devices having different security management
JP2008113172A (ja) * 2006-10-30 2008-05-15 Hitachi Ltd コンテンツ送信装置、コンテンツ受信装置及びコンテンツ暗号化方法
JP2008219454A (ja) 2007-03-05 2008-09-18 Hitachi Ltd 通信内容監査支援システム
KR100852146B1 (ko) 2007-11-21 2008-08-13 한국정보보호진흥원 제 3 신뢰기관을 이용한 VoIP 보안 통신에서의 감청시스템 및 감청 방법
US8788805B2 (en) 2008-02-29 2014-07-22 Cisco Technology, Inc. Application-level service access to encrypted data streams
WO2015088296A1 (ko) 2013-12-15 2015-06-18 삼성전자 주식회사 보안 통신방법 및 장치와 이를 채용하는 멀티미디어 기기
EP4242957A3 (en) * 2014-12-15 2023-11-22 Royal Bank Of Canada Verification of data processes in a network of computing resources
US10694383B2 (en) * 2015-03-23 2020-06-23 Lg Electronics Inc. Method and device for transmitting or receiving data by terminal in wireless communication system
US20160294786A1 (en) * 2015-04-02 2016-10-06 Platcomm Corp. Telecommunication System and Method Providing Unified Platform For Services Amongst Clients That Execute Browser and Non-Browser Applications

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050063544A1 (en) * 2001-12-07 2005-03-24 Ilkka Uusitalo Lawful interception of end-to-end encrypted data traffic
JP2007267064A (ja) * 2006-03-29 2007-10-11 Hitachi Ltd ネットワークセキュリィテイ管理システム、暗号化通信の遠隔監視方法及び通信端末。
JP2008035235A (ja) * 2006-07-28 2008-02-14 Nec Infrontia Corp クライアント・サーバ分散システム、サーバ装置、クライアント装置及びそれらに用いるクライアント間rtp暗号方法
KR101516909B1 (ko) * 2011-05-11 2015-05-04 알까뗄 루슨트 공개키에 의존하는 키 관리를 위한 보안 연계의 발견
KR20140030352A (ko) * 2012-08-06 2014-03-12 주식회사 케이티 결제 및 원격 모니터링을 통한 제어용 m2m 보안 게이트웨이 장치 및 통신 시스템

Also Published As

Publication number Publication date
CN107852326A (zh) 2018-03-27
US20180198766A1 (en) 2018-07-12
KR20170005605A (ko) 2017-01-16
US11153287B2 (en) 2021-10-19
CN107852326B (zh) 2021-06-08
KR102507113B1 (ko) 2023-03-07

Similar Documents

Publication Publication Date Title
WO2017007132A1 (ko) 암호화된 통신 세션의 모니터링 방법, 장치 및 시스템
WO2017003096A1 (ko) 디바이스들 간의 연결 설립 방법
WO2017018708A1 (ko) 디바이스들 간의 통신 방법 및 그 디바이스
WO2015137745A1 (en) System and method of encrypting folder in device
WO2015194836A1 (ko) 키 공유 방법 및 장치
WO2017099342A1 (ko) 임시 계정 정보를 제공하는 방법, 장치 및 시스템
WO2015163735A1 (en) Mobile device and method of sharing content
WO2016178548A1 (ko) 프로파일 제공 방법 및 장치
WO2015061941A1 (zh) 一种密钥配置方法和装置
WO2015163736A1 (en) Methods of providing social network service and server performing the same
WO2017035695A1 (zh) 信息传输方法及移动设备
WO2017119769A1 (en) Apparatus and method for detecting counterfeit advertiser in wireless communication system
WO2016003200A1 (en) Method and apparatus for installing profile for euicc
WO2015061992A1 (zh) 一种密钥配置方法、系统和装置
WO2013058423A1 (ko) 전자기기 및 전자기기의 동작 방법
WO2020197221A1 (ko) 통신 방법 및 통신 디바이스
WO2016036048A1 (en) Method and device for data encrypting
WO2019146812A1 (ko) 차량용 업데이트 시스템 및 제어 방법
WO2017034155A1 (en) Method, apparatus and system for inserting watermark data
WO2018076875A1 (zh) 备份数据的同步方法、装置、存储介质、电子设备及服务器
WO2019132555A1 (ko) 이모지가 포함된 메시지를 송수신하는 전자 장치 및 그 전자 장치를 제어하는 방법
WO2016048054A2 (ko) 데이터 통신 보안을 위한 방법, 장치 및 시스템
WO2019139247A1 (en) Electronic device for managing embedded subscriber identification module and method for same
WO2019143081A1 (ko) 데이터 통신을 제어하는 방법 및 전자 장치
WO2017135537A1 (ko) 근거리 통신을 이용한 결제 시스템 및 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16821538

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16821538

Country of ref document: EP

Kind code of ref document: A1