A system of the invention comprises first and second computers. The first computer retrieves and incorporates its security state data in a message requesting a network connection with the second computer. The second computer receives the message and determines whether its security policy data permits connection with the first computer given the security state of the first computer as indicated by its security state data. The security state data can comprise data indicating whether an anti-virus application, firewall application, or operating system are running on the first computer, and are up-to-date. If so, the second computer permits the network connection to proceed. If not, then the second computer either drops the connection request or terminates the connection request by transmitting a disconnection message to the first computer. The invention also comprises related apparatuses, methods, and computer-readable media.
|
1. A method comprising the steps of:
(a) retrieving security state data at a first computer;
(b) incorporating the security state data into a request message to request a connection with a second computer via a network;
(c) transmitting the request message including the security state data to the second computer via the network;
(d) receiving the request message including the security state data from the first computer at the second computer;
(e) determining at the second computer whether the security state data in the request message is to be processed based on security activation data stored in the second computer; and
if the determining in step (e) establishes that the security activation data indicates that the security state data is to be processed,
(f) determining at the second computer whether the network connection to the first computer poses an impermissible security risk based on security policy data stored in the second computer and the security state data received from the first computer;
(g) proceeding with establishing the network connection if the determining of step (f) establishes that connection to the second computer is permitted; and
(h) terminating further processing to establish the network connection with the second computer if the determining of step (f) establishes that the connection to the second computer is not permitted.
14. A computer-readable medium storing computer code that when executed by a first computer attempting to open a network connection with a second computer via a network, the first computer performs the following steps:
(a) retrieving security state data at a first computer;
(b) incorporating the security state data into a request message to request a connection with a second computer via a network;
(c) transmitting the request message including the security state data to the second computer via the network;
(d) receiving the request message including the security state data from the first computer at the second computer;
(e) determining at the second computer whether the security state data in the request message is to be processed based on security activation data stored in the second computer; and
if the determining in step (e) establishes that the security activation data indicates that the security state data is to be processed;
(f) determining at the second computer whether the network connection to the first computer poses an impermissible security risk based on security policy data stored in the second computer and the security state data received from the first computer;
(g) proceeding with establishing the network connection if the determining of step (f) establishes that connection to the second computer is permitted; and
(h) terminating further processing to establish the network connection if the determining of step (f) establishes that the connection to the second computer is not permitted.
2. The method as claimed in
3. The method as claimed in
4. The method as claimed in
5. The method as claimed in
6. The method as claimed in
7. The method as claimed in
8. The method as claimed in
9. The method as claimed in
10. The method as claimed in
11. The method as claimed in
15. The computer-readable medium as claimed in
16. The computer-readable medium as claimed in
17. The computer-readable medium as claimed in
18. The computer-readable medium as claimed in
19. The computer-readable medium as claimed in
20. The computer-readable medium as claimed in
21. The computer-readable medium as claimed in
22. The computer-readable medium as claimed in
23. The computer-readable medium as claimed in
24. The computer-readable medium as claimed in
25. The computer-readable medium as claimed in
|
This patent application is a U.S. nonprovisional application filed pursuant to Title 35, United States Code §§100 et seq. and 37 C.F.R. Section 1.53(b) claiming priority under Title 35, United States Code §119(e) to U.S. provisional application No. 60/569,922 filed May 10, 2004 naming A David Shay as the inventor, which application is herein incorporated by reference. Both the subject application and its provisional application have been or are under obligation to be assigned to the same entity.
1. Field of the Invention
This invention relates to security in network communications, and more particularly, to a system, method and computer-readable medium that can be used to determine the security status of computers in order to evaluate whether connection to such computer would pose an impermissible security risk given its security status.
2. Description of the Related Art
In network communications, users desire to operate their computers to freely access websites and other resources over the Internet. However, security risks posed by accessing unknown computers and websites can be substantial. Once a computer originating communications establishes a connection to another computer, that computer can infect the first computer with a virus or worm, for example. This can crash the originating computer, cause it to lose data, and/or cause it to infect other computers with the virus or worm via the Internet. The costs of virus or worm outbreaks are well-known and documented. For example, the economic damage done to computer users by the Goner, Code Red II, Blaster, SoBig, Netsky and Sasser worms and viruses in each instance had impact worldwide and easily amounted to millions or billions of US dollars in damage to lost productivity and costs to resolve the consequences of these worms and viruses. Clearly, it would be desirable to provide an invention with the capability to check the security status or vulnerability of a second computer before establishing connection to it in order to avoid unreasonable security risks with attendant adverse consequences.
The disclosed device, in its various embodiments, overcomes one or more of the above-mentioned problems, and achieves additional advantages as hereinafter set forth.
A method in accordance with an embodiment of the invention comprises the steps of retrieving security state data at a first computer; incorporating the security state data into a request message to request a connection with a second computer via a network; and transmitting the request message including the security state data to the second computer via the network. The security state data can be generated by one or more of an anti-virus application, a firewall application, and an operating system running on the first computer. Alternatively, or in addition to the above options, the security state data can be received by the first computer from a website of a developer of such an application or system. The security state data can indicate one or more security states including whether an anti-virus application is running on the first computer, whether the anti-virus application is up-to-date, whether a firewall application is running on the first computer, whether the firewall application is up-to-date, whether an operating system patch has been installed to close a vulnerability in the operating system running on the first computer, and whether the operating system patch is up-to-date. The request message can be a TCP SYN packet. The network can be the Internet. The method can further comprise receiving the request message including the security state data from the first computer at the second computer; determining at the second computer whether the connection to the first computer is permitted based on security policy data stored in the second computer and the security state data received from the first computer; proceeding with establishing the network connection if the determining establishes that the network connection to the second computer is permitted; and terminating further processing to establish the network connection if the second computer determines that the network connection to the second computer is not permitted. Optionally, the method can further comprise a step of determining at the second computer whether the security state data in the request message is to be processed based on security activation data stored in the second computer. If the determining establishes that the security activation data indicates that the security state data is to be processed, the method can further comprise determining at the second computer whether the network connection to the first computer is permitted based the security policy data stored in the second computer and the security state data received from the first computer; proceeding with establishing the network connection if the determining establishes that connection to the second computer is permitted; and terminating further processing to establish the network connection if the second computer if the determining establishes that the connection of the first computer to the second computer is not permitted.
A method in accordance with another embodiment of the invention comprises steps of receiving a request message including security state data from a first computer at a second computer; determining at the second computer whether the connection to the first computer is permitted based on security policy data stored at the second computer and the security state data received from the first computer; proceeding with establishing the network connection if the determining establishes that the network connection to the second computer is permitted; and terminating further processing to establish the network connection if the second computer determines that the network connection to the second computer is not to be permitted. The security state data can comprise data generated by an anti-virus application running on the first computer to protect the first computer. The security state data can be generated by one or more of an anti-virus application, a firewall application, and an operating system running on the first computer. Alternatively, or in addition to one or more of the above options, the security state data can be received by the first computer via the Internet from a website of a developer of such an application or operating system. The security state data can indicate one or more security states including whether the anti-virus application is up-to-date, whether a firewall application is running on the first computer, whether the firewall application is up-to-date, whether operating system patch(es) have been installed to close vulnerabilities in the operating system running on the first computer, and/or whether the operating system patch(es) are up-to-date. The request message can be a TCP SYN packet. The proceeding with establishing the network connection can be performed at the second computer by generating and transmitting a SYNACK packet to the first computer in response to the SYN packet. The terminating of establishing the network connection can be performed by disregarding the SYN packet. The network can be the Internet.
A method in accordance with an embodiment of the invention comprises the steps of receiving the request message including the security state data from the first computer at the second computer; determining at the second computer whether the security state data in the request message is to be processed based on security activation data loaded in the second computer; and if the determining establishes that the security activation data indicates that the security state data is to be processed, determining at the second computer whether the connection to the first computer is permitted based on security policy data stored in the second computer and the security state data received from the first computer; proceeding with establishing the network connection if the determining establishes that the network connection to the second computer is permitted; and terminating further processing to establish the network connection if the second computer determines that the network connection is not permitted.
A computer-readable medium in accordance with an embodiment of the invention stores computer code that when executed by a first computer attempting to open a network connection with a second computer via a network, the first computer performs the following steps: retrieving security state data at a first computer; incorporating the security state data into a request message to request a connection with a second computer via a network; and transmitting the request message including the security state data to the second computer via the network. The security state data can be generated by one or more of an anti-virus application, firewall application, and operating system running on the first computer. Alternatively, or in addition to one or more of the above options, the security state data can be received by the first computer from a website of a developer of one or more of the anti-virus application, firewall application, and operating system. The security state data can comprise data indicating one or more security states including whether an anti-virus application is running on the first computer, whether the anti-virus application is up-to-date, whether a firewall application is running on the first computer, whether the firewall application is up-to-date, whether an operating system patch has been installed to close a vulnerability in the operating system running on the first computer, and whether the operating system patch is up-to-date. The request message can be a TCP SYN packet. The network can be the Internet. The first computer can execute the computer code to further perform the following steps: receiving the request message including the security state data from the first computer at the second computer; determining at the second computer whether the connection to the first computer is permitted based on security policy data stored in the second computer and the security state data received from the first computer; proceeding with establishing the network connection if the determining establishes that the network connection to the second computer is permitted; and terminating further processing to establish the network connection if the second computer determines that the network connection to the second computer is not permitted.
A computer-readable medium according to an embodiment of the invention stores computer code used in connection with a communication from a first computer to a second computer that when executed by the second computer performs the following steps: receiving a request message including security state data from the first computer at the second computer; determining at the second computer whether the connection to the first computer is permitted based on security policy data stored at the second computer and the security state data received from the first computer; proceeding with establishing the network connection if the determining establishes that the network connection to the second computer is permitted; and terminating further processing to establish the network connection if the second computer determines that the network connection to the second computer is not to be permitted. The security state data can be generated by one or more of an anti-virus application, a firewall application, and an operating system running on the first computer. In the alternative, or in addition to one or more of the above options, the security state data can be received by the first computer from a website of a developer of one or more of the anti-virus application, the firewall application, and the operating system. The security state data can comprise data indicating one or more security states including whether an anti-virus application is running on the first computer, whether the anti-virus application is up-to-date, whether a firewall application is running on the first computer, whether the firewall application is up-to-date, whether an operating system patch has been installed to close vulnerabilities in the operating system running on the first computer, and whether the operating system patch is up-to-date. The request message can be a TCP SYN packet. The proceeding with establishing the network connection can be performed at the second computer by generating and transmitting a SYNACK packet to the first computer in response to the SYN packet, or transmitting a termination message from the second computer to the first computer. The terminating of establishing the network connection can be performed by disregarding the SYN packet. The network can be the Internet.
A computer-readable medium in accordance with an embodiment of the invention stores computer code used in connection with a communication from a first computer to a second computer that when executed by the second computer performs the following steps: receiving the request message including the security state data from the first computer at the second computer; determining at the second computer whether the security state data in the request message is to be processed based on security activation data stored in the second computer; and if the determining establishes that the security activation data indicates that the security state data is to be processed, determining at the second computer whether the network connection to the first computer poses an impermissible security risk based on security policy data stored in the second computer and the security state data received from the first computer; proceeding with establishing the network connection if the determining establishes that connection to the second computer is permitted; and terminating further processing to establish the network connection if the second computer if the determining establishes that the connection to the second computer is not permitted.
A system in accordance with an embodiment of the invention uses a communication network, and comprises a first computer; and a second computer. The first computer determines security state data related to the first computer, incorporates the security state data into a request message to request a connection with a second computer via the network, and transmits the request message including the security state data to the second computer via the network. The second computer receives the request message including security state data from the first computer, determines whether the connection to the first computer is permitted based on security policy data stored at the second computer and the security state data received from the first computer, proceeds with establishing the network connection if the determining establishes that the network connection to the first computer is permitted, and terminates further processing to establish the network connection if the second computer determines that the network connection to the first computer is not permitted. The security state data can be generated by one or more of an anti-virus application, a firewall application, and an operating system running on the first computer. In the alternative, or in addition to one or more of the above options, the security state data can be received by the first computer from a website of a developer of one or more of the anti-virus application, the firewall application, and the operating system. The security state data can comprise data indicating whether an anti-virus application is running on the first computer to protect the first computer, data indicating whether an anti-virus application running on the first computer is up-to-date, data indicating whether a firewall application is running on the first computer, data indicating whether the firewall application is up-to-date, data indicating whether operating system patches have been installed to close vulnerabilities in the operating system running on the first computer, and/or data indicating whether the operating system patches are up-to-date. The request message can be a TCP SYN packet. The proceeding with establishing the network connection can be performed at the second computer by generating and transmitting a SYNACK packet to the first computer in response to the SYN packet. The terminating of establishing the network connection can be performed by disregarding the SYN packet. The network can be the Internet.
An apparatus in accordance with an embodiment of the invention uses a communications network, and comprises a first computer retrieving security state data related to the first computer, incorporating the security state data into a request message to request a connection with a second computer via the network, and transmitting the request message including the security state data to the second computer via the network. The security state data can comprise data indicating one or more security states, including whether an anti-virus application running on the first computer to protect the first computer, data indicating whether the anti-virus application is up-to-date, data indicating whether a firewall application is running on the first computer, data indicating whether the firewall application is up-to-date, data indicating whether operating system patches have been installed to close vulnerabilities in the operating system running on the first computer, and data indicating whether the operating system patches are up-to-date. The request message can be a TCP SYN packet. The proceeding with establishing the network connection can be performed at the second computer by generating and transmitting a SYNACK message to the first computer in response to the SYN message. The terminating can be performed by disregarding the SYN message. The network can be the Internet.
An apparatus in accordance with an embodiment of the invention uses a communications network, and comprises a first computer receiving a request message including security state data from a second computer, determining whether the connection to the second computer is permitted based on security policy data stored on the computer and the security state data received from the second computer, proceeding with establishing the network connection if the determining establishes that the a network connection from the first computer to the second computer is permitted, and the first computer terminating further processing to establish the network connection if the network connection of the first computer to the second computer is not permitted. The security state data can be generated by one or more of an anti-virus application, a firewall application, and an operating system running on the first computer. In the alternative, or in addition to one or more of the above options, the security state data can be received by the first computer from a website of a developer of one or more of the anti-virus application, the firewall application, and the operating system. The security state data can comprise data indicating one or more security states, including whether an anti-virus application is running on the first computer, whether the anti-virus application is up-to-date, whether a firewall application is running on the other computer, whether the firewall application is up-to-date, whether an operating system patch has been installed to close a vulnerability in the operating system running on the other computer, and whether the operating system patch is up-to-date. The request message can be a TCP SYN packet. The proceeding with establishing the network connection can be performed at the second computer by generating and transmitting a SYNACK packet to the first computer in response to the SYN packet. The terminating of establishing the network connection can be performed by disregarding the SYN message. The network can be the Internet.
Having thus described the invention in general terms, reference will now be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein:
The present inventions now will be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all embodiments of the invention are shown. Indeed, these inventions may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Like numbers refer to like elements throughout.
‘And/or’ means ‘one, some, or all’ of the things immediately preceding and succeeding this phrase. Thus, ‘A, B and/or C’ means ‘any one, some or all of A, B and C.’
‘Computer’ can be any device capable of receiving input data, processing that data, and generating output data. The computer can be a personal computer, laptop computer, personal digital assistant (PDA), server, mainframe, minicomputer, or any other computing device. Examples are commercially available from numerous vendors, including Dell® Corporation, Round Rock, Tex.; Hewlett-Packard® Corporation, Palo Alto, Calif., IBM® Corporation, Armonk, N.Y., Sun Microsystems, Inc., Sunnyvale, Calif., and numerous others.
‘Input Device’ can be a keyboard, keypad, mouse, joystick, pen, stylus or other device used to input data into a computer.
‘Memory’ or ‘computer-readable medium’ refers to virtually any element capable of storing data and/or code that can be read by a processor of a computer. ‘Memory’ includes within its meaning one or more transistors capable of storing data, a flip-flop, register, random-access memory (RAM) such as synchronous dynamic access RAM (SDRAM), read-only memory (ROM), flash memory, compact disc (CD), digital video disc (DVD), hard disk drive unit, disk storage unit, magnetic tape, etc. or any other device that can be used to store data.
‘Network’ is a group of computers and associated devices connected to communicate with one another, and can refer to a local area network (LAN), wide area network (WAN), metropolitan area network (MAN), Ethernet, Fast Ethernet, SONET, the Internet I and II, etc.
‘Operating system’ enables a processor to communicate with other elements of a computer. The operating system can be one of the systems sold under the marks Windows® CE, Palm OS, DOS, Windows® 95, Windows® 98, Windows® 2000, Windows® NT, Windows® XP, Solaris, OS/2, OS/360, OS/400, iSeries, eSeries, pSeries, zSeries, UNIX, LINUX, and numerous others.
‘Output Device’ refers to a device such as a monitor, for generating a display of a computer.
‘Processor’ can be virtually any element capable of processing data, including a microprocessor, microcontroller, programmable gate array, field programmable gate array (FPGA), programmable logic array (PLA), programmable array logic (PAL), etc. The processor can be configured to process data in electromagnetic form including electrical, optical, electro-optical, or magnetic data, for example.
‘(s)’ or ‘(ies)’ means one or more of the thing meant by the word immediately preceding the phrase ‘(s)’. Thus, “computer(s)” means “one or more computers.”
Transport control protocol (TCP) is used extensively in network communications over the Internet. It uses sequenced acknowledgement with packet retransmission if necessary. The transport control protocol (TCP) packet 10 includes standard fields as indicated in
To establish network communication between two computers over a network using TCP, the two computers perform a three-step handshake, sometimes referred to as SYN-SYNACK-ACK. More specifically, the computer initiating communication transmits a synchronization (SYN) TCP packet to the computer to which a connection is to be made. The receiving computer responds with a synchronization acknowledgement (SYNACK) TCP packet, and the initiating computer responds to receipt of the SYNACK TCP packet with an acknowledgement (ACK) TCP packet transmitted to the computer responding to the request to open a network connection.
Of particular interest to this disclosure is security state data 12 which defines the security status of the computer initiating or responding to initiation of network communication. The security state data 12 contains data that indicates the security status of the computer with which it is associated. In
Because in TCP the Urgent Pointer field 26 need not be used to establish a network connection between two computers, the security state data 12 can be inserted into the Urgent Pointer field 26 by the computer initiating opening of a network connection and/or the computer receiving a request to establish a network connection from another computer. This permits the computer receiving the security state data 12 to use it to apply a security policy to determine whether communication with the other computer is permitted. Thus, communication with another computer can be granted or refused using the security state data to determine whether communication is permitted with that computer given its security status.
In the use of security state data 12 to apply security policy data, various embodiments are possible. The following describes two groups of exemplary embodiments of the invention.
The first computer initiating communication with a SYN packet includes its security state data 12 in the SYN packet 10. The second computer receiving the SYN packet determines whether connection is permissible using the received security state data and its own security policy data. If the second computer determines that response to the SYN packet to establish a connection is permitted under data indicating its security policy, the second computer responds with a SYNACK packet and optionally includes its own security state data 12 for use by the first computer. Conversely, if the second computer determines that the network connection is not permitted under its security policy, it can respond with a NACK packet to terminate the connection. Alternatively, it can simply not respond to the first computer to avoid revealing any characteristics of the second computer that can be exploited by a virus or worm. The first computer receives the SYNACK packet, and optionally applies its own security policy data to determine whether communication with the second computer is permissible given its security status. If the first computer determines that the network connection is permitted by its security policy data, then it transmits an ACK packet to the second computer in order to complete establishment of the network connection. Conversely, if the first computer determines that the security status of the second computer does not permit the first computer to connect to it under its security policy, the first computer transmits a NACK to the second computer. Alternatively, the first computer can be programmed to simply not respond to the second computer to avoid transmission of any further data that can be used by a a virus or worm in the second computer to attack the first computer.
The first computer initiates communication by transmitting a SYN packet to the second computer via the network. The second computer retrieves its security state data 12 and transmits same to the first computer in a SYNACK packet. The first computer receiving the SYNACK packet determines whether connection is permissible using the received security state data and its own security policy data. If the first computer determines that response to the SYN packet to establish a connection is permitted under data indicating its security policy, the second computer responds with an ACK packet and optionally includes its own security state data for use by the second computer. Conversely, if the first computer determines that the network connection is not permitted under its security policy data, it can respond with a NACK packet to terminate the connection. Alternatively, it can simply not respond to the first computer to avoid revealing any characteristics of the second computer that can be exploited by a virus or worm. The first second computer receives the SYNACK packet via the network, and optionally applies its own security policy data to determine whether communication with the first computer is permissible given its security status. If the second computer determines that the network connection is permitted by its security policy data, then it permits establishment of the connection. Conversely, if the second computer determines that the security status of the first computer does not permit the first computer to connect to it under its security policy, the second computer transmits an ABORT or CLOSE message to the first computer and disregards further communication from the first computer. Alternatively, the first computer can be programmed to simply not respond to the second computer to avoid transmission of any further data that can be used by a virus or worm in the second computer to attack the first computer.
An exemplary one of the systems 100 is shown in
Each host computer 200, in general terms, has a processor 202, a memory 204, and input device 206, and output device 208, an interface unit 210, and bus 211 coupling these elements together. Although this is a simplification of the internal configuration of modern computers, at a basic level, it is sufficient to describe that which is necessary for an understanding of the disclosed invention. The processor 202 executes the operating system and applications stored in the memory 204, using stored data to process such data. The input and output devices 206, 208 permit a human user to interact with the computer 200 by providing a user interface. The interface unit 210 can be a network interface card (NIC), Ethernet card, modem, etc. enabling communication with other computers via the network 600.
Similarly, the manager computer 300 comprises a processor 302, memory 304, input device 306, output device 308, interface unit 310, which are coupled via bus 311. The processor 302 executes the operating system and applications using data stored in the memory 304, and the input and output devices 306, 308 permit a human administrator to interact with the computer 300 by providing a user interface. The interface unit 310 enables communication with the networks 600, 700 (as previously explained, these can be the same and normally are in many practical applications of the invention the Internet).
Similarly, the gateway computer 400 comprises processor 402, memory 404, input device 406, output device 408, interface unit 410, which are coupled via bus 411. The processor 402 executes the operating system and applications using data stored in the memory 404, and the input and output devices 406, 408 permit a human intranet administrator to interact with the computer 400 by providing a user interface. The interface unit 410 enables communication with other computers via the networks 700, 800 (as previously explained, normally, the network 700 is the Internet and the network 800 is an intranet.
The host computers 500 can be configured similarly to host computers 200. However, because these computers are protected by gateway computer 400, it is not necessary that each be provided with the security check application program interface (API) 102, the security state inserter module 104, the security policy enforcer module 106, the security policy data 108, the anti-virus application 114, 414, or the firewall application 116, 416. However, such modules, data, applications, and stack can be provided for such computers 500 if additional security is desired by the intranet users and/or administrator. In addition, the network 800 need not be an Ethernet network or the like supporting the TCP/IP protocol stack 420, and it is thus possible to replace this stack with a module supporting a different protocol appropriate for communication on the network 800.
The networks 600, 700, 800 can comprise a network of computers, routers, switches, etc. that are connected to allow packet communications to flow from one computer to another. These networks can be implemented as packet switching networks that are well-known to those of ordinary skill in the art.
The manager computer 300 is responsible for administering the security policy of the overall system 100 for those computers that are protected. To this end, it is provided with a manager application 301, security check API 102, security state inserter 104, security policy enforcer 106, and security policy data 108. The manager application 301 is executed by the processor 302 to enable the human administrator to set security policy data 108 via the input and output devices 306, 308. The security check API 102 can be executed by the processor of a computer in order to update security state data 312 related to anti-virus application, firewall application, and operating system patch(es), and whether they are active and up-to-date. The security policy inserter 104 retrieves and inserts security state data 112 of a computer into a TCP packet to be transmitted to another computer. The security policy enforcer 106 is executed by a computer to determine whether a network connection with the transmitting computer should be permitted to continue given the security data and the data defining the policy set by the manager computer 300.
When it is determined that an unprotected computer is to be provided with the software or code necessary to convert it into a protected computer, then the manager computer 300 executes its manager application 301, causing it to transmit the computer code modules 102, 104, 106 to the unprotected computer, along with the security policy data 108 set by the system administrator. The receiving computer then loads the modules 102, 104, 106, thereby enabling it to become a protected computer under the security policy set by data 108. Communication can still be permitted by a protected computer with an unprotected computer if the security policy data 108 is set to so allow. A system administrator can use the manager computer 300 to set the security policy data 108 to allow or prohibit certain types of communication between protected and unprotected computers.
In the first embodiment, in
When the computer 200-1 initiates a network connection with the computer 200-xvia the network 600, it will execute its TCP stack 120-1 in order to create a SYN packet 10-1a of the structure shown in
In the second embodiment, assume as before that computers 200-1 and 200-x are each protected. The host computer 200-1 executes its TCP stack 120-1 to generate and transmit a TCP SYN packet 10-1a to the host computer 200-x. The host computer 200-xresponds by creating a SYNACK packet 10-xand executing its security state inserter 104-xto incorporate its security state data 112-xinto the SYNACK packet 10-x. The host computer 200-xexecutes its TCP stack 120-xto transmit the SYNACK packet 10-xwith its security state data 112-xback to the host computer 200-1 via the network 600. The host computer 200-1 executes its security policy enforcer 106-1 to compare the received security state data 112-xwith its security policy data 108-1. If it determines that one or more applications 114-1, 116-1 are not active or up-to-date, or that an operating system patch required by the security policy data 108-1 is missing or not active, then the host computer 200-1 executes the security policy enforcer 106-1 to drop the connection or transmit a NACK to the host computer 200-x. Conversely, if the host computer 200-1 determines that the connection is permitted under the security policy data 108-1, then it executes its TCP stack 120-1 to generate an ACK packet 10-1b and inserts its security state data 112-1 therein. It further executes the TCP stack 120-1 to transmit the ACK packet 10-1b and the incorporated security state data 112-1 to the host computer 200-x via the network 600. The host computer 200-xreceives the ACK packet 10-1b and compares the received security state data 112-1 and executes its security policy enforcer 106-xto compare it against the security policy data 108-xto determine whether the network connection is to be permitted. If the received security state data 112-1 does not comply with the policy established by the security policy data 108-x, then the security policy enforcer 106-xexecutes its TCP stack 120-xto transmit a NACK message to the host computer 200-1 via the network 600 and disregards further data transmitted by such host computer 200-1 in the terminated session. Conversely, if the host computer 200-x executes its security software and determines that the received security state data 112-1 complies with its security policy data 108-x, then the host computer 200-xpermits the network connection to the host computer 200-1 via the network 600.
Those of ordinary skill in the art will appreciate that a network connection under either the first or second embodiment may be established by any of the host computers 200, manager computer 300, and gateway computer 400 and the processing performed by each will be in substance the same as that described above with respect to communications between computers 200-1 and 200-x.
It will be appreciated that the manager computer 300 should rapidly deploy any updates to the computer code modules 102, 104, 108 or the security policy data 108 to all protected computers. Else, considerable difficulty can result if computers are running different versions of these programs or data.
Although all of the computers shown in
Many modifications of the system, apparatuses, methods, and computer-readable media disclosed herein are possible without departing from the scope of the invention. For example, fields other than the Urgent Pointer field can be used to store security state data to establish a network connection. It is particularly advantageous if such fields are not used in the handshaking process required to establish a network connection between two computers.
Furthermore, although the packet structure described and used in this disclosure is TCP protocol, the incorporation of security state data can be included in virtually any network communication protocol that has one or more fields that are not used for other purposes in the packets used to initiate network communication, and the embodiments of the invention can be readily modified by those of ordinary skill in this art to accommodate the use of such other field(s). For example, it is possible the security state data, or a part thereof, could be incorporated into the Internet Protocol (IP) header in the IP identification (ID) field, and the disclosed computers, system, methods, and media adapted to accommodate use of such field(s).
It is possible that the protected computers can be operated with or without the security features described herein, i.e., that these features are offered as option to a computer user. To this end, the computer can be provided with security activation data to indicate whether a computer is to operate in protected mode by checking security state data, or conversely, whether such computer is to be operated without such protected mode. In this case, the computer checks its security activation data. If active, it will process received security state data by applying its security policy data to determine whether a network connection is permitted. Conversely, if inactive, the computer will ignore any security state data that may be included in a received packet.
Many modifications and other embodiments of the inventions set forth herein will come to mind to one skilled in the art to which these inventions pertain having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the inventions are not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.
Patent | Priority | Assignee | Title |
10979959, | Nov 03 2004 | The Wilfred J. and Louisette G. Lagassey Irrevocable Trust | Modular intelligent transportation system |
7913289, | May 23 2005 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Method and apparatus for security policy and enforcing mechanism for a set-top box security processor |
8347357, | May 23 2005 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | Method and apparatus for constructing an access control matrix for a set-top box security processor |
8892495, | Feb 01 1999 | Blanding Hovenweep, LLC; HOFFBERG FAMILY TRUST 1 | Adaptive pattern recognition based controller apparatus and method and human-interface therefore |
9177176, | Feb 27 2006 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Method and system for secure system-on-a-chip architecture for multimedia data processing |
9371099, | Nov 03 2004 | THE WILFRED J AND LOUISETTE G LAGASSEY IRREVOCABLE TRUST, ROGER J MORGAN, TRUSTEE | Modular intelligent transportation system |
9407557, | Dec 22 2012 | EDGEWATER NETWORKS, INC | Methods and systems to split equipment control between local and remote processing units |
9489318, | Jun 19 2006 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Method and system for accessing protected memory |
9535563, | Feb 01 1999 | Blanding Hovenweep, LLC; HOFFBERG FAMILY TRUST 1 | Internet appliance system and method |
9652637, | May 23 2005 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Method and system for allowing no code download in a code download scheme |
9904809, | Feb 27 2006 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Method and system for multi-level security initialization and configuration |
Patent | Priority | Assignee | Title |
5204961, | Jun 25 1990 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Computer network operating with multilevel hierarchical security with selectable common trust realms and corresponding security protocols |
5216675, | May 23 1990 | UNITED STATES OF AMERICA, THE, AS REPRESENTED BY THE SECRETARY OF THE AIR FORCE | Reliable broadcast protocol |
5689566, | Oct 24 1995 | Network with secure communications sessions | |
5796942, | Nov 21 1996 | CA, INC | Method and apparatus for automated network-wide surveillance and security breach intervention |
5802178, | Jul 30 1996 | Round Rock Research, LLC | Stand alone device for providing security within computer networks |
5872847, | Jul 30 1996 | Harris Corporation | Using trusted associations to establish trust in a computer network |
5956481, | Feb 06 1997 | Microsoft Technology Licensing, LLC | Method and apparatus for protecting data files on a computer from virus infection |
6070244, | Nov 10 1997 | JPMORGAN CHASE BANK, N A | Computer network security management system |
6119171, | Jan 29 1998 | HANGER SOLUTIONS, LLC | Domain name routing |
6219786, | Sep 09 1998 | FORCEPOINT FEDERAL HOLDINGS LLC; Forcepoint LLC | Method and system for monitoring and controlling network access |
6219787, | Dec 22 1997 | Texas Instruments Incorporated | Method and apparatus for extending security model to native code |
6275942, | May 20 1998 | JPMORGAN CHASE BANK, N A ; MORGAN STANLEY SENIOR FUNDING, INC | System, method and computer program product for automatic response to computer system misuse using active response modules |
6279113, | Mar 16 1998 | GEN DIGITAL INC | Dynamic signature inspection-based network intrusion detection |
6317831, | Sep 21 1998 | Unwired Planet, LLC | Method and apparatus for establishing a secure connection over a one-way data path |
6320874, | Oct 07 1998 | RPX CLEARINGHOUSE LLC | Establishing and terminating connections in a mixed protocol network |
6363489, | Nov 29 1999 | Forescout Technologies Inc | Method for automatic intrusion detection and deflection in a network |
6370648, | Dec 08 1998 | Visa International Service Association | Computer network intrusion detection |
6408391, | May 06 1998 | Northrop Grumman Systems Corporation | Dynamic system defense for information warfare |
6493342, | Sep 11 1998 | RATEZE REMOTE MGMT L L C | Method of data transmission in a data communication network |
6606706, | Feb 08 1999 | AVAYA Inc | Hierarchical multicast traffic security system in an internetwork |
6618359, | Oct 07 1998 | RPX CLEARINGHOUSE LLC | Error recovery in a mixed protocol networks |
6671273, | Dec 31 1998 | Hewlett Packard Enterprise Development LP | Method for using outgoing TCP/IP sequence number fields to provide a desired cluster node |
6742118, | May 12 1995 | Sony Corporation | Information processing apparatus, information processing method, data recording medium, and information processing system |
6772334, | Aug 31 2000 | JPMORGAN CHASE BANK, N A ; MORGAN STANLEY SENIOR FUNDING, INC | System and method for preventing a spoofed denial of service attack in a networked computing environment |
6959184, | Jun 30 1999 | Lucent Technologies Inc.; Lucent Technologies Inc | Method for determining the security status of transmissions in a telecommunications network |
6980658, | Sep 30 1999 | Qualcomm Incorporated | Method and apparatus for encrypting transmissions in a communication system |
6985941, | Nov 20 1997 | AMDOCS DEVELOPMENT LIMITED; AMDOCS ISRAEL LTD | Database management and recovery in a network-based filtering and aggregating platform |
7007301, | Jun 12 2000 | Hewlett Packard Enterprise Development LP | Computer architecture for an intrusion detection system |
7134022, | Jul 16 2002 | Multi-level and multi-category data labeling system | |
7280540, | Jan 09 2001 | FORCEPOINT FEDERAL HOLDINGS LLC; Forcepoint LLC | Processing of data packets within a network element cluster |
7302700, | Sep 28 2001 | Juniper Networks, Inc | Method and apparatus for implementing a layer 3/layer 7 firewall in an L2 device |
7334254, | Jul 31 2003 | T-MOBILE INNOVATIONS LLC | Business-to-business security integration |
20010023482, | |||
20010054159, | |||
20020004847, | |||
20020029337, | |||
20020078202, | |||
20020078354, | |||
20020083343, | |||
20020087882, | |||
20020101332, | |||
20020103916, | |||
20020107953, | |||
20020112185, | |||
20020129264, | |||
20020133586, | |||
20020133698, | |||
20020133721, | |||
20020136407, | |||
20030055994, | |||
20030074567, | |||
20030076794, | |||
20030084331, | |||
20030088791, | |||
20040034771, | |||
20040083286, | |||
20040107360, | |||
20040215771, | |||
20040233915, | |||
CA2286534, | |||
WO2061510, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Apr 29 2005 | SHAY, A DAVID | TRUSTED NETWORK TECHNOLOGIES, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 016543 | /0790 | |
May 05 2005 | Liquidware Labs, Inc. | (assignment on the face of the patent) | / | |||
Apr 06 2009 | TRUSTED NETWORK TECHNOLOGIES, INC | LIQUIDWARE LABS, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 022562 | /0980 | |
Aug 27 2012 | LIQUIDWARE LABS, INC | LB 2 LLC | SECURITY AGREEMENT | 028884 | /0340 |
Date | Maintenance Fee Events |
Nov 29 2012 | M2551: Payment of Maintenance Fee, 4th Yr, Small Entity. |
Dec 02 2016 | M2552: Payment of Maintenance Fee, 8th Yr, Small Entity. |
Feb 01 2021 | REM: Maintenance Fee Reminder Mailed. |
Jul 19 2021 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Jun 16 2012 | 4 years fee payment window open |
Dec 16 2012 | 6 months grace period start (w surcharge) |
Jun 16 2013 | patent expiry (for year 4) |
Jun 16 2015 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jun 16 2016 | 8 years fee payment window open |
Dec 16 2016 | 6 months grace period start (w surcharge) |
Jun 16 2017 | patent expiry (for year 8) |
Jun 16 2019 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jun 16 2020 | 12 years fee payment window open |
Dec 16 2020 | 6 months grace period start (w surcharge) |
Jun 16 2021 | patent expiry (for year 12) |
Jun 16 2023 | 2 years to revive unintentionally abandoned end. (for year 12) |