KR20010017849A - Method of data sending and receiving for supporting a security function in world wide web - Google Patents

Method of data sending and receiving for supporting a security function in world wide web Download PDF

Info

Publication number
KR20010017849A
KR20010017849A KR1019990033584A KR19990033584A KR20010017849A KR 20010017849 A KR20010017849 A KR 20010017849A KR 1019990033584 A KR1019990033584 A KR 1019990033584A KR 19990033584 A KR19990033584 A KR 19990033584A KR 20010017849 A KR20010017849 A KR 20010017849A
Authority
KR
South Korea
Prior art keywords
information
security
server
web
request
Prior art date
Application number
KR1019990033584A
Other languages
Korean (ko)
Inventor
윤성순
박창순
이단형
Original Assignee
정선종
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 정선종, 한국전자통신연구원 filed Critical 정선종
Priority to KR1019990033584A priority Critical patent/KR20010017849A/en
Publication of KR20010017849A publication Critical patent/KR20010017849A/en

Links

Classifications

    • 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
    • H04L63/0442Network 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 wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Abstract

PURPOSE: A data transceiving method for supporting a security function in a world wide web(www), is provided to respectively apply a proxy supporting a public key encryption system and a common gateway interface(CGI) program to a web browser and a web server used in a www environment based on the Internet, so as to supply the security function in an application program level. CONSTITUTION: A request line, a header and a body included in a first request message are interpreted. Information on a method, hypertext transfer protocol(HTTP) address, HTTP version, security flag and system name is extracted. A key of a server system is obtained to encrypt the information on the method, HTTP address, HTTP version, header, body and random number, and a digital signature is performed. The encrypted information is transmitted to a web server in a second request message type. A request line included in the request message is analyzed to execute a corresponding common gateway interface(CGI) program. Information like a content-length is interpreted, and an environment variable value of a security request is calculated. Information received through the web server is decoded by using a secret key value of the server system. The second request message is encrypted, and the encrypted information is transmitted to the web server. A proxy server receiving the information, status line, content length generated from the CGI program checks a security version and a security response. The information received from the web server is decoded by using a secret key of the proxy server. Information for transmission is established based on the decoded information, and transmitted to a web browser.

Description

월드와이드웹에서의 보안 기능 지원을 위한 데이터 송수신 방법{Method of data sending and receiving for supporting a security function in world wide web}Method of data sending and receiving for supporting a security function in world wide web}

본 발명은 월드와이드웹(world wide web; www)에서의 보안 기능 지원을 위한 데이터 송수신 방법에 관한 것으로, 특히 인터넷(internet)을 기반으로 한 월드와이드웹 환경에서 사용되고 있는 웹 브라우저(web browser)와 웹 서버(web server)에 공개키 암호화 방식을 지원하는 프록시와 공통 게이트웨이 인터페이스(Common Gateway Interface: 이하 CGI라 함) 프로그램을 각각 적용하므로써 응용 프로그램 레벨에서 보안 기능을 제공하는 방법에 관한 것이다.The present invention relates to a data transmission and reception method for supporting a security function on the world wide web (www), and in particular, a web browser used in a world wide web environment based on the Internet, and The present invention relates to a method for providing security at an application level by applying a proxy and a common gateway interface (CGI) program supporting a public key encryption method to a web server.

인터넷을 기반으로 한 온라인 성격의 월드와이드웹이 사용되기 시작한 이후 현재까지 웹을 통해 접할 수 있는 대다수의 정보는 보안을 유지할 필요없이 있는 그대로 송수신하면 되었다. 그러나, 월드와이드웹을 통해 물건을 사고 파는등의 전자 거래를 하려는 기업, 중요한 개인 정보 데이터의 수발을 하는 병원, 학교 및 정부 기관 그리고 기밀 데이터의 송수신을 하는 중요 기관등이 나타나면서 주고 받는 데이터의 보안이 꼭 필요하게 되었다.Since the World Wide Web, which is online based on the Internet, has been used, the vast majority of information available on the Web has been transmitted and received as it is, without the need for security. However, companies that want to conduct electronic transactions such as buying and selling goods through the World Wide Web, hospitals, schools, and government agencies that produce important personal information data, and important organizations that send and receive confidential data, appear to Security is essential.

월드와이드웹에서 이용할 수 있거나 제공하고 있는 보안 기술로는 인터넷 프로토콜 버전 6(Internet Protocol version 6; IPv6), 안전한 소켓 레벨(Secure Socket Level: 이하 SSL이라 함), 그리고 안전한 하이퍼 텍스트 전송 프로토콜(Secure Hyper Text Transport Protocol; S-HTTP)등이 있다. 이들은 인터넷 프로토로(Internet Protocol: 이하 IP라 함) 또는 소켓 레벨에서 데이터 송수신시 보안 기능을 제공한다. 이러한 기술들은 웹 브라우저 및 웹 서버상에서 모두 지원되어야 하는 문제가 있다. 또한, 현재 사용하고 있는 대부분의 웹 브라우저와 웹 서버는 보안 관련 기술들을 포함하고 있으나, 보안 관련 기술들을 포함한 웹 서버를 상용으로 사용하고자 할 때는 상당한 가격의 부담과 구축이 용이하지 않다.Security technologies available or provided by the World Wide Web include Internet Protocol version 6 (IPv6), Secure Socket Level (SSL), and Secure Hyper Text Transfer Protocol (Secure Hyper). Text Transport Protocol (S-HTTP). They provide security when sending and receiving data at the Internet Protocol (or IP) or socket level. These technologies have a problem that must be supported on both web browsers and web servers. In addition, most web browsers and web servers currently in use include security-related technologies. However, when a web server including security-related technologies is to be used commercially, it is not easy to pay a considerable price and easy to build.

반면 프록시 및 CGI 프로그램 경우에는 위의 기술들을 이용하더라도 기존의 웹 브라우저와 웹 서버는 있는 그대로 수정없이 사용할 수 있는 장점이 있다.On the other hand, in the case of proxy and CGI programs, even if the above technologies are used, the existing web browser and web server can be used without modification.

따라서, 본 발명은 기존의 웹 브라우저와 웹 서버의 교체없이 현재 있는 상태에서 보안 기능을 제공하므로써 상기한 문제점을 해결할 수 있도록 하는데 그 목적이 있다.Therefore, an object of the present invention is to solve the above problems by providing a security function in the current state without replacing the existing web browser and web server.

상술한 목적을 달성하기 위한 본 발명은 웹 브라우저로부터 제 1 요청 메시지를 수신한 프록시 서버에서 상기 제 1 요청 메시지 내에 포함된 요청 라인, 헤더 및 바디를 해석하는 단계와, 상기 요청 라인으로부터 방법, HTTP 주소, HTTP 버전, 보안 플래그 및 시스템 이름에 관한 정보를 추출하는 단계와, 공개키 기반 보안 모듈에서 서버 시스템의 키를 구하여 상기 요청 라인으로부터 추출된 방법, HTTP 주소 및 버전, 헤더와 바디 정보 및 임의 번호를 암호화하고 필요에 따라 전자 서명하는 단계와, 상기 암호화된 정보를 제 2 요청 메시지 형태로 웹 서버에 전송하는 단계와, 상기 프록시 서버로부터 제 2 요청 메시지를 수신한 웹 서버에서 상기 요청 메시지에 포함된 요청 라인을 분석하여 해당하는 CGI 프로그램을 실행시키는 단계와, 상기 웹 서버로부터 목록 길이 만큼의 정보를 수신한 상기 CGI 프로그램에서 이를 해석한 후 보안 요청 환경 변수 값을 구하는 단계와, 상기 보안 요청 환경 변수값에 따른 서버 시스템의 비밀키 값을 이용하여 상기 웹 서버를 통해 수신된 정보를 복호화하는 단계와, 상기 프록시 서버에서 전송된 제 2 요청 메시지를 암호화한 후 암호화된 정보를 상기 웹 서버로 전송하는 단계와, 상기 웹 서버를 통해 상기 CGI 프로그램으로부터 생성된 정보, 상태 라인 및 목록 길이를 수신한 상기 프록시 서버에서 보안 버전과 보안 응답을 체크하는 단계와, 상기 웹 서버로부터 수신한 정보를 상기 프록시 서버의 비밀키로 복호화하는 단계와, 상기 복호화된 정보를 기반으로 웹 브라우저로 전송할 정보를 구축한 후 웹 브라우저로 전송하는 단계를 포함하여 이루어진 것을 특징으로 한다.In order to achieve the above object, the present invention provides a method for analyzing a request line, a header, and a body included in the first request message at a proxy server that receives the first request message from a web browser, and the method, HTTP from the request line. Extracting information about an address, an HTTP version, a security flag, and a system name; a method of obtaining a key of a server system from a public key based security module, extracted from the request line, an HTTP address and version, header and body information, and arbitrary Encrypting the number and electronically signing as necessary, transmitting the encrypted information to a web server in the form of a second request message, and receiving the second request message from the proxy server in response to the request message. Analyzing the included request line and executing the corresponding CGI program; and listing from the web server Interpreting the information by the CGI program that has received the length information, and obtaining a value of a security request environment variable, and using information received through the web server using a secret key value of a server system according to the value of the security request environment variable. Decrypting the data, encrypting the second request message transmitted from the proxy server, and transmitting the encrypted information to the web server, and information, status line, and list generated from the CGI program through the web server. Checking a security version and a security response in the proxy server having received the length, decrypting the information received from the web server with a secret key of the proxy server, and transmitting the information to the web browser based on the decrypted information; Characterized in that it comprises a step of building and transmitting to a web browser.

도 1은 본 발명에 따른 웹 브라우저와 웹 서버에 프록시 서버 및 CGI 프로그램을 각각 적용한 보안 기능 제공 방법을 설명하기 위한 전체적인 블록도.1 is an overall block diagram illustrating a method of providing a security function applying a proxy server and a CGI program to a web browser and a web server according to the present invention, respectively.

도 2는 본 발명에 따른 보안 기능을 제공하기 위한 프록시 서버에서의 데이터 처리 과정을 설명하기 위한 흐름도.2 is a flowchart illustrating a data processing process in a proxy server for providing a security function according to the present invention.

도 3은 본 발명에 따른 웹 브라우저로 부터의 요청에 대한 프록시 서버의 데이터 처리 과정을 상세하게 설명하기 위한 흐름도.3 is a flow chart illustrating in detail the data processing of the proxy server for a request from a web browser according to the present invention.

도 4는 본 발명에 따른 프록시 서버로 부터의 요청에 대한 웹 서버/CGI 프로그램의 데이터 처리 과정을 상세하게 설명하기 위한 흐름도.4 is a flow chart for explaining in detail the data processing of the web server / CGI program for the request from the proxy server according to the present invention.

도 5는 본 발명에 따른 웹 서버로 부터의 응답 정보에 대한 프록시 서버의 처리 과정을 상세하게 설명하기 위한 흐름도.5 is a flow chart for explaining in detail the processing of the proxy server for the response information from the web server according to the present invention.

〈도면의 주요 부분에 대한 부호의 설명〉<Explanation of symbols for main parts of drawing>

101 : 웹 브라우저 102 : 프록시 서버101: web browser 102: proxy server

103 및 106 : 제 1 및 제 2 라이브러리 툴킷 함수103 and 106: first and second library toolkit functions

104 : 웹 서버 105 : CGI 프로그램104: Web server 105: CGI program

107 : 공개키 기반 보안 모듈107: public key based security module

첨부된 도면을 참조하여 본 발명을 상세히 설명하기로 한다.The present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명에 따른 웹 브라우저와 웹 서버에 프록시 서버 및 CGI 프로그램을 각각 적용하여 보안 기능을 제공하는 전체적인 구성도이다.1 is an overall configuration diagram providing a security function by applying a proxy server and a CGI program to a web browser and a web server according to the present invention, respectively.

일반적으로 웹 브라우저(101)는 웹 서버(104)에 포스팅되어 있는 정보를 인터넷을 기반으로 한 네트워크를 통해 웹 서버(104)로부터 전달받아 그 정보를 웹 브라우저(101) 환경에 맞게 가공하여 표현하도록 되어있다. 이때 웹 브라우저(101)와 웹 서버(104) 사이에 교환/전달되는 정보는 아무런 보안이 제공되지 않는다. 물론, 웹 브라우저(101)와 웹 서버(104)가 SSL이나 S-HTTP와 같은 프로토콜을 지원하는 경우에는 그 기술을 이용하여 전달되는 정보를 암호화하여 기밀성을 유지할 수 있다. 그러나, 이와 같은 기술을 지원하지 않는 경우의 웹 브라우저(101)와 웹 서버(104)에 프록시 서버(102)와 CGI 프로그램(105)을 각각 도입하여 전달되는 정보의 보안을 유지할 수 있다. 이렇게 함으로써 웹 브라우저(101)나 웹 서버(104)의 특정 제품에 종속되지 않고 지원되는 기반 보안 기술을 어느것이든 적용하여 이용할 수 있다. 즉, 프록시 서버(102)를 지원하는 라이브러리 툴킷 함수(103)를 통해 공개키 기반 보안 모듈(107)로부터 서버 시스템의 키를 구하고, 이를 이용하여 데이터를 암호화한다. 또한, CGI 프로그램(105)을 지원하는 라이브러리 툴킷 함수(106)를 통해 공개키 기반 보안 모듈(107)로부터 시스템 키를 구하고, 이를 이용하여 데이터를 복호화한다. 웹 서버(104) 및 CGI 프로그램(105)을 통해 받은 정보를 복호화하고 웹 브라우저로 보낼 데이터를 구축하여 프록시 서버(102)을 통해 웹 브라우저(101)로 전송한다.In general, the web browser 101 receives the information posted on the web server 104 from the web server 104 through a network based on the Internet, and processes the information to be processed according to the web browser 101 environment. It is. At this time, the information exchanged / transmitted between the web browser 101 and the web server 104 is not provided with any security. Of course, when the web browser 101 and the web server 104 support a protocol such as SSL or S-HTTP, it is possible to encrypt the information transmitted using the technology to maintain confidentiality. However, the proxy server 102 and the CGI program 105 may be introduced into the web browser 101 and the web server 104 in the case of not supporting such a technique, respectively, to maintain the security of the transmitted information. By doing so, it is possible to apply and use any of the supported security technologies without depending on the specific product of the web browser 101 or the web server 104. That is, the server system obtains the key of the server system from the public key based security module 107 through the library toolkit function 103 supporting the proxy server 102 and encrypts the data using the same. In addition, the system key is obtained from the public key based security module 107 through the library toolkit function 106 supporting the CGI program 105, and the data is decrypted using the system key. The information received through the web server 104 and the CGI program 105 is decrypted, and data to be sent to the web browser is constructed and transmitted to the web browser 101 through the proxy server 102.

도 2는 본 발명에 따른 보안 기능을 제공하기 위한 프록시 서버에서의 데이터 처리 과정을 설명하기 위한 흐름도로서, 프록시 서버에서 로그인, 웹 브라우저와 웹 서버와의 데이터 송수신, 송수신한 데이터의 처리 및 재구축을 위한 개략적인 흐름도이다.2 is a flowchart illustrating a data processing process in a proxy server for providing a security function according to the present invention, in which a proxy server logs in, sends and receives data between a web browser and a web server, and processes and reconstructs data transmitted and received. A schematic flow diagram for the.

웹 브라우저로부터 연결 요청을 받아 데이터를 수신하여(201) 프록시 서버에 로그인한다(202). 이때 사용되는 프로토콜은 하이퍼 텍스트 전송 프로토콜(Hyper-Text Transfer Protocol: 이하 HTTP/1.0라 함)이다. 수신된 데이터에서 HTTP 요청(request)을 수신하여 해석한다(203). 프록시 서버의 보안 기능을 사용하기 위해 프록시 서버를 이용하여 실질적인 암호화/복호화 등을 수행하는 공개키 기반 보안 모듈에 로그인하고, 여기서 키를 찾아 암호화 및 전자 서명하여(204) HTTP 요청을 재구축한다(205). 재구축된 HTTP 요청을 웹 서버에 송신하거나 웹 서버로부터 데이터를 수신한다(206). 웹 서버로부터 HTTP 응답(response)를 수신하고, 이를 해석한다(207). 공개키 기반 보안 모듈로부터 키를 찾아 복호화 및 전자 서명하여(208) HTTP 응답을 재구축한다(209). 재구축된 HTTP 응답을 웹 브라우저를 통해 사용자에게 전송한다(201).Receives a connection request from a web browser, receives data (201), and logs in to a proxy server (202). The protocol used at this time is the Hyper-Text Transfer Protocol (hereinafter referred to as HTTP / 1.0). An HTTP request is received from the received data and interpreted (203). In order to use the security function of the proxy server, the user logs in to a public key-based security module that performs substantial encryption / decryption using the proxy server, finds the key, encrypts and digitally signs (204), and reconstructs the HTTP request ( 205). Send the reconstructed HTTP request to the web server or receive data from the web server (206). Receive an HTTP response from the web server and interpret it (207). The key is retrieved from the public key based security module, decrypted, and digitally signed (208) to reconstruct the HTTP response (209). The reconstructed HTTP response is transmitted to the user through a web browser (201).

도 3은 본 발명에 따른 웹 브라우저로 부터의 요청에 대한 프록시 서버의 데이터 처리 과정을 상세하게 설명하기 위한 흐름도이다. 프록시 서버는 특정 전송 제어 프로토콜(Transmission Control Protocol: 이하 TCP라 함) 포트에서 웹 브라우저의 요청을 경청(Listen)하고 있으며, 이때 웹 브라우저로부터 다음과 같은 HTTP 어드레스를 갖는 리소스(Resource)의 요청(Request)을 받을 수 있다. http://reuse.etri.kr/cgi/putsecurity.exe/grim.jpg?security=3. 웹 브라우저는 사용자를 대신하여 위의 요청을 HTTP/1.0 프로토콜에 맞게 작성하여 프록시 서버로 전달한다. 프록시 서버는 웹 브라우저의 요청을 소켓 통신을 통하여 RFC1945에서 정의된 HTTP/1.0 프로토콜에 맞게 Full-Request를 수신한다(301). 수신된 Full-Request를 구성하는 요청 라인(Request-Line), 헤더(Header) 및 바디(Body)를 해석한다(302). 요청 라인(Request-Line)에서 방법(Method), HTTP 주소(address), HTTP 버전(version), 보안 플래그(security flag) 및 시스템 이름(system name)에 관한 정보를 추출한다(303). 보안 플래그 값은 요청 라인(Request-Line)의 HTTP 주소에서 찾을 수 있으며, 그 값은 전자 서명, 공개/비밀키 암호화, 또는 두 가지 모두의 암호화 가운데 하나를 나타낸다. 공개키 기반 보안 모듈에서 서버 시스템의 키를 구하여(304) 요청 라인(Request-Line)의 방법, HTTP 주소 및 버전, 웹 브라우저로부터 받게될 헤더(Header)와 바디(Body) 정보 그리고 임의 번호(Random Number)를 암호화한다(305). 이 임의 번호(Random Number)는 프록시 서버와 웹 서버 사이의 중간 노드에서 제 3 자가 암호화된 위의 정보를 가로채어 재사용하는 것을 막기 위한 것이다. 위 정보의 암호화를 위해서는 인증 서버로부터 서버 시스템의 키값을 얻어야 하는데, 이는 HTTP 주소의 시스템 이름을 통하여 구할 수 있다. 참고로 인증 서버 시스템에는 서버 시스템의 이름으로 식별 이름(Distinguished Name; DN)값과 공개키가 등록되어 있다. 따라서 프록시 서버에서 로그인에 성공한 사용자는 인증 서버로부터 서버 시스템의 공개키 값을 구하여 위의 정보를 암호화할 수 있다. 만일 전자 서명이 필요한 경우는 보내려고 하는 정보의 해슁한 결과 값을 자신의 전자 서명 비밀키로 암호화하여 첨부하고 서버 시스템의 공개키 값으로 암호화한다. 암호화된 정보는 소켓 통신을 통하여 웹 서버로 보내게 되는데 웹 서버의 TCP 포트 번호는 웹 브라우저로부터 받은 HTTP 주소에 정의되어 있거나 아니면 디폴트로 80번을 이용한다. 이때 웹 서버로 보내는 요청은 웹 브라우저로부터 받은 요청 라인(Request-Line)의 방법과 상대(Relative) HTTP 어드레스, 헤더(Header)의 목록 길이(Content-Length), 목록 형태(Content-type) 그리고 암호화된 바디(Body) 정보이다. 헤더(Header)의 목록 길이(Content-Length)는 위에서 암호화된 바디(Body) 정보의 길이가 된다. 이를 HTTP/1.0 포맷으로 나타내면 다음과 같다.3 is a flowchart illustrating in detail a data processing process of a proxy server for a request from a web browser according to the present invention. The proxy server listens to a request of a web browser on a specific transmission control protocol (TCP) port. At this time, a request of a resource having an HTTP address from the web browser is as follows. ) Can be received. http://reuse.etri.kr/cgi/putsecurity.exe/grim.jpg?security=3. The web browser makes the above request on the HTTP / 1.0 protocol for the user and forwards it to the proxy server. The proxy server receives the full-request for the HTTP / 1.0 protocol defined in RFC1945 through socket communication through the request of the web browser (301). The request line (Linear), the header (Header) and the body (Body) constituting the received Full-Request is interpreted (302). Information about a method, an HTTP address, an HTTP version, a security flag, and a system name is extracted from the request line (303). The security flag value can be found in the HTTP address of the Request-Line, which indicates one of the following: digital signature, public / private encryption, or both. The public key-based security module obtains the key of the server system (304), request-line method, HTTP address and version, header and body information to be received from the web browser, and random number. Number) is encrypted (305). This random number is intended to prevent third parties from intercepting and reusing encrypted information at the intermediate node between the proxy server and the web server. To encrypt the above information, the key value of the server system must be obtained from the authentication server, which can be obtained through the system name of the HTTP address. For reference, the Distinguished Name (DN) value and the public key are registered as the name of the server system. Therefore, the user who has successfully logged in at the proxy server can encrypt the above information by obtaining the public key value of the server system from the authentication server. If a digital signature is required, the decrypted result of the information to be sent is encrypted with its own digital signature secret key and attached with the public key value of the server system. The encrypted information is sent to the web server through socket communication. The TCP port number of the web server is defined in the HTTP address received from the web browser or 80 is used by default. At this time, the request sent to the web server is the request-line method received from the web browser, the relative HTTP address, the content-length of the header, the content-type, and the encryption of the header. Body information. The list length (Content-Length) of the header becomes the length of the body information encrypted above. If this is expressed in HTTP / 1.0 format, it is as follows.

GET SP /cgi/putsecurity.exe/grim.jpg HTTP/1.0 CRLFGET SP /cgi/putsecurity.exe/grim.jpg HTTP / 1.0 CRLF

Content-Length: 124 CRLFContent-Length: 124 CRLF

Content-Type: application/x-www-form-urlencoded CRLFContent-Type: application / x-www-form-urlencoded CRLF

Security-Version: 1.0 CRLFSecurity-Version: 1.0 CRLF

Security-Request: both CRLFSecurity-Request: both CRLF

Body 정보(*)Body Information (*)

도 4는 본 발명에 따른 프록시 서버로 부터의 요청에 대한 웹 서버/CGI 프로그램의 데이터 처리 과정을 상세하게 설명하기 위한 흐름도이다.4 is a flowchart illustrating in detail a data processing process of a web server / CGI program for a request from a proxy server according to the present invention.

웹 서버는 프록시 서버의 요청을 소켓 통신을 통하여 RFC1945에서 정의된 HTTP/1.0 프로토콜에 맞게 Full-Request를 수신하게 된다(401). 웹 서버는 Request-Line을 분석하여 해당되는 CGI 프로그램을 실행(Invoke)시킨 후 제어를 그 프로그램에 넘겨주고 자신은 또다른 웹 브라우저의 연결을 기다린다(402). 웹 서버로부터 실행된 CGI 프로그램은 공개키 기반 보안 모듈에 로그인하여 자신의 비밀키와 인증 서버 시스템을 사용할 수 있는 권한을 가지게 되며, 이때 사용되는 로그인 이름과 패스워드는 웹 서버 시스템에 저장되어 있다. 그런 다음 CGI 프로그램은 웹 서버로부터 목록 길이(Content-Length) 만큼 정보를 수신하고 이를 해석한다(403). 이때 웹 서버로부터 받은 정보가 어떻게 암호화되어 있는지를 알기 위하여 보안 요청(Security -Request) 환경 변수의 값을 구한다(404). 이 플래그 값은 전자 서명, 공개/비밀키 암호화, 또는 두 가지 모두의 암호화 가운데 하나를 나타낸다. 이 플래그 값에 따른 서버 시스템의 비밀키 값을 가지고 웹 서버를 통해 웹 브라우저로부터 전송되어 온 정보를 복호화하고 전자 서명이 되어 있으면 확인하여 얻은 결과를 필요한 구조에 저장한다(405). CGI 프로그램은 복호화된 정보 가운데 웹 브라우저에서 요청한 리소스를 찾는다. 마지막으로 프록시 서버에서 생성하여 보내온 임의 번호(Random Number)와 상태 코드(Status-Code) 및 이유구(Reason-Phrase), 헤더(Header) 정보, 그리고 찾은 리소스 정보를 가지고 인증 서버를 통해 얻은 프록시 서버의 공개키를 가지고 암호화한다(406). 임의 번호(Random Number)는 중간에서 이 정보를 가로채어 재사용하는 것을 방지하기 위한 것이다. 상태 코드(Status-Code)와 이유구(Reason-Phrase)는 프록시 서버의 요청에 대한 HTTP 프로토콜의 응답이다. 헤더(Header)에는 위치(Location)가 들어있다. 만일 전자 서명이 필요한 경우는 위 정보들의 해슁한 결과 값과 자신의 전자 서명 공개키를 정보의 뒤에 첨부한 후 프록시 서버 시스템의 공개키 값으로 암호화한 후 웹 서버로 보낸다. 이때 웹 서버로 보내는 정보를 HTTP/1.0 포맷으로 나타내면 다음과 같다.The web server receives the request of the proxy server through the socket communication in accordance with the HTTP / 1.0 protocol defined in RFC1945 (401). The web server analyzes the Request-Line, invokes the corresponding CGI program, passes control to the program, and waits for another web browser to connect (402). The CGI program executed from the web server has the authority to log in to the public key based security module and use its own private key and authentication server system. The login name and password used at this time are stored in the web server system. Then, the CGI program receives information from the web server by content-length and interprets it (403). At this time, to find out how the information received from the web server is encrypted, the value of the security request (Security-Request) environment variable is obtained (404). This flag value indicates either a digital signature, public / private encryption, or both. Decrypting the information transmitted from the web browser through the web server with the secret key value of the server system according to this flag value, and if it is digitally signed, the result obtained by verifying it is stored in the required structure (405). The CGI program finds the requested resource from the web browser among the decrypted information. Finally, the proxy server obtained through the authentication server with the random number generated by the proxy server, the status code, the status code, the reason-phrase, the header information, and the found resource information. Encrypt with a public key of 406. Random numbers are intended to prevent intercepting and reusing this information in the middle. Status-Code and Reason-Phrase are responses from the HTTP protocol to requests from proxy servers. The header contains a location. If a digital signature is required, the resulting value of the above information and its digital signature public key are attached to the back of the information, encrypted with the public key value of the proxy server system, and sent to the web server. The information sent to the web server in HTTP / 1.0 format is as follows.

Content-Type: application/encoded CRLFContent-Type: application / encoded CRLF

Security-Version: 1.0 CRLFSecurity-Version: 1.0 CRLF

Security-Response: both CRLFSecurity-Response: both CRLF

Body 정보(*)Body Information (*)

(*) Content-Length 에 정의된 길이만큼 전송하게 된다.(*) It transmits the length defined in Content-Length.

도 5는 본 발명에 따른 웹 서버로 부터의 응답 정보에 대한 프록시 서버의 처리 과정을 상세하게 설명하기 위한 흐름도이다.5 is a flowchart illustrating in detail the processing of the proxy server for the response information from the web server according to the present invention.

프록시 서버는 웹 서버로부터 CGI 프로그램이 생성한 정보와 상태 라인(Status-Line) 그리고 목록 길이(Content-Length)를 수신한다(501). 상태 라인(Status-Line)에는 HTTP 버전과 웹 서버에서 수행한 결과의 상태 코드(Status-Code) 및 이유구(Reason-Phrase)가 있다. 먼저 프록시 서버는 보안 버전(Security-Version)과 보안 응답(Security-Response)을 체크하여 두 보안 프로그램의 문맥(Context)이 맞는지를 확인한다(502). 다음 프록시 서버는 웹 서버로부터 받은 정보를 자신의 비밀키로 복호화하고 만일 전자 서명이 되어 있으면 확인하여 얻은 결과를 필요한 구조에 저장한다(503). 복호화한 정보 가운데 임의 번호(Random Number)를 이용하여 제 3 자에 의해 재사용되었는지를 확인한 후 프록시 서버는 복호화한 정보를 기반으로 웹 브라우저로 전송할 정보를 구축한 다음(504) HTTP 프로토콜에 맞게 웹 브라우저로 전송한다(505). 이때 웹 브라우저로 보내는 정보를 HTTP/1.0 포맷으로 나타내면 다음과 같다.The proxy server receives information generated by the CGI program, a status line, and a content length from the web server (501). The Status-Line contains the HTTP version and the Status-Code and Reason-Phrase of the results performed by the web server. First, the proxy server checks the security version (Security-Version) and the security response (Security-Response) to check whether the context of the two security programs (Con) is correct (502). Next, the proxy server decrypts the information received from the web server with its private key and stores the obtained result in the required structure if it is digitally signed (503). After checking whether it has been reused by a third party using random numbers among the decrypted information, the proxy server constructs information to be sent to the web browser based on the decrypted information (504) and then complies with the HTTP protocol. In operation 505. The information sent to the web browser in HTTP / 1.0 format is as follows.

HTTP/1.0 SP Status-Code SP Reason-Phrase CRLFHTTP / 1.0 SP Status-Code SP Reason-Phrase CRLF

Location: http://reuse.etri.re.kr/cgi/grim.jpg CRLFLocation: http://reuse.etri.re.kr/cgi/grim.jpg CRLF

Body 정보(*)Body Information (*)

(*) 미리 알고 있는 Body 정보의 길이만큼 전송한다.(*) It transmits the length of body information that is known in advance.

마지막으로 웹 브라우저는 프록시 서버로부터 소켓 통신을 통하여 RFC1945에서 정의된 HTTP/1.0 프로토콜에 맞게 Full-Response를 수신하여 브라우저 화면에 그 결과를 나타낸다. 이렇게 하여 보안 수행 모델의 한 사이클이 완료되게 된다. 웹 브라우저로 부터의 또다른 요청은 위에서 설명한 사이클을 계속하여 반복한다.Finally, the web browser receives full-response according to the HTTP / 1.0 protocol defined in RFC1945 through socket communication from the proxy server and displays the result on the browser screen. This completes one cycle of the security performance model. Another request from the web browser repeats the cycle described above.

상술한 바와 같이 본 발명에 의하면 웹 브라우저와 웹 서버에 각각 프록시 서버와 CGI 프로그램을 적용하므로써 웹 브라우저 및 웹 서버의 교체나 변경없이 그대로 사용할 수 있으며, 제공하고자 하는 보안 정책의 등급을 해당 정보별로 적용하여 제공할 수 있는 유연성을 부여한다. 그리고, 프록시 서버와 CGI 프로그램에서 보안 기능을 제공을 위해 IETF(Internet Expert Task Force)의 RFC(Request For Comment)로 제안된 표준 API(Application Program Interface) 함수를 사용하여, 표준 API 함수를 제공하고 있는 기반 보안 모델의 경우 거의 변경없이 서로 다른 기반 보안 모델을 사용할 수 있다. 따라서, 이미 기존에 API 함수를 제공하는 기반 보안 모델을 설치하여 사용하고 있는 곳에서는 쉽게 적용하여 인터넷의 웹상에서 다양하고 강력한 보안 기능을 지원할 수 있다.As described above, according to the present invention, the proxy server and the CGI program can be applied to the web browser and the web server, respectively, without changing or changing the web browser and the web server, and the security policy level to be provided is applied for each information. Gives you the flexibility to provide. In order to provide security functions in proxy servers and CGI programs, standard API functions are provided using standard application program interface (API) functions proposed as Request For Comment (RFC) of the Internet Expert Task Force (IETF). For the underlying security model, different underlying security models can be used with little change. Therefore, it can be easily applied where it is already installed and using the existing security model that provides API functions to support various and powerful security functions on the web of the Internet.

Claims (2)

웹 브라우저로부터 제 1 요청 메시지를 수신한 프록시 서버에서 상기 제 1 요청 메시지 내에 포함된 요청 라인, 헤더 및 바디를 해석하는 단계와,Interpreting, by the proxy server, the first request message from the web browser, the request line, header and body included in the first request message; 상기 요청 라인으로부터 방법, HTTP 주소, HTTP 버전, 보안 플래그 및 시스템 이름에 관한 정보를 추출하는 단계와,Extracting information about a method, an HTTP address, an HTTP version, a security flag, and a system name from the request line; 공개키 기반 보안 모듈에서 서버 시스템의 키를 구하여 상기 요청 라인으로부터 추출된 방법, HTTP 주소 및 버전, 헤더와 바디 정보 및 임의 번호를 암호화하고 필요에 따라 전자 서명하는 단계와,Obtaining a key of a server system from a public key based security module, encrypting the method, HTTP address and version, header and body information and random number extracted from the request line, and electronically signing as needed; 상기 암호화된 정보를 제 2 요청 메시지 형태로 웹 서버에 전송하는 단계와,Transmitting the encrypted information to a web server in the form of a second request message; 상기 프록시 서버로부터 제 2 요청 메시지를 수신한 웹 서버에서 상기 요청 메시지에 포함된 요청 라인을 분석하여 해당하는 CGI 프로그램을 실행시키는 단계와,Analyzing a request line included in the request message in a web server receiving the second request message from the proxy server, and executing a corresponding CGI program; 상기 웹 서버로부터 목록 길이 만큼의 정보를 수신한 상기 CGI 프로그램에서 이를 해석한 후 보안 요청 환경 변수 값을 구하는 단계와,Obtaining a value of a security request environment variable after interpreting the information in the CGI program that has received the length information of the list from the web server; 상기 보안 요청 환경 변수값에 따른 서버 시스템의 비밀키 값을 이용하여 상기 웹 서버를 통해 수신된 정보를 복호화하는 단계와,Decrypting information received through the web server using a secret key value of a server system according to the security request environment variable value; 상기 프록시 서버에서 전송된 제 2 요청 메시지를 암호화한 후 암호화된 정보를 상기 웹 서버로 전송하는 단계와,Encrypting the second request message transmitted from the proxy server and transmitting the encrypted information to the web server; 상기 웹 서버를 통해 상기 CGI 프로그램으로부터 생성된 정보, 상태 라인 및 목록 길이를 수신한 상기 프록시 서버에서 보안 버전과 보안 응답을 체크하는 단계와,Checking a security version and a security response at the proxy server that has received the information, status line and list length generated from the CGI program via the web server; 상기 웹 서버로부터 수신한 정보를 상기 프록시 서버의 비밀키로 복호화하는 단계와,Decrypting the information received from the web server with a secret key of the proxy server; 상기 복호화된 정보를 기반으로 웹 브라우저로 전송할 정보를 구축한 후 웹 브라우저로 전송하는 단계를 포함하여 이루어진 것을 특징으로 하는 월드와이드웹에서 보안 기능 지원을 위한 데이터 송수신 방법.And building the information to be transmitted to the web browser based on the decrypted information and transmitting the information to the web browser. 제 1 항에 있어서, 상기 프록시 서버에서 상기 웹 서버로 전송되는 제 2 요청 메시지는 상기 웹 브라우저로부터 수신한 요청 라인의 방법과 상대 HTTP 주소, 헤더의 목록 길이, 목록 형태 및 암호화된 바디 정보를 포함하는 것을 특징으로 하는 월드와이드웹에서 보안 기능 지원을 위한 데이터 송수신 방법.The method of claim 1, wherein the second request message transmitted from the proxy server to the web server includes a method of a request line received from the web browser, a relative HTTP address, a list length of a header, a list form, and encrypted body information. Data transmission and reception method for supporting a security function on the World Wide Web characterized in that.
KR1019990033584A 1999-08-16 1999-08-16 Method of data sending and receiving for supporting a security function in world wide web KR20010017849A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990033584A KR20010017849A (en) 1999-08-16 1999-08-16 Method of data sending and receiving for supporting a security function in world wide web

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990033584A KR20010017849A (en) 1999-08-16 1999-08-16 Method of data sending and receiving for supporting a security function in world wide web

Publications (1)

Publication Number Publication Date
KR20010017849A true KR20010017849A (en) 2001-03-05

Family

ID=19607260

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990033584A KR20010017849A (en) 1999-08-16 1999-08-16 Method of data sending and receiving for supporting a security function in world wide web

Country Status (1)

Country Link
KR (1) KR20010017849A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003090119A1 (en) * 2002-04-17 2003-10-30 Axeda Systems Operating Company, Inc. Embedded controller and remote server for sending and retrieving data via a network
CN108234393A (en) * 2016-12-14 2018-06-29 北京京东尚科信息技术有限公司 Optimize the method and device of data link layer message
CN110875899A (en) * 2018-08-30 2020-03-10 阿里巴巴集团控股有限公司 Data processing method, system and network system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970072809A (en) * 1996-04-15 1997-11-07 양승택 A file transfer method using a common gateway interface (CGI) on a web browser
KR19980050938A (en) * 1996-12-21 1998-09-15 양승택 How to Send Encrypted Documents on the Internet
US5864852A (en) * 1996-04-26 1999-01-26 Netscape Communications Corporation Proxy server caching mechanism that provides a file directory structure and a mapping mechanism within the file directory structure
JPH1185890A (en) * 1997-04-22 1999-03-30 Sun Microsyst Inc Financial institution server, security system for client web browser, and method therefor
US5892905A (en) * 1996-12-23 1999-04-06 International Business Machines Corporation Computer apparatus and method for providing a common user interface for software applications accessed via the world-wide web

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970072809A (en) * 1996-04-15 1997-11-07 양승택 A file transfer method using a common gateway interface (CGI) on a web browser
US5864852A (en) * 1996-04-26 1999-01-26 Netscape Communications Corporation Proxy server caching mechanism that provides a file directory structure and a mapping mechanism within the file directory structure
KR19980050938A (en) * 1996-12-21 1998-09-15 양승택 How to Send Encrypted Documents on the Internet
US5892905A (en) * 1996-12-23 1999-04-06 International Business Machines Corporation Computer apparatus and method for providing a common user interface for software applications accessed via the world-wide web
JPH1185890A (en) * 1997-04-22 1999-03-30 Sun Microsyst Inc Financial institution server, security system for client web browser, and method therefor

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003090119A1 (en) * 2002-04-17 2003-10-30 Axeda Systems Operating Company, Inc. Embedded controller and remote server for sending and retrieving data via a network
CN108234393A (en) * 2016-12-14 2018-06-29 北京京东尚科信息技术有限公司 Optimize the method and device of data link layer message
CN108234393B (en) * 2016-12-14 2021-01-26 北京京东尚科信息技术有限公司 Method and device for optimizing data link layer message
CN110875899A (en) * 2018-08-30 2020-03-10 阿里巴巴集团控股有限公司 Data processing method, system and network system
CN110875899B (en) * 2018-08-30 2022-06-28 阿里巴巴集团控股有限公司 Data processing method, system and network system

Similar Documents

Publication Publication Date Title
US6694431B1 (en) Piggy-backed key exchange protocol for providing secure, low-overhead browser connections when a server will not use a message encoding scheme proposed by a client
US7742605B2 (en) Method and system for authentification of a mobile user via a gateway
Park et al. Secure cookies on the Web
US6775772B1 (en) Piggy-backed key exchange protocol for providing secure low-overhead browser connections from a client to a server using a trusted third party
US7519810B2 (en) Methods for conducting server-side encryption/decryption-on-demand
CN101919202B (en) Information distribution system and program for the same
CA2547154A1 (en) Secure file transfer for web service
US6751731B1 (en) Piggy-backed key exchange protocol for providing secure, low-overhead browser connections to a server with which a client shares a message encoding scheme
KR20060100920A (en) Trusted third party authentication for web services
CN107404469B (en) Session safety processing system, device, apparatus and method
JP2002374239A (en) Method for cryptographing information
CN107172001B (en) Control method and device of website proxy server and key proxy server
CN103036880A (en) Network information transmission method, transmission equipment and transmission system
CN111131416A (en) Business service providing method and device, storage medium and electronic device
US20080306875A1 (en) Method and system for secure network connection
CN111698264A (en) Method and apparatus for maintaining user authentication sessions
CN106031097A (en) Service processing method and device
JP2004525568A (en) System for encryption of wireless transmission from a personal palm computer to a world wide web terminal
CN106169990A (en) A kind of encrypt data on flows monitoring method, Apparatus and system
KR100848966B1 (en) Method for authenticating and decrypting of short message based on public key
CN104506530A (en) Network data processing method and device and data transmission method and device
KR20010017849A (en) Method of data sending and receiving for supporting a security function in world wide web
JP4608245B2 (en) Anonymous communication method
JP2002183094A (en) Cooperative system for log-in among a plurality of servers, client device, log-in management device, server device and storage medium
US7890751B1 (en) Method and system for increasing data access in a secure socket layer network environment

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application