KR102411608B1 - 보안 네트워크 시스템 및 그 데이터 처리 방법 - Google Patents

보안 네트워크 시스템 및 그 데이터 처리 방법 Download PDF

Info

Publication number
KR102411608B1
KR102411608B1 KR1020150105664A KR20150105664A KR102411608B1 KR 102411608 B1 KR102411608 B1 KR 102411608B1 KR 1020150105664 A KR1020150105664 A KR 1020150105664A KR 20150105664 A KR20150105664 A KR 20150105664A KR 102411608 B1 KR102411608 B1 KR 102411608B1
Authority
KR
South Korea
Prior art keywords
secure
runtime environment
packet
data
module
Prior art date
Application number
KR1020150105664A
Other languages
English (en)
Other versions
KR20170012957A (ko
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 KR1020150105664A priority Critical patent/KR102411608B1/ko
Priority to PCT/KR2016/007958 priority patent/WO2017018719A1/ko
Priority to US15/736,023 priority patent/US10637827B2/en
Publication of KR20170012957A publication Critical patent/KR20170012957A/ko
Application granted granted Critical
Publication of KR102411608B1 publication Critical patent/KR102411608B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/22Arrangements for preventing the taking of data from a data transmission channel without authorisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Abstract

보안 네트워크 시스템이 개시된다. 보안 네트워크 시스템은 노멀 월드(normal world) 및 시큐어 월드(secure world) 중 하나로 선택적으로 동작 가능한 프로세서를 포함하며, 프로세서는 시큐어 월드의 네트워크 드라이버 모듈을 이용하여 외부 네트워크에서 패킷을 수신하고, 외부 네트워크에서 수신된 패킷이 시큐어 월드에서 사용되는 것이면, 시큐어 월드의 TCP/IP 모듈을 이용하여 패킷의 데이터를 추출하고, 시큐어 월드에서 패킷의 데이터를 이용하며, 패킷이 시큐어 월드에서 사용되는 것이 아니면, 시큐어 월드의 TCP/IP 모듈을 이용하여 패킷의 데이터를 추출하여 노멀 월드로 패킷의 데이터를 전달한다.

Description

보안 네트워크 시스템 및 그 데이터 처리 방법 {system for secure network and data processing method thereof }
본 발명은 보안 네트워크 시스템 및 그 데이터 처리 방법에 관한 것으로, 더욱 상세하게는 보안 영역을 이용하여 보안성을 향상시키는 보안 네트워크 시스템 및 그 데이터 처리 방법에 관한 것이다.
전자 기술의 발달에 힘입어 다양한 유형의 전자 장치가 개발 및 보급되고 있다. 또한, 전자 장치의 사용에 있어서 보안성을 향상시키기 위한 노력도 지속적으로 이루어지고 있다.
그러한 노력에 의해 개발된 시스템 중 하나로, 보안성을 향상시키기 위해서, 비 보안 영역 이외에 별도의 보안 영역을 함께 구비한 시스템도 사용되고 있다.
하지만, 이러한 시스템을 사용한다고 하더라도, 비보안 영역에서 제3자에 의한 데이터 변조가 용이하게 일어날 수 있다. 따라서, 여전히 보안성이 취약하다는 문제점이 있었다.
이에 따라, 보안성을 강화시킬 수 있는 보안 네트워크 시스템에 대한 필요성이 대두되었다.
본 발명은 상기와 같은 필요성에 따라 안출된 것으로서, 본 발명의 목적은, 보안성이 향상된 보안 네트워크 시스템 및 그 데이터 처리 방법을 제공함에 있다.
상술한 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 보안 네트워크 시스템은, 노멀 월드(normal world) 및 시큐어 월드(secure world) 중 하나로 선택적으로 동작 가능한 프로세서를 포함하며, 프로세서는 시큐어 월드의 네트워크 드라이버 모듈을 이용하여 외부 네트워크에서 패킷을 수신하고, 외부 네트워크에서 수신된 패킷이 시큐어 월드에서 사용되는 것이면, 시큐어 월드의 TCP/IP 모듈을 이용하여 패킷의 데이터를 추출하고, 시큐어 월드에서 패킷의 데이터를 이용하며, 패킷이 시큐어 월드에서 사용되는 것이 아니면, 시큐어 월드의 TCP/IP 모듈을 이용하여 패킷의 데이터를 추출하여 노멀 월드로 패킷의 데이터를 전달할 수 있다.
여기서, 프로세서는 패킷의 패킷 헤더에 포함된 필드 정보를 이용하여, 패킷이 시큐어 월드에서 사용되는 것인지 여부를 판단할 수 있다.
또한, 시큐어 월드는 시큐어 월드 내의 데이터 통신을 담당하며, 패킷의 데이터를 통합 관리하는 네트워크 서버 모듈을 포함할 수 있다.
또한, 프로세서는 시큐어 월드에서 데이터가 생성되면, 시큐어 월드의 TCP/IP 모듈을 이용하여 생성된 데이터에 대응되는 시큐어 패킷을 생성하고, 시큐어 월드의 네트워크 드라이버 모듈을 이용하여 시큐어 패킷을 외부 네트워크로 전송할 수 있다.
또한, 프로세서는 노멀 월드에서 데이터가 생성되면, 노멀 월드의 TCP/IP 모듈을 이용하여 생성된 데이터에 대응되는 노멀 패킷을 생성하고, 노멀 월드의 네트워크 드라이버 모듈을 이용하여 노멀 패킷을 외부 네트워크로 전송할 수 있다.
또한, 프로세서는 노멀 월드에서의 데이터 전송 및 시큐어 월드에서의 데이터 전송이 각각 요청되면, 노멀 월드에서 생성된 데이터 및 시큐어 월드에서 생성된 데이터를 시큐어 월드의 TCP/IP 모듈 및 네트워크 드라이버 모듈을 이용하여 함께 외부 네트워크로 전송할 수 있다.
한편, 노멀 월드 및 시큐어 월드로 구성된 보안 네트워크 시스템의 데이터 처리 방법은 시큐어 월드의 네트워크 드라이버 모듈을 이용하여 외부 네트워크에서 패킷을 수신하는 단계, 수신된 패킷이 시큐어 월드에서 사용되는 것이면, 시큐어 월드의 TCP/IP 모듈을 이용하여 패킷의 데이터를 추출하고, 시큐어 월드에서 패킷의 데이터를 이용하는 단계 및 패킷이 시큐어 월드에서 사용되는 것이 아니면, 시큐어 월드의 TCP/IP 모듈을 이용하여 패킷의 데이터를 추출하여 노멀 월드에서 상기 패킷의 데이터를 이용하는 단계를 포함할 수 있다.
여기서, 노멀 월드에서 패킷의 데이터를 이용하는 단계는 패킷이 시큐어 월드에서 사용되는 것이 아니면, 시큐어 월드의 TCP/IP 모듈을 이용하여 패킷의 데이터를 추출하는 단계 및 시큐어 월드의 모니터 모듈에서, 추출된 데이터를 노멀 월드로 전달하는 단계를 포함할 수 있다.
또한, 패킷 헤더의 필드 정보에 따라 상기 패킷이 상기 시큐어 월드에서 사용되는 것인지 여부를 판단하는 단계를 더 포함할 수 있다.
또한, 시큐어 월드는 시큐어 월드 내의 데이터 통신을 담당하며, 패킷의 데이터를 통합 관리하는 네트워크 서버 모듈을 포함할 수 있다.
또한, 시큐어 월드에서 데이터가 생성되면, 시큐어 월드의 TCP/IP 모듈을 이용하여 생성된 데이터에 대응되는 보안 패킷을 생성하는 단계 및 시큐어 월드의 네트워크 드라이버 모듈을 이용하여 보안 패킷을 외부 네트워크로 전송하는 단계를 더 포함할 수 있다.
또한, 노멀 월드에서 데이터가 생성되면 노멀 월드의 TCP/IP 모듈을 이용하여 생성된 데이터에 대응되는 노멀 패킷을 생성하는 단계 및 노멀 월드의 네트워크 드라이버 모듈을 이용하여 노멀 패킷을 외부 네트워크로 전송하는 단계를 더 포함할 수 있다
또한, 노멀 월드에서의 데이터 전송 및 시큐어 월드에서의 데이터 전송이 각각 요청되면, 노멀 월드에서 생성된 데이터 및 시큐어 월드에서 생성된 데이터를 시큐어 월드의 TCP/IP 모듈 및 네트워크 드라이버 모듈을 이용하여 함께 외부 네트워크로 전송하는 단계를 더 포함할 수 있다.
한편, 노멀 월드 및 시큐어 월드로 구성된 보안 네트워크 시스템의 데이터 처리 방법을 실행하기 위한 프로그램이 기록된 컴퓨터 판독가능 기록매체에는 시큐어 월드의 네트워크 드라이버 모듈을 이용하여 외부 네트워크에서 패킷을 수신하는 단계, 수신된 패킷이 시큐어 월드에서 사용되는 것이면, 시큐어 월드의 TCP/IP 모듈을 이용하여 패킷의 데이터를 추출하고, 시큐어 월드에서 상기 패킷의 데이터를 이용하는 단계 및 패킷이 시큐어 월드에서 사용되는 것이 아니면, 시큐어 월드의 TCP/IP 모듈을 이용하여 패킷의 데이터를 추출하여 노멀 월드에서 패킷의 데이터를 이용하는 단계를 실행하는 프로그램이 저장될 수 있다.
이상과 같은 본 발명의 다양한 실시 예에 따르면, 보안 네트워크 시스템의 보안성을 크게 향상시킬 수 있다.
도 1은 본 발명의 일 실시 예에 따른 보안 네트워크 시스템의 구성을 나타낸 블록도이다.
도 2는 도 1의 보안 네트워크 시스템의 세부 구성의 일 예를 나타내는 블록도이다.
도 3은 본 발명의 일 실시 예에 따른 보안 네트워크 시스템에서 처리하는 패킷 구조의 일 예를 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시 예에 따른 보안 네트워크 시스템 내에서 데이터를 처리하는 과정을 설명하기 위한 타이밍 차트이다.
도 5는 본 발명의 다른 실시 예에 따른 보안 네트워크 시스템 내에서 데이터를 처리하는 과정을 설명하기 위한 타이밍 차트이다.
도 6은 본 발명의 일 실시 예에 따른 보안 네트워크 시스템의 운영 체제 변경에 따른 UI 변화를 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시 예에 따른 보안 네트워크 시스템의 데이터 처리 방법을 설명하기 위한 흐름도이다.
도 8은 본 발명의 다른 실시 예에 따른 보안 네트워크 시스템의 구성을 나타낸 블록도이다.
도 9는 본 발명의 일 실시 예에 따른 보안 네트워크 시스템의 세부 구성의 다른 예를 나타내는 블록도이다.
이하에서는 첨부된 도면들을 참조하여 본 발명의 일 실시 예를 보다 상세하게 설명한다.
먼저, 본 명세서 및 청구범위에서 사용되는 용어는 본 발명의 다양한 실시 예들에서의 기능을 고려하여 일반적인 용어들을 선택하였다 하지만, 이러한 용어들은 당 분야에 종사하는 기술자의 의도나 법률적 또는 기술적 해석 및 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 일부 용어는 출원인이 임의로 선정한 용어도 있다. 이러한 용어에 대해서는 본 명세서에서 정의된 의미로 해석될 수 있으며, 구체적인 용어 정의가 없으면 본 명세서의 전반적인 내용 및 당해 기술 분야의 통상적인 기술 상식을 토대로 해석될 수도 있다.
또한, 본 명세서에 첨부된 각 도면에 기재된 동일한 참조번호 또는 부호는 실질적으로 동일한 기능을 수행하는 부품 또는 구성요소를 나타낸다. 설명 및 이해의 편의를 위해서 서로 다른 실시 예들에서도 동일한 참조번호 또는 부호를 사용하여 설명한다. 즉, 복수의 도면에서 동일한 참조 번호를 가지는 구성요소를 모두 도시되어 있다고 하더라도, 복수의 도면들이 하나의 실시 예를 의미하는 것은 아니다.
또한, 본 명세서 및 청구범위에서는 구성요소들 간의 구별을 위하여 "제1", "제2" 등과 같이 서수를 포함하는 용어가 사용될 수 있다. 이러한 서수는 동일 또는 유사한 구성요소들을 서로 구별하기 위하여 사용하는 것이며 이러한 서수 사용으로 인하여 용어의 의미가 한정 해석되어서는 안된다. 일 예로, 이러한 서수와 결합된 구성요소는 그 숫자에 의해 사용 순서나 배치 순서 등이 제한되어서는 안된다. 필요에 따라서는, 각 서수들은 서로 교체되어 사용될 수도 있다.
본 명세서에서 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 발명의 실시 예에서 "모듈", "유닛", "부(part)" 등과 같은 용어는 적어도 하나의 기능이나 동작을 수행하는 구성요소를 지칭하기 위한 용어이며, 이러한 구성요소는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈", "유닛", "부(part)" 등은 각각이 개별적인 특정한 하드웨어로 구현될 필요가 있는 경우를 제외하고는, 적어도 하나의 모듈이나 칩으로 일체화되어 적어도 하나의 프로세서(미도시)로 구현될 수 있다.
또한, 본 발명의 실시 예에서, 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적인 연결뿐 아니라, 다른 매체를 통한 간접적인 연결의 경우도 포함한다. 또한, 어떤 부분이 어떤 구성요소를 포함한다는 의미는, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
그 밖에도, 본 발명을 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우, 그에 대한 상세한 설명은 축약하거나 생략한다.
도 1은 본 발명의 일 실시 예에 따른 보안 네트워크 시스템(1000)의 구성을 나타낸 블록도이다.
도 1에 따르면, 보안 네트워크 시스템(1000)은 프로세서(100)를 포함한다. 프로세서(100)는 노멀 월드(normal world)(200) 및 시큐어 월드(secure world)(300) 중 하나로 선택적으로 동작 가능하다.
시큐어 월드(300)란 보안성을 확보한 데이터 처리 아키텍처를 의미하고, 노멀 월드(200)란 일반적인 데이터 처리 아키텍처를 의미한다.
일 예로, 프로세서(100)는 "ARM 트러스트존 아키텍처(ARM Trustzone Architecture)"가 사용될 수 있다. "ARM 트러스트존 아키텍처(ARM Trustzone Architecture)" 로는 마이크로 프로세스 시스템용의 ARM사(社)의 두 개로 분할된 런타임-아키텍처가 공지되어 있다. 이와 같은 런타임-아키텍처는 두 가지의 런타임 환경을 포함한다. 그 중 하나인 비보안 런타임 환경은, "노멀 존(Normal Zone)" 또는 "노멀 월드(Normal World)"로 지칭될 수 있다. 비보안 런타임 환경은 정상 운영 체제에 의해서 제어될 수 있다. 다른 하나의 런타임 환경인 보안 런타임 환경은 "트러스트 존(Trustzone)" 또는 "트러스티드 월드(TrustedWorld)" 또는 "시큐어 월드(Secure World)로 지칭될 수 있다. 보안 런타임 환경은 안전 운영체제에 의해 제어된다.
여기서, 정상 운영 체제는 예를 들어, 안드로이드, 윈도우 폰, 심비안 등과 같은 통상적인 운영 체제일 수 있으며, 안전 운영 체제는 예를 들어, MOBICORE, RedCastle 등과 같이 기존 운영 체제 내에 보안 기능이 통합된 보안 커널(security kernel)을 삽입한 운영 체제일 수 있다. ARM 트러스트 존에 따르면, 상술한 비보안 런타임 환경 및 보안 런타임 환경은 가상 실행 환경으로 정의될 수 있다.
프로세서(100)는 사용자 입력에 따라 노멀 월드(200) 및 시큐어 월드(300) 중 하나로 선택적으로 동작할 수 있다. 구체적으로는, 사용자가 노멀 월드(200)를 사용하기 위한 제1 메뉴(또는, 제1 버튼)를 선택하면 프로세서(100)는 제1 OS를 실행시키고 노멀 월드(200)로 동작한다. 반면 사용자가 시큐어 월드(300)를 사용하기 위한 제2 메뉴(또는 제2 버튼)를 선택하면 프로세서(100)는 제2 OS를 실행시키고 시큐어 월드(300)로 동작한다.
구현 예에 따라서는 제1 OS 또는 제2 OS가 디폴트로 설정이 되어 있을 수도 있다. 예를 들어, 제1 OS가 디폴트 OS로 설정되어 있다면, 보안 네트워크 시스템(1000)이 부팅되거나 기타 특정 이벤트가 도래하는 경우, 프로세서(100)는 제1 OS를 실행시키고 바로 노멀 월드(200)로 동작한다. 이러한 상태에서 사용자가 제2 메뉴(또는 제2 버튼)을 선택하면, 프로세서(100)는 제2 OS를 실행시키고 시큐어 월드(300)로 동작한다. 이후에 사용자가 제1 메뉴(또는 제1 버튼)을 선택하면, 프로세서(100)는 제1 OS를 실행시키고 다시 시큐어 월드(300)로 복귀한다.
다른 실시 예로, 프로세서(100)는 제1 OS가 실행되고 있는 경우, 제2 메뉴(또는 제2 버튼)가 선택되면, 보안 네트워크 시스템(1000)을 종료한 후 재부팅하여 제2 OS가 실행되도록 할 수도 있다.
다른 실시 예로, 프로세서(100)는 제1 OS가 실행되고 있는 상태에서, 사용자 조작이 기설정된 시간 동안 없는 경우에는, 제1 OS를 종료하고 제2 OS를 구동시킬 수 있다. 마찬가지로, 프로세서(100)는 제2 OS가 실행되고 있는 상태에서, 사용자 조작이 기설정된 시간 동안 없는 경우에는, 제2 OS를 종료하고 제1 OS를 구동시킬 수도 있다.
한편, 상술한 실시 예에서, 노멀 월드(200) 및 시큐어 월드(300)는 노멀 월드(200) 및 시큐어 월드(300) 각각에 대응되는 OS를 전제하여 실행되는 것으로 이해될 수도 있으나, 프로세서(100)는 제1 OS가 실행되는 도중에, 어플리케이션에서 보안이 요구되는 데이터를 생성한 경우, 해당 데이터를 시큐어 월드(300)로 전달하여 패킷을 생성하여, 외부 데이터와 해당 패킷을 송수신하는 것도 가능하다.
시큐어 월드(300)는 보안성을 강화하기 위하여 노멀 월드(200)와 별개로 네트워크 드라이버 모듈, TCP/IP 모듈 등과 같은 각종 소프트웨어를 포함할 수 있다. 또는 시큐어 월드(300) 자체는 노멀 월드(200)와 상이한 독립적인 하드웨어로 구현될 수도 있다. 예를 들어, 시큐어 월드(300)와 노멀 월드(200)는 서로 다른 SoC(System on Chip) 이나 서로 다른 프로세서로 구현될 수도 있다. 또는, 하나의 프로세서를 논리적으로 구분한 두 개의 영역으로 구현될 수도 있다.
도 2는 도 1의 보안 네트워크 시스템(1000)의 세부 구성의 일 예를 나타내는 블록도이다.
도 2를 참조하면, 본 발명의 보안 네트워크 시스템(1000)은 노멀 월드(200) 및 시큐어 월드(300)를 포함할 수 있다.
노멀 월드(200)는 네트워크 드라이버 모듈(210), TCP/IP 모듈(220), 트러스트 존(trust zone) 드라이버 모듈(230) 및 어플리케이션 모듈(240)을 포함할 수 있다.
네트워크 드라이버 모듈(110)은 외부 네트워크로부터 패킷을 받아들이는 네트워크 하드웨어 장치(미도시)를 제어하기 위한 소프트웨어일 수 있다. 패킷은 일 예로, 헤더와 페이로드 데이터(payload data)를 포함할 수 있다. 헤더는 패킷의 전달 경로, 타임 스탬프 등 패킷의 전송에 관련된 정보를 포함하는 데이터이며, 페이로드 데이터는 패킷 전송의 근본적인 목적이 되며, 실질적인 내용을 포함하고 있는 데이터이다.
TCP/IP 모듈(220)은 인터넷 네트워크 프로토콜로 이루어진 소프트웨어일 수 있다. 프로세서(100)는 TCP/IP 모듈(220)을 이용하여 패킷으로부터 페이로드를 추출하거나 반대로, 페이로드 데이터에 헤더를 부가하여 패킷을 생성할 수 있다. 여기서, TCP/IP는 패킷 통신 방식의 인터넷 프로토콜인 IP와 전송 조절 프로토콜인 TCP로 이루어져 있다. IP는 패킷 전달 여부를 보증하지 않고, 패킷을 보낸 순서와 받는 순서가 다를 수 있다. TCP는 IP 위에서 동작하는 프로토콜로, 데이터의 전달을 보증하고, 보낸 순서대로 받게 해준다.
트러스트 존 드라이버 모듈(230)은 노멀 월드(200) 환경에 포함되어, 노멀 월드(200) 및 시큐어 월드(300) 간 데이터를 송수신하기 위한 소프트웨어일 수 있다. 프로세서(100)는 트러스트 존(trust zone) 드라이버 모듈(230)을 이용하여, 노멀 월드(200)의 어플리케이션 모듈(230)로부터 전달받은 데이터를 시큐어 월드(300)로 전달하거나, 시큐어 월드(300)로부터 데이터를 전달받아 노멀 월드(200)의 어플리케이션 모듈(230)로 전달할 수 있다.
어플리케이션 모듈(240)은 특정 기능을 가지는 어플리케이션을 실행하여 다른 모듈로부터 전달받은 데이터를 이용하거나 새로운 데이터를 생성하는 소프트웨어일 수 있다.
한편, 시큐어 월드(300)는 네트워크 드라이버 모듈(310), TCP/IP 모듈(320), 모니터 모듈(330) 및 어플리케이션 모듈(350)을 포함할 수 있다. 여기서, 네트워크 드라이버 모듈(310), TCP/IP 모듈(320) 및 어플리케이션 모듈(350)은 노멀 월드(200)의 네트워크 드라이버 모듈(210), TCP/IP 모듈(220) 및 어플리케이션 모듈(350)과는 별개일 수 있으나, 기능은 동일하므로 자세한 설명은 여기서 생략한다.
모니터 모듈(330)은 노멀 월드(200) 및 시큐어 월드(300)간의 인터페이스 역할을 한다. 구체적으로, 모니터 모듈(330)은 노멀 월드(200) 및 시큐어 월드(300) 사이의 통신을 담당하고 각 월드 간의 프로세스를 전환하기 위한 소프트웨어일 수 있다. 프로세서(100)의 상태 전환의 일 예로, 노멀 월드(200) 상태에서 시큐어 월드(300) 상태로 전환하는 경우에 있어서, 프로세서(100)는 모니터 모듈(330)을 이용하여, 노멀 월드(200)에서의 프로세스 상태를 메모리(미도시)에 저장하는 한편, 새로운 프로세스 상태 즉, 메모리(미도시)에 기저장된 시큐어 월드(300) 상태를 복구할 수 있다.
한편, 시큐어 월드(300)는 시큐어 월드(300) 내의 데이터 통신을 담당하며, 패킷의 데이터를 통합 관리하는 네트워크 서버 모듈(340)을 포함할 수 있다.
네트워크 서버 모듈(340)은 시큐어 월드(300) 내의 구성요소들(예를 들면, 각종 모듈, 서버, 드라이버 등)에 데이터에 관한 서비스를 제공하는 소프트웨어일 수 있다.
구체적으로, 네트워크 서버 모듈(340)은 시큐어 월드(300) 내에서 어플리케이션 모듈(350) 및 다른 구성요소들(예를 들면, 각종 서버, 드라이버)과 통신을 할 수 있다. 일 예로, 네트워크 서버 모듈(340)은 시큐어 월드(300) 내에서 다른 모듈들과 IPC(interprocess communication)를 이용하여 통신할 수 있다. 여기서, IPC는 프로세스간 통신을 할 수 있도록 해주는 인터페이스의 집합을 의미하는 것으로, 네트워크 서버 모듈(340)은 IPC를 이용하여 복수의 모듈과 동시에 통신할 수 있다.
이와 함께, 네트워크 서버 모듈(340)은 패킷의 데이터를 통합 관리할 수 있다. 즉, 네트워크 서버 모듈(340)은 시큐어 월드(300) 내의 데이터 전달 흐름을 통합 관리할 수 있다. 예를 들면, 어플리케이션 모듈(350)은 네트워크 서버 모듈(340)로 데이터 전송 요청을 할 수 있다. 이때, 네트워크 서버 모듈은 메모리(미도시)에 저장된 특정 데이터를 어플리케이션 모듈(350)로 전송할 수 있다. 또는, 네트워크 서버 모듈(340)은 어플리케이션 모듈(350)로부터 특정 데이터를 외부로 전달하라는 요청을 수신한 경우, 메모리(미도시)에 저장된 해당 데이터를 TCP/IP 모듈(320)로 전달할 수 있다.
이하에서는 도 2를 참조하여, 보안 네트워크 시스템(1000) 내부에서의 데이터 흐름을 상세히 설명한다.
보안 네트워크 시스템(1000)은 외부 네트워크로부터 패킷을 수신할 때, 노멀 월드(200) 및 시큐어 월드(300)에서 이용되는 데이터 모두를 시큐어 월드(300)를 통해서 수신할 수 있다. 한편, 보안 네트워크 시스템(1000)은 외부 네트워크로 패킷을 전달할 때, 노멀 월드(200)에서 생성된 데이터에 대응되는 패킷은 노멀 월드(200) 내부에서 생성하여 직접 외부 네트워크로 전송하고, 시큐어 월드(300)에서 생성된 데이터에 대응하는 패킷은 시큐어 월드(300) 내부에서 생성하여 직접 외부 네트워크로 전송할 수 있다.
구체적으로, 프로세서(100)는 시큐어 월드(300)의 네트워크 드라이버 모듈(310)을 이용하여 외부 네트워크에서 패킷을 수신할 수 있다. 프로세서(100)는 네트워크 드라이버 모듈(310)을 이용하여 네트워크 하드웨어(미도시)가 외부 네트워크에서 전송된 패킷을 수신하도록 제어할 수 있다. 이때, 프로세서(100)는 외부 네트워크에서 수신된 패킷이 시큐어 월드(300)에서 사용되는 것인지 판단할 수 있다. 이를 위해, 프로세서(100)는 패킷(410)의 패킷 헤더(411)에 포함된 필드 정보(413)를 이용하여, 패킷(410)이 시큐어 월드(300)에서 사용되는 것인지 여부를 판단할 수 있다. 이를 도 3을 이용하여 상세히 설명한다.
도 3은 본 발명의 일 실시 예에 따른 보안 네트워크 시스템(1000)에서 처리하는 패킷 구조의 일 예를 설명하기 위한 도면이다.
일 예로, 패킷(410)은 헤더(411)와 페이로드 데이터(412)로 구성될 수 있다. 헤더(411)는 패킷(410)의 전달 경로, 타임 스탬프 등 패킷(410)의 전송에 관련된 정보를 포함하는 데이터이며, 페이로드 데이터(412)는 패킷(410) 전송의 근본적인 목적이 되며, 실질적인 내용을 포함하고 있는 데이터이다. 패킷 헤더(411)는 해당 패킷이 시큐어 월드(300)에서 사용되는지 여부에 대한 정보를 가지는 필드(413-1)를 포함할 수 있다.
여기서, 프로세서(100)는 상술한 필드(413-1) 정보를 이용하여 패킷이 시큐어 월드(300)에서 사용되는지 여부를 판단할 수 있다. 일 예로, 프로세서(100)는 해당 필드(413-1)의 값이“0001”인 경우, 패킷(410)이 시큐어 월드(300)에서 사용되는 것으로 판단할 수 있으며, 해당 필드(413-1)의 값이 “0000”인 경우, 패킷(410)이 시큐어 월드(300)에서 사용되는 것이 아닌 것으로 판단할 수 있다.
프로세서(100)는 외부 네트워크에서 수신된 패킷이 시큐어 월드(300)에서 사용되는 것이면, 시큐어 월드(300)의 TCP/IP 모듈(320)을 이용하여 패킷의 데이터를 추출하고, 시큐어 월드(300)에서 패킷의 데이터를 이용할 수 있다. 여기서, TCP/IP 모듈(320)은 TCP/IP 스택(stack)으로 구성될 수 있다.
예를 들어, 도 2를 참조하면, 프로세서(100)는, 외부 네트워크에서 수신된 패킷이 시큐어 월드(300)에서 사용되는 것이면, 네트워크 드라이버 모듈(310)이 패킷을 TCP/IP 모듈(320)로 전송하도록 제어할 수 있다. 프로세서(100)는 TCP/IP 모듈을 이용하여, 패킷을 헤더와 페이로드 데이터로 구분하여 페이로드 데이터만을 추출할 수 있다. 프로세서(100)는 추출된 패킷의 데이터를 네트워크 서버 모듈(340)로 전송할 수 있다. 이때, 네트워크 서버 모듈(340)은 전달받은 패킷의 데이터를 통합하여 관리할 수 있다. 일 예로, 네트워크 서버 모듈(340)은 전달받은 패킷의 데이터에 대응되는 목록을 만들고, 데이터 및 데이터에 대응되는 목록을 메모리(미도시)에 저장할 수 있다. 이에 따라, 어플리케이션 모듈(305)은 네트워크 서버 모듈(340)로 특정 데이터 전송 요청을 수행하여, 패킷 데이터를 이용할 수 있다.
한편, 프로세서(100)는, 패킷이 시큐어 월드(300)에서 사용되는 것이 아니면, 시큐어 월드(300)의 TCP/IP 모듈(320)을 이용하여 패킷의 데이터를 추출하여 노멀 월드(200)로 패킷의 데이터를 전달할 수 있다.
예를 들어, 도 2을 참조하면, 프로세서(100)는, 패킷이 시큐어 월드(300)에서 사용되는 것이 아니면, TCP/IP 모듈(320)을 이용하여 추출된 패킷의 데이터를 모니터 모듈(330)로 전달할 수 있다. 다음으로, 프로세서(100)는, 모니터 모듈(330)을 이용하여 패킷의 데이터를 트러스트 존 드라이버 모듈(230)로 전달할 수 있다. 그 후, 프로세서(100)는 트러스트 존 드라이버 모듈(230)을 이용하여, 노멀 월드(200)의 어플리케이션 모듈(240)로 패킷의 데이터를 전달할 수 있다. 이를 통하여, 어플리케이션 모듈(240)은 패킷의 데이터를 이용할 수 있다. 이와 같이, 시큐어 월드(300)의 TCP/IP 모듈, 네트워크 드라이버 모듈 등을 사용하게 되면, 노멀 월드(200)에서 처리할 데이터에 대한 보안성도 크게 향상시킬 수 있다.
이상에서는 데이터를 수신하여 처리하는 동작에 대하여 설명하였으나, 데이터를 생성하여 외부로 출력하는 경우에도, 노멀 월드(200) 및 시큐어 월드(300)가 선택적으로 이용될 수 있다.
구체적으로는, 프로세서(100)는 시큐어 월드(300)에서 데이터가 생성되면, 시큐어 월드(300)의 TCP/IP 모듈(320)을 이용하여 생성된 데이터에 대응되는 시큐어 패킷을 생성하고, 시큐어 월드(300)의 네트워크 드라이버 모듈(310)을 이용하여 시큐어 패킷을 외부 네트워크로 전송할 수 있다.
예를 들어, 도 2를 참조하면, 데이터를 외부 네트워크로 전달하기 위한 요청이 어플리케이션 모듈(350)로부터 수신되면, 프로세서(100)는 네트워크 서버 모듈(340)을 이용하여, 어플리케이션 모듈(350)에서 생성된 데이터를 메모리(미도시)에 저장함과 동시에 TCP/IP 모듈(320)로 전달할 수 있다. 이때, 프로세서(100)는 시큐어 월드(300)의 TCP/IP 모듈(320)을 이용하여 데이터에 대응되는 시큐어 패킷을 생성하고, 시큐어 월드(300)의 네트워크 드라이버 모듈(310)을 이용하여 시큐어 패킷을 외부 네트워크로 전송할 수 있다.
한편, 프로세서(100)는 노멀 월드(200)에서 데이터가 생성되면, 노멀 월드(200)의 TCP/IP 모듈(220)을 이용하여 생성된 데이터에 대응되는 노멀 패킷을 생성하고, 노멀 월드(200)의 네트워크 드라이버 모듈(210)을 이용하여 노멀 패킷을 외부 네트워크로 전송할 수 있다.
예를 들어, 도 2를 참조하면, 데이터를 외부 네트워크로 전달하기 위한 요청이 어플리케이션 모듈(240)로부터 수신되면, 프로세서(100)는 해당 데이터를 TCP/IP 모듈(220)로 전달할 수 있다. 프로세서(100)는 노멀 월드(200)의 TCP/IP 모듈(220)을 이용하여, 데이터에 대응되는 노멀 패킷을 생성하고, 노멀 월드(200)의 네트워크 드라이버 모듈(210)을 이용하여 노멀 패킷을 외부 네트워크로 전송할 수 있다.
도 4는 본 발명의 일 실시 예에 따른 보안 네트워크 시스템(1000) 내에서 데이터를 처리하는 과정을 설명하기 위한 타이밍 차트이다.
도 4를 참조하여 예를 들면, 시큐어 월드(300)가 외부 네트워크로부터 패킷을 수신하면(421), 프로세서(100)는 외부 네트워크에서 수신된 패킷이 시큐어 월드(300)에서 사용되는 패킷인지 여부를 판단할 수 있다(422). 프로세서(100)는, 해당 패킷이 시큐어 월드(300)에서 사용될 패킷이 아니라고 판단되면(422-N), 패킷으로부터 데이터를 추출한 후, 노멀 월드(200)로 전달할 수 있다(423). 이때, 프로세서(100)는 전달된 데이터를 노멀 월드(200)에서 이용할 수 있다(411). 그 후, 노멀 월드(200)에서 데이터가 생성되는 경우(412), 프로세서(100)는 생성된 데이터에 대응되는 패킷을 생성하여 외부로 전달할 수 있다(413).
한편, 프로세서(100)는, 외부 네트워크에서 수신된 패킷이 시큐어 월드(300)에서 사용되는 패킷이면(422-Y), 해당 패킷으로부터 데이터를 추출하여 이용할 수 있다(424). 그 후, 시큐어 월드(300)에서 데이터가 생성되는 경우(425), 프로세서(100)는 생성된 데이터에 대응되는 패킷을 생성하여 외부로 전달할 수 있다(426).
도 5는 본 발명의 다른 실시 예에 따른 보안 네트워크 시스템(1000) 내에서 데이터를 처리하는 과정을 설명하기 위한 타이밍 차트이다.
프로세서(100)는 노멀 월드(200)에서의 데이터 전송 및 시큐어 월드(300)에서의 데이터 전송이 각각 요청되면, 노멀 월드(200)에서 생성된 데이터 및 시큐어 월드(300)에서 생성된 데이터를 시큐어 월드(300)의 TCP/IP 모듈(320) 및 네트워크 드라이버 모듈(310)을 이용하여 함께 외부 네트워크로 전송할 수 있다.
기본적으로, 보안 네트워크 시스템(1000)은 노멀 월드(200) 및 시큐어 월드(300) 각각에서 생성된 패킷을 외부 네트워크로 전달할 때, 노멀 월드(200) 및 시큐어 월드(300) 각각에 구비된 TCP/IP 모듈(220, 320) 및 네트워크 드라이버 모듈(210, 310)을 이용할 수 있다.
그러나, 보안 네트워크 시스템(1000)이 이용 가능한 패킷 송수신 기능을 가진 네트워크 하드웨어 장치(미도시)가 단수인 경우에는 노멀 월드(200)에서 생성된 패킷 및 시큐어 월드(300)에서 생성된 패킷을 동시에 외부 네트워크로 전송할 수 없는 경우가 발생할 수 있다. 이때, 프로세서(100)는 노멀 월드(200)에서 생성된 데이터를 시큐어 월드(300)로 전송하고, 시큐어 월드(300)에서 패킷을 생성하여 외부 네트워크로 전달할 수 있다.
일 예로, 도 5를 참조하면, 프로세서(100)는, 노멀 월드(200)에서 데이터가 생성되면(511), TCP/IP 모듈(220)을 이용하여 생성된 데이터에 대응되는 노멀 패킷을 생성하고(512), 네트워크 드라이버(210)를 이용하여 생성된 노멀 패킷을 외부 네트워크로 전송할 수 있다(513). 한편, 프로세서(100)는, 상술한 과정을 거쳐 노멀 월드(200)에서 외부 네트워크로 패킷이 전송되고 있을 때, 시큐어 월드(300)에서 데이터가 생성된 것으로 판단되면(621), 트러스트 존 드라이버 모듈(230) 및 모니터 모듈(330)을 이용하여 노멀 월드(200)에서 생성된 데이터를 시큐어 월드(300)로 전달할 수 있다(615). 프로세서(100)는 노멀 월드(200) 데이터 및 시큐어 월드(300) 데이터가 TCP /IP 모듈(320)에 도착하는 순서대로 노멀 월드(200) 데이터에 대응되는 노멀 패킷 및 시큐어 월드(300) 데이터에 대응되는 시큐어 패킷을 생성할 수 있다(622). 이때, 프로세서(100)는 네트워크 드라이버 모듈(310)을 이용하여, 생성된 순서에 따라 패킷을 외부 네트워크로 전송할 수 있다(623).
상술한 내용은, 패킷 송수신 기능을 가지는 네트워크 하드웨어 장치(미도시)가 단수인 경우로 이해될 수도 있지만, 네트워크 하드웨어 장치(미도시)는 노멀 월드(200) 및 시큐어 월드(300) 각각에 대응되는 복수개일 수 있다. 일 예로, 보안 네트워크 시스템(1000)이 이용 가능한 네트워크 하드웨어(미도시)가 복수개인 경우, 노멀 월드(200) 및 시큐어 월드(300)는 각각 별개의 네트워크 하드웨어(미도시)를 이용할 수 있다. 이 경우, 각 월드의 TCP/IP 모듈(220) 및 네트워크 드라이버 모듈(210)은 해당 월드에서 생성된 데이터만을 처리할 수 있다.
도 6은 본 발명의 일 실시 예에 따른 보안 네트워크 시스템(1000)의 운영 체제 변경에 따른 UI 변화를 설명하기 위한 도면이다.
도 6을 참조하여 예를 들면, 노멀 월드(200)의 운영 체제를 OS A, 시큐어 월드(300)의 운영 체제를 OS B라 하고, 이러한 운영 체제로 동작하는 전자 장치(예를 들면, 휴대폰, PDA, PC 등)(600)가 있다고 가정한다. 프로세서(100)는, 노멀 월드(200)의 운영 체제 OS A의 동작에 대응되는 UI(610)에서 시큐어 월드(300)로 전환되도록 하는 GUI(611)가 터치되는 경우, OS A를 종료하고, 시큐어 월드(300)의 운영 체제 OS B를 구동시킬 수 있다. 이때, 프로세서(100)는 OS B의 동작에 대응되는 UI(620)가 디스플레이되도록 전자 장치(600)의 디스플레이(미도시)를 제어할 수 있다. 반대로, 시큐어 월드(300)의 운영 체제 OS B의 동작에 대응되는 화면UI(620)에서 노멀 월드(200)로 전환되도록 하는 GUI(621)가 터치되는 경우, 프로세서(100)는 OS B를 종료하고, 노멀 월드(200)의 운영 체제인 OS A를 구동시킬 수도 있다. 이때, 프로세서(100)는 OS A의 동작에 대응되는 UI(610)가 디스플레이되도록 전자 장치(600)의 디스플레이(미도시)를 제어할 수 있다.
도 7은 본 발명의 일 실시 예에 따른 보안 네트워크 시스템(1000)의 데이터 처리 방법을 설명하기 위한 흐름도이다.
먼저, 시큐어 월드(300)의 네트워크 드라이버 모듈(310)을 이용하여 외부 네트워크에서 패킷을 수신하고(S710), 수신된 패킷이 시큐어 월드(300)에서 사용되는 것이면(S720-Y), 시큐어 월드(300)의 TCP/IP 모듈(320)을 이용하여 패킷의 데이터를 추출하고, 시큐어 월드(300)에서 패킷의 데이터를 이용하며(S730), 패킷이 시큐어 월드(300)에서 사용되는 것이 아니면(S720-N), 시큐어 월드(300)의 TCP/IP 모듈(320)을 이용하여 패킷의 데이터를 추출하여 노멀 월드(200)에서 패킷의 데이터를 이용할 수 있다(S740).
여기서, 노멀 월드(200)에서 패킷의 데이터를 이용하는 단계는, 패킷이 시큐어 월드(300)에서 사용되는 것이 아니면 시큐어 월드(300)의 TCP/IP 모듈(320)을 이용하여 패킷의 데이터를 추출하는 단계 및 시큐어 월드(300)의 모니터 모듈(330)에서, 추출된 데이터를 노멀 월드(200)로 전달하는 단계를 포함할 수 있다.
데이터 처리 방법은, 패킷 헤더의 필드 정보에 따라 패킷이 시큐어 월드(300)에서 사용되는 것인지 여부를 판단하는 단계를 더 포함할 수 있다.
여기서, 시큐어 월드(300)는, 시큐어 월드(300) 내의 데이터 통신을 담당하며, 패킷의 데이터를 통합 관리하는 네트워크 서버 모듈(340)을 포함할 수 있다.
데이터 처리 방법은, 시큐어 월드(300)에서 데이터가 생성되면, 시큐어 월드(300)의 TCP/IP 모듈(320)을 이용하여 생성된 데이터에 대응되는 보안 패킷을 생성하는 단계 및 시큐어 월드(300)의 네트워크 드라이버 모듈(310)을 이용하여 보안 패킷을 외부 네트워크로 전송하는 단계를 더 포함할 수 있다.
데이터 처리 방법은, 노멀 월드(200)에서 데이터가 생성되면, 노멀 월드(200)의 TCP/IP 모듈(220)을 이용하여 생성된 데이터에 대응되는 노멀 패킷을 생성하는 단계 및 노멀 월드(200)의 네트워크 드라이버 모듈(310)을 이용하여 노멀 패킷을 외부 네트워크로 전송하는 단계를 더 포함할 수 있다.
데이터 처리 방법은, 노멀 월드(200)에서의 데이터 전송 및 시큐어 월드(300)에서의 데이터 전송이 각각 요청되면, 노멀 월드(200)에서 생성된 데이터 및 시큐어 월드(300)에서 생성된 데이터를 시큐어 월드(300)의 TCP/IP 모듈(320) 및 네트워크 드라이버 모듈(310)을 이용하여 함께 외부 네트워크로 전송하는 단계를 더 포함할 수 있다.
도 8를 참조하면, 다른 실시 예에 따른 보안 네트워크 시스템(1000)은 노멀 월드(200)에 대응되어 동작하는 제1 프로세서(110) 및 시큐어 월드(300)에 대응되어 동작하는 제2 프로세서(120)를 포함할 수 있다. 제1 프로세서(110)는 비 보안 동작을 실행하고, 제2 프로세서(120) 보안 동작을 실행할 수 있다. 또한, 제 2 프로세서(110)는 외부로부터의 액세스에 대하여 격리될 수 있으며, 제1 프로세서(120)의 허가되지 않은 제어로부터 보호될 수 있다.
이상에서는 보안 네트워크 시스템(1000)에 관하여 설명하였다. 이러한 보안 네트워크 시스템(1000)은 적어도 하나의 프로세서로 구현될 수도 있고, SoC(System on Chip) 및 임베디드 형태로 구현될 수도 있다. 또한, 보안 네트워크 시스템(1000)은 독립적 전자 장치로 구현될 수도 있다. 예를 들면, 휴대폰, PMP, PDA, MP3, 전자 패드, 노트북, TV, PC 등으로 구현 가능하다. 이하에는, 휴대폰으로 구현된 경우의 네트워크 시스템(1000)의 세부 구성을 도 9를 참조하여 상세히 설명한다.
도 9는 휴대폰으로 구현된 네트워크 시스템(1000)의 세부 구성의 일 예를 나타내는 블록도이다. 이하에서는 설명의 편의를 위하여 휴대폰(900)으로 명명하여 설명한다.
휴대폰(900)은 디스플레이(910), 통신부(920), 제어부(930) 및 저장부(940)를 포함할 수 있다.
제어부(930)는 저장부(940)에 저장된 각종 프로그램을 이용하여 휴대폰(900)의 전반적인 동작을 제어하기 위한 구성요소이다. 도 9에 따르면, 제어부(930)는 RAM(931), ROM(932), 메인 CPU(933), 그래픽 처리부(934), 제1 내지 제n 인터페이스(935-1 ~ 935-n)을 포함한다.
RAM(931), ROM(932), 메인 CPU(933), 그래픽 처리부(934), 제1 내지 n 인터페이스(935-1 ~ 935-n) 등은 버스(936)를 통해 서로 연결될 수 있다.
제1 내지 n 인터페이스(935-1 내지 935-n)는 상술한 각종 구성요소들과 연결된다. 인터페이스들 중 하나는 네트워크를 통해 외부 장치와 연결되는 네트워크 인터페이스가 될 수도 있다.
메인 CPU(933)는 저장부(940)에 액세스하여, 저장부(940)에 저장된 노멀 월드(200)에 대응되는 O/S 및 ROM(932)을 이용하여 부팅을 수행할 수 있다. 노멀 월드(200)로 부팅되면, 메인 CPU(933)는 저장부(940)에 저장된 각종 모듈을 불러들여 RAM(931)에 저장하고, 저장된 모듈을 이용하여 노멀 월드(200)의 각종 기능을 수행할 수 있다. 또한, 메인 CPU(933)는 사용자 조작에 대응하여 노멀 월드(200)에서 시큐어 월드(300)로 전환되어 동작할 수 있는데, 이때, 노멀 월드(200) 상태의 데이터를 저장부(940)에 저장하고, 저장부(940)에 기저장된 시큐어 월드(300) 용 데이터를 불러들여 RAM(931)에 저장할 수 있다. 이를 통하여, 메인 CPU(933)는 시큐어 월드(300)로 동작할 수 있다. 그리고, 메인 CPU(933)는 저장부(940)에 저장된 각종 프로그램, 컨텐츠, 데이터 등을 이용하여 다양한 동작을 수행할 수 있다. 메인 CPU(933)는 상술한 여러 실시 예에서 언급한 프로세서에 대응되는 역할을 수행할 수 있다.
ROM(932)에는 시스템 부팅을 위한 명령어 세트 등이 저장된다. 턴온 명령이 입력되어 전원이 공급되면, 메인 CPU(933)는 ROM(932)에 저장된 명령어에 따라 저장부(940)에 저장된 O/S를 RAM(931)에 복사하고, O/S를 실행시켜 시스템을 부팅시킨다. 부팅이 완료되면, 메인 CPU(933)는 저장부(940)에 저장된 각종 어플리케이션 프로그램을 RAM(931)에 복사하고, RAM(931)에 복사된 어플리케이션 프로그램을 실행시켜 각종 동작을 수행한다.
그래픽 처리부(934)는 연산부(미도시) 및 렌더링부(미도시)를 이용하여 아이콘, 이미지, 텍스트 등과 같은 다양한 객체를 포함하는 화면을 생성한다. 연산부(미도시)는 수신된 제어 명령에 기초하여 화면의 레이아웃에 따라 각 객체들이 표시될 좌표값, 형태, 크기, 컬러 등과 같은 속성값을 연산한다. 렌더링부(미도시)는 연산부(미도시)에서 연산한 속성값에 기초하여 객체를 포함하는 다양한 레이아웃의 화면을 생성한다. 렌더링부(미도시)에서 생성된 화면은 디스플레이(910)에 디스플레이된다. 그래픽 처리부(934)는 도 6에서 설명한 바와 같은 UI 렌더링도 수행한다. 구체적으로는, 메인 CPU(933)가 OS를 변경하게 되면, 그래픽 처리부(934)는 변경된 OS에 대응되는 그래픽 데이터를 이용하여, 변경된 OS의 레이아웃 화면을 구성하여 디스플레이(910)에 디스플레이한다.
한편, 상술한 제어부(930)의 동작은 저장부(940)에 저장된 프로그램에 의해 이루어질 수 있다.
저장부(940)는 휴대폰(900)을 구동시키기 위한 O/S(Operating System) 소프트웨어 모듈, 각종 멀티미디어 컨텐츠와 같은 다양한 데이터를 저장할 수 있다.
특히, 저장부(940)는, 노멀 월드(200)에 대응되는 네트워크 드라이버 모듈(210), TCP/IP 모듈(220), 트러스트 존 드라이버 모듈(230) 및 어플리케이션 모듈(240)과 시큐어 월드(300)에 대응되는 네트워크 드라이버 모듈(310), TCP/IP 모듈(320), 모니터 모듈(330), 네트워크 서버 모듈(340) 및 어플리케이션 모듈(350)을 별개 메모리 영역에 저장하여, 제어부(930)가 노멀 월드(200) 및 시큐어 월드(300) 각각으로 동작할 때, 각 월드에 대응되는 저장 영역에 저장된 모듈의 데이터를 별개로 제공할 수 있다.
디스플레이(910)는 운영체제 및 어플리케이션에 의해 생성되는 이미지를 디스플레이한다. 구체적으로, 디스플레이(910)는 그래픽 처리부(943)에서 생성된 다양한 화면을 디스플레이할 수 있다. 이를 위해 디스플레이(910)는 액정 표시 장치(Liquid Crystal Display, LCD), 유기 전기 발광 다이오드(Organic Light Emitting Display, OLED) 등으로 구현될 수 있다.
통신부(920)는 외부 전자 장치(미도시)와 통신을 수행한다. 여기서, 통신부(920)는 BT(BlueTooth), WI-FI(Wireless Fidelity), Zigbee, IR(Infrared), Serial Interface, USB(Universal Serial Bus), NFC(Near Field Communication) 등과 같은 다양한 통신 방식을 통해 외부 전자 장치(미도시)와 통신을 수행할 수 있다.
이상 설명한 바와 같이 본 발명의 다양한 실시 예에 따른 보안 네트워크 시스템 및 그 데이터 처리 방법은 다양한 형태의 전자 장치에 적용될 수 있다. 또한, 이러한 데이터 처리 방법을 수행하기 위한 프로그램은 임의의 컴퓨터 판독 가능 기록 매체에 저장되어, 각종 전자 장치로 제공될 수도 있다.
일 예로, 시큐어 월드(300)의 네트워크 드라이버 모듈(210)을 이용하여 외부 네트워크에서 패킷을 수신하는 단계, 수신된 패킷이 시큐어 월드(300)에서 사용되는 것이면, 시큐어 월드(300)의 TCP/IP 모듈(320)을 이용하여 패킷의 데이터를 추출하고, 시큐어 월드(300)에서 패킷의 데이터를 이용하는 단계 및 패킷이 시큐어 월드(300)에서 사용되는 것이 아니면, 시큐어 월드(300)의 TCP/IP 모듈(320)을 이용하여 패킷의 데이터를 추출하여 노멀 월드(200)에서 패킷의 데이터를 이용하는 단계를 수행하는 프로그램이 저장된 컴퓨터 판독가능 기록매체가 제공될 수 있다.
여기서, 컴퓨터 판독가능 기록매체란, 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 모듈들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 컴퓨터 판독가능 기록매체에 저장되어 제공될 수 있다.
이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
1000: 보안 네트워크 시스템
100: 프로세서
200: 노멀 월드
300: 시큐어 월드

Claims (14)

  1. 보안 네트워크 시스템에 있어서,
    보안 OS 상에서 제어되는 보안 런타임 환경 및 상기 보안 OS와 다른 OS 상에서 제어되는 비보안 런타임 환경 중 하나로 선택적으로 동작 가능한 프로세서;를 포함하며,
    상기 프로세서는,
    상기 보안 런타임 환경의 네트워크 드라이버 모듈을 이용하여 외부 네트워크에서 패킷을 수신하고,
    상기 비보안 런타임 환경 또는 상기 보안 런타임 환경 중 상기 패킷이 사용될 환경을 식별하고,
    상기 패킷이 상기 보안 런타임 환경에서 사용되는 것으로 식별되면, 상기 보안 런타임 환경의 TCP/IP 모듈을 이용하여 상기 패킷의 데이터를 추출하고, 상기 보안 런타임 환경의 네트워크 서버 모듈을 사용하여 상기 패킷의 데이터를 처리하고,
    상기 패킷이 상기 비보안 런타임 환경에서 사용되는 것으로 식별되면, 상기 보안 런타임 환경의 TCP/IP 모듈을 이용하여 상기 패킷의 데이터를 추출하여 상기 비보안 런타임 환경으로 상기 패킷의 데이터를 전달하고,
    상기 비보안 런타임 환경에서의 데이터 전송 및 상기 보안 런타임 환경에서의 데이터 전송이 각각 요청되면, 상기 비보안 런타임 환경에서 생성된 데이터 및 상기 보안 런타임 환경에서 생성된 데이터를 상기 보안 런타임 환경의 TCP/IP 모듈 및 네트워크 드라이버 모듈을 이용하여 상기 외부 네트워크로 전송하며,
    상기 네트워크 서버 모듈은, 상기 보안 런타임 환경 내의 데이터 통신을 담당하며, 상기 보안 런타임 환경에서 사용되는 패킷의 데이터를 통합 관리하는 것을 특징으로 하는, 보안 네트워크 시스템.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 패킷의 패킷 헤더에 포함된 필드 정보를 이용하여, 상기 패킷이 상기 보안 런타임 환경에서 사용되는 것인지 여부를 판단하는, 보안 네트워크 시스템.
  3. 삭제
  4. 제1항에 있어서,
    상기 프로세서는,
    상기 보안 런타임 환경에서 데이터가 생성되면, 상기 보안 런타임 환경의 TCP/IP 모듈을 이용하여 상기 생성된 데이터에 대응되는 시큐어 패킷을 생성하고, 상기 보안 런타임 환경의 네트워크 드라이버 모듈을 이용하여 상기 시큐어 패킷을 상기 외부 네트워크로 전송하는, 보안 네트워크 시스템.
  5. 제4항에 있어서,
    상기 프로세서는,
    상기 비보안 런타임 환경에서 데이터가 생성되면, 상기 비보안 런타임 환경의 TCP/IP 모듈을 이용하여 상기 생성된 데이터에 대응되는 노멀 패킷을 생성하고, 상기 비보안 런타임 환경의 네트워크 드라이버 모듈을 이용하여 상기 노멀 패킷을 상기 외부 네트워크로 전송하는, 보안 네트워크 시스템.
  6. 삭제
  7. 보안 OS 상에서 제어되는 보안 런타임 환경 및 상기 보안 OS와 다른 OS 상에서 제어되는 비보안 런타임 환경 중 하나로 선택적으로 동작하는 보안 네트워크 시스템의 데이터 처리 방법에 있어서,
    상기 보안 런타임 환경의 네트워크 드라이버 모듈을 이용하여 외부 네트워크에서 패킷을 수신하는 단계;
    상기 비보안 런타임 환경 또는 상기 보안 런타임 환경 중 상기 패킷이 사용될 환경을 식별하는 단계;
    상기 패킷이 상기 보안 런타임 환경에서 사용되는 것으로 식별되면, 상기 보안 런타임 환경의 TCP/IP 모듈을 이용하여 상기 패킷의 데이터를 추출하고, 상기 보안 런타임 환경의 네트워크 서버 모듈을 사용하여 상기 패킷의 데이터를 처리하는 단계;
    상기 패킷이 상기 비보안 런타임 환경에서 사용되는 것으로 식별되면, 상기 보안 런타임 환경의 TCP/IP 모듈을 이용하여 상기 패킷의 데이터를 추출하여 상기 비보안 런타임 환경에서 상기 패킷의 데이터를 이용하는 단계; 및
    상기 비보안 런타임 환경에서의 데이터 전송 및 상기 보안 런타임 환경에서의 데이터 전송이 각각 요청되면, 상기 비보안 런타임 환경에서 생성된 데이터 및 상기 보안 런타임 환경에서 생성된 데이터를 상기 보안 런타임 환경의 TCP/IP 모듈 및 네트워크 드라이버 모듈을 이용하여 함께 상기 외부 네트워크로 전송하는 단계;를 포함하고,
    상기 네트워크 서버 모듈은, 상기 보안 런타임 환경 내의 데이터 통신을 담당하며, 상기 보안 런타임 환경에서 사용되는 패킷의 데이터를 통합 관리하는 것을 특징으로 하는, 데이터 처리 방법.
  8. 제7항에 있어서,
    상기 비보안 런타임 환경에서 상기 패킷의 데이터를 이용하는 단계는,
    상기 패킷이 상기 보안 런타임 환경에서 사용되는 것이 아니면, 상기 보안 런타임 환경의 TCP/IP 모듈을 이용하여 상기 패킷의 데이터를 추출하는 단계; 및
    상기 보안 런타임 환경의 모니터 모듈에서, 상기 추출된 데이터를 상기 비보안 런타임 환경으로 전달하는 단계;를 포함하는 데이터 처리 방법.
  9. 제7항에 있어서,
    패킷 헤더의 필드 정보에 따라 상기 패킷이 상기 보안 런타임 환경에서 사용되는 것인지 여부를 판단하는 단계;를 더 포함하는 데이터 처리 방법.
  10. 삭제
  11. 제7항에 있어서,
    상기 보안 런타임 환경에서 데이터가 생성되면, 상기 보안 런타임 환경의 TCP/IP 모듈을 이용하여 상기 생성된 데이터에 대응되는 보안 패킷을 생성하는 단계; 및
    상기 보안 런타임 환경의 네트워크 드라이버 모듈을 이용하여 상기 보안 패킷을 상기 외부 네트워크로 전송하는 단계;를 더 포함하는 데이터 처리 방법.
  12. 제11항에 있어서,
    상기 비보안 런타임 환경에서 데이터가 생성되면, 상기 비보안 런타임 환경의 TCP/IP 모듈을 이용하여 상기 생성된 데이터에 대응되는 노멀 패킷을 생성하는 단계; 및
    상기 비보안 런타임 환경의 네트워크 드라이버 모듈을 이용하여 상기 노멀 패킷을 상기 외부 네트워크로 전송하는 단계;를 더 포함하는 데이터 처리 방법.
  13. 삭제
  14. 보안 OS 상에서 제어되는 보안 런타임 환경 및 상기 보안 OS와 다른 OS 상에서 제어되는 비보안 런타임 환경으로 구성된 보안 네트워크 시스템의 데이터 처리 방법을 실행하기 위한 프로그램이 기록된 컴퓨터 판독가능 기록매체에 있어서,
    상기 프로그램은,
    상기 보안 런타임 환경의 네트워크 드라이버 모듈을 이용하여 외부 네트워크에서 패킷을 수신하는 단계;
    상기 비보안 런타임 환경 또는 상기 보안 런타임 환경 중 상기 패킷이 사용될 환경을 식별하는 단계;
    상기 패킷이 상기 보안 런타임 환경에서 사용되는 것으로 식별되면, 상기 보안 런타임 환경의 TCP/IP 모듈을 이용하여 상기 패킷의 데이터를 추출하고, 상기 보안 런타임 환경의 네트워크 서버 모듈을 사용하여 상기 패킷의 데이터를 처리하는 단계;
    상기 패킷이 상기 비보안 런타임 환경에서 사용되는 것으로 식별되면, 상기 보안 런타임 환경의 TCP/IP 모듈을 이용하여 상기 패킷의 데이터를 추출하여 상기 비보안 런타임 환경에서 상기 패킷의 데이터를 이용하는 단계; 및
    상기 비보안 런타임 환경에서의 데이터 전송 및 상기 보안 런타임 환경에서의 데이터 전송이 각각 요청되면, 상기 비보안 런타임 환경에서 생성된 데이터 및 상기 보안 런타임 환경에서 생성된 데이터를 상기 보안 런타임 환경의 TCP/IP 모듈 및 네트워크 드라이버 모듈을 이용하여 함께 상기 외부 네트워크로 전송하는 단계;를 실행하고,
    상기 보안 런타임 환경은 보안 OS 상에서 제어되고,
    상기 비보안 런타임 환경은 상기 보안 OS와 다른 OS 상에서 제어되고,
    상기 네트워크 서버 모듈은, 상기 보안 런타임 환경 내의 데이터 통신을 담당하며, 상기 보안 런타임 환경에서 사용되는 패킷의 데이터를 통합 관리하는 것을 특징으로 하는, 컴퓨터 판독가능 기록 매체.
KR1020150105664A 2015-07-27 2015-07-27 보안 네트워크 시스템 및 그 데이터 처리 방법 KR102411608B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020150105664A KR102411608B1 (ko) 2015-07-27 2015-07-27 보안 네트워크 시스템 및 그 데이터 처리 방법
PCT/KR2016/007958 WO2017018719A1 (ko) 2015-07-27 2016-07-21 보안 네트워크 시스템 및 그 데이터 처리 방법
US15/736,023 US10637827B2 (en) 2015-07-27 2016-07-21 Security network system and data processing method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150105664A KR102411608B1 (ko) 2015-07-27 2015-07-27 보안 네트워크 시스템 및 그 데이터 처리 방법

Publications (2)

Publication Number Publication Date
KR20170012957A KR20170012957A (ko) 2017-02-06
KR102411608B1 true KR102411608B1 (ko) 2022-06-21

Family

ID=57885163

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150105664A KR102411608B1 (ko) 2015-07-27 2015-07-27 보안 네트워크 시스템 및 그 데이터 처리 방법

Country Status (3)

Country Link
US (1) US10637827B2 (ko)
KR (1) KR102411608B1 (ko)
WO (1) WO2017018719A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102514062B1 (ko) * 2018-02-27 2023-03-24 삼성전자주식회사 트러스트존 그래픽 렌더링 방법 및 그에 따른 디스플레이 장치
KR102236761B1 (ko) 2020-12-22 2021-04-06 주식회사 유니온플레이스 사물 인터넷 장치, 사물 인터넷 장치 관리 시스템 및 사물 인터넷 장치를 관리하는 방법
KR102377265B1 (ko) 2021-09-29 2022-03-22 주식회사 유니온플레이스 네트워크 내의 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090132776A1 (en) * 2006-04-24 2009-05-21 Nobukazu Kurauchi Data processing device, data processing method, data processing program, recording medium containing the data processing program and intergrated circuit
US20150089246A1 (en) * 2013-09-20 2015-03-26 Kabushiki Kaisha Toshiba Information processing apparatus and computer program product

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6115040A (en) 1997-09-26 2000-09-05 Mci Communications Corporation Graphical user interface for Web enabled applications
US20120084544A1 (en) 2010-10-04 2012-04-05 Ralph Robert Farina Methods and systems for providing and controlling cryptographically secure communications across unsecured networks between a secure virtual terminal and a remote system
KR100919643B1 (ko) * 2007-09-11 2009-09-30 (주)기가바이트씨앤씨 이원화된 독립적 환경을 통한 내외부망 분리 장치 및 그제어 방법
US8959363B2 (en) 2010-06-03 2015-02-17 Intel Corporation Systems, methods, and apparatus to virtualize TPM accesses
KR101227187B1 (ko) * 2010-08-16 2013-01-28 소프트캠프(주) 보안영역 데이터의 반출 제어시스템과 그 제어방법
DE102011116489A1 (de) 2011-10-20 2013-04-25 Giesecke & Devrient Gmbh Mobiles Endgerät, Transaktionsterminal und Verfahren zur Durchführung einer Transaktion an einem Transaktionsterminal mittels eines mobilen Endgeräts
KR20140027580A (ko) * 2012-07-06 2014-03-07 에스케이플래닛 주식회사 온라인 서비스에서의 보안 입력을 위한 방법, 이를 위한 장치 및 기록 매체
KR20140129716A (ko) 2013-04-30 2014-11-07 킹스정보통신(주) 클라우드 컴퓨팅 환경에서 클라우드 서버의 스토리지 보안 시스템 및 그 방법
US9071971B2 (en) 2013-07-24 2015-06-30 Cellco Partnership Adaptive and context based NFC access control filtering
US20150052614A1 (en) 2013-08-19 2015-02-19 International Business Machines Corporation Virtual machine trust isolation in a cloud environment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090132776A1 (en) * 2006-04-24 2009-05-21 Nobukazu Kurauchi Data processing device, data processing method, data processing program, recording medium containing the data processing program and intergrated circuit
US20150089246A1 (en) * 2013-09-20 2015-03-26 Kabushiki Kaisha Toshiba Information processing apparatus and computer program product

Also Published As

Publication number Publication date
US10637827B2 (en) 2020-04-28
KR20170012957A (ko) 2017-02-06
US20180145948A1 (en) 2018-05-24
WO2017018719A1 (ko) 2017-02-02

Similar Documents

Publication Publication Date Title
US9414433B2 (en) System and method for remotely operating a wireless device using a server and client architecture
US9152582B2 (en) Auto-configuration of a docked system in a multi-OS environment
US20220075696A1 (en) Application Exception Recovery
EP2622490B1 (en) Cross-environment communication framework
KR101741293B1 (ko) 동적 입력 장치의 맥락 제어 기법
TWI601055B (zh) 統一可延伸韌體介面(uefi)基本輸入/輸出系統(bios)受控計算裝置以及其方法和非暫時性媒體
KR102219861B1 (ko) 화면 공유 방법 및 그 전자 장치
US20160350543A1 (en) Electronic device and method of accessing kernel data
KR20150025584A (ko) 화면 공유 방법 및 그 전자 장치
US10606607B2 (en) Selecting operating systems based on a computing device mode
US11042398B2 (en) System and method for guest operating system using containers
US10885229B2 (en) Electronic device for code integrity checking and control method thereof
US10068068B2 (en) Trusted timer service
US11032342B2 (en) System and method for device audio
GB2498045A (en) Portable storage devices with two interfaces for coupling to a display and a host
JP2012079084A (ja) リモートデスクトップシステムおよび業務アプリケーション移行システム
US9978336B2 (en) Display controller and semiconductor integrated circuit devices including the same
US20110185396A1 (en) Information-processing apparatus, information-processing method, and computer-readable storage medium
US20220155819A1 (en) Trusted User Interface Display Method And Electronic Device
KR102411608B1 (ko) 보안 네트워크 시스템 및 그 데이터 처리 방법
US20150082179A1 (en) Monitoring virtual machine interface and local graphical user interface on a thin client and alternating therebetween
US20140351833A1 (en) Multi-computing environment operating on a single native operating system
US20140043267A1 (en) Operation Method of Dual Operating Systems, Touch Sensitive Electronic Device Having Dual Operating Systems, and Computer Readable Storage Medium Having Dual Operating Systems
US10102404B2 (en) Security of screen in electronic device
US11366766B2 (en) Electronic device and control method thereof

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant