KR101330832B1 - 클라우드 서버 및 클라이언트의 요청을 처리하는 방법 - Google Patents
클라우드 서버 및 클라이언트의 요청을 처리하는 방법 Download PDFInfo
- Publication number
- KR101330832B1 KR101330832B1 KR1020120005452A KR20120005452A KR101330832B1 KR 101330832 B1 KR101330832 B1 KR 101330832B1 KR 1020120005452 A KR1020120005452 A KR 1020120005452A KR 20120005452 A KR20120005452 A KR 20120005452A KR 101330832 B1 KR101330832 B1 KR 101330832B1
- Authority
- KR
- South Korea
- Prior art keywords
- client
- bulletin board
- request
- business logic
- virtualization
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Bioethics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Quality & Reliability (AREA)
- Information Transfer Between Computers (AREA)
Abstract
클라우드 서버가 개시된다. 본 클라우드 서버는 데이터가 저장된 저장부; 및, 클라이언트에게 가상화 게시판을 제공하고 상기 가상화 게시판을 통해 클라이언트 요청이 입력되면 상기 클라이언트 요청을 검증하며, 검증 결과에 따라 상기 클라이언트 요청에 대응되는 데이터를 상기 저장부로부터 독출하여 상기 가상화 게시판에 표시하는 제어부;를 포함한다.
Description
본 발명은 서버 및 클라이언트의 요청을 처리하는 방법에 관한 것으로 더욱 상세하게는 가상화 게시판을 통해 클라이언트 요청을 입력받고 검증하여 응답하는 클라우드 서버 및 클라이언트의 요청을 처리하는 방법에 관한 것이다.
클라이언트-서버 시스템(Client-Server System)은 오늘날 네트워크 상에서 이루어지는 대부분의 웹 서비스의 기본 모델이 되고 있다. 클라이언트(Client)는 서비스를 요청(Request)하는 구성이며, 대체로 적은 자원을 갖고 서버로부터 특정 서비스를 수신한다. 서버(Server)는 보통 많은 자원을 갖고, 클라이언트의 요청에 응답(Response)한다. 서버는 많은 자원과 높은 컴퓨팅 능력을 갖고 있으므로, 일반적으로 하나의 서버는 여러 클라이언트에게 서비스를 제공한다.
종래의 클라이언트-서버 시스템에서 서버는 비록 많은 자원을 갖고 있지만, 클라이언트 역시 일정 부분 자원을 갖고 있는 경우가 대부분이었다. 즉, 클라이언트는 서버에로부터 요청한 서비스에 대한 응답이 온 경우 응답을 별도로 처리하여 클라이언트의 자원으로 보유하는 경우가 많았다. 이는 서버뿐 아니라 클라이언트도 일정 이상의 데이터 저장 능력을 갖추어야 함을 의미한다. 따라서, 클라이언트의 정보보안 문제가 중요하게 취급되었다. 즉, 서버가 클라이언트의 요청이 정당한지 의심하는 것과 마찬가지로 클라이언트는 서버의 서비스가 정당한 것인지에 대해 판단해야 했다. 개인용 PC에 감염되는 스파이웨어, 바이러스, 악성코드 등이 네트워크 보안의 중요한 문제로 다루어졌던 것도 이러한 이유에서다.
그러나, 근래에 주목받고 있는 클라우딩 컴퓨팅 환경에서는 상대적으로 서버의 정보보안 문제에 관심이 집중되고 있다. 클라우딩 컴퓨팅 환경은 서버가 대부분의 자원을 보유하는 반면, 클라이언트는 서버에 자원에 두고, 이용하는 형태로 이루어지기 때문이다. 일 예로 클라우드 서버가 게시판을 생성하여 제공하는 서비스를 하는 경우를 생각해볼 수 있다.
클라우드 서버가 게시판을 생성하여 제공하는 서비스를 하는 경우 오픈 소스 정책(Open Source Policy)과 클로즈드 소스 정책(Closed Source Policy) 중 어느 정책을 따를지는 중요한 이슈가 될 수 있다. 오픈 소스 정책(Open Source Policy)은 프로그램의 소스코드를 공개하여 사용자들이 편리하게 프로그램을 수정하여 이용할 수 있게 하는 정책을 말한다. 클로즈드 소스 정책(Closed Source Policy)은 이와 반대 개념으로 프로그램의 소스코드를 비공개하여 프로그램을 개발한 사람만이 프로그램 수정을 할 수 있도록 하는 정책이다. 클로즈드 소스 정책은 소스 코드가 비공개되므로 소스 코드의 보안 취약점도 알려지지 않게 되므로 보안의 측면에서 유리하다. 그러나, 개발자마다 프로그램의 소스코드가 다르므로 서버에서 어떤 개발자의 프로그램을 사용하느냐에 따라 게시판의 이용 규칙이 달라질 수 있다. 그러므로, 여러 클라이언트가 하나 이상의 서버의 자원을 공유하는 클라우드 서버에서는 호환성이 떨어지는 문제가 생기게 된다. 또한, 소스코드가 공개되지 않으므로 사용자들이 서비스의 특성에 맞도록 게시판을 구축하는 것이 어렵다. 반면, 오픈소스를 기반으로 하는 클라우드 서버는 이런 문제를 해결한다. 즉, 소스코드가 공개되므로 어느 개발자라도 손쉽게 서비스의 성격에 부합하도록 게시판을 구축할 수 있게 되고, 이렇게 구축된 게시판은 동일한 소스코드를 공유하므로 클로즈드 소스 정책을 따르는 경우와 비교해서 호환성이 향상된다.
그러나, 오픈 소스에 기반한 게시판은 소스코드가 공개되므로 소스코드가 갖고 있는 보안 취약점 역시 공개되는 문제가 있다. 우선 소스코드가 공개되면 해커들에게 보안의 취약성이 발견되는 시점이 빠르므로, 대응책이 마련되기도 전에 해킹이 이루어지는 제로데이공격(Zero-Day Attack)에 취약한 문제가 있다. 또한, 보안의 취약성이 소스코드의 구조적인 문제에 기인하는 경우, 취약성 극복이 어려울 수도 있다. 특히, 클라우드 서비스는 다수의 클라이언트가 동일한 서버에 데이터를 저장하게 되므로 보안의 취약점이 발견되는 경우 광범위한 피해를 입을 수 있다.
본 발명은 상술한 필요성에 따라 안출된 것으로, 본 발명의 목적은, 가상화 게시판을 통해 클라이언트 요청을 입력받고 검증하여 응답할 수 있는 클라우드 서버 및 클라이언트의 요청을 처리하는 방법에 관한 것이다.
이상과 같은 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 클라우드 서버는 데이터가 저장된 저장부; 및, 클라이언트에게 가상화 게시판을 제공하고 상기 가상화 게시판을 통해 클라이언트 요청이 입력되면 상기 클라이언트 요청을 검증하며, 검증 결과에 따라 상기 클라이언트 요청에 대응되는 데이터를 상기 저장부로부터 독출하여 상기 가상화 게시판에 표시하는 제어부;를 포함한다.
상기 제어부는, 상기 가상화 게시판을 생성하여 상기 클라이언트에게 제공하며, 상기 클라이언트 요청이 전송되면 상기 클라이언트 요청을 검증하는 가상화 게시판 프로세서; 및 상기 클라이언트 요청이 검증되면 상기 클라이언트 요청에 대응되는 비즈니스 로직을 호출하고, 호출된 비즈니스 로직에 대응되는 데이터를 상기 저장부로부터 독출하여, 독출된 데이터를 검증하는 비즈니스 로직 프로세서;를 포함할 수 있다.
상기 가상화 게시판 프로세서는 상기 클라이언트 요청의 신뢰성 및 유효성을 검증하고, 검증이 성공하면 상기 클라이언트 요청을 상기 비즈니스 로직 프로세서로 포워딩하며, 검증에 실패하면 상기 가상화 게시판에 오류 메시지를 표시하고, 상기 비즈니스 로직 프로세서는 상기 가상화 게시판 프로세서로부터 포워딩된 상기 클라이언트 요청에 대응되는 비즈니스 로직을 상기 저장부로부터 호출하고, 상기 호출된 비즈니스 로직에 대응되는 데이터를 상기 저장부로부터 독출하며 독출된 데이터를 검증하여, 검증이 성공하면 상기 클라이언트 요청에 대응되는 데이터를 상기 가상화 게시판에 표시하며, 상기 검증에 실패하면 상기 가상화 게시판에 오류 메시지를 표시하도록 가상화 게시판 프로세서를 제어할 수 있다.
상기 가상화 게시판 프로세서는 상기 클라이언트 요청의 신뢰성을 검증하고, 상기 비즈니스 로직 프로세서는 상기 클라이언트 요청의 유효성 및 상기 클라이언트 요청에 대응되는 비즈니스 로직에 의해 참조되는 데이터의 무결성을 검증할 수 있다.
또한, 상기 클라이언트 요청은 API(Application Programming Interface)를 통해 입력될 수 있다.
이상과 같은 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 클라이언트의 요청을 처리하는 방법은 클라이언트의 요청을 입력받는 단계; 상기 클라이언트의 요청을 검증하는 단계; 및 상기 클라이언트의 요청의 검증 결과에 따라 상기 클라이언트 요청에 대응되는 데이터를 상기 저장부로부터 독출하여 상기 가상화 게시판에 표시하는 단계;를 포함한다.
상기 가상화 게시판에 표시하는 단계는, 상기 클라이언트의 요청이 검증되면, 상기 클라이언트 요청에 대응되는 비즈니스 로직을 호출하는 단계; 상기 비즈니스 로직에 대응되는 데이터를 상기 저장부로부터 독출하는 단계; 상기 독출된 데이터를 검증하는 단계; 및 상기 가상화 게시판을 생성하여 상기 독출된 데이터를 표시하는 단계;를 포함할 수 있다.
상기 클라이언트의 요청을 검증하는 단계는, 상기 클라이언트 요청의 신뢰성 및 유효성을 검증하고, 검증이 성공하면, 상기 클라이언트 요청을 상기 비즈니스 로직 프로세서로 포워딩하며, 검증에 실패하면 상기 가상화 게시판에 오류 메시지를 표시하고, 상기 독출된 데이터를 검증하는 단계는, 상기 클라이언트 요청에 대응되는 비즈니스 로직에 의해 참조되는 데이터의 무결성을 검증하고, 상기 데이터를 표시하는 단계는, 독출된 데이터의 검증이 완료되면 상기 클라이언트 요청에 대응되는 데이터를 상기 가상화 게시판에 표시하며, 상기 검증에 실패하면 상기 가상화 게시판에 오류 메시지를 표시할 수 있다.
또한, 상기 클라이언트 요청은 API(Application Programming Interface)를 통해 입력될 수 있다.
본 발명의 다양한 실시 예에 따르면 가상화 게시판을 통해 클라이언트 요청을 입력받고 검증하여 응답함으로써, 클라우드 컴퓨팅 환경에서 오픈소스 게시판의 보안의 취약점을 극복하고, 서버의 부하를 줄일 수 있다.
도 1은 본 발명의 일 실시 예에 따른 클라우드 서버의 개념도
도 2는 도 1의 클라우드 서버의 구성을 나타낸 블록도
도 3은 본 발명의 일 실시 예에 따른 클라이언트의 요청을 처리하는 방법을 나타낸 흐름도
도 4는 본 발명의 다른 실시 예에 따른 클라우드 서버의 구성을 나타낸 블록도
도 5는 도 4의 실시 예에서 클라우드 서버가 클라이언트 요청을 처리하는 것을 나타낸 개념도
도 6은 본 발명의 다른 실시 예에 따른 클라이언트의 요청을 처리하는 방법을 나타낸 흐름도
도 2는 도 1의 클라우드 서버의 구성을 나타낸 블록도
도 3은 본 발명의 일 실시 예에 따른 클라이언트의 요청을 처리하는 방법을 나타낸 흐름도
도 4는 본 발명의 다른 실시 예에 따른 클라우드 서버의 구성을 나타낸 블록도
도 5는 도 4의 실시 예에서 클라우드 서버가 클라이언트 요청을 처리하는 것을 나타낸 개념도
도 6은 본 발명의 다른 실시 예에 따른 클라이언트의 요청을 처리하는 방법을 나타낸 흐름도
이하에서는 첨부된 도면을 참조하며 본 발명을 좀 더 상세하게 설명한다.
도 1은 본 발명의 일 실시 예에 따른 클라우드 서버(100)의 개념도이고, 도 2는 도 1의 클라우드 서버(100)의 구성을 나타낸 블록도이다.
도 1 내지 2를 참조하면, 본 발명의 일 실시 예에 따른 클라우드 서버(100)는 데이터가 저장된 저장부(110)와, 클라이언트(200-1, 200-2) 요청을 검증하여 응답하는 제어부(120)를 포함한다.
저장부(110)는 데이터를 저장하는 구성으로, 클라우드 서버(100)가 서비스를 제공하기 위한 모든 종류의 데이터를 저장할 수 있다. 예를 들면, 클라우드 서버(100)가 클라이언트(200-1, 200-2)에서 접근 가능한 게시판을 제공하는 경우, 저장부(110)는 게시판을 통한 클라이언트(200-1, 200-2)의 요청에 대한 응답으로 제공할 수 있는 데이터를 저장할 수 있다. 또한, 특정한 서비스를 제공하기 위해 프로그램의 여러 논리 단계로 구성된 비즈니스 로직을 저장할 수 있다.
제어부(120)는 클라우드 서버(100)의 전반을 제어하는 구성으로, 구체적으로 클라이언트(200-1, 200-2)에게 가상화 게시판(130)을 생성하여 제공하고, 가상화 게시판(130)을 통해 클라이언트(200-1, 200-2) 요청을 입력받는다. 제어부(120)는 클라이언트(200-1, 200-2) 요청을 검증하며, 검증 결과에 따라 클라이언트(200-1, 200-2) 요청에 대응되는 데이터를 저장부(110)로부터 독출하여 가상화 게시판(130)에 표시할 수 있다.
클라우드 서버(100)가 게시판을 생성하여 제공하는 서비스를 하는 경우 오픈 소스 정책(Open Source Policy)과 클로즈드 소스 정책(Closed Source Policy) 중 어느 정책을 따를지는 중요한 이유가 될 수 있다. 오픈 소스 정책(Open Source Policy)은 프로그램의 소스코드를 공개하여 사용자들이 편리하게 프로그램을 수정하여 이용할 수 있게 하는 정책을 말한다. 클로즈드 소스 정책(Closed Source Policy)은 이와 반대 개념으로 프로그램의 소스코드를 비공개하여 프로그램을 개발한 사람만이 프로그램 수정을 할 수 있도록 하는 정책이다. 클로즈드 소스 정책은 소스 코드가 비공개되므로 소스 코드의 보안 취약점도 알려지지 않게 되므로 보안의 측면에서 유리하다. 그러나, 개발자마다 프로그램의 소스코드가 다르므로 서버에서 어떤 개발자의 프로그램을 사용하느냐에 따라 게시판의 이용 규칙이 달라질 수 있다. 그러므로, 여러 클라이언트(200-1, 200-2)가 하나 이상의 서버의 자원을 공유하는 클라우드 서버(100)에서는 호환성이 떨어지는 문제가 생기게 된다. 또한, 소스코드가 공개되지 않으므로 사용자들이 서비스의 특성에 맞도록 게시판을 구축하는 것이 어렵다. 반면, 오픈소스를 기반으로 하는 클라우드 서버(100)는 이런 문제를 해결한다. 즉, 소스코드가 공개되므로 어느 개발자라도 손쉽게 서비스의 성격에 부합하도록 게시판을 구축할 수 있게 되고, 이렇게 구축된 게시판은 동일한 소스코드를 공유하므로 클로즈드 소스 정책을 따르는 경우와 비교해서 호환성이 향상된다.
그러나, 오픈 소스에 기반한 게시판은 소스코드가 공개되므로 소스코드가 갖고 있는 보안 취약점 역시 공개되는 문제가 있다. 우선 소스코드가 공개되면 해커들에게 보안의 취약성이 발견되는 시점이 빠르므로, 대응책이 마련되기도 전에 해킹이 이루어지는 제로데이공격(Zero-Day Attack)에 취약한 문제가 있다. 또한, 보안의 취약성이 소스코드의 구조적인 문제에 기인하는 경우, 취약성 극복이 어려울 수도 있다. 특히, 클라우드 서비스는 다수의 클라이언트(200-1, 200-2)가 동일한 서버에 데이터를 저장하게 되므로 보안의 취약점이 발견되는 경우 광범위한 피해를 입을 수 있다.
본 발명은 가상화 게시판(130)을 통해 이러한 문제점을 해결하고자 한다. 즉, 본 발명은 가상화 게시판(130)을 통해 오픈 소스에 기반한 게시판에서 클라이언트(200-1, 200-2)의 요청을 효과적으로 필터링한다. 이를 위해 가상화 게시판(130)을 통한 클라이언트(200-1, 200-2)의 요청은 제한될 필요가 있다. 즉, 가상화 게시판(130)은 오픈소스 정책에 따라 사용자들이 서비스의 특성에 맞도록 구성하는 것이 가능하지만, 가상화 게시판(130)을 통한 클라이언트(200-1, 200-2)의 요청은 API(Application Programming Interface)를 통해서만 이루어진다. 따라서, 클라이언트(200-1, 200-2)가 클라우드 서버(100)에 대한 서비스 요청을 입력하고 제어부(120)가 처리하는 것에 대한 소스코드는 공개되지 않는다. API를 통한 클라이언트(200-1, 200-2) 요청의 입력은 클라우드 서버(100)의 부하를 줄여주는 역할도 수행한다. 즉, 클라이언트(200-1, 200-2) 요청이 일정한 입력 형식을 따라야 하고, 이를 따르지 않는 경우는 요청이 거부되므로 클라우드 서버(100)는 모든 클라이언트(200-1, 200-2) 요청에 대해서 모든 종류의 검사를 할 필요가 없게 되어 작업량이 줄어든다.
도 4는 본 발명의 다른 실시 예에 따른 클라우드 서버(100)의 구성을 나타낸 블록도이고, 도 5는 도 4의 실시 예에서 클라우드 서버(100)가 클라이언트(200-1, 200-2) 요청을 처리하는 것을 나타낸 개념도이다.
도 4 및 5를 참조하면, 클라이언트(200-1, 200-2)의 요청을 검증하기 위해 제어부(120)는, 가상화 게시판 프로세서(121)와, 검증된 클라이언트(200-1, 200-2) 요청에 응답하기 위하여 데이터를 호출하는 비즈니스 로직 프로세서(122)를 포함할 수 있다.
가상화 게시판 프로세서(121)는 전술한 가상화 게시판(130)을 생성하여 클라이언트(200-1, 200-2)에 제공하고, 클라이언트(200-1, 200-2) 요청이 입력되면 클라이언트(200-1, 200-2) 요청을 검증하는 구성이다. 가상화 게시판(130)을 통한 클라이언트(200-1, 200-2)의 요청은 형식이 제한될 수 있으며, 가상화 게시판 프로세서(121)는 클라이언트(200-1, 200-2)의 요청에 대해서 검증을 수행한다. 검증이란 클라이언트(200-1, 200-2)의 요청이 정당한지 여부 및 유효한지 여부를 판단하는 것을 말한다. 일 예로, 가상화 게시판 프로세서(121)는 클라이언트(200-1, 200-2) 요청의 신뢰성을 검증할 수 있다. 즉, 클라이언트(200-1, 200-2)의 요청이 허가된 것인지, 부정한 목적을 갖고 있지 않은지 검증한다. 구체적으로, 클라이언트(200-1, 200-2)의 요청에 부정한 목적의 요청이 삽입되어 있는지 여부, 인가되지 않은 클라이언트(200-1, 200-2)의 요청이 인가된 것처럼 위장하고 있는지 여부, 접근할 수 없는 데이터에 대한 접근을 요청하는지 여부, 우회경로(Bypass)를 통한 불법 요청인지 여부 등을 검사한다. 다른 예로, 가상화 게시판 프로세서(121)는 클라이언트(200-1, 200-2) 요청의 유효성을 검증할 수 있다. 즉, 클라이언트(200-1, 200-2)의 요청이 규정된 형식을 따르는지, 유의미한 요청인지를 검증한다. 구체적으로 클라이언트(200-1, 200-2)의 요청의 입력형식이 문법에 맞는지, 그러한 요청이 수행가능한지를 판단한다. 한편, 가상화 게시판 프로세서(121)는 언급한 클라이언트(200-1, 200-2) 요청의 신뢰성 및 유효성을 모두 검증할 수도 있고, 둘 중 어느 하나만 검증할 수도 있다.
위와 같은 검증이 성공하는 경우, 가상화 게시판 프로세서(121)는 클라이언트(200-1, 200-2) 요청을 비즈니스 로직 프로세서(122)로 포워딩한다. 후술하는 비즈니스 로직 프로세서(122)는 클라이언트(200-1, 200-2) 요청을 받아 추가적으로 검증하거나 요청에 대한 응답을 수행한다. 검증에 실패하는 경우, 가상화 게시판(130)에 오류 메시지를 표시한다. 가상화 게시판 프로세서(121)는 하나의 클라이언트(200-1, 200-2)의 연속된 일련의 요청이 실패하는 경우, 해당 클라이언트(200-1, 200-2)에 대한 요청을 더 이상 수신하지 않을 수도 있다.
비즈니스 로직 프로세서(122)는 클라이언트(200-1, 200-2) 요청이 검증되는 경우, 검증된 클라이언트(200-1, 200-2) 요청에 응답을 수행하는 구성이다. 우선, 비즈니스 로직 프로세서(122)는 클라이언트(200-1, 200-2) 요청에 대응되는 비즈니스 로직을 호출한다. 전술한 바와 같이 클라이언트(200-1, 200-2) 요청은 가상화 게시판 프로세서(121)로부터 포워딩 될 수 있다. 비즈니스 로직이란 특정한 서비스를 제공하기 위해 프로그램의 여러 논리 단계로 구성된 프로그램 집합체를 말한다. 예를 들면, 가상화 게시판(130)을 통한 요청 즉, 새 글 보기, 과거 글 보기, 새 글 쓰기 등을 수행하기 위해 호출되는 프로그램이 될 수 있다. 이어서, 호출된 비즈니스 로직에 대응되는 데이터를 저장부(110)로부터 독출한다. 즉, 비즈니스 로직을 통해 저장부(110)에 저장된 데이터를 참조한다. 그리고, 독출된 데이터를 검증한다.
일 실시 예에서, 독출된 데이터의 검증은 무결성에 대한 것일 수 있다. 데이터의 무결성이란 권한이 부여된 사용자의 요청에 따라 데이터가 정확하게 변경될 수 있고, 권한이 없는 사용자의 요청에 대해서는 아무런 변화없이 데이터 원래의 모습을 유지하는 것을 의미한다. 이는 현실적으로, 특정한 서비스를 수행하는데 사용되는 데이터는 클라이언트(200-1, 200-2)의 요청에 부합해야 하고, 데이터가 관리되는 형식을 유지해야 하며, 권한이 없는 사용자의 요청에 응한 것이 아니어야 함을 의미한다. 예를 들면, 클라이언트(200-1, 200-2)가 가상화 게시판(130)을 통해 최신글을 보여달라는 요청을 하고, 이러한 요청이 검증된 경우, 최신글에 관한 데이터가 저장부(110)에서 독출된다. 이때 비즈니스 로직 프로세서(122)는 최신글에 관한 데이터의 무결성을 검증한다. 즉, 독출된 최신글이 최신글이 맞는지, 최신글의 데이터 형식을 갖추고 있는지, 권한이 있는 클라이언트(200-1, 200-2)의 요청에 대한 응답인지를 검증한다.
또한, 비즈니스 로직 프로세서(122)는 가상화 게시판 프로세서(121)로부터 포워딩된 클라이언트(200-1, 200-2) 요청을 다시 검증하거나, 추가적으로 검증할 수 있다. 이때의 검증은 가상화 게시판 프로세서(121)의 검증과 유사한 것이며, 이에 대해서는 상술한 바 중복설명은 생략한다.
데이터에 대한 검증에 성공하면, 비즈니스 로직 프로세서(122)는 클라이언트(200-1, 200-2) 요청에 대응되는 독출된 데이터를 가상화 게시판(130)에 표시한다. 반면, 만일 검증에 실패하면 가상화 게시판(130)에 오류 메시지를 표시하도록 가상화 게시판 프로세서(121)를 제어한다. 비즈니스 로직 프로세서(122)는 일련의 데이터 검증이 실패하는 경우, 저장부(110)에 저장된 데이터 또는 클라이언트(200-1, 200-2) 요청에 문제가 있다고 보아, 이후의 클라이언트(200-1, 200-2) 요청을 거부할 수 있다.
전술한 바와 같이 본 발명의 일 실시 예에 따른 클라우드 서버(100)는 가상화 게시판(130)을 통해 클라이언트(200-1, 200-2) 요청을 입력받고, 가상화 게시판 프로세서(121)와, 비즈니스 로직 프로세서(122)를 통해 순차적으로 검증하여 처리할 수 있다. 이처럼 클라이언트(200-1, 200-2) 요청의 검증을 여러 단계로 구별하여 수행함으로써, 클라이언트(200-1, 200-2) 요청에 대한 분산 처리의 효과를 갖는다. 방화벽을 통해 요청을 처리하는 경우, 하나의 방화벽에서 인바운드 요청(In-bound Request : 서버의 외부에로부터의 요청)과 아웃바운드 요청(Out-Bound Request : 서버의 내부로부터의 요청)을 모두 검사하게 되면, 시스템에 많은 부하를 가져온다. 특히 오픈소스에 기반한 게시판의 경우 본 발명처럼 가상화 게시판을 두어 클라이언트 요청의 검증을 분산시키지 않는다면, 방화벽의 부담은 더욱 가중된다. 본 발명은 전술한 것처럼 클라이언트(200-1, 200-2)의 요청을 여러 단계에서 나누어 검증을 하게 되므로 기존의 방화벽에 걸리는 부하를 줄일 수 있게 되어 클라이언트(200-1, 200-2) 요청의 처리 속도와 효율성을 높일 수 있다. 예를 들면, 디도스 공격처럼 서버에 많은 요청을 입력하여 부하를 주는 형태의 공격에도 상대적으로 유리해진다. 또한, 인바운드 요청(In-bound Request : 서버의 외부에로부터의 요청)과 아웃바운드 요청(Out-Bound Request : 서버의 내부로부터의 요청)을 모두 처리하는 경우도 기존의 방화벽에 비해 효율적이고 높은 성능을 보장할 수 있다. 더구나, 여러 단계의 검증을 수행하므로 클라이언트(200-1, 200-2) 요청의 신뢰성 및 유효성을 좀 더 충실히 검증할 수 있게 된다.
이하에서는 도 5를 참조하여, 본 발명 일 실시 예에서 구성요소들 간의 상호 작용관계를 설명한다.
가상화 게시판(130)을 통해 '최신글 보기 명령'이 입력되는 경우(1), 가상화 게시판 프로세서(121)는 명령의 신뢰성을 검증한다(2). 만일 검증이 실패하면 검증오류 메시지를 가상화 게시판(130)에 표시한다(3). 검증이 성공하면, '최신글 보기 명령'은 비즈니스 로직 프로세서(122)로 포워딩된다(4). 이때 비즈니스 로직 프로세서(122)는 명령의 유효성을 검증할 수 있다(5). 검증이 실패하는 경우 검증오류 메시지를 가상화 프로세서로 전달하여 가상화 게시판(130)에 표시한다(6, 7). 검증이 성공하면 비즈니스 로직을 호출하고 비즈니스 로직을 통해 데이터를 저장부(110)에서 참조한다(8). 그리고, 참조된 최신글의 무결성을 검증하고(10) 최신 글을 전달하여 가상화 게시판(130)에 다시 표시한다(11, 12).
이하에서는 도 3 및 6을 참조하여, 본 발명 일 실시 예에 따른 클라이언트(200-1, 200-2)의 요청을 처리하는 방법을 설명한다. 도 3은 본 발명의 일 실시 예에 따른 클라이언트(200-1, 200-2)의 요청을 처리하는 방법을 나타낸 흐름도이고, 도 6은 본 발명의 다른 실시 예에 따른 클라이언트(200-1, 200-2)의 요청을 처리하는 방법을 나타낸 흐름도이다.
도 3 및 6을 참조하면, 본 발명 일 실시 예에 따른 클라이언트(200-1, 200-2)의 요청을 처리하는 방법은 먼저 가상화 게시판(130)을 통해 클라이언트(200-1, 200-2)의 요청을 입력받으면서 시작된다(S310, S605). 클라이언트(200-1, 200-2)의 요청 입력은 API를 통해 이루어질 수 있다. 그러면, 클라이언트(200-1, 200-2)의 요청을 검증한다(S320, S610). 클라이언트(200-1, 200-2)의 요청의 신뢰성(S615-Y)과 유효성(S620-Y)이 검증되면 클라이언트(200-1, 200-2) 요청을 비즈니스 로직 프로세서(122)로 포워딩한다(S630). 만일 검증이 실패하면, 가상화 게시판(130)에 오류 메시지를 표시한다(S620). 검증이 성공하여 클라이언트(200-1, 200-2) 요청을 비즈니스 로직 프로세서(122)로 포워딩한 경우, 클라이언트(200-1, 200-2) 요청에 대응하는 비즈니스 로직을 호출한다(S635). 그리고, 비즈니스 로직에 대응되는 데이터를 저장부(110)에서 독출한다(S645). 그리고, 독출된 데이터의 무결성이 검증되면(S645, 650-Y), 가상화 게시판(130)에 독출된 데이터를 표시한다(S340, S655). 그러나, 무결성 검증에 실패하면 가상화 게시판(130)에 오류 메시지를 표시한다(S520).
본 발명의 전술한 다양한 실시 예에 따라 가상화 게시판(130)을 통해 클라이언트(200-1, 200-2) 요청을 입력받고 이를 여러 단계로 검증하고 응답함으로써, 클라우드 컴퓨팅 환경에서 오픈소스 게시판의 보안의 취약점을 극복하고, 방화벽 내지 서버의 부하를 줄일 수 있어 클라이언트(200-1, 200-2)-서버 시스템의 성능 및 효율성을 향상시킨다.
이상에서는 본 발명의 다양한 실시 예에 따른 클라우드 서버(100) 및 클라이언트(200-1, 200-2)의 요청을 처리하는 방법을 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100 : 클라우드 서버 110 : 저장부
120 : 제어부 121 : 가상화 게시판 프로세서
122 : 비즈니스 로직 프로세서 130 : 가상화 게시판
200-1, 200-2 : 클라이언트
120 : 제어부 121 : 가상화 게시판 프로세서
122 : 비즈니스 로직 프로세서 130 : 가상화 게시판
200-1, 200-2 : 클라이언트
Claims (9)
- 데이터가 저장된 저장부; 및,
클라이언트에게 가상화 게시판을 제공하고 상기 가상화 게시판을 통해 클라이언트 요청이 입력되면 상기 클라이언트 요청을 검증하며, 검증 결과에 따라 상기 클라이언트 요청에 대응되는 데이터를 상기 저장부로부터 독출하여 상기 가상화 게시판에 표시하는 제어부;를 포함하고,
상기 제어부는,
상기 가상화 게시판을 생성하여 상기 클라이언트에게 제공하며, 상기 클라이언트 요청이 전송되면 상기 클라이언트 요청을 검증하는 가상화 게시판 프로세서; 및
상기 클라이언트 요청이 검증되면 상기 클라이언트 요청에 대응되는 비즈니스 로직을 호출하고, 호출된 비즈니스 로직에 대응되는 데이터를 상기 저장부로부터 독출하여, 독출된 데이터를 검증하는 비즈니스 로직 프로세서;를 포함하는 클라우드 서버. - 삭제
- 제1항에 있어서,
상기 가상화 게시판 프로세서는 상기 클라이언트 요청의 신뢰성 및 유효성을 검증하고, 검증이 성공하면 상기 클라이언트 요청을 상기 비즈니스 로직 프로세서로 포워딩하며, 검증에 실패하면 상기 가상화 게시판에 오류 메시지를 표시하고,
상기 비즈니스 로직 프로세서는 상기 가상화 게시판 프로세서로부터 포워딩된 상기 클라이언트 요청에 대응되는 비즈니스 로직을 상기 저장부로부터 호출하고, 상기 호출된 비즈니스 로직에 대응되는 데이터를 상기 저장부로부터 독출하며 독출된 데이터를 검증하여, 검증이 성공하면 상기 클라이언트 요청에 대응되는 데이터를 상기 가상화 게시판에 표시하며, 상기 검증에 실패하면 상기 가상화 게시판에 오류 메시지를 표시하도록 가상화 게시판 프로세서를 제어하는 것을 특징으로 하는 클라우드 서버. - 제1항에 있어서,
상기 가상화 게시판 프로세서는 상기 클라이언트 요청의 신뢰성을 검증하고,
상기 비즈니스 로직 프로세서는 상기 클라이언트 요청의 유효성 및 상기 클라이언트 요청에 대응되는 비즈니스 로직에 의해 참조되는 데이터의 무결성을 검증하는 것을 특징으로 하는 클라우드 서버. - 제1항, 제3항 및 제4항 중 어느 한 항에 있어서,
상기 클라이언트 요청은 API(Application Programming Interface)를 통해 입력되는 것을 특징으로 하는 클라우드 서버. - 클라이언트에게 제공된 가상화 게시판을 통해 상기 클라이언트의 요청을 입력받는 단계;
상기 클라이언트의 요청을 검증하는 단계; 및
상기 클라이언트의 요청의 검증 결과에 따라 상기 클라이언트의 요청에 대응되는 데이터를 저장부로부터 독출하여 상기 가상화 게시판에 표시하는 단계;를 포함하고,
상기 가상화 게시판에 표시하는 단계는,
상기 클라이언트의 요청이 검증되면, 상기 클라이언트의 요청에 대응되는 비즈니스 로직을 호출하는 단계;
상기 비즈니스 로직에 대응되는 데이터를 상기 저장부로부터 독출하는 단계;
상기 독출된 데이터를 검증하는 단계; 및
상기 가상화 게시판을 생성하여 상기 독출된 데이터를 표시하는 단계;를 포함하는 것을 특징으로 하는 상기 클라이언트의 요청을 처리하는 방법. - 삭제
- 제6항에 있어서,
상기 클라이언트의 요청을 검증하는 단계는,
상기 클라이언트 요청의 신뢰성 및 유효성을 검증하고, 검증이 성공하면, 상기 클라이언트 요청을 상기 비즈니스 로직 프로세서로 포워딩하며, 검증에 실패하면 상기 가상화 게시판에 오류 메시지를 표시하고,
상기 독출된 데이터를 검증하는 단계는,
상기 클라이언트 요청에 대응되는 비즈니스 로직에 의해 참조되는 데이터의 무결성을 검증하고,
상기 데이터를 표시하는 단계는,
독출된 데이터의 검증이 성공하면 상기 클라이언트 요청에 대응되는 데이터를 상기 가상화 게시판에 표시하며, 상기 검증에 실패하면 상기 가상화 게시판에 오류 메시지를 표시하는 것을 특징으로 하는 클라이언트의 요청을 처리하는 방법. - 제6항 또는 제8항에 있어서,
상기 클라이언트 요청은 API(Application Programming Interface)를 통해 입력되는 것을 특징으로 하는 클라이언트의 요청을 처리하는 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120005452A KR101330832B1 (ko) | 2012-01-17 | 2012-01-17 | 클라우드 서버 및 클라이언트의 요청을 처리하는 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120005452A KR101330832B1 (ko) | 2012-01-17 | 2012-01-17 | 클라우드 서버 및 클라이언트의 요청을 처리하는 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130084578A KR20130084578A (ko) | 2013-07-25 |
KR101330832B1 true KR101330832B1 (ko) | 2013-11-19 |
Family
ID=48995159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120005452A KR101330832B1 (ko) | 2012-01-17 | 2012-01-17 | 클라우드 서버 및 클라이언트의 요청을 처리하는 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101330832B1 (ko) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010069456A (ko) * | 2001-03-24 | 2001-07-25 | 김경주 | 게시판 유해정보 관리시스템 |
KR20080000086A (ko) * | 2006-06-26 | 2008-01-02 | (주)트리니티소프트 | 네트워크 기반의 게시물 검증방법 및 그 장치 |
KR20110016349A (ko) * | 2009-08-11 | 2011-02-17 | 엘지전자 주식회사 | 소셜 네트워크 서비스 제공 방법 및 장치 |
US20110314071A1 (en) * | 2010-06-17 | 2011-12-22 | Openwave Systems Inc. | Metadata-based data access and control |
-
2012
- 2012-01-17 KR KR1020120005452A patent/KR101330832B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010069456A (ko) * | 2001-03-24 | 2001-07-25 | 김경주 | 게시판 유해정보 관리시스템 |
KR20080000086A (ko) * | 2006-06-26 | 2008-01-02 | (주)트리니티소프트 | 네트워크 기반의 게시물 검증방법 및 그 장치 |
KR20110016349A (ko) * | 2009-08-11 | 2011-02-17 | 엘지전자 주식회사 | 소셜 네트워크 서비스 제공 방법 및 장치 |
US20110314071A1 (en) * | 2010-06-17 | 2011-12-22 | Openwave Systems Inc. | Metadata-based data access and control |
Also Published As
Publication number | Publication date |
---|---|
KR20130084578A (ko) | 2013-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10375111B2 (en) | Anonymous containers | |
CN109196505B (zh) | 基于硬件的虚拟化安全隔离 | |
US11075955B2 (en) | Methods and systems for use in authorizing access to a networked resource | |
CN112073400B (zh) | 一种访问控制方法、***、装置及计算设备 | |
US11044236B2 (en) | Protecting sensitive information in single sign-on (SSO) to the cloud | |
US10009381B2 (en) | System and method for threat-driven security policy controls | |
Jang et al. | Gyrus: A Framework for User-Intent Monitoring of Text-based Networked Applications. | |
WO2016160595A1 (en) | System and method for threat-driven security policy controls | |
KR20110122731A (ko) | 발행 및 구독 엔진에 암호화, 인증, 및 허가를 도입하는 기술 | |
EP3270318B1 (en) | Dynamic security module terminal device and method for operating same | |
EP3416333B1 (en) | Seamless provision of secret token to cloud-based assets on demand | |
US8782410B2 (en) | Avoiding padding oracle attacks | |
US8694993B1 (en) | Virtualization platform for secured communications between a user device and an application server | |
CN111262889A (zh) | 一种云服务的权限认证方法、装置、设备及介质 | |
KR102134491B1 (ko) | 보호된 데이터 세트의 네트워크 기반 관리 기법 | |
US8938680B2 (en) | Methods and apparatus for E-mail-based management of virtualized environments | |
US9075996B2 (en) | Evaluating a security stack in response to a request to access a service | |
Satish et al. | Web browser security: different attacks detection and prevention techniques | |
US8601544B1 (en) | Computer system employing dual-band authentication using file operations by trusted and untrusted mechanisms | |
EP3786826A1 (en) | Secure validation pipeline in a third party cloud environment | |
US20240004684A1 (en) | System and method for exchanging messages between cloud services and software-defined data centers | |
US10542001B1 (en) | Content item instance access control | |
KR101330832B1 (ko) | 클라우드 서버 및 클라이언트의 요청을 처리하는 방법 | |
Chaudhari et al. | A review on cloud security issues and solutions | |
US9240988B1 (en) | Computer system employing dual-band authentication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20161017 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20171017 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20191022 Year of fee payment: 7 |