KR20090043530A - 소프트웨어 레퓨테이션을 이용한 소프트웨어 인가 방법 및 시스템, 및 그를 위한 컴퓨터-판독가능 매체 - Google Patents

소프트웨어 레퓨테이션을 이용한 소프트웨어 인가 방법 및 시스템, 및 그를 위한 컴퓨터-판독가능 매체 Download PDF

Info

Publication number
KR20090043530A
KR20090043530A KR1020097003765A KR20097003765A KR20090043530A KR 20090043530 A KR20090043530 A KR 20090043530A KR 1020097003765 A KR1020097003765 A KR 1020097003765A KR 20097003765 A KR20097003765 A KR 20097003765A KR 20090043530 A KR20090043530 A KR 20090043530A
Authority
KR
South Korea
Prior art keywords
software
reflection
received software
received
digital signature
Prior art date
Application number
KR1020097003765A
Other languages
English (en)
Inventor
데이비드 비. 크로스
데크달락칼 바루기스 쿠리언
스콧트 필드
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20090043530A publication Critical patent/KR20090043530A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

소프트웨어는 소프트웨어의 레퓨테이션에 따라 인가된다. 소프트웨어의 제작자 및/또는 발행자에 대한 신임이 디지탈 서명 및/또는 CoA를 통해 판정되고, 소프트웨어의 의도를 판정하기 위해 소프트웨어의 레퓨테이션이 이용된다. 소프트웨어의 레퓨테이션은 엔터프라이즈 IT 부서와 같은 로컬 서비스 및/또는 레퓨테이션 판정 서비스를 통해 판정될 수 있다. 소프트웨어가 다운로드 또는 실행될 때, 소프트웨어에 관련된 디지탈 서명 및/또는 CoA를 이용하여 제작자/발행자에 대한 신임이 판정된다. 제작자/발행자가 신임받는 것으로 판정되면, 소프트웨어의 레퓨테이션을 판정하기 위한 서비스가 호출된다. 소프트웨어는 소프트웨어의 레퓨테이션 및 제작자/발행자의 신뢰성에 따라 설치 및/또는 실행될 수 있다.
Figure P1020097003765
소프트웨어의 레퓨테이션, 디지탈 서명, CoA, 레퓨테이션 판정 서비스

Description

소프트웨어 레퓨테이션을 이용한 소프트웨어 인가 방법 및 시스템, 및 그를 위한 컴퓨터-판독가능 매체{SOFTWARE AUTHORIZATION UTILIZING SOFTWARE REPUTATION}
본 기술분야는 일반적으로 소프트웨어를 인가하는 것에 관한 것으로서, 더 상세하게는, 예를 들어, 암호 검증 기술(cryptographic verification techniques)을 통해 소프트웨어의 레퓨테이션(reputation)을 이용하여 소프트웨어를 인가하는 것에 관한 것이다.
오늘날, 소프트웨어를 다운로드하거나 어플리케이션 프로그램을 열 때, 소비자는 소프트웨어의 발간자(issuer) 또는 발행자(publisher)를 신임한다. 예를 들어, 소비자는 마이크로소프트®를 신임할 수 있고, 알려지지 않은 발간자는 신임할 수 없다. 그러나 발간자만에 기초한 신임은 소프트웨어가 악성 소프트웨어(멀웨어; malware)가 아닌 것을 보장하지 않는다. 소비자는 암호로 또는 디지탈로 서명되었고/서명되었거나 CoA(certificate of authenticity)를 갖는 소프트웨어를 수락할 수 있다. 그러나, 디지탈 서명된 소프트웨어는 여전히 악성일 수 있다. 소프트웨어가 들어오는 중에 또는 소프트웨어 실행 전에 멀웨어 검출 어플리케이션을 실행하지 않는 한, 소비자, 정보 기술(IT) 전문가, 개발자 등은 소프트웨어 자체를 신임할 기초가 되는 메커니즘이 없다.
<요약>
본 요약은 이하의 실시예에서 더 상세히 설명되는 개념들의 선택을 단순화된 형태로 도입하기 위해 제공된다. 소프트웨어는 부분적으로, 소프트웨어의 레퓨테이션(reputation)에 따라 인가된다. 디지탈 서명은 소프트웨어의 신용을 증명하는(credentialing) 메커니즘으로서 취급된다. 소프트웨어 신용증명(software credential) 및 다른 메커니즘은 레퓨테이션이라고 불리는 메타데이터를 소프트웨어에 바인딩하기 위해 사용된다. 레퓨테이션은 인가(authorization)를 위해 사용된다. 예를 들어, 소프트웨어가 바이러스, 스파이웨어, 루트 킷(root kit) 등과 같은 악성으로 알려져 있다면, 이 소프트웨어의 레퓨테이션을 고려하여 (설치, 개시, 실행, 런타임 등을 위해) 이 소프트웨어를 수락할 지의 여부를 결정한다. 소프트웨어가 공지의 소스(source)로부터 온 것이고 양호한 것으로 알려져 있다면, 역시 이 소프트웨어의 레퓨테이션을 고려하여 이 소프트웨어가 수락가능한 것인지의 여부를 결정한다. 예시적인 실시예에서, 소프트웨어는 소프트웨어의 레퓨테이션 및 소프트웨어의 유효성(validity)(예를 들어, 제작자/발행자에 대한 신임 레벨)에 따라 인가된다. 소프트웨어의 레퓨테이션은 디지탈 서명 및 CoA(certificate of authenticity)에 기초한 메커니즘과 함께 소프트웨어의 유효성을 판정하는 데 이용된다. 소프트웨어의 레퓨테이션이 수락가능하고 소프트웨어가 유효하다면(예를 들어, 소프트웨어의 제작자 및/또는 발행자가 신임받으면), 소프트웨어는 인가된다. 소프트웨어의 레퓨테이션은 로컬로 및/또는 원격으로 판정될 수 있다. 예를 들어, 로컬 IT 부서가 소프트웨어의 레퓨테이션을 판정할 수 있고/있거나, 레퓨테이션 판정 서비스가 소프트웨어의 레퓨테이션에 관하여 질의 받을 수 있다.
앞서 설명한 요약뿐만 아니라, 다음의 상세한 설명은 첨부 도면과 함께 읽을 때 더 잘 이해된다. 레퓨테이션을 이용한 소프트웨어 인가를 설명하기 위해, 도면에서 그 예시적인 구성을 도시하고 있지만, 레퓨테이션을 이용한 소프트웨어 인가는 개시된 특정 방법 및 수단으로 제한되지 않는다.
도 1은 소프트웨어의 레퓨테이션을 이용하여 소프트웨어를 인가하기 위한 예시적인 시스템의 도면.
도 2는 레퓨테이션을 이용하여 소프트웨어를 인가하기 위한 예시적인 프로세스의 흐름도.
도 3은 소프트웨어가 차단된다는 통보의 예시적인 사용자 인터페이스(UI)의 도면.
도 4는 소프트웨어가 차단된다는 통보의 예시적인 사용자 인터페이스(UI)의 다른 도면.
도 5는 레퓨테이션을 이용하여 소프트웨어를 인가하는 것을 동기화하기 위한 예시적인 컴퓨팅 장치의 도면.
도 6은 레퓨테이션을 이용하여 소프트웨어를 인가하는 것을 동기화하기 위한 예시적인 컴퓨팅 환경.
소프트웨어의 레퓨테이션(reputation)을 식별하여, 소프트웨어의 동작을 수락하거나 거부하는 능력을 제공하는 메커니즘을 제공한다. 이 메커니즘은 예를 들면, 소프트웨어의 설치 전 및/또는 실행(예를 들어, 런타임) 전과 같은 다양한 시기에 이용될 수 있다. 이 메커니즘은 공격을 일찍이 발견함으로써 공격에 대향한 예방적(proactive) 방어를 제공하고, 진행중인 공격 및/또는 실패의 영향을 완화한다. 이 메커니즘은 또한, 소프트웨어를 취소하는 능력도 제공한다.
예시적인 실시예에서, 코드, 소프트웨어 패키지, 설치 래퍼(installation wrapper), DLL(dynamic link library) 등과 같은 소프트웨어는 소프트웨어를 검증하고 소프트웨어의 레퓨테이션을 판정함으로써 인가된다. 집합적으로 소프트웨어의 유효성(validity)이라고 불리는 소프트웨어의 무결성 및 소스는 디지탈 서명(digital signature), 또는 임의의 적합한 수단을 이용하여 검증된다. 소프트웨어의 레퓨테이션은 로컬로(예를 들어, 로컬 IP 그룹 또는 시스템 관리자 정책으로) 및/또는 원격으로(예를 들어, 레퓨테이션 판정 서비스로) 판정될 수 있다. 소프트웨어의 레퓨테이션은 소프트웨어의 제작자 및/또는 발행자의 신용증명보다는 소프트웨어의 의도를 나타낸다.
도 1은 소프트웨어의 레퓨테이션을 이용하여 소프트웨어를 인가하기 위한 예시적인 시스템의 도면이다. 한 예시적인 시나리오에서, 사용자는 네트워크(14)로부터 프로세서(12)에 소프트웨어를 다운로드할 수 있고/있거나, 사용자는 저장 매 체(18)로부터 프로세서(12)에 소프트웨어를 삽입(insert)할 수 있다. 소프트웨어를 수락하기 전에, 소프트웨어의 레퓨테이션 및 유효성이 판정된다. 사용자는 소프트웨어의 레퓨테이션 및 유효성에 따라 소프트웨어를 설치 및/또는 실행하는 것을 결정할 수 있다. 한 예시적인 실시예에서, 레퓨테이션 판정 서비스(20)가 소프트웨어의 레퓨테이션에 관하여 질의 받는다. 복수의 레퓨테이션 판정 서비스가 질의 받을 수 있다. 이 질의에 응답하여, 레퓨테이션 판정 서비스(20)는 소프트웨어의 레퓨테이션의 표시를 제공할 수 있다. 이와 함께, 또는 대안적으로, 엔터프라이즈 서비스(enterprise service)(16)가 소프트웨어의 레퓨테이션에 관하여 질의 받을 수 있다. 이 질의에 응답하여, 엔터프라이즈 서비스(16)는 소프트웨어의 레퓨테이션의 표시를 제공할 수 있다. 이와 함께, 또는 대안적으로 엔터프라이즈 서비스(16)는 소프트웨어의 레퓨테이션에 관하여 질의 받을 수 있다. 소프트웨어의 유효성은 소프트웨어에 속한 디지탈 서명 및/또는 CoA(certificate of authenticity)에 따라 판정될 수 있다. 소프트웨어가 유효하다는 판정은, 소프트웨어의 제작자 및/또는 발행자가 신임받는 것을 의미한다. 사용자 및/또는 프로세서(12)는 유효성 및 레퓨테이션의 판정을 이용하여, 소프트웨어가 수락가능한 것인지 수락불가능한 것인지를 판정할 수 있다.
프로세서(12)는 임의의 적절한 프로세서를 포함할 수 있다. 예를 들어, 프로세서(12)는 핸드헬드 장치, 멀티 프로세서 시스템, 마이크로프로세서 기반의 또는 프로그램가능한 소비자 전자 장치, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함할 수 있다. 프로세서(12)는 팜-탑(palm-top) 컴퓨터, PDA(personal digital assistant), 포켓 PC, 이동 전화 등과 같은 휴대용 장치를 포함할 수 있다. 또한, 프로세서(12)는 통신 네트워크를 통해 링크되어 있는 원격 프로세싱 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경을 포함할 수 있다. 그러한 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 메모리 저장 장치와 원격 메모리 저장 장치 둘 다에 위치할 수 있다. 네트워크(14)는 예를 들어, 인터넷 또는 LAN(local area network)과 같은, 소프트웨어를 다운로드할 수 있는 임의의 적절한 소스일 수 있다.
레퓨테이션 판정 서비스(20)는 소프트웨어의 레퓨테이션을 판정하기 위한 임의의 적절한 서비스를 포함할 수 있다. 한 예시적인 실시예에서, 레퓨테이션 판정 서비스(20)는 원격 엔터티를 포함할 수 있지만, 이것으로 제한되지 않는다. 레퓨테이션 판정 서비스(20)는 다양한 소프트웨어 및 소프트웨어 패키지의 상태를 모니터링하고, 그 상태를 이용하여 소프트웨어의 레퓨테이션의 표시를 제공할 수 있다. 예를 들어, 레퓨테이션 판정 서비스(20)는 모니터링 프로시저를 통해, 소프트웨어 패키지의 특정 버전이 바이러스에 감염된 것으로 보고되었음을 발견할 수 있다. 레퓨테이션 판정 서비스(20)가 소프트웨어 패키지의 레퓨테이션에 관하여 질의 받을 때, 레퓨테이션 판정 서비스(20)는, 소프트웨어 패키지의 몇몇 버전들이 예를 들어, 멀웨어, 스파이웨어, 트로이 목마, 바이러스에 감염된 것, 나쁜 레퓨테이션을 갖는 소프트웨어에 관련된 것 등으로서 보고되었다는 지식에 따라 판정된 레퓨테이션의 표시를 제공할 수 있다.
엔터프라이즈 서비스(16)도 또한(또는 대안적으로), 소프트웨어의 레퓨테이 션을 판정 및/또는 제공할 수 있다. 엔터프라이즈 서비스(16)는 예를 들어, 로컬 IP 부서 또는 시스템 관리자를 포함할 수 있지만, 이것으로 제한되지 않는다. 엔터프라이즈 서비스(16)는 예를 들어, 레퓨테이션 판정 서비스(20)와 같은 서비스를 질의할 수 있고/있거나 레퓨테이션 판정 서비스(20)와 유사한 방식으로 소프트웨어의 레퓨테이션을 판정할 수 있다.
한 예시적인 실시예에서, 소프트웨어의 레퓨테이션은 커뮤니티 투표에 따라 판정된다. 소프트웨어의 사용자들은 소프트웨어에 관한 코멘트를 제공할 기회를 제공받는다. 소프트웨어 사용자들은 이 코멘트를 예를 들어, 레퓨테이션 판정 서비스(20)와 같은 수집 엔터티에 특별히 제공할 수 있다. 한 예시적인 실시예에서, 사용자는 소프트웨어에 대한 사용자의 사용 및 경험에 관한 통계가 자동으로 수집되고 제공되는 것에 동의할 수 있다. 특정 소프트웨어 패키지에 관한 통계는 예를 들어, 소프트웨어 패키지를 차단한 사용자들의 수, 및/또는 소프트웨어 패키지를 다운로드한 사용자들의 수를 포함할 수 있다.
소프트웨어의 레퓨테이션은 관련성(association)에 의해 영향을 받을 수 있다. 예를 들어, 좋은 레퓨테이션을 가진 소프트웨어가 나쁜 레퓨테이션을 가진 소프트웨어와 상호작용하면, 좋은 소프트웨어의 레퓨테이션은 손상될 수 있다. 즉, 레퓨테이션은 좋음에서 나쁨으로 변경될 수 있다. 예를 들어, 소프트웨어 객체는 바이러스, 스파이웨어, 트로이 소프트웨어, 멀웨어 등을 다운로드하기 위해 한 URI에 액세스할 수 있다. 상호작용이 검출되면, 소프트웨어 객체의 레퓨테이션은 이에 따라 조정된다(예를 들어, 나쁜 것으로 나타남).
한 예시적인 실시예에서, 레퓨테이션은 소프트웨어의 이름에 지정된다. 이름은 소프트웨어 패키지의 이름(예를 들어, 어플리케이션 및 버전 번호)일 수 있다. 이름은 소프트웨어에 대해 해시 함수를 수행하여 결과로서 생긴 해시 값과 같은 강한 이름(strong name)일 수 있다. 소프트웨어의 이름으로서 해시 값을 이용하는 것은 소프트웨어의 식별을 허용한다.
한 예시적인 실시예에서, 소프트웨어의 유효성과 함께 소프트웨어의 레퓨테이션을 이용하여, 소프트웨어를 인가한다. 이 예시적인 실시예에서, 소프트웨어의 소스 및 유효성은 소프트웨어에 암호로(cyptographically) 서명하는 것과 같은 공지의 디지탈 검증 기술에 따라 판정된다. 소프트웨어가 유효한 것으로 판정되면, 그 의미는 소프트웨어의 제작자 및/또는 발행자가 신임받는다는 것이다. 소프트웨어가 유효하지 않은 것으로 판정되면, 그 의미는 소프트웨어의 제작자 및/또는 발행자가 신임받지 못한다는 것이다. 이 예시적인 실시예에서, 사용자 및/또는 개발자가 자신의 코드에 디지탈로 서명할 수 있고 자신의 내부 PKI(Public Key Infrastructure)를 신임할 수 있는 코드 서명 체계(code signing ecosystem)가 존재한다. 개발자는 디지탈 증명서, 암호 키 및 SDK(Software Development Kit) 툴을 통해 자신의 코드에 서명할 수 있다. 개발자는 코드 서명을 위해 증명서를 발행할 수 있다. 이 예시적인 실시예에서, 레퓨테이션은 신뢰할만하고 결정론적인 커뮤니티 비평/투표, 및/또는 예를 들어, 레퓨테이션 판정 서비스(20)에 의한 독립적인 상품 비평 및 분석에 기초한다. 이러한 코드 서명 체계를 통해, 좋은 소프트웨어가 증식되고, 좋은 소프트웨어에 대한 신임이 생성되고, 소프트웨어에 대한 커 뮤니티 레퓨테이션이 수락되고 보편화될 것이다. 또한, 서비스 거부 및 커뮤니티 레퓨테이션 가짜 검출이 검출 및 예방될 수 있다.
도 2는 소프트웨어 레퓨테이션을 이용하여 소프트웨어를 인가하기 위한 예시적인 프로세스의 흐름도이다. 소프트웨어는 단계(22)에서 수신된다. 소프트웨어는 예를 들어, 프로세서(12)에 의해 수신될 수 있다. 소프트웨어는 예를 들어, 네트워크(14) 및/또는 저장 매체(18)로부터 수신될 수 있다. 단계(24)에서, 수신된 소프트웨어가 유효한지를 판정한다. 즉, 수신된 소프트웨어의 발행자 및/또는 제작자에 대한 신임 레벨이 판정된다. 수신된 소프트웨어가 유효한 것으로 판정되면, 제작자/발행자는 신임된다. 수신된 소프트웨어가 유효하지 않은 것으로 판정되면, 제작자/발행자는 신임받지 못한다. 예시적인 실시예에서, 소프트웨어의 유효성은 암호로 판정된다. 즉, 소프트웨어의 유효성은 소프트웨어에 관련된 디지탈 서명 및/또는 CoA에 따라 판정된다. 디지탈 서명 및 CoA는 본 기술분야에 공지되어 있다. 소프트웨어가 단계(26)에서 유효하지 않은 것으로 판정되면(예를 들어, 소프트웨어의 제작자/발행자가 신임받지 못하면), 단계(28)에서 경고가 제공된다. 경고는 임의의 적절한 방법으로 제공될 수 있다. 한 예시적인 실시예에서, 수신된 소프트웨어는 설치/로드되지 않을 것이고, 소프트웨어가 차단된다는 것을 나타내는 표시가 제공된다. 도 3에서, 제작자 및/또는 발행자가 신임받지 못하기 때문에 소프트웨어가 차단된다는 통보의 예시적인 사용자 인터페이스(UI)가 도시되어 있다.
소프트웨어가 단계(26)에서 유효한 것으로 판정되면(예를 들어, 소프트웨어의 제작자/발행자가 신임받으면), 단계(30)에서 소프트웨어의 레퓨테이션이 판정된 다. 한 예시적인 실시예에서, 소프트웨어의 레퓨테이션을 판정하기 위해 예를 들어, 레퓨테이션 판정 서비스(20)와 같은 서비스가 호출/질의된다. 한 예시적인 실시예에서, 소프트웨어의 레퓨테이션을 위해 예를 들어, IT 부서 또는 시스템 관리자와 같은 로컬 서비스가 질의된다. 로컬 서비스 및 원격 서비스, 복수의 원격 서비스 또는 이들의 조합 등으로부터 복수의 레퓨테이션이 수신될 수 있다. 복수의 레퓨테이션이 수신되면, 그것은 임의의 적절한 방법으로 집계될 수 있다. 예를 들어, 각각의 수신된 레퓨테이션은 가중치를 할당받을 수 있고, 복수의 레퓨테이션의 가중된 평균이 판정될 수 있다. 그 후, 집계된 레퓨테이션은 소프트웨어를 인가하는 데 사용될 수 있다.
소프트웨어가 수락 불가능한 것으로 판정되면(단계 32), 단계(28)에서 경고가 제공된다. 경고는 임의의 적절한 방법으로 제공될 수 있다. 한 예시적인 실시예에서, 수신된 소프트웨어는 설치/로드되지 않을 것이고, 소프트웨어가 차단된다는 것을 나타내는 표시가 제공된다. 도 4는 소프트웨어가 그것의 레퓨테이션으로 인해 수락불가능한 것으로 간주되기 때문에 소프트웨어가 차단된다는 통보의 예시적인 사용자 인터페이스(UI)를 도시한다. 소프트웨어가 수락가능한 것으로 판정되면(단계 32), 선택적으로, 결과의 표시가 제공된다(단계 34). 결과의 표시는 예를 들어, 디스플레이 상에 통보를 렌더링하는 것과 같은 임의의 적절한 방법으로 제공될 수 있다. 그 후, 소프트웨어는 설치/실행될 수 있다.
도 5는 소프트웨어 레퓨테이션을 이용하여 소프트웨어를 인가하기 위한 예시적인 컴퓨팅 장치(36)의 도면이다. 한 예시적인 실시예에서, 컴퓨팅 장치(36)는 도 1에 도시된 프로세서(12)로서 이용된다. 컴퓨팅 장치(36)는 처리부(38), 메모리부(40) 및 입/출력부(42)를 포함한다. 처리부(38), 메모리부(40) 및 입/출력부(42)는 함께 연결되어(도 5에는 연결이 도시되지 않음) 그들 사이의 통신을 허용한다. 컴퓨팅 장치(36)는 소프트웨어의 레퓨테이션의 이용을 통해 소프트웨어를 인가하는 것에 관련된 동작들을 수행할 수 있다. 예를 들어, 처리부(38)는 상술된 바와 같이, 입/출력부(42)를 통해 소프트웨어를 수신하고, 소프트웨어의 레퓨테이션을 판정하고, 소프트웨어의 유효성을 판정하고, 판정된 레퓨테이션 및 판정된 유효성에 따라 소프트웨어를 인가할 수 있다. 메모리부(40)는 예를 들어, 소프트웨어, 소프트웨어의 이름, 및 소프트웨어의 레퓨테이션과 같은, 레퓨테이션을 이용하여 소프트웨어를 인가하는 것에 관련된 모든 파라미터를 저장할 수 있다.
입/출력부(42)는 상술된 바와 같이, 소프트웨어의 레퓨테이션을 이용하여 소프트웨어를 인가하기 위해 이용되는 데이터를 제공 및/또는 수신할 수 있다. 입/출력부(42)는 소프트웨어를 수신하고 소프트웨어를 처리부(38)에 제공할 수 있다. 입/출력부(42)는 소프트웨어의 레퓨테이션에 관련한 요구/질의를 제공할 수 있다. 요구/질의에 응답하여, 또는 요구받지 않고서, 입/출력부(42)는 소프트웨어의 레퓨테이션을 나타내는 신호를 수신할 수 있다. 입/출력부(42)는 예를 들어, 다른 컴퓨팅 장치, 네트워크(예를 들어, 도 1의 네트워크(14)), 엔터프라이즈 서비스(예를 들어, 도 1의 엔터프라이즈 서비스(16)), 레퓨테이션 판정 서비스(예를 들어, 도 1의 레퓨테이션 판정 서비스(20)) 및 저장 매체(예를 들어, 도 1의 저장 매체(18))와 같은 다양한 엔터티로부터 정보를 수신하고/수신하거나 그러한 엔터티에 정보를 제공할 수 있다.
프로세서의 정확한 구성 및 유형에 따라, 메모리부(40)는 (RAM 및/또는 캐시와 같은) 휘발성(44), (ROM, 플래시 메모리 등과 같은) 비휘발성(46) 또는 그것들의 조합일 수 있다. 컴퓨팅 장치(36)는 추가의 특징/기능을 가질 수 있다. 예를 들어, 컴퓨팅 장치(36)는 자기 또는 광 디스크, 테이프, 플래시, 스마트 카드 또는 그것들의 조합을 포함하는 추가의 저장 장치(이동식 저장 장치(48) 및/또는 비이동식 저장 장치(50))를 포함할 수 있지만, 이것으로 한정되지 않는다. 메모리부(40, 44, 46, 48 및 50)와 같은 컴퓨터 저장 매체는 컴퓨터-판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 그 외의 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 다른 광 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 다른 자기 저장 장치, USB(universal serial bus), 호환가능한 메모리, 스마트 카드, 또는 요구된 정보를 저장하는 데 사용될 수 있고 컴퓨팅 장치(36)에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만, 이것으로 제한되지 않는다. 임의의 그러한 컴퓨터 저장 매체는 컴퓨팅 장치(36)의 일부분일 수 있다.
컴퓨팅 장치(36)는 또한, 컴퓨팅 장치(36)가 다른 컴퓨팅 장치, 로컬 서비스(예를 들어, 엔터프라이즈 서비스), 원격 서비스(예를 들어, 레퓨테이션 판정 서비스) 또는 그것들의 조합과 통신하게 하는 특정 통신 접속(들)(56)을 포함할 수 있다. 통신 접속(들)(56)은 통신 매체의 일례이다. 통신 매체는 일반적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 다른 데이터를 반송파 또는 다른 전송 메커니즘과 같은 변조된 데이터 신호에 구현하고, 임의의 정보 전달 매체를 포함한다. 용어 "변조된 데이터 신호"는 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 의미한다. 예를 들어, 통신 매체는 유선 네트워크 또는 직접 배선 접속과 같은 유선 매체, 및 음파, RF, 적외선 및 다른 무선 매체와 같은 무선 매체를 포함하지만, 이것으로 제한되지 않는다. 여기서 사용된 컴퓨터 판독가능 매체라는 용어는 저장 매체와 통신 매체 둘 다를 포함한다. 컴퓨팅 장치(36)는 또한, 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치 등과 같은 입력 장치(들)(54)를 가질 수 있다. 디스플레이, 스피커, 프린터 등과 같은 출력 장치(들)(52)도 포함될 수 있다.
레퓨테이션을 이용하여 소프트웨어를 인가하는 다양한 실시예가 컴퓨팅 장치(예를 들어, 컴퓨팅 장치(36)) 상에서 실행될 수 있다. 도 6 및 이하의 설명은 그러한 컴퓨팅 장치가 구현될 수 있는 적합한 컴퓨팅 환경에 대한 간략한 일반적인 설명을 제공한다. 요구되지는 않지만, 소프트웨어 레퓨테이션을 이용하여 소프트웨어를 인가하는 다양한 양태가 클라이언트 워크스테이션 또는 서버와 같은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어의 일반적 문맥에서 설명될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 타입을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 또한, 레퓨테이션을 이용하여 소프트웨어를 인가하는 것은 핸드 헬드 장치, 멀티 프로세서 시스템, 마이크로 프로세서 기반의 또는 프로그램가능한 소비자 전자제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함한 다른 컴퓨터 시스템 구성으로 실시될 수 있다. 또한, 레퓨테이션을 이용하여 소프트웨어를 인가하는 것은 통신 네트워크를 통해 링크되어 있는 원격 프로세싱 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서도 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치 내에 위치할 수 있다.
컴퓨터 시스템은 대략 3개의 컴포넌트 그룹, 즉, 하드웨어 컴포넌트, 하드웨어/소프트웨어 인터페이스 시스템 컴포넌트 및 어플리케이션 프로그램 컴포넌트("사용자 컴포넌트" 또는 "소프트웨어 컴포넌트"라고도 불림)로 구분될 수 있다. 컴퓨터 시스템의 다양한 실시예에서, 하드웨어 컴포넌트는 CPU(central processing unit)(621), 메모리(ROM(664) 및 RAM(625) 둘 다), 기본 입/출력 시스템(BIOS)(666), 및 키보드(640), 마우스(642), 모니터(647) 및/또는 프린터(도시되지 않음) 등과 같은 다양한 입/출력(I/O) 장치를 포함할 수 있다. 하드웨어 컴포넌트는 컴퓨터 시스템에 대한 기본적인 물리적 인프라구조를 포함한다.
어플리케이션 프로그램 컴포넌트는 컴파일러, 데이터베이스 시스템, 워드 프로세서, 비지니스 프로그램, 비디오 게임 등을 포함한 다양한 소프트웨어 프로그램을 포함하지만, 이것으로 제한되지 않는다. 어플리케이션 프로그램은 문제를 해결하고 해결책을 제시하고, 다양한 사용자들(기계, 다른 컴퓨터 시스템 및/또는 최종 사용자)을 위해 데이터를 처리하는 데 컴퓨터 리소스가 이용되는 수단을 제공한다.
하드웨어/소프트웨어 인터페이스 시스템 컴포넌트는 대부분 쉘 및 커널을 자 체적으로 포함하는 운영 체제를 포함한다(몇몇 실시예에서는, 그러한 운영 체제으로만 구성됨). "운영 체제(OS)"는 어플리케이션 프로그램과 컴퓨터 하드웨어 간의 매개체로서 활동하는 특수 프로그램이다. 하드웨어/소프트웨어 인터페이스 시스템 컴포넌트는 VMM(Virtual machine manager), CLR(Common Language Runtime) 또는 그 기능적 등가물, JVM(Java virtual machine) 또는 그 기능적 등가물, 또는 컴퓨터 시스템 내의 운영 체제를 대체하거나 그것에 추가되는 다른 소프트웨어 컴포넌트도 포함할 수 있다. 하드웨어/소프트웨어 인터페이스 시스템의 목적은 사용자가 어플리케이션 프로그램을 실행할 수 있는 환경을 제공하는 것이다.
하드웨어/소프트웨어 인터페이스 시스템은 일반적으로, 시동 시에 컴퓨터 시스템 내에 로드되고, 그 후, 컴퓨터 시스템 내의 어플리케이션 프로그램들 모두를 관리한다. 어플리케이션 프로그램은 어플리케이션 프로그램 인터페이스(API)를 통해 서비스를 요구함으로써 하드웨어/소프트웨어 인터페이스 시스템과 상호작용한다. 몇몇 어플리케이션 프로그램은 최종-사용자가 명령 언어 또는 그래픽 사용자 인터페이스(GUI)와 같은 사용자 인터페이스를 통해 하드웨어/소프트웨어 인터페이스 시스템과 상호작용할 수 있게 한다.
하드웨어/소프트웨어 인터페이스 시스템은 전통적으로, 어플리케이션에 대한 다양한 서비스를 수행한다. 동시에 복수의 프로그램이 실행 중일 수 있는 멀티태스킹 하드웨어/소프트웨어 인터페이스 시스템에서, 하드웨어/소프트웨어 인터페이스 시스템은 어플리케이션들이 어떤 순서로 실행되어야 할지, 및 전환(turn)을 위해 다른 어플리케이션으로 스위치하기 전에 각각의 어플리케이션에 얼마의 시간을 허용하여야 할지를 결정한다. 하드웨어/소프트웨어 인터페이스 시스템은 또한, 복수의 어플리케이션 사이의 내부 메모리의 공유를 관리하고, 하드 디스크, 프린터 및 전화 접속(dial-up) 포트와 같은 부착된 하드웨어 장치들로의 입력 및 그것들로부터의 출력을 핸들링한다. 하드웨어/소프트웨어 인터페이스 시스템은 또한, 각각의 어플리케이션에(어떤 경우에는, 최종-사용자에게) 동작의 상태 및 발생했던 임의의 에러에 관한 메시지를 송신한다. 하드웨어/소프트웨어 인터페이스 시스템은 또한, 개시하는 어플리케이션이 이 일(work)에서 해방되고 다른 프로세싱 및/또는 동작을 다시 시작할 수 있도록 일괄 작업(batch job)(예를 들어, 프린팅)의 관리를 오프로드(offload)할 수 있다. 병렬 프로세싱을 제공할 수 있는 컴퓨터 상에서, 하드웨어/소프트웨어 인터페이스 시스템은 또한, 한번에 하나 이상의 프로세서 상에서 실행하도록 프로그램을 분할하는 것을 관리한다.
하드웨어/소프트웨어 인터페이스 시스템 쉘("쉘"이라고 불림)은 하드웨어/소프트웨어 인터페이스 시스템에 대한 대화형 최종-사용자 인터페이스이다. (쉘은 "명령 해석기(command interpreter)"라고도 불릴 수 있으며, 운영 체제에서는 "운영 체제 쉘"이라고도 불림). 쉘은 어플리케이션 프로그램 및/또는 최종-사용자가 직접 액세스할 수 있는 하드웨어/소프트웨어 인터페이스 시스템의 바깥 계층이다. 쉘과 대조적으로, 커널은 하드웨어 컴포넌트와 직접 상호작용하는 하드웨어/소프트웨어 인터페이스 시스템의 가장 내부의 계층이다.
도 6에 도시된 바와 같이, 예시적인 범용 컴퓨팅 시스템은 프로세싱 유닛(621), 시스템 메모리(662), 및 시스템 메모리를 비롯한 각종 시스템 컴포넌트들 을 프로세싱 유닛(621)에 연결시키는 시스템 버스(623)를 포함하는 통상의 컴퓨팅 장치(660) 또는 그와 유사한 것을 포함한다. 시스템 버스(623)는 메모리 버스 또는 메모리 컨트롤러, 주변 장치 버스 및 각종 버스 아키텍처 중 임의의 것을 이용하는 로컬 버스를 비롯한 몇몇 유형의 버스 구조 중 어느 것이라도 될 수 있다. 시스템 메모리는 판독 전용 메모리(ROM)(664) 및 랜덤 액세스 메모리(RAM)(625)를 포함한다. 시동 중과 같은 때에, 컴퓨팅 장치(660) 내의 구성요소들 사이의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS)(666)은 ROM(664)에 저장되어 있다. 컴퓨팅 장치(660)는 또한, 하드 디스크(도시되지 않음)에 기록을 하거나 그로부터 판독을 하는 하드 디스크 드라이브(627), 이동식 자기 디스크(629)(예를 들어, 플로피 디스크, 이동식 저장 장치)에 기록을 하거나 그로부터 판독을 하는 자기 디스크 드라이브(628)(예를 들어, 플로피 드라이브), CD-ROM 또는 기타 광 매체 등의 이동식 광 디스크(631)에 기록을 하거나 그로부터 판독을 하는 광 디스크 드라이브(630)를 포함할 수 있다. 하드 디스크 드라이브(627), 자기 디스크 드라이브(628) 및 광 디스크 드라이브(630)는 각각, 하드 디스크 드라이브 인터페이스(632), 자기 디스크 드라이브 인터페이스(633) 및 광 드라이브 인터페이스(634)에 의해 시스템 버스(623)에 접속된다. 드라이브 및 그것에 관련된 컴퓨터 판독가능 매체는 컴퓨팅 장치(660)를 위해 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 그 외의 데이터의 비휘발성 저장을 제공한다. 본원에서 설명되는 예시적인 환경은 하드 디스크, 이동식 자기 디스크(629) 및 이동식 광 디스크(631)를 채용하고 있지만, 본 기술분야에 통상의 기술을 가진 자는 자기 카세트, 플래시 메모리 카드, 디지털 비디오 디스크, 베르누이 카트리지, RAM, ROM 등과 같이 컴퓨터에 의해 액세스될 수 있는 데이터를 저장할 수 있는 다른 유형의 컴퓨터 판독가능 매체도 예시적인 운영 환경에서 사용될 수 있음을 인지해야 한다. 마찬가지로, 예시적인 환경은 열 감지기 및 보안 또는 화재 경보 시스템, 및 다른 정보 소스와 같은 많은 유형의 모니터링 장치도 포함할 수 있다.
운영 체제(635), 하나 이상의 어플리케이션 프로그램(636), 다른 프로그램 모듈(637) 및 프로그램 데이터(638)를 포함한 다수의 프로그램 모듈은 하드 디스크, 자기 디스크(629), 광 디스크(631), ROM(664) 또는 RAM(625) 상에 저장될 수 있다. 사용자는 키보드(640) 및 포인팅 장치(642)(예를 들어, 마우스)와 같은 입력 장치를 통해 컴퓨팅 장치(660) 내에 명령 및 정보를 입력할 수 있다. 다른 입력 장치(도시되지 않음)로는 마이크로폰, 조이스틱, 게임 패드, 위성 접시, 스캐너 등이 있을 수 있다. 이러한 입력 장치 및 그 외의 입력 장치는 종종, 시스템 버스에 연결되어 있는 직렬 포트 인터페이스(646)를 통해 프로세싱 유닛(621)에 접속되지만, 병렬 포트, 게임 포트 또는 USB와 같은 다른 인터페이스에 의해 접속될 수도 있다. 모니터(647) 또는 다른 유형의 디스플레이 장치도 비디오 어댑터(648)와 같은 인터페이스를 통해 시스템 버스(623)에 접속된다. 모니터(647) 이외에, 컴퓨팅 장치는 일반적으로, 스피커 및 프린터와 같은 다른 주변 출력 장치(도시되지 않음)를 포함한다. 도 6의 예시적인 환경은 호스트 어댑터(655), SCSI(Small Computer System Interface) 버스(656), 및 SCSI 버스(656)에 접속된 외부 저장 장치(662)도 포함한다.
컴퓨팅 장치(660)는 원격 컴퓨터(649)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 이용한 네트워킹 환경에서 동작할 수 있다. 도 6에서는 메모리 저장 장치(650)(플로피 드라이브)만이 도시되었지만, 원격 컴퓨터(649)는 다른 컴퓨팅 장치(예를 들어, 개인 컴퓨터), 서버, 라우터, 네트워크 PC, 피어 장치 또는 다른 공통 네트워크 노드일 수 있으며, 일반적으로 컴퓨팅 장치(660)에 관련하여 상술된 구성요소들 중 다수 또는 그 전부를 포함한다. 도 6에 도시된 논리적 접속은 LAN(local area network)(651) 및 WAN(wide area network)(652)를 포함한다. 그러한 네트워킹 환경은 사무실, 전사적 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨팅 장치(660)는 네트워크 인터페이스 또는 어댑터(653)를 통해 LAN(651)에 접속된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨팅 장치(660)는 인터넷과 같은 WAN(652)을 통해 통신을 설정하기 위한 모뎀(654) 또는 기타 수단을 포함할 수 있다. 내장형 또는 외장형일 수 있는 모뎀(654)은 직렬 포트 인터페이스(646)를 통해 시스템 버스(623)에 접속된다. 네트워크화된 환경에서, 컴퓨팅 장치(660) 또는 그의 일부와 관련하여 기술된 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다. 도시된 네트워크 접속은 예시적인 것이며 이 컴퓨터들 사이에 통신 링크를 설정하는 기타 수단이 사용될 수 있다는 것을 이해할 것이다.
소프트웨어의 레퓨테이션을 이용하여 소프트웨어를 인가하는 수많은 실시예들이 컴퓨터화된 시스템에 특히 잘 맞지만, 본원의 어느 부분도 그러한 실시예로 본 발명을 제한하는 것으로 의도되지 않는다. 반대로, 본원에 사용된 용어 "컴퓨터 시스템"은 장치가 사실상 전자적이건, 기계적이건, 논리적이건 또는 가상이건 간에, 정보를 저장 및 처리할 수 있고/있거나 저장된 정보를 이용하여 장치 자체의 행위 또는 실행을 제어할 수 있는 임의의 및 모든 장치를 포함하는 것으로 의도된다.
본원에서 설명된 다양한 기술은 하드웨어 또는 소프트웨어와 관련하여, 또는 적절하게 그 둘의 조합으로 구현될 수 있다. 따라서, 소프트웨어의 레퓨테이션을 이용하여 소프트웨어를 인가하기 위한 방법 및 장치, 또는 그것의 특정 양태 또는 일부분은 플로피 디스켓, CD-ROM, 하드 드라이브 또는 임의의 다른 기계-판독가능 저장 매체와 같은 실재의 매체 내에 구현된 프로그램 코드(즉, 명령어)의 형태를 취할 수 있는데, 프로그램 코드가 컴퓨터와 같은 기계에 로드되고 그것에 의해 실행될 때, 그 기계는 소프트웨어의 레퓨테이션을 이용하여 소프트웨어를 인가하기 위한 장치가 된다.
프로그램(들)은 요구 시, 어셈블리 또는 기계 언어로 구현될 수 있다. 어떤 경우에는, 언어는 컴파일 또는 해석된 언어일 수 있고, 하드웨어 구현과 결합될 수 있다. 소프트웨어의 레퓨테이션을 이용하여 소프트웨어를 인가하기 위한 방법 및 장치는 또한, 전기 배선 또는 케이블, 광 섬유, 또는 임의의 다른 전송 형태와 같은 임의의 전송 매체를 통해 전송되는 프로그램 코드의 형태로 구현된 통신을 통해 실시될 수 있는데, 프로그램 코드가 EPROM, 게이트 어레이, PLD(programmable logic divice), 클라이언트 컴퓨터 등과 같은 기계 내에 수신 및 로드되고 그것에 의해 실행될 때, 그 기계는 소프트웨어의 레퓨테이션을 이용하여 소프트웨어를 인가하기 위한 장치가 된다. 범용 프로세서 상에서 구현될 때, 프로그램 코드는 소프트웨어의 레퓨테이션을 이용한 기능성 소프트웨어 인가를 일으키도록(invoke) 동작하는 유일의 장치를 제공하는 프로세서와 결합한다. 추가적으로, 소프트웨어의 레퓨테이션을 이용하여 소프트웨어를 인가하는 것에 관련하여 사용된 임의의 저장 기술은 변함없이 하드웨어와 소프트웨어의 조합일 수 있다.
소프트웨어의 레퓨테이션을 이용하여 소프트웨어를 인가하는 것이 여러 도면의 예시적인 실시예와 관련하여 설명되었지만, 다른 유사한 실시예들이 사용될 수도 있고, 소프트웨어의 레퓨테이션을 이용한 소프트웨어 인가를 위한 동일한 기능을 수행하기 위해, 상술된 실시예에 대하여 그로부터 벗어나지 않고서 수정 및 추가가 행해질 수도 있다. 따라서, 본원에서 설명된 소프트웨어의 레퓨테이션을 이용하여 소프트웨어를 인가하는 것은 임의의 하나의 실시예로 한정되어서는 안 되며, 오히려 첨부 특허청구범위에 따른 폭과 범주 내에서 해석되어야 한다.

Claims (20)

  1. 인가(authorization) 방법에 있어서,
    소프트웨어를 수신하는 단계(22);
    상기 수신된 소프트웨어의 레퓨테이션(reputation)을 판정하는 단계(30);
    상기 소프트웨어의 발행자(publisher)와 제작자(author) 중 적어도 하나에 대한 신임(trust)을 판정하는 단계(24); 및
    상기 수신된 소프트웨어의 레퓨테이션이 수락가능한 것으로 판정되고 상기 발행자와 제작자 중 적어도 하나가 신임받는 것으로 판정되면, 상기 수신된 소프트웨어를 인가하는 단계(32, 34)
    를 포함하는 인가 방법.
  2. 제1항에 있어서,
    상기 신임은 암호로(cyptographically) 판정되는 인가 방법.
  3. 제1항에 있어서,
    상기 신임은 상기 소프트웨어의 발행자와 제작자 중 적어도 하나를 식별하는 것을 포함하는 인가 방법.
  4. 제1항에 있어서,
    상기 수신된 소프트웨어의 레퓨테이션을 요구하는 단계
    를 더 포함하는 인가 방법.
  5. 제4항에 있어서,
    상기 레퓨테이션을 요구하는 것에 응답하여, 상기 소프트웨어의 레퓨테이션을 판정하기 위한 적어도 하나의 레퓨테이션 판정 서비스 각각에 의해 판정된 대로의, 상기 레퓨테이션을 나타내는 적어도 하나의 신호를 수신하는 단계
    를 더 포함하는 인가 방법.
  6. 제4항에 있어서,
    상기 레퓨테이션을 요구하는 것에 응답하여,
    각각 상기 수신된 소프트웨어의 레퓨테이션을 나타내는 복수의 신호를 수신하는 단계;
    상기 복수의 신호로 표시된 레퓨테이션들을 집계하여 집계 레퓨테이션(aggregate reputation)을 생성하는 단계; 및
    상기 집계 레퓨테이션에 따라 상기 수신된 소프트웨어를 인가하는 단계
    를 더 포함하는 인가 방법.
  7. 제1항에 있어서,
    상기 수신된 소프트웨어는 상기 소프트웨어의 레퓨테이션의 표시를 포함하는 인가 방법.
  8. 제1항에 있어서,
    상기 수신된 소프트웨어의 레퓨테이션은 상기 수신된 소프트웨어의 특징(characteristic)에 따라 판정되고, 상기 특징은,
    상기 수신된 소프트웨어는 디지탈 서명(digital signature)을 포함하지 않고, 상기 디지탈 서명의 발행자의 표시를 포함하지 않음;
    상기 수신된 소프트웨어는 디지탈 서명을 포함하고, 상기 디지탈 서명의 제작자의 표시를 포함하지 않음;
    상기 수신된 소프트웨어는 디지탈 서명을 포함하고, 상기 소프트웨어의 제작자의 신분(identity)의 표시를 포함함; 및
    상기 수신된 소프트웨어는 상기 소프트웨어의 레퓨테이션을 판정하기 위한 레퓨테이션 판정 서비스에 의해 발행된 디지탈 서명을 포함함
    중 하나를 포함하는 인가 방법.
  9. 인가 시스템(12, 36)에 있어서,
    소프트웨어를 수신하기 위한 입/출력부(42); 및
    상기 수신된 소프트웨어의 레퓨테이션을 판정하고(30),
    상기 수신된 소프트웨어의 발행자와 상기 수신된 소프트웨어의 소프트웨어 제작자 중 적어도 하나에 대한 신임을 판정하고(24),
    상기 수신된 소프트웨어의 레퓨테이션이 수락가능한 것으로 판정되고 상기 발행자와 제작자 중 적어도 하나가 신임받는 것으로 판정되면, 상기 수신된 소프트웨어를 인가(32, 34)하기 위한 프로세서부(38)
    를 포함하는 인가 시스템.
  10. 제9항에 있어서,
    디스플레이부를 더 포함하고,
    상기 프로세서부는 또한, 상기 디스플레이부를 통해 상기 레퓨테이션의 표시를 렌더링하기 위한 것인 인가 시스템.
  11. 제9항에 있어서,
    상기 프로세서부는 상기 신임을 암호로 판정하는 인가 시스템.
  12. 제9항에 있어서,
    상기 프로세서부는 또한, 상기 소프트웨어의 발행자와 제작자 중 적어도 하나를 식별함으로써 상기 신임을 판정하기 위한 것인 인가 시스템.
  13. 제9항에 있어서,
    상기 입/출력부는 또한, 상기 수신된 소프트웨어의 레퓨테이션에 대한 요구를 제공하기 위한 것인 인가 시스템.
  14. 제13항에 있어서,
    상기 입/출력부는 또한, 상기 레퓨테이션에 대한 요구에 응답하여, 상기 소프트웨어의 레퓨테이션을 판정하기 위한 적어도 하나의 레퓨테이션 판정 서비스 각각에 의해 판정된 대로의 레퓨테이션을 나타내는 적어도 하나의 신호를 수신하기 위한 것인 인가 시스템.
  15. 제13항에 있어서,
    상기 입/출력부는 또한, 상기 레퓨테이션에 대한 요구에 응답하여, 각각 상기 수신된 소프트웨어의 레퓨테이션을 나타내는 복수의 신호를 수신하기 위한 것이고,
    상기 프로세서부는 또한,
    상기 복수의 신호로 표시된 레퓨테이션들을 집계하여 집계 레퓨테이션을 생성하고,
    상기 집계 레퓨테이션에 따라 상기 수신된 소프트웨어를 인가하기 위한 것인 인가 시스템.
  16. 제9항에 있어서,
    상기 수신된 소프트웨어는 상기 소프트웨어의 레퓨테이션의 표시를 포함하는 인가 시스템.
  17. 제9항에 있어서,
    상기 프로세서부는 또한, 상기 수신된 소프트웨어의 특징에 따라 상기 수신된 소프트웨어의 레퓨테이션을 판정하기 위한 것이고,
    상기 특징은
    상기 수신된 소프트웨어는 디지탈 서명을 포함하지 않고, 상기 디지탈 서명의 발행자의 표시를 포함하지 않음;
    상기 수신된 소프트웨어는 디지탈 서명을 포함하고, 상기 디지탈 서명의 제작자의 표시를 포함하지 않음;
    상기 수신된 소프트웨어는 디지탈 서명을 포함하고, 상기 소프트웨어의 제작자의 신분의 표시를 포함함; 및
    상기 수신된 소프트웨어는 상기 소프트웨어의 레퓨테이션을 판정하기 위한 레퓨테이션 판정 서비스에 의해 배포된 디지탈 서명을 포함함
    중 하나를 포함하는 인가 시스템.
  18. 소프트웨어를 인가하기 위한 컴퓨터-실행가능 명령어들이 저장되어 있는 컴퓨터-판독가능 매체에 있어서,
    상기 컴퓨터-실행가능 명령어들은,
    소프트웨어를 수신하는 단계(22);
    상기 수신된 소프트웨어의 레퓨테이션을 판정하는 단계(30);
    상기 소프트웨어의 발행자와 제작자 중 적어도 하나에 대한 신임을 판정하는 단계(24); 및
    상기 수신된 소프트웨어 레퓨테이션이 수락가능한 것으로 판정되고 상기 발행자와 제작자 중 적어도 하나가 신임받는 것으로 판정되면, 상기 수신된 소프트웨어를 인가하는 단계(32, 34)
    를 수행하는 컴퓨터-판독가능 매체.
  19. 제18항에 있어서,
    상기 컴퓨터-실행가능 명령어들은
    상기 수신된 소프트웨어의 레퓨테이션을 요구하는 단계;
    상기 레퓨테이션을 요구하는 것에 응답하여, 상기 소프트웨어의 레퓨테이션을 판정하기 위한 적어도 하나의 레퓨테이션 판정 서비스 각각에 의해 판정된 대로의 레퓨테이션을 나타내는 적어도 하나의 신호를 수신하는 단계;
    각각 상기 수신된 소프트웨어의 레퓨테이션을 나타내는 복수의 신호가 수신되면, 상기 복수의 신호로 표시된 레퓨테이션들을 집계하여 집계 레퓨테이션을 생성하는 단계; 및
    상기 집계 레퓨테이션에 따라 상기 수신된 소프트웨어를 인가하는 단계
    를 더 수행하는 컴퓨터-판독가능 매체.
  20. 제18항에 있어서,
    상기 수신된 소프트웨어의 레퓨테이션은 상기 수신된 소프트웨어의 특징에 따라 판정되고, 상기 특징은
    상기 수신된 소프트웨어는 디지탈 서명을 포함하지 않고, 상기 디지탈 서명의 발행자의 표시를 포함하지 않음;
    상기 수신된 소프트웨어는 디지탈 서명을 포함하고, 상기 디지탈 서명의 제작자의 표시를 포함하지 않음;
    상기 수신된 소프트웨어는 디지탈 서명을 포함하고, 상기 디지털 서명의 제작자의 신분의 표시를 포함함; 및
    상기 수신된 소프트웨어는 상기 소프트웨어의 레퓨테이션을 판정하기 위한 레퓨테이션 판정 서비스에 의해 배포된 디지탈 서명을 포함함
    중 하나를 포함하는 컴퓨터-판독가능 매체.
KR1020097003765A 2006-08-31 2007-08-06 소프트웨어 레퓨테이션을 이용한 소프트웨어 인가 방법 및 시스템, 및 그를 위한 컴퓨터-판독가능 매체 KR20090043530A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/515,160 US8615801B2 (en) 2006-08-31 2006-08-31 Software authorization utilizing software reputation
US11/515,160 2006-08-31

Publications (1)

Publication Number Publication Date
KR20090043530A true KR20090043530A (ko) 2009-05-06

Family

ID=39136230

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097003765A KR20090043530A (ko) 2006-08-31 2007-08-06 소프트웨어 레퓨테이션을 이용한 소프트웨어 인가 방법 및 시스템, 및 그를 위한 컴퓨터-판독가능 매체

Country Status (5)

Country Link
US (1) US8615801B2 (ko)
KR (1) KR20090043530A (ko)
CN (1) CN101512512B (ko)
TW (1) TW200824401A (ko)
WO (1) WO2008027164A1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9495538B2 (en) * 2008-09-25 2016-11-15 Symantec Corporation Graduated enforcement of restrictions according to an application's reputation
US20100211772A1 (en) * 2009-02-16 2010-08-19 Bjorn Johansson Collaborative Reconciliation of Application Trustworthiness
US8347382B2 (en) * 2009-12-17 2013-01-01 International Business Machines Corporation Malicious software prevention using shared information
US8671449B1 (en) * 2010-11-10 2014-03-11 Symantec Corporation Systems and methods for identifying potential malware
WO2012088663A1 (zh) * 2010-12-28 2012-07-05 北京邮电大学 具有版权保护特性的数字水印作品及其生成方法
TWI461953B (zh) 2012-07-12 2014-11-21 Ind Tech Res Inst 運算環境安全方法和電子運算系統
RU2536663C2 (ru) * 2012-12-25 2014-12-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ защиты от нелегального использования облачных инфраструктур
JP2014229056A (ja) * 2013-05-22 2014-12-08 株式会社東芝 電子機器、制御方法およびプログラム
TWI510019B (zh) 2013-05-31 2015-11-21 Wistron Neweb Corp 自動診斷系統及自動診斷方法
CA2915988C (en) * 2013-06-25 2019-03-05 Mark D. Yerger Transport communication management
US20150007330A1 (en) * 2013-06-26 2015-01-01 Sap Ag Scoring security risks of web browser extensions
US10666677B2 (en) * 2013-09-23 2020-05-26 New York University System, method and computer-accessible medium for deterrence of malware
US10491587B2 (en) * 2013-10-28 2019-11-26 Singou Technology Ltd. Method and device for information system access authentication
US10885010B2 (en) 2013-12-18 2021-01-05 Federal Express Corporation Methods and systems for data structure optimization
US10083295B2 (en) * 2014-12-23 2018-09-25 Mcafee, Llc System and method to combine multiple reputations
US10834109B2 (en) * 2014-12-23 2020-11-10 Mcafee, Llc Determining a reputation for a process
US10185480B1 (en) * 2015-06-15 2019-01-22 Symantec Corporation Systems and methods for automatically making selections in user interfaces
CN108074071B (zh) * 2016-11-18 2021-06-18 腾讯科技(深圳)有限公司 一种项目数据处理方法及装置
US10419488B2 (en) * 2017-03-03 2019-09-17 Microsoft Technology Licensing, Llc Delegating security policy management authority to managed accounts
US10511632B2 (en) 2017-03-03 2019-12-17 Microsoft Technology Licensing, Llc Incremental security policy development for an enterprise network
US10445487B2 (en) * 2017-07-20 2019-10-15 Singou Technology (Macau) Ltd. Methods and apparatus for authentication of joint account login
US10581910B2 (en) 2017-12-01 2020-03-03 KnowBe4, Inc. Systems and methods for AIDA based A/B testing
CN115185544A (zh) * 2021-04-07 2022-10-14 花瓣云科技有限公司 一种应用处理的方法以及相关装置

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5825877A (en) * 1996-06-11 1998-10-20 International Business Machines Corporation Support for portable trusted software
US6154844A (en) * 1996-11-08 2000-11-28 Finjan Software, Ltd. System and method for attaching a downloadable security profile to a downloadable
US5958051A (en) * 1996-11-27 1999-09-28 Sun Microsystems, Inc. Implementing digital signatures for data streams and data archives
US5892904A (en) * 1996-12-06 1999-04-06 Microsoft Corporation Code certification for network transmission
US6381741B1 (en) * 1998-05-18 2002-04-30 Liberate Technologies Secure data downloading, recovery and upgrading
US6381698B1 (en) * 1997-05-21 2002-04-30 At&T Corp System and method for providing assurance to a host that a piece of software possesses a particular property
US6167521A (en) * 1997-08-29 2000-12-26 International Business Machines Corporation Securely downloading and executing code from mutually suspicious authorities
US6275937B1 (en) * 1997-11-06 2001-08-14 International Business Machines Corporation Collaborative server processing of content and meta-information with application to virus checking in a server network
JP2001202013A (ja) * 2000-01-21 2001-07-27 Nec Corp 匿名参加権限管理システム
US7055040B2 (en) * 1999-04-02 2006-05-30 Hewlett-Packard Development Company, L.P. Method and apparatus for uniquely and securely loading software to an individual computer
US6901518B1 (en) * 1999-04-08 2005-05-31 Sun Microsystems, Inc. Method and system for establishing trust in downloaded proxy code
US6697948B1 (en) * 1999-05-05 2004-02-24 Michael O. Rabin Methods and apparatus for protecting information
KR20010090661A (ko) 2000-04-10 2001-10-19 정호표 쌍방 대화형의 소프트웨어 평가 및 활용 방법
US6611925B1 (en) * 2000-06-13 2003-08-26 Networks Associates Technology, Inc. Single point of entry/origination item scanning within an enterprise or workgroup
US20020046041A1 (en) * 2000-06-23 2002-04-18 Ken Lang Automated reputation/trust service
ES2385565T3 (es) * 2000-09-21 2012-07-26 Research In Motion Limited Sistema y método de firma mediante código por software
US6944772B2 (en) * 2001-12-26 2005-09-13 D'mitri Dozortsev System and method of enforcing executable code identity verification over the network
FR2834598B1 (fr) * 2002-01-04 2004-02-20 France Telecom Procede et dispositif de signature anonyme au moyen d'une cle privee partagee
US7386831B2 (en) * 2002-01-09 2008-06-10 Siemens Communications, Inc. Interactive collaborative facility for inspection and review of software products
US7177929B2 (en) * 2002-03-27 2007-02-13 International Business Machines Corporation Persisting node reputations in transient network communities
US20030204730A1 (en) * 2002-04-29 2003-10-30 Barmettler James W. Secure transmission and installation of an application
US7340770B2 (en) * 2002-05-15 2008-03-04 Check Point Software Technologies, Inc. System and methodology for providing community-based security policies
US20040003390A1 (en) * 2002-06-27 2004-01-01 Microsoft Corporation System and method for installing a software application in a non-impactfull manner
GB0215911D0 (en) * 2002-07-10 2002-08-21 Hewlett Packard Co Method and apparatus for encrypting data
US7694139B2 (en) * 2002-10-24 2010-04-06 Symantec Corporation Securing executable content using a trusted computing platform
US7467206B2 (en) * 2002-12-23 2008-12-16 Microsoft Corporation Reputation system for web services
US7206814B2 (en) * 2003-10-09 2007-04-17 Propel Software Corporation Method and system for categorizing and processing e-mails
US7185015B2 (en) * 2003-03-14 2007-02-27 Websense, Inc. System and method of monitoring and controlling application files
US20040225877A1 (en) * 2003-05-09 2004-11-11 Zezhen Huang Method and system for protecting computer system from malicious software operation
US7437718B2 (en) * 2003-09-05 2008-10-14 Microsoft Corporation Reviewing the security of trusted software components
US7814551B2 (en) * 2003-09-09 2010-10-12 Microsoft Corporation System and method for manifest generation
US7111246B2 (en) 2004-02-17 2006-09-19 Microsoft Corporation User interface accorded to tiered object-related trust decisions
US7617519B2 (en) * 2004-03-18 2009-11-10 Microsoft Corporation System and method for intelligent recommendation with experts for user trust decisions
US8284942B2 (en) * 2004-08-24 2012-10-09 Microsoft Corporation Persisting private/public key pairs in password-encrypted files for transportation to local cryptographic store
US20060047766A1 (en) * 2004-08-30 2006-03-02 Squareanswer, Inc. Controlling transmission of email
US7176813B2 (en) * 2004-09-10 2007-02-13 Xanavi Informatics Corporation System and method for processing and displaying traffic information in an automotive navigation system
US20060075494A1 (en) * 2004-10-01 2006-04-06 Bertman Justin R Method and system for analyzing data for potential malware
US10043008B2 (en) * 2004-10-29 2018-08-07 Microsoft Technology Licensing, Llc Efficient white listing of user-modifiable files
US20060253584A1 (en) * 2005-05-03 2006-11-09 Dixon Christopher J Reputation of an entity associated with a content item
US7730040B2 (en) * 2005-07-27 2010-06-01 Microsoft Corporation Feedback-driven malware detector
US7730539B2 (en) * 2005-10-21 2010-06-01 Microsoft Corporation Authenticating third party products via a secure extensibility model
US7761912B2 (en) * 2006-06-06 2010-07-20 Microsoft Corporation Reputation driven firewall
WO2008014800A1 (en) * 2006-07-31 2008-02-07 Telecom Italia S.P.A. A system for implementing security on telecommunications terminals
US7991902B2 (en) * 2006-12-08 2011-08-02 Microsoft Corporation Reputation-based authorization decisions

Also Published As

Publication number Publication date
CN101512512A (zh) 2009-08-19
US8615801B2 (en) 2013-12-24
TW200824401A (en) 2008-06-01
WO2008027164A1 (en) 2008-03-06
US20080072049A1 (en) 2008-03-20
CN101512512B (zh) 2015-10-21

Similar Documents

Publication Publication Date Title
KR20090043530A (ko) 소프트웨어 레퓨테이션을 이용한 소프트웨어 인가 방법 및 시스템, 및 그를 위한 컴퓨터-판독가능 매체
Octeau et al. Effective {Inter-Component} communication mapping in android: An essential step towards holistic security analysis
US10871984B2 (en) Secure service hosted in a virtual security environment
CN113302893B (zh) 用于信任验证的方法及装置
WO2003038574A2 (en) An apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment
Al Rahat et al. Oauthlint: An empirical study on oauth bugs in android applications
US11354402B2 (en) Virtual environment type validation for policy enforcement
Liu et al. Smacs: smart contract access control service
US20240160779A1 (en) Privacy preserving application and device error detection
Smolka et al. Fuzz on the beach: Fuzzing solana smart contracts
Yalew Mobile device security with ARM TrustZone
Vuillermoz Analysis of TEE technologies as trust anchors
Catalano Extending the Remote Attestation capabilities of the Enarx framework
Desai App Attestation Service: A Runtime Remote Attestation for User-mode Processes on Windows
Cortier encouraged. The PC members selected 8 papers out of the submitted papers and we hope you will enjoy the program! Note: the managment of the submissions as well as the proceedings have been done thanks to the Easychair platform.
ISSA SCHOOL OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE
Luna Formal analysis of security models for mobile devices, virtualization platforms, and domain name systems
date Feb D02. 2 Requirements Definition and Specification

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid