KR20120019206A - Diameter 프로토콜의 TLS 사용시 통신 호 끊김 방지 방법 - Google Patents

Diameter 프로토콜의 TLS 사용시 통신 호 끊김 방지 방법 Download PDF

Info

Publication number
KR20120019206A
KR20120019206A KR1020100082473A KR20100082473A KR20120019206A KR 20120019206 A KR20120019206 A KR 20120019206A KR 1020100082473 A KR1020100082473 A KR 1020100082473A KR 20100082473 A KR20100082473 A KR 20100082473A KR 20120019206 A KR20120019206 A KR 20120019206A
Authority
KR
South Korea
Prior art keywords
tls
server
message
client
diameter
Prior art date
Application number
KR1020100082473A
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 KR1020100082473A priority Critical patent/KR20120019206A/ko
Publication of KR20120019206A publication Critical patent/KR20120019206A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • H04L61/503Internet protocol [IP] addresses using an authentication, authorisation and accounting [AAA] protocol, e.g. remote authentication dial-in user service [RADIUS] or Diameter
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0892Network architectures or network communication protocols for network security for authentication of entities by using authentication-authorization-accounting [AAA] servers or protocols

Landscapes

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

Abstract

본 발명은 TCP 환경일 경우 TCP 연결 이전에 UDP를 이용하여 TLS 사용 여부 질의/응답 메시지를 통해 TLS사용여부에 대한 정보를 교환한 후 그 결과에 따라 TCP 혹은 OpenSSL 연결을 시도하는 반면, SCTP환경일 경우 Diameter CER/CEA를 통해 TLS사용여부를 파악하여 그 결과에 따라 SCTP 혹은 UDS를 이용해 OpenSSL 연결을 시도하는 Diameter 클라이언트/서버를 포함하여 구성되는 Diameter 프로토콜의 TLS 사용시 끊김을 방지하는 서버시스템 및 그 제어방법을 제공한다.
상기와 같은 구성으로 된 본 발명은 TCP/SCTP 통신 환경의 Diameter 프로토콜을 사용하는 통신시스템에서 상대방에게 Diameter 메시지를 서로 교환하여 TLS사용여부를 파악한 후 그 파악된 결과에 따라 OpenSSL 혹은 S니을 연결하든지 또는 현재 연결된 통신방식을 그대로 사용하여 데이터를 전송함으로써, TLS 사용 절차가 없었던 SCTP통신환경이나 TCP통신 환경에서 TLS를 하기 위해 현재의 연결을 끊을 필요 없이 미리 Diameter 메시지를 통해 TLS여부를 확인한 후 처리하게 되므로 그에 따라 각 통신주체간의 호연결의 신뢰성을 극대화하는 효과가 있다.

Description

Diameter 프로토콜의 TLS 사용시 끊김을 방지하는 서버시스템 및 그 제어방법{Server system for preventing a cut in using TLS of the diameter protocol and controlling method therefor}
본 발명은 Diameter 프로토콜의 TLS 사용시 끊김을 방지하는 서버시스템 및 그 제어방법에 관한 것으로, 특히 TCP/SCTP 통신환경의 Diameter 프로토콜을 사용하는 통신시스템에서 상대방에게 Diameter 메시지를 서로 교환하여 TLS 사용여부를 파악한 후 그 파악된 결과에 따라 OpenSSL을 연결하든지 또는 현재 연결된 통신방식을 그대로 사용하여 데이터를 전송하는 Diameter 프로토콜의 TLS 사용시 끊김을 방지하는 서버시스템 및 그 제어방법에 관한 것이다.
일반적으로 인터넷이 발전함으로 인해 무선에서부터 디지털 가입자 회선(DSL), 이동 인터넷 프로토콜(MIP) 및 네트워크 접속서버(NAS) 등과 같은 새로운 접속 기술이 발전함에 따라, AAA 프로토콜에 대한 새로운 요구가 증대하게 되었다. 이때, 상기와 같은 AAA 프로토콜에 대한 새로운 요구 사항에는 에러 복구 기능에서부터 전송 계층의 보안(IPsec, TLS), 신뢰성 있는 전송(TCP, SCTP), 에이전트 지원(Proxy, Redirect, Relay, Translation), 서버에서 시작되는 메시지 지원, 에이전트간의 능력 협상, 상대 노드 발견 및 구성 및 로밍(ROAMING) 지원 등을 포함하는데, IETF RFC3588의 다이아미터 베이스 프로토콜(Diameter Base Protocol)은 이러한 요구 사항들을 제공한다.
즉, 상기와 같은 다이아미터 베이스 프로토콜은 예컨대, AAA 클라이언트, AAA 서버, AAA 에이전트간의 연결을 설정한 후, 인가/인증/과금 메시지를 처리하고 에러가 발생하였을 때 복구 기능 등을 제공할 수 있는 상대 노드 상태 관리 기법에 대해 기술하고 있다.
여기서, 상기와 같은 다이아미터 프로토콜의 보안사항에 포함되는 SSL(Secure Socket Layer)과 TLS(Transport Layer Security)은 양단간 보안 기능 제공을 위한 보안 연결 및 전송 프로토콜이다. 이때, 상기 SSL(Secure Socket Layer)은 HTTP 보안을 위해 넷스케이프에서 처음 만들어진 프로토콜로 현재 V2.0, V3.0 사용 중이며, TLS(Transport Layer Security)은 SSL 3.0에서 분기된 IETF 프로토콜 표준(RFC 2248)이다. SSL 3.0의 문제점을 해결하기 위해 사용되며 현재 버전은 V1.0이 사용중이다. 그에 더하여, OpenSSL은 TCP 상에서 SSL 프로토콜을 제공하기 위한 범용 라이브러리이다. 이때, 상기 OpenSSL은 SSL/TLS 제공을 위한 오픈 소스이며, SSL V3.0/TLS V1.0을 제공하며, 지원 플랫폼으로는 Windows, Solaris, IRIX, HP-UX, LINUX, FreeBSD, OpenBSD 등이다.
그러면 상기와 같은 종래 Diameter 프로토콜을 사용하는 클라이언트/서버시스템의 보안처리방법을 도 1을 참고로 살펴보면, 예컨대, 이동 통신망에서 PDSN과 AAA서버사이에서 Diameter 프로토콜을 사용한다고 가정할 경우 PDSN을 클라이언트(70)로, AAA서버를 서버(71)로 설정할 수 있다. 이때, 상기 클라이언트(70)에서 서버(71)로 먼저, TCP 환경 하에서 연결을 수행할 경우 두 노드 간 전송 계층이 연결되었을 때 상대 노드에 능력협상 요청(Capabilities Exchange Request; 이하 CER이라함)메시지를 전송하여 상대편 서버(71)로부터 능력 협상 응답 (Capabilities Exchange Answer; 이하 CEA라함) 메시지를 기다린다. 그리고, 상기 상대편 서버(71)는 상기 CER 메시지를 수신하여 처리한 후 그 응답 메시지인 CEA를 클라이언트(70)로 전송한다.
이때, 상기 클라이언트(70)와 서버(71)는 CER/CEA 메시지에 암호화 여부를 나타내는 Inband-Security-Id 값을 바탕으로 TLS(Transport Layer Security) 사용 여부를 결정하게 된다. 그리고, 상기 클라이언트(70)와 서버(71)는 TLS를 사용 하지 않음이 확인되면 현재 연결된 TCP 연결을 통해 데이터를 전송한다. 그런데 만약, 상기 클라이언트(70)와 서버(71)가 TLS를 사용하고자 할 경우 현재 연결된 TCP 연결을 해제한 다음 암호화 연결을 위해 OpenSSL을 이용하여 재 연결을 시도한 후 성공하면 암호화된 연결을 사용하여 데이터를 전송한다.
그러나, 상기와 같은 종래 다이아미터 프로토콜을 사용하는 클라이언트/서버시스템의 보안처리방법은, TCP 환경 하에서 TLS를 할 경우에는 반드시 현재 연결된 TCP 연결을 해제한 후 다시 OpenSSL을 이용하여 재 연결을 해야 하기 때문에 통신호가 끊기는 현상이 발생하여 데이터 전송의 안정성을 매우 저하시켰으며, 뿐만 아니라, SCTP 환경 하에서는 OpenSSL을 사용할 수 없기 때문에 데이터의 보안전송에 대한 신뢰성도 상당히 저하시키는 문제점이 있었다.
이에 본 발명은 상기와 같은 제반 문제점을 해결하기위해 발명된 것으로, TLS 사용절차가 없었던 SCTP 통신환경이나 TCP 통신환경에서 TLS를 사용 하기위해 현재의 연결을 끊을 필요 없이 미리 Diameter 메시지를 통해 TLS 사용 여부를 확인한 후 처리하게 되므로 그에 따라 각 통신주체간의 호연결의 신뢰성을 극대화하는 Diameter 프로토콜의 TLS 사용시 끊김을 방지하는 서버시스템 및 그 제어방법을 제공함에 그 목적이 있다.
본 발명의 또 다른 목적은 TLS의 사용여부를 질의 확인할 수 있는 Diameter 프로토콜 메시지를 구성하여 클라이언트와 서버 간에 복잡한 절차를 거치지 않고 간편히 TLS의 사용여부를 확인하도록 함으로써, TCP/SCTP 통신환경을 최적화하는 Diameter 프로토콜의 TLS 사용시 끊김을 방지하는 서버시스템 및 그 제어방법을 제공하는데 있다.
상기와 같은 목적을 달성하기위한 본 발명은 전송 계층으로 TCP를 사용할 경일 경우, TCP 연결 이전에 UDP를 통해 새로 정의된 다이아미터 메시지를 이용하여 TLS 사용 여부에 대한 정보를 교환한 후 그 결과에 따라 TCP 혹은 OpenSSL 연결을 시도하는 반면, SCTP를 사용할 경우 Diameter CER/CEA 메시지를 통해 TLS 사용여부를 파악하여 SCTP 혹은 유닉스 도메인 소켓 (Unix Domain Socket; 이하 UDS라함)을 이용한 OpenSSL 연결을 시도하는 Diameter 클라이언트/서버를 포함하여 구성되는 Diameter 프로토콜의 TLS 사용시 끊김을 방지하는 서버시스템을 제공한다.
본 발명의 또 다른 특징은 Diameter 프로토콜을 사용하는 클라이언트와 서버 간에 설정된 호 연결을 실행하는 호연결과정과;
상기 호연결과정후에 현재 호 연결이 TCP 인지 SCTP 인지를 확인하는 통신환경확인과정과;
상기 통신환경확인과정중에 현재의 호 연결이 TCP일 경우 클라이언트와 서버 간에 TLS의 실행여부 확인이 가능한 질의 및 응답 메시지를 UDP를 이용하여 주고받는 메시지송수신과정과;
상기 메시지송수신과정중에 응답메시지 내에서 TLS의 사용할 것인지를 확인하는 TCP상에 TLS사용확인과정과;
상기 TCP상에 TLS사용확인과정중에 확인한 결과 TLS를 사용 하지 않을 경우 일반 TCP연결을 실행한 후 Diameter CER과 CEA 메시지를 교환한 다음 데이터를 송수신 처리하는 일반TCP연결과정과;
상기 TCP상에 TLS사용확인과정중에 확인한 결과 TLS을 사용할 경우 OpenSSL을 이용하여 암호화된 TCP를 연결한 후 OpenSSL 핸드세이크를 실행하고, Diameter CER과 CEA를 교환한 다음 암호화(Encryption)된 데이터를 송수신 처리하는 TLS사용 TCP연결과정과;
상기 통신환경확인과정중에 현재의 호 연결이 SCTP일 경우 이미 SCTP Association으로 연결된 상태에서 클라이언트와 서버 간에 TLS의 실행여부 확인이 가능한 Diameter CER/CEA 메시지를 교환한 후 TLS 사용여부를 결정하는 SCTP상의 TLS사용확인과정과;
상기 SCTP상의 TLS사용확인과정중에 확인한 결과 TLS을 사용할 경우 UDS를 생성하여 각 서버에서 UDS 클라이언트/서버를 구성한 후 서버 간에 SSL 핸드세이크를 실행하고, 암호화(Encryption)된 데이터를 송수신 처리하는 SCTP상의 TLS연결과정과;
상기 SCTP상의 TLS사용확인과정중에 확인한 결과 TLS을 사용하지 않을 경우 기존의 SCTP 연결을 이용해 데이터를 송수신 처리하는 일반 SCTP연결과정을 포함하여 구성되는 Diameter 프로토콜의 TLS 사용시 끊김을 방지하는 서버시스템의 제어방법을 제공한다.
상기와 같은 본 발명은 TCP/SCTP 통신환경의 Diameter 프로토콜을 사용하는 통신시스템에서 상대방에게 Diameter 메시지를 서로 교환하여 TLS사용여부를 파악한 후 그 파악된 결과에 따라 OpenSSL 또는 SSL을 연결하든지 또는 현재 연결된 통신방식을 그대로 사용하여 데이터를 전송함으로써, TCP 통신 환경에서 TLS를 하기위해 현재의 연결을 끊을 필요 없이 미리 정의된 Diameter 메시지를 통해 TLS여부를 확인한 후 처리하게 되므로 그에 따라 각 통신주체간의 호연결의 신뢰성을 극대화하는 효과가 있으며, 뿐만 아니라 SCTP 환경 하에서는 OpenSSL을 통한 보안성을 제공해줌으로써 신뢰성 있는 통신 서비스를 제공해줄 수 있다.
또한, 본 발명에 의하면, TLS의 사용여부를 질의 확인할 수 있는 Diameter 프로토콜 메시지를 구성하여 클라이언트와 서버 간에 복잡한 절차를 거치지 않고 간편히 TLS의 사용여부를 확인하도록 함으로써, TCP/SCTP 통신환경을 최적화하여 그에 따라 통신시스템의 동작 안정성도 상당히 향상시키는 효과도 있다.
도 1은 종래 다이아미터 프로토콜을 사용하는 TCP환경의 클라이언트/서버시스템을 설명하는 설명도.
도 2는 본 발명에 의한 Diameter 프로토콜의 TLS 사용시 끊김을 방지하는 서버시스템을 설명하는 설명도.
도 3은 본 발명 시스템에 적용되는 TCP 환경의 TLS 여부 질의메시지를 설명하는 설명도.
도 4는 본 발명 시스템에 적용되는 TCP 환경의 TLS 여부 응답메시지를 설명하는 설명도.
도 5는 본 발명의 플로우차트.
도 6은 본 발명에 적용되는 OpenSSL 연결 과정을 설명하는 설명도.
도 7은 본 발명 시스템에 적용되는 SCTP 프로토콜의 사용례를 설명하는 설명도.
도 8은 본 발명에서 SCTP 프로토콜을 사용하여 호의 끊김 없이 TLS 사용 및 데이터를 처리하는 방법을 설명하는 설명도.
이하, 본 발명을 첨부된 예시도면에 의거하여 상세히 설명한다.
본 발명에 의한 시스템은 도 2에 도시된 바와 같이 TCP 환경일 경우 TCP 연결 이전에 UDP를 이용하여 TLS 사용 질의/응답 메시지를 통해 TLS사용여부에 대한 정보를 교환한 후 그 결과에 따라 TCP 혹은 OpenSSL 연결을 시도하는 반면, SCTP환경일 경우 Diameter CER/CEA를 통해 TLS 사용 여부를 파악하여 그 결과에 따라 SCTP 혹은 UDS를 이용한 OpenSSL 연결을 시도하는 다이아미터 클라이언트/서버시스템(200,300)을 제공한다.
이때, 상기 TLS 사용 여부 질의메시지는 도 3에 도시된 바와 같이 Diameter Header, Origin-Host, Origin-Realm, Destination-Host, Destination-Realm, Host-IP-Address 및 Inband-Security-ID의 구조로 구성된다. 따라서, 상기 메시지 중 Header에 들어가는 Command Name은 예컨대, SER(Security Exchange Request)이고, Command Code는 예컨대, 260과 같은 값의 형태로 기입되며, Origin-Host는 SER 메시지를 전송하는 서버의 Host Name을 쓰며, Origin-Realm은 SER 메시지를 전송하는 서버의 Domain Name을 쓰고, Destination-Host는 SER 메시지를 수신하는 서버의 Host Name을 쓰며, Destination-Realm은 SER 메시지를 수신하는 서버의 Domain Name을 쓰고, Host-IP-Address는 향후 연결에 사용하게 될 IP Address인데, TCP인 경우 1개, STCP인 경우 1개 이상이며, Inband-Security-ID는 TLS의 사용여부를 확인할 수 있는 항목으로서, 0(NO_INBAND_SECURITY:사용안함)과 1(TLS사용함)으로 구성된다.
한편, 상기 TLS 사용 여부 응답메시지는 도 4에 도시된 바와 같이 Diameter Header, Result-code, Origin-Host, Origin-Realm, Destination-Host, Destination-Realm, Host-IP-Address 및 Inband-Security-ID의 구조로 구성된다. 따라서, 상기 메시지 중 Header에 들어가는 Command Name은 예컨대, SEA(Security Exchange Answer)이고, Command Code는 요청 메시지와 동일한 값으로 기입되며, Result-code는 SER 요청에 대한 처리 결과 값이고, Origin-Host는 SEA를 전송하는 서버의 Host Name을 쓰며, Origin-Realm은 SEA을 전송하는 서버의 Domain Name을 쓰고, Destination-Host는 SEA를 수신하는 서버의 Host Name을 쓰며, Destination-Realm은 SEA를 수신하는 서버의 Domain Name을 쓰고, Host-IP-Address는 향후 연결에 사용 될 IP Address인데, TCP인 경우 1개, STCP인 경우 1개 이상이며, Inband-Security-ID는 TLS의 사용여부를 확인할 수 있는 항목으로서, 0(NO_INBAND_SECURITY:사용안함)과 1(TLS사용함)으로 구성된다.
다음에는 상기와 같은 구성으로 된 본 발명의 제어방법을 설명한다.
본 발명의 방법은 도 5에 도시된 바와 같이 초기상태(S1)에서 클라이언트와 서버 간에 설정된 호연결을 실행하는 호연결과정(S2)과;
상기 호연결과정(S2)후에 현재 호연결이 TCP인지 SCTP인지를 확인하는 통신환경확인과정(S3)과;
상기 통신환경확인과정(S3)중에 현재의 호연결이 TCP일 경우 클라이언트와 서버 간에 TLS의 실행여부 확인이 가능한 질의 및 응답 메시지를 UDP를 이용하여 주고받는 메시지송수신과정(S4)과;
상기 메시지송수신과정(S4)중에 응답 메시지 내에서 TLS의 사용할 것인지를 확인하는 TCP상에 TLS사용확인과정(S5)과;
상기 TCP상에 TLS사용확인과정(S5)중에 확인한 결과 TLS사용을 하지 않을 경우 일반 TCP연결을 실행한 후 Diameter CER과 CEA 메시지를 교환한 다음 데이터를 송수신 처리하는 일반TCP연결과정(S6)과;
상기 TCP상에 TLS사용확인과정(S5)중에 확인한 결과 TLS을 사용할 경우 OpenSSL을 이용하여 암호화된 TCP를 연결한 후 OpenSSL 핸드세이크를 실행하고, Diameter CER과 CEA 메시지를 교환한 다음 암호화(Encryption)된 데이터를 송수신 처리하는 TLS사용 TCP연결과정(S7)과;
상기 통신환경확인과정(S3)중에 현재의 호 연결이 SCTP일 경우 이미 SCTP Association으로 연결된 상태에서 클라이언트와 서버 간에 TLS의 실행여부 확인이 가능한 Diameter CER/CEA 메시지를 교환한 후 TLS 사용여부를 결정하는 SCTP상의 TLS사용확인과정(S8)과;
상기 SCTP상의 TLS사용확인과정(S8)중에 확인한 결과 TLS를 사용할 경우 UDS를 생성하여 각 서버에서 UDS 클라이언트/서버를 구성한 후 서버 간에 SSL 핸드세이크를 실행하고, 암호화(Encryption)된 데이터를 송수신 처리하는 SCTP상의 TLS연결과정(S9)과;
상기 SCTP상의 TLS사용확인과정(S8)중에 확인한 결과 TLS을 사용하지 않을 경우 기존의 SCTP 연결을 이용하여 데이터를 송수신 처리하는 일반SCTP연결과정(S10)을 포함하여 구성된다.
TLS사용여부 질의 및 응답 메시지
여기서, 상기 메시지송수신과정(S4)의 TLS 사용 여부 질의 및 응답 메시지에 적용되는 SER/SEA 메시지의 기능에는 1) Origin-Host/Origin-Realm을 이용하여 SER/SEA 메시지를 전송하는 서버가 수신 쪽에 등록된 서버인지 검증하는 단계와,
2)Destination-Host/Destination-Realm을 이용하여 SER/SEA 메시지를 수신한 서버가 정상 요청인지를 검증하는 단계와,
3) Host-IP-Address 정보를 통해 향후 서버 간에 연동될 IP주소에 대한 정보를 미리 획득하는 단계와,
4)Inband-Security-ID의 값을 통해 TLS 사용 여부를 확인하는 단계를 포함하여 구성된다.
TLS사용 TCP연결의 OpenSSL과정
상기 TLS사용 TCP연결과정(S7)에는 TCP 상에 인터넷 도메인 소켓을 이용해서 OpenSSL을 사용할 경우, 도 6에 도시된 바와 같이 제1단계(S71)로 진행하여 클라이언트(200)가 서버(300)로 클라이언트_헬로우(Client_hello) 메시지를 전송하고, 상기 서버(300)는 그 응답으로 클라이언트(200)로 서버_헬로우(Server_hello) 메시지를 전송한다. 또한, 상기와 같은 제1 단계(S71)의 수행에 따라, 클라이언트(200)와 서버(300)간에 프로토콜 버전(Protocol Version), 세션ID, 암호조합, 압축방법, 초기 랜덤수 등에 대한 정보교환을 완료한다. 그러면, 상기 서버(300)는 상기 제2단계(S72)중에 클라이언트(200)로 인증메시지(Certificated)를 전송한 후 서버_키_교환(Server_key_exchange) 메시지, 인증_요청(Certificate_request) 메시지, 서버_헬로우_완료(Server_hello_done) 메시지를 차례로 전송하여 인증 및 키 교환과정을 완료한다.
한편, 상기와 같은 제2단계(S72)후에 클라이언트(200)는 제3단계(S73)로 진행하여 서버(300)로 인증메시지(Certificated)를 전송한 후 클라이언트_키_교환(Client_key_exchange) 메시지, 클라이언트_확인(Client_verify) 메시지를 차례로 전송하여 인증 및 키 교환과정을 완료한다. 또한, 상기 제3단계(S73)후에, 클라이언트(200)는 제4단계(S74)로 진행하여 서버(300)로 체인지_암호_스펙(Change_cipher_spec) 메시지, 종료(Finished) 메시지를 차례로 전송한다. 그리고, 상기와 같은 제4단계(S74)중에 서버(300)는 클라이언트(200)로 체인지_암호_스펙(Change_cipher_spec) 메시지, 종료(Finished) 메시지를 차례로 전송하여 서버와 클라이언트가 암호 조합 교환, 핸드세이크 프로토콜 종료를 완료한다.
SCTP환경하의 TLS연결
상기 SCTP상의 TLS연결과정(S9)에는. 도 7과 도 8에 도시된 바와 같이 다이아미터 클라이언트 (Diameter Client, 200)와 다이아미터 서버(Diameter Server, 300)간에 정상적인 어소시에이션(Accociation) 연결을 실행하는 제1단계(S101)와;상기 제1단계(S101)에 의해 어소시에이션(Accociation)을 연결한 후에 CER(Capability Exchange Request) / CEA(Capability Exchange Answer)교환 후 TLS 사용여부를 질의하는 제2 단계(S102)를 실행한다.
한편, 상기 제2 단계(S102)후에 SCTP 환경 상에서 TLS를 사용할 경우, Diameter 클라이언트(200)와 Diameter 서버(300)가 각각 제 1 UDS 및 제 2 UDS를 생성하여 내부적으로 UDS 클라이언트와 UDS 서버를 생성하는 제3 단계(S103)를 실행한다. 그리고, 상기 제3 단계(S103)의 실행 후에 Diameter 클라이언트(200)와 Diameter 서버(300)간에 SSL 핸드쉐이크(SSL Handshake)를 수행하여 암호화된 데이터(Data)의 송수신을 실행하는 제4단계(S104)를 수행한다.
여기서, 상기 SCTP상의 TLS연결과정(S9)의 SSL단계들은 도 6에 도시된 바와 같이 제1단계(S111)로 진행하여 클라이언트(200)가 서버(300)로 클라이언트_헬로우(Client_hello) 메시지를 전송하고, 상기 서버(300)는 그 응답으로 클라이언트(200)로 서버_헬로우(Server_hello) 메시지를 전송한다. 또한, 상기와 같은 제1 단계(S111)의 수행에 따라, 클라이언트(200)와 서버(300)간에 프로토콜 버전(Protocol Version), 세션ID, 암호조합, 압축방법, 초기 랜덤수 등에 대한 정보교환을 완료한다. 그러면, 상기 서버(300)는 상기 제2단계(S112)중에 클라이언트(200)로 인증메시지(Certificated)를 전송한후 서버_키_교환(Server_key_exchange) 메시지, 인증_요청(Certificate_request) 메시지, 서버_헬로우_완료(Server_hello_done) 메시지를 차례로 전송하여 인증 및 키 교환과정을 완료한다.
한편, 상기와 같은 제2단계(S112)후에 클라이언트(200)는 제3단계(S113)로 진행하여 서버(300)로 인증메시지(Certificated)를 전송한 후 클라이언트_키_교환(Client_key_exchange) 메시지, 클라이언트_확인(Client_verify) 메시지를 차례로 전송하여 인증 및 키 교환과정을 완료한다. 또한, 상기 제3단계(S113)후에, 클라이언트(200)는 제4단계(S114)로 진행하여 서버(300)로 체인지_암호_스펙(Change_cipher_spec) 메시지, 종료(Finished) 메시지를 차례로 전송한다. 그리고, 상기와 같은 제4단계(S114)중에 서버(300)는 클라이언트(200)로 체인지_암호_스펙(Change_cipher_spec) 메시지, 종료(Finished) 메시지를 차례로 전송하여 서버와 클라이언트가 암호 조합 교환, 핸드쉐이크 프로토콜 종료를 완료한다.
즉, 상기 SCTP연결과정을 다시 한 번 정리하여 설명하면 다음과 같다.
본 발명의 실시 예에 따른 SCTP 상에 유닉스 도메인 소켓은 OpenSSL과 같은 인터넷 소켓(Internet Socket) 응용 프로그램 인터페이스(Application Program Interface: API)를 사용 시 수정 없이 이용 가능하다. 한편, 유닉스 도메인 소켓은 IP 어드레스(IP Address), 포트(Port) 기반의 인터넷 도메인 소켓(Internet Domain Socket: IDS)에 비해서 로컬 시스템의 임의 생성된 파일을 이용해서 내부 프로세서간의 통신을 위해 사용한다는 점이 인터넷 도메인 소켓과 비교해 다른 점이다.
구체적으로 유닉스 도메인 소켓과 인터넷 도메인 소켓의 차이점을 비교해 보면, 첫째로, Sockaddr 구조체에 대해서, 인터넷 도메인 소켓의 경우 소켓어드레스_인(sockaddr_in)으로 형성되며, 유닉스 도메인 소켓의 경우 소켓어드레스_언(sockaddr_un)으로 형성된다.
둘째로, 소켓(Socket) 구조에 대해서, 인터넷 도메인 소켓의 경우 socket(AF_INEF, SOCK_STREAM, 0)으로 형성되며, 유닉스 도메인 소켓의 경우 socket(AF_UNIX, SOCK_STREAM, 0)으로 형성된다.
셋째로, 서버 바인드(Bind)와 클라이언트 커넥트(Connect)에 대해서, 인터넷 도메인 소켓의 경우 IP 어드레스(IP Address) 및 포트(Port)를 사용하며, 유닉스 도메인 소켓의 경우 파일 이름(File Name)을 이용한다.
한편, 종래기술의 문제점이 이었던 OpenSSL이 TCP 상에 SSL 프로토콜만을 제공하기 때문에 다중 연결(Multi-homming) 및 RAW IP를 사용하는 SCTP 프로토콜 상에서는 OpenSSL을 이용한 TLS/SSL의 암호화 방식을 사용할 수 없었지만, 본원발명에서는 이를 개선하게 되는데, 그 방법은 SCTP상에서 OpenSSL을 사용가능 하도록 하기 위해 기존의 인터넷 도메인 소켓 대신에 단일 서버 내에서 유닉스 도메인 소켓(Unix Domain Socket: UDS)을 이용하여, 유닉스 도메인 소켓 설정을 통해 얻은 파일 디스크립터(File Descriptor: FD)를 OpenSSL 설정에 이용한다. 이를 위해, 단일 서버내의 프로토콜 계층은 유닉스 도메인 소켓 설정을 위하여 UDS 클라이언트 및 UDS 서버로 구성된다. 이에 따른 활용범위로, SIGTRAN(Signaling Transport), SIP(Session Initiation Protocol), 다이어미터(DIAMETER) 등 SCTP 프로토콜을 사용하는 다양한 통신 프로토콜 상에서 OpenSSL을 이용하여 암호화 서비스 제공을 위한 TLS 및 SSL 사용이 가능하다. 제안방식은 CER/CEA 후 TLS 사용할 경우, 유닉스 도메인 소켓을 생성하여 연결 해제 후 재 연결을 수행하지 않으므로 끊김 없는 서비스 제공이 가능하다.
200: 클라이언트 300: 서버

Claims (6)

  1. TCP 환경일 경우 TCP 연결 이전에 UDP를 이용한 TLS 사용 여부 질의/응답 메시지를 통해 TLS 사용 여부에 대한 정보를 교환한 후 그 결과에 따라 TCP 혹은 OpenSSL 연결을 시도하는 반면, SCTP 환경일 경우 Diameter CER/CEA를 통해 TLS사용여부를 파악하여 그 결과에 따라 SCTP 혹은 UDS를 이용하여 OpenSSL 연결을 시도하는 Diameter 클라이언트/서버를 포함하여 구성되는 Diameter 프로토콜의 TLS 사용시 끊김을 방지하는 서버시스템.
  2. 제1항에 있어서, 상기 TLS 여부 질의 메시지는 Diameter Header, Origin-Host, Origin-Realm, Destination-Host, Destination-Realm, Host-IP-Address 및 Inband-Security-ID의 구조로 구성되고,
    상기 TLS 여부 응답 메시지는 Diameter Header, Result-Code, Origin-Host, Origin-Realm, Destination-Host, Destination-Realm, Host-IP-Address 및 Inband-Security-ID의 구조로 구성되는 것을 특징으로 하는 Diameter 프로토콜의 TLS 사용시 끊김을 방지하는 서버시스템.
  3. Diameter 프로토콜을 사용하는 클라이언트와 서버 간에 설정된 호연결을 실행하는 호연결과정과;
    상기 호연결과정후에 현재 호연결이 TCP인지 SCTP인지를 확인하는 통신환경확인과정과;
    상기 통신환경확인과정중에 현재의 호연결이 TCP일 경우 클라이언트와 서버 간에 TLS의 실행여부 확인이 가능한 질의 및 응답 메시지를 주고받는 메시지송수신과정과;
    상기 메시지송수신과정중에 응답 메시지 내에서 TLS의 사용할 것인지를 확인하는 TCP상에 TLS사용확인과정과;
    상기 TCP상에 TLS사용확인과정중에 확인한 결과 TLS사용을 하지 않을 경우 일반 TCP연결을 실행한 후 Diameter CER과 CEA를 교환한 다음 데이터를 송수신 처리하는 일반TCP연결과정과;
    상기 TCP상에 TLS사용확인과정중에 확인한 결과 TLS을 사용할 경우 OpenSSL을 이용하여 암호화된 TCP를 연결한 후 OpenSSL 핸드세이크를 실행하고, Diameter CER과 CEA를 교환한 다음 암호화(Encryption)된 데이터를 송수신 처리하는 TLS사용 TCP연결과정과;
    상기 통신환경확인과정중에 현재의 호연결이 SCTP일 경우 이미 SCTP Association으로 연결된 상태에서 클라이언트와 서버 간에 TLS의 실행여부 확인이 가능한 Diameter CER(Capability Exchange Request) / CEA(Capability Exchange Answer)교환한 후 TLS 사용여부를 결정하는 SCTP상의 TLS사용확인과정과;
    상기 SCTP상의 TLS사용확인과정중에 확인한 결과 TLS을 사용할 경우 UDS를 생성하여 각 서버에서 UDS 클라이언트/서버를 구성한 후 서버 간에 SSL 핸드세이크를 실행하고, 암호화(Encryption)된 데이터를 송수신 처리하는 SCTP상의 TLS연결과정과;
    상기 SCTP상에 TLS사용확인과정중에 확인한 결과 TLS을 사용하지 않을 경우 기존 SCTP연결을 이용해 데이터를 송수신 처리하는 일반 SCTP연결과정을 포함하여 구성되는 Diameter 프로토콜의 TLS 사용시 끊김을 방지하는 서버시스템의 제어방법.
  4. 제3항에 있어서, 상기 메시지송수신과정의 TLS 사용 여부 질의 및 응답 메시지에 적용되는 SER/SEA 메시지 기능에는
    1) Origin-Host/Origin-Realm을 이용하여 SER/SEA 메시지를 전송하는 서버가 수신 쪽에 등록된 서버인지를 검증하는 단계와,
    2)Destination-Host/Destination-Realm을 이용하여 SER/SEA 메시지를 수신하는 서버가 정상 요청인지를 검증하는 단계와,
    3) Host-IP-Address 정보를 통해 향후 서버간에 연동될 IP주소에 대한 정보를 미리 획득하는 단계와,
    4)Inband-Security-ID의 값을 통해 TLS 사용 여부를 확인하는 단계를 포함하여 구성되는 것을 특징으로 하는 Diameter 프로토콜의 TLS 사용시 끊김을 방지하는 서버시스템의 제어방법.
  5. 제3항에 있어서, 상기 TCP상의 TLS연결과정에는 TCP 상에 인터넷 도메인 소켓을 이용해서 OpenSSL을 사용할 경우, 클라이언트가 서버로 클라이언트_헬로우(Client_hello) 메시지를 전송하는 제1단계(S71)와;
    상기 제1단계(S71)후에 서버가 클라이언트로 서버_헬로우(Server_hello) 메시지를 전송하는 제2단계(S72)와;
    상기와 같은 제1 내지 제2 단계(S71 및 S72)의 수행에 따라, 클라이언트와 서버 간에 프로토콜 버전(Protocol Version), 세션ID, 암호조합, 압축방법, 초기 랜덤수 등에 대한 정보교환을 완료한 후 서버가 클라이언트로 인증메시지(Certificated)를 전송하는 제3단계(S3)와;
    상기 제3단계(S3)후에 서버는 서버_키_교환(서버_key_exchange) 메시지, 인증_요청(Certificate_request) 메시지, 서버_헬로우_완료(Server_hello_done) 메시지를 차례로 전송하여 인증 및 키 교환과정을 완료하는 제4단계(S74)와;
    상기 제4단계(S74)후에 클라이언트가 서버로 인증메시지(Certificated)를 전송한 후 클라이언트_키_교환(클라이언트_key_exchange) 메시지, 클라이언트_확인(클라이언트_verify) 메시지를 차례로 전송하여 인증 및 키 교환과정을 완료하는 제5단계와;
    상기 제5단계(S75)후에, 클라이언트가 서버로 체인지_암호_스펙(Change_cipher_spec) 메시지, 종료(Finished) 메시지를 차례로 전송하는 제6단계(S76)와;
    상기 제6단계(S76)후에 서버가 클라이언트로 체인지_암호_스펙(Change_cipher_spec) 메시지, 종료(Finished) 메시지를 차례로 전송하여 서버와 클라이언트는 암호 조합 교환, 핸드쉐이크 프로토콜 종료를 완료하는 제7단계(S77)를 포함하여 구성되는 것을 특징으로 하는 Diameter 프로토콜의 TLS사용시 끊김을 방지하는 서버시스템의 제어방법.
  6. 제3항에 있어서, 상기 SCTP상의 TLS연결과정에는. 다이아미터 클라이언트와 다이아미터 서버간에 정상적인 어소시에이션(Accociation)을 연결하는 제 1단계와,
    상기 제1단계의 실행 후에 CER/CEA를 교환하는 제 2단계와,
    상기 제2단계 후에 SCTP환상에서 TLS를 사용할 경우, Diameter 서버와 Diameter 클라이언트가 각각 제 1 UDS 및 제 2 UDS를 생성하여 내부적으로 UDS 클라이언트와 UDS 클라이언트를 생성하는 제3 단계와
    상기 제3단계의 실행 후에 Diameter 서버와 Diameter 클라이언트 간에 SSL 핸드쉐이크(SSL Handshake)를 수행한 뒤, 암호화된 데이터의 송수신을 실행하는 제4단계를 포함하여 구성되는 것을 특징으로 하는 Diameter 프로토콜의 TLS 사용시 끊김을 방지하는 서버시스템의 제어방법.
KR1020100082473A 2010-08-25 2010-08-25 Diameter 프로토콜의 TLS 사용시 통신 호 끊김 방지 방법 KR20120019206A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100082473A KR20120019206A (ko) 2010-08-25 2010-08-25 Diameter 프로토콜의 TLS 사용시 통신 호 끊김 방지 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100082473A KR20120019206A (ko) 2010-08-25 2010-08-25 Diameter 프로토콜의 TLS 사용시 통신 호 끊김 방지 방법

Publications (1)

Publication Number Publication Date
KR20120019206A true KR20120019206A (ko) 2012-03-06

Family

ID=46128229

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100082473A KR20120019206A (ko) 2010-08-25 2010-08-25 Diameter 프로토콜의 TLS 사용시 통신 호 끊김 방지 방법

Country Status (1)

Country Link
KR (1) KR20120019206A (ko)

Similar Documents

Publication Publication Date Title
EP2850776B1 (en) Tls abbreviated session identifier protocol
US9350708B2 (en) System and method for providing secured access to services
US8639936B2 (en) Methods and entities using IPSec ESP to support security functionality for UDP-based traffic
US9088416B2 (en) Method for securely associating data with HTTP and HTTPS sessions
EP1374533B1 (en) Facilitating legal interception of ip connections
EP2909988B1 (en) Unidirectional deep packet inspection
JP2006524017A (ja) 公的認証サーバで無線lanアクセスを制御するidマッピング機構
WO2014056454A1 (zh) Ike报文协商的方法及***
WO2010083671A1 (zh) 一种网络安全的http协商的方法及其相关装置
WO2011041962A1 (zh) 一种支持合法监听的端到端会话密钥协商方法和***
WO2006048725A2 (en) Method for negociating multiple security associations in advance for usage in future secure communication
WO2004008715A1 (en) Eap telecommunication protocol extension
CN109040059B (zh) 受保护的tcp通信方法、通信装置及存储介质
CN101527907B (zh) 无线局域网接入认证方法及无线局域网***
CN116746182A (zh) 安全通信方法及设备
CN113055971A (zh) 基于专用ssid来将智能终端接入网络的方法和装置
JP4619059B2 (ja) 端末装置、ファイアウォール装置、及びファイアウォール装置制御のための方法、並びにプログラム
CN110120907B (zh) 一种基于提议组的IPSec VPN隧道的通信方法及装置
WO2002043427A1 (en) Ipsec connections for mobile wireless terminals
CN116325848A (zh) 配置用户设备、与网络实体协商并管理连接的方法及相关装置
JP2013102454A (ja) Tcp通信方式
CN114765805A (zh) 一种通信方法、网络设备、基站及计算机可读存储介质
KR20120019206A (ko) Diameter 프로토콜의 TLS 사용시 통신 호 끊김 방지 방법
KR101730405B1 (ko) 네트워크 경로를 관리하는 방법 및 이를 수행하는 네트워크 엔티티
JP2006345302A (ja) ゲートウェイ装置およびプログラム

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
NORF Unpaid initial registration fee