KR101433978B1 - 보안된 분산형 애플리케이션 정보 전달을 위한 프로세서 액세스가능한 메모리, 디바이스 및 컴퓨터-구현된 방법 - Google Patents

보안된 분산형 애플리케이션 정보 전달을 위한 프로세서 액세스가능한 메모리, 디바이스 및 컴퓨터-구현된 방법 Download PDF

Info

Publication number
KR101433978B1
KR101433978B1 KR1020097006103A KR20097006103A KR101433978B1 KR 101433978 B1 KR101433978 B1 KR 101433978B1 KR 1020097006103 A KR1020097006103 A KR 1020097006103A KR 20097006103 A KR20097006103 A KR 20097006103A KR 101433978 B1 KR101433978 B1 KR 101433978B1
Authority
KR
South Korea
Prior art keywords
application
request
requestor
specific
intermediary
Prior art date
Application number
KR1020097006103A
Other languages
English (en)
Other versions
KR20090074743A (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 마이크로소프트 코포레이션
Publication of KR20090074743A publication Critical patent/KR20090074743A/ko
Application granted granted Critical
Publication of KR101433978B1 publication Critical patent/KR101433978B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

예시적인 구현예에서, 데이터 구조는 보안 애플리케이션 명령어 프로토콜에 적합하게 된다. 데이터 구조는 제1 애플리케이션-레벨 요청 및 제2 애플리케이션-레벨 요청을 포함한다. 제1 애플리케이션-레벨 요청은 요청자로부터의 애플리케이션-특정 명령어, 및 요청자로부터의 애플리케이션-특정 명령어에 대한 요청자 서명을 갖는다. 제2 애플리케이션-레벨 요청은 중개자로부터의 애플리케이션-특정 명령어, 및 적어도 중개자로부터의 애플리케이션-특정 명령어에 대한 중개자 서명을 갖는다.
Figure R1020097006103
보안 애플리케이션 명령어 프로토콜, 애플리케이션-특정 명령어, 애플리케이션-레벨 요청, 권한 위임

Description

보안된 분산형 애플리케이션 정보 전달을 위한 프로세서 액세스가능한 메모리, 디바이스 및 컴퓨터-구현된 방법{SECURING DISTRIBUTED APPLICATION INFORMATION DELIVERY}
최신의 분산형 컴퓨팅 시스템에서는, 사용자 그룹에 의한 하나 이상의 공유 컴퓨팅 자원의 사용을 최적화하는 것이 점점 더 중요해지고 있다. 이러한 현상의 일례가 그리드(grid) 컴퓨팅 시스템이다. 전형적인 그리드 컴퓨팅 환경에서, 복수의 컴퓨팅 디바이스로의 액세스는 작업 관리 시스템들의 세트에 의해 제어된다. 작업 관리 시스템은 서브밋(submit)된 작업으로의 컴퓨팅 자원의 할당을 결정하고, 그러한 작업들의 스케줄링을 결정하고, 때로는 과금 계정(billing account), 보안 자격증명, 병렬로 실행중인 작업 액티비티들의 위치 등과 같은 작업의 실행 컨텍스트의 양태들을 결정할 수 있다. 작업 관리 시스템(들)의 목적은 그리드 환경의 사용자로부터의 작업 요청을 받아들이고, 컴퓨팅 자원의 전체적인 사용을 최적화하는 것이다. 컴퓨터 자원은 슈퍼 컴퓨터, 컴퓨팅 클러스터, 애플리케이션 서버, 데스크탑 워크스테이션 등을 포함할 수 있다.
그리드 시스템을 일례로 들 수 있는 분산형 컴퓨팅 시스템은 복수의 사용자 및 컴퓨터를 지원하는 자원 관리 시스템과 애플리케이션의 계층구조(hierarchy)를 포함할 수 있다. 예를 들어, 사용자는 중앙화된 작업 관리자에게 애플리케이션을 실행할 것을 요청할 수 있다. 그러면, 중앙 관리자는 컴퓨터 클러스터들의 한 컬 렉션을 담당하는 보조 작업 관리자에게 그 애플리케이션을 실행할 것을 요청할 수 있다. 보조 관리자는 해당 애플리케이션에 가장 적합한 특정 컴퓨팅 자원을 결정한 다음, 그 컴퓨터 클러스터의 작업 관리자에게 사용자의 애플리케이션을 실행할 것을 요구한다.
이와 같이 계층적으로 관리되는 분산형 시스템에서, 사용자의 애플리케이션 및 할당되는 컴퓨터 클러스터를 담당하는 작업 관리자들의 시퀀스(임의의 보조 관리자들을 포함함)는 분산형 환경의 전체 상태에 기초하여 동적으로 결정될 수 있다. 사용자는 작업 요청이 서브밋될 당시에는 자신의 애플리케이션이 최종적으로 어디에서 실행될지에 관한 세부사항을 알지 못할 수 있으므로, 애플리케이션 실행시에 요구되는 소정의 정보는 작업 요청을 프로세싱하는 작업 관리자들 중 하나 이상에 의해 반드시 공급되어야 하거나, 그러한 작업 관리자들 중 하나 이상에 의해 공급되는 것이 더 바람직할 수 있다. 기존 시스템들은 그러한 정보의 보안을 위한 효율적이고 충분한 보호를 제공하지 못한다.
<발명의 개요>
예시적인 구현예에서, 데이터 구조는 보안 애플리케이션 명령어 프로토콜(secure application instruction protocol)에 적합하게 된다. 데이터 구조는 제1 애플리케이션-레벨 요청 및 제2 애플리케이션-레벨 요청을 포함한다. 제1 애플리케이션-레벨 요청은 요청자로부터의 애플리케이션-특정 명령어, 및 요청자로부터의 애플리케이션-특정 명령어에 대한 요청자 서명(a requestor signature over the application-specific instructions from the requestor)을 갖는다. 제2 애플 리케이션-레벨 요청은 중개자(intermediary)로부터의 애플리케이션-특정 명령어, 및 적어도 중개자로부터의 애플리케이션-특정 명령어에 대한 중개자 서명을 갖는다.
본 개요는 이하의 상세한 설명에 더 설명되는 개념들 중 선택된 것들을 간략한 형태로 소개하기 위해 제공된다. 본 개요는 청구되는 발명의 대상의 핵심적인 특징 또는 본질적인 특징을 확인하기 위한 것이 아니며, 청구되는 발명의 대상의 범위를 결정하는 데에 도움을 주기 위한 것도 아니다. 또한, 여기에는 다른 방법, 시스템, 스킴, 장치, 디바이스, 매체, 프로시져, API, 구성(arrangement) 등의 구현예도 설명된다.
도면 전체에서, 유사한 및/또는 대응하는 양태, 특징 및 구성요소를 참조하기 위하여 동일한 번호가 사용된다.
도 1은 보안된 분산형 애플리케이션 정보 전달이 구현될 수 있는 예시적인 분산형 컴퓨팅 환경의 일례의 블럭도.
도 2는 전송되는 애플리케이션-레벨 요청에 대하여 보안된 분산형 애플리케이션 정보 전달이 구현될 수 있는 예시적인 일반 컴퓨팅 환경을 도시한 블럭도.
도 3A, 도 3B, 도 3C는 도 2의 예시적인 컴퓨팅 환경에 도시된 것들과 같은 예시적인 애플리케이션-레벨 요청을 도시하는 블럭도.
도 4는 데이터에 액세스하기 위한 권한의 위임을 포함하는 예시적인 애플리케이션-레벨 요청을 도시한 블럭도.
도 5는 도 2의 예시적인 컴퓨팅 환경에 도시되어 있는 것들과 같은 애플리케이션-레벨 통신 참가자에서 실행 중일 수 있는 예시적인 애플리케이션을 도시한 블럭도.
도 6은 애플리케이션-레벨에서 요청 정보를 보안 통신하기 위한 방법의 일례를 도시한 흐름도.
도 7은 분산형 애플리케이션 정보 전달의 보안을 구현예하는 데에 사용될 수 있는 예시적인 디바이스의 블럭도.
보안된 분산형 애플리케이션 정보 전달의 서론
앞에서 설명한 바와 같이, 일부 분산형 컴퓨팅 시스템은 애플리케이션의 계층 구조, 및 복수의 사용자 및 컴퓨팅 디바이스를 지원할 수 있는 자원 관리 시스템을 포함한다. 오직 예시의 목적으로만 설명하자면, 사용자는 중앙화된 관리자에게 애플리케이션을 실행할 것을 요청할 수 있다. 그러면, 중앙 관리자는 컴퓨팅 자원 클러스터들의 컬렉션을 담당하는 보조 관리자에게 그 애플리케이션을 실행할 것을 요청할 수 있다. 보조 관리자는 해당 애플리케이션에 가장 적합한 특정 컴퓨팅 자원을 결정한 다음, 그 특정 컴퓨팅 자원의 관리자에게 애플리케이션을 실행할 것을 요청한다.
그러한 시스템에는, 전형적으로 애플리케이션을 실행할 필요가 있는 사용자와 그 애플리케이션을 실제로 실행할 컴퓨팅 자원 간에 복수의 관리자-타입 중개자가 존재한다. 위에서 논의한 것과 같은 작업 관리자는 그러한 환경에 존재하는 관 리자의 한 타입이다. 사용자의 작업 요청을 프로세싱하는 것을 도울 수 있는 존재가능한 다른 타입의 프로세싱 관리자는 메시지 라우팅 관리자, 감사(auditing) 관리자 등을 포함하지만, 이에 제한되는 것은 아니다. 이러한 관리자들은 요청-프로세싱 중개자(request-processing intermediary)로 총칭될 수 있다. 요청-프로세싱 중개자는 스케줄링 중이거나 실행 중인 다른 애플리케이션들에 의존하기 때문에 일반적으로는 선험적으로(a priori) 결정될 수 없다. 이러한 다른 애플리케이션들은 통상적으로는 임의의 단일 요청 사용자에게 알려지지 않는다.
기존의 접근방식들에서는, 애플리케이션 실행 사이트(site)에서, 복수의 엔터티들에 의해 제공되었을 수 있는 애플리케이션 정보(예를 들어, 애플리케이션-특정 명령어)의 완전성(intergrity)을 인증 및/또는 보장하기가 어렵다. 부적절한 명령어의 사용은 잘못된 과금, 데이터 보안 불이행, 잘못된 계산, 서비스 거부 등을 유발할 수 있기 때문에, 그러한 애플리케이션 정보의 보안은 매우 중요할 수 있다.
기존의 접근방식들은 일반적으로 요청을 한 엔터티가 요청 완전성을 보장할 수 있고, 최종적으로 요청을 다룰 엔터티에 보안 메시지를 발송함으로써 인증을 수행할 수 있다고 가정한다. 원래의 요청자 및 각각의 중개자 프로세서는 누가 최종적으로 요청을 다룰 것인지를 알지 못할 수 있기 때문에, 이러한 기존의 접근방식들은 앞에서 설명한 분산형 컴퓨팅 환경에 존재하는 문제점들을 완전히 해결하지 못한다. 그 결과, 이들은 통상적인 방식을 이용해서는 최종적으로 요청을 다룰 엔터티로의 보안 메시지를 적절하게 형성하지 못한다. 그 대신에, 요청은 포인트-투 -포인트 방식으로 컨텐츠를 보호할 뿐인 메시지 보안을 갖는 독립적인 메시지들의 세트를 이용하여 프로세싱되고 통신된다.
도 1은 보안된 분산형 애플리케이션 정보 전달이 구현될 수 있는 예시적인 분산형 컴퓨팅 환경(100)의 블럭도이다. 도시된 바와 같이, 분산형 컴퓨팅 환경(100)은 "u"명의 사용자(102), "p"개의 프로세싱 관리자(104), "c"개의 컴퓨팅 자원(106), 요청(108) 및 데이터(110)를 포함한다. 분산형 컴퓨팅 환경(100)은 사용자(102)로부터의 요청(108)이 하나 이상의 프로세싱 관리자(104)를 통해 통신되어, 작업 액티비티가 적어도 하나의 컴퓨팅 자원(106) 상에서 데이터(110)를 이용하여 수행될 수 있게 하는 환경을 나타낸다. 분산형 컴퓨팅 환경(100)의 애플리케이션-레벨-통신 참가자 또는 엔터티는 사용자(102), 프로세싱 관리자(104), 및 컴퓨팅 자원(106)을 포함한다.
더 구체적으로는, 분산형 컴퓨팅 환경(100)은 사용자(102(1)), 사용자(102(2)), 사용자(102(3)), ..., 사용자(102(u))를 포함하며, "u"는 소정의 양의 정수이다. 분산형 컴퓨팅 환경(100)은 프로세싱 관리자(104(1)), 프로세싱 관리자(104(2)), 프로세싱 관리자(104(3)), 프로세싱 관리자(104(4)), ..., 프로세싱 관리자(104(p))도 포함하며, "p"는 소정의 양의 정수이다. 또한, 분산형 컴퓨팅 환경(100)은 컴퓨팅 자원(106(1)), 컴퓨팅 자원(106(2)), 컴퓨팅 자원(106(3)), ..., 컴퓨팅 자원(106(c))을 포함하며, "c"는 소정의 양의 정수이다.
설명된 구현예에서, 각각의 사용자(102)는 데이터(110)에 대하여 소정의 태스크가 수행될 것을 요청하는 태스크 요청(108)을 전송할 수 있다. 단 하나의 데 이터 엘리먼트(110)만이 도시되어 있지만, 각각의 사용자(102)는 자기 자신의 개별 데이터, 공유 데이터, 복수의 데이터 유닛 등에 연관되어 있을 수 있다. 프로세싱 관리자(104)의 계층구조에 대하여, 요청(108)은 한 프로세싱 관리자가 컴퓨팅 자원(106)에게 요청된 태스크를 수행할 것을 직접 요구할 수 있을 때까지, 한 프로세싱 관리자(104)로부터 다른 프로세싱 관리자(104)로 전달된다. 각각의 컴퓨팅 자원(106)은 단일 컴퓨팅 디바이스, 컴퓨팅 디바이스들의 클러스터, 컴퓨팅 디바이스들의 클러스터의 일부분 등일 수 있다.
예시적인 태스크 요청은 분산형 컴퓨팅 환경(100)의 일부분으로서 도시되어 있다. 이러한 예시적인 태스크 요청에 대하여, 사용자(102(2))는 데이터(110)에 대하여 실행 또는 수행될 필요가 있는 애플리케이션을 갖고 있다. 사용자(102(2))는 한 참가 엔터티로부터 다른 참가 엔터티로 전달되는 메시지로서 실현되는 요청(108)을 작성(formulte)한다. 요청(108)은 사용자(102(2))로부터 프로세싱 관리자(104(1))로 전송된다. 프로세싱 관리자(104(1))는 요청(108)을 프로세싱 관리자(104(2))에게 전달한다. 프로세싱 관리자(104(2))는 요청(108)을 프로세싱 관리자(104(3))에게 전달한다. 프로세싱 관리자(104(3))는 요청된 태스크를 실제로 수행하는 컴퓨팅 자원(106(2))에 최종적으로 요청(108)을 전달한다. 요청(108)은 전달 전에 각각의 프로세싱 관리자(104)에 의해 수정될 수 있다.
통상적인 관점에서, 도 1에 도시된 컴퓨터 시스템 환경의 유형은 2가지의 잠재적인 보안 문제를 발생시킨다. 첫번째로, 각각의 중간 관리자(예를 들어, 프로세싱 관리자(104)) 및 최종 컴퓨팅 디바이스(들)(예를 들어, 컴퓨팅 자원(106))는 그들이 대신하여 작업해줄 중간 관리자 및 특정 사용자(예를 들어, 사용자(102))를 특정하는 제어 정책으로의 액세스를 갖는 경우가 많다. 대규모 컴퓨팅 그리드 및 복수의 컴퍼니를 포함하는 협업 비지니스 시스템에서 전형적이듯이 사용자, 관리자 및 컴퓨팅 디바이스가 제한된 도메인간 신뢰 관계(limited cross-domain trust relationship)를 갖는 개별 관리 도메인들에 있는 경우에 특히 그러하다. 그 결과, 중개자 또는 최종 컴퓨팅 디바이스로의 각 요청(예를 들어, 요청(108))은, 요청하는 사용자 및 애플리케이션 요청을 프로세싱한 각각의 선행 중개자에 의해 제공된 명령어들에 대한 인증 정보를 제공할 수 있어야 한다.
두번째로, 애플리케이션을 실행하는 컴퓨팅 디바이스(들)는 전형적으로 사용자에 의해 지정된 데이터 자원(예를 들어, 데이터(110))으로의 액세스를 요구한다. 이 데이터를 보유하고 있는 레포지토리는 누가 그 데이터를 조작할 수 있는지를 제한하는 액세스 제어 정책을 가지고 있는 경우가 많다. 그러므로, 사용자 및/또는 프로세싱 중개자는 (예를 들어 컴퓨팅 자원(106)에서) 실행중인 애플리케이션에, 데이터 레포지토리가 그 데이터로의 액세스를 허가하는 데에 유효한 것으로서 받아들일 보안 자격증명을 제공하기 위한 소정의 메커니즘을 필요로 한다.
이러한 문제점들에 대한 기존의 접근방식들은, 동적으로 결정되는 일련의 중간 프로세서들에 의해 증가적으로(incrementally) 생성되는 애플리케이션 명령어들의 세트가, 각각의 애플리케이션 명령어들의 세트의 완전성이 검증될 수 있고 각각의 중간 프로세서의 인증이 수행될 수 있도록 통신될 수 있는 방식을 제시하지 못하기 때문에 부적절하다. 그 결과, 그러한 컴퓨팅 시스템의 전체적인 보안이 저하 되는 경우가 많고, 이는 유용성에 부정적인 영향을 미칠 수 있다.
첫번째 보안 문제와 관련하여, 기존의 프로토콜들은 참가 엔터티들의 증가적인 발견을 갖는 이러한 유형의 다단계 프로세싱를 다루도록 설계되어 있지 않다. 많은 프로토콜들은 포인트-투-포인트 사용을 위해 설계되어 있다(예를 들어, IPsec, SSL, DCE/RPC 등). 이러한 포인트-투-포인트 프로토콜은 2개의 알려진 엔드포인트 간에서 보안 메시지를 발송하는 것을 허용하지만(즉, 메시지가 발송되기 전에 목적지 엔드포인트가 반드시 알려져 있어야 함), 2개의 엔드포인트들 간의 임의의 중개자는 불투명한 이진 데이터(opaque binary data)만을 본다. 이러한 포인트-투-포인트 프로토콜을 이용하여 앞에서 설명한 통신 참가자들 간의 메시지 흐름을 안전하게 할 수는 있지만, 불행하게도 제1 참가자에서의 인입(incoming) 요청에 대한 보안과 다음 참가자에 대한 인출(outgoing) 요청 간의 관계는 정의되어 있지 않다.
일부 다른 프로토콜들(예를 들어, SOAP 메시지 보안)은 알려진 엔드포인트로의 메시지 보안을 다루는 한편, 중간 프로세서들에 대한 보안은 따로 취급하도록 설계되어 있다. 그러나, 이러한 프로토콜들도 여전히 엔드포인트가 선험적으로 알려져 있으며, 라우팅 거동으로 인해 동적으로 발견될 수 있는 것은 중개자들뿐이라고 가정하고 있다. 그 결과, 기존 시스템들은 메시지 인증 및 완전성 보호가 기지의 엔드포인트에서 사용되도록 의도된 포인트-투-포인트 메시지 보안을 이용하는 경향이 있다.
기존 프로토콜을 이용하는 보안 메시지들에 의존하는 것은, 프로세싱 중개자 및 컴퓨팅 디바이스 모두가 동일한 관리 도메인 내에 있거나 다른 방식으로 서로 완전히 신뢰하는 경우에는 위에서 설명한 보안 컴퓨팅 환경에 대하여 잘 작동할 수 있다. 그러한 경우들에서는, 그러한 프로토콜들이 과도적 신뢰 모델(transitive trust model)의 존재를 가정한다는 사실(즉, 암시적으로 누가 발송자에게 요청을 발송했든지 간에 요청의 수신자가 발송자를 신뢰하는 신뢰 모델의 존재를 가정함)은 받아들여질 수 있다. 그러나, 완전한 신뢰가 정당하지 않은 경우에, 이러한 가정은 적대적인 중개자가 실행되는 애플리케이션에 영향을 주는 간접 공격을 성공적으로 런칭할 수 있게 한다. 또한, 완전한 신뢰 시나리오는 요청 발송자의 신원 및 요청 발송자가 요청 내에 인코딩한 정보에 기초한 대강(coarse-grained)의 액세스 제어만을 허용한다. 즉, 어떠한 액세스 제어든 최종적으로는 보안된 요청 메시지를 발송한 엔터티의 신뢰에만 기초한다.
두번째 보안 문제와 관련하여, 권한의 위임을 허용하는 기존의 접근방식들은 동일한 한계를 갖는다. 예를 들어, 콘도르(Condor)와 같은 일부 그리드 작업 관리자 시스템은 매치메이킹 모드(matchmaking mode)로도 동작한다. 콘도르 관리자(들)는 애플리케이션을 실행할 자원(들)을 찾고, 그러한 자원들을 예약(reserve)한 다음, 요청 발원자(originator)에게 무엇을 사용할 수 있는지를 알려준다. 이러한 예약 방식은 위임 관점에서 받아들일 수 있는데, 왜냐하면 요청자가 요청 발원자의 애플리케이션을 실행할 실제의 컴퓨팅 디바이스에 데이터 위임 보안 자격증명은 전달하기만 하면 되기 때문이다.
그러나, 이러한 예약 방식은 몇가지 부정적인 측면이 있다. 첫번째로, 요청 발원자는 프로세싱 관리자가 적합한 컴퓨팅 디바이스를 찾는 데에 얼마나 오래 걸릴지 모르기 때문에, 반드시 이용가능한(available) 상태로 남아있어야 한다. 아마도, 컴퓨팅 디바이스는, 실제 애플리케이션 및 그 관련 명령어와 위임 자격증명이 정당한 시간 내에 제공되지 않으면 자원 예약을 취소할 것이다. 두번째로, 요청 발원자는 컴퓨팅 디바이스로의 직접 액세스를 요구하는데, 이는 일부 복잡한 시스템에서는 네트워크 토폴로지, 방화벽 등으로 인해 실용적이지 않으며 심지어는 불가능할 수도 있다. 세번째로, 관리자는 아마도 어떤 위임이 요구되는지를 알지 못한다. 그러므로, 관리자는 적합한 컴퓨팅 디바이스를 선택하기 위하여 위임 정보를 사용할 수 없다.
일부 다른 구현예들에서, 요청 발원자를 (예를 들어, MyProxy 서버를 통해) 프록시(proxy)하기 위해 사용될 수 있는 보안 자격증명으로의 액세스를 허가하기 위하여 이름-패스워드 자격증명이 사용된다. 이러한 이름-패스워드 자격증명은 전형적으로 데이터로서 중간 관리자에게, 그리고 결국에는 컴퓨팅 디바이스에 넘겨진다. 이들은 암호화된 메시지로 반송(carry)될 수 있는 한편, 각각의 중간 관리자 및 각각의 컴퓨팅 디바이스에서 일반 텍스트(clear text) 데이터로서 드러날 수 있다. 자격증명에 액세스했었고 그 자격증명을 건네준 중간 관리자들의 완전한 세트를 추적할 수 있게 해 주는 프로토콜 지원은 존재하지 않는다. 그러한 추적 정보는, 예를 들어 잠재적으로 보안 자격증명 또는 기타 정보에 누가 액세스했었는지를 감사(audit)하고, 어떤 예상하지 못했던 액세스가 발생한 경우에 과학적으로 조사하는 데에 있어서 중요할 수 있다. 요약하자면, 기존의 접근방식들로는, 요청 발 원자와 애플리케이션을 실제로 실행하는 최종 컴퓨팅 자원 간에서 애플리케이션-특정 정보를 보안하기 위한 적합한 메커니즘을 제공하기가 어렵다.
반면에, 여기에 설명된 몇몇 구현예들에서, 통신 엔터티 참자가들(102, 104 및/또는 106)(도 1)을 따른 전송 경로는 보안 애플리케이션 명령어 프로토콜을 이용하여 보안되고/되거나 추적가능하게 될 수 있다. 예를 들어, 각각의 프로세싱 관리자(104)는 요청(108)을 전달하기 전에 애플리케이션-특정 명령어를 추가함으로써 요청(108)을 증대(augment)시키기로 선택할 수 있다. 몇몇의 분산형 컴퓨팅 네트워크에서, 이러한 증대성(augmentative)의 명령어들의 추가는 컴퓨팅 자원(106)에 의해, 그 컴퓨팅 자원(106)이 실행하고자 하는 모든 작업 액비티비들에 대해 요구될 수 있다. 각각의 프로세싱 관리자(104)는 요청(108)을 다른 프로세싱 관리자(104)에게 전달하기 전에, 요청(108)에 디지탈 서명할 수 있다. 요청 증대는 애플리케이션 레벨에서 수행된다. 디지탈 서명은 애플리케이션-특정 정보에 적용된다. 그러므로, 애플리케이션 레벨의 통신 참가자들(102, 104 및/또는 106)은 특정 애플리케이션 명령어를 제공한 엔터티를 인증할 수 있고, 이 애플리케이션 정보의 완전성을 검증할 수 있다. 또한, 참가 엔터티의 신원도 추적될 수 있다.
더 구체적으로, 설명되는 구현예에 대하여, 애플리케이션-특정 명령어들의 세트의 발송자는 후속하는 프로세싱 중개자가 복호화할 수 있는 형태로 암호화된 보안 자격증명 정보를 포함시키도록 허용된다. 그러면, 이러한 후속하는 프로세싱 중개자는 (ⅰ) 다른 프로세싱 중개자가 복호화할 수 있는 형태로 자격증명을 재암호화하고, (ⅱ) 그러한 재암호화된 자격증명을 자신이 생성하는 중개자-제공 애플 리케이션-특정 명령어들의 세트에 포함시킨다. 이러한 프로세스는 컴퓨팅 자원과 같은 최종 요청 핸들러에 도착할 때까지 포인트-투-포인트 방식으로 계속된다. 자격증명은 요청 핸들러에서 사용된다. 앞 단락에서 설명된 바와 같이 애플리케이션-특정 명령어들의 각 세트가 디지탈 서명되어 있는 경우, 일반 텍스트 자격증명에 액세스했던 각 엔터티의 검증가능한 레코드가 제공된다.
분산형 애플리케이션 정보 전달을 보안하기 위한 예시적인 구현예
도 2는 애플리케이션-레벨 요청(208)에 대하여 보안된 분산형 애플리케이션 정보 전달이 구현될 수 있는 예시적인 일반 컴퓨팅 환경(200)을 도시한 블럭도이다. 도시된 바와 같이, 컴퓨팅 환경(200)은 요청자(202), 복수의 (프로세싱) 중개자(204), 복수의 요청 핸들러(206), 애플리케이션-레벨 (태스크) 요청(208) 및 데이터(210)를 포함한다. 컴퓨팅 환경(200)에서, 애플리케이션-레벨 통신 참가자 또는 엔터티는 요청자(202), 중개자(204) 및 요청 핸들러(206)를 포함한다.
더 구체적으로, 4개의 처리 중개자(204(1), 204(2), 204(3), 204(4))가 도시되어 있다. 3개의 요청 핸들러(206(1), 206(2), 206(3))가 도시되어 있다. 4개 버젼의 애플리케이션 요청(208), 즉 애플리케이션-레벨 요청 A(208(A)), 애플리케이션-레벨 요청 B(208(B)), 애플리케이션-레벨 요청 C(208(C)), 애플리케이션-레벨 요청 D(208(D))가 도시되어 있다. 컴퓨팅 환경(200)에는 각각의 도시된 유형의 애플리케이션 통신 참가자가 특정 개수씩 도시되어 있지만, 주어진 애플리케이션-레벨 요청 통신에서 요청자(202), 중개자(204) 및/또는 요청 핸들러(206) 각각은 임의의 개수만큼 포함될 수 있다.
설명되는 구현예에서, 일반적으로, 요청자(202)는 데이터(210)에 연관된 애플리케이션-레벨 요청(208)을 발원(originate) 및 개시한다. 애플리케이션-레벨 요청(208)은 하나 이상의 프로세싱 중개자(204) 사이에서 전송된다. 각각의 프로세싱 중개자(204)는 애플리케이션-레벨 요청(208)이 다음에 어디로 전달될지를 결정한다. 이하에 더 설명되는 바와 같이, 각각의 중개자(204)는 애플리케이션-레벨 요청(208)에 애플리케이션-특정 명령어를 추가함으로써 그 애플리케이션-레벨 요청(208)을 증대시킬 수 있다. 최종적으로, 중개자(204)는 애플리케이션-레벨 요청(208)을 적어도 하나의 요청 핸들러(206)에 전달한다. 각각의 요청 핸들러(206)는 애플리케이션-레벨 요청(208)의 일부로서 수신된 애플리케이션-레벨 명령어에 따라, 그리고 그에 관련된 데이터(210)에 따라 애플리케이션을 실행할 수 있다.
도 1과 관련하여, 보다 구체적인 분산형 컴퓨팅 환경(100)이 설명된다. 도 2의 일반 컴퓨팅 환경(200)의 문맥에서, 요청자(202)는 사용자(102)로서 실현될 수 있고, 프로세싱 중개자(204)는 프로세싱 관리자(104)로서 실현될 수 있고, 요청 핸들러(206)는 컴퓨팅 자원(106)으로서 실현될 수 있다. 또한, 애플리케이션-레벨 요청(208)은 요청(108)으로서 실현될 수 있고, 데이터(210)는 데이터(110)로서 실현될 수 있다.
컴퓨팅 환경(200)에 대하여 설명되는 구현예에서, 요청자(202), 중개자(204) 및 요청 핸들러(206)는 하나 이상의 네트워크(도 2에는 명시적으로 도시되지 않음)에 의해 상호접속된다. 그러한 네트워크(들)의 통신 링크를 이용하여, 애플리케이션-레벨 요청(208)은 요청된 태스크를 수행할 수 있는 적어도 하나의 요청 핸들 러(206)에게 제공될 때까지 중개자(204)들 사이에서 전달된다.
단지 예시를 위해서 설명하자면, 도 2에 도시된 바와 같이, 애플리케이션-레벨 요청 A(208(A))는 요청자(202)에 의해 생성된다. 요청자(202)는 애플리케이션-레벨 요청 A(208(A))를 중개자 #1(204(1))에 전송한다. 애플리케이션-레벨 요청(208)은 소정의 전송 프로토콜에 따라 통신되는 메시지의 일부로서 전송될 수 있다. 이용되는 전송 프로토콜은 애플리케이션-레벨 통신 참가자들(202, 204, 206) 간에서 다를 수 있다.
중개자 #1(204(1))은 인입 요청(208(A))에 소정의 조작을 가한 후에, 애플리케이션-레벨 요청 B(208(B))를 중개자 #2(204(2))에 전송한다. 중개자 #2(204(2))는 인입 요청(208(B))에 소정의 조작을 가한 후에, 애플리케이션-레벨 요청 C(208(C))를 중개자 #3(204(3))에 전송한다. 또한, 중개자 #2(204(2))는 인입 요청(208(B))에 (아마도 다른) 소정의 조작을 가한 후에, 애플리케이션-레벨 요청 D(208(D))를 중개자 #4(204(4))에 전송한다.
중개자 #3(204(3))은 애플리케이션-레벨 요청 C(208(C))의 요청된 태스크를 두 부분으로 분리한다. 중개자 #3(204(3))은 제1 부분을 제1 요청 핸들러(206(1))에게 전달하고, 제2 부분을 제2 요청 핸들러(206(2))에게 전달한다. 중개자 #4(204(4))는 애플리케이션-레벨 요청 D(208(D))의 요청된 태스크를 제3 요청 핸들러(206(3))에 전달한다. 그러므로, 요청 핸들러(206(1), 206(2), 206(3))는 각각 애플리케이션-레벨 요청 A(208(A))의 원래의 요청된 태스크의 일부를 수행한다.
도 3A, 3B, 3C는 도 2의 예시적인 컴퓨팅 환경에 도시된 것과 같은 예시적인 애플리케이션-레벨 요청(208)을 도시하는 블럭도이다. 구체적으로, 도 3A는 애플리케이션-레벨 요청 A(208(A))의 일례이다. 도 3B는 애플리케이션-레벨 요청 B(208(B))의 일례이다. 도 3C는 애플리케이션-레벨 요청 C(208(C))의 일례이다.
도 3A에 대한 설명된 구현예에서, 애플리케이션-레벨 요청 A(208(A))는 요청자으로부터의 애플리케이션-특정 명령어(302) 및 요청자 서명(304)을 포함한다. 요청자로부터의 애플리케이션-특정 명령어(302)는 수행될 요청된 태스크를 상술(specify)하는 정보이다. 이것은 예를 들어, 실행될 애플리케이션 및 그 애플리케이션이 실행될 대상인 데이터와, 임의의 요구되는 보안 자격증명을 상술할 수 있다. 더 구체적으로, 요청자로부터의 애플리케이션-특정 명령어(302)는, 제한적이지 않은 예를 들자면 실행 조건, 초기화 매개변수, 요구되는 데이터 소스, 보안 컨텍스트 정보 등을 포함할 수 있다. 요청자(202)는 요청자로부터의 애플리케이션-특정 명령어(302)들에 대한 정보를 확인하고, 애플리케이션-레벨 요청 A(208(A))를 작성한다.
요청자 서명(304)은 요청자(202)에 의해 요청자로부터의 애플리케이션-특정 명령어(302)에 적용된 디지탈 서명이다. 즉, 디지탈 서명 프로시져는 애플리케이션-레벨 정보에 적용된다. 그 결과, 중개자 #1(204(1))에 대응하는 엔터티와 같이, 애플리케이션-레벨 요청 A(208(A))를 수신하고 프로세싱하는 엔터티들은 요청자로부터의 애플리케이션-특정 명령어(302)에 대하여 인증 검사(authentication check) 및 완전성 검증을 수행할 수 있다. 인증 검사는 어느 요청자(202)가 애플리케이션-특정 명령어(302)를 생성했는지를 결정한다. 완전성 검증은 요청자로부 터의 애플리케이션-특정 명령어(302)의 정보가 요청자(202)에 의해 발원된(그리고 서명된) 이후로 수정되지 않았음을 검증한다.
도 3B의 설명된 구현예에서, 애플리케이션-레벨 요청 B(208(B))는 중개자 #1로부터의 애플리케이션-특정 명령어(306(1)), 중개자 #1(306(1))의 서명(308(1)), 및 애플리케이션-레벨 요청 A(208(A))를 포함한다. 중개자 #1(204(1))은 요청자(202)로부터의 인입 애플리케이션-레벨 요청 A(208(A))을 받아들이고, 소정의 조작 후에 그것이 중개자 #2(204(2))에 전달되어야 하는지를 결정한다. 중개자 #1(204(1))은 애플리케이션-레벨 요청 A(208(A))를 애플리케이션-레벨 요청 B(208(B))에 유효하게 캡슐화한다.
중개자 #1(204(1))은 애플리케이션-레벨 요청(208)에 부가적인 애플리케이션-특정 명령어(306)를 추가함으로써 애플리케이션-레벨 요청(208)을 증대시킨다. 이러한 부가적인 명령어들은 중개자 #1로부터의 애플리케이션-특정 명령어(306(1))들로서 도시된다. 이들은 도 2의 예에서 중개자 #2(204(2))를 포함할 수 있는 적어도 하나의 후속 수신자에 의해 프로세싱되도록 의도된 것이다. 중개자 #1(204(1))은 중개자 디지탈 서명(308)으로 애플리케이션-레벨 요청(208)에 디지탈 서명한다. 이러한 디지탈 서명은 중개자 #1 서명(308(1))으로서 도시된다. 중개자 #1 서명(308(1))은 애플리케이션-레벨 요청 B(208(B))의 애플리케이션-특정 정보에 대한 서명이다. 이것은 예를 들어, 중개자 #1로부터의 애플리케이션-특정 명령어(306(1)) 및/또는 애플리케이션-레벨 요청 A(208(A))를 포함할 수 있다. 중개자 #1(204(1))이 자신의 애플리케이션-특정 명령어 및 요청자(202)에 의해 제공된 것들이 독립적으로 수정되지 않을 것임을 보장할 이유가 있다면, 중개자 #1(204(1))은 애플리케이션-레벨 요청 A(208(A))에 디지탈 서명할 수 있다.
도 3c에 대해 설명되는 구현예에서, 애플리케이션-레벨 요청 C(208(C))는 중개자 #2로부터의 애플리케이션-특정 명령어(306(2)), 중개자 #2 서명(308(2)) 및 애플리케이션-레벨 요청 B(208(B))를 포함한다. 중개자 #2(204(2))는 중개자 #1(204(1))로부터의 인입 애플리케이션-레벨 요청 B(208(B))를 받아들이고, 적어도 부분적으로, 소정의 조작 후에 중개자 #3(204(3))에게 전달되어야 하는지를 결정한다. 중개자 #2(204(2))는 애플리케이션-레벨 요청 B(208(B))를 애플리케이션-레벨 요청 C(208(C))에 유효하게 캡슐화한다.
중개자 #2(204(2))는 애플리케이션-레벨 요청(208)에 부가적인 애플리케이션-특정 명령어(306)를 추가함으로써 애플리케이션-레벨 요청(208)을 증대시킨다. 이러한 부가적인 명령어는 중개자 #2로부터의 애플리케이션-특정 명령어(306(2))로서 도시된다. 중개자 #2(204(2))는 중개자 디지탈 서명(308)으로 애플리케이션-레벨 요청(208)에 디지탈 서명한다. 이러한 디지탈 서명은 중개자 #2 서명(308(2))으로서 도시된다. 중개자 #2 서명(308(2))은 애플리케이션-레벨 요청 C(208(C))의 애플리케이션-특정 정보에 대한 서명이다. 이는 예를 들어 중개자 #2로부터의 애플리케이션-특정 명령어(306(2)) 및/또는 애플리케이션-레벨 요청 B(208(B))를 포함할 수 있다. 따로 도시되지는 않았지만, 애플리케이션-레벨 요청 D(208(D)는 애플리케이션-레벨 요청 C(208(C))와 유사하게 작성될 수 있다.
따라서, 도 2 및 도 3A-3C에 도시된 바와 같이, 애플리케이션-레벨 명령어 프로토콜은 인입 애플리케이션-레벨 요청(208)을 유효하게 캡슐화하고, 인출 애플리케이션-레벨 요청(208)을 생성한다. 인출 애플리케이션-레벨 요청은 애플리케이션-특정 정보의 적어도 일부에 대한 디지탈 서명(308)을 포함한다. 이것은 부가적인 애플리케이션-특정 명령어(306)도 포함할 수 있다. 애플리케이션-레벨 요청(208)이 참가하는 애플리케이션-레벨 통신 노드들 또는 엔터티들을 통해 전파할 때, 구체적으로 도 3C에 도시된 바와 같이 애플리케이션-레벨 요청(208)들의 중첩된 세트(nested set)가 생성된다.
애플리케이션-레벨 요청(208)들의 이러한 중첩은 각각의 중첩된 요청에 대한 디지탈 서명(304 및 308)과 함께, 참가자들이 요청 전송의 체인(a chain of request transmissions) 전체에 걸쳐 애플리케이션-특정 정보의 인증 및 완전성 검증을 수행할 수 있게 한다. 그러나, 적어도 최후의 요청 핸들러(206)(도 2)는 애플리케이션-레벨 요청(208)에 따라 요청된 태스크를 수행하기 위해 데이터(210)에 액세스할 필요가 있을 수 있다. 몇몇 구현예에서, 데이터(210)에 액세스하기 위해서는 데이터(210)에 액세스하기 위한 권한을 수여받아야 한다. 그러므로, 그러한 구현예에서, 요청 핸들러(206)가 요청된 태스크를 수행하는 데에는, 첫번째로 그 구현자에게 데이터(210)에 액세스하기 위한 권한을 수여하는 것이 수반될 수 있다. 설명된 구현예에서, 이러한 데이터(210)로의 액세스 권한은 위임 액세스 제어 메커니즘을 통해 수여될 수 있다.
도 4는 데이터에 액세스하기 위한 권한의 위임을 포함하는 예시적인 애플리케이션-레벨 요청 B(208(B))*를 도시한 블럭도이다. 애플리케이션-레벨 요청 B(208(B))*는 데이터 위임 권한 정보가 포함되어 있는 (도 3B의) 애플리케이션-레벨 요청 B(208(B))이다. 이하에 더 설명되는 바와 같이, 임의의 애플리케이션-레벨 요청(208)은 예를 들어 요청자로부터의 권한의 위임(402) 및/또는 중개자로부터의 권한의 위임(404)의 형태로 된 데이터 위임 권한 정보를 포함할 수 있다.
도시된 바와 같이, 애플리케이션-레벨 요청B(208(B))*는 중개자 #1로부터의 권한의 위임(404(1))을 포함하며, 또한 요청 중첩에 의하여 애플리케이션-레벨 요청 A(208(A))의 일부인 요청자로부터의 권한의 위임(402)도 유효하게 포함한다. 설명되는 구현예에서, 요청자(202)가 애플리케이션-레벨 요청 A(208(A))를 작성할 때, 그것은 요청자로부터의 권한의 위임(402)을 포함한다. 요청자(202)는 그 데이터(210)로의 액세스 권한을 갖는다. 요청자(202)는 최종적으로 어느 요청 핸들러(들)(206)가 데이터(210)에 액세스할 권한을 필요로 할지 모를 수 있으므로, 요청자(202)는 데이터(210)로의 액세스 권한을 직접 수여할 수 없을 수 있다. 그 결과, 요청자(202)는 후속하는 애플리케이션-레벨 통신 참가자(예를 들어, 프로세싱 중개자(204))에게, 데이터(210)로의 액세스 권한을 위임할 권한을 수여한다.
(예를 들어, 요청자로부터의 권한의 위임(402), 중개자로부터의 권한의 위임(404) 등의) 데이터 위임 정보는 제2 참가자에게 전달 또는 확장될 수 있는, 제1 참가자로의 위임 권한의 수여이다. 즉, (애플리케이션-레벨 요청 B(208(B)*의) 애플리케이션-레벨 요청 A(208(A))로, 요청자(202)는 중개자 #1(204(1))에게, 다운스트림의 통신 참가자에게 데이터(210)로의 액세스 권한을 더 수여할 권한을 위임한다. 중개자 #1(204(1))은 중개자 #1로부터의 권한의 위임(404(1))을 추가함으로써 이러한 위임 권한을 이용한다. 즉, 애플리케이션-레벨 요청 B(208(B))*로, 중개자 #1(204(1))은 중개자 #2(204(2))에게, 다른 다운스트림의 통신 참가자에게 데이터(210)로의 액세스 권한을 더 수여할 권한을 위임한다. 이러한 위임 체인은 선택된 요청 핸들러(206)가 (예를 들어, 중개자 #3(204(3)) 및/또는 중개자 #4(204(4))에 의해) 데이터(210)로의 액세스 권한을 수여받을 때까지 연장될 수 있다. 이러한 위임 정보(402 및/또는 404)가 인가되지 않은 참가자에게 노출되어서는 안되는 비밀(예를 들어, 패스워드, 암호키 등)을 포함하는 경우, 그러한 정보는 후속하는 프로세싱 엔터티가 그것을 복호화할 수 있도록 암호화될 수 있다. 그러면, 그 프로세싱 엔터티는 후속하는 프로세싱 엔터티를 위해 비밀 정보를 다시 암호화할 수 있고, 요청을 증대시키는 데이터 위임 정보에 포함시킬 수 있다.
이와 같이, 몇몇의 설명된 구현예는 요청을 발원한 요청자와, 요청의 핸들러와, 요청자와 요청 핸들러 간에서 요청을 프로세싱하고 전달하는 하나 이상의 중개자 사이의 상호작용을 위한 일반적인 애플리케이션-레벨 보안 프로토콜을 제공한다. 애플리케이션-레벨 보안 프로토콜에 대한 설명된 구현예는, 요청이 발행되기 전에 그러한 엔터티들이 알려져 있는 상황에서 사용될 수 있다. 또한, 몇몇 설명된 구현예는 이러한 엔터티들이 선험적으로 알려져 있지 않지만 그 대신에 요청자와 최종 요청 핸들러 간에서 요청이 전파함에 따라 그러한 엔터티들이 증분적으로 확립되는 더 복잡한 경우도 다룰 수 있다.
도 2의 요청(208)의 흐름은 여기에 설명된 애플리케이션-레벨 보안 프로토콜에 의해 다루어질 수 있는 일반적인 메시지 흐름 프로토콜의 일례를 도시한 것이 다. 도시된 바와 같이, 요청자(202)로부터 요청 핸들러(206)로의 요청 흐름은 방향성 그래프(directed graph)를 형성한다. 임의의 중개자(204)에서, 요청(208)은 잠재적으로 복수의 엔터티(예를 들어, 하나 이상의 다른 중개자(204) 및/또는 요청 핸들러(206))에 전달될 수 있다. 요청자(202)로부터 요청 핸들러(206)로의 각 흐름은 논리적으로 별개인 것으로 취급될 수 있다. 그러므로, 도 2에 도시된 컴퓨팅 환경(200)은 논리적으로 별개인 3개의 흐름을 갖는 것으로 간주될 수 있다. 한 흐름에 대한 요청 프로세싱을 잠재적으로 다른 흐름에서 재사용하면 구현 효율이 향상될 수 있지만, 그러한 재사용은 애플리케이션-레벨 보안 프로토콜에 영향을 줄 필요가 없다. 결과적으로, 이하의 설명은 명확함을 위해 단일 요청 흐름에 대해서만 다룬다.
위에서 설명된 바와 같이, 애플리케이션-레벨 요청(208)에 대한 중첩 프로세스는 디지탈 서명(304 및 308)과 함께, 요청자(202) 및 주어진 요청 메시지를 프로세싱했던 임의의 선행 중개자들(204)을 인증하기 위한 메커니즘을 제공한다. 또한, 중첩 및 디지탈 서명은 원래의 요청 내의 애플리케이션-레벨 정보와 중개자들에 의해 추가된 임의의 추가 애플리케이션-레벨 프로세싱 명령어들의 완전성을 독립적으로 검증하기 위한 메커니즘을 제공한다.
설명되는 구현예에서, 메시지 구성(message composition)은 중첩 프로세스를 이용하여 이루어지며, 이러한 중첩 프로세스는 디지탈 서명 기술과 결합된다. 디지탈 서명은 예를 들어 공용키 암호에 기초한다. 이하의 설명 및 예시적인 메시지 요청 포맷에서, 요청자(202)는 요청자 R이라고 하고, 중개자 #1-#n(204)(1...n)은 중개자 M1-Mn이라고 하고, 요청 핸들러(206)는 요청 핸들러 RH라고 한다. 이와 같이 중첩과 디지탈 서명을 결합하는 접근방식을 이용하면, 키 KR을 갖는 요청자 R은 제1 중개자 M1에게 다음을 포함하는 메시지를 보낸다.
Figure 112009017953042-pct00001
"Request"는 (도 3A 내지 도 4의) 요청자로부터의 애플리케이션-특정 명령어(302)에 대응한다. "Signed by KR"은 요청자 서명(304)에 대응한다. 요청자 서명(304)은 예를 들어 SHA-1 다이제스트 알고리즘을 이용하여 요청 컨텐츠 정보에 대한 RSA 서명을 이용하여 구현될 수 있다.
중개자 M1은 요청이 요청자 R로부터 온 것임을 인증하고, 그 요청이 전달 중에 수정되지 않았음을 검증하기 위하여 서명을 검사할 수 있다. 키 KM1을 가지고 있는 중개자 M1이 키 KM2를 갖는 제2 중개자 M2에게 요청을 전달하기로 정하면, 중개자 M1은 다음을 포함하는 메시지를 보낸다.
Figure 112009017953042-pct00002
"M1 instructions for M2"는 중개자 #2(204(2))를 위해 중개자 #1(204(1))에 의해 추가된 (도 3B 내지 도 4의) 중개자 #1로부터의 애플리케이션-특정 명령어(306(1))에 대응한다. "Signed by KM1"은 중개자 #1 서명(308(1))에 대응한다. 구현자 M1에 의해 어떠한 추가의 애플리케이션-특정 명령어도 추가되지 않는다면, "M1 instructions for M2"(또는 중개자로부터의 임의의 애플리케이션-특정 명령어(306))는 널(null)일 수 있다.
중개자 M2는 이제 [1] "M1 instructions for M2"가 중개자 M1으로부터 발원된 것이고, [2] 중개자 M1이 원래의 요청을 가졌으며, [3] 원래의 요청이 요청자 R로부터 온 것이고, [4] 서명이 적용된 이후로 아무것도 수정되지 않았음을 결정하기 위해 2개의 서명(304 및 308(1))을 사용할 수 있다. 그러면, 중개자 M2는 이 정보를 사용하여, 중개자 M1과 요청자 R 둘다를 대신하여 그러한 요청을 처리할 것인지를 결정한다.
이러한 접근방식은 최종적으로 실제의 요청 핸들러에 도착할 때까지 n개의 중개자 M을 거쳐 계속되는데, 여기에서 "n"은 소정의 정수이다. 이러한 실제의 요청 핸들러는 다음을 포함하는 메시지를 수신한다.
Figure 112009017953042-pct00003
Figure 112009017953042-pct00004
암호 디지탈 서명 KR 및 KM1 ...KMn은 중개자 및 요청 핸들러에 의해 애플리케이션 계층에서 이해되는 데이터에 대하여 규정(enact)된다. 이것은 전송되는 메시지를 인증하고 그 완전성을 보호하기 위하여 보안 통신에서 널리 사용되는 네트워크 보안 프로토콜 디지탈 서명과는 다른 것이다. 이와 같이 널리 사용되는 메시지 디지탈 서명은 전형적으로 사용중인 특정 하위계층 보안 프로토콜에 대하여 인코딩된 메시지 컨텐츠 및 메시지 헤더를 커버한다. 그 결과, 헤더는 중개자들에 걸쳐서는 일반적으로 의미가 없기 때문에, 또한 사용되는 메시징 프로토콜들이 요청 흐름에 참가하는 모든 엔터티들 간에서 동일하지 않을 수 있기 때문에, 그러한 메시지 디지탈 서명은 이러한 애플리케이션들에서는 사용될 수 없다.
도 4와 관련하여 위에서 설명한 바와 같이, 데이터 액세스에 대한 권한의 위임은 동적으로 발견되는 메시지 흐름 참가자들의 컨텍스트에서 애플리케이션-레벨 보안 프로토콜을 이용하여 용이해질 수 있다. 따라서, 몇몇 설명되는 구현예들은 다양한 참가 엔터티들 간에 위임 정보를 전달하기 위한 메커니즘을 제공한다. 데이터 위임 정보의 이러한 전달은 흐름 내의 엔터티들이 동적으로 발견될 수 있다는 사실을 다룬다. 즉, 데이터 위임 정보의 전달은 요청자가 처음에 요청을 작성할 때에 어느 요청 핸들러가 데이터 액세스 권한을 위임받을 것인지를 직접 지시할 방법이 없다는 사실을 해결한다.
요청자로부터의 권한의 위임(402) 및/또는 중개자로부터의 권한의 위임(404)과 같은 보안 자격증명 정보는 암호화될 수 있다. 각각의 프로세싱 중개자(204)는 그들을 복호화하고, 임의의 관련 분석을 수행하고, 가능하게는 그들을 수정한 다음, 요청(208)을 전송하기 전에 그들을 재암호화할 수 있다. 암호화는 통상적으로 사용되는 임의의 암호(예를 들어,
Figure 112009017953042-pct00005
) 또는 특수하게 적응된 암호를 이용하여 적용될 수 있다. 연관된 복호화 키들은 통상적으로 이용가능한 기술(예를 들어,
Figure 112009017953042-pct00006
에 기술되어 있는 RSA 키 트랜스포트) 또는 특수하게 설계된 기술을 이용하여 통신될 수 있다. 또한, 연관된 복호화 키들은 AES 키 랩(wrap)(예를 들어,
Figure 112009017953042-pct00007
)을 이용하여 통신될 수 있다. 다른 암호화, 복호화 및 키 트랜스포트 접근방식이 대안적으로 이용될 수 있다.
권한의 위임을 수반하는 보안 분산형 애플리케이션 정보 전달에 대한 몇몇 설명된 구현예는, 요청자의 데이터 액세스 권한을 요청 핸들러에게 위임하기 위하여 어떤 메커니즘을 이용하는지에 관하여 불가지론적(agnostic)이다. 예시적인 위임 메커니즘은, 제한적이지 않은 예를 들면, (ⅰ) MyProxy 서비스와 함께 사용되는 것과 같이 위임 자격증명을 언록(unlock)하는 데에 사용되는 이름-패스워드쌍, (ⅱ) ISO 권한 표현 언어(Rights Expression Language, REL)와 같은 정책 언어를 이용하여 각각의 프로세싱 중개자에서 생성된 일련의 명시적인 위임 정책/자격증명들, (ⅲ) 마이크로소프트®의 보안 정책 어설션 언어(Security Policy Assertion Language(SecPAL)™, (ⅳ) 이들의 소정의 조합 등을 포함한다. 예시적인 구현예는 그리드 컴퓨팅 분산형 작업 관리를 위해 개발 중인 하나 이상의 SOAP-기반 웹 서비스 프로토콜과 관련하여 이용되는 XML 인코딩을 이용할 수 있다.
설명되는 예시적인 접근방식은 요청자 및 각각의 프로세싱 중개자로 하여금, 메시지 통신 흐름에 참가 중인 후속 엔터티로의 원하는 위임을 인코딩하게 한다. 메커니즘이 이름-패스워드 자격증명 및 MyProxy 서비스를 포함하는 경우, 그것은 암호화되어 후속 엔터티에 보내진 이름-패스워드와, 사용할 MyProxy 서비스로의 참조를 더한 형태를 취한다. 메커니즘이 정책 언어들 중 하나를 포함하는 경우, 그것은 흐름에 참가하는 후속 엔터티가 요구되는 데이터에 액세스할 권한 및/또는 그러한 권한을 다른 엔터티들에게 위임할 권한을 가짐을 나타내는 자격증명을 생성하는 것을 수반한다.
어쨌든, 그러한 데이터 위임 자격증명은 요청자 또는 현재의 프로세싱 중개자에 의해 "발행"되거나 디지탈 서명된다. 그 다음, 권한 위임 정보는 위에서 설명한 (도 4와 관련하여 예시된 것과 같은) 인증 정보와 결합되어, 애플리케이션-레벨 보안 프로토콜의 다른 설명된 구현예를 형성한다. 단지 예를 들자면, 권한 위임 컴포넌트를 갖는 애플리케이션-레벨 보안 프로토콜에 대한 설명된 구현예는 "데이터 액세스 권한(data access rights)"을 "DAR"로 표현할 때, 일반적으로 다음과 같이 포맷될 수 있다.
Figure 112009017953042-pct00008
Figure 112009017953042-pct00009
도 5는 도 2의 예시적인 컴퓨팅 환경에 도시되어 있는 것들과 같은 애플리케이션-레벨 통신 참자가 상에서 실행될 수 있는 예시적인 애플리케이션(502)을 도시한 블럭도이다. 도시된 바와 같이, 애플리케이션(502)은 10개의 모듈(504-522)을 포함한다. 이러한 10개의 모듈은, 수신기(504), 애플리케이션-특정 정보 추출기(506), 애플리케이션-특정 정보 분석기(508), 메시지 참가자 인증기(510), 메시지 정보 완전성 검증기(512), 메시지 증대기(514), 메시지 서명기(516), 정보 암호화기(518), 정보 복호화기(520), 및 송신기(522)를 포함한다.
애플리케이션(502)에 대하여 10개의 모듈이 도시되고 이하에 설명되지만, 애플리케이션 명령어를 위한 애플리케이션-레벨 보안 프로토콜에서 참가 엔터티로서 기능하는 애플리케이션은 임의의 개수의 모듈을 포함할 수 있다. 이하의 설명은 주로 중개자(204)로서 기능하는 애플리케이션(502)에 관한 것이다. 그러나, 애플리케이션(502)의 기능은 요청자(202), 요청 핸들러(206) 등과 같은 다른 엔터티들에 대해서도 유사할 수 있다. 그러나, 약간의 차이는 있을 수 있다. 예를 들어, 요청 핸들러(206)는 메시지 증대기(514) 또는 메시지 서명기(516)를 필요로 하지 않을 수 있다. 요청자(202)는 요청(208)을 발원하므로, 애플리케이션-특정 정보 추출기(506) 또는 애플리케이션-특정 정보 분석기(508)를 필요로 하지 않을 수 있다. 한편, 그 둘을 요청자(202)의 애플리케이션(502)에 포함시키면, 요청자 스스로가 요청(208)의 전송 경로에 대한 소정의 요청 추적 과학적 조사 분석을 수행할 수 있게 된다.
설명되는 구현예에서, 수신기(504)는 애플리케이션 계층보다 하위에 있는 컴퓨터의 통신 스택의 계층으로부터 인입 요청(208)을 받아들인다. 마찬가지로, 송신기(522)는 하위 계층의 통신 트랜스포트 프로토콜을 이용하여 다른 중개자(204) 또는 요청 핸들러(206)로의 전달을 위해 애플리케이션 계층으로부터 통신 스택의 하위 계층으로 인출 요청(208)을 보낸다.
설명되는 구현예에서, 애플리케이션-특정 정보 추출기(506)는 인입 요청(208)으로부터 애플리케이션-특정 정보를 추출한다. 애플리케이션-특정 정보의 예는, 요청자로부터의 애플리케이션-특정 명령어(302), 중개자로부터의 애플리케이션-특정 명령어(306), 요청자로부터의 권한의 위임(402), 중개자로부터의 권한의 위임(404) 등을 포함하지만 이에 제한되지는 않는다. 애플리케이션-특정 정보 분석기(508)는 요청이 다음에 어디로 전달되어야 하는지를 결정하기 위하여, 추출된 애플리케이션-특정 정보를 분석한다. 후속하는 참가 노드는 예를 들어 다른 중개자 또는 요청 핸들러일 수 있다. 또한, 애플리케이션-특정 정보 분석기(508)는, (만일 있다면) 그러한 후속 노드에 대한 어떤 추가의 애플리케이션-특정 명령어가 인출 요청(208)을 위해 인입 요청(208)에 추가되어야 하는지를 결정하기 위해, 추출된 애플리케이션-특정 정보를 분석한다.
메시지 참자가 인증기(510)는 요청(208) 및/또는 증대적 애플리케이션-특정 정보의 발원지를 인증하기 위해 디지탈 서명을 이용한다. 그러므로, 메시지 참가자 인증기(510)는 요청자로부터의 애플리케이션-특정 명령어(302)를 갖는 원래의 요청(208(A))이 요청자(202)에 의해 개시되었는지를 인증하기 위해 요청자 서명(304)을 이용할 수 있다. 또한, 메시지 참가자 인증기(510)는 애플리케이션-특정 명령어(306(1))를 갖는 캡슐화하는 요청(208(B))이 중개자 #1(204(1))로부터 전달된 것인지를 인증하기 위하여 중개자 #1 서명(308(1))을 사용할 수 있다.
메시지 정보 완전성 검증기(512)는 각각의 중첩된 애플리케이션-특정 정보의 완전성을 검증하기 위하여, 각각의 중첩된 디지탈 서명(304 및 308)을 이용한다. 더 구체적으로, 메시지 정보 완전성 검증기(512)는 요청자로부터의 권한의 위임(402) 및/또는 요청자로부터의 애플리케이션-특정 명령어(302)의 완전성을 검증하기 위하여 요청자 서명(304)을 이용한다. 또한, 메시지 정보 완전성 검증기(512)는 중개자로부터의 권한의 위임(404) 및/또는 중개자로부터의 애플리케이션-특정 명령어(306)의 완전성을 검증하기 위하여 중개자 서명(308)을 이용할 수 있다.
메시지 증대기(514)는 임의의 추가의 원하는 프로세싱 명령어를 추가한다. 예를 들어, 메시지 증대기(514)는 후속 엔터티 수신자(예를 들어, 중개자 또는 요청 핸들러)를 위한 새로운 애플리케이션-특정 명령어(306), 및/또는 후속 엔터티 수신자를 위한 데이터 액세스 권한을 포함한 데이터 위임 권한(404)을 추가할 수 있다. 메시지 서명기(516)는 애플리케이션-레벨 정보에 디지탈 서명하여 중개자 서명(308)을 생성한다. 디지탈 서명 프로시져는 후속 엔터티 수신자를 위한 것인 중개자로부터의 애플리케이션-특정 명령어(306)와 같은 증대적 정보에 적용될 수 있다. 다르게는, 디지탈 서명 프로시져는 요청(208)이 생성되고 명령어들이 추가된 순서의 검증을 제공하기 위하여, 중첩된 애플리케이션-레벨 요청(208)에 대해 규정될 수 있다.
암호화 및 복호화는 각각 정보 암호화기(518) 및 정보 복호화기(520)에 의해 다루어진다. 정보는 정보 복호화기(520)에 의해 복호화될 수 있다. 정보는 정보 암호화기(518)에 의해 암호화 및/또는 재암호화될 수 있다. 예를 들어, 정보는 보안 자격증명 정보일 수 있다. 더 구체적으로, 정보는 애플리케이션-특정 명령어(302 및/또는 306), 권한의 위임(402 및/또는 404) 등을 포함하는 임의의 주어진 데이터일 수 있지만, 이에 제한되는 것은 아니다.
도 6은 애플리케이션 레벨에서 요청 정보를 보안 통신하기 위한 방법의 일례를 도시한 것이다. 흐름도(600)는 8개의 블럭(602-616)을 포함한다. 흐름도(600)의 동작들이 다른 환경에서 다양한 하드웨어 및 소프트웨어 조합으로 수행될 수 있긴 하지만, 흐름도(600)의 방법의 일례를 설명하기 위해 도 2 내지 도 5의 몇몇 양태들이 이용된다. 예를 들어, 흐름도(600)의 동작들은 프로세싱 중개자(204)에 의해 수행될 수 있다.
블럭(602)에서, 애플리케이션-레벨에서 요청자에 의해 디지탈 서명된 요청을 갖는 인입 메시지가 수신된다. 예를 들어, 중개자 #2(204(2))는 적어도 부분적으로 요청자(202)에 의해 서명된 애플리케이션-레벨 요청 B(208(B))를 갖는 메시지를 수신할 수 있다. 애플리케이션-레벨 요청 B(208(B))는 요청자 서명(304)을 포함하는 애플리케이션-레벨 요청 A(208(A))를 캡슐화한다.
블럭(604)에서, 수신된 요청이 선행 중개자로부터의 임의의 애플리케이션-특정 명령어를 포함하는지가 판정된다. 예를 들어, 애플리케이션-레벨 요청 B(208(B))가 선행 중개자(306)로부터의 임의의 애플리케이션-특정 명령어를 포함하는지가 판정될 수 있다. 도 3B에 도시된 바와 같이, 애플리케이션-레벨 요청 B(208(B))는 중개자 #1로부터의 애플리케이션-특정 명령어(306(1))를 포함한다.
수신된 메시지가 선행 중개자로부터의 애플리케이션-특정 명령어를 갖는 경우, 블럭(606)에서, 애플리케이션-특정 중개자 명령어가 요청으로부터 추출된다. 예를 들어, 중개자 #1로부터의 애플리케이션-특정 명령어(306(1))가 추출될 수 있다.
블럭(606) 이후에, 또는 블럭(604)에서의 "아니오" 판정 이후에, 블럭(608)에서 애플리케이션-특정 요청자 명령어가 요청으로부터 추출된다. 예를 들어, 요청자로부터의 애플리케이션-특정 명령어(302)가 추출될 수 있다. 따라서, 블럭(606 및 608) 이후에, 요청자로부터 발원된 것이든 선행 중개자로부터 발원된 것이든 간에, 임의의 애플리케이션-특정 명령어가 추출되었다. 디지탈 서명(304/308) 및/또는 권한의 위임(402/404)과 같은 다른 애플리케이션-특정 정보도 추출될 수 있다.
블럭(610)에서, 추출된 애플리케이션-특정 정보가 분석된다. 예를 들어, 요청이 다른 중개자에게, 또는 요청 핸들러에게, 또는 둘 중 하나 이상에게 전달되어야 하는지를 판정하기 위해, 애플리케이션-특정 요청자 명령어(302) 및/또는 애플리케이션-특정 중개자 명령어(306)가 분석될 수 있다. 즉, 분석은 요청의 후속 수신자가 되어야 할 적어도 하나의 엔터티의 신원을 결정할 수 있다. 분석은 또한 어떤 애플리케이션-특정 명령어가 현재 중개자에 의해 요청에 추가되어야 하는지를 결정할 수 있다.
디지탈 서명 보호가 이용되고 있는 경우, 요청자 서명(304) 및/또는 중개자 서명(들)(308)이 추출되어, 애플리케이션-레벨 요청(208)의 완전성을 인증 및/또는 분석하는 데에 사용될 수 있다. 데이터 위임 정보가 애플리케이션-레벨 요청(208)에 포함되어 있는 경우, 특히 다운스트림의 참가자들에게 데이터 액세스 권한을 더 위임하기 위하여, 요청자로부터의 권한의 위임(402) 및/또는 중개자로부터의 권한의 위임(404)이 추출되어 분석에 사용될 수 있다.
블럭(612)에서, 요청은 후속 엔터티를 위한 애플리케이션-레벨 명령어를 추가함으로써 증대된다. 예를 들어, 블럭(610)의 분석에 응답하여, 중개자 #2(204(2))는 중개자 #2로부터의 애플리케이션-특정 명령어(306(2))와 같은, 후속 중개자를 위한 애플리케이션-특정 명령어(306)를 추가할 수 있다. 위임 권한이 전달되고 있으면, 중개자 #2(204(2))는 중개자 #2로부터의 권한의 위임(404)을 추가함으로써 요청을 더 증대하여, 데이터 액세스 권한 이행 위임 체인을 계속할 수 있다.
블럭(614)에서, 애플리케이션 레벨에서의 추가된 명령어를 갖는 증대된 요청이 디지탈 서명되어 인출 메시지가 생성된다. 예를 들어, 중개자 #2(204(2))는 추가된 애플리케이션-특정 명령어(306(2)) 및/또는 중첩된 애플리케이션-레벨 요청(208(A) 및 208(B))에 디지탈 서명하여, 중개자 #2 서명(308(2))을 생성할 수 있다.
블럭(616)에서, 디지탈 서명된 인출 메시지는 후속 엔터티를 향해 송신된다. 예를 들어, 중개자 #2(204(2))는 중개자 #3(204(3))을 향해 애플리케이션-레벨 요청 C(208(C))를 송신할 수 있다. 중개자 #3(204(3))은 요청 핸들러(206(1) 및 206(2))로의 후속 통신을 위해 설명된 애플리케이션-레벨 보안 프로토콜의 양태들을, 그들 간의 논리적 및 신뢰 관계에 따라 적용할 수 있다.
도 7은 분산형 애플리케이션 정보 전달의 보안을 구현하는 데에 사용될 수 있는 예시적인 디바이스(702)의 블럭도이다. 복수의 디바이스(702)가 하나 이상의 네트워크(714)들 간에서 통신을 할 수 있다. 네트워크(714)는 인터넷, 인트라넷. 이더넷, 무선 네트워크, 유선 네트워크, 공용 네트워크, 사설 네트워크, 케이블 네트워크, DSL(digital subscriber line) 네트워크, 전화 네트워크, 파이버 네트워크, 그리드 컴퓨터 네트워크, 자원 클러스터들의 네트워크, 이들의 소정의 조합 등일 수 있다.
도시된 바와 같이, 두 개의 디바이스(702(1) 및 702(n))는 네트워크(714)를 통해 애플리케이션-레벨 요청(208)을 전달하는 것과 같은 메시지 통신 전송에 관여할 수 있다. 2개의 디바이스(702)가 구체적으로 도시되어 있긴 하지만, 구현예에 따라 하나 또는 둘보다 많은 디바이스(702)가 이용될 수 있다. 요청자(202), 중개자(204), 요청 핸들러(206) 등은 디바이스(702)로서 실현될 수 있다.
일반적으로, 디바이스(702)는 서버 디바이스, 워크스테이션 또는 기타 일반 컴퓨팅 디바이스, 데이터 저장 레포지토리 장치, PDA, 모바일폰, 게임 플랫폼, 엔터테인먼트 디바이스, 라우터 컴퓨팅 노드, 이들의 소정 조합 등과 같은 임의의 컴퓨터 또는 프로세싱가능형 디바이스를 나타낼 수 있다. 도시된 바와 같이, 디바이스(702)는 하나 이상의 입출력(I/O) 인터페이스(704), 적어도 하나의 프로세서(706), 및 하나 이상의 매체(708)를 포함한다. 매체(708)는 프로세서-실행가능한 명령어(710)를 포함한다.
디바이스(702)에 대한 설명된 구현예에서, I/O 인터페이스(704)는 (ⅰ) 네트워크(714)를 통해 통신하기 위한 네트워크 인터페이스, (ⅱ) 디스플레이 스크린 상에 정보를 디스플레이하기 위한 디스플레이 디바이스 인터페이스, (ⅲ) 하나 이상의 사람-기계 인터페이스 등을 포함할 수 있다. (ⅰ) 네트워크 인터페이스의 예는 네트워크 카드, 모뎀, 하나 이상의 포트, 네트워크 통신 스택 등을 포함한다. (ⅱ) 디스플레이 디바이스 인터페이스의 예는 그래픽 드라이버, 그래픽 카드, 스크린 또는 모니터를 위한 하드웨어 또는 소프트웨어 드라이버 등을 포함한다. (ⅲ) 사람-기계 인터페이스의 예는 사람-기계 인터페이스 디바이스(712)(예를 들어, 키보드, 리모트, 마우스 또는 기타 그래픽 포인팅 디바이스 등)에 무선 또는 유선으로 통신하는 것들을 포함할 수 있다.
일반적으로, 프로세서(706)는 프로세서-실행가능한 명령어(710)와 같은 프로 세서-실행가능한 명령어를 실행, 수행 및/또는 다르게 실시할 수 있다. 매체(708)는 하나 이상의 프로세서-액세스가능 매체를 포함한다. 즉, 매체(708)는 디바이스(702)에 의한 기능의 수행을 시행하기 위해 프로세서(706)에 의해 실행될 수 있는 프로세서-실행가능한 명령어(710)를 포함할 수 있다.
따라서, 분산형 애플리케이션 정보 전달의 보안을 실현하는 것은 프로세서-실행가능한 명령어의 일반적인 컨텍스트으로 설명될 수 있다. 일반적으로, 프로세서-실행가능한 명령어들은 특정 태스크를 수행 및/또는 가능하게 하고/하거나 특정 추상 데이터 타입을 구현하는 루틴, 프로그램, 애플리케이션, 코딩, 모듈, 프로토콜, 객체, 컴포넌트, 메타데이터 및 그것의 정의, 데이터 구조, 애플리케이션 프로그래밍 인터페이스(API) 등을 포함한다. 프로세서-실행가능한 명령어들은 개별 저장 매체에 위치될 수 있고/거나, 서로 다른 프로세서들에 의해 실행될 수 있고/있거나, 다양한 전송 매체를 통해 전파될 수 있다.
프로세서(들)(706)는 임의의 적용가능한 프로세싱-가능 기술을 이용하여 구현될 수 있다. 매체(708)는 디바이스(702)의 일부로서 포함되고/거나 디바이스(702)에 의해 액세스될 수 있는 임의의 이용가능한 매체를 포함할 수 있다. 매체(708)는 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체, 및 저장 및 전송 매체(예를 들어, 무선 또는 유선 통신 채널)를 포함한다. 예를 들어, 매체(708)는 프로세서-실행가능한 명령어(710)의 장기간 대용량 저장을 위한 디스크들의 어레이, 현재 실행되고/거나 다르게 처리되고 있는 명령어들의 단기간 저장을 위한 RAM(random access memory), 통신을 송신하기 위한 네트워크(714) 상의 링크(들) 등을 포함할 수 있다.
구체적으로 설명되는 바와 같이, 매체(708)는 적어도 프로세서-실행가능한 명령어(710)를 포함한다. 일반적으로, 프로세서-실행가능한 명령어(710)는 프로세서(706)에 의해 실행될 때, 디바이스(702)로 하여금 여기에 설명된 다양한 기능들을 수행하게 한다. 그러한 기능은 (ⅰ) 도 2에 도시된 애플리케이션-레벨 통신 참가자를 실현하는 것, (ⅱ) (도 6의) 흐름도(600)에 도시된 동작들을 수행하는 것, (ⅲ) 도 3A, 3B, 3C, 4에 도시된 데이터 구조(들)(208)를 구현하는 것, (ⅳ) 도 5에 도시된 애플리케이션(502)을 실현하는 것 등을 포함하지만, 그에 제한되는 것은 아니다. 오직 예로서만 들자면, 프로세서-실행가능한 명령어(710)는 하나 이상의 애플리케이션-레벨 요청(208), 애플리케이션(502), 그들의 소정의 조합 등을 포함할 수 있다.
도 1 내지 도 7의 디바이스, 동작, 양태, 특징, 기능, 프로시져, 모듈, 데이터 구조, 프로토콜, 컴퓨팅 시스템, 컴포넌트 등은 복수의 블럭으로 분할될 수 있는 도면들로 도시되어 있다. 그러나, 도 1 내지 도 7의 순서, 상호접속, 상호관계, 레이아웃 등은 제한적인 것으로 해석되도록 의도되지 않았으며, 분산형 애플리케이션 정보 전달의 보안을 위하여 하나 이상의 시스템, 방법, 디바이스, 프로시져, 매체, 장치, API, 구성 등을 구현하기 위한 임의의 방식으로, 임의의 개수의 블록이 수정, 조합, 재배열, 증대, 생략될 수 있다.
시스템, 매체, 디바이스, 방법, 프로시져, 장치, 메커니즘, 스킴, 장치, 프로세스, 구성, 및 기타 구현이 구조적, 논리적, 알고리즘적 및 기능적 특징 및/또 는 도면에 특정한 언어로 설명되었지만, 첨부된 특허청구범위에 정의된 발명은 위에서 설명된 특정한 특징 또는 동작들로 반드시 제한되는 것은 아니라는 점을 이해해야 한다. 오히려, 위에서 설명된 특정한 특징 및 동작들은 특허청구범위를 구현하는 예시적인 형태로서 개시된 것임을 알 것이다.

Claims (20)

  1. 프로세서-실행가능한 명령어 및 보안 애플리케이션 명령어 프로토콜(secure application instructions protocol)을 위한 데이터 구조를 포함하는 하나 이상의 프로세서-액세스가능한 메모리로서,
    상기 데이터 구조는,
    요청자로부터의 애플리케이션-특정 명령어(application-specific instructions), 및 상기 요청자로부터의 애플리케이션-특정 명령어에 대한 요청자 서명을 포함하는 제1 애플리케이션-레벨 요청 - 상기 요청자로부터의 상기 애플리케이션-특정 명령어는 요청 핸들러를 명시하지 않고, 상기 요청자는 최초 요청자이며, 상기 요청 핸들러는 중개자가 아닌 엔드포인트 요청 핸들러임 - 과,
    중개자로부터의 애플리케이션-특정 명령어, 적어도 상기 중개자로부터의 애플리케이션-특정 명령어에 대한 중개자 서명, 및 상기 엔드포인트 요청 핸들러를 위한 권한 위임 정보를 포함하는 제2 애플리케이션-레벨 요청 - 상기 권한 위임 정보는 상기 엔드포인트 요청 핸들러로 하여금 상기 제1 애플리케이션-레벨 요청과 관련된 데이터에 액세스할 수 있도록 하거나 상기 데이터에 권한을 더 위임할 수 있도록 하고, 상기 중개자로부터의 상기 애플리케이션-특정 명령어는 상기 요청자로부터의 상기 애플리케이션-특정 명령어의 분석에 적어도 부분적으로 기초하여 상기 중개자에 의해 동적으로 결정되어 상기 제1 애플리케이션-레벨 요청을 포워딩할 곳과 상기 엔드포인트 요청 핸들러를 결정하며, 상기 제1 애플리케이션-레벨 요청은 상기 제2 애플리케이션-레벨 요청 내에 중첩됨 -
    을 포함하는
    하나 이상의 프로세서-액세스가능한 메모리.
  2. 삭제
  3. 제1항에 있어서,
    상기 제1 애플리케이션-레벨 요청은 데이터에 액세스하기 위한 상기 요청자로부터의 권한의 위임을 더 포함하는
    하나 이상의 프로세서-액세스가능한 메모리.
  4. 제1항에 있어서,
    상기 중개자로부터의 상기 애플리케이션-특정 명령어는 참가 엔터티들의 신원(identity)을 추적하는
    하나 이상의 프로세서-액세스가능한 메모리.
  5. 제1항에 있어서,
    상기 중개자는 상기 요청자로부터의 상기 애플리케이션-특정 명령어의 요청된 태스크를 복수의 부분들로 분리하고, 적어도 제1 부분은 제1 요청 핸들러로 포워딩하며 적어도 제 2 부분은 상기 제1 요청 핸들러와 상이한 제2 요청 핸들러로 포워딩하는
    하나 이상의 프로세서-액세스가능한 메모리.
  6. 제1항에 있어서,
    상기 중개자 서명은 또한 상기 제1 애플리케이션-레벨 요청에 대한 것인
    하나 이상의 프로세서-액세스가능한 메모리.
  7. 제1항에 있어서,
    상기 제1 애플리케이션-레벨 요청은 상기 요청자로부터의 데이터 액세스 권한의 위임을 더 포함하고,
    상기 제2 애플리케이션-레벨 요청은 상기 중개자로부터의 데이터 액세스 권한의 위임을 더 포함하며,
    상기 데이터 구조는,
    다른 중개자로부터의 애플리케이션-특정 명령어, 적어도 상기 다른 중개자로부터의 상기 애플리케이션-특정 명령어에 대한 다른 중개자 서명, 및 상기 다른 중개자로부터의 데이터 액세스 권한의 위임을 포함하는 제3 애플리케이션-레벨 요청을 더 포함하고,
    상기 제1 애플리케이션-레벨 요청 및 상기 제2 애플리케이션-레벨 요청은 상기 제3 애플리케이션-레벨 요청 내에 중첩되는
    하나 이상의 프로세서-액세스가능한 메모리.
  8. 제7항에 있어서,
    상기 데이터 액세스 권한의 위임들 각각은 위임 정보를 포함하고, 상기 위임 정보는 암호화되는
    하나 이상의 프로세서-액세스가능한 메모리.
  9. 보안 애플리케이션 명령어 프로토콜을 구현하는 애플리케이션을 포함하는 디바이스로서,
    상기 디바이스는 하나 이상의 프로세서 및 상기 하나 이상의 프로세서에 의해 실행가능한 컴퓨터-실행가능 명령어를 저장하는 메모리를 포함하고,
    상기 메모리는
    요청자로부터의 애플리케이션-특정 명령어를 포함하는 인입(incoming) 애플리케이션-레벨 요청을 수신하고 상기 요청자로부터의 상기 애플리케이션-특정 명령어를 추출하는 애플리케이션-특정 정보 추출기 - 상기 요청자로부터의 상기 애플리케이션-특정 명령어는 엔드포인트 요청 핸들러를 명시하지 않고, 상기 요청자는 최초 요청자임 - 와,
    상기 요청자로부터의 상기 추출된 애플리케이션-특정 명령어를 분석하여, 상기 인입 애플리케이션-레벨 요청의 후속 수신자의 신원(identity)을 동적으로 결정하고, 상기 후속 수신자를 위한 추가적인 애플리케이션-특정 명령어를 결정하는 애플리케이션-특정 정보 분석기와,
    상기 후속 수신자를 위한 상기 추가적인 애플리케이션-특정 명령어 및 권한 위임 정보를 추가하여 상기 후속 수신자가 데이터에 액세스할 수 있거나 상기 데이터에 액세스할 권한을 더 위임할 수 있도록 하는 메시지 증대기(augmenter)와,
    적어도 상기 후속 수신자를 위한 상기 추가적인 애플리케이션-특정 명령어, 상기 인입 애플리케이션-레벨 요청 및 상기 추가된 권한 위임 정보를 디지탈 서명하여 인출(outgoing) 애플리케이션-레벨 요청을 생성하고, 상기 인출 애플리케이션-레벨 요청에 인출 중개자 서명을 추가하는 메시지 서명기 - 상기 디바이스는 상기 인출 애플리케이션-레벨 요청을 상기 후속 수신자에게 포워딩하게 됨 -
    를 저장하는
    보안 애플리케이션 명령어 프로토콜을 구현하는 애플리케이션을 포함하는 디바이스.
  10. 제9항에 있어서,
    상기 인입 애플리케이션-레벨 요청은 상기 요청자로부터의 애플리케이션-특정 명령어에 대한 요청자 서명을 포함하는
    보안 애플리케이션 명령어 프로토콜을 구현하는 애플리케이션을 포함하는 디바이스.
  11. 제10항에 있어서,
    상기 인입 애플리케이션-레벨 요청은 중개자로부터의 애플리케이션-특정 명령어, 및 상기 중개자로부터의 상기 애플리케이션-특정 명령어에 대한 중개자 서명을 더 포함하는
    보안 애플리케이션 명령어 프로토콜을 구현하는 애플리케이션을 포함하는 디바이스.
  12. 제11항에 있어서,
    상기 애플리케이션-특정 정보 추출기는 상기 인입 애플리케이션-레벨 요청으로부터, 상기 중개자로부터의 상기 애플리케이션-특정 명령어를 추출하도록 더 구성되고,
    상기 애플리케이션-특정 정보 분석기는 상기 중개자로부터의 상기 애플리케이션-특정 명령어를 분석하여 상기 후속 수신자의 상기 신원을 동적으로 결정하고 상기 후속 수신자를 위한 상기 추가적인 애플리케이션-특정 명령어를 결정하는
    보안 애플리케이션 명령어 프로토콜을 구현하는 애플리케이션을 포함하는 디바이스.
  13. 제11항에 있어서,
    상기 메모리는
    상기 요청자 서명을 이용하여 상기 요청자로부터의 상기 애플리케이션-특정 명령어가 진정으로 상기 요청자로부터 발원한 것임을 인증하고, 상기 중개자 서명을 이용하여 상기 중개자로부터의 상기 애플리케이션-특정 명령어가 진정으로 상기 중개자로부터 발원한 것임을 인증하는 메시지 참가자 인증기
    를 더 저장하는
    보안 애플리케이션 명령어 프로토콜을 구현하는 애플리케이션을 포함하는 디바이스.
  14. 제11항에 있어서,
    상기 메모리는
    상기 요청자로부터의 상기 애플리케이션-특정 명령어가 상기 요청자 서명을 이용하여 상기 요청자에 의해 서명된 이후로 수정되지 않았음을 검증하고, 상기 중개자로부터의 상기 애플리케이션-특정 명령어가 상기 중개자 서명을 이용하여 상기 중개자에 의해 서명된 이후로 수정되지 않았음을 검증하는 메시지 정보 완전성(integrity) 검증기
    를 더 저장하는
    보안 애플리케이션 명령어 프로토콜을 구현하는 애플리케이션을 포함하는 디바이스.
  15. 삭제
  16. 삭제
  17. 컴퓨터-구현된 방법으로서,
    애플리케이션-레벨에서 요청자에 의해 디지탈 서명된 요청을 갖는 인입 메시지를 수신하는 단계 - 상기 요청은 상기 요청자로부터의 애플리케이션-특정 요청자 명령어를 포함하고, 상기 요청자로부터의 상기 애플리케이션-특정 요청자 명령어는 요청 핸들러를 명시하지 않으며, 상기 요청자는 최초 요청자이고, 상기 요청 핸들러는 중개자가 아닌 엔드포인트 요청 핸들러임 - 와,
    상기 애플리케이션-특정 요청자 명령어를 분석하는 단계와,
    상기 분석에 적어도 부분적으로 기초하여, 후속 컴퓨팅 엔터티의 신원을 동적으로 결정하는 단계 및 상기 후속 컴퓨팅 엔터티를 위한 애플리케이션-특정 명령어와 상기 후속 컴퓨팅 엔터티를 위한 권한 위임 정보를 추가함으로써 상기 요청을 증대시키는 단계 - 상기 권한 위임 정보는 상기 후속 컴퓨팅 엔터티로 하여금 상기 요청과 관련된 데이터에 액세스할 수 있도록 하거나 상기 데이터에 권한을 더 위임할 수 있도록 함 - 와,
    상기 후속 컴퓨팅 엔터티를 위한 상기 애플리케이션-특정 명령어를 디지탈 서명하여, 상기 요청, 상기 후속 컴퓨팅 엔터티를 위한 상기 애플리케이션-특정 명령어, 및 상기 후속 컴퓨팅 엔터티를 위한 상기 애플리케이션-특정 명령어에 대한 디지탈 서명을 포함하는 인출 메시지를 생성하는 단계와,
    상기 후속 컴퓨팅 엔터티를 향해 상기 인출 메시지를 송신하는 단계
    를 포함하는 컴퓨터-구현된 방법.
  18. 삭제
  19. 제17항에 있어서,
    상기 요청으로부터, 선행 중개자로부터 발원된 애플리케이션-특정 중개자 명령어를 추출하는 단계와,
    상기 요청으로부터, 상기 요청자에 의해 발원된 애플리케이션-특정 요청자 명령어를 추출하는 단계와,
    상기 애플리케이션-특정 중개자 명령어 및 상기 애플리케이션-특정 요청자 명령어를 분석하여 상기 후속 컴퓨팅 엔터티에 대한 상기 신원을 결정하는 단계
    를 더 포함하는 컴퓨터-구현된 방법.
  20. 제17항에 있어서,
    상기 요청으로부터 요청자 서명 및 상기 요청자에 의해 발원된 상기 애플리케이션-특정 요청자 명령어 및 을 추출하는 단계와,
    상기 요청자 서명을 이용하여 상기 애플리케이션-특정 요청자 명령어가 상기 요청자에 의해 발원된 것임을 인증하는 단계와,
    상기 요청자 서명을 이용하여 상기 애플리케이션-특정 요청자 명령어의 완전성을 검증하는 단계
    를 더 포함하는 컴퓨터-구현된 방법.
KR1020097006103A 2006-11-01 2007-11-01 보안된 분산형 애플리케이션 정보 전달을 위한 프로세서 액세스가능한 메모리, 디바이스 및 컴퓨터-구현된 방법 KR101433978B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/555,610 US8555335B2 (en) 2006-11-01 2006-11-01 Securing distributed application information delivery
US11/555,610 2006-11-01
PCT/US2007/083390 WO2008057970A2 (en) 2006-11-01 2007-11-01 Securing distributed application information delivery

Publications (2)

Publication Number Publication Date
KR20090074743A KR20090074743A (ko) 2009-07-07
KR101433978B1 true KR101433978B1 (ko) 2014-08-27

Family

ID=39331980

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097006103A KR101433978B1 (ko) 2006-11-01 2007-11-01 보안된 분산형 애플리케이션 정보 전달을 위한 프로세서 액세스가능한 메모리, 디바이스 및 컴퓨터-구현된 방법

Country Status (8)

Country Link
US (1) US8555335B2 (ko)
EP (1) EP2078247B1 (ko)
JP (1) JP5337702B2 (ko)
KR (1) KR101433978B1 (ko)
CN (1) CN101535948B (ko)
CA (1) CA2664322C (ko)
IL (1) IL197360A (ko)
WO (1) WO2008057970A2 (ko)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3570178B1 (en) 2002-01-08 2020-05-27 Seven Networks, LLC Secure transport for mobile communication network
US7917468B2 (en) 2005-08-01 2011-03-29 Seven Networks, Inc. Linking of personal information management data
US8468126B2 (en) 2005-08-01 2013-06-18 Seven Networks, Inc. Publishing data in an information community
US7853563B2 (en) 2005-08-01 2010-12-14 Seven Networks, Inc. Universal data aggregation
WO2006045102A2 (en) 2004-10-20 2006-04-27 Seven Networks, Inc. Method and apparatus for intercepting events in a communication system
US7706781B2 (en) 2004-11-22 2010-04-27 Seven Networks International Oy Data security in a mobile e-mail service
FI117152B (fi) 2004-12-03 2006-06-30 Seven Networks Internat Oy Sähköpostiasetusten käyttöönotto matkaviestimelle
US7752633B1 (en) 2005-03-14 2010-07-06 Seven Networks, Inc. Cross-platform event engine
US8438633B1 (en) 2005-04-21 2013-05-07 Seven Networks, Inc. Flexible real-time inbox access
WO2006136660A1 (en) 2005-06-21 2006-12-28 Seven Networks International Oy Maintaining an ip connection in a mobile network
US7769395B2 (en) 2006-06-20 2010-08-03 Seven Networks, Inc. Location-based operations and messaging
US8805425B2 (en) 2007-06-01 2014-08-12 Seven Networks, Inc. Integrated messaging
US8693494B2 (en) 2007-06-01 2014-04-08 Seven Networks, Inc. Polling
US8141151B2 (en) * 2007-08-30 2012-03-20 International Business Machines Corporation Non-intrusive monitoring of services in a service-oriented architecture
US8364181B2 (en) 2007-12-10 2013-01-29 Seven Networks, Inc. Electronic-mail filtering for mobile devices
US9002828B2 (en) 2007-12-13 2015-04-07 Seven Networks, Inc. Predictive content delivery
WO2009080034A2 (en) * 2007-12-20 2009-07-02 3Djam Aps System and method for conversion and distribution of graphical objects
US8107921B2 (en) 2008-01-11 2012-01-31 Seven Networks, Inc. Mobile virtual network operator
US8862657B2 (en) 2008-01-25 2014-10-14 Seven Networks, Inc. Policy based content service
US8510796B2 (en) * 2008-01-25 2013-08-13 Oracle International Corporation Method for application-to-application authentication via delegation
US20090193338A1 (en) 2008-01-28 2009-07-30 Trevor Fiatal Reducing network and battery consumption during content delivery and playback
US8787947B2 (en) 2008-06-18 2014-07-22 Seven Networks, Inc. Application discovery on mobile devices
US8078158B2 (en) 2008-06-26 2011-12-13 Seven Networks, Inc. Provisioning applications for a mobile device
US20100057911A1 (en) * 2008-08-27 2010-03-04 C&C Group, Inc. Enhanced User Control Over Processing Parameters
US8909759B2 (en) 2008-10-10 2014-12-09 Seven Networks, Inc. Bandwidth measurement
SE533007C2 (sv) 2008-10-24 2010-06-08 Ilt Productions Ab Distribuerad datalagring
EP2712149B1 (en) 2010-04-23 2019-10-30 Compuverde AB Distributed data storage
CN101883118B (zh) * 2010-07-08 2012-10-17 长春吉大正元信息技术股份有限公司 针对大数据量的数字签名方法
EP2599345B1 (en) 2010-07-26 2017-09-06 Seven Networks, LLC Distributed implementation of dynamic wireless traffic policy
GB2497012B (en) 2010-07-26 2013-10-30 Seven Networks Inc Mobile network traffic coordination across multiple applications
EP2599280A2 (en) 2010-07-26 2013-06-05 Seven Networks, Inc. Mobile application traffic optimization
US8838783B2 (en) 2010-07-26 2014-09-16 Seven Networks, Inc. Distributed caching for resource and mobile network traffic management
WO2012161751A1 (en) * 2011-05-25 2012-11-29 Seven Networks, Inc. Mobile network traffic coordination across multiple applications
WO2012060995A2 (en) 2010-11-01 2012-05-10 Michael Luna Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
WO2012060997A2 (en) 2010-11-01 2012-05-10 Michael Luna Application and network-based long poll request detection and cacheability assessment therefor
US8326985B2 (en) 2010-11-01 2012-12-04 Seven Networks, Inc. Distributed management of keep-alive message signaling for mobile network resource conservation and optimization
US9060032B2 (en) 2010-11-01 2015-06-16 Seven Networks, Inc. Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic
US9330196B2 (en) 2010-11-01 2016-05-03 Seven Networks, Llc Wireless traffic management system cache optimization using http headers
EP2635973A4 (en) 2010-11-01 2014-01-15 Seven Networks Inc TO THE BEHAVIOR OF A MOBILE APPLICATION AND INTERMEDIATE STORAGE TAILORED TO NETWORK CONDITIONS
US8843153B2 (en) 2010-11-01 2014-09-23 Seven Networks, Inc. Mobile traffic categorization and policy for network use optimization while preserving user experience
US8417823B2 (en) 2010-11-22 2013-04-09 Seven Network, Inc. Aligning data transfer to optimize connections established for transmission over a wireless network
US8484314B2 (en) 2010-11-01 2013-07-09 Seven Networks, Inc. Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
WO2012071384A2 (en) 2010-11-22 2012-05-31 Michael Luna Optimization of resource polling intervals to satisfy mobile device requests
US9325662B2 (en) 2011-01-07 2016-04-26 Seven Networks, Llc System and method for reduction of mobile network traffic used for domain name system (DNS) queries
US20120271903A1 (en) 2011-04-19 2012-10-25 Michael Luna Shared resource and virtual resource management in a networked environment
US8832228B2 (en) 2011-04-27 2014-09-09 Seven Networks, Inc. System and method for making requests on behalf of a mobile device based on atomic processes for mobile network traffic relief
US8621075B2 (en) 2011-04-27 2013-12-31 Seven Metworks, Inc. Detecting and preserving state for satisfying application requests in a distributed proxy and cache system
US9239800B2 (en) 2011-07-27 2016-01-19 Seven Networks, Llc Automatic generation and distribution of policy information regarding malicious mobile traffic in a wireless network
US8769138B2 (en) * 2011-09-02 2014-07-01 Compuverde Ab Method for data retrieval from a distributed data storage system
US9626378B2 (en) 2011-09-02 2017-04-18 Compuverde Ab Method for handling requests in a storage system and a storage node for a storage system
US8645978B2 (en) 2011-09-02 2014-02-04 Compuverde Ab Method for data maintenance
US8977755B2 (en) 2011-12-06 2015-03-10 Seven Networks, Inc. Mobile device and method to utilize the failover mechanism for fault tolerance provided for mobile traffic management and network/device resource conservation
US8934414B2 (en) 2011-12-06 2015-01-13 Seven Networks, Inc. Cellular or WiFi mobile traffic optimization based on public or private network destination
US9277443B2 (en) 2011-12-07 2016-03-01 Seven Networks, Llc Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
US9009250B2 (en) 2011-12-07 2015-04-14 Seven Networks, Inc. Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation
US8861354B2 (en) 2011-12-14 2014-10-14 Seven Networks, Inc. Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization
US9832095B2 (en) 2011-12-14 2017-11-28 Seven Networks, Llc Operation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic
WO2013090212A1 (en) 2011-12-14 2013-06-20 Seven Networks, Inc. Mobile network reporting and usage analytics system and method using aggregation of data in a distributed traffic optimization system
WO2013103988A1 (en) 2012-01-05 2013-07-11 Seven Networks, Inc. Detection and management of user interactions with foreground applications on a mobile device in distributed caching
US8793499B2 (en) 2012-01-20 2014-07-29 Lockheed Martin Corporation Nested digital signatures with constant file size
WO2013116856A1 (en) 2012-02-02 2013-08-08 Seven Networks, Inc. Dynamic categorization of applications for network access in a mobile network
US9326189B2 (en) 2012-02-03 2016-04-26 Seven Networks, Llc User as an end point for profiling and optimizing the delivery of content and data in a wireless network
US8812695B2 (en) 2012-04-09 2014-08-19 Seven Networks, Inc. Method and system for management of a virtual network connection without heartbeat messages
US20130268656A1 (en) 2012-04-10 2013-10-10 Seven Networks, Inc. Intelligent customer service/call center services enhanced using real-time and historical mobile application and traffic-related statistics collected by a distributed caching system in a mobile network
US8775631B2 (en) 2012-07-13 2014-07-08 Seven Networks, Inc. Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications
US9161258B2 (en) 2012-10-24 2015-10-13 Seven Networks, Llc Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion
US20140177497A1 (en) 2012-12-20 2014-06-26 Seven Networks, Inc. Management of mobile device radio state promotion and demotion
US9271238B2 (en) 2013-01-23 2016-02-23 Seven Networks, Llc Application or context aware fast dormancy
US8874761B2 (en) 2013-01-25 2014-10-28 Seven Networks, Inc. Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
WO2014134516A1 (en) * 2013-02-28 2014-09-04 Elwha Llc Managing data and/or services for devices
US8750123B1 (en) 2013-03-11 2014-06-10 Seven Networks, Inc. Mobile device equipped with mobile network congestion recognition to make intelligent decisions regarding connecting to an operator network
US9065765B2 (en) 2013-07-22 2015-06-23 Seven Networks, Inc. Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network
JP6508688B2 (ja) 2014-10-31 2019-05-08 コンヴィーダ ワイヤレス, エルエルシー エンドツーエンドサービス層認証
EP3272094B1 (en) 2015-03-16 2021-06-23 Convida Wireless, LLC End-to-end authentication at the service layer using public keying mechanisms
US10171452B2 (en) * 2016-03-31 2019-01-01 International Business Machines Corporation Server authentication using multiple authentication chains
US10313131B2 (en) * 2017-01-26 2019-06-04 Infineon Technologies Ag Secured daisy chain communication
WO2019094790A1 (en) * 2017-11-10 2019-05-16 Intel IP Corporation Multi-access edge computing (mec) architecture and mobility framework
CN114826600B (zh) * 2022-02-25 2023-11-17 北京全路通信信号研究设计院集团有限公司 关键指令确认方法、装置、介质及电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5649099A (en) * 1993-06-04 1997-07-15 Xerox Corporation Method for delegating access rights through executable access control program without delegating access rights not in a specification to any intermediary nor comprising server security

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5630129A (en) 1993-12-01 1997-05-13 Sandia Corporation Dynamic load balancing of applications
US6601084B1 (en) * 1997-12-19 2003-07-29 Avaya Technology Corp. Dynamic load balancer for multiple network servers
US6766348B1 (en) * 1999-08-03 2004-07-20 Worldcom, Inc. Method and system for load-balanced data exchange in distributed network-based resource allocation
US6523065B1 (en) 1999-08-03 2003-02-18 Worldcom, Inc. Method and system for maintenance of global network information in a distributed network-based resource allocation system
GB2357228B (en) * 1999-12-08 2003-07-09 Hewlett Packard Co Method and apparatus for discovering a trust chain imparting a required attribute to a subject
US20020087862A1 (en) * 2000-01-07 2002-07-04 Sandeep Jain Trusted intermediary
JP2002014929A (ja) * 2000-04-26 2002-01-18 Sony Corp アクセス制御システム、アクセス制御方法、およびデバイス、アクセス制御サーバ、アクセス制御サーバ登録サーバ、データ処理装置、並びにプログラム記憶媒体
US7054943B1 (en) 2000-04-28 2006-05-30 International Business Machines Corporation Method and apparatus for dynamically adjusting resources assigned to plurality of customers, for meeting service level agreements (slas) with minimal resources, and allowing common pools of resources to be used across plural customers on a demand basis
US7313692B2 (en) * 2000-05-19 2007-12-25 Intertrust Technologies Corp. Trust management systems and methods
US6851058B1 (en) * 2000-07-26 2005-02-01 Networks Associates Technology, Inc. Priority-based virus scanning with priorities based at least in part on heuristic prediction of scanning risk
US7062654B2 (en) 2000-11-10 2006-06-13 Sri International Cross-domain access control
AU2002222409A1 (en) * 2000-12-27 2002-07-08 Nettrust Israel Ltd. Methods and systems for authenticating communications
US7275102B2 (en) 2001-01-22 2007-09-25 Sun Microsystems, Inc. Trust mechanisms for a peer-to-peer network computing platform
NL1017388C2 (nl) * 2001-02-16 2002-08-19 Marc Van Oldenborgh Organisch datanetwerk met een dynamische topologie.
BR0207790A (pt) * 2001-03-19 2004-03-23 Diebold Inc Sistema de caixas automáticos ("atms"); método; método para procurar por uma pessoa
US7231521B2 (en) * 2001-07-05 2007-06-12 Lucent Technologies Inc. Scheme for authentication and dynamic key exchange
US7281128B2 (en) * 2001-10-22 2007-10-09 Extended Systems, Inc. One pass security
CN1482566A (zh) * 2003-01-22 2004-03-17 余育新 分布式工作流管理平台
CN1195274C (zh) * 2003-01-25 2005-03-30 华中科技大学 基于集群视频服务器的节目源分片分布式存储方法
SE0300368D0 (sv) * 2003-02-11 2003-02-11 Ericsson Telefon Ab L M System for internet privacy
CA2527501A1 (en) 2003-05-28 2004-12-09 Caymas Systems, Inc. Multilayer access control security system
US7496755B2 (en) 2003-07-01 2009-02-24 International Business Machines Corporation Method and system for a single-sign-on operation providing grid access and network access
US7526549B2 (en) * 2003-07-24 2009-04-28 International Business Machines Corporation Cluster data port services for clustered computer system
US20050125537A1 (en) 2003-11-26 2005-06-09 Martins Fernando C.M. Method, apparatus and system for resource sharing in grid computing networks
US8544096B2 (en) * 2003-12-30 2013-09-24 Emc Corporation On-access and on-demand distributed virus scanning
US7552437B2 (en) 2004-01-14 2009-06-23 International Business Machines Corporation Maintaining application operations within a suboptimal grid environment
US20050166041A1 (en) 2004-01-23 2005-07-28 Gridlron Software, Inc. Authentication in a distributed computing environment
US7581107B2 (en) * 2004-05-28 2009-08-25 International Business Machines Corporation Anonymity revocation
US8085875B2 (en) 2004-07-16 2011-12-27 Qualcomm Incorporated Incremental pilot insertion for channnel and interference estimation
US7681242B2 (en) * 2004-08-26 2010-03-16 Novell, Inc. Allocation of network resources
US7765552B2 (en) 2004-09-17 2010-07-27 Hewlett-Packard Development Company, L.P. System and method for allocating computing resources for a grid virtual system
US20060075042A1 (en) 2004-09-30 2006-04-06 Nortel Networks Limited Extensible resource messaging between user applications and network elements in a communication network
US7761557B2 (en) 2005-01-06 2010-07-20 International Business Machines Corporation Facilitating overall grid environment management by monitoring and distributing grid activity
US8590044B2 (en) * 2005-04-14 2013-11-19 International Business Machines Corporation Selective virus scanning system and method
US8572738B2 (en) * 2006-12-07 2013-10-29 International Business Machines Corporation On demand virus scan
US8250576B2 (en) * 2009-09-30 2012-08-21 Microsoft Corporation Structured task hierarchy for a parallel runtime

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5649099A (en) * 1993-06-04 1997-07-15 Xerox Corporation Method for delegating access rights through executable access control program without delegating access rights not in a specification to any intermediary nor comprising server security

Also Published As

Publication number Publication date
KR20090074743A (ko) 2009-07-07
JP5337702B2 (ja) 2013-11-06
EP2078247A4 (en) 2014-09-24
EP2078247A2 (en) 2009-07-15
CN101535948B (zh) 2012-12-26
WO2008057970A2 (en) 2008-05-15
JP2010508594A (ja) 2010-03-18
CA2664322A1 (en) 2008-05-15
EP2078247B1 (en) 2019-01-09
CN101535948A (zh) 2009-09-16
WO2008057970A3 (en) 2008-08-07
US20080104666A1 (en) 2008-05-01
IL197360A (en) 2014-02-27
IL197360A0 (en) 2009-12-24
US8555335B2 (en) 2013-10-08
CA2664322C (en) 2015-10-06

Similar Documents

Publication Publication Date Title
KR101433978B1 (ko) 보안된 분산형 애플리케이션 정보 전달을 위한 프로세서 액세스가능한 메모리, 디바이스 및 컴퓨터-구현된 방법
US10700865B1 (en) System and method for granting secure access to computing services hidden in trusted computing environments to an unsecure requestor
Yialelis et al. A Security Framework Supporting Domain Based Access Control in Distributed Systems.
Cheng An architecture for the Internet Key Exchange protocol
KR20210109667A (ko) 보안 전자 데이터 전송을 위한 시스템 및 방법
Kumar et al. Realization of threats and countermeasure in Semantic Web services
CN112384939B (zh) 用于分布式分类账相关交易的链外交换的计算机实现的系统和方法
Al-Shargabi Security engineering for E-government web services: A trust model
Bhatnagar et al. An empirical study of security issues in grid middleware
Giron Migrating Applications to Post-Quantum Cryptography: Beyond Algorithm Replacement
Gymnopoulos et al. GRID security review
Wu et al. Verified CSAC-based CP-ABE access control of cloud storage in SWIM
Selvi et al. Authentication in grid security infrastructure-survey
Diouri Web Service Security Overview, analysis and challenges
Pranata et al. Distributed mechanism for protecting resources in a newly emerged digital ecosystem technology
Singh et al. Rest security framework for event streaming bus architecture
WO2002021793A2 (en) System and method for encrypted message interchange
Ismail et al. Key distribution framework for a mobile agent platform
Rudra et al. Understanding and mitigating security and authentication issues in service oriented network architecture
JP5466698B2 (ja) 暗号化証明書を処理するシステム
PRIYA et al. Third Party System for Security in Cloud Computing Environment
Kostopoulos et al. State-of-the-Art Security in Grid Computing
Nuredini Security issues in distributed systems-A survey
Pal et al. Supporting safe content-inspection of web traffic
Chavan et al. Secure Data Storage in Cloud Service using RC5 Algorithm

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: 20170719

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180718

Year of fee payment: 5