KR100968307B1 - 트랜잭션-레벨 보안을 제공하는 방법, 컴퓨터 판독 가능한 기록 매체 및 장치 - Google Patents
트랜잭션-레벨 보안을 제공하는 방법, 컴퓨터 판독 가능한 기록 매체 및 장치 Download PDFInfo
- Publication number
- KR100968307B1 KR100968307B1 KR1020067017443A KR20067017443A KR100968307B1 KR 100968307 B1 KR100968307 B1 KR 100968307B1 KR 1020067017443 A KR1020067017443 A KR 1020067017443A KR 20067017443 A KR20067017443 A KR 20067017443A KR 100968307 B1 KR100968307 B1 KR 100968307B1
- Authority
- KR
- South Korea
- Prior art keywords
- security
- remote device
- information
- level
- processor
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/22—Arrangements for preventing the taking of data from a data transmission channel without authorisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/12—Arrangements for remote connection or disconnection of substations or of equipment thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/105—Multiple levels of security
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
트랜잭션-레벨 보안(transaction-level security)을 제공하는 방법 및 장치가 제공된다. 이러한 방법은 트랜잭션(transaction)의 적어도 하나의 객체와 연관된 보안 정보를 결정하는 단계와, 원격 장치가 상기 보안 정보의 적어도 일부분에 의해 표시된 보안 레벨을 제공할 수 있는지 여부를 판정하는 단계를 포함한다. 이러한 방법은 상기 원격 장치가 상기 보안 레벨을 제공할 수 있다는 판정에 응답하여 상기 원격 장치에 상기 객체를 전송하는 단계를 더 포함한다.
Description
본 발명은 일반적으로 통신 시스템에 관한 것이고, 보다 구체적으로는 통신 시스템 내에서 트랜잭션-레벨 보안(transaction-level security)을 제공하는 것에 관련된다.
컴퓨터 시스템 및 연관 기술은 사회의 여러 측면에 영향을 주고 있다. 현재 컴퓨터 시스템은 통상적으로, 컴퓨터 시스템의 출현 이전에 수동으로 실행되었던 작업(예를 들면, 문서 작성(word processing), 스케쥴링 및 데이터베이스 관리 등)의 대부분을 실행하고 있다. 최근에, 컴퓨터 시스템은 서로 결합되어 컴퓨터 네트워크를 형성함으로써, 이 컴퓨터 네트워크에 걸쳐 컴퓨터 시스템들이 전자적으로 통신하여 데이터를 공유할 수 있게 한다. 결과적으로, 컴퓨터 시스템에서 실행되는 많은 작업(예를 들면, 전자 우편의 액세스 및 웹 브라우징(web browsing) 등)이 컴퓨터 네트워크(예를 들면, 인터넷)를 통해 하나 이상의 다른 컴퓨터 시스템과 전자 통신하는 것을 포함하게 되었다.
컴퓨터 네트워크를 통한 전자 통신은 전형적으로 컴퓨터 시스템 사이에서 전자 메시지를 전송하여 컴퓨터 시스템이 원하는 방식으로 동작하게 하는 것을 포함한다. 전자 메시지를 전달하기 위해서, 송신하는 컴퓨터 시스템은 전형적으로 하나 이상의 통신 링크를 거쳐서 수신하는 컴퓨터를 향해 전자 메시지를 대응하는 데이터 패킷으로 전송한다(때때로 데이터 패킷을 "오버-더-와이어(over-the-wire)"로 전송한다고 지칭됨). 다음에 수신하는 컴퓨터 시스템은 데이터 패킷을 이용하여 메시지를 재구성한다. 몇몇 경우에, 데이터 패킷은 하나의 컴퓨터 시스템을 다른 컴퓨터 시스템으로 직접 결합(즉, 1대1 관계)하는 통신 링크에 걸쳐 전송될 수 있다. 그러나, 종종 통신 링크는 다대다 관계로 다수의 컴퓨터 시스템에 의해 이용될 수 있다. 예를 들면, 인터넷 서비스 제공자(internet Service Provider : ISP)에게 접속된 다수의 클라이언트는 각각 ISP에 접속된 여러 다른 클라이언트(및 다른 ISP에 접속된 사용자)와 전자적으로 통신할 수 있다.
적어도 부분적으로 전자 통신의 용이성 및 효율성에 기인하여, 전자 통신을 이용하는 개체의 개수 및 다양성은 매우 크다. 전자 통신이 보편적 형태의 통신이 되어감에 따라, 전자 통신을 위해 제공된 보안 레벨에 대한 더 큰 중요성이 부과되고 있다. 전자 통신이 은행 거래 요청 또는 공급자 주문 요청을 포함하는지 여부에 무관하게, 각각의 트랜잭션은 소정의 보안 레벨 및 무결성(integrity)을 요구한다.
전자 통신을 위한 보안을 제공하기 위해 다양한 종래 기술의 기법이 제안되어 왔다. 예를 들면, 인터넷 기반의 트랜잭션과 관련하여, 보다 안전한 웹 기반 의(Web-based) 트랜잭션을 형성하는 하나의 기법으로는 WS-S(Web Services-Security)가 있고, 이것은 메시지 무결성, 메시지 기밀성(confidentiality) 및 단일 메시지 인증을 통한 보호 품질을 제공하는 것과 관련된다. WS-S는 매우 다양한 보안 모델 및 암호화 기법을 수용하기 위해 이용될 수 있다. 일반적으로, WS-S는 웹 서비스 상호 작용(Web Services interactions)의 보안 특성을 기술하고, 여기에서 보안 특성은 WSDL(Web Services Descriptive Language) 정의에 의해 고정적으로 정의되고, 객체 내에 저장된 헤더 정보에 의해 지원된다.
WS-S를 포함하는 종래 기술의 기법은 트랜잭션-레벨 보안이 아닌 접속-레벨(또는 전송-레벨) 보안을 제공한다. 즉, 주어진 보안 접속 상에서 실행되는 비즈니스 트랜잭션은, 몇몇 트랜잭션이 다른 것과는 상이한 보안 레벨을 필요로 할 수 있음에도 불구하고 동일한 보호로 일치된다. 예를 들면, 신용 카드 번호의 전송을 포함하는 트랜잭션은 송장(invoices)의 전송을 포함하는 트랜잭션보다 더 높은 보안 레벨을 요구할 것이다. 그러나, 현재의 보안 기법은 트랜잭션-레벨 보안을 제공하지 않는다.
종래 기술의 보안 기법은 또한 적어도 이러한 기법이 다수의 네트워크 접속 또는 네트워크로 연결된 머신에 걸쳐 비즈니스 트랜잭션을 위한 일정한 보안 레벨을 유지하지 못한다는 다른 단점을 갖고 있다. 예를 들면, 비즈니스 트랜잭션이 적어도 그와 연관된 소정의 보안 레벨을 갖고, 비즈니스 트랜잭션이 완료되기 전에 다수의 독립적으로 관리되는 네트워크 접속을 통과해야 한다고 간주한다. 이러한 경우에, 종래 기술의 보안 기법은 비즈니스 트랜잭션이 하나의 컴퓨터 시스템으로 부터 다른 컴퓨터 시스템으로, 또는 하나의 네트워크 접속으로부터 다른 네트워크 접속으로 통과할 때 원하는 보안 레벨을 유지하는 메커니즘을 제공할 수 없다. 이러한 단점은 비즈니스 트랜잭션이 공격에 영향을 받기 쉽게 하여, 보안 문제를 유발시킨다.
본 발명은 상술된 하나 이상의 문제를 해결하기 위한 것이다.
본 발명의 일측면에서, 트랜잭션-레벨 보안을 제공하는 방법이 제시되었다. 이 방법은 트랜잭션(transaction)의 적어도 하나의 객체와 연관된 보안 정보를 결정하는 단계와, 원격 장치가 보안 정보의 적어도 일부분에 의해 표시된 보안 레벨을 제공할 수 있는지 여부를 판정하는 단계를 포함한다. 이러한 방법은 원격 장치가 보안 레벨을 제공할 수 있다는 판정에 응답하여 원격 장치에 객체를 전송하는 단계를 더 포함한다.
본 발명의 다른 측면에서, 트랜잭션-레벨 보안을 제공하는 장치가 제시된다. 이러한 장치는 제어 유닛에 통신 가능하게 결합된 저장 유닛을 포함한다. 저장 유닛은 주어진 트랜잭션과 연관된 객체를 저장한다. 제어 유닛은 적어도 하나의 객체와 연관된 보안 정보를 결정할 수 있고, 원격 장치가 보안 정보의 적어도 일부분에 의해 표시된 보안 레벨을 제공할 수 있는지 판정할 수 있다. 제어 유닛은 또한 원격 장치가 보안 레벨을 제공할 수 있다는 판정에 응답하여 원격 장치에 객체를 전송할 수 있다.
본 발명의 또 다른 측면에서, 트랜잭션-레벨 보안을 제공하기 위해서 인스트럭션을 포함하는 하나 이상의 머신 판독 가능 저장 매체를 포함하는 제품이 제공된다. 인스트럭션은, 실행될 때 프로세서가 주어진 트랜잭션의 적어도 하나의 객체와 연관된 보안 정보를 결정하게 하고, 원격 장치가 보안 정보의 적어도 일부분에 의해 표시된 보안 레벨을 제공할 수 있다는 것을 나타내는 응답을 원격 장치로부터 수신할 수 있게 한다. 인스트럭션은 또한, 실행될 때 프로세서가 원격 장치로부터 응답을 수신하는 것에 응답하여 원격 장치에 객체를 전송할 수 있게 한다.
본 발명의 또 다른 측면에서, 트랜잭션-레벨 보안을 제공하는 시스템이 제시된다. 이 시스템은 제 2 프로세서 기반의 장치에 통신 가능하게 결합된 제 1 프로세서 기반의 장치를 포함한다. 제 1 프로세서 기반의 장치는 주어진 트랜잭션의 적어도 하나의 객체와 연관된 보안 정보를 결정하고, 제 2 프로세서 기반의 장치가 보안 정보의 적어도 일부분에 의해 표시된 보안 레벨을 제공할 수 있는지 여부를 판정할 수 있다. 제 1 프로세서 기반의 장치는 또한 제 2 프로세서 기반의 장치가 보안 레벨을 제공할 수 있다는 판정에 응답하여 제 2 프로세서 기반의 장치에 객체를 전송할 수 있다. 제 2 프로세서 기반의 장치는 객체를 수신할 수 있다.
본 발명의 또 다른 측면에서, 트랜잭션-레벨 보안을 제공하는 방법이 제시된다. 이 방법은 제 1 장치에서, 적어도 하나의 객체의 전송을 요구하는 요청을 제 2 장치로부터 수신하는 단계를 포함한다. 이러한 요청은 객체와 연관되고, 제 1 장치가 보안 파라미터에 의해 표현된 보안 레벨을 제공할 수 있는지 여부를 판정하는 보안 정보의 적어도 일부분을 포함한다. 이러한 방법은 제 1 장치가 보안 레벨을 제공할 수 있는지 여부에 대한 판정에 기초한 표시를 제 2 장치에 전송하는 단계를 더 포함한다.
본 발명은 동일한 참조 부호가 동일 구성 요소를 나타내는 첨부된 도면과 함께 이하의 설명을 참조함으로써 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따라서 객체-레벨 보안을 제공하는 처리 모듈을 포함하는 통신 시스템을 도시하는 블록도.
도 2는 본 발명의 일 실시예에 따라서 도 1의 통신 시스템에서 이용될 수 있는 비즈니스 객체의 적어도 일부분에 대한 예시적인 구조를 도시하는 도면.
도 3은 본 발명의 일 실시예에 따라서 도 1의 처리 모듈의 적어도 하나의 측면을 도시하는 흐름도.
도 4는 본 발명의 일 실시예에 따라서 도 1의 통신 시스템에서 도 2의 비즈니스 객체에 의해 통과되는 예시적인 통신 경로를 도시하는 도면.
도 5는 본 발명의 일 실시예에 따라서 도 1의 통신 시스템에서 구현될 수 있는 프로세서 기반의 시스템을 도시하는 블록도.
본 발명의 예시적인 실시예가 이하에 제시되어 있다. 명료성을 위해서, 본 명세서에서는 실제 구현의 모든 특징부를 설명하지는 않았다. 물론 이러한 실제적 실시예의 개발에 있어서, 시스템 관련 제한 및 비즈니스 관련 제한 등과 같은 개발자의 특정한 목적을 달성하기 위해 각 구현마다 달라질 수 있는 여러 구현 특정 결정이 이루어질 수 있다는 것을 이해할 것이다. 또한, 이러한 개발 노력이 복잡하고 시간 소모적일 수 있기는 하지만, 그럼에도 불구하고 본 명세서의 이득을 이해하는 당업자들에게는 관례적 처리에 불과하다는 것을 이해할 것이다.
본 명세서에서 이용된 단어 및 문구는 당업자들에 의한 이러한 단어 및 문구의 이해와 부합되는 의미를 갖는 것으로 이해 및 해석되어야 한다. 용어 또는 구문에 대한 특수한 정의, 즉 당업자들에 의해 이해되는 통상적이고 보편적인 의미와는 상이한 정의가 본 명세서의 용어 및 구문과 부합하여 이용되도록 의도되지 않았다. 용어 또는 구문이 특수한 의미, 즉 당업자들에 의해 이해되는 의미 이외의 의미를 갖도록 의도하기 위해서는, 이러한 특수한 정의가 해당 용어 또는 구문에 대한 특수한 정의를 직접적이고 확실하게 제공하는 단정적인 방식으로 명세서 내에 명확히 표시될 것이다.
일반적으로, 이하에서 보다 상세히 설명되는 바와 같이, 본 발명의 하나 이상의 실시예에 따르면, 보안 관련 정보는 트랜잭션과 연관된 비즈니스 객체 내에 포함되고, 여기에서 정보는 해당 비즈니스 객체에 대해 요구되는 보안 레벨을 정의한다. 보안 정보를 비즈니스 객체와 함께 저장함으로써, 각각의 비즈니스 객체가 처리될 비즈니스 객체에 대해 원하는 보안 레벨에 관한 정보를 포함할 수 있는 것에 의해, 객체 레벨 또는 트랜잭션 레벨에서 보안을 제공할 수 있게 된다. 일 실시예에서, 비즈니스 객체가 전송 경로를 통과할 때, 해당 비즈니스 객체와 연관된 보안 관련 정보를 이용하여 처리 선택 사항을 결정한다. 예를 들면, 비즈니스 객체와 연관된 보안 관련 정보가 해당 비즈니스 객체가 HTTPS(Hyper Text Transmission Protocol over Secure Socket Layer) 접속을 통해 전송되어야 한다고 표시하면, 전송하는 객체 처리기는 비즈니스 객체가 전송되기 전에 수신 장치가 HTTPS 접속을 지원하는지 검증한다. 그 후에 수신 장치의 객체 처리기는 다음의 객체 처리기가 HTTPS 접속을 지원하는지 여부를 검증할 수 있다. 이러한 프로세스는 비즈니스 객체가 그 최종 목적지에 도달할 때까지 전송 경로를 따라서 여러 객체 처리기에 의해 반복될 수 있다. 이러한 방식으로, 여러 개의 객체 취급기가 그 경로 내에서 비즈니스 객체를 처리할 수 있다고 할지라도, 주어진 비즈니스 객체 또는 트랜잭션에 대한 보안 레벨은 전송 경로에 걸쳐 실질적으로 일정하게 유지된다.
본 명세서에서 이용된 바와 같은 "보안"이라는 용어는 원하는 기밀성(confidentiality), 인증, 무결성, 부인 방지(non-repudiation) 및/또는 허가의 레벨에 관련된 정보를 포함하지만 이것으로 한정되지 않는다. 일반적으로, "기밀성"은 도청자를 대비하여 교환되어야 하는 보호 정보를 지칭하고, "인증"은 e-비즈니스 응용 분야에 대한 액세스 및 신원의 적절한 증명을 갖는 자에 대한 데이터의 액세스를 제한하는 것을 지칭하고, "무결성"은 송신 동안에 정보의 우연적 또는 고의적인 수정을 방지하는 것을 지칭하고, "부인 방지"는 정보의 송신자가 그 정보를 송신했다는 것을 부인하는 것을 방지하는 것을 지칭하고, "허가"는 개체가 특정 리소스를 액세스할 수 있는지 여부를 판정하는 것을 지칭한다.
도 1을 참조하면, 프로세스 흐름이 구현될 수 있는 통신 시스템(100)은 본 발명의 일 실시예에 따라서 도시되어 있다. 통신 시스템(100)은 비밀 프로세스(회사 내부) 또는 공개적 프로세스(회사들 간)일 수 있는 비즈니스 프로세스를 구현하는 데 이용될 수 있다. 통신 시스템(100)은 여러 통신 링크(120)에 의해 통신 가능하게 결합된 복수의 프로세서 기반의 장치(110(1-5))를 포함한다.
통신 링크(120)는 트레이스(traces), 배선, 케이블, 무선 주파수 링크, 위성 링크 등을 포함하는 유선 및/또는 무선 링크의 임의의 바람직한 조합일 수 있다. 일 실시예에서, 링크(120)는 비밀 네트워크(예를 들면, 인트라넷) 또는 공개 네트워크(예를 들면, 인터넷)일 수 있는 네트워크를 형성하거나 네트워크에 결합될 수 있다. 도시되지 않았으나, 여러 장치(110(1-5))는 라우터(도시하지 않음), 게이트웨이(gateway)(도시하지 않음) 또는 다른 적절한 중간 조정(intervening) 장치에 의해 서로 결합될 수 있다.
프로세서 기반의 장치(110(1-5))는 서로 멀리 떨어진 지리학적 위치에 위치될 수 있다. 일 실시예에서, 장치(110(1-5))는 HTTP 및 XML(Extensible Markup Language) 등과 같이 널리 수용되는 표준을 통해 액세스될 수 있는 응용 분야인 웹 서비스를 제공할 수 있다. 당업자에게 잘 알려져 있는 바와 같이, XML은 응용 분야 사이 및 조직 사이에서 데이터의 정의, 전송, 타당성 검사 및 변환을 가능하게 하는 그 자체의 맞춤화된 태그(tags)를 설계자가 생성할 수 있게 한다.
전자 정보를 교환하기 위해서 다양한 프로토콜이 프로세서 기반의 장치(110(1-5))에 의해 이용될 수 있기는 하지만, 예시의 목적으로 장치(110(1-5))는 SOAP(Simple Object Accessing Protocol)로 지칭되는 통상적이고 잘 알려진 프로토 콜을 이용하여 통신한다. SOAP는 분산형의 분포 환경 내의 구성 요소들 사이에 객체를 전달하는 XML 기반의 프로토콜이다. SOAP 프로토콜은 메시지 내의 내용 및 그 내용의 처리 방법을 기술하는 프레임워크를 정의하는 엔벨롭(envelop)과, 데이터 타입을 표현하는 인코딩 룰의 세트와, 원격 절차 통화 및 응답을 표현하는 규정을 포함한다. SOAP는 전송 메커니즘으로서 HTTP 또는 다른 프로토콜을 이용할 수 있다. SOAP 프로토콜에 대한 추가적인 정보는 본 명세서에 참고 문헌으로 인용된 "SOAP Version 1.2 Part 1: Messaging Framework"라는 제목의 2003년 6월 24일자의 월드 와이드 웹 컨소시움에 의한 출판물에서 확인할 수 있다.
예시된 실시예에서 프로세서 기반의 시스템(110(1-5))은 비즈니스 객체(business object : BO)(130)를 통해 정보를 교환한다. 비즈니스 객체는 비즈니스 프로세스를 대표하는 객체이다. 비즈니스 객체는 객체의 상태를 정의하는 속성 및 객체의 행동을 정의하는 방법을 포함할 수 있다. 일 실시예에서 비즈니스 객체는 또한 다른 비즈니스 객체와 관계를 가질 수 있다. 비즈니스 객체는 원하는 작업 또는 원하는 트랜잭션을 실행하기 위해 함께 사용될 수 있다. 따라서, 트랜잭션은 하나 이상의 비즈니스 객체를 포함할 수 있다. 비즈니스 객체는 하나 이상의 데이터 패킷을 포함할 수 있다. 비즈니스 객체의 일례는 고객 송장 계좌일 수 있다. 도시된 실시예에서, 프로세서 기반의 시스템(110(1-5))이 SOAP를 이용하여 통신할 것으로 가정되기 때문에, 도 1에 도시된 BO(130)는 도 2에 도시되고 이하에 설명되는 SOAP 객체 구조를 이용한다. 본 발명의 여러 실시예는 비즈니스 객체로 한정되지는 않지만, 스트리밍 매체, 데이터베이스 테이블, 전자 우편, 인스턴트 메시지 등을 포함하는 다른 타입의 데이터 객체에 적용될 수 있다.
도 1에 도시된 실시예에서, 프로세서 기반의 장치(110(1-5))는 하나 이상의 BO(130)를 송신 및 수신하는 처리 모듈(145)을 포함한다. 일반적으로, 이하에 보다 자세히 설명되는 바와 같이, 처리 모듈(145)은 BO(130)를 해당 BO(130)와 연관된 보안 정보에 기초하여 다른 프로세서 기반의 장치(110)로 전송한다. 즉, 처리 모듈(145)은 먼저 해당 BO(130)와 연관된 보안 정보에 기초하여 BO(130)에 대해 원하는 보안 레벨을 결정한 다음, BO(130)를 원하는 보안 레벨을 제공할 수 있는 원격 장치(예를 들면, 프로세서 기반의 장치(110(1-5)) 중의 하나)로 송신한다. 예를 들면, BO(130)와 연관된 보안 관련 정보가 HTTPS 접속에 걸친 전송을 요구하면, 처리 모듈(145)은 원격 장치(110)가 HTTPS 접속에 걸쳐 BO(130)를 수신할 수 있는지 여부를 판정하도록 질의한다. 원격 장치(110)는 원하는 보안 레벨에 부합되도록 요구되는 적절한 모듈 또는 라이브러리에 대한 액세스를 갖는지 여부를 판정하기 위해 연관된 저장 유닛(151-153)을 액세스할 수 있다. 하나 이상의 저장 유닛(151-153)은 각각의 프로세서 기반의 장치(110) 내에 국부적으로 위치되거나, 이와 다르게 네트워크 상에서 이루어지는 것과 같이 원거리에 위치될 수 있다.
도 1에서, 예시를 목적으로 4개의 프로세서 기반의 장치(110(1), 110(2), 110(4), 110(5))는 각각의 저장 유닛(150, 151, 152, 153) 내에 저장된 원하는 보안 모듈(또는 라이브러리)에 대한 액세스를 갖도록 도시되는 한편, 하나의 프로세서 기반의 장치(110(3))는 원하는 보안 모듈(또는 라이브러리)에 대한 액세스를 갖지 않도록 도시되어 있다. 추가적으로, 예시를 목적으로 도 1은 제 1 프로세서 기 반의 장치(110(1))와 제 5 프로세서 기반의 장치(110(5)) 사이에서 전자 정보를 전송하는 2개의 통신 경로를 도시한다. 제 1 경로는 장치(110(1))→장치(110(2))→장치(110(3))→장치(110(5))를 포함하고, 제 2 경로는 장치(110(1))→장치(110(2))→장치(110(4))→장치(110(5))를 포함한다. 본 명세서의 이점을 파악하는 당업자라면 통신 시스템(100)의 도시된 구성이 본질적으로 예시를 위한 것이고, 여러 장치(110) 사이의 통신 경로가 각 실시예마다 달라질 수 있다는 것을 이해할 것이다.
도 1에서는 하나의 처리 모듈(145)이 주어진 프로세서 기반의 장치(110)와 함께 도시되어 있으나, 다른 실시예에서 처리 모듈(145)은 복수의 모듈을 포함하고, 그 각각의 모듈이 하나 이상의 원하는 특징을 제공하도록 할 수 있다. 예를 들면, 처리 모듈(145)은 주어진 BO(130)와 연관된 보안 정보를 액세스하는 모듈을 포함할 수 있다. 다른 예로서, 처리 모듈(145)은 그 보안 성능에 관한 정보를 제공하도록 원격 장치(110)에게 요청하는 모듈을 포함할 수 있다. 마찬가지로, 처리 모듈(145)은 본 명세서에 설명된 하나 이상의 특징을 실행하는 다른 모듈을 포함할 수 있다. 도 1에 도시된 처리 모듈(145)은 소프트웨어로 구현되었으나, 다른 실시예에서는 하드웨어 또는 하드웨어와 소프트웨어의 조합으로 구현될 수도 있다.
일 실시예에서, 처리 모듈(145)은 비즈니스 통합 어댑터(business integration adapter)(도시하지 않음)로 구현될 수 있는데, 이것은 패키징되고 맞춤형의 레거시 적용 분야, 데이터베이스, 거래 관계자의 시스템 및 웹 상의 공개 정보 저장부로부터 정보를 추출하는 것을 돕는 광범위한 접속 옵션을 제공할 수 있다. 일 실시예에서, 처리 모듈(145)은 이벤트 구동형(event-driven)의, 실시간 동기 접속, 거래 관계자와의 비동기적인 약한 결합의 접속, 소비자에 대한 동기적 주문형(on-demand) 접속 및 신뢰 가능한 거래 관계자에 대한 동기적 강한 결합의 접속도 지원할 수 있다.
도 1에서 단지 5개의 장치(110(1-5))만이 도시되었으나, 다른 실시예에서 통신 시스템(100)은 본 발명의 정신 및 범주를 벗어나지 않으면서 더 소수의 장치 또는 추가 장치를 포함할 수 있다. 일 실시예에서 장치(110(1-5))는 컴퓨터, 휴대형 전자 장치, 인터넷 제품 또는 다른 프로세서 기반의 장치를 포함할 수 있지만 이것으로 한정되지 않는다.
다음으로 도 2를 참조하면, 도 1의 비즈니스 객체(130)의 적어도 일부분에 대한 예시적인 구조물이 본 발명의 일 실시예에 따라서 도시되어 있다. 도 1의 통신 시스템(100)은 전자 정보를 송신 및 수신하기 위해 SOAP를 이용한다고 가정하였으므로, 도 2의 BO(130)는 SOAP 객체 구조물의 형태를 취한다. 물론, 다른 실시예에서 BO(130)의 구조는 이용된 프로토콜에 따라서 달라질 수 있다는 것을 이해할 것이다.
도 2에 도시된 BO(130)는 3개의 부분을 포함하는데, 엔벨롭(envelop) 섹션(210), 헤더 섹션(220) 및 몸체 섹션(230)을 포함한다. 엔벨롭 섹션(210)은 일반적으로 BO(130) 내의 내용과 그것의 처리 방법을 기술하는 프레임워크를 정의한다. 몸체 섹션(230)은 페이로드 정보(예를 들면, 데이터)를 포함할 수 있고, 헤더 섹션(250)은 하나 이상의 헤더(240(1-N))를 포함할 수 있다. 헤더 섹션(280)은 BO(130)를 위해 필요한 보안 특성을 나타내는 보안 정보를 포함할 수 있다. 본 발명의 일 실시예에 따르면, 이하에 상세히 설명되는 바와 같이 처리 모듈(145)은 BO(130)와 연관된 보안 정보의 적어도 일부분에 기초하여 BO(130)가 송신될 수 있는 원격 장치를 선택한다. 헤더 섹션(220) 내에 생성될 수 있는 여러 타입의 보안 정보의 예는 이하에 도 2를 참조하여 설명된다.
점선(245)으로 도시된 바와 같이, 헤더 섹션(220)은 BO(130)에 대해 요구되는 보안 레벨을 나타내는 다양한 보안 정보를 포함할 수 있다. 도 2에 도시된 보안 정보는 본질적으로 예시적이며, 다른 실시예에서 헤어 섹션(220) 내에 제공된 보안 정보의 타입 및 범위는 각 구현마다 달라질 수 있다는 것을 이해할 것이다. 도시된 실시예에서, 이하에 상세히 설명되는 바와 같이 헤더 섹션(220)은 기반이 되는 접속, 클래스, 신뢰 가능 개체 및/또는 로깅 가능성(logging capabilities)에 관한 보안 정보를 포함하는 복수의 서브 섹션(240(1-4))을 포함한다.
접속 서브섹션(240(1))은 BO(130)가 송신될 수 있는 기반이 되는 접속에 관한 정보를 포함할 수 있다. 도 2에 도시된 바와 같이, 접속은 BO(130)이 전송될 수 있는 접속의 타입뿐만 아니라, BO(130) 내에 전달되는 데이터를 암호화하도록 원하는 암호화 레벨을 표시할 수 있다. 예를 들면, 접속 타입은 HTTPS 접속이거나, SSH(secure shell program)에 기초할 수 있다. 암호화 레벨은 BO(130) 내에 저장되는 데이터를 암호화하는 데 이용되어야 하는 특정 암호화 알고리즘뿐만 아니라 데이터를 암호화하는 데 이용되어야 하는 암호화 키의 크기를 지정할 수 있다. 예를 들면, 서브섹션(240(1))에 도시된 바와 같이, 요구될 수 있는 암호화 알고리즘은 DES(Data Encryption Standard) 또는 EAS(Advanced Encryption Standard)이고, 키 크기는 56 또는 128 비트일 수 있다. 도 1과 관련하여, 일 실시예에서 BO(130)는 BO(130)의 서브섹션(240(1)) 내에 지정된 원하는 접속을 지원하는 장치(110)에게만 전송될 수 있다.
클래스 서브섹션(240(2))은 피어(peer) 장치(예를 들면, 원격 장치(110) 중의 하나)에서 실행되어 원하는 트랜잭션을 실행하는 소프트웨어 인스트럭션의 합의된 세트의 클래스(또는 라이브러리)에 관한 정보를 포함할 수 있다. 예를 들면, 보안 전문가가 특정한 소프트웨어 인스트럭션의 세트를 검사한 후, 그 인스트럭션의 세트는 비즈니스 개체에게 "안전한" 것으로서 지정된다. 지정된 인스트럭션의 세트는 비밀 또는 공개될 수 있고, 양 쪽 장치(110)에서 (소정 포맷으로) 이용될 수 있어야 한다. 클래스 서브섹션(240(2))에 지정된 소프트웨어 인스트럭션이 트랜잭션을 실행하기 위해 이용되었다면, 지정된 소프트웨어 인스트럭션이 미리 검증되었기 때문에 악성 프로그램으로부터의 간섭 가능성은 감소된다. 도 1과 관련하여, 일 실시예 내의 BO(130)는 BO(130)의 서브섹션(240(2)) 내에 지정된 소프트웨어 인스트럭션의 클래스를 지원하는 장치(110)로만 전송될 수 있다. 도 2는 BO(130)를 처리하기 위해서 원격 장치(110)가 보유하도록 요구될 수 있는 2개의 예시적인 클래스인 IBMSecureComm 및 IBMDES를 도시한다. 따라서 예를 들면, 원격 장치(110)가 IBMSecureComm 및 IBMDES에 대한 액세스를 갖지 않는다면, 송신 장치(110)는 BO(130)를 원격 장치(110)로 송신하지 못할 것이다.
신뢰 가능 개체 서브섹션(240(3))은 어느 장치(110)가 BO(130)를 처리하도록 허가되었는지를 판정하는 데 이용될 수 있는 인증서 정보를 포함할 수 있다. 예컨대, 도 2에 도시된 예에서, BO(130)는 "xxyyzzz"의 인증서 증명을 갖는 원격 장치(110)에만 전송될 수 있다. 인증서는 통상적으로 무언가를 단정하기 위해 암호화에 이용된다. 예를 들면, VeriSign은 인증 기관이다. 개체가 VeriSign를 신뢰하고, VeriSign이 어떤 대상을 인증하면, 개체는 인증된 데이터를 유효한 것으로 취급해야 한다. 도 1에 도시된 실시예와 관련하여, 시스템(100) 내의 하나 이상의 장치(110)에 대해 인증서가 발행될 수 있고, 일 실시예에서는, 인증서를 갖고, 그에 따라 인증 증명서를 갖는 장치(110)만이 BO(130)를 처리하도록 허용된다.
로깅 가능성 서브섹션(240(3))은 원격 장치(110)가 BO(130)를 수신하기 전에 가지고 있어야 하는 로깅 가능성의 타입에 관한 정보를 포함할 수 있다. 서브섹션(240(3))은 원격 장치(110)가 어느 저장 위치로 로깅된 정보를 전송해야 하는지를 나타내는 위치 식별자를 지정할 수 있다. 로깅은 BO(130)가 통과하는 경로를 추적할 수 있게 하고, 문제 해결을 위해 이용될 수 있는 바람직한 보안 특성이다. 도 1에 도시된 실시예와 관련하여, 선택 장치(110)(또는 노드)가 트랜잭션의 체인 내에서 오작동하면, 로깅에 대한 검사가 그 부정 사항을 드러낼 수 있을 것이다. 여러 타입의 로깅 가능성은 요구되는 로깅의 레벨을 나타낸다. 예를 들면 도 2에서, "엔트리 레벨" 타입, "작동 레벨" 타입 및 "퇴장(exit) 레벨" 타입은, BO(130)가 초기에 처리(예를 들면, 엔트리 레벨), 조작(예를 들면, 작동 레벨), 전송(예를 들면, 퇴장 레벨)될 때, 로그 메시지가 특정한 위치(예를 들면, log.ibm.com)로 전달되어야 한다는 것을 나타낼 수 있다. 서로 다른 장치(110(1-4))는 서로 다른 로깅 가능성을 가질 수 있으므로, 일 실시예에서, BO(130)를 현재 처리하는 처리 모듈(145)은 단지 원하는 레벨의 로깅 가능성을 지원하는 원격 장치(110)에게만 BO(130)를 송신할 것이다.
헤더 섹션(220) 내에 저장된 보안 정보가 BO(130)를 선택 원격 장치로 송신하는 데 이용될 수 있는 방법에 대한 일례는 이하에 설명되는 도 4를 참조하여 설명된다.
다음으로 도 3을 참조하면, 본 발명의 일 실시예에 따라서 처리 모듈(145)의 일측면에 대한 흐름도가 도시되어 있다. 명료성을 위해서, 도 3의 흐름도는 도 1의 통신 시스템(100)과 관련하여 설명되고, 특히 제 1 프로세서 기반의 장치(110(1))로부터 제 5 프로세서 기반의 장치(110(5))로 하나 이상의 BO(130)를 송신하는 것과 관련하여 설명된다. 예시를 목적으로, BO(130)는 초기에 안전한 환경 내에 존재하고, BO(130)가 통신 시스템(100) 내에서 송신될 때, 그와 관련된 보안 파라미터에 따라서 BO(130)에 대한 보안 레벨을 유지하는 것이 바람직하다고 가정한다. 또한, 제 3 프로세서 기반의 장치(110(3))는 BO(130)에 의해 요구되는 원하는 보안 레벨을 제공할 수 없다고 가정한다. 즉, 장치(110(3))는 원하는 보안 레벨을 제공하기에 적절한 모듈(들)에 대한 액세스를 갖지 않는다고 가정한다. 예를 들면, 장치(110(3))는 HTTPS 프로토콜 모듈에 대한 액세스를 갖지 않을 수 있고, 그에 따라서 BO(130)가 안전한 HTTPS 접속(HTTP 접속에 반대됨)에 걸친 전송을 요구한다고 해도 HTTPS 가능성을 제공할 수 없다. 추가적인 예로서, 장치(110(3))는 BO(130)의 헤더 섹션(220) 내에 지정된 원하는 트래킹 레벨을 제공하기에 적절한 "로깅" 모듈(도 2의 구성 요소(240(4)) 참조)에 대한 액세스를 갖지 않을 수 있다. 마찬가지로, 장치(110(3))는 BO(130)와 연관된 원하는 보안 레벨을 제공하는 다른 모듈(들)에 대한 액세스를 갖지 않을 수 있다. 명료성을 위해서, 주어진 BO(130)와 연관된 원하는 보안 레벨을 제공하기 위해 필요한 모듈(들)은 이하에서 "보안 모듈(들)"로 지칭된다.
도 3에서, 제 1 프로세서 기반의 시스템(110(1))의 처리 모듈(145)은 BO(130)의 헤더(240(1-N)) 내에 저장된 보안 정보를 액세스함으로써 BO(130)와 연관된 보안 정보를 결정한다(단계(310)). 상술된 바와 같이, 헤더(240(1-N))는 암호화 레벨, 통신 보안, 원하는 클래스, 로깅 가능성 등과 같은 다양한 보안 정보를 포함할 수 있는데, 여기에서 보안 정보의 적어도 일부분은 BO(130)에 대해 원하는 보안 레벨을 나타낸다. 추가적으로, 다른 실시예에서, 보안 정보는 헤더 섹션(220)이 아닌 BO(130)의 다른 부분에 저장될 수 있다.
처리 모듈(145)은 BO(130)를 수신할 후보가 될 수 있는 원격 장치(110)를 통신 경로 내에서 식별한다(단계(315)). 도시된 도 1의 예시적인 통신 시스템(100)에서, 상술된 바와 같이 제 1 프로세서 기반의 장치(110(1))로부터 제 5 프로세서 기반의 장치(110(5))로 BO(130)를 송신하는 2개의 가능한 통신 경로가 존재한다. 제 1 경로는 장치(110(1))→장치(110(2))→장치(110(3))→장치(110(5))를 포함하고, 제 2 경로는 장치(110(1))→장치(110(2))→장치(110(4))→장치(110(5))를 포함한다. 따라서 도 1의 통신 시스템(100)과 관련하여, 처리 모듈(145)은 BO(130)를 송신할 후보로서 제 2 프로세서 기반의 장치(110(2))를 식별할 수 있다(단계(315)).
다음에 처리 모듈(145)은 식별된 원격 장치(110(2))가 BO(130)를 위한 원하는 보안 레벨을 제공할 수 있는지 여부를 판정한다(단계(320)). 일 실시예에서, 처리 모듈(145)은 원격 장치(110(2))로부터 정보를 요청함으로써 원격 장치(110(2))가 원하는 보안 레벨을 제공할 수 있는지 여부를 판정할 수 있다(단계(320)). 예를 들면, 처리 모듈(145)은 원격 장치(110(2))로 요청을 전송할 수 있고(단계(325)), 여기에서 요청은 BO(130)를 전송하기 위해서 요구되는 보안 레벨과 관련된 정보를 포함할 수 있다. 일 실시예에서, 원격 장치(110(2))로 전송되는(단계(325)) 정보는, 도 2의 서브섹션(240(1-4))에 도시된 것과 같은 정보를 포함할 수 있다. 예를 들어, BO(130)가 단지 안전한 HTTPS 접속에 걸쳐서 전송될 수 있다면, 처리 모듈(145)은 이것을 원격 장치(110(2))에게 표시할 수 있다. 다른 예로서, BO(130)가 특정 클래스 또는 라이브러리의 실행 가능 인스트럭션 세트(도 2의 구성 요소(240(2)) 참조)를 갖는 원격 장치(110)에게로만 전송될 수 있다면, 처리 모듈(145)은 원격 장치(110(2))로 요청을 전송하여(단계(325)), 필수적인 클래스 또는 라이브러리의 인스트럭션에 대한 액세스를 갖는지 여부를 나타낸다. 마찬가지로, BO(130)가 원격 장치(110(2))로 전송되기 전에 특정한 로깅 가능성(예를 들면, 도 2의 구성 요소(240(4)) 참조)이 요구된다면, 처리 모듈(145)은 그 사항을 원격 장치(110(2))에게 표시할 수 있다. 다른 실시예에서, 원하는 보안 레벨과 관련된 다른 정보가 원격 장치(110(2))로 전송될 수 있다.
원격 장치(110(2))는, 전송된 요청을 수신하면 자신이 원하는 보안 레벨을 지원하기에 적절한 보안 모듈(들)에 대한 액세스를 갖는지 여부를 판정할 수 있다. 예를 들어, HTTPS 접속이 요구된다면, 원격 장치(110(2))는 HTTPS 모듈을 액세스한 다음, HTTPS 모듈을 실행하여, BO(130)를 수신하기 전에 HTTPS 접속을 형성할 수 있는지 여부를 판정한다. 원하는 보안 레벨을 위해 필요한 모듈(들)은 예를 들면, 원격 장치(110(2))와 연관된 저장 유닛(151) 내에 저장될 수 있다. 다음에 타겟 장치(110(2))는 제 1 프로세서 기반의 장치(110(1))의 처리 모듈(145)에 응답하여 자신이 원하는 보안 레벨을 지원할 수 있는지 여부를 나타낼 수 있다.
처리 모듈(145)은 원격 장치(110)가 원하는 보안 레벨을 제공할 수 있는지 여부에 대한 표시를 원격 장치(110(2))로부터 수신한다(단계(330)). 다른 실시예에서, 처리 모듈(145)은 원격 장치(110(2))가 제공할 수 있는 보안 레벨을 나타내는 목록을 수신(단계(330))할 수 있는데, 여기에서 처리 모듈(145)은 수신된 목록에 기초하여 원격 장치(110(2))가 원하는 보안 레벨을 제공할 가능성을 갖는지 여부를 판정한다. 예를 들면, 원격 장치(110(2))에 의해 제공된 목록은 원격 장치(110(2))가 HTTPS 접속 또는 SSH 접속, DES 알고리즘 가능성, 비 로깅 가능성(no logging capability) 등을 제공할 수 있는지를 나타내는 정보를 포함할 수 있다. 따라서 이 실시예에서, 제 1 프로세서 기반의 장치(110(1))(원격 장치(110(2))의 반대)의 처리 모듈(145)은 원격 장치(110(2))가 필수적 가능성을 갖는지 여부에 대한 판정을 실행한다.
원격 장치(110(2))가 원하는 보안 레벨을 제공할 수 있다면, 제 1 프로세서 기반의 장치(110(1))의 처리 모듈(145)은 원격 장치(110(2))에게 적절한 모듈(들)로 자신을 구성하도록 표시한다(단계(340)). 예를 들어, HTTPS 접속이 요구되면, 원격 장치(110(2))는 장치(110(2))의 로컬 저장 유닛 상에 저장되었거나 장치(110(2))가 액세스할 수 있는 네트워크 드라이브 상에 저장될 수 있는 HTTPS 서브루틴(subroutines)으로 자신을 구성하도록 요청될 수 있다. 몇몇 경우에, 원격 장치(110(2))는 미리 적절한 보안 모듈(들)로 구성될 수 있는데, 이 경우에 원격 장치(110(2))는 이러한 모듈(들)을 리로딩(reload)할 필요가 없을 것이다. 처리 모듈(145)은 BO(130)를 원격 장치(110(2))로 전송한다(단계(350)). 일 실시예에서, 원하는 경우에, 처리 모듈(145)은 (단계(350)에서) BO(130)를 전송하기 전에 원격 장치(110(2))가 보안에 부합되는지(즉, 적절한 모듈(들)로 자신이 구성되어 있는지) 여부를 검증할 수 있다. 이것은 보안 부합성을 나타내는 전자 정보를 원격 장치(110(2))로부터 요청하는 것을 포함하는 임의의 적절한 기법을 이용하여 이루어질 수 있다. 이와 다르게, 처리 모듈(145)은 보안 부합성의 검증을 위해서 원격 장치(110(2))에 테스트 메시지를 전송한 다음 원격 장치(110(2))로부터 응답을 수신할 수 있다.
처리 모듈(145)이 원격 장치(110(2))가 BO(130)에 의해 지정된 보안 레벨을 제공할 가능성을 갖지 않는다고 판정하면, 처리 모듈(145)은 일 실시예에서, BO(130)가 송신될 수 있는 다른 원격 장치(110)를 식별한다(단계(360)). 그러나, 이 경우에 타겟 장치(110(2))가 적절한 액세스 모듈(들)에 대한 액세스를 갖는다고 가정하였으므로, BO는 제 2 프로세서 기반의 장치(110(2))로 전송된다(단계(350)).
상술된 동작은 BO(130)가 그 최종 목적지에 도달할 때까지 통신 경로를 따라서 각각의 장치(110)에 의해 반복될 수 있다. 예를 들면, 이러한 예에서 BO(130)가 제 2 프로세서 기반의 시스템(110(2))으로 전송되면, 제 2 프로세서 기반의 시스템(110(2))의 처리 모듈(145)은 도 3에 도시된 하나 이상의 동작을 실행하여 BO(130)와 연관된 보안 레벨을 유지한다. 특히, 장치(110(2))의 처리 모듈(145)은 BO(130)의 헤더 섹션(220)(도 2 참조) 내에 저장된 보안 정보를 액세스(단계(310))하여 원하는 보안 레벨을 판정한다. 일 실시예에서, BO(130)는 통신 경로에 따른 접속 또는 세그먼트 레벨에서 원하는 보안 레벨을 지정하는 보안 정보를 포함할 수 있다. 즉, BO(130)는 제 1 및 제 2 프로세서 기반의 장치(110(1-2)) 사이에서 원하는 보안 레벨을 지정하고, 또한 제 2 및 제 4 프로세서 기반의 장치(110(2), 110(4)) 사이 등에서 원하는 서로 다른 보안 레벨을 지정하는 보안 정보를 포함할 수 있다. 다른 실시예에서, 보안 레벨은 BO(130)를 처리하는 각 장치(110(1-5))에 대해 BO(130) 내에 정의될 수 있다. 이러한 방식으로, BO(130)가 통신 경로를 따른 접속 또는 세그먼트 레벨에서 원하는 보안 레벨을 지정할 수 있기 때문에 더 큰 세밀도(granularity) 레벨을 획득할 수 있다.
제 2 프로세서 기반의 장치(110(2))의 처리 모듈(145)이 BO(130)와 연관된 보안 정보를 판정하면(단계(310)), 그 처리 모듈(145)은 BO(130)를 수신할 후보가 될 수 있는 원격 장치(110)를 식별한다(단계(315)). 도 1에 도시된 통신 시스템(100)에서, 처리 모듈(145)은 2개의 장치, 즉 장치(110(3)) 및 장치(110(4))를 구비하는데, 이들은 BO(130)가 그 최종 목적지(즉 상술된 바와 같이 이 예에서는 제 5 프로세서 기반의 장치(110(5))임)로 최종적으로 전달되기 전에 BO(130)를 수신할 후보가 될 수 있다. 장치(110(2))의 처리 모듈(145)이 제 3 프로세서 기반의 장치(110(3))를 가능한 후보로서 식별한다고 가정하면(단계(315)), 처리 모듈(145)은 제 3 프로세서 기반의 장치(110(3))가 원하는 보안 레벨을 제공할 수 있는지 여부를 판정한다(단계(320)). 이러한 경우에, 장치(110(3))가 원하는 보안 레벨을 제공하기에 적절한 모듈(들)에 대한 액세스를 갖지 않는다고 가정하였기 때문에, 처리 모듈(145)은 BO(130)를 수신하기에 적합한 대체할 장치(110)를 탐색한다. 즉, 처리 모듈(145)은 도시된 예에서 제 4 프로세서 기반의 장치(110(4))가 될 수 있는 다른 원격 장치(110)를 식별한다(단계(360)).
이 예에서 제 4 프로세서 기반의 장치(110(4))가 원하는 보안 레벨을 제공할 수 있으므로, 제 2 프로세서 기반의 장치(110(2))의 처리 모듈(145)은 자신을 적절한 모듈(들)로 구성하도록 장치(110(4))에게 통지(단계(340))한 다음, BO를 장치(110(4))로 전송한다(단계(350)).
상술된 절차는 BO(130)가 그 최종 목적지(이 경우에는 제 5 프로세서 기반의 장치(110(5))임)로 전달될 때까지 제 4 프로세서 기반의 장치(110(4))의 처리 모듈(145)에 의해 마찬가지로 실행될 수 있다. 도 4는 도 1의 비즈니스 객체(130)가 본 발명의 일 실시예에 따라서 제 1 프로세서 기반의 장치(110(1))로부터 제 5 프로세서 기반의 장치(110(5))로 통과하는 통신 경로(점선으로 표시됨)를 도식적으로 나타낸다. 도시된 바와 같이, 도시된 예에서 제 3 프로세서 기반의 장치(110(3))가 보안 레벨을 제공하기에 적합한 보안 모듈(들)에 대한 액세스를 갖지 않기 때문에, 제 2 프로세서 기반의 장치(110(2))는 그 대신에 이 예에서 원하는 보안 레벨을 제공할 수 있는 제 4 프로세서 기반의 장치(110(4))를 통해 제 5 프로세서 기반의 장치(110(5))로 BO(130)를 전송한다. 이와 같이, BO(130)와 연관된 보안 레벨을 지원하게 하기 위해서 여러 수신 장치(110)가 그 자신을 적절한 모듈(들)을 가지고 구성하도록 요구함으로써(또는 수신 장치(110)가 적절한 모듈(들)로 구성되는지 확인하는 것에 의해서), 본 발명의 일 실시예에 따라서 끝에서 끝까지 실질적으로 일정한 보안 레벨을 유지할 수 있다.
다시 도 3을 참조하면, 도 3에 도시된 흐름도 내에 도시된 동작은 객체 레벨 보안을 제공하는 단지 하나의 실시예를 나타낸 것이고, 다른 실시예에서 본 발명의 정신 및 범주를 벗어나지 않으면서 설명된 동작에 대한 다양한 수정이 이루어질 수 있다는 것을 유의하라. 예를 들면, 하나 이상의 설명된 동작은 구현 방식에 따라서 함께 결합되거나 모두 생략될 수 있다. 예를 들면, 일 실시예에서 처리 모듈(145)은 적절한 보안 모듈(들)을 구성하도록 원격 장치에게 표시(단계(340))하지 않고, 그 대신에 원격 장치(110)는 원하는 보안 레벨을 나타내도록 전송된(단계(325)) 요청을 수신하는 것에 따라 적절한 모듈(들)을 자동적으로 로딩할 수 있다. 앞서 언급된 바와 같이, 보안 모듈(들)은 원격 장치의 로컬 저장 유닛 내에 국부적으로 저장되거나, 이와 다르게 네트워크에 걸쳐 액세스 가능한 원격 저장 유닛에 저장될 수도 있다. 따라서, 원격 장치(110)가 자신을 적절한 모듈(들)로 자동적으로 구성한다면, 이러한 실시예에서 처리 모듈(145)은 자신을 적절한 모듈(들)로 구성하도록 원격 장치(110)에게 표시를 제공(단계(340))할 필요가 없다. 마찬가지로, 일 실시예에서 BO(130)가 원하는 보안 레벨을 제공하기에 적합한 보안 모듈에 대한 액세스를 갖는 프로세서 기반의 장치(110(1-5))의 사전 결정된 목록을 식별한다면, 원격 장치가 원하는 보안 레벨을 제공할 수 있는지 여부를 판정하는 동작(단계(320))은 생략될 수 있다. 예를 들면, 일 실시예에서, BO(130)는 헤더(240(3))(도 2 참조) 내에서 하나 이상의 "신뢰 가능 개체"를 지정할 수 있는데, 여기에서 이러한 개체는 적절한 보안 모듈(들)에 대한 액세스를 갖는다고 가정된다. 이와 같이, 이 실시예에서 BO(130)를 송신하도록 시도하는 처리 모듈(145)은 원하는 보안 레벨을 원격 장치(110)(즉, 신뢰 가능 개체 중의 하나)에 송신할 수 있고, 그 후에 원격 장치(110)는 BO(130)를 수신하기에 적합한 모듈(들)로 자신을 구성할 수 있다. 설명된 동작은 임의의 원하는 순서대로 실행될 수 있고, 그에 따라 도 3에 도시된 순서대로 실행될 필요가 없다.
본 발명의 일 실시예는 도 1의 통신 시스템(100) 내에서 발생하는 특정 트랜잭션과 관련하여 설명되었다. 본 명세서에 논의된 특정한 트랜잭션은 다기업 신용 조회(multi-company credit check)이다. 도 1의 여러 장치(110)가 신용 조회 검증의 프로세스에 참여하는 서로 다른 기업을 나타낸다고 가정한다. 다수의 기업이 중앙 공통 지점(central coordination point)을 통과하지 않고 이러한 트랜잭션에 참여할 수 있는 한 가지 방법은 BPEL(Business Process Execution Language)이고, 이것은 당업자들에게 잘 알려져 있으므로 본 명세서에서 상세하게 설명하지 않는다.
도 1에서, 소정의 원격 위치에 위치하는 고객이 신용 카드를 신청하기 위해 제 1 장치(110(1))에 유지된 웹 사이트(예를 들면, creditcard.com)를 액세스한다고 가정한다. 이러한 예를 위해서, 신용 카드를 발행하기 전에 고객의 신원, 신용 히스토리 검사 및 탐색 결과의 증명을 포함하는 여러 검증 절차가 완료되어야 하고, 이러한 절차는 여러 장치(110)에서 실행될 수 있다고 가정한다. 특히, 예시를 목적으로 제 2 장치(110(2))는 고객의 신원을 검증할 수 있고, 제 3 및 제 4 장치(110(3-4))는 각각 신용 히스토리 검사를 실행할 수 있고, 제 5 장치(110(5))는 결과를 증명할 신뢰 가능 기관을 구비하여 그 결과를 증명한다고 가정한다.
고객이 장치(110(1))에 의해 유지되는 웹 사이트에 그 자신의 개인 정보를 제공할 때, 장치(110(10)의 처리 모듈(145)은 상술된 절차(예를 들면, 고객 신원 검증, 신용 조회 검증, 검사 결과 인증)를 실행할 트랜잭션을 개시하여 해당 고객이 신용 카드의 자격을 갖는지 판정한다. 이러한 트랜잭션의 기밀 특성에 기인하여, 처리 모듈(145)은 이러한 트랜잭션이 3DES 암호화 알고리즘을 이용하여 암호화되고, 안전한 HTTPS 접속을 통해 전송되어야 한다는 것을 (BO의 헤더 내에) 표시할 수 있다. 따라서, 이 실시예에서 원하는 보안 레벨은 3DES 알고리즘을 이용하여 암호화된 정보를 갖는 안전한 HTTPS 접속이다.
고객의 신원을 검증하기 위해 제 2 장치(110(2))에 트랜잭션(또는 그 트랜잭션과 연관된 BO)을 전달하기 전에, 제 1 장치(110(1))의 처리 모듈(145)은 제 2 장치(110(2))가 HTTPS 접속을 지원하고 3DES 암호화를 처리할 가능성을 갖는지 여부를 판정한다. 제 2 장치(110(2))가 이러한 가능성을 갖지 않으면, 제 1 장치(110(1))의 처리 모듈(145)은 제 2 장치(110(2))에 의해 제공되는 고객 신원 검증 서비스를 이용하지 못하게 되고, 처리 모듈(145)은 신원 검증을 실행하고 원하는 보안 레벨을 제공할 수 있는 다른 장치(110)를 탐색하거나, 이러한 장치(110)가 이용 가능하지 않다면 사용자에게 어떤 트랜잭션도 완료될 수 없다고 통지하거나 완료는 가능하지만 원하는 보안 레벨을 갖지 않는다고 통지할 수 있다. 그러나, 제 1 장치(110(1))의 처리 모듈(145)이 제 2 장치(110(2))가 원하는 보안 레벨을 제공할 가능성을 갖는다고 판정하면, 제 1 장치(110(1))는 그 트랜잭션을 (암호화된 데이터와 함께) HTTPS 접속을 통해 제 2 장치(110(2))로 전달한다.
제 2 장치(110(2))가 고객의 신원을 검증한 후, 트랜잭션과 연관된 BO는 신용 조회를 실행하기 위해 다른 장치(110)로 전달되어야 한다. 이 예에서, 상술된 바와 같이 제 3 및 제 4 장치(110(3-4))는 신용 조회를 각각 제공할 수 있다. 그러나, 예시를 목적으로 제 3 장치(110(3))는 원하는 보안 레벨(즉, 3DES 암호화를 갖는 HTTPS 접속)을 제공할 수 없는 한편, 제 4 장치(110(4))는 그 보안 레벨을 제공할 가능성을 갖는다고 가정한다. 따라서, 제 2 장치(110(2))의 처리 모듈(145)이 트랜잭션(또는 그와 연관된 BO)을 전달한다면, 제 3 장치(110(3))가 아닌 제 4 장치(110(4))에 트랜잭션을 전달할 것이다.
제 4 장치(110(4))가 신용 조회 히스토리를 실행한 후에, 정보의 결과는 제 3 자에 의해 검증되어야 하는데, 이 예에서는 제 5 장치(110(5))에 의해 실행될 수 있다. 상술된 절차와 마찬가지로, BO(신용 히스토리의 결과를 포함할 수 있음)를 제 5 장치(110(5))로 전달하기 전에, 제 4 장치(110(4))의 처리 모듈(145)은 제 5 장치(110(5))가 원하는 보안 레벨을 제공할 수 있는지 여부를 검증한다. "예"라면, BO는 제 5 장치(110(5))로 전달되고, 제 5 장치(110(5))는 검색 결과를 검증한다. 일 실시예에서, 제 5 장치(110(5))는 제 1 장치(110(1))에 다시 검증 결과를 제공하여 트랜잭션을 완료할 수 있다. 따라서, 상술된 예에서 트랜잭션과 연관된 BO 내에 지정된 보안 레벨을 유지하면서 트랜잭션을 완료할 수 있다. 따라서, 본 발명은 각각의 트랜잭션마다 보안을 제공할 수 있다. 상술된 예는 단일 BO를 포함하는 트랜잭션과 관련하여 설명되었으나, 다른 실시예에서 주어진 트랜잭션은 그와 연관된 복수의 BO를 가질 수 있고, 여기에서 각각의 BO는 그 내부에 지정된 자신의 보안 레벨을 가질 수 있다.
다음으로 도 5를 참조하면, 본 발명의 일 실시예에 따라서 도 1의 통신 시스템(100) 내에 구현될 수 있는 장치(500)에 대한 양식화된 블록도가 도시되어 있다. 즉, 장치(500)는 프로세서 기반의 장치(110(1-5))의 일 실시예를 나타낼 수 있다. 장치(500)는 제어 유닛(515)을 포함하는데, 이 제어 유닛(515)은 일 실시예에서 노스 브리지(north bridge)(520)와 인터페이스로 연결될 수 있는 프로세서일 수 있다. 노스 브리지(520)는 PCI(peripheral component interconnect) 버스(530)에 대한 브리지로서 기능할 뿐만 아니라 메모리(525)에 대한 메모리 관리 기능을 제공한다. 도시된 실시예에서, 시스템(500)은 PCI 버스(530)에 결합된 사우스 브리지(south bridge)(535)를 포함한다.
저장 유닛(550)은 사우스 브리지(535)에 결합된다. 저장 유닛(550) 내에 설치된 소프트웨어는 장치(500)에 의해 실행될 특징에 따라 다를 수 있다. 예를 들어, 장치(500)가 도 1의 프로세서 기반의 장치(110)로서 구현되면, 저장 유닛(550)은 제어 유닛(515)에 의해 실행될 수 있는 처리 모듈(145)을 적어도 포함할 수 있다. 도시되지는 않았으나, 일 실시예에서 윈도우즈, 디스크 운영 시스템(Disk Operating System), 유닉스(Unix), OS/2, 리눅스(Linux), MAC OS 등과 같은 운영 시스템이 저장 유닛(550)에 저장되고, 제어 유닛(515)에 의해 실행될 수 있다는 것을 이해할 것이다. 저장 유닛(550)은 또한 시스템(500)의 다양한 하드웨어 부품에 대한 장치 드라이버를 포함할 수 있다.
도시된 실시예에서, 시스템(500)은 사우스 브리지(535)에 결합된 디스플레이 인터페이스(547)를 포함한다. 시스템(500)은 디스플레이 인터페이스(547)를 통해 디스플레이 장치(548)에 정보를 표시할 수 있다. 시스템(500)의 사우스 브리지(535)는 입력 인터페이스(546)를 통해서 키보드(548) 및/또는 마우스(549) 등과 같은 입력 장치를 이용하여 사용자가 정보를 입력할 수 있게 하는 제어기(도시하지 않음)를 포함할 수 있다.
도시된 실시예에서 시스템(500)의 사우스 브리지(535)는 예를 들면, 근거리 네트워크 카드 등을 수신할 수 있는 네트워크 인터페이스(560)에 결합된다. 다른 실시예에서, 네트워크 인터페이스(560)는 USB(Universal Serial Bus) 인터페이스 또는 무선 통신용 인터페이스일 수 있다. 시스템(500)은 네트워크 인터페이스(560)를 통해 다른 장치와 통신한다. 도시되지 않았으나, 네트워크 인터페이스(560)는 네트워크 프로토콜 스택과 연결될 수 있는데, 이 네트워크 프로토콜 스택의 일례로는 UDP/IP(User Datagram Protocol/Internet Protocol) 스택이 존대한다. UDP는 1980년 8월자의 "User Datagram Protocol"이라는 제목의 RFC 768에 개시되어 있다. 일 실시예에서, 인바운드(inbound) 및 아웃바운드(outbound) 패킷은 모두 네트워크 인터페이스(560) 및 네트워크 프로토콜 스택을 통해 전달될 수 있다.
도 5의 장치(500)의 구성은 본질적으로 예시를 위한 것이고, 다른 실시예에서 장치(500)는 본 발명의 정신 및 범주를 벗어나지 않으면서 더 소수의, 추가적인 또는 상이한 구성 요소를 포함할 수 있다는 것을 이해할 것이다. 예를 들면, 다른 실시예에서, 장치(500)는 노스 브리지(520) 또는 사우스 브리지(535)를 포함하지 않거나, 2개의 브리지(520, 535) 중 하나만을 포함하거나, 2개의 브리지(520, 535)의 기능을 결합할 수 있다. 다른 예로서, 일 실시예에서 시스템(500)은 하나 이상의 제어 유닛(515)을 포함할 수 있다. 마찬가지로, 본 발명의 정신 및 범주에 부합되는 다른 구성을 이용할 수 있다.
다양한 시스템 계층, 루틴 또는 모듈은 실행 가능 제어 유닛(제어 유닛(515)(도 5 참조) 등)일 수 있다. 제어 유닛(515)은 마이크로 프로세서, 마이크로 제어기, 디지털 신호 프로세서, 프로세서 카드(하나 이상의 마이크로 프로세서 또는 제어기를 포함함), 또는 다른 제어 또는 컴퓨터 장치를 포함할 수 있다. 본 명세서에서 언급된 저장 장치(550)는 데이터 및 인스트럭션을 저장하는 하나 이상의 머신 판독 가능 저장 매체를 포함할 수 있다. 저장 매체는 DRAM(dynamic random access memories) 또는 SRAM(static random access memories), EPROM(erasable and programmable read-only memories), EEPROM(electrically erasable and programmable read-only memories) 및 플래시 메모리 등과 같은 반도체 메모리 장치와, 고정, 플로피, 제거 가능(removable) 디스크 등과 같은 자기 디스크와, 테이프를 포함하는 다른 자기 매체와, CD(compact disks) 또는 DVD(digital video disks) 등과 같은 광학 매체를 포함할 수 있다. 다양한 시스템 내에서 다양한 소프트웨어 계층, 루틴 또는 모듈을 형성하는 인스트럭션은 각각의 저장 장치(550) 내에 저장될 수 있다. 인스트럭션은 각각의 제어 유닛(515)에 의해 실행될 때, 대응하는 시스템이 프로그래밍된 동작을 실행하게 한다.
상술된 특정한 실시예는 단지 예시를 위한 것이므로, 본 발명은 본 명세서의 이점을 파악하는 당업자들에 의해서 상이하지만 대등한 방식으로 수정 및 실행될 수 있다. 또한, 이하에 설명된 청구항을 제외하고는, 본 명세서에 도시된 구성 또는 설계의 세부 사항에 대한 어떠한 제한도 부여하지 않았다. 그러므로 상술된 특정한 실시예는 변경 또는 수정될 수 있고, 이러한 모든 변경은 이하의 청구항에 정의된 바와 같이 본 발명의 범주 내에 속하는 것으로 고려된다는 것이 명확할 것이다.
Claims (10)
- 통신 시스템에서 메시지를 전송하는 방법으로서,메시지(210)에 저장된 보안 정보를 액세스하는 단계(310)와,원격 장치가 상기 보안 정보에 의해 표시된 보안 레벨을 제공할 수 있는지 여부를 판정하는 단계(320)와,상기 원격 장치가 상기 보안 레벨을 제공할 수 있다는 판정에 응답하여 상기 원격 장치로 상기 메시지를 전송하는 단계(350)를 포함하는통신 시스템에서 메시지를 전송하는 방법.
- 제 1 항에 있어서,상기 원격 장치가 상기 보안 레벨을 제공할 수 있는지 여부를 판정하는 상기 단계는,액세스된 보안 정보로부터 도출되거나, 또는 액세스된 보안 정보를 포함하는 정보를 상기 원격 장치로 전송하는 단계(325)와,상기 원격 장치가 상기 원하는 보안 레벨을 제공할 수 있다는 것을 나타내는 응답을 상기 원격 장치로부터 수신하는 단계(330)를 포함하는방법.
- 제 1 항에 있어서,상기 보안 정보를 액세스하는 상기 단계는, 상기 메시지의 헤더 부분(220) 내의 보안 정보을 액세스하는 단계를 포함하는방법.
- 제 3 항에 있어서,상기 보안 정보는 접속 정보, 클래스 정보, 신뢰 가능 개체(trusted entities) 정보 및 로깅 가능성(logging capability) 정보 중 적어도 하나에 관한 것인방법.
- 제 3 항에 있어서,상기 메시지의 상기 헤더 부분을 액세스하는 상기 단계는, SOAP(Simple Object Access Protocol) 메시지의 적어도 하나의 헤더를 액세스하는 단계를 포함하는방법.
- 제 1 항에 있어서,상기 원격 장치가 상기 보안 레벨을 제공할 수 없다는 판정에 응답하여, 상기 보안 정보에 의해 표시된 상기 보안 레벨을 제공할 수 있는 대체 원격 장치를 결정하는 단계를 더 포함하는방법.
- 제 1 항에 있어서,상기 원격 장치가 상기 보안 레벨을 제공할 수 있게 하는 적어도 하나의 모듈을 상기 원격 장치가 실행할 수 있게 하는 단계를 더 포함하는방법.
- 제 1 항에 있어서,원격 장치가 상기 보안 정보에 의해 표시된 보안 레벨을 제공할 수 있는지 여부를 판정하는 단계는, 상기 원격 장치의 보안 성능에 관한 정보를 상기 원격 장치로부터 수신하는 단계를 포함하는방법.
- 컴퓨터 프로그램이 컴퓨터 시스템 상에서 실행될 때, 제 1 항 내지 제 8 항 중 어느 한 항에 기재된 방법의 모든 단계를 실행하는 인스트럭션을 포함하는 컴퓨터 프로그램이 저장된컴퓨터 판독 가능한 기록 매체.
- 주어진 트랜잭션과 연관된 객체를 저장하는 저장 유닛과,상기 저장 유닛에 통신 가능하게 접속된 제어 유닛을 포함하고,상기 제어 유닛은 제 1 항 내지 제 8 항 중 어느 한 항에 기재된 방법의 모든 단계를 실행할 수 있는 수단을 포함하는장치.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/803,590 US8782405B2 (en) | 2004-03-18 | 2004-03-18 | Providing transaction-level security |
US10/803,590 | 2004-03-18 | ||
PCT/EP2005/050758 WO2005091587A1 (en) | 2004-03-18 | 2005-02-22 | Method and apparatus for providing transaction-level security |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070020417A KR20070020417A (ko) | 2007-02-21 |
KR100968307B1 true KR100968307B1 (ko) | 2010-07-08 |
Family
ID=43652833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020067017443A KR100968307B1 (ko) | 2004-03-18 | 2005-02-22 | 트랜잭션-레벨 보안을 제공하는 방법, 컴퓨터 판독 가능한 기록 매체 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100968307B1 (ko) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5602916A (en) * | 1994-10-05 | 1997-02-11 | Motorola, Inc. | Method and apparatus for preventing unauthorized monitoring of wireless data transmissions |
WO2000074345A1 (en) * | 1999-05-28 | 2000-12-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for secure communication |
EP1244322A1 (en) * | 2001-03-19 | 2002-09-25 | NTT DoCoMo, Inc. | Mobile communication terminal device and server device |
-
2005
- 2005-02-22 KR KR1020067017443A patent/KR100968307B1/ko not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5602916A (en) * | 1994-10-05 | 1997-02-11 | Motorola, Inc. | Method and apparatus for preventing unauthorized monitoring of wireless data transmissions |
WO2000074345A1 (en) * | 1999-05-28 | 2000-12-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for secure communication |
EP1244322A1 (en) * | 2001-03-19 | 2002-09-25 | NTT DoCoMo, Inc. | Mobile communication terminal device and server device |
Also Published As
Publication number | Publication date |
---|---|
KR20070020417A (ko) | 2007-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1730925B1 (en) | Method and apparatus for providing transaction-level security | |
JP7011709B2 (ja) | 単一の産業ネットワーク上の多テナント・データアクセスを可能にすること | |
US7809938B2 (en) | Virtual distributed security system | |
US7747856B2 (en) | Session ticket authentication scheme | |
US7627896B2 (en) | Security system providing methodology for cooperative enforcement of security policies during SSL sessions | |
Camenisch et al. | Design and implementation of the idemix anonymous credential system | |
US9749301B2 (en) | Cryptographic web service | |
US6339423B1 (en) | Multi-domain access control | |
TWI400922B (zh) | 在聯盟中主用者之認證 | |
US20080244265A1 (en) | Mobility device management server | |
JP2007519066A (ja) | 可動性装置サーバ | |
CN112532599B (zh) | 一种动态鉴权方法、装置、电子设备和存储介质 | |
US20110154435A1 (en) | Identity mediation in enterprise service bus | |
US20190372767A1 (en) | Authenticating a messaging program session | |
WO2022262322A1 (zh) | 认证方法、装置、系统、电子设备及存储介质 | |
CN116601916A (zh) | 作为用于密钥散列消息认证码用户认证和授权的密钥材料的基于属性的加密密钥 | |
Sharp | Microsoft Windows Communication Foundation Step by Step | |
JP4972646B2 (ja) | 一貫したアプリケーション対応ファイヤウォールトラバーサルの提供 | |
Ferdous et al. | Social anchor: privacy-friendly attribute aggregation from social networks | |
KR100968307B1 (ko) | 트랜잭션-레벨 보안을 제공하는 방법, 컴퓨터 판독 가능한 기록 매체 및 장치 | |
WO2022146811A1 (en) | Multiworkflow authorization system and method | |
Miranda | Large scale secure automatic provisioning of X. 509 certificates via web services | |
Shin | Web services | |
Allen et al. | The ASP. NET Security Infrastructure | |
Buranasaksee et al. | A generalized model for internet-based access control systems with delegation support |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |