KR101043550B1 - 불필요하고 요청되지 않은 전자 메시지를 감소시키는 방법 - Google Patents

불필요하고 요청되지 않은 전자 메시지를 감소시키는 방법 Download PDF

Info

Publication number
KR101043550B1
KR101043550B1 KR1020040016409A KR20040016409A KR101043550B1 KR 101043550 B1 KR101043550 B1 KR 101043550B1 KR 1020040016409 A KR1020040016409 A KR 1020040016409A KR 20040016409 A KR20040016409 A KR 20040016409A KR 101043550 B1 KR101043550 B1 KR 101043550B1
Authority
KR
South Korea
Prior art keywords
electronic message
delete delete
sending
puzzle
messaging server
Prior art date
Application number
KR1020040016409A
Other languages
English (en)
Other versions
KR20040081345A (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
Priority claimed from US10/683,624 external-priority patent/US7552176B2/en
Priority claimed from US10/684,020 external-priority patent/US7398315B2/en
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20040081345A publication Critical patent/KR20040081345A/ko
Application granted granted Critical
Publication of KR101043550B1 publication Critical patent/KR101043550B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/60Business processes related to postal services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/212Monitoring or handling of messages using filtering or selective blocking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/48Message addressing, e.g. address format or anonymous messages, aliases

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Tourism & Hospitality (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 예를 들어 불필요하거나 요청되지 않은 전자 메시지를 보다 신뢰성 있게 분류하는 것을 촉진하기 위하여 메시지 분류 모듈에 제공될 수 있는 입력 생성을 제공한다. 일 실시예에서, 송신 메시징 서버는 주소 검증 데이터에 적절한 응답을 제공하고, 이에 의하여 송신 메시징 서버가 위조된 네트워크 주소를 사용할 가능성을 감소시킨다. 다른 실시예에서, 메시징 서버가 도메인용 전자 메시지를 송신하도록 인가될 지의 여부가 결정된다. 또 다른 실시예에서, 도메인에 의하여 준수되는 전자 메시지 전송 정책이 인식된다. 또 다른 실시예에서, 송신 컴퓨터 시스템은 연산 리소스를 소비하여 연산 퍼즐을 해결하고 전자 메시지에 응답 문서를 포함한다. 수신 컴퓨터 시스템은 전자 메시지를 수신하고, 응답 문서를 검증한다.
Figure R1020040016409
전자 메시지, 송신 메시징 서버, 응답 문서

Description

불필요하고 요청되지 않은 전자 메시지를 감소시키는 방법{REDUCING UNWANTED AND UNSOLICITED ELECTRONIC MESSAGES}
도 1은 본 발명의 원리에 따라 접속 도용(connection hijacking)의 감소를 용이하게 하는 네트워크 아키텍처의 예를 도시하는 도면.
도 2는 본 발명의 원리에 따라 접속 도용을 감소시키는 방법의 예시적인 흐름도.
도 3은 본 발명에 따라 인가된 발신 메시징 서버의 식별을 용이하게 하는 네트워크 아키텍처의 예를 도시하는 도면.
도 4는 본 발명에 따라 인가된 발신 메시징 서버를 식별하는 방법의 예시적인 흐름도.
도 5는 본 발명에 따라 송신 도메인의 전자 메시지 전송 정책(sending domain's electronic message transmission policies)을 결정하고 연산 퍼즐(computational puzzle)에 대한 해답을 확인하는 것을 용이하게 하는 네트워크 아키텍처의 예를 도시하는 도면.
도 6은 본 발명에 따라 송신 도메인의 전자 메시지 전송 정책을 결정하는 방법의 예시적인 흐름도.
도 7은 본 발명에 따라 연산 퍼즐에 대한 해답을 확인하는 방법의 예시적인 흐름도.
도 8은 본 발명의 원리에 대하여 적절한 운영 환경을 도시하는 도면.
< 도면의 주요 부분에 대한 부호 설명 >
107 송신 메시징 서버
108 네임 서버
109 수신 메시징 서버
112 주소
113 주소 검증 데이터
132 메시징 클라이언트
176 엔트리
[관련 출원]
본 출원은 2003년 3월 12일에 출원된 미국 가출원 제60/454,517호 "Coordinated Reduction of Unwanted And Unsolicited Electronic Mail Messages"를 우선권으로 주장한다.
본 발명은 전자 메일 기술에 관한 것으로, 특히 불필요하고 요구되지 않은 전자 메시지(unwanted and unsolicited electronic messages)를 감소시키는 것에 관한 것이다.
컴퓨터 시스템 및 관련 기술은 사회의 많은 면에 영향을 미친다. 실제로, 정보를 처리하는 컴퓨터의 능력으로 인하여, 사람들이 생활하고 일하는 방법이 변하여 왔다. 오늘날에, 컴퓨터 시스템은 자신의 출현 전에는 수동으로 수행되었던 다수의 작업(예를 들면, 워드 프로세싱, 스케줄링 및 데이터베이스 관리)을 흔히 수행한다. 최근에, 컴퓨터 시스템은 서로 연결되어, 데이터를 공유하기 위하여 전자적으로 통신할 수 있는 유선 및 무선 컴퓨터 네트워크를 형성한다. 결과적으로, 컴퓨터 시스템에서 수행되는 다수의 작업(예를 들면, 음성 통신, 전자 메일 액세스, 전자 회의, 웹 브라우징)은 유선 및/또는 무선 컴퓨터 네트워크를 통하여 하나 이상의 다른 컴퓨터 시스템과의 전자 통신을 포함한다.
전자 메일이 있는 한, 불필요하고 요구되지 않은 이메일(흔히, "SPAM"이라 함)이 사실상 존재한다. 역사적으로, 스팸으로 인한 성가심과 부하는 (눈에 띄기는 했지만) 충분히 작아서 큰 문제가 아니었다. 하지만, 최근에 SPAM이 사용자의 전자 메일박스에 출현하는 빈도가 크게 증가하였다. 대형의 상업적 전자 메일박스 제공자가, 그들의 사용자에 의하여 수신된 전자 메일의 절반, 심지어는 3/4 이상이 SPAM이라는 점을 정기적으로 보고하는 것은 보기 드문 일이 아니다. 이 문제는 사용자, 기업 및 경제에 상당한 시간 및 재정 자원의 낭비가 되는 중요한 부분 중 하나가 되었고, 심지어는 유용한 통신 매개체로서의 전자 메일의 이용 가능성을 위협적으로 손상시킨다.
종래에, 전자 메일 클라이언트 소프트웨어 및 전자 메일 서버 소프트웨어 디자인은 사용자가 전자 메일을 취급하는 것을 가능하면 효율적이고 유용하며 즐겁도 록 하는 것에 중점을 두었다. 이러한 소프트웨어는 사용자가 주어진 전자 메일 메시지에 대해 가질 수 있는 실제적인 관심에 대한 이해 없이 제공되었다. 그러므로, 모든 수신된 전자 메일 메시지는 전자 메일 메시지의 내용에 상관없이 동등하게 다루어지고 사용자에게 제시되는 경향이 있었다. 불행히도, 이러한 전자 메일 메시지 처리로 인하여, SPAM이 정당한 전자 메일 메시지(예를 들면, 아는 송신자로부터의 전자 메시지, 사용자로부터 송신된 전자 메시지에 대한 응답 등)와 실질적으로 구별될 수 없게 되었다.
따라서, 전자 메일 메시지를 SPAM으로 분류하여 SPAM과 다른 정당한 전자 메일 메시지를 구별하는 다수의 기술이 개발되어 왔다. 일부 기술은 수신된 전자 메일 메시지를 조사하고, 그 메시지에서 발견된 단어 또는 문구를 기초로 하여 수신된 전자 메일 메시지를 SPAM으로 분류한다. SPAM을 분류하는 다른 기술은, SPAM인 전자 메일 메시지는 일반적으로 매우 많은 수의 사용자에게 송신된다는 사실을 이용한다. 이 다른 기술은 전자 메일 메시지를 SPAM으로 식별하기 위하여 집합적 투표 접근법(collective voting approach)을 사용한다. 흔히 사용되고 유용한 또 다른 기술은 사용자를 대신하여 사용자가 아는 상대방의 목록을 유지하는 것으로, 흔히 "알려진 송신자 목록" 또는 "허용 목록(white list)"라고 하는 접근법이라 한다.
SPAM으로 분류한 후에, SPAM 전자 메일 메시지는, 예를 들면 자동으로 SPAM 전자 메일 메시지를 사용자의 "SPAM 폴더"로 이동시키거나 심지어는 SPAM 전자 메일이 송신되었다는 것을 사용자가 모른 채 그 메시지를 삭제함으로써, 정당한 전자 메일 메시지와는 다르게 취급될 수 있다.
그러나, 다수의 종래 전자 메일 분류 기술은, 전자 메일 메시지가 정당한지 또는 SPAM인지를 결정할 때 전자 메일 메시지의 내용(예를 들면, 전자 메일 메시지의 헤더 및 바디)에만 의존한다. 이러한 기술은 문제점이 있는데, 이는 SPAM을 송신하려는 엔티티(entity)는, SPAM 전자 메일 메시지가 정당한 전자 메일 메시지로서 보이게 그 메시지를 고의로 (흔히 매우 용이하게) 변경할 수 있기 때문이다. 예를 들면, SPAM을 송신하려는 엔티티는, 전자 메일 필터에 의한 검출 가능성이 감소되도록 전자 메일 메시지의 바디를 구성할 수 있다. 더욱이, SPAM을 송신하려는 엔티티는 전자 메일 메시지의 헤더 부분의 특정 주소 지정 정보(addressing information)를 변경할 수 있는데, 이것을 흔히 "도메인 위장(domain spoofing)"이라 한다.
도메인 네임을 위장하는 것은 송신자의 전자 메일 주소의 도메인 네임(즉, 전자 메일 주소에서 "@" 후의 텍스트)을 변경시켜서, 사실은 전자 메일 메시지를 송신하지 않은 특정 엔티티로부터 전자 메일 메시지가 송신된 것처럼 보이게 하는 것을 포함한다. 그러므로, 전자 메일 분류 기술은, 사실은 전자 메일 메시지가 SPAM으로 분류되어야 하는 때에도 위장된 도메인 네임에 기초하여 정당하다고 잘못 분류할 수 있다. 따라서, 종래의 메일 분류 기술의 효율은 감소한다.
일반적으로, 전자 메일 메시지가 송신 메일 서버로부터 수신 메일 서버로 전달되기 전에, 예를 들면 전송 제어 프로토콜(TCP) 접속과 같은 접속이 송신 메일 서버와 수신 메일 서버 간에 설정된다. 접속 설정은 네트워크 주소, 포트 번호 및 시퀀스 번호(sequence number)를 포함하는 구성 정보(configuration information)의 교환을 포함할 수 있다. 예를 들면, TCP 접속 설정은 공지의 세 방향 핸드쉐이크 시퀀스(three-way handshake sequence)를 포함한다. 불행히도 TCP 세 방향 핸드쉐이크 시퀀스는 공지이기 때문에, SPAM을 송신하고자 하는 엔티티는 네트워크 주소를 위조하여, 위조된 네트워크 주소로부터 발생한 것으로 추정되는 구성 정보(예를 들면, 시퀀스 번호)를 송신할 수 있다. 수신 메일 서버는, 구성 정보가 위조된 네트워크 주소로부터 발생하였다고 부정확하게 결정할 수 있다.
그러므로, 엔티티는 네트워크 주소를 위조하여, 위조된 네트워크 주소로부터 발생한 것처럼 수신 메일 서버에 보이게 접속을 설정할 수 있다. 따라서, 엔티티는 그 후 설정된 접속을 사용하여 위조된 네트워크 주소로부터 발생된 것처럼 보이는 전자 메일 메시지를 송신할 수 있다. 엔티티가 위조된 네트워크 주소의 도메인 네임도 위장하면, 전자 메일 메시지가 실제로 발생한 네트워크 주소를 결정하는 것은 불가능하지는 않을 지라도 어려울 것이다. 위조된 네트워크 주소 및 위장된 도메인 네임에 기초하여, 수신 메일 서버는 전자 메일 메시지를 정당하다고 부정확하게 분류할 수 있다. 따라서, 불필요하고 요구되지 않은 전자 메시지를 함께 감소시키는 메커니즘이 유용하다.
당해 기술의 이전의 수준(prior state of the art)에 있어서의 상술한 문제점들은 본 발명의 원리에 의하여 극복되는데, 본 발명의 원리는 불필요하고 요구되지 않은 전자 메시지를 감소시키는 방법, 시스템, 컴퓨터 프로그램 제품 및 데이터 구조를 목적으로 한다. 요구되는 기능에 따라, 복수의 상이하게 생성된 입력 중 하나 이상은 잠재적으로 전자 메시지에 포함된 메시지 데이터와 함께, 메시지 분류 모듈(message classification module)에 제공될 수 있다. 수신된 입력에 기초하여, 메시지 분류 모듈은 전자 메시지를 정당한 또는 불필요하고/하거나 요청되지 않은 것으로 분류할 수 있다. 복수의 입력(각각의 입력은 전자 메시지의 전송과 연관된 상이한 정보를 표시함)이 이용되면, 메시지 분류 모듈은, 예를 들면 전자 메시지를 불필요하고/하거나 요청되지 않은 것으로 보다 신뢰성 있게 분류하는 것과 같이, 전자 메시지를 보다 신뢰성 있게 분류할 수 있다.
일 실시예에서, 접속 설정 데이터의 표준화된 교환(standardized exchange)은 엔티티가 위조된 네트워크 주소(예를 들면, 위조된 인터넷 프로토콜(Internet Protocol; IP) 주소)로부터 전자 메시지를 송신하는 가능성을 감소시키도록 변경된다. 송신측 컴퓨터 시스템은 추정된 송신 네트워크 주소를 포함하는 접속 초기화 데이터(예를 들면, 포트, 시퀀스 번호 등)를 송신한다. 수신측 컴퓨터 시스템은 추정된 송신 주소를 포함하는 접속 초기화 데이터를 수신한다. 수신측 컴퓨터 시스템은 주소 검증 데이터(address validation data)를 포함하도록 표준 접속 설정 데이터를 변경한다. 수신 컴퓨터는 변경된 접속 설정 데이터를 추정된 송신 네트워크 주소로 송신한다.
추정된 송신 네트워크 주소가 송신 컴퓨터 시스템에 해당하면, 송신 컴퓨터 시스템은 주소 검증 데이터를 포함하는 변경된 접속 설정 데이터를 수신할 수 있 다. 따라서, 송신측 컴퓨터 시스템은 주소 검증 데이터에 기초하여 적절한 접속 응답 데이터를 생성할 수 있다. 한편, 추정된 송신 네트워크 주소가 송신 컴퓨터 시스템에 해당하지 않으면 (예를 들면, 네트워크 주소가 위조되면), 송신 컴퓨터 시스템은 주소 검증 데이터를 포함하는 변경된 접속 설정 데이터를 수신하지 않는다.
송신측 컴퓨터 시스템은 (예를 들면, 추정된 송신 주소에 해당하지 않는 컴퓨터 시스템으로부터의 표준 접속 응답 데이터를 모의하기 위한 시도로서) 표준 접속 응답 데이터를 수신 컴퓨터 시스템에 송신할 수 있다. 하지만, 송신측 컴퓨터 시스템은 주소 검증 데이터를 인식하고 있지 않기 때문에, 송신 컴퓨터 시스템은 주소 검증 데이터에 적절하게 응답할 수 없다. 수신측 컴퓨터 시스템은, 추정된 송신 네트워크 주소에 해당하는 컴퓨터 시스템이 주소 검증 데이터에 적절하게 응답하였는지를 결정한다.
다른 실시예에서, 도메인(예를 들면, "test.com")에 대한 네임 서비스(예를 들면, 도메인 네임 서비스) 엔트리는 도메인에 대한 발신 메시지(outgoing message)를 취급하도록 인가된 컴퓨터 시스템의 네트워크 주소를 포함하도록 구성된다. 즉, 네임 서버 엔트리는 도메인에 대하여 전자 메시지를 송신하도록 인가된 컴퓨터 시스템의 네트워크 주소로 구성된다. 수신 메시지 서버는 송신측 도메인으로부터 송신되었다고 추정되는 전자 메시지를 수신한다. 수신 메시징 서버는 전자 메시지를 송신한 송신 메시징 서로에 해당하는 실제 송신측 네트워크 주소를 (예를 들면, 접속 설정 데이터로부터) 식별한다.
수신 메시징 서버는 송신 도메인에 대하여 전자 메시지를 송신하도록 인가된 네트워크 주소의 목록을 네임 서버에 문의한다. 수신 메시징 서버는, 실제 송신측 네트워크 주소가 인가된 네트워크 주소의 목록에 포함되어 있는지를 결정한다. 수신 메시징 서버는 결정의 결과(즉, 송신 컴퓨터 시스템이 도메인에 대하여 전자 메시지를 송신하도록 인가되었는지 또는 인가되지 않았는지 여부)를 메시지 분류 모듈에 제공한다.
또 다른 실시예에서, 전자 메시지 전송 정책(Electronic Message Transmission Policies; ETPs)은 도메인에 대한 네임 서비스 엔트리에 포함되거나 수신된 전자 메시지에 포함된다. ETP 인증서(certificate)는 송신 도메인에 의하여 ETP가 준수되었다는 것을 수신 컴퓨터 시스템에 지시하기 위하여 사용될 수 있다. 수신 메시징 서버는 송신 도메인으로부터 전자 메시지를 수신한다. 수신 메시징 서버는 송신 도메인에 해당하는 하나 이상의 ETP(예를 들면, ETP 인증서에 포함됨)를 수신한다. 수신 메시지 서버는, 예를 들면 네임 서버에 문의하거나 수신된 전자 메시지로부터 ETP를 추출함으로써 ETP를 수신할 수 있다.
수신 메시징 서버는 관련 ETP를 구문 분석(parse)한다. 관련 ETP는 송신 도메인에 의하여 준수되는 ETP를 지시한다. 수신 메시징 서버는 관련 ETP를 메시지 분류 모듈에 제공한다.
또 다른 실시예에서, 송신 컴퓨터 시스템은, 전자 메시지를 송신하기 전에 컴퓨터 리소스(computational resource)이 소비되었는지를 수신 컴퓨터 시스템에 증명한다. 소비된 컴퓨터 리소스는, 송신 컴퓨터 시스템이 연산 퍼즐(computational puzzle)에 적절한 해답(solution)을 제공하면, 수신 컴퓨터 시스템에 의하여 적어도 추정될 수 있다. 연산 퍼즐은, 송신 컴퓨터 시스템이 적절한 해답(예를 들면, 폭력 접근법(brute force approach))을 사용하여 식별된 해답을 생성하기 위하여 증가된 컴퓨터 리소스를 소비하는 것을 요구되도록 구성될 수 있다. 그러나, 상당히 감소된 컴퓨터 리소스가 적절한 해답을 확인하기 위하여 수신 컴퓨터 시스템에서 소비된다. 확인 가능한 해답의 연산(computation)은 전자 메시지를 전자 메시지 수신자에게 송신하는 티켓(ticket)을 (소비된 프로세서 사이클을 통하여) 전자 메시지 송신자가 구입하게 한다. 이러한 연산 퍼즐은 응답 문서(answer document)의 폭력 연산(brute force calculation)을 구현한다.
송신 메시징 서버는 전자 메시지에 포함될 전자 메시지 데이터를 수신한다. 송신 메시징 서버는, 예를 들면 전자 메시지 데이터 및/또는 다른 상태 정보(state information)의 상이한 부분으로부터의 초기 문서(initial document)를 생성한다. 퍼즐 입력은 전자 메시지의 하나 이상의 구성 요소로부터 생성된다. 퍼즐 입력은 불필요하고/하거나 요청하지 않은 전자 메시지를 억제하는데 사용하기 위하여 특히 설계된 퍼즐 해시 알고리즘(puzzle hash algorithm)에 제공된다. 예를 들면, 퍼즐 해시 알고리즘은 SHA-1 알고리즘의 서브 함수를 해싱(hashing)하는 것을 이용할 수 있지만, SHA-1 알고리즘과 다른 순서로 서브 함수를 적용한다. 서브 함수를 다른 순서로 적용하면, 퍼즐 해시 알고리즘을 하드웨어로 구현하기에 더 어렵게 되고, 해시 알고리즘의 하드웨어 가속(hardware acceleration)이 정당한 필요로 소망되는 문제 공간(problem space)으로부터 그것의 사용을 구별한다.
몇몇 실시예에서, 퍼즐 입력은 초기 문서이다. 다른 실시예에서, 퍼즐 입력은 초기 문서 및 다른 메일 메시지 데이터로부터 연산된다.
송신 메시징 서버는, 응답 문서 및 퍼즐 입력(초기 문서 또는 퍼즐 입력 해시 값)의 결합(combination)으로부터 (퍼즐 해시 알고리즘을 사용하여) 연산된 응답 해시 값이 연산 퍼즐에 대한 응답 값이 되도록 응답 문서를 식별한다. 예를 들면, 응답 문서는 특정 수의 선행 0들(a specified number of leading zeros)을 가지는 응답 해시 값을 연산하기 위하여 사용될 수 있다. 서버에서의 송신 메시지는 응답 문서 및 메시지 데이터를 포함하는 전자 메시지를 수신 도메인에 송신한다.
수신 도메인에서의 수신 컴퓨터 시스템은 전자 메시지를 수신한다. 수신 컴퓨터 시스템은, 예를 들면 송신 컴퓨터 시스템에서 사용된 메시지 데이터 및/또는 다른 상태 정보의 상이한 부분으로부터 초기 문서를 재생성한다. 수신 컴퓨터 시스템은 (잠재적으로 퍼즐 입력 해시 값을 연산하기 위하여 퍼즐 해시 알고리즘을 사용하여) 초기 문서로부터 퍼즐 입력을 재연산한다. 수신 컴퓨터 시스템은 (퍼즐 해시 알고리즘을 사용하여) 응답 문서 및 퍼즐 입력(초기 문서 또는 퍼즐 입력 해시 값)의 결합으로부터 연산된 확인 해시 값이 연산 퍼즐에 대한 해답을 지시하는 응답인지를 결정한다(예를 들면, 확인 해시 값이 특정 수의 선행 0들을 가지고 있는지를 결정한다). 수신 컴퓨터 시스템은 결정의 결과(예를 들면, 송신 메시징 서버가 확인 가능하거나 확인 가능하지 않은 해답을 제공했는지 또는 전혀 해답을 제공하지 않았는지 여부)를 메시지 분류 모듈에 제공한다.
본 발명의 추가적인 특징 및 이점은 후술되는 상세한 설명에서 개시되고, 부 분적으로 하기의 설명으로부터 자명할 것이며, 또한 본 발명의 실시에 의하여 지득될 수 있다. 본 발명의 특징 및 다른 이점은 첨부된 청구항에 특히 개시된 장치 수단 및 결합에 의하여 실현되고 획득될 수 있다. 본 발명의 이들 및 다른 특징은 다음의 설명, 첨부된 청구항으로부터 더 명백해질 것이고, 또는 다음에 개시된 본 발명의 실시에 의하여 지득될 수 있다.
본 발명의 원리는 불필요하고 요청되지 않은 전자 메시지를 함께 감소시키는 방법, 시스템, 컴퓨터 프로그램 제품 및 데이터 구조를 목적으로 한다. 접속 설정 데이터의 교환은, 엔티티가 위조된 네트워크 주소를 포함하는 전자 메시지를 송신하는 위험성을 감소시키고, 잠재적으로 억제시키기 위하여 변경된다. 수신 메시징 서버는 도메인에 대하여 전자 메시지를 송신하도록 인가된 서버를 식별하기 위하여 인가된 발신 서버 목록을 조사한다. 수신 메시징 서버는 도메인에 대하여 전자 메시지 전송 정책을 식별한다. 송신 메시징 서버는 연산 퍼즐에 대한 응답을 연산하고, 수신 메시징 서버는 그 응답을 확인한다. 발신 서버 목록 조사의 결과, 식별된 전자 메시지 전송 정책 및 퍼즐 응답 확인은 다른 입력과 함께 전자 메시지 분류 모듈에 제공될 수 있다.
본 발명의 범위 내의 실시예는 컴퓨터 실행 가능 명령어 또는 데이터 구조를 수반하거나 가지는 컴퓨터 판독 가능 매체를 포함한다. 이러한 컴퓨터 판독 가능 매체는 범용 또는 특정 목적의 컴퓨터 시스템에 의하여 액세스 가능한 임의의 이용 가능한 매체일 수 있다. 예로서, 이러한 컴퓨터 판독 가능 매체는 RAM, ROM, EPROM, CD-ROM 또는 다른 광 디스크 저장 장치, 자기 디스크 저장 장치 또는 다른 자기 저장 장치, 또는 임의의 다른 매체와 같은 물리적 저장 매체를 포함하지만, 이에 제한되지 않으며, 임의의 다른 매체가 컴퓨터 실행 가능 명령어, 컴퓨터 판독 가능 명령어, 또는 데이터 구조의 형태로 소망하는 프로그램 코드 수단을 수반하거나 저장하기 위하여 사용될 수 있고, 범용 또는 특정 목적의 컴퓨터 시스템에 의하여 액세스될 수 있다.
정보가 컴퓨터 시스템에 네트워크 또는 다른 통신 접속(유선(hardwired), 무선, 또는 유선 또는 무선의 조합) 상으로 전달되면, 접속은 컴퓨터 판독 가능 매체라고 적절히 간주된다. 그러므로, 임의의 이러한 접속은 적절히 컴퓨터 판독 가능 매체라고 한다. 또한, 상기 매체의 조합은 컴퓨터 판독 가능 매체의 범위 내에 포함되어야 한다. 컴퓨터 실행 가능 또는 컴퓨터 판독 가능 명령어는, 예를 들면 범용 컴퓨터 시스템 또는 특정 목적의 컴퓨터 시스템이 특정 기능 또는 기능의 그룹을 수행하도록 하는 데이터 및 명령어를 포함한다. 컴퓨터 실행 가능 또는 컴퓨터 판독 가능 명령어는, 예를 들면 어셈블리 언어 또는 심지어는 소스 코드와 같은 이진(binaries), 중간 형태의 명령어(intermediate format instructions)일 수 있다.
본 명세서 및 첨부된 청구항에서, "컴퓨터 시스템"은 전자 데이터 상에 작업을 수행하기 위하여 함께 동작하는 하나 이상의 소프트웨어 모듈, 하나 이상의 하드웨어 모듈 또는 이들의 조합으로서 정의된다. 예를 들면, 컴퓨터 시스템의 정의에는 퍼스널 컴퓨터의 운영 체제와 같은, 소프트웨어 모듈뿐만 아니라 퍼스널 컴퓨터의 하드웨어 모듈을 포함된다. 컴퓨터 시스템은 네트워크를 통하여 연결된 하나 이상의 컴퓨터를 포함할 수 있다. 유사하게, 컴퓨터 시스템은, (프로세서 및 메모 리와 같은) 내부 모듈이 전자 데이터 상에 작업을 수행하기 위하여 함께 동작하는 (이동 전화 또는 개인 휴대 정보 단말기(Personal Digital Assistant; PDA)와 같은) 단일 물리적 장치를 포함할 수 있다.
당업자는, 본 발명이 허브, 라우터, 무선 액세스 포인트(access point; AP), 무선국(wireless station), 퍼스널 컴퓨터, 랩탑 컴퓨터, 핸드헬드 장치(hand-held device), 멀티프로세서 시스템, 마이크로프로세서 기반 또는 프로그래머블 가전 제품(programmable consumer electronics), 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 이동 전화, PDA, 호출기 등을 포함하는 다수의 유형의 컴퓨터 시스템 구성을 가지는 네트워크 컴퓨팅 환경에서 실시될 수 있다. 또한, 본 발명은 네트워크를 통하여 (유선, 무선, 또는 유선 및 무선 접속의 조합에 의해) 링크된 로컬 및 원격 컴퓨터 시스템이 작업을 수행하는 분산 시스템 환경에서 실시될 수 있다. 분산 시스템 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치에 위치될 수 있다.
도 1은 본 발명의 원리에 따라 접속 도용의 감소를 용이하게 하는 네트워크 아키텍처(100)의 예를 도시한다. 네트워크 아키텍처(100)에서, 송신 메시징 서버(107), 수신 메시징 서버(109) 및 메시징 서버(184)는 각각 해당 링크(102, 104 및 103)에 의하여 네트워크(101)에 접속된다. 유사하게, 네임 서버(108)는 링크(106)에 의하여 네트워크(101)에 접속된다. 네트워크(101) 뿐만 아니라 링크(102, 103, 104 및 106)는 시스템 버스의 일부, 근거리 통신망(local area network; LAN)의 일부, 원거리 통신망(Wide Area Network; WAN)의 일부 및/또는 심 지어는 인터넷의 일부를 포함할 수 있다. 양방향 화살표(186)에 의하여 도시된 바와 같이, 네임 서버(108)는 재귀적 문의(recursive query)의 목적으로 다른 네임 서버(185)와 통신을 할 수도 있다. 유사하게, 네트워크 아키텍처(100)의 컴퓨터 시스템은 (네트워크 아키텍처(100)의 컴퓨터 시스템을 다른 네임 서버(185)에 접속하는 링크가 명시적으로 도시되어 있지 않지만) 반복적인 문의의 목적으로 다른 네임 서버(185)에 바로 문의할 수 있다.
메시징 클라이언트(132 및 133)는 각각 해당 링크(136 및 137)에 의하여 수신 메시징 서버(109)에 접속된다. 메시징 엔티티(예를 들면, 사용자 또는 기업)는 메시징 클라이언트(132 및 133)를 사용하여 수신 메시징 서버(109)에 저장된 전자 메시지를 액세스할 수 있다.
송신 메시징 서버(107), 수신 메시징 서버(109) 및 메시징 서버(184)는 다른 컴퓨터 시스템 뿐만 아니라 또 다른 컴퓨터 시스템 간에 접속을 설정하기 위하여 TCP를 이용하는 전자 메시징 서버일 수 있다. 또한, 송신 메시징 서버(107), 수신 메시징 서버(109) 및 메시징 서버(108)는 SMTP(Simple Mail Transfer Protocol)를 이용하여 (예를 들면, 설정된 TCP 접속 상으로) 다른 메시징 서버 및 다른 컴퓨터 시스템과 전자 메일 메시지를 교환할 수 있다. 네임 서버(108)는 도메인 네임(예를 들면, www.test.com)을 IP 주소(예를 들면, 112.45.123.99)로 변환하는 도메인 네임 시스템(Domain Name System; DNS) 서버일 수 있다.
네임 서버(108)는, 예를 들면 향상된 NOOP 명령에 대한 지원 또는 다른 SMTP 확장 명령에 대한 지원과 같은 비표준 접속 설정 데이터의 교환을 도메인이 지원한 다는 것을 지시하는 하나 이상의 레코드를 저장할 수 있다. 비표준 접속 설정 데이터의 교환에 대한 지원을 지시하는 레코드는, 예를 들면 특수한 NOOP 레코드, TXT 레코드 또는 TXT 레코드의 세트(set)와 같은 DNS 레코드일 수 있다. TXT 레코드 또는 TXT 레코드의 세트는, 예를 들면 XML(eXtensible Markup Language) 명령어와 같이 텍스트 형태로 인코딩된 텍스트 데이터 또는 다른 데이터를 포함할 수 있다. 비표준 접속 설정 데이터의 교환에 대한 지원을 지시하는 레코드는 도메인에 대한 전자 메일 정책을 지시하는 DNS 레코드 세트에 포함될 수 있다.
도 2는 본 발명의 원리에 따라 접속 도용을 감소시키는 방법(200)의 예시적인 흐름도를 도시한다. 본 방법(200)은 네트워크 아키텍처(100)에서 도시된 구성 요소에 대하여 개시된다. 본 방법(200)은 추정된 송신 주소를 포함하는 접속 초기화 데이터를 수신 컴퓨터 시스템에 송신하는 동작(동작 "201")을 포함한다. 동작 "201"은 수신 컴퓨터 시스템에 접속 초기화 데이터를 송신하는 송신 컴퓨터 시스템을 포함할 수 있다. 접속 초기화 데이터는, 예를 들면 송신 메시징 서버와 다른 컴퓨터 시스템 간에 TCP 또는 SMTP 접속과 같은 접속의 설정을 초기화하는 데이터일 수 있다. 따라서, 접속 초기화 데이터는 시퀀스 번호, 포트 번호 또는 접속 설정을 초기화하는 다른 적절한 명령을 포함할 수도 있다.
예를 들면, 송신 메시징 서버(107)는 주소(112)를 포함하는 접속 초기화 데이터(111)를 수신 메시징 서버(109)에 송신할 수 있다. 송신 메시징 서버(107)는 메시징 서버(184)에 해당하는 네트워크 주소(예를 들면, IP 주소)를 도용하려는 시도를 하고 있을 수 있다. 그러므로, 주소(112)는 메시징 서버(184)에 해당하는 네 트워크 주소일 수 있다. 한편, 송신 메시징 서버는 네트워크 주소를 도용하려는 시도를 하지 않고 있을 수 있고, 주소(112)는 송신 메시징 서버(107)에 해당하는 네트워크 주소일 수 있다. 접속 초기화 데이터(111)는, 예를 들면 송신 메시징 서버(107)로부터 송신된 SMTP HELO 명령 또는 SMTP EHLO 명령에 포함될 수 있다.
본 방법(200)은 추정된 송신 주소를 포함하는 접속 초기화 데이터를 송신 컴퓨터 시스템으로부터 수신하는 동작(동작 "205")을 포함한다. 동작(205)은 송신 컴퓨터 시스템으로부터 접속 초기화 데이터를 수신하는 수신 컴퓨터 시스템을 포함한다. 수신된 접속 초기화 데이터는, 예를 들면 수신 메시징 서버와 다른 컴퓨터 시스템간에 TCP 또는 SMTP 접속과 같은 접속의 설정을 초기화하는 데이터일 수 있다. 예를 들면, 수신 메시징 서버(109)는 주소(112)를 포함하는 접속 초기화 데이터(111)를 송신 메시징 서버(107)로부터 수신할 수 있다. 접속 초기화 데이터(111)는 수신 메시징 서버(109)에서 수신된 SMTP HELO 명령에 포함될 수 있다.
본 방법(200)은 주소 검증 데이터를 포함하도록 표준 접속 설정 데이터를 변경하는 동작(동작 "206")을 포함한다. 동작 "206"은 주소 검증 데이터를 포함하도록 표준 접속 설정 데이터를 변경하는 수신 컴퓨터 시스템을 포함할 수 있다. 예를 들면, 수신 메시징 서버(108)는 접속 초기화 데이터(111)를 수신하는 것에 응답하여 주소(112)로 달리 송신될 표준 접속 설정 데이터를 변경할 수 있다. TCP 접속이 설정될 것이라고 접속 초기화 데이터(111)가 지시하면, 수신 메시징 서버(109)는 표준 접속 응답 데이터를 복수의 네트워크 패킷으로 분리할 수 있다. 선택적으로, TCP 접속이 설정될 것이라고 접속 초기화 데이터(111)가 지시하면, 수신 메시징 서버(109)는 접속 초기화 데이터(111)를 버릴 수 있다. 몇몇 실시예에서, 접속 설정 데이터(111)를 수신하는 것에 응답하여, 수신 메시징 서버(109)는 표준 접속 설정 데이터를 변경하여 무작위 문자열(random string of characters)(또는 비표준 데이터의 다른 일부)을 포함할 수 있다.
본 방법(200)은 변경된 접속 설정 데이터를 추정된 송신 주소로 송신하는 동작(동작 "207")을 포함한다. 동작 "207"은 변경된 접속 설정 데이터를 추정된 송신 주소로 송신하는 수신 컴퓨터 시스템을 포함할 수 있다. 예를 들어, 주소(112)가 송신 메시징 서버(107)에 해당하면, 수신 메시징 서버(109)는 주소 검증 데이터(114)를 포함하는 변경된 접속 설정 데이터(113)를 송신 메시징 서버(107)에 송신할 수 있다. 한편, 주소(112)가 메시징 서버(184)에 해당하면, 수신 메시징 서버(109)는 주소 검증 데이터(114)를 포함하는 변경된 접속 설정 데이터(118)를 메시징 서버(184)에 송신할 수 있다.
변경된 접속 설정 데이터(113 및 118)는 접속 설정 데이터, 접속 초기화 데이터를 재전송하기 위한 요구, 또는 무작위 문자열(또는 비표준 데이터의 다른 일부)을 포함하는 SMTP HELO 응답 또는 SMTP EHLO 응답 명령을 포함하는 연속적인 패킷들에서 마지막 네트워크 패킷일 수 있다. 이러한 유형의 접속 설정 데이터는 표준 접속 설정 데이터와 다를 수 있다. 따라서, 네트워크 주소를 도용하려는 시도를 하는 컴퓨터 시스템이 변경된 접속 설정 데이터에 대한 적절한 응답을 정확하게 예측할 가능성이 줄어든다.
본 방법(200)은 주소 검증 데이터를 포함하는 변경된 접속 설정 데이터를 수신하는 동작(동작 "202")을 포함한다. 동작 "202"는 주소 검증 데이터를 포함하는 변경된 접속 설정 데이터를 수신하는 송신 컴퓨터 시스템을 포함할 수 있다. 예를 들면, 송신 메시징 서버(107)는 주소 검증 데이터(114)를 포함하는 변경된 접속 설정 데이터(113)를 수신 메시징 서버(109)로부터 수신할 수 있다.
몇몇 실시예에서, 접속 초기화 데이터를 송신하지 않은 메시징 서버는 변경된 접속 데이터를 수신한다. 예를 들어, 주소(112)가 메시징 서버(184)에 해당하면, 메시징 서버(184)는 주소 검증 데이터(114)를 포함하는 변경된 접속 설정 데이터(118)를 수신 메시징 서버(109)로부터 수신할 수 있다. 수신된 변경된 접속 설정 데이터(118)가 해당 접속 초기화 데이터에 응답하여 수신되지 않았으면, 메시징 서버(184)는 변경된 접속 설정 데이터(118)를 단순히 버릴 수 있다. 그러므로, 송신 메시징 서버(107)가 메시징 서버(184)로부터 접속을 모의(그러므로 도용)하려고 시도하고 있으면, 수신 메시징 서버(109)는 주소 검증 데이터(114)에 대한 적절한 응답을 수신하지 못할 수 있다. 예를 들면, 수신 메시징 서버(109)는 주소 검증 데이터(114)에 포함된 문자들의 무작위 시퀀스를 반사(echoing back)하는 향상된 NOOP 명령을 수신하지 못할 수 있다.
따라서, 수신 메시징 서버(109)는 네임 서버(108)에 문의하여, 메시징 서버(184)(주소(112)에 해당하는 메시징 서버)가 변경된 접속 설정 데이터를 지원하는지를 결정할 수 있다. 엔트리(176)는 메시징 서버(184)를 포함하는 도메인에 대한 DNS 엔트리일 수 있다. 수신 메시징 서버(109)는, 예를 들면 향상된 NOOP 지 원 레코드(138)(특별한 NOOP 지원 레코드 또는 TXT 레코드)와 같은 변경된 접속 설정 지원 레코드에 대한 엔트리(176)를 문의할 수 있다. 메시징 서버(184)가 변경된 접속 설정, 예를 들면 향상된 NOOP 명령을 지원한다고 지시되면, 주소 검증 데이터(114)에 대한 적절한 응답 수신 실패는, 접속 초기화 데이터(111)가 메시징 서버(184)로부터 송신되지 않았다는 것을 지시할 수 있다.
본 방법(200)은 주소 검증 데이터에 기초하여 적절한 접속 응답 데이터를 생성하는 동작(동작 "203")을 포함한다. 동작 "203"은 주소 검증 데이터에 기초하여 적절한 접속 응답 데이터를 생성하는 송신 컴퓨터 시스템을 포함할 수 있다. 예를 들면, 송신 메시징 서버(107)는 주소 검증 데이터(114)에 기초하여 적절한 접속 응답 데이터(117)를 생성할 수 있다. 접속 설정 데이터(113)가 복수의 네트워크 패킷 중 마지막 네트워크 패킷이면, 송신 메시징 서버(107)는 마지막 네트워크 패킷의 수신을 수신 확인 응답하는 적절한 시퀀스 번호를 생성할 수 있다. 접속 설정 데이터(113)가 접속 초기화 데이터(111)를 재전송하라는 요구이면, 송신 메시징 서버(107)는 접속 초기화 데이터(111)를 재생성할 수 있다. 접속 설정 데이터가 비표준 데이터(예를 들면, 문자열의 무작위 시퀀스)를 포함하는 SMTP EHLO 응답 명령 또는 SMTP HELO 응답 명령이면, 송신 메시징 서버(107)는 비표준 데이터를 포함하는 향상된 NOOP 명령을 생성할 수 있다.
본 방법(200)은 적절한 접속 응답 데이터를 수신 컴퓨터 시스템에 송신하는 동작(동작 "204")을 포함한다. 동작 "204"는 적절한 접속 응답 데이터를 수신 컴퓨터 시스템에 송신하는 송신 컴퓨터 시스템을 포함할 수 있다. 예를 들면, 송신 메시징 서버(107)는 적절한 접속 응답(117)을 포함하는 접속 응답 데이터(116)를 수신 메시징 서버(109)에 송신할 수 있다. 적절한 접속 응답(117)은, 예를 들면 적절한 수신 확인 응답 시퀀스 번호, 재생성된 접속 초기화 데이터 또는 비표준 데이터를 포함할 수 있다. 송신 메시징 서버(107)는, 예를 들면 향상된 NOOP 명령에서, 수신된 SMTP HELO 명령 또는 SMTP EHLO 명령으로부터의 문자열의 무작위 시퀀스를 포함한다.
수신 메시징 서버(109)는 접속 응답 데이터(116)를 수신할 수 있다. 그러나, 수신 메시징 서버는 적절한 접속 응답 데이터를 포함하지 않는 다른 접속 응답 데이터를 수신하거나 접속 응답 데이터를 전혀 수신하지 않을 수 있다. 예를 들면, 송신 메시징 서버(107)가 메시징 서버(104)에 해당하는 네트워크 주소를 도용하려는 시도를 하고 있으면, 송신 메시징 서버(107)는 주소 유효와 데이터(114)를 수신하지 않을 수 있다(주소 유효와 데이터(114)가 메시지 서버(184)로 송신되었기 때문임). 그러므로, 송신 메시징 서버(107)는 주소 검증 데이터(114)에 기초하지 않은 접속 응답 데이터를 예측하려는 시도를 할 수 있다. 따라서, 송신 메시징 서버(107)가 적절하지 않은 (예를 들면, 표준인) 접속 응답 데이터를 예측할 가능성이 증가한다.
본 방법(200)은, 추정된 송신 주소에 해당하는 컴퓨터 시스템이 주소 검증 데이터에 적절하게 응답했는지를 결정하는 동작(동작 "208")을 포함한다. 동작 "208"은, 추정된 송신 주소에 해당하는 컴퓨터 시스템이 주소 검증 데이터에 적절하게 응답했는지를 결정하는 수신 컴퓨터 시스템을 포함할 수 있다. 예를 들면, 수신 메시징 서버(109)는 주소(112)에 해당하는 컴퓨터 시스템이 주소 검증 데이터(114)에 적절히 응답했는지를 결정할 수 있다. 적절한 접속 응답(117)의 수신은, 주소(112)에 해당하는 컴퓨터 시스템이 주소 검증 데이터(114)에 적절히 응답했다는 것을 수신 메시징 서버(109)에 지시할 수 있다. 예를 들면, 접속 설정 데이터(113)를 포함하는 네트워크 패킷에 대한 적절한 수신 확인 응답 시퀀스 번호, 재전송 요구에 응답하여 접속 초기화 데이터(111)의 재전송, 또는 문자열들의 반사된 무작위 시퀀스를 포함하는 향상된 SMTP NOOP 명령은 적절한 접속 응답을 지시할 수 있다. 수신 메시징 서버(109)가 적절한 접속 응답을 수신하면, 추정된 네트워크 주소가 도용될 가능성이 감소된다.
부적절한 접속 데이터에 응답하여, 수신 메시징 서버는 추정된 송신 주소에 해당하는 네임 서버 엔트리를 문의할 수 있다. 예를 들면, 수신 메시징 서버(109)는 엔트리(176)(주소(112)에 해당하는 엔트리)에 문의하여, 메시징 서버(184)가 변경된 접속 설정을 지원하는지를 결정할 수 있다. 메시징 서버(184)가 변경된 접속 설정 데이터, 예를 들면 향상된 NOOP 명령을 지원한다고 지시되면, 메시징 서버(184)로부터의 것이라고 추정되는 부적절한 응답 데이터의 수신은 접속 초기화 데이터(111)가 메시징 서버(184)로부터 송신되지 않았음을 지시할 수 있다.
도 3을 참조하면, 도 3은 본 발명에 따른, 인가된 발신 메시징 서버의 식별을 용이하게 하는 네트워크 아키텍처(300)의 예를 도시한다. 네트워크 아키텍처(300)에는 도메인(305, 306 및 307)이 도시된다. 도메인(305, 306 및 307)은, 이들 내부에 도시된 해당 컴퓨터 시스템을 논리적으로 포함한다는 것을 설 명하기 위하여 점선으로서 도시된다. 그러나, 도메인에 포함된 컴퓨터 시스템의 물리적 위치는 서로 다를 수 있다. 예를 들면, 메시징 클라이언트(341) 및 메시징 클라이언트(343)는 물리적으로 근접(예를 들면, 동일한 방)하거나, 또는 물리적으로 먼 거리(예를 들면, 상이한 대륙)에 위치할 수 있다.
또한, 네트워크 아키텍처(300)에는 네임 서버(308)가 도시된다. 일반적으로, 네임 서버(308)는, 예를 들면 상이한 도메인의 컴퓨터 시스템들 간의 통신을 용이하게 하기 위하여 컴퓨터 시스템에 대한 텍스트 문자열 식별자(textual string identifier)를 해당 숫자 네트워크 주소로 상관시키는 것과 같은 네임 정보를 저장한다. 네임 서버(308)는 도메인 네임(예를 들면, www.test.com)을 IP(Internet Protocol) 주소(예를 들면, 102.33.23.112)로 번역하는 도메인 네임 시스템(DNS) 서버일 수 있다.
네임 서버(108)는 도메인에 대한 인가된 발신 메시징 서버를 지시하는 하나 이상의 레코드를 저장할 수 있다. 도메인에 대한 인가된 발신 메시징 서버를 지시하는 레코드는, 예를 들면 RMX 레코드, TXT 레코드 또는 TXT 레코드의 세트와 같은 DNS 레코드일 수 있다. TXT 레코드 또는 TXT 레코드의 세트는 텍스트 데이터, 또는 예를 들면 XML 명령어와 같이 텍스트 형태로 인코딩된 다른 데이터를 포함할 수 있다. 인가된 발신 메시징 서버를 지시하는 레코드는 도메인에 대한 전자 메일 정책을 지시하는 DNS 레코드 세트에 포함될 수 있다.
또한, 네트워크 아키텍처(300)에는 네트워크(301)가 도시된다. 도메인(305, 306, 307) 및 네임 서버(308)는 각각 해당 링크(391, 392, 393 및 394)에 의하여 네트워크(301)에 접속된다. 링크(391, 392, 393 및 394) 및 네트워크(301)는 시스템 버스의 일부, 근거리 통신망(LAN)의 일부, 원거리 통신망(WAN)의 일부 및/또는 심지어는 인터넷의 일부를 포함할 수 있다. 네트워크 아키텍처(300)에 도시된 도메인 및 컴퓨터 시스템은, 예를 들면 전자 메일 메시지, DNS 문의 및 DNS 응답(리소스 레코드를 포함함)과 같은 전자 메시지를 도시된 링크 상으로 교환할 수 있다. 양방향 화살표(386)에 의하여 도시된 바와 같이, 네임 서버(308)는 또한 재귀적 문의의 목적으로 다른 네임 서버(385)와 통신할 수 있다. 유사하게, 네트워크 아키텍처(300)의 컴퓨터 시스템은 (아키텍처(300)의 다른 컴퓨터 시스템을 다른 네임 서버(385)에 접속하는 링크가 명시적으로 도시되지 않았지만) 반복적인 문의의 목적으로 다른 네임 서버(385)에 바로 문의할 수 있다.
도메인(307) 내부에서, 메시징 클라이언트(341 및 343)는 각각 해당 링크(396 및 397)에 의하여 메시징(387)에 접속된다. 각각의 메시징 클라이언트(341 및 343)는, 예를 들면 전자 메일 클라이언트 소프트웨어에 포함된 모듈과 같은 해당 메시징 인터페이스 모듈(도시되지 않음)을 포함할 수 있다. 메시징 인터페이스 모듈은 메시징 클라이언트 중 하나의 클라이언트의 사용자가 메시징 서버(317)로부터 전자 메시지를 액세스하고 시청하는 메커니즘을 제공한다. 사용자(예를 들면, John Doe)는 사용자에 의하여 사용하도록 배당되거나 그리고/또는 인가된 전자 메시징 주소(예를 들면, jdoe@test2.com)에 송신된 전자 메시지를 시청할 수 있다.
도 4는 본 발명에 따라, 인가된 발신 메시지 서버를 식별하는 방법(400)의 예시적인 방법의 흐름도를 도시한다. 인가되지 않은 컴퓨터 시스템은 전자 메시지의 하나 이상의 필드를 변경(이하, "도메인 위조"라고 할 수 있음)하여, 사실 전자 메시지(예를 들면, 전자 메일 메시지)가 지정된 도메인으로부터 전달되지 않은 때에 전자메시지가 지정된 도메인으로부터 전달된 것처럼 보이게 할 수 있다. 따라서, 본 방법(400)은 전자 메시지에 포함된 도메인 네임이 위장된 가능성을 지시하는 입력을 제공하는 것으로 보여질 수도 있다. 도메인 네임이 위장되었다는 높은 가능성은 전자 메시지가 불필요하고/하거나 요청되지 않은 전자 메시지라는 것을 (단독으로 또는 다른 입력과 결합하여) 지시할 수 있다.
본 방법(400)은 네트워크 아키텍처(300)에 도시된 구성 요소에 대하여 설명된다. 본 방법(400)은 송신측 도메인으로부터 송신된 것으로 추정되는 전자 메시지를 수신하는 동작(동작 "401")을 포함한다. 동작 "401"은 송신측 도메인으로부터 송신된 것으로 추정되는 전자 메시지를 수신하는 수신 도메인의 수신 메시징 서버를 포함할 수 있다. 예를 들면, (도메인(307)의) 메시징 서버(317)는 메시징 서버(316)로부터 전자 메시지(371)를 수신할 수 있다. 전자 메시지(371)는 전자 메시지(371)가 도메인(305)으로부터 송신된 것을 지시하는 위장된 도메인 네임(372)을 포함한다.
추정된 송신 도메인은 전자 메시지에 포함된 파라미터 값으로부터 식별될 수 있다. 예를 들면, 메시징 서버(317)는 전자 메시지(371)에 포함된 파라미터 값으로부터 (예를 들면, 위장된 도메인 네임(372)으로부터) 도메인(305)을 식별할 수 있다. 추정된 송신 도메인은 추정된 송신 엔티티의 도메인 부분(예를 들면, "@" 문자 뒤의 문자들)으로부터 식별될 수 있다. 전자 메시지의 다른 파라미터 값은 실제 송신 네트워크 주소를 포함할 수 있다. 예를 들면, 실제 송신 네트워크 주소는 전자 메시지의 역경로(Reverse-Path; "envelope From address"로서 언급될 수 있음)에 포함될 수 있다. 역경로는 송신 컴퓨터 시스템이 SMTP "MAIL FROM" 명령을 발생하는 결과로서 전자 메시지에 포함될 수 있다. 그러므로, 메시징 서버(371)는 전자 메시지(371)에 대한 이 파라미터 값을 조사하여 실제 송신 네트워크 주소(예를 들면, 메시징 서버(316)의 실제 IP 주소)를 식별하는 시도를 할 수 있다.
그러나, 실제 송신 네트워크 주소는 전자 메시지의 제1 Resent-Sender 헤더, 전자 메시지의 Resent-From 헤더의 제1 메일박스, 전자 메시지의 Sender 헤더, 또는 전자 메시지의 From 헤더의 제1 메일 박스에 포함될 수도 있다. 따라서, 메시징 서버(371)는, 실제 송신 네트워크 주소(예를 들면, 메시징 서버(316)의 실제 IP 주소)를 식별하는 시도를 하기 위하여 전자 메시지(317)에 대한 이들 파라미터 값 각각을 (개별적으로 또는 Reverse-Path 파라미터 값을 조사하는 것과 함께) 조사할 수 있다. 전자 메시지의 다수의 상이한 부분이 조사되기 때문에, 전자 메시지의 실제 송신 네트워크 주소가 식별된 가능성이 증가된다. 몇몇 전자 메일 구현법은, 전자 메일 메시지가 빈 역경로를 가지고 송신될 것을 요구한다. 본 발명의 실시예는, 전자 메시지가 역경로 파라미터 값을 포함하지 않는 때에 실제 송신 주소를 식별하는데 유용할 수 있다.
위장된 도메인 네임(372)에 기초하여, 메시징 서버(317)는 도메인(305)을 전 자 메시지(371)에 대한 추정된 송신 도메인으로서 식별할 수 있다. 역경로 또는 적어도 하나의 나열된 헤더를 포함하지 않는 전자 메시지는 불필요하고/하거나 요청되지 않은 것으로 간주될 수 있다. 이러한 전자 메시지를 불필요하고/하거나 요청되지 않은 것으로 간주하면, 엔티티가 메시지 분류 모듈을 방해하기 위하여 역경로 및 모든 헤더를 의도적으로 생략하는 가능성이 감소된다.
본 방법(400)은 송신 컴퓨터 시스템에 해당하는 실제 송신측 네트워크 주소를 식별하는 시도를 하기 위하여 전자 메시지의 복수의 파라미터 값을 조사하는 동작(동작 "402")을 포함한다. 동작 "402"는 송신 컴퓨터 시스템에 해당하는 실제 송신측 네트워크 주소를 식별하는 수신측 컴퓨터 시스템을 포함할 수 있다. 수신측 컴퓨터 시스템은, 예를 들면 전자 메시지(371)의 Reverse-Path, 제1 Resent-Sender 헤더, Resent-From 헤더의 제1 메일박스, 전자 메시지의 Sender 헤더, 또는 From 헤더의 제1 메일박스 중 하나 이상으로부터 실제 송신측 네트워크 주소를 식별할 수 있다. 메시징 서버(317)는 실제 송신측 IP 주소가 메시징 서버(316)에 해당하는 것을 식별할 수 있다. 본 방법(200)은 IP 주소가 위장될 가능성을 감소시키기 위하여 이용될 수 있다.
본 방법(400)은 송신측 도메인에 대하여 전자 메시지를 송신하도록 인가된 네트워크 주소의 목록을 네임 서버에 문의하는 동작(동작 "203")을 포함한다. 동작 "403"은 송신측 도메인에 대하여 전자 메시지를 송신하도록 인가된 네트워크 주소의 목록을 네임 서버에 문의하는 수신 컴퓨터 시스템을 포함할 수 있다. 예를 들면, 메시징 서버(317)는 인가된 서버 문의(379)를 포함하는 네임 서비스 메시지(375)를 도메인(307)이 네임 서버(308)에 발행하도록 할 수 있다. 네임 서비스 메시지(375)는 도메인(305)을 식별하는 식별자를 포함할 수 있다.
네임 서버(308)는 네임 서비스 메시지(375)를 수신하여 인가된 서버 문의(379)를 처리할 수 있다. 네임 서버(308)에서, 엔트리(376)는 도메인(305)에 해당하는 DNS 엔트리일 수 있다. 엔트리(376)는 인가된 서버 레코드(336)를 포함하여, 도메인(305)에 대한 하나 이상의 레코드(예를 들면, RMX 및/또는 TXT 레코드)를 포함할 수 있다. 수신된 TXT 레코드는 XML 명령어를 포함할 수 있다. 인가된 서버 레코드(336)는 도메인(105)에 대하여 전자 메시지를 송신하도록 인가된 메시징 서버에 해당하는 네트워크 주소(예를 들면, IP 주소)를 포함할 수 있다.
메시징 서버(315)는 도메인(305)으로부터 전자 메시지를 송신하도록 인가된 컴퓨터 시스템으로서 지명되지만, 메시징 서버(316)는 도메인(305)으로부터 전자 메시지를 송신하도록 인가된 컴퓨터 시스템으로서 지명되지 않을 수 있다. 그러므로, 인가된 서버 레코드(336)는 메시지 서버(315)에 해당하는 네트워크 주소(그리고 혹은 다른 컴퓨터 시스템에 대한 네트워크 주소)를 포함하도록 구성될 수 있지만, 메시징 서버(316)에 해당하는 네트워크 주소를 포함하지 않도록 구성될 수 있다. 따라서, 네임 서버 메시지(375)를 수신하는 것에 응답하여, 네임 서버(308)는 인가된 서버 목록(378)을 포함하는 네임 서버 응답(377)을 도메인(307)에 송신할 수 있다. 도메인(307)은 네임 서버 응답(337)을 수신할 수 있고 네임 서버 응답(377)을 메시징 서버(317)에 전달할 수 있다.
본 방법(400)은, 실제 송신측 네트워크 주소가 송신 도메인에 대하여 발신 전자 메시지를 송신하도록 인가되었는지를 결정하는 동작(동작 "404")을 포함한다. 동작 "404"는, 실제 송신측 네트워크 주소가 송신 도메인에 대하여 발신 전자 메시지를 송신하도록 인가되는지를 결정하는 수신 컴퓨터 시스템을 포함할 수 있다. 예를 들면, 메시징 서버(317)는, 메시징 서버(316)에 해당하는 네트워크 주소가 도메인(305)에 대하여 전자 메시지를 송신하도록 인가되었는지를 결정할 수 있다.
수신 컴퓨터 시스템은 실제 송신측 네트워크 주소와 인가된 서버 목록에 포함된 네트워크 주소를 비교하여, 실제 송신측 네트워크 주소가 인가되었는지를 결정한다. 예를 들면, 메시지 서버(317)는 메시징 서버(316)에 해당하는 네트워크 주소를 인가된 서버 목록(378)에 포함된 네트워크 주소와 비교하여, 메시징 서버(316)가 도메인(305)에 대하여 전자 메시지를 송신하도록 인가되었는지를 결정한다. 실제 송신측 네트워크 주소가 도메인에 대하여 인가된 네트워크 주소의 목록에 포함되면, 이것은 송신측 컴퓨터 시스템이 그 도메인으로부터의 것이라고 추정되는 전자 메시지를 송신하도록 인가되지 않았다는 것을 지시한다. 따라서, 송신 메시징 서버(316)가 전자 메시지(371)에 위장된 도메인 네임을 포함함으로써 도메인(305)을 위장했기 때문에, 메시징 서버(316)는 인가되지 않은 컴퓨터 시스템으로서 발견될 수 있다. 인가되지 않은 컴퓨터 시스템에 의한 전자 메시지의 전송은, 전자 메시지가 불필요하고/하거나 요청되지 않은 전자 메시지라는 지시일 수 있다.
한편, 실제 송신측 네트워크 주소가 도메인에 대하여 인가된 네트워크 주소의 목록에 포함되면, 이것은 송신측 컴퓨터 시스템이 그 도메인으로부터의 것이라 고 추정되는 전자 메시지를 전달하도록 인가되었다는 것을 지시한다. 예를 들면, 메시징 서버(315)는 전자 메시지에 도메인(305)을 정당하게 포함할 수 있고, 인가된 컴퓨터 시스템으로서 발견될 수 있다. 인가된 컴퓨터 시스템(예를 들면, 메시징 서버(315))에 의한 전자 메시지의 전송은, 전자 메시지가 정당한 전자 메시지라는 지시일 수 있다.
본 방법(400)은 그 결정의 결과를 메시지 분류 모듈에 제공하는 동작(동작 "405")을 포함한다. 메시지 분류 모듈은 메시지 분류 모듈에 제공된 입력에 기초하여 전자 메시지를 정당한, 불필요한, 그리고/또는 요청되지 않은 메시지로 분류할 수 있다. 예를 들면, 메시징 서버(317)는 메시징 서버 컴퓨터 시스템(316)(인가되지 않음) 또는 메시징 서버(315)(인가됨)에 관한 결정의 결과를 메시지 분류 모듈(328)에 제공할 수 있다. 메시징 서버(316)가 인가되지 않았다는 것을 지시하는 제공된 결과에 기초하여 (단독으로 또는 다른 제공된 입력과 결합하여), 전자 메일 분류 모듈(328)은 전자 메시지(371)를 불필요하고/하거나 요청되지 않은 전자 메시지로 분류할 수 있다.
몇몇 실시예에서, 메시지 분류 모듈은 메시징 클라이언트에 상주한다. 예를 들면, 메시징 클라이언트(343)는 메시지 분류 모듈(353)을 포함한다. 그러므로, 적절한 때에, 메시징 서버(317)는 (도메인에 대하여 전자 메시지를 전달하도록 송신 컴퓨터 시스템의 인가에 관한) 결정의 결과를 전자 메일 분류 모듈(353)에 교대로 제공할 수 있다.
이제, 도 5를 참조하면, 도 5는 송신 도메인의 전자 메시지 전송 정책을 인 식하고, 본 발명에 따라 연산 퍼즐에 대한 해답을 검증하는 것을 용이하게 하는 네트워크 아키텍쳐(500)의 예를 도시한다. 도메인(506, 507)이 네트워크 아키텍쳐(500)에서 설명된다. 도메인(506, 507)은 점선으로 표시되어 도메인(506, 507)이 도메인(506, 507) 내부에 설명된, 대응하는 컴퓨터 시스템을 논리적으로 포함한다는 것을 도시한다. 그러나, 네트워크 아키텍쳐(300)와 유사한, 네트워크 아키텍쳐(500)의 도메인에 포함된 컴퓨터 시스템의 물리적 위치는 서로 다를 수 있다.
또한 네임 서버(508)가 네트워크 아키텍쳐(500)에 설명되어 있다. 네임 서버(508)는 일반적으로 다른 도메인에서의 컴퓨터 시스템 간의 통신을 용이하게 하기 위하여, 예를 들어 컴퓨터 시스템용 텍스트 스트링 식별자를 대응하는 숫자 네트워크 주소에 연관시키는 것과 같은 네임 정보를 저장한다. 네임 서버(508)는 도메인 네임(예를 들어 www.test1.com)을 IP 주소(예를 들어 119.46.122.87)로 번역하는 도메인 네임 서버(DNS)일 수 있다. 네임 서버(508)는 또한 도메인이 하나 이상의 전자 메시지 전송 정책(Electronic Message Transmission Policies; ETPs)을 준수한다는 것을 지시하는 레코드 및 도메인이 연산 퍼즐에 대한 해답을 해결 및/또는 검증할 수 있다고 지시하는 레코드를 저장한다.
ETPs는 예를 들어 특별 ETP 레코드, TXT 레코드 또는 TXT 레코드의 집합과 같은 DNS 레코드에 포함될 수 있다. TXT 레코드 또는 TXT 레코드의 집합은 텍스트 데이터나 예를 들어 XML 명령어와 같이 텍스트 폼으로 인코딩된 다른 데이터를 포함할 수 있다. ETP를 인식하는 레코드는 도메인용 전자 메일 정책을 지시하는 DNS 레코드 집합에 포함될 수 있다. ETPs는 전자 메시지 정책과 관련된 증명을 나타내는 현존 인가 프레임워크 및 기술에 포함될 수 있다. 예를 들어, ETPs는 DNS 레코드에 저장되는 X.509 인증서, XrML(eXtensible rights Marksup Language) 라이센스, 또는 케르베로스(Kerberos) PACS에 포함될 수 있다.
ETP는 도메인에 바인딩된 참조 텍스트를 포함할 수 있고, 상호 신뢰된 소스에 의하여 발행된다. 예를 들어 발행된 X.509 인증서는 도메인과 매칭되는 라우팅 주소(routing adress)를 포함한다. 이것은 DNS로부터 정책을 검색하는 데 있어서 도메인으로 상태 정책의 일정 바인딩을 제공한다.
연산 퍼즐은 예를 들어 특별 퍼즐 지원 레코드, TXT 레코드, 또는 TXT 레코드의 집합과 같은 DNS 레코드에 포함될 수 있다. TXT 레코드, 또는 TXT 레코드의 집합은 텍스트 데이터나 예를 들어 XML 명령어와 같이 텍스트 폼으로 인코딩된 다른 데이터를 포함할 수 있다. 연산 퍼즐용 지원을 지시하는 레코드는 도메인용 전자 메일 정책을 지시하는 DNS 레코드 집합에 포함될 수 있다.
또한 네트워크(501)는 네트워크 아키텍쳐(500)에서 설명된다. 도메인(506, 507) 및 네임 서버(508)는 각각 대응하는 링크(592, 593, 594)에 의하여 네트워크(501)에 연결된다. 네트워크(501) 및 링크(592, 593, 594)는 시스템 버스의 일부, LAN의 일부, WAN의 일부 및/또는 인터넷의 일부까지 포함할 수 있다. 네트워크 아키텍쳐(500)에 설명된 도메인 및 컴퓨터 시스템은 예를 들어 전자 메일 메시지, DNS 문의 및 설명된 링크에 대한 (리소스 레코드를 포함하는) DNS 응답을 교환할 수 있다. 양방향 화살표(586)에 의하여 도시된 것처럼, 네임 서버(508)는 또한 재귀적 문의의 목적으로 다른 네임 서버(585)와 통신할 수 있다. 유사하게, 네트워크 아키텍쳐(500)에서의 컴퓨터 시스템은, 아키텍쳐(500)에서의 다른 컴퓨터 시스템 네트워크를 다른 네임 서버(585)에 연결하는 링크는 명시적으로 설명되지 않았지만, 재귀적 문의의 목적으로 다른 네임 서버(585)를 직접적으로 문의할 수 있다.
도메인(507) 내에서, 메일 클라이언트(541, 542, 543)는 각각의 대응하는 링크(596, 597, 598)에 의하여 메시징 서버(517)에 연결된다. 각각의 메일 클라이언트(541, 542, 543)는 예를 들어 전자 메일 클라이언트 소프트웨어 내에 포함된 대응 전자 메시징 인터페이스 모듈(도시되지 않음)을 포함할 수 있다. 전자 메시징 인터페이스 모듈은 메일 클라이언트 중 하나의 사용자가 전자 메시지에 액세스하고 이를 볼 수 있는 메카니즘을 제공한다. 사용자(예를 들어 제인 스미스)는 전자 메시지가 사용자의 사용을 위해 인가되거나 사용자에 할당된 전자 메시징 어드레스(예를 들어 jsmith@test12.net)를 송신한 것을 볼 수 있다.
도 6은 본 발명에 따라 송신 도메인의 전자 메시지 전송 정책을 결정하기 위한 방법(600)의 예시적 흐름도를 도시한다. 전자 메시지를 송신하는 도메인은 하나 이상의 ETPs을 준수할 수 있다. 특정 ETPs를 도메인이 준수하는 것은 도메인이 불필요하거나 요청되지 않은 전자 메시지를 송신(또는 다른 도메인이 송신하는 것을 허락)할 가능성이 감소하는 것을 나타낼 수 있다. 반면에, 도메인이 특정 ETPs을 준수하지 않는 것은 도메인이 불필요하거나 요청되지 않은 전자 메시지를 송신(또는 다른 도메인이 송신하는 것을 허락)할 가능성이 증가하는 것을 나타낼 수 있 다. 어떤 실시예에서, 실제 송신 네트워크 주소가 (예를 들어 방법(200)에 따라) 도용되는 것을 결정하고, (예를 들어 방법(400)에 따라) 송신 도메인이 위장되고 있지 않는다는 것을 결정한 후 도메인의 ETPs를 인식하는 것이 적절할 수 있다.
네트워크 아키텍쳐(500)에 나타난 컴포넌트와 관련하여 방법(600)을 논의할 수 있다. 방법(600)은 송신 도메인으로부터 전자 메시지를 수신하는 동작을 포함한다(동작 601). 동작(601)은 송신 도메인으로부터 전자 메시지(예를 들어 전자 메일 메시지)를 수신하는 수신 컴퓨터 시스템을 포함할 수 있다. 예를 들어, 메시징 서버(517)는 메시징 서버(516)로부터 전자 메시지(575; 예를 들어 전자 메일 메시지)를 수신할 수 있다. 전자 메시지(575)는 선택적으로 도메인(506)에 의하여 준수되는 ETPs를 나타내는 ETP 인증서(576)를 포함할 수 있다.
방법(600)은 (예를 일정한 사전 정의 표준에 포함된 것과 같은) 송신측 도메인에 의하여 준수되는 관련 전자 메시지 전송 정책을 인식하기 위한 기능적 결과 지향 단계를 포함한다(단계 605). 단계(605)는 송신측 도메인에 의하여 준수되는 전자 메시지 전송 정책을 인식하기 위한 임의의 대응 동작을 포함할 수 있다. 그러나, 도 6에 도시된 방법에서, 단계(605)는 송신측 도메인에 대응하는 하나 이상의 전자 메시지 전송 정책을 수신하는 대응 동작을 포함할 수 있다(동작 602).
동작(602)은 송신측 도메인에 대응하는 하나 이상의 전자 메시지 전송 정책을 수신하는 수신 컴퓨터 시스템을 포함할 수 있다. 예를 들어, 메시징 서버(517)는 ETP 인증서(576)를 포함하는 전자 메시지(575)를 포함할 수 있다. ETP 인증서(576)는 도메인(506)에 의하여 준수되는 ETP들을 지시하는 하나 이상의 X.509 인증서일 수 있다.
어떤 실시예에서, 보안 다목적 인터넷 메일 확장(S/MIME; Secure Multipurpose Internet Mail Extensions) 전자 메시지(앞으로 ETP S/MIME 메시지라고 함)는 합리적 전자 메시징 행위의 정책을 전달하려는 의도로 서명된다. ETP S/MIME 메시지는 S/MIMEv3-컴피언트(compiant) 전자 메시지일 수 있다. ETP S/MIME 메시지는 멀티파트/서명 포맷일 수 있고 두 MIME 파트를 포함할 수 있다. 제1 MIME 파트는 사인될 전자 메시지(예를 들어 메시지의 완전 텍스트 표현)의 일부를 포함할 수 있다. 제2 MIME 부분은 제1 MIME 부분의 분리된 서명을 포함할 수 있다. 분리된 서명은 ETP 인증서의 지원 하에서 생성될 수 있다. ETP S/MIME 메시지는 비 서명 인식 메시징 시스템(non-signature-aware messaging system)에 서명된 메일의 증가된 역방향 호환성을 제공하는 완전 헤더 내장 모드(entirely-in-headers mode)에서 구현될 수 있다.
전자 메시지 수신자는 ETP 합의를 위반하는 엔티티를 인식할 수 있다. 따라서, 전자 메시지 수신자는 ETP S/MIME 메시지에서의 인증서가 취소되었는지 여부를 결정하려고 시도할 수 있다. 전자 메시지 수신자가 인증서가 취소되었는지 여부를 결정하려고 시도하는 최소한 네가지 방법이 존재한다. 일 실시예에서, 전자 메시지 수신자는 인증서가 취소되었는지 여부를 질문하기 위하여, 인증서 발행자에 문의한다. 또 다른 실시예에서, 전자 메시지 수신자는 신뢰되는 인증서 발행자에 의하여 주기적으로 업데이트된 취소된 인증서의 리스트를 관리한다. ETP S/MIME 메시지가 수신될 때, 전자 메시지 수신자는 리스트를 검사하여 포함된 인증서가 취소 되었는지 여부를 결정한다. 또 다른 실시예에서, 전자 메시지 수신자는 현재 신뢰된 인증서의 리스트를 관리한다. ETP S/MIME 메시지가 수신될 때, 전자 메시지 수신자는 리스트를 검사하여 포함된 인증서가 신뢰되는지 여부를 결정할 수 있다.
또 다른 실시예에서, 신규성의 증거는 포함된 인증서에 따른 ETP S/MIME 메시지에 포함된다. 예를 들어, ETP S/MIME 메시지는 일정 (가능한 최근의) 시간 프레임(예를 들어 1분 또는 15분) 동안 인증서가 여전히 유효하다는 것을 지시하는 발행자로부터의 인증서를 포함할 수 있다. 만약 전자 메시지 수신자가 시간 프레임또는 매우 길지 않은 시간 동안 ETP S/MIME 메시지를 수신한다면, 인증서는 신규하다고 판단된다. 반면에, 만약 전자 메시지 수신자가 타임 프레임 후 일정한 현저한 양의 시간 동안 ETP S/MIME 메시지를 수신한다면, 전자 메시지 수신자는 다른 메카니즘 중 하나에 의지하게 되는데, 예를 들어 인증서 발행자에게 문의하여 인증서가 취소되었는지 알게 된다.
ETP S/MIME 메시지에서 신규성의 증거를 포함함으로써 전자 메시지 수신자에 대하여 큰 효율상의 장점을 얻을 수 있다. 예를 들어, ETP S/MIME에서의 신규성의 증거를 포함하는 것은 전자 메일 수신자가 초기화하는 문의의 수를 현저하게 감소시킬 수 있다. ETP S/MIME 메시지에서의 신규성의 증거를 포함하는 것은 또한 (만약 존재한다면) 전자 메시지 송신자에 대한 임팩트(impact)를 제한한다. 예를 들어, 전자 메시지 송신은 임의의 수의 전자 메시지에 포함될 수 있는 새로운 신규성의 증거를 가끔씩만(예를 들어, 매 15분마다) 요청하도록 설정될 수 있다. 따라서 인증서 발행자에 대한 문의의 수는 큰 비율로 감소한다.
메시징 서버(517)는 또한 송신측 도메인에 대응하는 ETPs용 네임 서버의 문의를 유발할 수 있다. 예를 들어, 메시징 서버(517)는 도메인(507)이 ETP 문의(586)을 포함하는 네임 서버 메시지(585)를 발행하도록 할 수 있다. 네임 서버 메시지(585)는 도메인(506)을 인식하는 식별자를 포함할 수 있다.
네임 서버(508)는 따라서 네임 서비스 메시지(585)를 수신하고 ETP 문의(586)을 처리할 수 있다. 네임 서버(508)에서, 엔트리(576)는 도메인(506)에 대응하는 DNS 엔트리일 수 있다. 엔트리(576)는 인증서 레코드(556)를 포함하는, 도메인(305)을 위한 하나 이상의 레코드(예를 들어, 특별 ETP 레코드 및/또는 TXT 레코드)를 포함할 수 있다. TXT 레코드 또는 TXT 레코드의 집합은 XML 명령어를 포함할 수 있다. 인증서 레코드(556)는 도메인(506)에 의해 준수되는 ETPs를 지시하는 하나 이상의 ETP 인증서(예를 들어, X.509 인증서)를 포함할 수 있다.
도메인(506)은 ETPs을 준수하지 않도록 설정될 수 있다. 따라서, 엔트리(576)는 도메인(506)이 ETPs을 준수하지 않음을 지시하는 전자 메시징 구성 정보를 포함할 수 있다. 따라서, 인증서 레코드(556)는 어느 인증서도 포함하지 않을 수 있고, 또는 인증서(556)는 엔트리(576)에 조차 포함되지 않을 수 있다. 도메인(506)이 ETPs을 준수하지 않을 때, 네임 서버 응답(514)은 도메인(506)이 ETPs을 준수하지 않음을 지시하도록 설정될 수 있다. 따라서, 네임 서버 메시지(585)를 수신하는데 대응하여, 네임 서버(508)는 도메인(506)이 ETPs를 지원하지 않는다는 지시를 포함하는 네임 서버 응답(513)을 송신할 수 있다.
반면에, 도메인(506)은 하나 이상의 ETPs을 준수하도록 설정될 수 있다. 따 라서, 인증서 레코드(556)는 하나 이상의 ETPs를 포함하는 인증서로 설정될 수 있다. 따라서, 네임 서버 메시지(585)에 대응하여, 네임 서버(508)는 도메인(507)로의 ETP 인증서(514)를 포함하는 네임 서버 응답(513)을 송신할 수 있다. 도메인(507)은 네임 서버 응답(513)을 수신하고 네임 서버 응답(513)을 메시징 서버(517)로 전송할 수 있다.
단계(605)는 하나 이상의 수신된 전자 메시지 전송 정책으로부터의 관련 전송 메시지 전송 정책을 파싱하는 대응 동작을 포함한다(동작 603). 동작(603)은 하나 이상의 수신된 전자 메시지 전송 정책으로부터의 관련 전송 메시지 전송 정책을 파싱하는 수신 컴퓨터 시스템을 포함한다. 예를 들어, 메시징 서버(517)는 ETP 인증서(576) 및/또는 ETP 인증서(514)로부터 도메인(506)용 ETPs를 파싱할 수 있다. 일정 ETPs는 합리적 메시징 전송 행동이 무엇인지 나타내는 다수의 조직에 의하여 합의될 수 있다.
정책은 조직의 특정 그룹을 위하여 적절한 행동에 기반하여 개발될 수 있다. 그러나 어떤 정책 집합도 모든 메시징 사용자에 의하여 준수되어야 할 필요는 없다. 하지만, 예를 들어 비교적 낮은 비율로 전자 메시지를 송신하고/하거나 전자 메시지를 다수의 주소로 송신하는 것을 억제하는 것과 같은, 일정 정책을 도메인이 준수하는 것은, 도메인으로부터의 전자 메시지가 불필요하거나 요청되지 않을 가능성을 감소시키도록 지시할 수 있다. 반면에, 상기 정책의 비준수는 도메인으로부터의 전자 메시지가 불필요하거나 요청되지 않을 가능성을 증가시키도록 지시할 수 있다.
방법(600)은 관련 전자 메시지 전송 정책을 메시지 분류 모듈로 제공하는 동작을 포함한다(동작 604). 동작(604)은 관련 전자 메시지 전송 정책을 메시지 분류 모듈에 제공하는 수신 컴퓨터 시스템을 포함한다. 예를 들어, 메시징 서버(517)는 도메인(506)용 관련 ETPS를 메시지 분류 모듈(529)에 제공할 수 있다. (혼자 또는 다른 제공된 입력과 조합된) 관련 ETPS에 기초하여, 메시지 분류 모듈(529)은 정당한 전자 메시지 또는 불필요하거나 요청되지 않은 전자 메시지로 전자 메시지(575)를 분류할 수 있다. 선택적으로, 적절한 때에 메시징 서버(517)는 도메인(106)용 관련 ETPS를 메시지 분류 모듈(553)로 제공할 수 있다. (혼자 또는 다른 제공된 입력과 조합된) 관련 ETPS에 기초하여, 메시지 분류 모듈(553)은 전자 메시지(575)를 정당한 전자 메시지 또는 불필요하거나 요청되지 않은 전자 메시지로 분류할 수 있다.
도 7은 본 발명에 따라 연산 퍼즐에 대한 검증을 위한 방법(700)의 예시적 흐름도를 도시한다. 연산 퍼즐의 완료는 송신 컴퓨터 시스템이 전자메시지를 송신하기 전에 다수의 프로세서 사이클을 소비한다는 것을 지시할 수 있다. 소비된 프로세서 사이클의 지시 제공은 송신 컴퓨터 시스템이 비교적 높은 비율로 전자 메시지를 송신하지 않고 있다는 증거 및 소비된 재정적인 리소스의 증거이다. 따라서, 송신 컴퓨터 시스템으로부터의 전자 메시지는 잠재적으로 불필요하거나 요청되지 않을 가능성이 감소한다.
방법(700)은 컴퓨터 시스템 및 네트워크 아키텍쳐(500)에서 설명된 모듈에 관하여 설명한다. 방법(700)은 전자 메시지에 포함되는 전자 메시지 데이터를 수 신하는 동작을 포함한다(동작 701). 동작(701)은 송신 메시징 서버 또는 전자 메시지(전자 메일 메시지)에 포함된 전자 메시지 데이터를 수신하는 송신 메시징 클라이언트를 포함할 수 있다. 메시지 데이터는 전자 메시지의 헤더 또는 바디 부분에 포함된 임의의 데이터를 포함할 수 있다. 예를 들어, 메시징 서버(516)에 연결된 메시징 클라이언트는 전자 메시지(545)의 헤더 및/또는 바디에 포함된 메시지 데이터(예를 들어, 전자 주소, 서브젝트, 메시지 바디 등)를 수신할 수 있다. 메시징 서버(516)에서, 전자 메시지 데이터는 배달되는 전자 메시지(예를 들어, 전자 메시지(545))에 이미 포함될 수 있다. 따라서, 메시지 서버(516)는 대응 전자 메시지가 배달되기 전에 프로세싱용 전자 메시지 데이터의 일부(예를 들어, 메시지 데이터(546)의 일부)를 추출할 수 있다.
연산 퍼즐에 대한 해답을 연산하기 전에, 수신측 도메인은 연산 퍼즐에 대하나 해답을 검증하도록 설정된다고 검증될 수 있다. 예를 들어 수신 메시징 서버와 같은 수신 컴퓨터 시스템은 네임 엔트리에 연산 퍼즐에 대한 해답을 검증하도록 설정된다고 공지할 수 있다. 예를 들어, 엔트리(577)는 도메인(507)용 네임 정보를 저장할 수 있다. 포함된 엔트리(577)는 도메인(507)이 연산 퍼즐에 대한 해답을 검증하도록 설정된다고 지시하는 해답 검증 지원 레코드(537)이다. 해답 검증 지원 레코드(537)는 예를 들어 특별 퍼즐 지원 레코드, TXT 레코드 또는 TXT 레코드의 집합과 같은 DNS 레코드일 수 있다. TXT 레코드 또는 TXT 레코드의 집합은 텍스트 데이터 또는 예를 들어 XML 명령어와 같은 텍스트 형식으로 인코딩된 다른 데이터를 포함한다.
따라서, 메시징 서버(516)는 네임 서버 컴퓨터 시스템(508)에 문의하여(예를 들어 적절한 DNS 문의 메시지를 송신함으로써), 도메인(507)이 연산 퍼즐에 대한 해답을 검증할 수 있는지를 결정할 수 있다. 문의에 대응하여, 네임 서버(508)는 도메인(506)에서 수신된 지시 포함 해답 검증 지원 레코드(537)를 리턴할 수 있다(예를 들어 적절한 DNS 응답 메시지를 송신함으로써). 도메인(506)은 적절하게 수신된 지시를 메시징 서버(516)로 전송할 수 있다.
방법(700)은 상태 정보의 다른 부분으로부터 초기 문서를 생성하는 동작을 포함한다(동작 702). 동작(702)은 다른 부분의 상태 정보로부터 초기 문서를 생성하는 송신 컴퓨터 시스템을 포함할 수 있다. 예를 들어, 메시징 서버(516)는 메시지 데이터(546)의 다른 부분으로부터 초기 문서를 생성할 수 있다. 일정 실시예에서, 메시지 데이터의 다른 부분으로부터 초기 문서를 생성하는 것은 전자 메시지로부터 메시지 데이터의 다른 부분을 추출하는 것을 포함할 수 있다. 송신 메시징 서버는 수신 메시징 서버로 전송되는 (예를 들어, 메시징 클라이언트로부터의) 전자 메시지를 수신할 수 있다. 예를 들어, 메시징 서버(516)는 메시지 데이터(546)를 포함하고, 메시징 서버(517)로 전송되는 전자 메시지를 수신할 수 있다.
메시징 서버(516)는 전자 메시지(545)에 포함되는 메시지 데이터(546)의 일부를 추출할 수 있다. 예를 들어 메시징 서버(516)는 전자 메시지(545)의 From 필드, To 필드, NotBefore 필드, NotAfter 필드, Date 필드, Body 필드, Attachment 필드, Subject 필드 및/또는 Message-ID 필드 등에 포함되는 데이터의 일부를 추출할 수 있다. 데이터의 일부를 추출하는 것은 전자 메시지에 포함될 수 있는 텍스 트 데이터, 그래픽 데이터, URI(Uniform Resource Identifier) 데이터, 실행 가능 데이터 등과 같은 임의 형식의 데이터를 실제로 추출하는 것을 포함한다. 그러면 메시징 서버(516)는 초기 문서를 생성하기 위하여 추출된 부분을 연관시킬 수 있다.
초기 문서는 또한 예를 들어, 메시지 유일 넌스(message unique nonce; 예를 들어, 무작위로 생성된 숫자 또는 스트링)와 같은 상태 정보로부터 생성될 수 있다. 예를 들어, 메시징 서버(516)는 전자 메시지(545)에 포함되는 128 비트의 유일 무작위 스트링을 생성할 수 있다. 넌스는 초기 문서를 생성하기 위하여 메시지 데이터의 하나 이상의 부분과 연관될 수 있다.
방법(700)은 전자 메시지의 하나 이상의 컴포넌트로부터 퍼즐 입력을 생성하는 동작을 포함한다(동작 703). 동작(703)은 전자 메시지의 하나 이상의 컴포넌트로부터 퍼즐 입력을 생성하는 송신 컴퓨터 시스템을 포함할 수 있다. 예를 들어 퍼즐 연산 모듈(528)은 전자 메시지(545)의 하나 이상의 컴포넌트로부터의 퍼즐 입력을 생성할 수 있다. 퍼즐 입력을 생성하는 것은 추출, 해싱, 연관 또는 전자 메시지의 컴포넌트에 다른 연산을 수행하는 것을 포함한다.
일정 실시예에서, 퍼즐 입력은 초기 문서이다. 다른 실시예에서, 퍼즐 입력은 초기 문서를 초기 해시 알고리즘에 입력으로 제공함으로써 연산되는 퍼즐 입력 해시 값일 수 있다. 초기 해시 알고리즘은 보다 통일적인 퍼즐 해결 시간이 되는 통일적 길이의 입력을 생성하기 위하여 사용될 수 있다. 초기 해시 알고리즘은 응답 문서를 연산할 때 사용되는 퍼즐 해시 알고리즘일 수 있다.
퍼즐 해시 알고리즘은 불필요하거나 요청되지 않은 전자 메시지를 방지하는데 사용하도록 상세하게 설계될 수 있다. 예를 들어 SHA-1 알고리즘과 같은 해시 알고리즘은 해시 값 생성 동안 다른 시간에 다른 대응 입력의 일부에 적용되는 복수의 서브 함수를 포함할 수 있다. 본 발명의 실시예는 서브 함수 및 입력 부분 간에서 표준 통신을 변화시킴으로써 해싱 알고리즘의 표준 연산을 변경시킨다. 동일한 서브 함수가 사용될 수 있지만, 서브 함수는 표준 연산 동안 적용되었을 데이터의 다른 부분에 적용된다. 예를 들어, 퍼즐 해시 알고리즘은 SHA-1 알고리즘의 해싱 서브 함수를 사용할 수 있지만, SHA-1 알고리즘과 다른 순서로 서브 함수를 적용한다. 서브 함수를 다른 순서로 적용하는 것은 퍼즐 해시 알고리즘을 하드웨어에 구현하는 것을 더 어렵게 만든다.
예를 들어, SHA-1은 다음 공식에 따라 80개의 서브 함수를 특정한다.
Figure 112004010113969-pat00001
변경된 SHA-1 알고리즘은 다음 공식에 따라 80개의 서브 함수를 특정한다.
Figure 112004010113969-pat00002
표 1은 대응하는 변경된 SHA-1 해시 출력에 따른 텍스트 데이터의 예시를 도시한다.
표 1
Figure 112004010113969-pat00003
Figure 112004010113969-pat00004
방법(700)은 응답 문서의 조합으로부터 응답 해시 값이 연산되고 퍼즐 입력이 연산 퍼즐용 입력값이 되도록 응답 문서를 인식하는 동작을 포함한다(동작 704). 동작(704)은 응답 문서 및 퍼즐 입력의 조합으로부터 연산된 응답 해시 값이 연산 퍼즐용 응답 값이 되도록 응답 문서를 인식하는 송신 컴퓨터 시스템을 포함한다. 예를 들어, 퍼즐 연산 모듈(528)은 연산 퍼즐용 응답인 응답 해시 값이 되는 응답 문서를 인식할 수 있다.
일 실시예에서, 연산 퍼즐은 퍼즐 입력 과 조합된 때의 응답 문서(예를 들어 초기 문서 또는 퍼즐 입력 해시 값)를 인식하고, 그러면 응답 문서 및 퍼즐 입력의 조합이 해싱되고(예를 들어 변경된 SHA-1 알고리즘을 사용하여), 복수의 비트 포지션(예를 들어, 결과 해시 값을 통하여 산재된 비트 포지션)에 특정 값을 갖는 해시 값이 된다. 예를 들어 연산 퍼즐은 제2 비트 포지션에서 1 값을 갖고 제13 및 제54 비트 포지션에서 0값을 갖는 해시 값이 되는 응답 문서를 인식할 수 있다. 그러나, 본 발명의 실시예는 임의의 특정 복수 비트 포지션 또는 특정된 값에 제한되지 않는다.
보다 구체적인 구현에서, 연산 퍼즐은 퍼즐 입력에 첨가될 때의 응답 문서를 인식하고, 응답 문서 및 퍼즐 입력의 연관이 해싱되고, 적어도 (정렬된 각각의 바이트 내에서 MSB를 최초로 취하는) 최초 n비트에 0을 갖는 해시 값이 된다. 예를 들어, 연산 퍼즐은 최초 16비트에서 0 값을 갖는 해시 값이 되는 응답 문서를 인식할 수 있다. 일반적으로, 응답 문서를 인식하는 것은 H(응답 문서° 퍼즐 입력)를 형성하는 것을 포함할 수 있다. 더 구체적으로는, 응답 문서를 인식하는 것은 H(응답 문서° 초기 문서) 또는 H(응답 문서° H(초기 문서))를 형성하는 것을 포함한다. 충분히 크도록 고려한 일정한 n에 대하여, 폭력(brute force) 아닌 다른 수단은 응답 문서를 인식하기에 충분하지 않을 수 있다.
연산 퍼즐을 해결하기 위하여 소비된 시간의 분산을 감소시키기 위하여, 최초의 복수의 비트 포지션("집합 A") 및 집합 A에서의 각각의 비트에 대한 특정된 값이 선택된다. 서로 소인 제2 복수의 비트 포지션("집합 B")이 또한 선택된다. 퍼즐 응답은 특정 크기의 복수의 응답 문서("집합 S")이고, 여기에서 각각의 응답 문서가, 퍼즐 입력과 연관되고 해싱될 때, 집합 A에서의 각각의 비트 포지션에서 특정된 값을 갖고, 집합 B의 각각의 비트 포지션에서 각각의 다른 응답 문서용 대응 해시 값과 일치한다.
분산 감소의 보다 구체적 구현에서, 집합 A는 결과 해시 값의 프리픽스(prefix)이고, 집합 B는 결과 해시 값의 서픽스(suffix)이다. 따라서, 연산 퍼즐은, 각각의 응답 문서가 퍼즐 입력에 추가되는 때, 각각의 응답 문서 및 퍼즐 입력의 연관이 해싱되고, 적어도 최초 n 비트(집합 A)에서 0을 갖고 동일한 최종 m 비트(집합 B)를 갖는 해시 값이 되도록, 집합 S를 인식한다. 예를 들어, 연산 퍼즐은 최초 24비트에서 0을 갖고 최종 12 비트에서 동일한 값(0 또는 1)을 갖는 해시 값이 되는 16개의 응답 문서를 인식한다. 선택적으로, 최초 24 비트 및/또는 최종 12 비트는 0 및 1값을 산재시키는 특정되 비트 패턴일 수 있다.
연산 퍼즐을 해결하는데 소비되는 시간은 집합 A, 집합 B 및/또는 집합 S를 변경함으로써 설정될 수 있다. 집합 A의 크기는 적절한 기대 해결 시간을 획득하기 위하여 변경될 수 있다. 집합 B의 크기 및 집합 S의 크기는 적절한 해답 분산을 획득하기 위하여 변경될 수 있다. 더 긴 해답 시간을 갖도록 연산 문제를 설정하는 것은 해답을 인식하는데 소비되는 컴퓨터 리소스에 그에 대응하는 증가를 초래한다. 반면에, 연산 문제가 더 짧은 해답 시간을 갖도록 설정하는 것은 해답을 인식하는데 소비되는 컴퓨터 리소스에 대응하는 감소를 초래한다. 메시징 서버(예를 들어 메시징 서버(516, 517))는 특정 해답 시간에 일치하거나 특정 해답 시간을 인식하기 위하여 대응 리소스 레코드를 문의할 수 있다. 예를 들어, 메시징 서버(516)는 엔트리(577)에 문의하여 도메인(507)용 특정 해답 시간을 인식할 수 있다.
일정 실시예에서, 단방향 퍼즐 해시 함수가 사용된다. 단방향 퍼즐 해시 함수는 불필요하거나 요청되지 않은 전자 메시지를 방지하도록 상세하게 설계될 수 있다. 단방향 퍼즐 해시 함수는 의도적인 또는 하드웨어 가속을 금지하는, 알려진 단방향 해시의 변경일 수 있다. 더 구체적으로, 단방향 퍼즐 해시 함수는, 나눗셈 연산이 하드웨어로 가속하기에 어려우므로, 현저한 수의 나눗셈 연산을 포함할 수 있다.
송신 컴퓨터 시스템은 전자 메시지에서의 전자 메시지 데이터에 따른 인식된 응답 문서(또는 응답 문서들)를 포함할 수 있다. 예를 들어, 메시징 서버(516)는 전자 메시지(545; 예를 들어 전자 메일 메시지)에서의 메시지 데이터(546)에 따른 응답 문서(547)를 포함할 수 있다. 방법(700)은 인식된 응답 문서 및 수신측 도메인에 대한 전자 메시지 데이터를 포함하는 전자 메시지를 송신하는 동작을 포함한다(동작 705). 동작(705)은 인식된 응답 문서(또는 응답 문서들) 및 수신측 도메인에 대한 전자 메시지 데이터를 포함하는 전자 메시지를 송신하는 송신 컴퓨터 시스템을 포함한다. 예를 들어, 메시징 서버(516)는 전자 메시지(545)를 송신하고, 이 메시지는 도메인(507)으로의 응답 문서(547) 및 메시지 데이터(546)를 포함한다. 도메인(507)은 전자 메시지(545)를 메시징 서버(517)로 전송할 수 있다. 전자 메시지(545)가 단일 응답 문서(응답 문서(547))를 포함한다고 설명되고 있지만, 전자 메시지(545)는 하나 이상의 추가적 응답 문서를 포함할 수 있다.
방법(700)은 전자 메시지 데이터 및 응답 문서를 포함하는 전자 메시지를 수신하는 동작을 포함한다(동작 706). 동작(706)은 전자 메시지 데이터 및 응답 문서(또는 응답 문서들)를 포함하는 전자 메시지를 수신하는 수신 컴퓨터 시스템을 포함할 수 있다. 예를 들어, 메시징 서버(517)는 전자 메시지(545)를 수신할 수 있고, 이 메시지는 응답 문서(547) 및 메시지 데이터(546)를 포함한다. 전자 메시지가 특정 메시지 클라이언트로 배달될 때, 메시징 서버는 전자 메시지를 메시징 클라이언트로 전달한다. 예를 들어, 적당한 때 메시징 서버(517)는 전자 메시지(545)를 메시징 클라이언트(542)로 전송한다. 메시징 클라이언트(542)는 전자 메시지(545)를 수신할 수 있다.
방법(700)은 상태 정보의 다른 부분으로부터 초기 문서를 재생성하는 동작을 포함한다(동작 707). 동작(707)은 상태 정보의 다른 부분으로부터 초기 문서를 재생성하는 수신 컴퓨터 시스템을 포함할 수 있다. 예를 들어, 응답 검증 모듈(527) 및/또는 응답 검증 모듈(552)은 메시지 데이터(546)의 일부 또는 전자 메시지(454)에 포함된 다른 상태 정보(예를 들어, 넌스)로부터 초기 문서를 재생성할 수 있다. 초기 문서의 연산과 유사하게, 응답 검증 모듈(527) 및/또는 응답 검증 모듈(552)은 메시지 데이터(546)의 일부 또는 초기 문서를 재생성하는 다른 상태 정보를 추출하고 연관시킬 수 있다.
방법(700)은 전자 메시지의 하나 이상의 컴포넌트로부터의 퍼즐 입력을 재연산하는 동작을 포함한다(동작 708). 퍼즐 입력은 초기 문서 또는 송신 컴퓨터 시스템에서 사용되는 동일한 퍼즐 해시 알고리즘(예를 들어, 변경된 SHA-1 알고리즘) 을 사용하여 연산된 퍼즐 입력 해시 값으로 재연산될 수 잇다. 예를 들어, 응답 검증 모듈(527) 및/또는 응답 검증 모듈(552)은 재생성된 초기 문서로부터의 퍼즐 입력 해시 값을 재연산하도록 퍼즐 연산 모듈(528)에 의하여 사용된 동일한 퍼즐 해시 알고리즘을 사용할 수 있다. 따라서, 송신 컴퓨터 시스템에서 연산된 퍼즐 입력은 수신 컴퓨터 시스템에서 재연산될 수 있다.
방법(700)은 응답 문서 및 퍼즐 입력의 조합으로부터 연산된 검증 해시 값이 연산 퍼즐에 대한 해답을 지시하는 응답 값인지 여부를 결정하는 동작을 포함한다(동작 709). 동작(709)은 응답 문서 및 퍼즐 입력의 조합으로부터 연산된 검증 해시 값이 연산 퍼즐에 대한 해답을 지시하는 응답 값인지 여부를 결정하는 수신 컴퓨터 시스템을 포함할 수 있다. 예를 들어, 응답 검증 모듈(527) 및/또는 응답 검증 모듈(552)은 검증 해시 값이 해답을 지시하는지를 결정하기 위하여 일반 공식 H(응답 문서° 퍼즐 입력)를 사용할 수 있다. 검증 해시 값에 걸쳐 산재된 복수의 고정 비트 포지션(예를 들어, 최초 n비트)에서 특정된 값을 가질 때, 검증 해시 값은 해답을 지시할 수 있다.
일정 실시예에서, 복수의 검증 해시 값은 복수의 응답 문서 및 퍼즐 입력의 조합으로부터 연산된다. 상기 실시예에서, 검증 해시 값이 최초 복수의 비트 포지션(예를 들어, 해시 값 프리픽스)에 특정된 값을 갖고 제2 복수의 비트 포지션(예를 들어, 해시 값 서픽스)에서의 다른 응답 문서로부터 발생한 다른 검증 해시 값과 동일한 값을 가질 때, 검증 해시 값은 해답을 지시할 수 있다.
검증 해시 값이 연산 문제에 대한 해답일 때, 소비된 연산 리소스는 적어도 측정될 수 있다. 말하자면, 연산 퍼즐에 대한 검증 가능한 해답은 연산 퍼즐을 해결하기 위하여 송신 컴퓨터 시스템이 폭력적 접근으로 프로세서 사이클 및 메모리 리소스를 소비하는 수신 컴퓨터 시스템을 지시할 수 있다. 예를 들어, 검증 해시 값이 메시지 데이터(546)에 기초한 연산 퍼즐에 대한 해답일 때, 이것은 응답 검증 모듈(527) 및/또는 메시지 서버(516)가 프로세서 사이클을 소비하는 응답 검증 모듈(552)을 지시한다. 반면에, 검증 해시 값이 연산 문제에 대한 해답이 아닌 때, 이것은 송신 컴퓨터 시스템은 연산 퍼즐을 해결하기 위하여, 잠재적으로 프로세서 사이클을 폭력적 접근법으로 소비하지 않는다는 것을 가리킨다. 예를 들어, 검증 해시 값이 메시지 데이터(546)에 기초한 연산 퍼즐에 대한 해답이 아닌 경우, 이것은 메시지 서버(516)가 잠재적으로 프로세서 사이클을 소비하지 않는 응답 검증 모듈(527) 및/또는 응답 검증 모듈(552)을 가리킨다.
방법(700)은 결정 결과를 메시지 분류 모듈에 제공하는 동작을 포함한다(동작 710). 동작(710)은 결정 결과를 메시지 분류 모듈에 제공하는 수신 컴퓨터 시스템을 포함할 수 있다. 예를 들어, 메시징 서버(517)는 (메시징 서버(516)가 프로세서 사이클을 소비했는지 아닌지를 지시하는) 메시징 서버(516)에 관한 결정 결과를 메시지 분류 모듈(529)에 제공할 수 있다. 메시징 서버(516)가 연산 리소스를 (단일하게 또는 다른 제공된 입력과 조합하여) 소비했다고 지시하는 결정을 제공하는데 기초하여, 메시지 분류 모듈(529)은 전자 메시지(545)를 정당한 것으로 분류할 수 있다. 반면에, 메시징 서버(516)가 잠재적으로 컴퓨터 리소스를 (단일하게 또는 다른 제공된 입력과 조합하여) 소비했다고 지시하는 결정을 제공하는데 기초하여, 메시지 분류 모듈(529)은 전자 메시지(545)를 불필요하거나 요청되지 않은 것으로 분류할 수 있다. 선택적으로, 그리고 적절한 때, 메시징 서버(517)는 메시징 서버(516)가 연산 리소스를 소비하였는지 또는 잠재적으로 소비하지 않았는지 지시하는 결과를 메시지 분류 모듈(553)에 제공할 수 있다.
본 발명의 일정 실시예에서, 도메인이 특정된 ETPS를 지원하는 지시 또는 송신 컴퓨터 시스템이 연산 퍼즐을 해결했다는 지시는 전자 메시지가 정당하다는 충분한 증거를 제공한다. 예를 들어, 송신 엔티티는 재정적인 리소스 또는 ETP 인증서를 사용하려는 소망이 부족할 수 있다. 그러나 송신 엔티티는 여전히 전자 메시지가 정당하다고 수신컴퓨터 시스템에 지시하기를 원할 수 있다. 따라서, 송신 엔티티는 송신 컴퓨터 시스템을 설정하여, 연산 퍼즐에 대한 해답을 연산할 수 있고, 전자 메시지에서의 응답 문서를 포함할 수 있다.
수신 컴퓨터 시스템은 송신 엔티티와 연관된 도메인용 ETP 인증서를 인식하려고 시도하도록 설정될 수 있다. 수신 컴퓨터 시스템은 어떠한 ETP 인증서도 인식되지 않을 때 연산 퍼즐에 대한 해답을 검증하도록 설정될 수 있다. 따라서, 수신 컴퓨터 시스템은 초기에 전자 메시지를 파싱하거나 송신 엔티티에 관련된 도메인에 대응하는 ETP 인증서용 네임 서버에 문의할 수 있다. 만약 ETP 인증서가 인식되고 ETP 인증서가 특정 ETPs용 지원을 지시하면, 특정 ETPs용 지원은 전자 메시지가 정당하다는 충분한 증거가 될 수 있다. 그러나, 만약 어떠한 ETP 인증서도 인식되지 않거나 인식된 ETP 인증서가 특정 ETPs용 지원을 지시하지 않는다면, 그 후에 수신 컴퓨터 시스템은 연산 퍼즐에 대한 포함된 해답을 검증하도록 시도할 수 있다.
스키마는 전자 메시징 정보의 의미를 제한하기 위하여 사용될 수 있다. 다음 예시 XML 스키마는 도메인에 관한 전자 메시징 정보의 의미를 제한하기 위하여 사용될 수 있다.
Figure 112004010113969-pat00005
Figure 112004010113969-pat00006
Figure 112004010113969-pat00007
Figure 112004010113969-pat00008
Figure 112004010113969-pat00009
스키마의 사용은 개발자가 전자 메시징 구성 정보를 처리하는 어플리케이션을 재설계할 필요 없이 전자 메시징 구성 정보가 구조화되는 방법을 유연하게 정의(또는 재정의)하도록 한다. TXT 레코드는 예시 XML 스키마에 의하여 제한되는 XML 명령어를 저장하도록 사용될 수 있다. XML 명령어는 동일한 DNS 레코드 집합에서 복수의 TXT 레코드를 분포시키고, DNS 레코드 집합을 수신하는 컴퓨터 시스템에서 XML 인스턴스로 어셈블링 될 수 있다. 예를 들어, 각각의 TXT 레코드는 복수의 TXT 레코드에 유일한 음아닌 정수의 4자리 10진수 표현(필요한 만큼의 선행하는 0을 가짐)을 포함하는 4개의 문자로 시작한다. 수신할 때, TXT 레코드는 10진수 숫자에 의하여 정렬된다. 최초 4문자(10진수)는 각각의 TXT 레코드로부터 제거되고 결과는 단일 인접 문자 시퀀스(XML 인스턴스)를 형성하기 위하여 함께 연관된 다.
다음은 도메인용 XML 정책 문서를 도시하는 예시 DNS 설정 파일 단락이다.
Figure 112004010113969-pat00010
예시 DNS 설정 파일 단락은 두 TXT 레코드를 포함하는데, 하나는 문자 시퀀스 "0002"를 포함하고, 다른 하나는 문자 시퀀스 "0001"를 포함한다. 문자 시퀀스는 TXT 레코드에 포함된 XML 명령어용으로 적절한 순서를 결정하기 위하여 수신 컴퓨터 시스템에서 사용된다. 그러나, 당업자에게 있어, 상기 설명을 검토한 후, 다른 정렬 메카니즘이 사용될 수 있고, DNS 설정 파일은 추가적 TXT 레코드를 포함할 수 있다는 것은 명백하다. 두 텍스트 레코드는 컴퓨터 시스템에서 (예를 들어 DNS 문의에 응답하여) 수신될 수 있고, TXT 레코드의 일부는 XML 인스턴스로 연관될 수 있다. XML 인스턴스를 복수의 TXT 레코드에 대하여 스패닝하는 것은 전자 메시징 구성 정보의 (2000 문자를 초과하는) 증가된 총량이 전달되도록 허용한다. 또한, XML 인스턴스의 다른 일부가 동일한 DNS 레코드 집합에 포함될 수 있으므로, 다른 일부는 단일 DNS 문의로 검색될 수 있다.
예시적 DNS 설정 파일 단락 또는 다른 DNS 설정 파일 단락은 DNS 서브 도메인(예를 들어, 이메일 정책 서브도메인)에 포함될 수 있다. 따라서, 전자 메시징 구성 정보(예를 들어, 예시적 DNS 설정 파일 단락의 TXT 레코드)를 포함하는 하나 이상의 TXT 레코드는 특정 DNS 서브 도메인 내에서의 모든 레코드일 수 있다. 따라서, (다른 서브도메인에서의) 현존하는 TXT 레코드의 사용과의 충돌 또는 모순이 감소할 수 있다.
다음은 예시적 DNS 설정 파일 단락의 일부를 연관시킬 수 있는 예시적 XML 인스턴스이다.
Figure 112004010113969-pat00011
예시적 XML 인스턴스는 예시적 XML 스키마에 따라 제한되는 이메일 정책 요소를 포함한다. 예시적 XML 인스턴스는 해시된 스팸(HashedSpam) 연산 퍼즐에 관한 두 인바운드 정책을 표현한다. 제1 인바운드 정책은 적어도 13개의 0 비트를 가지는 퍼즐 해답과 지속적인 45분 이하의 시간 간격 파라미터가 수락 가능하다고 지시한다. 제2 인바운드 정책은 적어도 29개의 0 비트를 갖는 퍼즐 해답과 지속적인 일주일 이하의 시간 간격 파라미터가 또한 수락 가능하다고 지시한다.
다른 XML 인스턴스 및 예시적 XML 인스턴스의 일부는 도메인 또는 전자 메시징 서버와 연관된 전자 메시징 구성 정보를 전달하기 위하여 네임 서버에서의 TXT 레코드에 포함될 수 있다. 예를 들어, 이러한 XML 인스턴스는 변경된 접속 설정 데이터, 인가된 아웃고잉 메일 서버, ETP 인증서에 대한 참조를 지원하고 연산 퍼즐을 지원한다. TXT 레코드에서 XML 인스턴스의 일부를 포함하는 것은 또한 클라이언트 및/또는 서버 DNS 소프트웨어가 업데이트되어야 할 필요 없이 새로운 형식의 전자 메시징 정보가 DNS에 추가되도록 허용한다.
네임 서버는 전자 메시징 구성 정보를 리턴할 때 시퀀스 숫자를 요구하는 프로토콜을 사용하여 명시적으로 설정될 수 있다. 따라서, 네임 서버를 위장하려는 어떠한 시도도 네임 서버에 의하여 사용된 시퀀스 숫자를 추측해야 하는 추가적인 부담을 갖게 된다. 예를 들어, 네임 서버는 UDP에 대항하여 TCP를 통해 전자 메시징 구성 정보를 리턴하도록 명시적으로 설정될 수 있다. 따라서, 네임 서버를 위장하려는 어떠한 시도도 네임 서버에 의하여 사용되는 적절한 TCP/IP 시퀀스 숫자를 추측하도록 요구될 것이다. 일정 실시예에서, 시퀀스 숫자를 요구하는 프로토콜의 사용은 리턴된 전자 메시징 구성 정보의 길이로부터 발생할 수 있다. 예를 들어, XML 인스턴스가 512 바이트 보다 클 때, TCP의 사용은 자동적으로 발생할 수 있다.
전자 메시지 송신자는 불필요하고 요청되지 않은 전자 메시지를 감소시키기 위한 복수의 메카니즘을 사용하여 설정된다. 따라서, 전자 메시지 송신자는 전자 메시지를 송신할 때, 하나, 일부 또는 전부의 설정된 메카니즘을 선택할 수 있다. 마찬가지로, 전자 메시지 수신자는 불필요하고 요청되지 않은 전자 메시지를 감소시키기 위하여 복수의 메카니즘을 사용하도록 설정될 수 있다. 따라서, 전자 메시 지 수신자는 전자 메시지를 송신할 때, 하나, 일부 또는 전부의 설정된 메카니즘을 선택할 수 있다. 그러나 전자 메시지 송신자에서 설정된 메카니즘은 전자 메시지 송신자에서 설정된 메카니즘과 다를 수 있다.
따라서, 전자 메시지 송신자 및 수신자는 불필요하고 요청되지 않은 전자 메시지용으로 상호 설정된 메카니즘에 일치할 수 있다. 따라서, 다른 설정된 메카니즘에서 발생한 결과의 조합이 메시지 분류 모듈에 제공될 수 있다. 예를 들어, 전자 메시지 수신자는 ETP의 준수 및 전자 메시지 송신자에 의한 노력의 증거 모두를 조사 할 수 있고, 메시지 분류 모듈에 두 체크의 결과 모두를 제공할 수 있다. 노력의 증거는 해시 충돌, 암호화 문제에 대한 해답, 메모리 범위 문제에 관한 해답, 역전환 테스트에 대한 해답을 제공하는 것을 포함할 수 있다. 수신 도메인은 제공된 노력의 증거를 검사하고 검사 결과를 메시지 분류 모듈에 제공할 수 있다.
상기 설명 및 후술하는 클레임에서, "스키마'는 복수의 컴퓨터 시스템이 표현되고 공유된 어휘에 따라 문서를 처리하도록 허용하는 복수의 컴퓨터 시스템 간의 공유 어휘 표현으로 정의된다. 예를 들어, XML 스키마는 XML 스키마 언어의 스키마 구조를 사용하는 XML 문서 클래스를 정의하고 설명할 수 있다. 이 스키마 구조는 의미, 사용법, 데이터 형간의 관계, 요소 및 그 내용, 속성 및 그 값, 엔티티 및 그 내용, XML 문서에서 사용되는 기호를 제한하고 문서화하기 위하여 사용될 수 있다. 따라서, XML 스키마에 액세스할 수 있는 임의의 컴퓨터 시스템은 XML 스키마에 따라 XML 문서를 처리할 수 있다. 또한, XML 스키마에 접근할 수 있는 임의의 컴퓨터 시스템은 XML 스키마에 접근할 수 있는 다른 컴퓨터 시스템에 의하여 사 용되기 위한 XML 문서를 구성하거나 수정할 수 있다.
원하는 기능에 의하여, 잠재적으로 전자 메시지에 포함된 메시지 데이터에 따라, 하나 이상의 복수의 상이한 생성 입력이 메시지 분류 모듈에 제공될 수 있다. 수신된 입력에 기초하여, 메시지 분류 모듈은 전자 메시지를 정당하다고 또는 불필요하거나 요청되지 않았다고 분류할 수 있다. 복수의 입력(전자 메시지의 전송과 연관된 다른 정보를 표시하는 각각의 입력)이 사용될 때, 메시지 분류 모듈은 보다 신뢰성 있게, 예를 들어 전자 메시지를 보다 신뢰성 있게 불필요하거나 요청되지 않은 것으로 분류하는 것처럼, 전자 메시지를 분류할 수 있다.
당업자는 본 발명이 PC, 랩탑 컴퓨터, 핸드 헬드 장치, 멀티 프로세서 시스템, 마이크로프로세서-기반 또는 프로그래머블 가전 제품(programmable consumer electronics), 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 이동 전화, PDA, 페이저 등을 포함하는 다양한 유형의 컴퓨터 시스템을 갖는 네트워크 컴퓨팅 환경에서 구현도리 수 있다는 것을 이해할 것이다. 또한, 본 발명은, 네트워크를 통하여 (하드웨어적 데이터 링크, 무선 데이터 링크 또는 하드웨어적 및 무선 데이터 링크의 조합에 의하여) 링크된 로컬 및 원격 컴퓨터 시스템이 작업을 수행하는 분산형 컴퓨팅 환경(distributed computing environment)에서도 실시될 수 있다. 분산형 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치에 위치할 수 있다.
도 8 및 다음의 설명은 본 발명이 구현될 수 있는 적합한 컴퓨팅 환경에 대한 일반적인 설명을 간략하게 제공한다. 필요한 것은 아니지만, 본 발명은 프로그 램 모듈(program module)과 같은 컴퓨터 시스템에 의하여 실행되는 컴퓨터 실행 가능 명령어와 일반적으로 관련하여 설명된다. 일반적으로, 프로그램 모듈은, 특정 작업(task)을 수행하거나 특정 추상 데이터 유형(abstract data type)을 구현하는 루틴(routine), 프로그램, 객체, 콤포넌트(component), 데이터 구조(data structure) 등을 포함한다. 컴퓨터 실행 가능 명령어, 관련된 데이터 구조 및 프로그램 모듈은 여기에 개시된 방법의 동작을 실행하기 위한 프로그램 코드 수단의 예시를 표현한다.
도 8을 참조하면, 본 발명을 구현하기 위한 예시적 시스템은 컴퓨터 시스템(820)의 형태인 범용 컴퓨팅 장치를 포함하는데, 이 범용 컴퓨터는 처리 장치(processing unit; 821), 시스템 메모리(822), 및 시스템 메모리를 포함하는 다양한 시스템 콤포넌트를 처리 장치(821)에 연결하는 시스템 버스(823)를 포함한다. 프로세싱 유닛(821)은 본 발명의 특징을 포함하는 컴퓨터 시스템(820)의 특징을 구현하기 위하여 설계된 컴퓨터 실행 가능 명령어를 실행할 수 있다. 시스템 버스(823)는 메모리 버스 또는 메모리 제어기, 주변 장치 버스, 및 다양한 버스 아키텍처 중 임의의 것을 사용하는 로컬 버스를 포함하는 여러 유형의 버스 구조 중 임의의 것일 수 있다. 시스템 메모리는 ROM(read-only memory; 824) 및 RAM(random access memory; 825)을 포함한다. 기동(start-up) 동안과 같이 컴퓨터 시스템(820) 내의 소자들간의 정보 전달을 돕는 기본적인 루틴을 포함하는 기본 입/출력 시스템(BIOS; 826)은 ROM(824)에 저장된다.
컴퓨터 시스템(820)은, 자기 하드디스크(839)로부터 판독하고 그것에 기록하 기 위한 자기 하드디스크 드라이브(827), 착탈식 자기 디스크(removable magnetic disk; 829)로부터 판독하거나 그것에 기록하기 위한 자기 디스크 드라이브(828), 및 CD-ROM 또는 다른 광 매체와 같은 착탈식 광 디스크(831)로부터 판독하거나 그것에 기록하기 위한 광 디스크 드라이브(830)를 더 포함할 수 있다. 자기 하드디스크 드라이브(827), 자기 디스크 드라이브(828) 및 광 디스크 드라이브(830)는, 각각 하드디스크 드라이브 인터페이스(832), 자기 디스크 드라이브 인터페이스(833) 및 광 드라이브 인터페이스(834)에 의하여 시스템 버스(823)에 접속된다. 드라이브 및 이것과 연관된 컴퓨터 판독 가능 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 및 컴퓨터 시스템(820)를 위한 다른 데이터를 비휘발적으로 저장한다. 예시 환경이 여기에서 자기 하드 디스크(839)를 사용하고 있지만 착탈식 자기 디스크(829) 및 착탈식 광 디스크(831) 및 데이터를 저장하기 위한 컴퓨터 판독 가능한 다른 유형의 매체가 사용될 수 있는데, 이러한 다른 유형의 매체는 자기 카세트, 플래시 메모리 카드, 디지털 비디오 디스크, 베르누이 카트리지(Bernoulli cartridge), RAM, ROM 등을 포함한다.
운영 체제(835), 하나 이상의 응용 프로그램(836), 다른 프로그램 모듈(837) 및 프로그램 데이터(838)를 포함하는 하나 이상의 프로그램 모듈을 포함하는 프로그램 코드 수단은 하드디스크(839), 자기 디스크(829), 광 디스크(831), ROM(824) 또는 RAM(825) 상에 저장될 수 있다. 사용자는 키보드(840), 포인팅 장치(pointing device; 842) 또는 마이크로폰, 조이스틱, 게임 패드, 위성 디스크(satellite disk), 스캐너 등과 같은 다른 입력 장치(도시되지 않음)를 통하 여 컴퓨터 시스템(820)에 명령어 및 정보를 입력할 수 있다. 이들 및 다른 입력 장치는 흔히 시스템 버스(823)에 연결된 입력/출력 인터페이스(846)를 통하여 처리 장치(821)에 접속될 수 있다. 입력/출력 인터페이스(846)는 논리적으로 시리얼 포트 인터페이스, PS/2 인터페이스, 패러럴 포트 인터페이스, USB 인터페이스, IEEE 1394 인터페이스(예를 들어 FireWire 인터페이스)와 같은 다양한 범위의 다른 인터페이스를 나타내거나, 다른 인터페이스의 조합을 나타낼 수 있다.
모니터(847) 또는 다른 유형의 디스플레이 장치도 비디오 인터페이스(848)를 통하여 시스템 버스(823)에 접속된다. 스피커(869) 및 다른 오디오 출력 장치도 오디오 인터페이스(849)를 통하여 시스템 버스(823)에 연결된다. 예를 들어 프린터와 같은 다른 주변 장치(도시되지 않음)도 컴퓨터 시스템(820)에 연결될 수 있다.
컴퓨터 시스템(820)은 예를 들어 사무실 기반 또는 기업 기반 컴퓨터 네트워크, 홈 네트워크, 인트라 넷 및/또는 인터넷과 같은 네트워크에 연결 가능하다. 컴퓨터 시스템(820)은 원격 컴퓨터 시스템, 원격 어플리케이션 및/또는 이러한 네트워크에 걸친 원격 데이터 베이스와 같은 외부 소스와 데이터를 교환할 수 있다. 예를 들어, 컴퓨터 시스템(820)은 컴퓨터 시스템(820)을 구비한 공유 네트워크에 연결된 다른 컴퓨터 시스템과 전자 메시지를 교환할 수 있다.
컴퓨터 시스템(820)은, 컴퓨터 시스템(820)이 외부 소스로부터 데이터를 수신하고 외부 소스로 데이터를 전송하는 네트워크 인터페이스(853)를 포함한다. 도 8을 참조하면, 네트워크 인터페이스(853)는 링크(851)를 통하여 원격 컴퓨터 시스 템(883)과의 데이터 교환을 용이하게 한다. 네트워크 인터페이스(853)는 예를 들어 네트워크 인터페이스 및 대응하는 네트워크 드라이버 인터페이스 명세 스택(Network Driver Interface Specification stack)과 같은 하나 이상의 소프트웨어 및/또는 하드웨어 모듈을 논리적으로 표현한다. 데이터 링크 (851)는 예를 들어 이더넷 세그먼트와 같은 네트워크의 일부를 표현하고, 원격 컴퓨터 시스템(883)은 네트워크의 노드를 표현한다. 예를 들어, 원격 컴퓨터 시스템(883)은 DNS 문의를 컴퓨터 시스템(820)으로 전송하는 문의 컴퓨터 시스템일 수 있다. 반면에, 원격 컴퓨터 시스템(883)은 수신 DNS 문의에 대응하여 DNS 해답을 컴퓨터 시스템(820)으로 전송하는 DNS 서버일 수 있다.
마찬가지로, 컴퓨터 시스템(820)은, 컴퓨터 시스템(820)이 외부 소스로부터 데이터를 수신하고 외부 소스로 데이터를 전송하는 입/출력 인터페이스(846)를 포함한다. 입/출력 인터페이스(846)는 예를 들어, 표준 모뎀, 케이블 모뎀, DSL 모뎀과 같은 모뎀(554)에, 컴퓨터 시스템(820)이 외부 소스로부터 데이터를 수신하고 외부 소스로 데이터를 전송하는 데이터 링크(859)를 통하여 연결된다. 도 8을 참조하면, 입/출력 인터페이스(846) 및 모뎀(854)은 링크(852)를 통하여 원격 컴퓨터 시스템(893)과의 데이터 교환을 용이하게 한다. 링크(852)는 네트워크의 일부를 표현하고, 원격 컴퓨터 시스템(893)은 네트워크의 노드를 표현한다. 예를 들어, 원격 컴퓨터 시스템(893)은 전자 메시지를 컴퓨터 시스템(820)에 송신하는 송신 컴퓨터 시스템일 수 있다. 반면에, 원격 컴퓨터 시스템(893)은 컴퓨터 시스템(820)으로부터 전자 메일 메시지를 수신하는 수신 컴퓨터 시스템일 수 있다.
도 8은 본 발명에 대한 적합한 운영 환경을 표현하는데, 본 발명의 원리는 이를 구현할 수 있는 임의의 시스템에서, 필요하다면 적합한 수정을 가하여, 사용될 수 있다. 도 8에 도시된 환경은 단지 예시적이며, 본 발명의 원리가 구현될 수 있는 다양한 환경의 매우 작은 일부에 불과한 것이다.
본 발명은 그 원칙이나 주요 특성에서 벗어나지 않는 다른 상세한 형태로 구현될 수 있다. 설명된 실시예는 예시적 측면으로만 고려된 것이며 제한적인 것이 아니다. 따라서 본 발명의 범위는 전술한 설명보다는 첨부된 청구항에 의하여 지시된다. 청구항과 그 의미 및 범위가 등가인 모든 변화는 청구항의 범위에 포함될 것이다.
본 발명은 메시지 분류 모듈에 제공될 수 있는 입력 생성을 제공하여, 불필요하거나 요청되지 않은 전자 메시지를 보다 신뢰성 있게 분류하는 것을 촉진한다.

Claims (97)

  1. 하나 이상의 수신 도메인들에 네트워크 접속 가능하고, 상기 수신 도메인들에 전자 메시지들을 송신하도록 구성된 송신 메시징 서버를 포함하는 송신 도메인에서, 송신 메시징 서버가 수신측 도메인에 전자 메시지를 송신하기 전에 소정의 연산 퍼즐(computational puzzle)을 해결하기 위하여 연산 리소스들(computational resources)을 소비했는지를 상기 수신측 도메인에 지시(indicate)하는 방법으로서,
    송신 메시징 서버로부터 수신측 도메인으로 송신되는 전자 메시지에 포함될 전자 메시지 데이터를 수신하는 송신 메시징 서버의 동작(act);
    상기 전자 메시지의 하나 이상의 구성 요소들로부터 퍼즐 입력을 생성하는 송신 메시징 서버의 동작 - 상기 하나 이상의 구성 요소는 메시지 바디(message body), 메시지 첨부물(message attachment) 및 메시지 헤더로 이루어진 군에서 선택되고, 상기 퍼즐 입력을 생성하는 동작은 하나 이상의 구성 요소 중의 적어도 하나의 일부들을 추출하는 단계, 하나 이상의 구성 요소 중의 적어도 하나의 일부들을 해싱(hashing)하는 단계, 및 하나 이상의 구성 요소 중의 적어도 하나의 일부들을 연접시키는(concatenating) 단계 중 하나 이상을 포함함 -;
    해싱 알고리즘이 소정의 연산 퍼즐에 대한 해답(solution)인 응답 해시 값을 생성할 때까지 해싱 알고리즘을 상이한 응답 문서들에 적용함으로써 응답 문서를 식별하는 송신 메시징 서버의 동작 - 상기 응답 해시 값은, 상기 상이한 응답 문서들 중 하나와 상기 퍼즐 입력을 결합하는 단계 및 상기 해싱 알고리즘을 사용하는 상기 퍼즐 입력과 상기 상이한 응답 문서들 중 하나의 결합을 해싱하는 단계에 의해 계산되고, 상기 해싱 알고리즘은 SHA-1 서브 함수들의 표준 애플리케이션을 변경함 -; 및
    상기 전자 메시지를 상기 송신 메시징 서버로부터 상기 수신측 도메인으로 송신하는 동작 - 상기 전자 메시지는 상기 송신 메시징 서버와 부가적인 통신 없이 상기 송신 메시징 서버가 연산 리소스들을 소비하였다는 것을 수신측 도메인에 의해 검증할 수 있게 해 주는 상기 전자 메시지 데이터와 식별된 상기 응답 문서를 포함함 -
    을 포함하는, 송신 메시징 서버가 수신측 도메인에 전자 메시지를 송신하기 전에 소정의 연산 퍼즐을 해결하기 위하여 컴퓨터 리소스들을 소비했는지를 상기 수신측 도메인에 지시하는 방법.
  2. 제1항에 있어서,
    전자 메시지에 포함될 전자 메시지 데이터를 수신하는 송신 메시징 서버의 동작은 전자 메일 메시지에 포함될 전자 메시지 데이터를 수신하는 동작을 포함하는, 송신 메시징 서버가 수신측 도메인에 전자 메시지를 송신하기 전에 소정의 연산 퍼즐을 해결하기 위하여 컴퓨터 리소스들을 소비했는지를 상기 수신측 도메인에 지시하는 방법.
  3. 제1항에 있어서,
    하나 이상의 구성 요소 중의 적어도 하나로부터 초기 문서를 생성하는 동작을 더 포함하고, 상기 초기 문서를 생성하는 동작은 상기 전자 메시지 데이터의 적어도 하나의 필드로부터 데이터를 추출하는 단계를 포함하며, 상기 적어도 하나의 필드는 From 필드, To 필드, NotBefore 필드, NotAfter 필드, Date 필드, Body 필드, Attachment 필드, Subject 필드 및 Message-Id 필드로부터 선택되는, 송신 메시징 서버가 수신측 도메인에 전자 메시지를 송신하기 전에 소정의 연산 퍼즐을 해결하기 위하여 컴퓨터 리소스들을 소비했는지를 상기 수신측 도메인에 지시하는 방법.
  4. 제3항에 있어서,
    상기 하나 이상의 구성 요소 중의 적어도 하나로부터 초기 문서를 생성하는 동작은 하나 이상의 날짜 범위 필드들(date range fields)로부터 데이터를 추출하는 동작을 포함하는, 송신 메시징 서버가 수신측 도메인에 전자 메시지를 송신하기 전에 소정의 연산 퍼즐을 해결하기 위하여 컴퓨터 리소스들을 소비했는지를 상기 수신측 도메인에 지시하는 방법.
  5. 제3항에 있어서,
    상기 하나 이상의 구성 요소 중의 적어도 하나로부터 초기 문서를 생성하는 동작은 텍스트 데이터, 그래픽 데이터, URI(Uniform Resource Identifier) 데이터 또는 실행 가능 데이터인 데이터를 추출하는 동작을 포함하는, 송신 메시징 서버가 수신측 도메인에 전자 메시지를 송신하기 전에 소정의 연산 퍼즐을 해결하기 위하여 컴퓨터 리소스들을 소비했는지를 상기 수신측 도메인에 지시하는 방법.
  6. 제1항에 있어서,
    응답 문서를 식별하는 송신 메시징 서버의 동작은, 응답 문서가 상기 퍼즐 입력과 결합되고 상기 응답 문서 및 퍼즐 입력의 결합이 해시되면, 복수의 고정된 비트 위치들에서 특정 값을 갖는 해시 값을 유발하는 응답 문서를 식별하는 동작을 포함하는, 송신 메시징 서버가 수신측 도메인에 전자 메시지를 송신하기 전에 소정의 연산 퍼즐을 해결하기 위하여 컴퓨터 리소스들을 소비했는지를 상기 수신측 도메인에 지시하는 방법.
  7. 제6항에 있어서,
    응답 문서를 식별하는 송신 메시징 서버의 동작은, 응답 문서가 상기 퍼즐 입력에 첨부되고(prepended) 상기 응답 문서 및 퍼즐 입력의 연접 결과가 해시되면, 적어도 제1 특정 수의 비트들(at least a first specified number of bits)을 갖는 해시 값을 유발하는 응답 문서를 식별하는 동작을 포함하는, 송신 메시징 서버가 수신측 도메인에 전자 메시지를 송신하기 전에 소정의 연산 퍼즐을 해결하기 위하여 컴퓨터 리소스들을 소비했는지를 상기 수신측 도메인에 지시하는 방법.
  8. 제1항에 있어서,
    응답 문서를 식별하는 송신 메시징 서버의 동작은, 응답 문서가 상기 퍼즐 입력에 연접되고 상기 응답 문서 및 퍼즐 입력의 연접 결과가 해시되면, 제1 복수의 비트 위치들에서 특정 비트 값들을 갖고, 제2 복수의 비트 위치들에서 다른 응답 문서들로부터 발생하는 해시들의 해당 비트 값들과 동일한 비트 값을 갖는 해시 값을 유발하는 응답 문서를 식별하는 동작을 포함하는, 송신 메시징 서버가 수신측 도메인에 전자 메시지를 송신하기 전에 소정의 연산 퍼즐을 해결하기 위하여 컴퓨터 리소스들을 소비했는지를 상기 수신측 도메인에 지시하는 방법.
  9. 제8항에 있어서,
    응답 문서를 식별하는 송신 메시징 서버의 동작은, 응답 문서가 상기 퍼즐 입력에 연접되고 상기 응답 문서 및 퍼즐 입력의 연접 결과가 해시되면, 해시 값 프리픽스(hash value prefix)의 각각의 비트 위치에서 특정 값들을 갖고, 해시 값 서픽스(hash value suffix)에서 다른 응답 문서들로부터 발생하는 해당 해시 비트 값들과 동일한 값을 갖는 해시 값을 유발하는 응답 문서를 식별하는 동작을 포함하는, 송신 메시징 서버가 수신측 도메인에 전자 메시지를 송신하기 전에 소정의 연산 퍼즐을 해결하기 위하여 컴퓨터 리소스들을 소비했는지를 상기 수신측 도메인에 지시하는 방법.
  10. 제1항에 있어서,
    응답 문서를 식별하는 송신 메시징 서버의 동작은 퍼즐 해시 알고리즘을 사용하는 동작을 포함하고, 상기 퍼즐 해시 알고리즘은 이것의 하드웨어 가속을 구현하는 난이도를 증가시키도록 특히 설계된, 송신 메시징 서버가 수신측 도메인에 전자 메시지를 송신하기 전에 소정의 연산 퍼즐을 해결하기 위하여 컴퓨터 리소스들을 소비했는지를 상기 수신측 도메인에 지시하는 방법.
  11. 제1항에 있어서,
    상기 식별된 응답 문서 및 상기 전자 메시지 데이터를 포함하는 전자 메시지를 상기 수신측 도메인에 송신하는 동작은 복수의 응답 문서들을 포함하는 전자 메시지를 송신하는 동작을 포함하는, 송신 메시징 서버가 수신측 도메인에 전자 메시지를 송신하기 전에 소정의 연산 퍼즐을 해결하기 위하여 컴퓨터 리소스들을 소비했는지를 상기 수신측 도메인에 지시하는 방법.
  12. 제1항에 있어서,
    상기 수신 도메인이 연산 퍼즐에 대한 응답을 확인하도록 구성되는지를 결정하기 위하여 서버에 문의하는 동작; 및
    상기 수신 도메인에 대한 전자 메시지 구성 정보를 포함하는 하나 이상의 DNS TXT 레코드들을 수신하는 동작
    을 더 포함하는, 송신 메시징 서버가 수신측 도메인에 전자 메시지를 송신하기 전에 소정의 연산 퍼즐을 해결하기 위하여 컴퓨터 리소스들을 소비했는지를 상기 수신측 도메인에 지시하는 방법.
  13. 제12항에 있어서,
    서버에 문의하는 동작은 전자 메일 전송 정책 인증서들을 지원하지 않는 상기 송신 도메인에 응답하여 서버에 문의하는 동작을 포함하는, 송신 메시징 서버가 수신측 도메인에 전자 메시지를 송신하기 전에 소정의 연산 퍼즐을 해결하기 위하여 컴퓨터 리소스들을 소비했는지를 상기 수신측 도메인에 지시하는 방법.
  14. 제12항에 있어서,
    하나 이상의 DNS TXT 레코드들을 수신하는 동작은 XML 명령어들로 상기 전자 메시지 구성 정보를 인코딩하는 하나 이상의 DNS TXT 레코드들을 수신하는 동작을 포함하는, 송신 메시징 서버가 수신측 도메인에 전자 메시지를 송신하기 전에 소정의 연산 퍼즐을 해결하기 위하여 컴퓨터 리소스들을 소비했는지를 상기 수신측 도메인에 지시하는 방법.
  15. 하나 이상의 송신 도메인들에 네트워크 접속 가능하고, 상기 송신 도메인들로부터 전자 메시지들을 수신하도록 구성된 하나 이상의 수신 메시징 서버들을 포함하는 수신 도메인에서, 송신 메시징 서버가 전자 메시지를 송신하기 전에 소정의 연산 퍼즐을 해결했는지를 결정하는 방법으로서,
    전자 메시지 데이터 및 응답 문서를 포함하는 전자 메시지를 수신하는 동작;
    상기 전자 메시지의 하나 이상의 소정의 구성 요소로부터 퍼즐 입력을 재생성(reproducing)하는 동작 - 상기 하나 이상의 소정의 구성 요소는 메시지 바디, 메시지 첨부물 및 메시지 헤더로 이루어진 군에서 선택되며, 퍼즐 입력 재생성은 하나 이상의 소정의 구성 요소 중의 적어도 하나의 일부들을 추출하는 단계, 상기 하나 이상의 소정의 구성 요소 중의 적어도 하나의 일부들을 해싱하는 단계 및 상기 하나 이상의 소정의 구성 요소의 적어도 하나의 일부들을 연접시키는 단계 중의 하나 이상을 포함하며, 상기 전자 메시지의 하나 이상의 소정의 구성 요소로부터 퍼즐 입력을 재생성하는 동작은 SHA-1 서브 함수들의 표준 애플리케이션을 변경하는 해싱 알고리즘을 적용하는 동작을 더 포함함 -;
    확인 해시 값이 상기 소정의 연산 퍼즐에 대한 해답인지를 결정하는 동작 - 상기 확인 해시 값은 상기 해싱 알고리즘을 이용하여 상기 응답 문서와 상기 퍼즐 입력을 결합하고 상기 응답 문서와 상기 퍼즐 입력의 결합을 해싱하여 계산됨 -; 및
    상기 결정의 결과를 메시지 분류 모듈에 제공하는 동작 - 상기 메시지 분류 모듈은 상기 결과에 기초하여 수신된 상기 전자 메시지가 스팸인지를 결정함 -
    을 포함하는, 송신 메시징 서버가 전자 메시지를 송신하기 전에 소정의 연산 퍼즐을 해결했는지를 결정하는 방법.
  16. 제15항에 있어서,
    전자 메시지 데이터 및 응답 문서를 포함하는 전자 메시지를 수신하는 동작은 전자 메일 메시지를 수신하는 동작을 포함하는, 송신 메시징 서버가 전자 메시지를 송신하기 전에 소정의 연산 퍼즐을 해결했는지를 결정하는 방법.
  17. 제15항에 있어서,
    전자 메시지 데이터 및 응답 문서를 포함하는 전자 메시지를 수신하는 동작은 복수의 응답 문서들을 포함하는 전자 메시지를 수신하는 동작을 포함하는, 송신 메시징 서버가 전자 메시지를 송신하기 전에 소정의 연산 퍼즐을 해결했는지를 결정하는 방법.
  18. 제15항에 있어서,
    전자 메시지의 하나 이상의 소정의 구성 요소 중의 적어도 하나로부터 초기 문서를 재생성하는 동작을 더 포함하고, 상기 초기 문서를 재생성하는 동작은 상기 전자 메시지 데이터의 필드로부터 데이터를 추출하는 동작을 포함하고, 상기 필드는 From 필드, To 필드, NotBefore 필드, NotAfter 필드, Date 필드, Body 필드, Attachment 필드, Subject 필드 및 Message-Id 필드로부터 선택되는, 송신 메시징 서버가 전자 메시지를 송신하기 전에 소정의 연산 퍼즐을 해결했는지를 결정하는 방법.
  19. 제18항에 있어서,
    상기 전자 메시지의 하나 이상의 소정의 구성 요소 중의 적어도 하나로부터 초기 문서를 재생성하는 동작은 상기 전자 메시지 데이터로부터 텍스트 데이터, 그래픽 데이터, URI 데이터 또는 실행 가능 데이터인 데이터를 추출하는 동작을 포함하는, 송신 메시징 서버가 전자 메시지를 송신하기 전에 소정의 연산 퍼즐을 해결했는지를 결정하는 방법.
  20. 제15항에 있어서,
    상기 전자 메시지의 하나 이상의 소정의 구성 요소로부터 퍼즐 입력을 재생성하는 동작은 상기 해싱 알고리즘을 적용하는 동작을 포함하고, 상기 해싱 알고리즘은 상기 해싱 알고리즘의 효율을 향상시키기 위하여 사용될 수 있는 하드웨어 가속을 구현하는 난이도를 증가시키도록 특히 설계된, 송신 메시징 서버가 전자 메시지를 송신하기 전에 소정의 연산 퍼즐을 해결했는지를 결정하는 방법.
  21. 제15항에 있어서,
    응답 문서 및 상기 퍼즐 입력 해시 값의 결합으로부터 연산된 확인 해시 값이 상기 소정의 연산 퍼즐에 대한 해답을 지시하는 응답 값인지를 결정하는 동작은 상기 확인 해시 값의 전체에 걸쳐 산재하는 복수의 고정된 비트 위치들에서 특정 값을 갖는지를 결정하는 동작을 포함하는, 송신 메시징 서버가 전자 메시지를 송신하기 전에 소정의 연산 퍼즐을 해결했는지를 결정하는 방법.
  22. 제15항에 있어서,
    응답 문서 및 상기 퍼즐 입력의 결합으로부터 연산된 확인 해시 값이 상기 소정의 연산 퍼즐에 대한 해답을 지시하는 응답 값인지를 결정하는 동작은 확인 해시 값이 제1 복수의 비트 위치들에서 특정 값을 갖고 제2 복수의 비트 위치들에서 다른 응답 문서들로부터 발생하는 다른 확인 해시 값들과 동일한 값을 갖는지를 결정하는 동작을 포함하는, 송신 메시징 서버가 전자 메시지를 송신하기 전에 소정의 연산 퍼즐을 해결했는지를 결정하는 방법.
  23. 하나 이상의 수신 도메인들에 네트워크 접속 가능한 송신 도메인에서 사용하기 위한 컴퓨터 판독 가능 기록 매체로서,
    상기 송신 도메인은 전자 메시지들을 상기 수신 도메인들로 송신하도록 구성된 송신 메시징 서버를 포함하고,
    상기 컴퓨터 판독 가능 기록 매체는 상기 송신 메시징 서버가 수신측 도메인에 전자 메시지를 송신하기 전에 소정의 연산 퍼즐을 해결하기 위하여 컴퓨터 리소스들을 소비했다는 것을 상기 수신측 도메인에 지시하는 방법을 구현하며, 프로세서에 의해 실행될 때 상기 송신 도메인으로 하여금 이하의 단계들을 수행하게 하는 컴퓨터 실행 가능 명령어들을 저장하고,
    상기 단계들은
    전자 메시지에 포함될 전자 메시지 데이터를 수신하는 동작;
    상기 전자 메시지의 하나 이상의 구성 요소로부터 퍼즐 입력을 생성하는 동작 - 상기 하나 이상의 구성 요소는 메시지 바디, 메시지 첨부물 및 메시지 헤더로 이루어진 군에서 선택되며, 퍼즐 입력 생성은 상기 하나 이상의 구성 요소 중의 적어도 하나의 일부들을 추출하는 단계, 상기 하나 이상의 구성 요소 중의 적어도 하나의 일부들을 해싱하는 단계 및 상기 하나 이상의 구성 요소의 적어도 하나의 일부들을 연접시키는 단계 중의 하나 이상을 포함함 -;
    해싱 알고리즘이 상기 소정의 연산 퍼즐에 대한 해답인 응답 해시 값을 생성할 때까지 상기 해싱 알고리즘을 상이한 응답 문서들에 적용함으로써 응답 문서를 식별하는 동작 - 상기 응답 해시 값은 상기 상이한 응답 문서들 중의 하나와 상기 퍼즐 입력을 결합하는 단계 및 상기 해싱 알고리즘을 사용하여 상기 상이한 응답 문서들 중의 하나와 상기 퍼즐 입력의 결합을 해싱하는 단계에 의해 계산되며, 상기 해싱 알고리즘은 SHA-1 서브 함수들의 표준 애플리케이션을 변경함 -; 및
    상기 전자 메시지를 상기 수신측 도메인으로 송신하는 동작 - 상기 전자 메시지는 상기 식별된 응답 문서와 상기 전자 메시지를 포함하며, 상기 송신 메시징 서버와 부가적인 통신 없이 상기 송신 메시징 서버가 연산 리소스들을 소비하였다는 것을 상기 수신측 도메인에 의해 검증할 수 있게 해 줌 -
    을 포함하는, 하나 이상의 수신 도메인들에 네트워크 접속 가능한 송신 도메인에서 사용하기 위한 컴퓨터 판독 가능 기록 매체.
  24. 하나 이상의 송신 도메인들에 네트워크 접속 가능한 수신 도메인에서 사용하기 위한 컴퓨터 판독 가능 기록 매체로서,
    상기 수신 도메인은 상기 송신 도메인들로부터 전자 메시지들을 수신하도록 구성된 하나 이상의 수신 메시징 서버들을 포함하고,
    상기 컴퓨터 판독 가능 기록 매체는 송신 메시지 서버가 전자 메시지를 송신하기 전에 소정의 연산 퍼즐을 해결했는지를 결정하는 방법을 구현하며, 프로세서에 의하여 실행될 때, 상기 수신 도메인으로 하여금, 이하의 단계들을 수행하게 하는 컴퓨터 실행 가능 명령어들을 저장하고,
    상기 단계들은
    전자 메시지 데이터 및 응답 문서를 포함하는 전자 메시지를 수신하는 동작;
    상기 전자 메시지의 하나 이상의 소정의 구성 요소로부터 퍼즐 입력을 재생성하는 동작 - 상기 하나 이상의 소정의 구성 요소는 메시지 바디, 메시지 첨부물 및 메시지 헤더로 이루어진 군에서 선택되며, 재생성 퍼즐 입력은 상기 하나 이상의 구성 요소 중의 적어도 하나의 일부들을 추출하는 단계, 상기 하나 이상의 소정의 구성 요소 중의 적어도 하나의 일부들을 해싱하는 단계 및 상기 하나 이상의 소정의 구성 요소 중의 적어도 하나의 일부들을 연접시키는 단계 중의 하나 이상을 포함하며, 상기 전자 메시지의 하나 이상의 소정의 구성 요소로부터 퍼즐 입력을 재생성하는 동작은 SHA-1 서브 함수들의 표준 애플리케이션을 변경하는 해싱 알고리즘을 적용하는 동작을 포함함 -;
    확인 해시 값이 상기 소정의 연산 퍼즐에 대한 해답인지를 결정하는 동작 - 상기 확인 해시 값은 상기 해싱 알고리즘을 이용하여, 상기 응답 문서와 상기 퍼즐 입력을 결합하고 상기 응답 문서와 상기 퍼즐 입력의 결합을 해싱하여 계산됨 -; 및
    상기 결정의 결과를 메시지 분류 모듈에 제공하여, 상기 메시지 분류 모듈이 상기 결과에 기초하여 수신된 상기 전자 메시지가 스팸인지를 결정하는 동작
    을 포함하는, 하나 이상의 송신 도메인들에 네트워크 접속 가능한 수신 도메인에서 사용하기 위한 컴퓨터 판독 가능 기록 매체.
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 삭제
  54. 삭제
  55. 삭제
  56. 삭제
  57. 삭제
  58. 삭제
  59. 삭제
  60. 삭제
  61. 삭제
  62. 삭제
  63. 삭제
  64. 삭제
  65. 삭제
  66. 삭제
  67. 삭제
  68. 삭제
  69. 삭제
  70. 삭제
  71. 삭제
  72. 삭제
  73. 삭제
  74. 삭제
  75. 삭제
  76. 삭제
  77. 삭제
  78. 삭제
  79. 삭제
  80. 삭제
  81. 삭제
  82. 삭제
  83. 삭제
  84. 삭제
  85. 삭제
  86. 삭제
  87. 삭제
  88. 삭제
  89. 삭제
  90. 삭제
  91. 삭제
  92. 삭제
  93. 삭제
  94. 삭제
  95. 삭제
  96. 삭제
  97. 삭제
KR1020040016409A 2003-03-12 2004-03-11 불필요하고 요청되지 않은 전자 메시지를 감소시키는 방법 KR101043550B1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US45451703P 2003-03-12 2003-03-12
US60/454,517 2003-03-12
US10/683,624 2003-10-10
US10/684,020 2003-10-10
US10/683,624 US7552176B2 (en) 2003-03-12 2003-10-10 Reducing unwanted and unsolicited electronic messages by exchanging electronic message transmission policies and solving and verifying solutions to computational puzzles
US10/684,020 US7398315B2 (en) 2003-03-12 2003-10-10 Reducing unwanted and unsolicited electronic messages by preventing connection hijacking and domain spoofing

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020110001730A Division KR101213935B1 (ko) 2003-03-12 2011-01-07 불필요하고 요청되지 않은 전자 메시지를 감소시키는 방법

Publications (2)

Publication Number Publication Date
KR20040081345A KR20040081345A (ko) 2004-09-21
KR101043550B1 true KR101043550B1 (ko) 2011-06-21

Family

ID=32777038

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020040016409A KR101043550B1 (ko) 2003-03-12 2004-03-11 불필요하고 요청되지 않은 전자 메시지를 감소시키는 방법
KR1020110001730A KR101213935B1 (ko) 2003-03-12 2011-01-07 불필요하고 요청되지 않은 전자 메시지를 감소시키는 방법
KR1020120030444A KR101238527B1 (ko) 2003-03-12 2012-03-26 불필요하고 요청되지 않은 전자 메시지를 감소시키는 방법

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020110001730A KR101213935B1 (ko) 2003-03-12 2011-01-07 불필요하고 요청되지 않은 전자 메시지를 감소시키는 방법
KR1020120030444A KR101238527B1 (ko) 2003-03-12 2012-03-26 불필요하고 요청되지 않은 전자 메시지를 감소시키는 방법

Country Status (6)

Country Link
EP (2) EP1457905B1 (ko)
JP (2) JP4537738B2 (ko)
KR (3) KR101043550B1 (ko)
CN (1) CN1532758B (ko)
AT (1) ATE402454T1 (ko)
DE (1) DE602004015178D1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7552176B2 (en) 2003-03-12 2009-06-23 Microsoft Corporation Reducing unwanted and unsolicited electronic messages by exchanging electronic message transmission policies and solving and verifying solutions to computational puzzles
EP1922631B1 (en) * 2005-08-09 2015-04-15 Message Level, LLC System and method for preventing delivery of unsolicited and undesired electronic messages by key generation and comparison
DE102005046965B3 (de) * 2005-09-30 2007-02-15 Siemens Ag Verfahren und Anordnung zur Verifikation einer im Zuge einer Verbindungsanfrage zum Zweck des Aufbaus einer Sprach-Kommunikationsverbindung übermittelten Absenderadresse in einem IP-Kommunikationsnetzwerk
US8121624B2 (en) * 2006-07-25 2012-02-21 Alcatel Lucent Message spoofing detection via validation of originating switch
US8935766B2 (en) 2011-01-19 2015-01-13 Qualcomm Incorporated Record creation for resolution of application identifier to connectivity identifier
KR20170003112A (ko) 2015-06-30 2017-01-09 삼성전기주식회사 전력 반도체 모듈 및 그 제조 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020198950A1 (en) 1997-11-25 2002-12-26 Leeds Robert G. Junk electronic mail detector and eliminator
KR20030017131A (ko) * 2001-08-24 2003-03-03 김성주 약정코드를 이용한 스팸메일 차단방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1010283B1 (en) * 1997-07-24 2006-11-29 Tumbleweed Communications Corp. E-mail firewall with stored key encryption/decryption
US6199102B1 (en) * 1997-08-26 2001-03-06 Christopher Alan Cobb Method and system for filtering electronic messages
US6321267B1 (en) * 1999-11-23 2001-11-20 Escom Corporation Method and apparatus for filtering junk email
KR100316812B1 (ko) * 2000-03-09 2001-12-22 박춘우 온라인 광고를 위한 전자 우표 제공 시스템 및 그 운영 방법
DE10115428A1 (de) * 2001-03-29 2002-10-17 Siemens Ag Verfahren zum Erkennen einer unerwünschten E-Mail
JP2002334162A (ja) * 2001-05-11 2002-11-22 Yoshitsugu Tsujita 本人及び事物情報管理システム
US20030009698A1 (en) * 2001-05-30 2003-01-09 Cascadezone, Inc. Spam avenger
JP2003036230A (ja) * 2001-07-23 2003-02-07 Kobo Itonaga 電子メール等適切通信方法及び装置
JP4007797B2 (ja) * 2001-11-14 2007-11-14 日本電信電話株式会社 迷惑メール防止方法及びその実施装置並びにその処理プログラムと記録媒体

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020198950A1 (en) 1997-11-25 2002-12-26 Leeds Robert G. Junk electronic mail detector and eliminator
KR20030017131A (ko) * 2001-08-24 2003-03-03 김성주 약정코드를 이용한 스팸메일 차단방법

Also Published As

Publication number Publication date
DE602004015178D1 (de) 2008-09-04
CN1532758B (zh) 2011-02-23
JP2004280827A (ja) 2004-10-07
EP1457905A3 (en) 2005-06-08
EP1986144A2 (en) 2008-10-29
CN1532758A (zh) 2004-09-29
KR20120049194A (ko) 2012-05-16
JP2010198636A (ja) 2010-09-09
EP1457905A2 (en) 2004-09-15
KR20040081345A (ko) 2004-09-21
KR20110009729A (ko) 2011-01-28
JP4537738B2 (ja) 2010-09-08
EP1457905B1 (en) 2008-07-23
EP1986144A3 (en) 2009-02-04
KR101213935B1 (ko) 2012-12-20
KR101238527B1 (ko) 2013-02-28
ATE402454T1 (de) 2008-08-15
JP5079844B2 (ja) 2012-11-21

Similar Documents

Publication Publication Date Title
US7921173B2 (en) Reducing unwanted and unsolicited electronic messages by exchanging electronic message transmission policies and solving and verifying solutions to computational puzzles
US7398315B2 (en) Reducing unwanted and unsolicited electronic messages by preventing connection hijacking and domain spoofing
KR101137089B1 (ko) 착신 메시지들을 검증하는 방법 및 시스템
US8359360B2 (en) Electronic message system with federation of trusted senders
US8112483B1 (en) Enhanced challenge-response
US20060031319A1 (en) Hiearchically verifying the identity of the sender of an e-mail message
US20070083930A1 (en) Method, telecommunications node, and computer data signal message for optimizing virus scanning
US20060004896A1 (en) Managing unwanted/unsolicited e-mail protection using sender identity
US20120198233A1 (en) Method for recalling a message and devices thereof
KR101238527B1 (ko) 불필요하고 요청되지 않은 전자 메시지를 감소시키는 방법
US20060168017A1 (en) Dynamic spam trap accounts
JP2005285116A (ja) 大量電子メールメッセージを阻止する暗号パズル消印サービス
AU2009299539B2 (en) Electronic communication control
US8423618B1 (en) Systems and methods for blocking unsolicited electronic mail messages
Schwenk Email: Protocols and SPAM
Nordvik A security analysis of email communications
Protocol Network Working Group J. Klensin Internet-Draft March 5, 2007 Obsoletes: 2821 (if approved) Intended status: Standards Track Expires: September 6, 2007
Protocol Network Working Group J. Klensin Internet-Draft April 17, 2007 Obsoletes: 2821 (if approved) Intended status: Standards Track Expires: October 19, 2007
Timplaru et al. E-mailing Security Issues
Protocol Network Working Group J. Klensin Internet-Draft July 7, 2005 Obsoletes: 2821 (if approved) Expires: January 8, 2006

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140516

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150515

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160517

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170522

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180516

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190515

Year of fee payment: 9