KR20140113275A - 서버에 대한 웹 요청들의 위조의 방지 - Google Patents

서버에 대한 웹 요청들의 위조의 방지 Download PDF

Info

Publication number
KR20140113275A
KR20140113275A KR1020130116877A KR20130116877A KR20140113275A KR 20140113275 A KR20140113275 A KR 20140113275A KR 1020130116877 A KR1020130116877 A KR 1020130116877A KR 20130116877 A KR20130116877 A KR 20130116877A KR 20140113275 A KR20140113275 A KR 20140113275A
Authority
KR
South Korea
Prior art keywords
client
server
network communication
request
communication request
Prior art date
Application number
KR1020130116877A
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 KR20140113275A publication Critical patent/KR20140113275A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

서버에 대한 네트워크 통신 요청의 위조 방지를 위한 기술들은 네트워크 통신 요청의 보안을 위한 시스템을 포함한다. 시스템은 클라이언트로부터 네트워크 통신 요청을 수신하도록 구성된 통신 모듈을 포함한다. 네트워크 통신 요청은 콘텐츠 파라미터를 가질 수 있다. 통신 모듈은 콘텐츠 파라미터들 및 콘텐츠 파라미터의 해시를 포함하는 콘텐츠 파라미터들의 스트링을 발생하고, 콘텐츠 파라미터들의 암호화된 스트링을 포함하여 클라이언트에 네트워크 통신 요청의 결과의 부분들을 통신하도록 구성될 수 있다. 또한, 통신 모듈은 클라이언트로부터 후속 요청을 수신할 수 있다. 후속 요청은 네트워크 통신 요청과 연관될 수 있다. 후속 요청을 인증하는 결과로서, 통신 모듈은 네트워크 통신 요청을 완료할 수 있다.

Description

서버에 대한 웹 요청들의 위조의 방지{PREVENTION OF FORGERY OF WEB REQUESTS TO A SERVER}
관련 특허 출원
본 출원은 2013년 3월 14일자로 출원되고 명칭이 "PREVENTION OF FORGERY OF WEB REQUESTS TO A SERVER"인 인도 임시 출원 번호 제741/DEL/2013호의 이득을 주장한다.
기술 분야
본 개시는 일반적으로 위조 방지에 관한 것이고, 더욱 구체적으로는, 서버에 대한 웹 요청들의 위조의 방지에 관한 것이다.
웹 요청 위조는 합법적 클라이언트를 대신해 악의적인 클라이언트에 의해 전송된 웹 요청을 포함할 수 있다. 악의적인 클라이언트는 일부 방식으로 합법적 클라이언트에 해를 끼치려고 할 수 있다. 웹 요청 위조는 악의적인 클라이언트가 인증되지 않은 액션들을 수행할 수 있게 할 수 있다. 인증되지 않은 액션들은 합법적 클라이언트 및/또는 서명한(signed-in) 최종 사용자를 대신하는 것으로 보일 수 있다. 부가적으로, 인증되지 않은 액션들은 합법적 클라이언트의 기밀 데이터를 포함할 수 있다. 합법적 클라이언트는 그러한 액션들이 일어난 것을 인식하지 못 할 수 있다. 또한, 웹 요청 위조는 서버, 클라우드 서비스(cloud service), 또는 다른 플랫폼에서의 가외의 부하로 이어질 수 있고, 합법적 클라이언트에 대한 서비스의 거부를 일으킬 수 있다.
본 개시의 실시예들 및 그의 특징들 및 이점들에 대한 더욱 완벽한 이해를 위해, 이제 첨부 도면들과 함께 다음의 설명에 대해 참조가 이루어진다.
도 1은 본 발명의 일부 실시예들에 따른, 서버에 대한 웹 요청들의 위조의 방지를 위한 예시적인 시스템을 도시한다.
도 2는 본 발명의 일부 실시예들에 따른, 복수의 클라이언트와 연관된 세션-식별자(ID)(s i )의 발생 예를 도시한다.
도 3은 본 발명의 일부 실시예들에 따른, 웹 요청들의 위조를 방지하기 위한 s i 의 활용 예를 도시한다.
도 4a 내지 4c는 본 발명의 일부 실시예들에 따른, 암호화-복호화 프로세스를 활용하여 웹 요청들의 위조를 방지하기 위한 시스템의 동작 예를 도시한다.
도 5는 본 발명의 일 실시예에 따른, 서버에 대한 웹 요청들의 위조의 방지를 위한 방법의 예시적인 실시예를 도시한다.
도 1은 본 발명의 일부 실시예들에 따른, 서버에 대한 웹 요청들의 위조의 방지를 위한 예시적인 시스템(100)을 도시한다. 이러한 서버는 서버(104)를 포함한, 임의의 적절한 전자 장치를 포함할 수 있다. 시스템(100)은 위조에 대해 웹 요청(112)과 같은 정보를 평가하기 위해 통신 모듈(102)을 실행하도록 구성될 수 있다. 일 실시예에서, 통신 모듈(102)은 웹 요청(112)을 가로채거나 그렇지 않으면 수신하도록 구성될 수 있다. 웹 요청(112)은 임의의 적절한 네트워크 통신 요청에 의해 구현될 수 있다. 통신 모듈(102)은 웹 요청(112)을 인증하고, 그 인증 상태에 대해 웹 요청(112)을 평가하고, 및/또는 웹 요청(112)을 거부하도록 구성될 수 있다. 일 실시예에서, 통신 모듈(102)은 랜덤 세션 변수를 선택해서 랜덤 세션 변수에 기초하여 웹 요청(112)의 콘텐츠 파라미터(content parameter)의 해시(hash) 또는 암호 해시(cryptographic hash)를 웹 요청(112)에 첨부하도록 구성될 수 있다.
통신 모듈(102)은 시스템(100)의 임의의 적절한 부분에서 실행하도록 구성될 수 있다. 통신 모듈(102)은 예를 들어, 서버, 컴퓨터, 노드, 게이트웨이, 라우터, 송신기, 또는 수신기에서 실행하도록 구성될 수 있다. 일 실시예에서, 통신 모듈(102)은 서버(104)와 같은 네트워크 서버에서 실행하고 있을 수 있다. 서버(104)는 컴퓨터, 랩톱, 클라우드 컴퓨팅 서버, 블레이드, 데스크톱, 랙 서버, 모바일 장치, 또는 웹 서버와 같은 임의의 적절한 전자 장치에 의해 구현될 수 있다.
일 실시예에서, 서버(104)는 네트워크(126)를 통해 클라이언트들(110)에 통신가능하게 결합되거나 클라이언트들(110)과 통신 상태에 있을 수 있다. 네트워크(126)는 임의의 적절한 방식으로, 예를 들어, 광역 통신망, 근거리 통신망, 무선 네트워크, 인터넷, 인트라넷, 또는 그의 임의의 결합에 의해 구현될 수 있다. 일 실시예에서, 서버(104)는 네트워크(126) 내에 포함될 수 있다. 다른 실시예에서, 서버(104)는 네트워크(126)의 밖에 있을 수 있다. 서버(104)는 네트워크(126)의 외부로부터 네트워크(126) 내의 목적지로 향해진 웹 요청(112)과 같은 트래픽을 수신하도록 구성될 수 있다. 트래픽은 클라이언트(110)로부터 기인할 수 있고, 예를 들어, 컴퓨터, 랩톱, 서버, 핸드헬드 컴퓨팅 장치, 네트워크 장치, 또는 네트워크(126)에 통신가능하게 결합된 다른 디지털 엔티티를 포함할 수 있다.
통신 모듈(102)은 악성 코드를 스캔하기 위해 서버(104)에, 또는 임의의 다른 전자 장치, 서버, 또는 다른 적절한 메커니즘에 상주할 수 있다. 통신 모듈(102)은 예를 들어, 임의의 애플리케이션, 프로세스, 스크립트, 모듈, 실행 파일(executable), 실행 가능한 프로그램, 서버, 실행 가능한 객체, 라이브러리, 또는 다른 적절한 디지털 엔티티로 구현될 수 있다. 통신 모듈(102)은 프로세서(118)와 같은 프로세서에 의한 실행을 위해 로직 또는 명령어들을 포함할 수 있다. 통신 모듈(102)의 명령어들의 로직은 프로세서(118)에 통신가능하게 결합된 메모리(120) 내에 상주할 수 있다.
프로세서(118)는 예를 들어, 프로그램 명령어들 및/또는 프로세스 데이터를 해석 및/또는 실행하도록 구성된 마이크로프로세서, 마이크로컨트롤러, DSP(digital signal processor), ASIC(application specific integrated circuit), 또는 임의의 다른 디지털 또는 아날로그 회로를 포함할 수 있다. 일부 실시예들에서, 프로세서(118)는 메모리(120)에 저장된 프로그램 명령어들 및/또는 프로세스 데이터를 해석 및/또는 실행할 수 있다. 메모리(120)는 애플리케이션 메모리, 시스템 메모리, 또는 둘다로서 부분적으로 또는 전체적으로 구성될 수 있다. 메모리(120)는 하나 이상의 메모리 모듈을 유지 및/또는 수용하도록 구성된 임의의 시스템, 디바이스, 또는 장치를 포함할 수 있다. 각각의 메모리 모듈은 일정 기간 동안 프로그램 명령어들 및/또는 데이터를 유지하도록 구성된 임의의 시스템, 디바이스, 또는 장치를 포함할 수 있다(예를 들어, 컴퓨터 판독 가능한 매체). 암호화/복호화 모듈(114) 및/또는 통신 모듈(102)을 위한 명령어들, 로직, 또는 데이터가 프로세서(118)에 의한 실행을 위해 메모리(120)에 상주할 수 있다.
프로세서(118)는 프로세서들의 하나 이상의 코어에 의해 실행되도록 하나 이상의 코드 명령어(들)를 실행할 수 있다. 프로세서 코어들은 코드 명령어들로 표시되는 명령어들의 프로그램 시퀀스를 따를 수 있다. 각각의 코드 명령어는 프로세서(118)의 하나 이상의 디코더에 의해 처리될 수 있다. 디코더는 그의 출력으로서 미리 정의된 포맷의 고정 폭 마이크로 연산과 같은 마이크로 연산을 발생할 수 있거나, 또는 다른 명령어들, 마이크로 명령어들, 또는 제어 신호들을 발생할 수 있고, 이것은 오리지널 코드 명령어를 반영한다. 프로세서(118)는 또한, 일반적으로 리소스들을 할당하고 실행을 위한 개조 명령어(convert instruction)에 대응하는 동작을 큐잉(queue)하는, 레지스터 재명명 로직 및 스케줄링 로직을 포함할 수 있다. 코드 명령어들에 의해 특정된 동작들의 실행 완료 후에, 프로세서(118) 내의 백엔드 로직이 명령어를 퇴거(retire)할 수 있다. 일 실시예에서, 프로세서(118)는 비순차적 실행을 허용할 수 있지만, 명령어들의 순차적 퇴거를 요구한다. 프로세서들 내의 퇴거 로직은 이 기술분야의 통상의 기술자에게 알려진 바와 같은 다양한 형태를 취할 수 있다(예를 들어, 재정렬 버퍼들 등). 프로세서(118)의 프로세서 코어들은 그에 따라, 적어도 디코더에 의해 발생된 출력, 레지스터 재명명 로직에 의해 활용되는 하드웨어 레지스터들 및 테이블들, 및 실행 로직에 의해 수정된 임의의 레지스터들에 대하여, 코드의 실행 동안 변환된다.
일 실시예에서, 통신 모듈(102)은 웹 요청(112)을 수신 및/또는 처리하기 위해 암호화/복호화 모듈(114) 또는 서버(104)의 다른 부분들에 통신가능하게 결합될 수 있다. 암호화/복호화 모듈(114)은 웹 요청(112)에 대한 암호화 또는 복호화 작업을 수행할 수 있다. 일부 실시예에서, 암호화/복호화 모듈(114)은 예를 들어, 임의의 애플리케이션, 프로세스, 스크립트, 모듈, 실행 파일, 실행 가능한 프로그램, 서버, 실행 가능한 객체, 라이브러리, 또는 다른 적절한 디지털 엔티티로 구현될 수 있다. 암호화/복호화 모듈(114)은 프로세서(118)와 같은 프로세서에 의한 실행을 위해 로직 또는 명령어들을 포함할 수 있다. 암호화/복호화 모듈(114)의 명령어들의 로직은 프로세서(118)에 통신가능하게 결합된 메모리(120) 내에 상주할 수 있다.
암호화/복호화 모듈(114)은 본원에 설명된 바와 같이 구성되는 임의의 적절한 모듈, 함수, 스크립트, 실행 파일, 애플리케이션, 로직, 소프트웨어, 하드웨어, 펌웨어, 또는 그의 결합에 의해 구현될 수 있다. 암호화/복호화 모듈(114)은 임의의 적절한 세트의 파일들, 명령어들, 또는 다른 디지털 정보에 의해 구현될 수 있다. 암호화/복호화 모듈(114)은 예를 들어, 오퍼레이팅 시스템, 가상 배치 환경(virtual deployment environment) 또는 보안 브라우저(secured browser)와 같은 보안 모듈과 같은 가상 머신 인스톨레이션(virtual machine installation)을 형성하는 파일들 또는 다른 정보의 세트를 포함할 수 있다. 암호화/복호화 모듈(114)은 다수의 서버들(104) 또는 클라이언트들(110) 사이에 동일한 방식으로 설치 및 구성될 그러한 인스톨레이션을 포함할 수 있다. 단일 암호화/복호화 모듈(114)이 예시되지만, 서버(104)는 특정 방식으로 구성되는 상이한 오퍼레이팅 시스템과 같은 다양한 콘텐츠를 갖는 인스톨레이션 또는 디스크 이미지들을 포함할 수 있는 많은 그러한 이미지들을 포함할 수 있다. 그러한 이미지들은 예를 들어, 다양한 서버들(104) 또는 클라이언트들(110)에 공통 가상 머신 실행 이미지들을 구축하는 데 이용될 수 있다.
일부 실시예에서, 암호화/복호화 모듈(114)은 난수를 발생하고, 암호화 키(예를 들어, RSA 키)를 발생하고, 하드웨어 및 소프트웨어 컴포넌트들의 해시 키 테이블들을 발생 및 유지하고, 하드웨어 및 소프트웨어 컴포넌트들과 연관된 구성 파라미터들을 발생 및 유지하고, 키를 랩(wrap)하고(예를 들어, 암호화하고), 키를 언랩(unwrap)하고(예를 들어, 복호화하고) 및/또는 키(예를 들어, 보증 키(endorsement key), 스토리지 루트 키(storage root key), 증명서 식별 키(attestation identity key), 스토리지 키)를 저장하도록 구성될 수 있다. 암호화/복호화 모듈(114)은 복수의 암호 함수(예를 들어, 암호화 알고리즘, 알고리즘 모드, 암호 해시, 및/또는 암호 서명 함수)를 실행하도록 구성될 수 있고, 및/또는 암호화 작업을 위한 암호화 키(예를 들어, 소프트웨어 프로그램 또는 다른 엔티티에 의해 제공된 암호화 키 또는 암호화 키)를 로드하도록 구성될 수 있다.
각각의 클라이언트(110)는 컴퓨터, 랩톱, 모바일 장치, 또는 서버와 같은 임의의 적절한 전자 장치에 의해 구현될 수 있다. 클라이언트(110)의 예시적인 실시예가 도시되지만, 각각의 클라이언트(110)는 다른 그러한 클라이언트들로부터 구현에서 달라질 수 있다. 클라이언트(110)는 서버에 통신가능하게 결합된 하나 이상의 클라이언트 통신 모듈을 포함할 수 있다. 클라이언트 통신 모듈들은 임의의 적절한 방식으로 또는 임의의 적절한 메커니즘에 의해, 예를 들어, 모듈, 함수, 로직, 라이브러리, 실행 파일, 애플리케이션, 스크립트, 소프트웨어, 하드웨어, 펌웨어, 또는 그의 결합에 의해 구현될 수 있다. 클라이언트(110)는 메모리에 결합된 프로세서를 포함할 수 있다. 프로세서는 메모리에 의해 실행될 명령어들을 포함할 수 있다.
웹 요청(112)은 예를 들어, 웹페이지 요청 및/또는 질의를 포함할 수 있다. 통신 모듈(102)에 의해 분석될 웹 요청(112)의 부분들은 예를 들어, 하이퍼링크, 다른 제3자로의 어드레스들, 및/또는 다른 적절한 정보를 포함할 수 있다. 통신 모듈(102)은 콘텐츠에 기초하여 디지털 서명 또는 해시를 생성함으로써 웹 요청(112)의 부분들을 고유하게 식별하도록 구성될 수 있다. 고유 식별은 웹 요청(112)을 식별하기 위해 통신 모듈(102)에 의해 이용될 수 있다.
본 개시는 임의의 적절한 스토리지를 구현하는 하나 이상의 컴퓨터 판독 가능한 저장 매체를 고려한다. 일부 실시예들에서, 컴퓨터 판독 가능한 저장 매체는 적절한 경우, 프로세서(118)의 하나 이상의 부분들(예를 들어, 하나 이상의 내부 레지스터들 또는 캐시들), 메모리(120)의 하나 이상의 부분들, 또는 이들의 결합을 구현할 수 있다. 일부 실시예들에서, 컴퓨터 판독 가능한 저장 매체는 휘발성 또는 지속성 메모리를 구현할 수 있다. 일부 실시예들에서, 하나 이상의 컴퓨터 판독 가능한 저장 매체는 소프트웨어를 구현할 수 있다. 소프트웨어는 적절한 경우, 하나 이상의 애플리케이션, 바이트코드, 하나 이상의 컴퓨터 프로그램, 하나 이상의 실행 파일들, 하나 이상의 명령어들, 로직, 머신 코드, 하나 이상의 스크립트, 또는 소스 코드를 포함할 수 있고, 반대의 경우도 마찬가지이다. 일부 실시예들에서, 소프트웨어는 하나 이상의 애플리케이션 프로그래밍 인터페이스(application programming interface; API)를 포함할 수 있다. 본 개시는 임의의 적절한 프로그래밍 언어 또는 프로그래밍 언어들의 결합으로 기입된 또는 그렇지 않으면 표현된 임의의 적절한 소프트웨어를 고려한다. 일부 실시예들에서, 소프트웨어는 소스 코드 또는 객체 코드로서 표현될 수 있다. 특정 실시예들에서, 소프트웨어는 예를 들어, C, Perl, 또는 그의 적절한 확장과 같은 더 높은 레벨의 프로그래밍 언어로 표현될 수 있다. 일부 실시예들에서, 소프트웨어는 어셈블리 언어(또는 머신 코드)와 같은 더 낮은 레벨의 프로그래밍 언어로 표현될 수 있다. 일부 실시예들에서, 소프트웨어는 JAVA로 표현될 수 있다. 일부 실시예들에서, 소프트웨어는 HTML(Hyper Text Markup Language), XML(Extensible Markup Language), 또는 다른 적절한 마크업 언어로 표현될 수 있다.
도 2는 본 발명의 일부 실시예들에 따른, 복수의 클라이언트와 연관된 세션-식별자(ID)(s i )의 발생 예를 도시한다. 서버(104)는 클라이언트들(110a, 110b, 및 110c)과 같은 클라이언트로부터, 초기 통신, 예를 들어, 웹 요청(112)에 기초하여 세션 ID(s i )를 발생할 수 있다. 각각의 s i 는 클라이언트에 고유하고 및/또는 클라이언트와의 특정 세션(또는 대화)에 고유할 수 있다. 예를 들어, 서버(104)와 클라이언트(110a) 간의 복수의 통신들은 통신이 종료되거나 완료될 때까지, 예를 들어, 웹 요청이 완료될 때까지 하나의 s i 와 연관될 수 있다. 서버(104)와 클라이언트(110a) 간의 후속 통신은 새로운 s i 를 발생할 수 있다. s i 는 세션 관리를 위해 활용될 수 있고, 서버(104)에 의해 자동으로 발생될 수 있다.
도 3은 본 발명의 일부 실시예들에 따른, 웹 요청들의 위조를 방지하기 위한 s i 의 활용 예를 도시한다. 클라이언트(110)는 정보 및/또는 데이터의 복수의 부분들을 포함할 수 있는 웹페이지(310)에 대한 웹 요청(112)을 서버(104)에 전송할 수 있다. 일부 실시예들에서, 서버(104)는 플레이스홀더(placeholder)(314)와 같은 플레이스홀더로서 웹페이지에 나타날 수 있는 질의들을 요청된 웹페이지, 예를 들어, 웹페이지(310)에 내장할 수 있다. 질의들을 웹페이지에 내장하는 것은 질의들에 관한 부분들이 더 느린 속도로 로드할 수 있는 동안 웹페이지의 부분들이 빠르게 로드할 수 있게 할 수 있다. 이것은, 전체 웹페이지를 로딩하는 것이 질의들로부터의 결과들을 기다리는 것을 요구하는 경우에 일어날 수 있는 지연 없이 클라이언트가 요청된 웹페이지에 대한 어떤 액세스를 가질 수 있게 할 수 있다. 예를 들어, 질의들을 활용하는 것은 특정 데이터 아이템을 클라이언트(110)에 제공하는 데 걸리는 시간을 T로부터 T/n으로 줄일 수 있고, T는 서버(104) 상의 n 요청들을 완료하는 데 걸리는 시간일 수 있다. 따라서, 웹페이지들에 대한 응답 시간은 웹페이지의 다른 부분들이 로드한 후에 시간 소비 요소(time consuming element)들 중 일부를 로드함으로써 향상될 수 있다. 시간 소비 요소들은 서버에 대한 후속 요청들을 통해 로드될 수 있다. 그러한 로딩은 요청들을 처리할 수 있는 API들을 요구할 수 있다. API들은 오직 클라이언트(110)와 같은 인증된 클라이언트들에 의해 액세스 가능할 수 있다.
일부 실시예들에서, 웹 요청(112)은 서버(104)로부터의 데이터(302)의 특정 요소에 대한 플레이스홀더(314)를 포함할 수 있다. 데이터(302)는 복수의 요소들로 이루어질 수 있다. 요소 1(E 1 )은 "abc"와 같은 데이터(302)의 특정 세그먼트를 포함할 수 있다. 요소 2(E 2 )는 "def"와 같은 데이터(302)의 세그먼트를 포함할 수 있다. 요소 3(E 3 )은 "ghi"와 같은 데이터(302)의 세그먼트를 포함할 수 있고, 요소 4(E 4 )는 "jkl"와 같은 데이터(302)의 세그먼트를 포함할 수 있다. 서버(104)는 헤더 정보 및/또는 다른 적절한 데이터 및/또는 정보와 같은, 웹페이지(310)의 부분들을 리턴할 수 있다. 서버(104)는 E 1 , 예를 들어, "abc"에 대한 플레이스홀더(314)를 클라이언트(110)에 리턴할 수 있다. 웹페이지(310), 예를 들어, 플레이스홀더(314)와 포함되어서, 서버(104)는 특정 세션 및 클라이언트(110)에 고유한 s i 를 리턴할 수 있다.
클라이언트(110)는 플레이스홀더(314)를 위해 E 1 을 요청하기 위한 후속 요청 또는 호출(316), 예를 들어, "abc"를 요청하기 위한 "server.com?query=abc"을 전송할 수 있다. 예를 들어, 후속 요청은 비동기식 자바스크립트 및 XML(AJAX) 요청일 수 있다. 후속 요청들은 웹 애플리케이션들이 기존의 웹페이지의 표시 또는 거동과 간섭하지 않고 비동기식으로(예를 들어, 배경에서) 서버(104)로부터 데이터를 전송할 수 있게 하거나 데이터를 검색할 수 있게 할 수 있다. 예를 들어, 후속 요청들은 전체 웹페이지를 재로드하지 않고 웹페이지의 부분들을 갱신하기 위해 서버(104)에 데이터를 통신하는 것을 포함할 수 있다. 따라서, 후속 요청은 웹 요청(112)의 부분들을 포함할 수 있다. 후속 요청(316)은 후속 요청(316)이 클라이언트(110)로부터 기인하고 상이한 소스로부터 기인하지 않는다는 것을 확립하기 위해 s i 를 포함할 수 있다. 서버(104)는 E 1 또는 "abc"로 플레이스홀더(314)를 채울 수 있다.
도 4a 내지 4c는 본 발명의 일부 실시예들에 따른, 암호화-복호화 프로세스를 활용하여 웹 요청들의 위조를 방지하기 위한 시스템(100)의 동작 예를 도시한다. 도 4a 내지 4c는 s i 이외에 랜덤 세션 변수(s v )를 활용할 수 있다. s v 는 클라이언트(110)와의 세션에 고유할 수 있는 랜덤 수 또는 문자일 수 있다. 그러나, s i 와 달리, s v 는 오직 서버(104)가 s v 의 값을 알고 있도록 서버(104)에 의해 유지될 수 있다.
도 4a에서, 클라이언트(110)는 서버(104)에 웹 요청(112)을 전송할 수 있다. 웹 요청(112)은 웹페이지 또는 다른 적절한 정보에 대한 요청을 포함할 수 있다. 웹 요청(112)은 요청의 부분들에 대한 콘텐츠 파라미터들, 예를 들어, 웹페이지의 부분들에 대한 콘텐츠에 대한 요청들을 포함할 수 있다. 통신 모듈(102) 및/또는 암호화/복호화 모듈(114)을 통해 서버(104)는 s i 를 발생해서 클라이언트(110)와의 세션을 식별할 수 있다. 또한, 통신 모듈(102) 및/또는 암호화/복호화 모듈(114)을 통해 서버(104)는 클라이언트(110) 및 웹 요청(112)과 연관된 s v 를 발생 및 저장할 수 있다. 예를 들어, 암호화/복호화 모듈(114)은 s v 를 발생해서 서버(104) 상의 사용자 세션 변수들에 그것을 저장할 수 있다. 서버(104)는 s v 를 유지할 수 있고 클라이언트(110)에 s v 의 값을 리턴하지 않을 수 있어서, 서버(104)만이 s v 의 값을 알 수 있다.
도 4b에서, 서버(104)는 클라이언트(110)에 웹 요청(112)의 부분들을 리턴할 수 있다. 예를 들어, 웹 요청(112)이 웹페이지(310)를 요청한 경우, 서버(104)는 클라이언트(110)에 웹페이지(310)의 부분들을 리턴할 수 있다. 서버(104)는 또한 클라이언트(110)로부터의 후속 요청들이 클라이언트(110)에서 기인하는 것으로서 식별될 수 있도록 s i 의 값을 리턴할 수 있다.
서버(104)는 s v 에 기초한 암호화 알고리즘을 이용해서, 예를 들어, 웹페이지(310)와 연관된, 클라이언트(110)로의 응답을 암호화할 수 있다. 예를 들어, 암호화/복호화 모듈(114), 또는 다른 적절한 암호화 시스템 또는 방법은 웹 요청(112)과 연관된 콘텐츠 파라미터들의 해시를 발생할 수 있다. 해시 값은 계산되어서 웹 요청(112)의 콘텐츠 파라미터들에 첨부될 수 있다. 암호화/복호화 모듈(114)은 암호화된 스트링(402)을 발생하기 위해 s v 에 기초한 암호화 알고리즘을 활용하여 데이터의 결과적인 스트링을 암호화할 수 있다. 따라서, 서버(104)로부터 클라이언트(110)로의 응답은 s v 를 활용한 알고리즘에 의해 암호화될 수 있다.
일부 실시예에서, 도 3을 참조하여 논의된 바와 같이, 서버(104)는 요청된 웹페이지(310)에 질의들을 내장할 수 있다. 웹페이지(310)는 클라이언트(110)에 의해 만들어진 웹 요청(112)에 기초하여 리턴될 수 있다. 그러나, 서버(104)는 실제 요청을 전송하는 대신에 암호화된 스트링(402)(예를 들어, 콘텐츠 파라미터 및 콘텐츠 파라미터의 해시)을 전송할 수 있다. 예를 들어, 클라이언트(110)는 요청된 콘텐츠 파라미터일 수 있는, 플레이스홀더(314)를 채우기 위한 E 1 , 예를 들어, "abc"를 요청할 수 있다. 암호화/복호화 모듈(114)은 콘텐츠 파라미터의 해시를 첨부하고 함수 encrypt (data, key)를 통해 스트링을 암호화할 수 있다. 예를 들어, 데이터의 스트링은 "abc + HASH(abc)"일 수 있고, 키는 s v 일 수 있어서, 전체 암호화된 스트링은 encrypt (abc + HASH(abc), s v )일 수 있다. 따라서, 예로서, 오리지널 질의들이 "http://server.com?param1=abc"일 수 있다면, 응답은 "http://server.com?query=b23j12b3kj5b1k25jb"일 수 있다. 추가 예로서, 오리지널 콘텐츠 파라미터 질의는 "http://server.com?param1=ghi"일 수 있고, 암호화된 질의는 "http://server.com?query=asdmasd999asd9sak"일 수 있다. s v 는 서버(104)에 의해서만 알려지기 때문에, 클라이언트(110)에 대한 요청을 위조하려는 임의의 시도는 위조자가 s v 에 대한 액세스를 갖지 않을 수 있기 때문에 성공적이지 않을 수 있다.
도 4c에서, 클라이언트(110)는 웹페이지(310)를 완료하기 위한 복수의 후속 요청들을 전송할 수 있다. 후속 요청들 각각은 암호화된 스트링(402)을 포함할 수 있다. 따라서, 암호화된 스트링(402)은 서버(104)로부터 클라이언트(110)로, 및 그 반대로 전송된 임의의 응답으로 활용될 수 있다. 따라서, 서버(104)에 대한 클라이언트(110)에 의해 만들어진 후속 요청들(404, 406, 408)과 같은 임의의 장래 후속 요청들은 암호화된 스트링(402)을 포함할 수 있다. 임의의 악성 요청은 동일한 암호화를 갖지 않을 수 있는데, 그것은 s v 가 오직 서버(104)에 알려질 수 있고 각각의 클라이언트(110)에 고유할 수 있기 때문이다. 따라서, 서버(104)가 알려진 포맷으로 그러한 요청들을 복호화할 수 없기 때문에 악성 요청들은 실패할 수 있다. 클라이언트(110)는 서버(104)로부터 결과들을 리턴하기 위해 후속 요청들(404, 406, 408)을 활용할 수 있다. 따라서, 일부 실시예에서, 실제 요청 파라미터, 예를 들어, "abc"를 전송하는 대신에, 클라이언트(110)는 암호화된 스트링(402), 예를 들어, encrypt (abc + HASH (abc), s v )를 전송할 수 있다.
서버(104)는 암호화/복호화 모듈(114)을 통해, 콘텐츠 파라미터 및 콘텐츠 파라미터의 해시를 얻기 위해 클라이언트(110)로부터 후속 요청들(404, 406, 및 408)을 복호화할 수 있다. 통신 모듈(102)은 그 다음에 복호화된 값을 이용하여 후속 요청들(404, 406, 및 408)을 인증할 수 있다. 암호화에 이용된 키, 예를 들어, s v 는 서버(104)에만 알려지기 때문에, 요청을 위조하려는 임의의 시도는 실패할 수 있다. 또한, 클라이언트(110)가 일부 다른 키로 콘텐츠 파라미터를 암호화한 경우, 해시 비교도 실패할 수 있다. 통신 모듈(102)이 AJAX 요청들(404, 406, 및 408)을 인증한 후에, 서버(104)는 요청된 정보 및/또는 데이터를 리턴할 수 있다. 그러나, 통신 모듈(102)이 후속 요청들(404, 406, 및 408)의 인증에 실패한 경우, 웹 요청들은 위조된 것이라고 결정될 수 있다. 그러한 경우, 서버(104)에 의해 응답이 리턴되지 않을 수 있거나, 또는 리턴된 임의의 응답이 알려진 포맷으로 복호화되지 않을 수 있다.
도 5는 본 발명의 일 실시예에 따른, 서버에 대한 웹 요청들의 위조의 방지를 위한 방법(500)의 예시적인 실시예를 도시한다. 방법(500)은 다양한 컴퓨터 프로그램, 모델, 또는 그의 임의의 결합에 의해 수행될 수 있다. 프로그램들 및 모델들은 컴퓨터 판독 가능한 매체에 저장되어, 실행될 때, 아래 설명된 방법(500)의 부분들 중 하나 이상을 수행하도록 동작 가능한, 명령어들을 포함할 수 있다. 컴퓨터 판독 가능한 매체는 하드 디스크 드라이브, 콤팩트 디스크, 플래시 메모리 또는 임의의 다른 적절한 디바이스와 같은 프로그램들 또는 명령어들을 저장 및 검색하도록 구성된 임의의 시스템, 장치 또는 디바이스를 포함할 수 있다. 프로그램들 및 모델들은 컴퓨터 판독 가능한 매체로부터 명령어들을 검색 및 실행하라고 프로세서 또는 다른 적절한 유닛에 지시하도록 구성될 수 있다. 예시의 목적을 위해, 방법(500)은 도 1의 네트워크(100)와 관련하여 설명되지만, 방법(500)은 임의의 적절한 네트워크 상의 웹 요청들의 위조를 방지하기 위해 이용될 수 있다. 또한, 네트워크를 참조하여 논의되지만, 방법(500)의 부분들 또는 전부가 서버(104) 및/또는 임의의 다른 적절한 컴포넌트를 포함한 네트워크(100)의 컴포넌트에 의해 실행될 수 있다.
505에서, 서버(104)는 클라이언트(110)로부터 웹 요청(112)을 수신할 수 있다. 510에서, 서버(104)는 도 2 및 도 3을 참조하여 논의한 바와 같이 클라이언트(110)의 식별자를 결정하여 클라이언트(110) 및/또는 현재 세션과 연관된 세션 ID(s i )를 발생할 수 있다.
515에서, 서버(104)는 클라이언트(110) 및/또는 웹 요청(112)에 고유할 수 있는 랜덤 세션 변수(s v )를 발생할 수 있다. 도 4a를 참조하여 논의한 바와 같이 서버(104), 통신 모듈(102) 및/또는 암호화/복호화 모듈(114)은 s v 을 저장할 수 있고, 클라이언트(110)에 s v 의 값을 통신하지 않을 수 있다.
520에서, 서버(104)는 콘텐츠 파라미터들에 웹 요청의 콘텐츠 파라미터들의 해시를 발생 및 첨부할 수 있다. 예를 들어, 도 4a를 참조하여 논의한 바와 같이 새로운 스트링, 예를 들어, (abc + HASH (abc))을 생성하기 위해 콘텐츠 파라미터들의 해시가 계산되어 콘텐츠 파라미터들의 현재 스트링에 첨부될 수 있다.
525에서, 서버(104)는 s v 에 기초한 암호화 알고리즘을 활용하여 콘텐츠 파라미터들의 완전한 스트링을 암호화할 수 있다. 예를 들어, 도 4b를 참조하면, 결과적인 암호화된 스트링은 함수 encrypt (abc + HASH(abc), s v )에 기초할 수 있다. 따라서, 예로서, 오리지널 질의들이 "abc"(또는 도 3을 참조하면 E 1 )를 요청하기 위해 "http://server.com?param1=abc"일 수 있다면, 응답은 "http://server.com?query=b23j12b3kj5b1k25jb"일 수 있다.
530에서, 서버(104)는 클라이언트에 대해 요청의 결과들의 부분들을 통신할 수 있다. 예를 들어, 클라이언트(110)는 정보 및/또는 데이터의 복수의 부분들을 포함할 수 있는 웹페이지(310)에 대한 웹 요청(112)을 서버(104)에 전송할 수 있다. 서버(104)는 요청된 웹페이지, 예를 들어, 웹페이지(310)의 부분들을 리턴할 수 있고, 도 3 및 도 4b에 도시된, 플레이스홀더(314)와 같은 플레이스홀더로서 웹페이지에 나타날 수 있는 질의들을 웹페이지(310)에 내장할 수 있다. 또한, 서버(104)로부터의 응답은 콘텐츠 파라미터들의 암호화된 스트링, 예를 들어, 암호화된 스트링(402)을 포함할 수 있다.
535에서, 서버(104)는 클라이언트(110)로부터 후속 요청 또는 호출을 수신할 수 있다. 540에서, 서버(104)는 s i 및/또는 s v 에 기초하여 후속 호출을 인증할 수 있다. 예를 들어, 통신 모듈(102)은 암호화/복호화 모듈(114)과 후속 요청들을 인증할 수 있다.
545에서, 서버(104)는 후속 요청들이 인증된 것인지를 결정할 수 있다. 후속 요청들이 인증된 경우, 서버(104)는 550에서 요청된 정보를 리턴할 수 있다. 그러나, 암호화/복호화 모듈(114)이 후속 요청들의 인증에 실패한 경우, 웹 요청들은 위조된 것이라고 결정될 수 있다. 그러한 경우, 서버(104)로부터 응답이 리턴되지 않을 수 있거나, 또는 리턴된 임의의 응답이 알려진 포맷으로 복호화되지 않을 수 있고, 방법(500)은 505로 돌아갈 수 있다.
방법(500)은 도 1 또는 도 2의 시스템 또는 방법(500)을 구현하도록 동작 가능한 다른 시스템을 이용하여 구현될 수 있다. 이와 같이, 방법(500)에 대한 바람직한 초기화 시점 및 방법(500)을 포함하는 요소들의 순서는 선택된 구현에 의존할 수 있다. 일부 실시예에서, 일부 요소들은 선택적으로 생략, 반복, 또는 결합될 수 있다. 특정 실시예들에서, 방법(500)은 컴퓨터 판독 가능한 매체에 구현된 소프트웨어로 부분적으로 또는 완전히 구현될 수 있다.
다음의 예들은 추가 실시예들에 관한 것이다.
네트워크 통신 요청의 보안을 위한 시스템이 구성될 수 있다. 시스템은 전술한 방법 또는 컴퓨터 판독 가능한 매체의 임의의 적절한 부분들 또는 결합을 구현할 수 있다. 시스템은 클라이언트로부터 네트워크 통신 요청을 수신하도록 구성된 통신 모듈을 포함할 수 있다. 네트워크 통신 요청은 콘텐츠 파라미터를 가질 수 있다. 통신 모듈은 또한 클라이언트와 연관된 세션 변수를 발생하도록 구성될 수 있다. 통신 모듈은 또한 콘텐츠 파라미터들 및 콘텐츠 파라미터의 해시를 포함하는 콘텐츠 파라미터들의 스트링을 발생하도록 구성될 수 있다. 통신 모듈은 콘텐츠 파라미터들의 암호화된 스트링을 포함하여 클라이언트에 네트워크 통신 요청의 결과의 부분들을 통신하도록 구성될 수 있다. 통신 모듈은 클라이언트로부터 후속 요청을 수신하도록 구성될 수 있다. 후속 요청은 네트워크 통신 요청과 연관될 수 있다. 통신 모듈은 후속 요청을 인증하는 결과로서, 네트워크 통신 요청을 완료하도록 구성될 수 있다. 후속 요청을 인증하는 것은, 후속 요청으로 콘텐츠 파라미터들의 암호화된 스트링이 리턴함을 검증하는 것을 포함할 수 있다. 네트워크 통신 요청은 웹 요청일 수 있다. 세션 변수는 또한 네트워크 통신 요청과 연관될 수 있다. 통신 모듈은 또한 네트워크 통신 요청과 연관되는 세션 식별자를 발생해서 클라이언트에 세션 식별자를 통신하도록 구성될 수 있다. 통신 모듈은 또한 클라이언트와 연관된 세션 변수를 발생하도록 구성될 수 있다. 통신 모듈이 후속 요청을 인증하는 것은 세션 식별자 및 세션 변수에 기초할 수 있다. 또한, 후속 요청은 비동기식 자바스크립트 및 확장성 마크업 언어(asynchronous JavaScript and extensible markup language)(AJAX) 요청일 수 있다. 세션 변수는 랜덤 변수일 수 있다. 또한, 해시는 암호 해시일 수 있다.
서버에 대한 네트워크 통신 요청의 위조 방지를 위한 방법이 전자 장치에서 수행될 수 있다. 후술하는 바와 같이, 방법의 임의의 적절한 부분들 또는 양태들은 컴퓨터 판독 가능한 저장 매체에 또는 시스템에 구현될 수 있다. 방법은 요소들, 액션들, 또는 특징들의 임의의 적절한 결합을 포함할 수 있다. 예를 들어, 방법은 클라이언트로부터 네트워크 통신 요청을 수신하는 단계를 포함할 수 있다. 네트워크 통신 요청은 콘텐츠 파라미터를 가질 수 있다. 또한, 방법은 클라이언트와 연관된 세션 변수를 발생하는 단계를 포함할 수 있다. 방법은 또한 콘텐츠 파라미터들 및 콘텐츠 파라미터의 해시를 포함하는 콘텐츠 파라미터들의 스트링을 발생하는 단계를 포함할 수 있다. 방법은 콘텐츠 파라미터들의 암호화된 스트링을 포함하여 클라이언트에 네트워크 통신 요청의 결과의 부분들을 통신하는 단계를 포함할 수 있다. 또한, 방법은 클라이언트로부터 후속 요청을 수신하는 단계를 포함할 수 있다. 후속 요청은 네트워크 통신 요청과 연관될 수 있다. 방법은 후속 요청을 인증하는 결과로서, 네트워크 통신 요청을 완료하는 단계를 포함할 수 있다. 후속 요청을 인증하는 것은, 후속 요청으로 콘텐츠 파라미터들의 암호화된 스트링이 리턴함을 검증하는 것을 포함할 수 있다. 네트워크 통신 요청은 웹 요청일 수 있다. 또한, 세션 변수는 네트워크 통신 요청과 연관될 수 있다. 방법은 또한 네트워크 통신 요청과 연관되는 세션 식별자를 발생해서, 클라이언트에 세션 식별자를 통신하는 단계를 포함할 수 있다. 방법은 클라이언트와 연관된 세션 변수를 발생하는 단계를 포함할 수 있다. 후속 요청을 인증하는 것은 세션 식별자 및 세션 변수에 기초할 수 있다. 부가적으로, 후속 요청은 비동기식 자바스크립트 및 확장성 마크업 언어(AJAX) 요청일 수 있다. 세션 변수는 랜덤 변수일 수 있다. 또한, 해시는 암호 해시일 수 있다.
컴퓨터 판독 가능한 저장 매체는 컴퓨터 판독 가능한 매체에 기억된 컴퓨터 실행 가능한 명령어들을 포함할 수 있다. 다양한 양태의 매체가 전술한 방법 또는 후술한 시스템의 임의의 적절한 부분들 또는 결합들을 구현할 수 있다. 명령어들은 프로세서에 의해 판독 가능할 수 있다. 명령어들은, 판독되어 실행될 때, 프로세서로 하여금, 클라이언트로부터 네트워크 통신 요청을 수신하도록 할 수 있다. 네트워크 통신 요청은 콘텐츠 파라미터를 가질 수 있다. 프로세서는 클라이언트와 연관된 세션 변수를 발생하도록 야기될 수 있다. 또한, 프로세서는 콘텐츠 파라미터들 및 콘텐츠 파라미터의 해시를 포함하는 콘텐츠 파라미터들의 스트링을 발생하도록 야기될 수 있다. 프로세서는 콘텐츠 파라미터들의 암호화된 스트링을 포함하여 클라이언트에 네트워크 통신 요청의 결과의 부분들을 통신하도록 야기될 수 있다. 또한, 프로세서는 클라이언트로부터 후속 요청을 수신하도록 야기될 수 있다. 후속 요청은 네트워크 통신 요청과 연관될 수 있다. 프로세서는 후속 요청을 인증하는 결과로서, 네트워크 통신 요청을 완료하도록 야기될 수 있다. 후속 요청을 인증하는 것은, 후속 요청으로 콘텐츠 파라미터들의 암호화된 스트링이 리턴함을 검증하는 것을 포함할 수 있다. 네트워크 통신 요청은 웹 요청일 수 있다. 세션 변수는 또한 네트워크 통신 요청과 연관될 수 있다. 프로세서는 또한 네트워크 통신 요청과 연관되는 세션 식별자를 발생해서, 클라이언트에 세션 식별자를 통신하도록 야기될 수 있다. 후속 요청은 비동기식 자바스크립트 및 확장성 마크업 언어(AJAX) 요청일 수 있다. 부가적으로, 세션 변수는 랜덤 변수일 수 있다. 또한, 해시는 암호 해시일 수 있다.
본원에 기재된 모든 예들 및 조건부 언어는 읽는 사람이 본 발명자에 의해 기술 발전에 기여된 본 발명의 실시예들 및 개념들을 이해하는 데 도움을 주기 위한 교육적 목적을 위해 의도되고, 그러한 특정하게 기재된 예들 및 조건들로 한정되지 않는 것으로 해석된다. 본 발명의 실시예들이 상세히 설명되었지만, 본 발명의 취지 및 범위에서 벗어나지 않고 그에 대한 다양한 변경, 치환, 및 개조가 행해질 수 있다는 것을 이해해야 한다.
102: 통신 모듈
104: 서버
110: 클라이언트
114: 암호화/복호화 모듈
118: 프로세서
120: 메모리
126: 네트워크

Claims (11)

  1. 서버에 대한 네트워크 통신 요청의 위조를 방지하기 위한 방법으로서,
    클라이언트로부터 상기 네트워크 통신 요청을 수신하는 단계;
    상기 클라이언트의 식별자를 결정하는 단계;
    상기 클라이언트에 고유한 파라미터를 발생하는 단계;
    상기 네트워크 통신 요청에 상기 파라미터의 해시(hash)를 첨부하는 단계;
    상기 파라미터의 해시를 포함하여 상기 클라이언트에 상기 네트워크 통신 요청의 결과들의 부분들을 통신하는 단계;
    상기 클라이언트로부터 상기 네트워크 통신 요청과 연관된 비동기식 호출(asynchronous call)을 수신하는 단계;
    상기 비동기식 호출을 인증하는 결과로서, 상기 네트워크 통신 요청을 완료하는 단계
    를 포함하는 위조 방지 방법.
  2. 제1항에 있어서, 상기 비동기식 호출을 인증하는 것은 상기 비동기식 호출로 리턴된 상기 파라미터의 해시를 검증하는 것을 포함하는 위조 방지 방법.
  3. 제1항에 있어서, 상기 네트워크 통신 요청은 웹 요청인 위조 방지 방법.
  4. 제1항에 있어서, 상기 파라미터는 상기 네트워크 통신 요청에 고유한 위조 방지 방법.
  5. 제1항에 있어서, 상기 네트워크 통신 요청에 고유한 세션 식별자를 발생하는 단계를 더 포함하는 위조 방지 방법.
  6. 제1항에 있어서, 상기 비동기식 호출은 비동기식 자바스크립트 및 확장성 마크업 언어(asynchronous javascript and extensible markup language)(AJAX) 호출인 위조 방지 방법.
  7. 제1항에 있어서, 상기 파라미터는 랜덤 변수인 위조 방지 방법.
  8. 제1항에 있어서, 상기 해시는 암호 해시(cryptographic hash)인 위조 방지 방법.
  9. 컴퓨터 판독 가능한 저장 매체로서,
    상기 컴퓨터 판독 가능한 매체에 기억된 컴퓨터 실행 가능한 명령어들을 포함하고, 상기 명령어들은 프로세서에 의해 판독 가능하고, 상기 명령어들은, 판독되어 실행될 때, 상기 프로세서로 하여금, 제1항 내지 제8항 중 어느 한 항의 방법을 수행하도록 하기 위한 것인 컴퓨터 판독 가능한 저장 매체.
  10. 네트워크 통신 요청의 위조를 방지하기 위한 시스템으로서,
    메모리;
    상기 메모리에 결합된 프로세서
    를 포함하고, 상기 프로세서는 제1항 내지 제8항 중 어느 한 항의 방법을 수행하도록 구성되는 위조 방지 시스템.
  11. 네트워크 통신 요청의 위조를 방지하기 위한 시스템으로서,
    제1항 내지 제8항 중 어느 한 항의 방법을 수행하기 위한 수단을 포함하는 위조 방지 시스템.
KR1020130116877A 2013-03-14 2013-09-30 서버에 대한 웹 요청들의 위조의 방지 KR20140113275A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
IN741DE2013 2013-03-14
IN741/DEL/2013 2013-03-14
US13/931,120 US9780951B2 (en) 2013-03-14 2013-06-28 Prevention of forgery of web requests to a server
US13/931,120 2013-06-28

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020150034599A Division KR101622514B1 (ko) 2013-03-14 2015-03-12 서버에 대한 웹 요청들의 위조의 방지

Publications (1)

Publication Number Publication Date
KR20140113275A true KR20140113275A (ko) 2014-09-24

Family

ID=51534035

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020130116877A KR20140113275A (ko) 2013-03-14 2013-09-30 서버에 대한 웹 요청들의 위조의 방지
KR1020150034599A KR101622514B1 (ko) 2013-03-14 2015-03-12 서버에 대한 웹 요청들의 위조의 방지
KR1020160057719A KR20160060017A (ko) 2013-03-14 2016-05-11 서버에 대한 웹 요청들의 위조의 방지

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020150034599A KR101622514B1 (ko) 2013-03-14 2015-03-12 서버에 대한 웹 요청들의 위조의 방지
KR1020160057719A KR20160060017A (ko) 2013-03-14 2016-05-11 서버에 대한 웹 요청들의 위조의 방지

Country Status (3)

Country Link
US (1) US9780951B2 (ko)
KR (3) KR20140113275A (ko)
AU (1) AU2013237707B2 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10250715B2 (en) * 2016-06-30 2019-04-02 Salesforce.Com, Inc. Dynamic adjustment of boxcarring of action requests from component-driven cloud applications
US10250716B2 (en) * 2016-06-30 2019-04-02 Salesforce.Com, Inc. Priority-driven boxcarring of action requests from component-driven cloud applications
US11381517B2 (en) * 2020-10-28 2022-07-05 Citrix Systems, Inc. Systems and methods for performing header protection in distributed systems

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE602004001273T2 (de) * 2003-04-23 2007-05-31 Hewlett-Packard Development Co., L.P., Houston Verfahren und Vorrichtung zur Identifiezierungsbasierten Verschlüsselung
WO2008071795A2 (en) 2006-12-15 2008-06-19 Boesgaard Soerensen Hans Marti Digital data authentication
KR100901279B1 (ko) 2007-03-12 2009-06-08 강남구 챕 챌린지 메시지를 이용한 네트워크 액세스 인증 방법 및시스템.
US8181246B2 (en) * 2007-06-20 2012-05-15 Imperva, Inc. System and method for preventing web frauds committed using client-scripting attacks
US8255384B2 (en) 2009-09-30 2012-08-28 Fujitsu Limited Client-tier validation of dynamic web applications
US8887290B1 (en) * 2010-10-18 2014-11-11 Libredigital, Inc. Method and system for content protection for a browser based content viewer
EP2495658A1 (en) * 2011-03-02 2012-09-05 Accenture Global Services Limited Computer network, computer system, computer implemented method, and computer program product for managing session tokens

Also Published As

Publication number Publication date
US20140281492A1 (en) 2014-09-18
KR101622514B1 (ko) 2016-05-18
AU2013237707B2 (en) 2017-09-07
KR20160060017A (ko) 2016-05-27
AU2013237707A1 (en) 2014-10-02
US9780951B2 (en) 2017-10-03
KR20150035946A (ko) 2015-04-07

Similar Documents

Publication Publication Date Title
US11438168B2 (en) Authentication token request with referred application instance public key
US11757641B2 (en) Decentralized data authentication
US8429734B2 (en) Method for detecting DNS redirects or fraudulent local certificates for SSL sites in pharming/phishing schemes by remote validation and using a credential manager and recorded certificate attributes
US20180020008A1 (en) Secure asynchronous communications
KR20150036104A (ko) 로그인 검증의 방법, 클라이언트, 서버 및 시스템
US11451533B1 (en) Data cycling
CN102404314A (zh) 远程资源单点登录
EP2446577A2 (en) Method and system for provision of cryptographic services
CN109495486B (zh) 一种基于JWT的单页Web应用集成CAS的方法
CN110336807A (zh) 一种基于Web服务的身份认证方法、设备以及存储介质
US11949688B2 (en) Securing browser cookies
KR101622514B1 (ko) 서버에 대한 웹 요청들의 위조의 방지
WO2020243245A1 (en) Protection of online applications and webpages using a blockchain
CN109842616B (zh) 账号绑定方法、装置及服务器
CN114127764A (zh) 与分布式账本关联的目的地寻址
CN109886011B (zh) 一种安全防护方法和装置
Lim et al. AuthChain: a decentralized blockchain-based authentication system
CN115550060B (zh) 基于区块链的可信证书验证方法、装置、设备和介质
CN109063461B (zh) 一种第三方免密登录方法及系统
CN112511565B (zh) 请求响应方法、装置、计算机可读存储介质及电子设备
Christou et al. auth. js: Advanced Authentication for the Web
CN118174874A (zh) 一种统一认证的令牌生成方法及装置
CN116305068A (zh) 验证方法、装置、系统、电子设备及存储介质
CN116318811A (zh) 一种基于受信节点的网络请求校验鉴权方法及设备
CN114978681A (zh) 基于区块链的服务应用授权方法及装置、处理器

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
A107 Divisional application of patent