Establishing consistent, end-to-end protection for a user datagram
First Claim
1. A computer program product for providing end-to-end protection for datagrams in a computer networking environment, the computer program product embodied on one or more computer-readable media and comprising:
- computer-readable program code means for protecting each of a plurality of network segments that comprise a network path from a datagram originator to a datagram destination, further comprising;
computer-readable program code means for establishing a first protected network segment from the datagram originator to a first of one or more gateways in the network path;
computer-readable program code means for cascading zero or more protected gateway-to-gateway segments along the network path, each of the gateway-to-gateway segments being cascaded from one of the gateways in the network path to a next successive one of the gateways; and
computer-readable program code means for cascading a last protected network segment from a final one of the gateways to the datagram destination, wherein the final gateway is the first gateway if no gateway-to-gateway segments are required, wherein each of the gateways retains cleartext access to datagrams sent on the network path.
1 Assignment
0 Petitions

Accused Products

Abstract
A method, system, and computer program product for providing consistent, end-to-end protection within a computer network for user datagrams (i.e. packets) traveling through the network. The network may comprise network segments that are conventionally assumed to be secure (such as those found in a corporate intranet) as well as network segments in non-secure networks (such as the public Internet or corporate extranets). Because security breaches may in fact happen in any network segment when datagrams are unprotected, the present invention discloses a technique for protecting datagrams throughout the entire network path by establishing cascaded tunnels. The datagrams may be exposed in cleartext at the endpoints of each tunnel, thereby enabling security gateways to perform services that require content inspection (such as network address translation, access control and authorization, and so forth). The preferred embodiment is used with the “IPSec” (Internet Protocol Security Protocol) and “IKE” (Internet Key Exchange) protocols, thus providing a standards-based solution.
193 Citations
Identifying a computer device | ||
Patent #
US 7,958,226 B2
Filed 02/15/2006
|
Current Assignee
Oracle International Corporation
|
Original Assignee
Oracle International Corporation
|
Using an identity-based communication layer for computing device communication | ||
Patent #
US 7,962,655 B2
Filed 02/25/2003
|
Current Assignee
Oracle International Corporation
|
Original Assignee
Oracle International Corporation
|
Flexible billing architecture | ||
Patent #
US 8,010,082 B2
Filed 10/19/2005
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Method for permitting two parties to establish connectivity with both parties behind firewalls | ||
Patent #
US 7,992,199 B1
Filed 12/31/2003
|
Current Assignee
Ademco Inc.
|
Original Assignee
Honeywell International Inc.
|
Managing user-to-user contact with inferred presence information | ||
Patent #
US 8,069,166 B2
Filed 02/27/2006
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
ONE TIME PASSWORDS WITH IPSEC AND IKE VERSION 1 AUTHENTICATION | ||
Patent #
US 20110283103A1
Filed 05/13/2010
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Technology Licensing LLC
|
Multiple data store authentication | ||
Patent #
US 8,064,583 B1
Filed 09/21/2006
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Communicating data from a data producer to a data receiver | ||
Patent #
US 7,853,983 B2
Filed 02/25/2003
|
Current Assignee
Oracle International Corporation
|
Original Assignee
BEA Systems Incorporated
|
Computer system for authenticating a computing device | ||
Patent #
US 7,805,606 B2
Filed 02/25/2003
|
Current Assignee
Oracle International Corporation
|
Original Assignee
BEA Systems Incorporated
|
Secure transport for mobile communication network | ||
Patent #
US 7,827,597 B2
Filed 10/19/2007
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
NETWORK LOCATION DETERMINATION FOR DIRECT ACCESS NETWORKS | ||
Patent #
US 20100107240A1
Filed 01/22/2009
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
COMPUTER SYSTEM FOR AUTHENTICATING A COMPUTING DEVICE | ||
Patent #
US 20090007234A1
Filed 12/06/2006
|
Current Assignee
ConnecTerra Inc.
|
Original Assignee
ConnecTerra Inc.
|
Using an identity-based communication layer for computing device communication | ||
Patent #
US 20090006840A1
Filed 02/25/2003
|
Current Assignee
Oracle International Corporation
|
Original Assignee
Oracle International Corporation
|
COMPUTER SYSTEM FOR AUTHENTICATING A COMPUTING DEVICE | ||
Patent #
US 20090007217A1
Filed 12/06/2006
|
Current Assignee
ConnecTerra Inc.
|
Original Assignee
ConnecTerra Inc.
|
Computer system for authenticating a computing device | ||
Patent #
US 20090006850A1
Filed 02/25/2003
|
Current Assignee
Oracle International Corporation
|
Original Assignee
Oracle International Corporation
|
Method and system for securely scanning network traffic | ||
Patent #
US 7,543,332 B2
Filed 02/06/2007
|
Current Assignee
Intellectual Ventures II LLC
|
Original Assignee
ATT Inc.
|
Multipoint server for providing secure, scaleable connections between a plurality of network devices | ||
Patent #
US 7,562,386 B2
Filed 02/06/2007
|
Current Assignee
Rakuten Inc.
|
Original Assignee
ATT Intellectual Property II LP
|
Virtual private network crossovers based on certificates | ||
Patent #
US 7,574,738 B2
Filed 11/06/2002
|
Current Assignee
ATT Inc.
|
Original Assignee
ATT Intellectual Property I LP
|
Facilitating Protection Of A Maintenance Entity Group | ||
Patent #
US 20090276830A1
Filed 04/30/2008
|
Current Assignee
Fujitsu Limited
|
Original Assignee
Fujitsu Network Communications Incorporated
|
SECURE TRANSPORT FOR MOBILE COMMUNICATION NETWORK | ||
Patent #
US 20080037787A1
Filed 10/19/2007
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Re-encrypting policy enforcement point | ||
Patent #
US 20080072033A1
Filed 09/19/2006
|
Current Assignee
Certes Networks Inc.
|
Original Assignee
Certes Networks Inc.
|
UNIVERSAL SECURE MESSAGING FOR CRYPTOGRAPHIC MODULES | ||
Patent #
US 20080089521A1
Filed 09/07/2007
|
Current Assignee
Assa Abloy AB
|
Original Assignee
Activcard Ireland Limited
|
System and method for secure network roaming | ||
Patent #
US 7,389,412 B2
Filed 08/05/2002
|
Current Assignee
Syniverse Technologies LLC
|
Original Assignee
INTERACTIVE TECHNOLOGY LIMITED OF HK
|
COMMUNICATION SYSTEM, IPsec TUNNEL TERMINATION DEVICE, AND IPsec TUNNEL COMMUNICATION CONTINUATION METHOD USED FOR THEM | ||
Patent #
US 20080222716A1
Filed 03/05/2008
|
Current Assignee
NEC Corporation
|
Original Assignee
NEC Corporation
|
Method and system for securely scanning network traffic | ||
Patent #
US 7,448,081 B2
Filed 09/22/2006
|
Current Assignee
Intellectual Ventures II LLC
|
Original Assignee
ATT Intellectual Property I LP
|
Computer system | ||
Patent #
US 20080301783A1
Filed 02/25/2003
|
Current Assignee
Oracle International Corporation
|
Original Assignee
Oracle International Corporation
|
Identifying a computing device | ||
Patent #
US 20080301298A1
Filed 02/25/2003
|
Current Assignee
BEA Systems Incorporated
|
Original Assignee
BEA Systems Incorporated
|
Method and system for securely scanning network traffic | ||
Patent #
US 20070016947A1
Filed 09/22/2006
|
Current Assignee
Intellectual Ventures II LLC
|
Original Assignee
ATT Inc.
|
CONNECTION ARCHITECTURE FOR A MOBILE NETWORK | ||
Patent #
US 20070027832A1
Filed 09/07/2006
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Methods and systems for end-to-end data protection in a memory controller | ||
Patent #
US 7,225,395 B2
Filed 08/18/2003
|
Current Assignee
Avago Technologies International Sales Pte Limited
|
Original Assignee
LSI Corporation
|
Method and system for securely scanning network traffic | ||
Patent #
US 20070169187A1
Filed 02/06/2007
|
Current Assignee
Intellectual Ventures II LLC
|
Original Assignee
ATT Inc.
|
Method and apparatus for tunneling information | ||
Patent #
US 7,260,650 B1
Filed 11/28/2001
|
Current Assignee
Cisco Technology Incorporated
|
Original Assignee
Cisco Technology Incorporated
|
Multipoint server for providing secure, scaleable connections between a plurality of network devices | ||
Patent #
US 20070180514A1
Filed 02/06/2007
|
Current Assignee
Rakuten Inc.
|
Original Assignee
ATT Inc.
|
NETWORK APPARATUS, IPSEC SETTING METHOD THEREIN, AND COMPUTER-READABLE RECORDING MEDIUM STORING A CONTROL PROGRAM FOR EXECUTING THE METHOD | ||
Patent #
US 20070220250A1
Filed 03/12/2007
|
Current Assignee
Ricoh Company Limited
|
Original Assignee
Ricoh Company Limited
|
Integration of social network information and network firewalls | ||
Patent #
US 20070250922A1
Filed 04/21/2006
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Method and system for providing a symmetric key for more efficient session identification | ||
Patent #
US 7,283,526 B2
Filed 07/19/2001
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Exceptions grouping | ||
Patent #
US 20070271361A1
Filed 05/18/2006
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Distributed firewall implementation and control | ||
Patent #
US 20070261111A1
Filed 05/05/2006
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Splicing of TCP/UDP sessions in a firewalled network environment | ||
Patent #
US 7,305,546 B1
Filed 08/29/2002
|
Current Assignee
Symbol Technologies Inc.
|
Original Assignee
Sprint Communications Company LP
|
Reducing network configuration complexity with transparent virtual private networks | ||
Patent #
US 7,305,705 B2
Filed 06/30/2003
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Handheld network connection created with storage media in a pocket format | ||
Patent #
US 20060026160A1
Filed 07/13/2004
|
Current Assignee
Dan Bertil Duroj
|
Original Assignee
Dan Bertil Duroj
|
Identifying a computer device | ||
Patent #
US 20060174037A1
Filed 02/15/2006
|
Current Assignee
Oracle International Corporation
|
Original Assignee
BEA Systems Incorporated
|
Identifying a computer device | ||
Patent #
US 20060184681A1
Filed 02/15/2006
|
Current Assignee
Oracle International Corporation
|
Original Assignee
BEA Systems Incorporated
|
Methods and systems for end-to-end data protection in a memory controller | ||
Patent #
US 20050044349A1
Filed 08/18/2003
|
Current Assignee
Avago Technologies International Sales Pte Limited
|
Original Assignee
LSI Logic Corporation
|
Technique for maintaining secure network connections | ||
Patent #
US 20050198691A1
Filed 03/03/2004
|
Current Assignee
RPX Clearinghouse LLC
|
Original Assignee
Rockstar Consortium US LP
|
Virtual private network crossovers based on certificates | ||
Patent #
US 20040088542A1
Filed 11/06/2002
|
Current Assignee
ATT Inc.
|
Original Assignee
ATT Inc.
|
Network, IPsec setting server apparatus, IPsec processing apparatus, and IPsec setting method used therefor | ||
Patent #
US 20040093524A1
Filed 09/05/2003
|
Current Assignee
NEC Platforms Ltd.
|
Original Assignee
NEC Corporation
|
Universal secure messaging for remote security tokens | ||
Patent #
US 20040143730A1
Filed 12/22/2003
|
Current Assignee
Assa Abloy AB
|
Original Assignee
Actividentity Corporation
|
Reducing network configuration complexity with transparent virtual private networks | ||
Patent #
US 20040268121A1
Filed 06/30/2003
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Method and system for providing a symmetric key for more efficient session identification | ||
Patent #
US 20030016653A1
Filed 07/19/2001
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
System and method for secure network roaming | ||
Patent #
US 20030039234A1
Filed 08/05/2002
|
Current Assignee
Syniverse Technologies LLC
|
Original Assignee
Skylead Assets Limited
|
Method for controlling an internet information security system in an IP packet level | ||
Patent #
US 20030126466A1
Filed 07/03/2002
|
Current Assignee
Electronics and Telecommunications Research Institute
|
Original Assignee
Electronics and Telecommunications Research Institute
|
Secure network connection for devices on a private network | ||
Patent #
US 20030191843A1
Filed 04/04/2002
|
Current Assignee
ATT Inc.
|
Original Assignee
ATT Inc.
|
Security enabled network flow control | ||
Patent #
US 20030212901A1
Filed 05/13/2002
|
Current Assignee
Intel Corporation
|
Original Assignee
Intel Corporation
|
Secure end-to-end transport through intermediary nodes | ||
Patent #
US 8,127,342 B2
Filed 09/23/2010
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Distributed firewall implementation and control | ||
Patent #
US 8,079,073 B2
Filed 05/05/2006
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Provisioning applications for a mobile device | ||
Patent #
US 8,078,158 B2
Filed 06/26/2008
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Provisioning of e-mail settings for a mobile terminal | ||
Patent #
US 8,116,214 B2
Filed 11/30/2005
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile virtual network operator | ||
Patent #
US 8,107,921 B2
Filed 01/11/2008
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Integration of social network information and network firewalls | ||
Patent #
US 8,122,492 B2
Filed 04/21/2006
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Method and system for securely scanning network traffic | ||
Patent #
US 8,136,152 B2
Filed 04/18/2008
|
Current Assignee
Intellectual Ventures II LLC
|
Original Assignee
Worcester Technologies LLC
|
Application and network-based long poll request detection and cacheability assessment therefor | ||
Patent #
US 8,166,164 B1
Filed 10/14/2011
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Exceptions grouping | ||
Patent #
US 8,176,157 B2
Filed 05/18/2006
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Technique for maintaining secure network connections | ||
Patent #
US 8,186,026 B2
Filed 03/03/2004
|
Current Assignee
RPX Clearinghouse LLC
|
Original Assignee
Rockstar Bidco LP
|
Cache defeat detection and caching of content addressed by identifiers intended to defeat cache | ||
Patent #
US 8,190,701 B2
Filed 11/01/2011
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Network apparatus, IPsec setting method therein, and computer-readable recording medium storing a control program for executing the method | ||
Patent #
US 8,281,124 B2
Filed 03/12/2007
|
Current Assignee
Ricoh Company Limited
|
Original Assignee
Ricoh Company Limited
|
Application and network-based long poll request detection and cacheability assessment therefor | ||
Patent #
US 8,291,076 B2
Filed 03/05/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Network, IPsec setting server apparatus, IPsec processing apparatus, and IPsec setting method used therefor | ||
Patent #
US 8,301,875 B2
Filed 09/05/2003
|
Current Assignee
NEC Platforms Ltd.
|
Original Assignee
NEC Infrontia Corporation
|
Universal secure messaging for cryptographic modules | ||
Patent #
US 8,306,228 B2
Filed 09/07/2007
|
Current Assignee
Assa Abloy AB
|
Original Assignee
Activcard Ireland Limited
|
Social caching for device resource sharing and management | ||
Patent #
US 8,316,098 B2
Filed 04/19/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Distributed management of keep-alive message signaling for mobile network resource conservation and optimization | ||
Patent #
US 8,326,985 B2
Filed 11/01/2011
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
System and method for a mobile device to use physical storage of another device for caching | ||
Patent #
US 8,356,080 B2
Filed 07/20/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Electronic-mail filtering for mobile devices | ||
Patent #
US 8,364,181 B2
Filed 12/10/2007
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Context aware data presentation | ||
Patent #
US 8,412,675 B2
Filed 02/24/2006
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Aligning data transfer to optimize connections established for transmission over a wireless network | ||
Patent #
US 8,417,823 B2
Filed 11/18/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Method and Apparatus to Create and Manage Virtual Private Groups in a Content Oriented Network | ||
Patent #
US 20120159176A1
Filed 09/20/2011
|
Current Assignee
Futurewei Technologies Incorporated
|
Original Assignee
Futurewei Technologies Incorporated
|
Flexible real-time inbox access | ||
Patent #
US 8,438,633 B1
Filed 12/18/2006
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Publishing data in an information community | ||
Patent #
US 8,468,126 B2
Filed 12/14/2005
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Distributed caching in a wireless network of content delivered for a mobile application over a long-held request | ||
Patent #
US 8,484,314 B2
Filed 10/14/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Provisioning applications for a mobile device | ||
Patent #
US 8,494,510 B2
Filed 12/06/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile network background traffic data management with optimized polling intervals | ||
Patent #
US 8,539,040 B2
Filed 02/28/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Secure end-to-end transport through intermediary nodes | ||
Patent #
US 8,549,587 B2
Filed 02/14/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
System and method for executing commands that are non-native to the native environment of a mobile device | ||
Patent #
US 8,561,086 B2
Filed 05/17/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Universal secure messaging for remote security tokens | ||
Patent #
US 8,209,753 B2
Filed 12/22/2003
|
Current Assignee
Assa Abloy AB
|
Original Assignee
ActivCard Inc.
|
Detecting and preserving state for satisfying application requests in a distributed proxy and cache system | ||
Patent #
US 8,621,075 B2
Filed 04/27/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Cache state management on a mobile device to preserve user experience | ||
Patent #
US 8,635,339 B2
Filed 08/22/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Polling | ||
Patent #
US 8,693,494 B2
Filed 03/31/2008
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Cache defeat detection and caching of content addressed by identifiers intended to defeat cache | ||
Patent #
US 8,700,728 B2
Filed 05/17/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Cross-platform event engine | ||
Patent #
US 8,209,709 B2
Filed 07/05/2010
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Distributed system for cache defeat detection and caching of content addressed by identifiers intended to defeat cache | ||
Patent #
US 8,204,953 B2
Filed 11/01/2011
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Electronic-mail filtering for mobile devices | ||
Patent #
US 8,738,050 B2
Filed 01/07/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile device equipped with mobile network congestion recognition to make intelligent decisions regarding connecting to an operator network | ||
Patent #
US 8,750,123 B1
Filed 07/31/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Facilitating protection of a maintenance entity group | ||
Patent #
US 8,752,131 B2
Filed 04/30/2008
|
Current Assignee
Fujitsu Limited
|
Original Assignee
Fujitsu Limited
|
Maintaining an IP connection in a mobile network | ||
Patent #
US 8,761,756 B2
Filed 09/13/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks International Oy
|
Integrated messaging | ||
Patent #
US 8,774,844 B2
Filed 04/08/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications | ||
Patent #
US 8,775,631 B2
Filed 02/25/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Timing of keep-alive messages used in a system for mobile network resource conservation and optimization | ||
Patent #
US 8,782,222 B2
Filed 09/05/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Application discovery on mobile devices | ||
Patent #
US 8,787,947 B2
Filed 06/18/2008
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Content delivery to a mobile device from a content service | ||
Patent #
US 8,793,305 B2
Filed 12/13/2007
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
System and method of a relay server for managing communications and notification between a mobile device and a web access server | ||
Patent #
US 8,799,410 B2
Filed 04/13/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
One time passwords with IPsec and IKE version 1 authentication | ||
Patent #
US 8,799,649 B2
Filed 05/13/2010
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Corporation
|
Maintaining mobile terminal information for secure communications | ||
Patent #
US 8,805,334 B2
Filed 09/05/2008
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Integrated messaging | ||
Patent #
US 8,805,425 B2
Filed 01/28/2009
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile device power management in data synchronization over a mobile network with or without a trigger notification | ||
Patent #
US 8,811,952 B2
Filed 05/05/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Method and system for management of a virtual network connection without heartbeat messages | ||
Patent #
US 8,812,695 B2
Filed 04/03/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
System and method for tracking billing events in a mobile wireless network for a network operator | ||
Patent #
US 8,831,561 B2
Filed 04/28/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
System and method for making requests on behalf of a mobile device based on atomic processes for mobile network traffic relief | ||
Patent #
US 8,832,228 B2
Filed 04/26/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Distributed caching for resource and mobile network traffic management | ||
Patent #
US 8,838,783 B2
Filed 07/05/2011
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Flexible real-time inbox access | ||
Patent #
US 8,839,412 B1
Filed 09/13/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Web-based access to data objects | ||
Patent #
US 8,838,744 B2
Filed 01/28/2009
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile traffic categorization and policy for network use optimization while preserving user experience | ||
Patent #
US 8,843,153 B2
Filed 11/01/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
System for providing policy based content service in a mobile network | ||
Patent #
US 8,849,902 B2
Filed 06/24/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization | ||
Patent #
US 8,861,354 B2
Filed 12/14/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Policy based content service | ||
Patent #
US 8,862,657 B2
Filed 01/25/2008
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
System of redundantly clustered machines to provide failover mechanisms for mobile traffic management and network resource conservation | ||
Patent #
US 8,868,753 B2
Filed 12/06/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Provisioning of e-mail settings for a mobile terminal | ||
Patent #
US 8,873,411 B2
Filed 01/12/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols | ||
Patent #
US 8,874,761 B2
Filed 03/15/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile application traffic optimization | ||
Patent #
US 8,886,176 B2
Filed 07/22/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Optimization of resource polling intervals to satisfy mobile device requests | ||
Patent #
US 8,903,954 B2
Filed 11/22/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile virtual network operator | ||
Patent #
US 8,909,192 B2
Filed 08/11/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Bandwidth measurement | ||
Patent #
US 8,909,759 B2
Filed 10/12/2009
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Detection and management of user interactions with foreground applications on a mobile device in distributed caching | ||
Patent #
US 8,909,202 B2
Filed 01/07/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
System and method for providing a network service in a distributed fashion to a mobile device | ||
Patent #
US 8,914,002 B2
Filed 08/11/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Optimization of mobile traffic directed to private networks and operator configurability thereof | ||
Patent #
US 8,918,503 B2
Filed 08/28/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Method and apparatus to create and manage virtual private groups in a content oriented network | ||
Patent #
US 8,918,835 B2
Filed 09/20/2011
|
Current Assignee
Futurewei Technologies Incorporated
|
Original Assignee
Futurewei Technologies Incorporated
|
Method and apparatus for intercepting events in a communication system | ||
Patent #
US RE45,348 E1
Filed 03/16/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Application and network-based long poll request detection and cacheability assessment therefor | ||
Patent #
US 8,966,066 B2
Filed 10/12/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Mobile device and method to utilize the failover mechanism for fault tolerance provided for mobile traffic management and network/device resource conservation | ||
Patent #
US 8,977,755 B2
Filed 12/06/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Monitoring mobile application activities for malicious traffic on a mobile device | ||
Patent #
US 8,984,581 B2
Filed 07/11/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Connection architecture for a mobile network | ||
Patent #
US 8,989,728 B2
Filed 09/07/2006
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Predictive content delivery | ||
Patent #
US 9,002,828 B2
Filed 01/02/2009
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation | ||
Patent #
US 9,009,250 B2
Filed 12/07/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Mobile network reporting and usage analytics system and method aggregated using a distributed traffic optimization system | ||
Patent #
US 9,021,021 B2
Filed 12/10/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
3D mobile user interface with configurable workspace management | ||
Patent #
US 9,043,731 B2
Filed 03/30/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile network traffic coordination across multiple applications | ||
Patent #
US 9,043,433 B2
Filed 05/25/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Intelligent rendering of information in a limited display environment | ||
Patent #
US 9,047,142 B2
Filed 12/16/2010
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile network traffic coordination across multiple applications | ||
Patent #
US 9,049,179 B2
Filed 01/20/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Location-based operations and messaging | ||
Patent #
US 9,055,102 B2
Filed 08/02/2010
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic | ||
Patent #
US 9,060,032 B2
Filed 05/09/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network | ||
Patent #
US 9,065,765 B2
Filed 10/08/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Distributed implementation of dynamic wireless traffic policy | ||
Patent #
US 9,077,630 B2
Filed 07/08/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Device resources sharing for network resource conservation | ||
Patent #
US 9,084,105 B2
Filed 04/19/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile network background traffic data management | ||
Patent #
US 9,100,873 B2
Filed 09/14/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Managing cache to prevent overloading of a wireless network due to user activity | ||
Patent #
US 9,131,397 B2
Filed 06/06/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion | ||
Patent #
US 9,161,258 B2
Filed 03/15/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol | ||
Patent #
US 9,173,128 B2
Filed 03/06/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Dynamic categorization of applications for network access in a mobile network | ||
Patent #
US 9,203,864 B2
Filed 02/04/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Mobile device having content caching mechanisms integrated with a network operator for traffic alleviation in a wireless network and methods therefor | ||
Patent #
US 9,208,123 B2
Filed 12/07/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
SECURE END-TO-END TRANSPORT THROUGH INTERMEDIARY NODES | ||
Patent #
US 20150372987A1
Filed 10/01/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile device with application or context aware fast dormancy | ||
Patent #
US 9,241,314 B2
Filed 03/15/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Automatic generation and distribution of policy information regarding malicious mobile traffic in a wireless network | ||
Patent #
US 9,239,800 B2
Filed 07/11/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Extending user relationships | ||
Patent #
US 9,251,193 B2
Filed 10/28/2007
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Application or context aware fast dormancy | ||
Patent #
US 9,271,238 B2
Filed 03/15/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Request and response characteristics based adaptation of distributed caching in a mobile network | ||
Patent #
US 9,275,163 B2
Filed 10/17/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol | ||
Patent #
US 9,277,443 B2
Filed 12/07/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
System and method for a mobile device to use physical storage of another device for caching | ||
Patent #
US 9,300,719 B2
Filed 01/14/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Systems and methods for application management of mobile device radio state promotion and demotion | ||
Patent #
US 9,307,493 B2
Filed 03/15/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
System and method for reduction of mobile network traffic used for domain name system (DNS) queries | ||
Patent #
US 9,325,662 B2
Filed 01/09/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
User as an end point for profiling and optimizing the delivery of content and data in a wireless network | ||
Patent #
US 9,326,189 B2
Filed 02/04/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Wireless traffic management system cache optimization using http headers | ||
Patent #
US 9,330,196 B2
Filed 06/14/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Secure end-to-end transport through intermediary nodes | ||
Patent #
US 9,344,393 B2
Filed 10/01/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Flexible real-time inbox access | ||
Patent #
US 9,342,684 B2
Filed 09/16/2014
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Network classification | ||
Patent #
US 9,374,286 B2
Filed 03/14/2014
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Technology Licensing LLC
|
Mobile application traffic optimization | ||
Patent #
US 9,407,713 B2
Filed 01/16/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Technique for maintaining secure network connections | ||
Patent #
US RE46,113 E1
Filed 05/29/2014
|
Current Assignee
RPX Clearinghouse LLC
|
Original Assignee
RPX Clearinghouse LLC
|
Network classification | ||
Patent #
US 9,608,883 B2
Filed 11/17/2015
|
Current Assignee
Microsoft Technology Licensing LLC
|
Original Assignee
Microsoft Technology Licensing LLC
|
Secure end-to-end transport through intermediary nodes | ||
Patent #
US 9,712,476 B2
Filed 04/27/2016
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Mobile device configured for communicating with another mobile device associated with an associated user | ||
Patent #
US 9,712,986 B2
Filed 03/22/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Operation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic | ||
Patent #
US 9,832,095 B2
Filed 12/14/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Secure end-to-end transport through intermediary nodes | ||
Patent #
US 10,135,771 B2
Filed 06/30/2017
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Enhanced customer service for mobile carriers using real-time and historical mobile application and traffic or optimization data associated with mobile devices in a mobile network | ||
Patent #
US 10,263,899 B2
Filed 04/10/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Multi-bridge LAN aggregation | ||
Patent #
US 10,530,607 B2
Filed 04/29/2015
|
Current Assignee
Cisco Technology Incorporated
|
Original Assignee
Cisco Technology Incorporated
|
Multi-bridge LAN aggregation | ||
Patent #
US 10,536,296 B2
Filed 10/31/2011
|
Current Assignee
Cisco Technology Incorporated
|
Original Assignee
Cisco Technology Incorporated
|
Universal secure messaging for cryptographic modules | ||
Patent #
US 10,554,393 B2
Filed 11/07/2013
|
Current Assignee
Assa Abloy AB
|
Original Assignee
Assa Abloy AB
|
Secure firewall supporting different levels of authentication based on address or encryption status | ||
Patent #
US 5,983,350 A
Filed 09/18/1996
|
Current Assignee
McAfee LLC
|
Original Assignee
Secure Computing Corporation
|
Technique and apparatus for using node ID as virtual private network (VPN) identifiers | ||
Patent #
US 6,693,878 B1
Filed 10/15/1999
|
Current Assignee
Cisco Technology Incorporated
|
Original Assignee
Cisco Technology Incorporated
|
Communication network intended for secure transmission of speech and data | ||
Patent #
US 5,115,466 A
Filed 10/31/1990
|
Current Assignee
Alcatel STK AS
|
Original Assignee
Alcatel STK AS
|
Simplified method of configuring internet protocol security tunnels | ||
Patent #
US 6,076,168 A
Filed 10/03/1997
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Method and apparatus for managing a virtual private network | ||
Patent #
US 6,079,020 A
Filed 01/27/1998
|
Current Assignee
Avaya Incorporated
|
Original Assignee
VPNet Technologies Inc.
|
System and method for managing security objects | ||
Patent #
US 6,330,562 B1
Filed 01/29/1999
|
Current Assignee
Trend Micro America Inc.
|
Original Assignee
International Business Machines Corporation
|
Managing multiple network security devices from a manager device | ||
Patent #
US 6,678,827 B1
Filed 05/06/1999
|
Current Assignee
WatchGuard Technologies Incorporated
|
Original Assignee
WatchGuard Technologies Incorporated
|
Method for establishing IPSEC tunnels | ||
Patent #
US 6,636,520 B1
Filed 12/21/1999
|
Current Assignee
Intel Corporation
|
Original Assignee
Intel Corporation
|
System and method for maintaining N number of simultaneous cryptographic sessions using a distributed computing environment | ||
Patent #
US 6,484,257 B1
Filed 02/27/1999
|
Current Assignee
ZitoVault LLC
|
Original Assignee
Alonzo Ellis
|
Multi-level security network system | ||
Patent #
US 6,304,973 B1
Filed 08/06/1998
|
Current Assignee
API Cryptek Inc.
|
Original Assignee
Cryptek Inc.
|
Virtual private network system and method | ||
Patent #
US 6,055,575 A
Filed 01/26/1998
|
Current Assignee
Ascend Communications Inc.
|
Original Assignee
Ascend Communications Inc.
|
Method and system for locating network services with distributed network address translation | ||
Patent #
US 6,055,236 A
Filed 03/17/1999
|
Current Assignee
Hewlett Packard Enterprise Development LP
|
Original Assignee
3Com Corporation
|
Firewall providing enhanced network security and user transparency | ||
Patent #
US 6,052,788 A
Filed 04/26/1999
|
Current Assignee
Network Engineering Software Inc.
|
Original Assignee
Network Engineering Software Inc.
|
Stand alone security device for computer networks | ||
Patent #
US 6,067,620 A
Filed 05/28/1998
|
Current Assignee
Round Rock Research LLC
|
Original Assignee
Micron Technology Inc.
|
System for packet filtering of data packet at a computer network interface | ||
Patent #
US 5,884,025 A
Filed 02/04/1997
|
Current Assignee
Oracle America Inc.
|
Original Assignee
Sun Microsystems Incorporated
|
Apparatus and method for providing network security | ||
Patent #
US 5,940,591 A
Filed 10/03/1996
|
Current Assignee
Round Rock Research LLC
|
Original Assignee
ITT Corporation
|
Universal access multimedia data network | ||
Patent #
US 5,790,548 A
Filed 04/18/1996
|
Current Assignee
Intellectual Ventures II LLC
|
Original Assignee
Bell Atlantic Network Services Inc.
|
Stand alone device for providing security within computer networks | ||
Patent #
US 5,802,178 A
Filed 07/30/1996
|
Current Assignee
Round Rock Research LLC
|
Original Assignee
ITT Industries
|
System for securing the flow of and selectively modifying packets in a computer network | ||
Patent #
US 5,835,726 A
Filed 06/17/1996
|
Current Assignee
Check Point Software Technologies Limited
|
Original Assignee
Check Point Software Technologies Limited
|
45 Claims
-
1. A computer program product for providing end-to-end protection for datagrams in a computer networking environment, the computer program product embodied on one or more computer-readable media and comprising:
-
computer-readable program code means for protecting each of a plurality of network segments that comprise a network path from a datagram originator to a datagram destination, further comprising;
computer-readable program code means for establishing a first protected network segment from the datagram originator to a first of one or more gateways in the network path;
computer-readable program code means for cascading zero or more protected gateway-to-gateway segments along the network path, each of the gateway-to-gateway segments being cascaded from one of the gateways in the network path to a next successive one of the gateways; and
computer-readable program code means for cascading a last protected network segment from a final one of the gateways to the datagram destination, wherein the final gateway is the first gateway if no gateway-to-gateway segments are required, wherein each of the gateways retains cleartext access to datagrams sent on the network path. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A system for providing end-to-end protection for datagrams in a computer networking environment, comprising:
-
means for protecting each of a plurality of network segments that comprise a network path from a datagram originator to a datagram destination, further comprising;
means for establishing a first protected network segment from the datagram originator to a first of one or more gateways in the network path;
means for cascading zero or more protected gateway-to-gateway segments along the network path, each of the gateway-to-gateway segments being cascaded from one of the gateways in the network path to a next successive one of the gateways; and
means for cascading a last protected network segment from a final one of the gateways to the datagram destination, wherein the final gateway is the first gateway if no gateway-to-gateway segments are required, wherein each of the gateways retains cleartext access to datagrams sent on the network path. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A method of providing end-to-end protection for datagrams in a computer networking environment, comprising steps of:
-
protecting each of a plurality of network segments that comprise a network path from a datagram originator to a datagram destination, further comprising steps of;
establishing a first protected network segment from the datagram originator to a first of one or more gateways in the network path;
cascading zero or more protected gateway-to-gateway segments along the network path, each of the gateway-to-gateway segments being cascaded from one of the gateways in the network path to a next successive one of the gateways; and
cascading a last protected network segment from a final one of the gateways to the datagram destination, wherein the final gateway is the first gateway if no gateway-to-gateway segments are required, wherein each of the gateways retains cleartext access to datagrams sent on the network path. - View Dependent Claims (33, 34, 35, 36, 37, 38, 39, 40, 41, 42)
-
-
30. The method according to claim 30, wherein the establishing step and the cascading step further comprise the step of establishing security associations which use strong cryptographic techniques.
- 31. The method according to claim 31, wherein the strong cryptographic techniques used for the security associations are provided by protocols known as Internet Key Exchange and IP (Internet Protocol) Security Protocol.
-
43. A computer program product for providing end-to-end protection for datagrams in a computer networking environment, the computer program product embodied on one or more computer-readable media and comprising:
-
computer-readable program code means for protecting each of a plurality of network segments that comprise a network path from a datagram originator to a datagram destination, further comprising;
computer-readable program code means for establishing a first protected network segment from the datagram originator to a first of a plurality of gateways in the network path;
computer-readable program code means for cascading one or more protected gateway-to-gateway segments along the network path, each of the gateway-to-gateway segments being cascaded from one of the gateways in the network path to a next successive one of the gateways, using identifying information from the first protected network segment as identifying information of the protected gateway-to-gateway segments, wherein the identifying information is copied from an inbound side of each gateway to an outbound side of that gateway; and
computer-readable program code means for cascading a last protected network segment from a final one of the gateways to the datagram destination, using the identifying information from the first protected network segment as identifying information of the last protected network segment, wherein each of the gateways retains cleartext access to datagrams sent on the network path.
-
-
44. A system for providing end-to-end protection for datagrams in a computer networking environment, comprising:
-
means for protecting each of a plurality of network segments that comprise a network path from a datagram originator to a datagram destination, further comprising;
means for establishing a first protected network segment from the datagram originator to a first of a plurality of gateways in the network path;
means for cascading one or more protected gateway-to-gateway segments along the network path, each of the gateway-to-gateway segments being cascaded from one of the gateways in the network path to a next successive one of the gateways, using identifying information from the first protected network segment as identifying information of the protected gateway-to-gateway segments, wherein the identifying information is copied from an inbound side of each gateway to an outbound side of that gateway; and
means for cascading a last protected network segment from a final one of the gateways to the datagram destination, using the identifying information from the first protected network segment as identifying information of the last protected network segment, wherein each of the gateways retains cleartext access to datagrams sent on the network path.
-
-
45. A method of providing end-to-end protection for datagrams in a computer networking environment, comprising steps of:
-
protecting each of a plurality of network segments that comprise a network path from a datagram originator to a datagram destination, further comprising steps of;
establishing a first protected network segment from the datagram originator to a first of a plurality of gateways in the network path;
cascading one or more protected gateway-to-gateway segments along the network path, each of the gateway-to-gateway segments being cascaded from one of the gateways in the network path to a next successive one of the gateways, using identifying information from the first protected network segment as identifying information of the protected gateway-to-gateway segments, wherein the identifying information is copied from an inbound side of each gateway to an outbound side of that gateway; and
cascading a last protected network segment from a final one of the gateways to the datagram destination, using the identifying information from the first protected network segment as identifying information of the last protected network segment, wherein each of the gateways retains cleartext access to datagrams sent on the network path.
-
1 Specification
1. Field of the Invention
The present invention relates to a computer system, and deals more particularly with a method, system, and computer program product for providing consistent, end-to-end protection within an arbitrary computer network for user datagrams (i.e. packets) traveling through the network.
2. Description of the Related Art
Cryptography is a security mechanism for protecting information from unintended disclosure by transforming the information into a form that is unreadable to humans, and unreadable to machines that are not specially adapted to reversing the transformation back to the original information content. The cryptographic transformation can be performed on data that is to be transmitted electronically, such as an electronic mail message or an electronic document requested by a user of the Internet, and is equally useful for data that is to be securely stored, such as the account records for customers of a bank or credit company.
The transformation process performed on the original data is referred to as “encryption”. The process of reversing the transformation, to restore the original data, is referred to as “decryption”. The terms “encipher” and “decipher” are also used to describe these processes, respectively. A mechanism that can both encipher and decipher is referred to as a “cipher”.
Use of a “key” during the encryption and decryption processes helps make the cipher more difficult to break. A key is a randomly-generated number factored into operation of the encryption to make the result dependent on the key. The value used for the key in effect “personalizes” the algorithm, so that the same algorithm used on the same input data produces a different output for each different key value. When the value of this key is unknown to unauthorized persons, they will not be able to duplicate or to reverse the encryption.
One of the oldest and most common security systems today is what is known as a “private key” or “symmetric” security system. Private key systems involve two users, both of whom have a shared secret (or private) key for encrypting and decrypting information passed between them over a network. Before communications can occur, the two users must communicate in some secure manner to agree on this private key to ensure the key is known only to the two users. An example of a cipher used for private key security is the Data Encryption Algorithm (“DEA”). This algorithm was developed by scientists of the International Business Machines Corporation (“IBM”), and formed the basis of a United States federal standard known as the Data Encryption Standard (“DES”). Private key systems have a number of drawbacks in an open network environment such as the Internet, however, where users will conduct all communications over the open network environment and do not need or want the added overhead and expense of a separate secure means of exchanging key information before secure network communications occur.
To address the limitations of private key systems, security systems known as “public key”, or “asymmetric”, systems evolved. In a public key system, a user has a key pair that consists of a private key and a public key, both keys being used to encrypt and decrypt messages. The private key is never to be divulged or used by anyone but the owner. The public key, on the other hand, is available to anyone who needs to use it. As an example of using the key pair for encrypting a message, the originator of a message encrypts the message using the receiver'"'"'s public key. The receiver then decrypts the message with his private key. The algorithm and the public key used to encrypt a message can be exposed without compromising the security of the encrypted message, as only the holder of the associated private key will be able to successfully decrypt the message. A key pair can also be used to authenticate, or establish the identity of, a message originator. To use a key pair for authentication, the message originator digitally signs the message (or a digest thereof) using his own private key. The receiver decrypts the digital signature using the sender'"'"'s public key. A common means of publishing a public key to be used for a particular receiver is in an X.509 certificate, also known as a “digital identity”.
Public key encryption is generally computationally expensive, having numerous exponentiation operations. It also requires much longer key material than a symmetric key algorithm to provide equivalent security. Hence it is used sparingly, preferably only for cryptographic operations that need its unique properties. Symmetric key encryption is more widely used for bulk data encryption/decryption, because it demands less of the CPU, using primarily repeated shift, rotate, exclusive OR, and table lookup operations.
Public and symmetric key encryption methods are often combined. One example of their combination is the Internet Key Exchange (IKE) protocol of the IP Security Protocol (commonly referred to as “IPSec”). IKE is defined in the Internet Engineering Task Force (IETF) document RFC 2409, “The Internet Key Exchange (IKE)”, dated November 1998. LPSec is defined in RFC 2401, “Security Architecture for the Internet Protocol”, also dated November 1998.
IPSec provides security services for traffic at the network layer, or IP (Internet Protocol) layer, of a communications network through use of both cryptographic and protocol security mechanisms. IPSec is designed for protecting data in transit across a non-secure network. IPSec makes no distinctions between public networks such as the Internet and private networks such as a corporate intranet, and can be deployed on either type of network. IPSec may operate at either a host (i.e. an endpoint) or at an intermediate security gateway (including routers and firewalls that provide the functionality of IPSec). The security services available in IPSec include data confidentiality (i.e. encryption), data integrity, data origin authentication, and access control. IPSec may be used to protect packets between two hosts, between a host and a security gateway, or between two security gateways.
“Tunnels” are used by IPSec (as well as by other network security techniques) to provide a secure exchange over a path through a non-secure network such as the Internet, thereby establishing a “Virtual Private Network” or “VPN”, as is well known in the art. A tunneling mode is defined in IPSec, wherein the IP content within a packet is protected according to a selected set of security services. Security associations are created for transmitting packets, where a security association (“SA”) is a logical 1-directional connection defined for purposes of specifying and enforcing the security services to be used. A security association may be created between two hosts, between two security gateways, or between a host and a security gateway. The SA reflects the security services that have been negotiated for the underlying path. For example, if encryption and authentication are required for some communications between particular entities, but only encryption (and not authentication) is required for other communications between these entities, then two separate security associations will be created. The set of security services applicable to an SA are also referred to as a “security policy”.
Tunneled packets in IPSec have an outer IP header whose source and destination addresses identify the endpoints of the tunnel, and an inner IP header whose source and destination addresses identify the originator and recipient of the packet. When IPSec is used in “tunnel” mode, the complete inner packet, which is comprised of both the inner header and the payload, is protected as the packet travels through the tunnel. However, the outer header remains in clear text form as the packet travels through the tunnel. The protection applied to the complete inner packet can be encryption alone, authentication alone, or both encryption and authentication, as specified by the relevant security association negotiated between the tunnel endpoints.
IKE may be used to securely negotiate security associations between the two endpoints of an IPSec tunnel, and to exchange authenticated material from which each endpoint can derive the symmetric keys that will be used for protecting data transmitted on that tunnel. The IKE message exchange comprises two phases. In the first phase, a negotiation is performed, and a secure authenticated control channel (an IKE SA) is established using negotiated attributes (including an encryption algorithm, hashing algorithm, and authentication method). In the second phase, an SA is negotiated on behalf of a security service such as IPSec to establish a secure “traffic” channel for exchanging packets between a pair of communicating end systems.
The steps in a typical phase 1 are: (1) offer and acceptance of the attributes of the IKE SA, which will protect the subsequent IKE negotiation messages; (2) an unauthenticated Diffie-Hellman exchange of keying material that will subsequently be used to derive symmetric encryption and authentication keys for protecting both the IKE messages (i.e. the control flows) and user traffic; and (3) a mutual authentication step that allows each party to authenticate itself to the other using strong cryptographic techniques (thereby ensuring the authenticity of the Diffie-Hellman keying exchange). The phase 2 exchange is then performed to negotiate the IPSec SA, which will be used subsequently to protect user traffic. Furthermore, the packets of the user traffic on a particular IPSec SA will be tightly bound to the authenticated identities of the two entities that completed the successful IKE phase 1 negotiation for that IPSec SA, and will be protected according to the security policies that the entities agreed would be applicable to the IPSec SA.
Prior art systems which use IPSec and IKE typically assume that traffic flowing through an intranet does not need to be protected, and thus encryption is not applied until a security gateway prepares packets for transmission into a network that is assumed to be non-secure. Experience has shown, however, that this may not be a valid set of assumptions. Many corporate security breaches are in fact committed by insiders (such as employees) who have access to the corporate network by virtue of the corporation'"'"'s intranet. A report prepared by the Computer Security Institute in March of 1999 showed that unauthorized access by insiders was on the rise, with more than half of the organizations that were surveyed reporting that they had encountered unauthorized accesses by employees. Thus, it is preferable to provide end-to-end protection for user datagrams throughout the entire path through the network.
One technique for providing end-to-end protection is to establish a security association between the two endpoints of the application (i.e. between the client and server). However, there are several disadvantages in this approach. Any intermediate systems in the network path are prevented from accessing the cleartext data content of the transmitted packets, because only the two endpoints are able to encrypt and decrypt the packets on this SA. The security gateways that may be positioned in the network path then function only to forward the encrypted content, and cannot provide services such as network address translation or dynamic packet routing, packet filtering, access control and authorization verification, and so forth. These types of services require the security gateways to have access to the packet content in cleartext form.
RFC 2409 and RFC 2401 describe the mandatory and optional functions and features of the IPSec and IKE protocols, but they do not provide information on how to configure this collection of “piece parts” into a consistent end-to-end solution that addresses practical computing environment configurations in which IPSec will typically be deployed.
Accordingly, what is needed is a technique for providing consistent, end-to-end protection for user datagrams throughout the network path they travel, whether over secure or non-secure networks, while still allowing the packet content to be surfaced in cleartext form in security gateways.
An object of the present invention is to provide consistent, end-to-end protection for user datagrams throughout the network path they travel, whether over secure or non-secure networks.
Another object of the present invention is to provide this technique in a manner that allows the packet content to be surfaced in cleartext form in security gateways.
Yet another object of the present invention is to provide this technique by establishing cascaded tunnels through the network path.
A further object of the present invention is to provide this technique such that the cascaded tunnels are logically interlocked, thereby providing a consistent approach to protecting a datagram throughout its network path.
Still another object of the present invention is to provide this technique in a manner that is automatic and transparent to the client and server endpoints, such that no additional code must be installed in a client or server device.
Other objects and advantages of the present invention will be set forth in part in the description and in the drawings which follow and, in part, will be obvious from the description or may be learned by practice of the invention.
To achieve the foregoing objects, and in accordance with the purpose of the invention as broadly described herein, the present invention provides a method, system, and computer program product for providing end-to-end protection for user datagrams. In a first aspect, this technique comprises: independently securing each of a plurality of network segments that comprise a network path from a first computer to a second computer, wherein a datagram originator at the first computer sends at least one datagram to a datagram destination at the second computer, while each of one or more gateways in the network path retains cleartext access to datagrams sent on the network path.
In a second aspect, this technique comprises protecting each of a plurality of network segments that comprise a network path from a datagram originator to a datagram destination, which further comprises (1) establishing a first protected network segment from the datagram originator to a first gateway in the network path; (2) cascading zero or more protected gateway-to-gateway segments from the first gateway to each of zero or more successive gateways in the network path; and (3) cascading a last protected network segment from a final one of the gateways to the datagram destination, wherein the final gateway may be identical to the first gateway if no gateway-to-gateway segments are required. The first gateway and each of the zero or more successive gateways retains cleartext access to datagrams sent on the network path.
These aspects preferably further comprise using strong cryptographic techniques to establish security associations in the establishing and the cascading. The strong cryptographic techniques used for the security associations are preferably provided by IKE and IPSec. The datagram originator and the gateways that perform the cascading preferably each act in an IKE initiator role.
The cascading preferably further comprises using identifying information from the first protected network segment as identifying information of the protected gateway-to-gateway segments and the protected final network segment. The identifying information preferably further comprises addresses of the datagram originator and the datagram destination. The identifying information may also further comprise a protocol identification and a port number used for the first protected network segment. The identifying information is preferably copied from an inbound side of each gateway to an outbound side of that gateway. The identifying information may be altered by zero or more of the gateways.
In these aspects, any of the gateways may perform services on the cleartext datagram, and the cascading may be selectively enabled for any particular network path. In this latter case, the selective enablement preferably occurs by setting a cascading-enabled flag for the first protected network segment, and datagram sent on the network path are not protected using cascaded tunnels when the cascading is disabled.
The present invention will now be described with reference to the following drawings, in which like reference numbers denote the same element throughout.
The workstation 10 may communicate with other computers or networks of computers, for example via a communications channel or modem 32. Alternatively, the workstation 10 may communicate using a wireless interface at 32, such as a CDPD (cellular digital packet data) card. The workstation 10 may be associated with such other computers in a local area network (LAN) or a wide area network (WAN), or the workstation 10 can be a client in a client/server arrangement with another computer, etc. All of these configurations, as well as the appropriate communications hardware and software, are known in the art.
Functions of the present invention typically operate in machines such as gateways (including firewalls and routers). The architecture and components of such machines is similar to that depicted in
Still referring to
The gateway computer 46 may also be coupled 49 to a storage device (such as data repository 48). Further, the gateway 46 may be directly or indirectly coupled to one or more workstations 10.
Those skilled in the art will appreciate that the gateway computer 46 may be located a great geographic distance from the network 42, and similarly, the workstations 10 may be located a substantial distance from the networks 42 and 44. For example, the network 42 may be located in California, while the gateway 46 may be located in Texas, and one or more of the workstations 10 may be located in New York. The workstations 10 may connect to the wireless network 42 using a networking protocol such as the Transmission Control Protocol/Internet Protocol (“TCP/IP”) over a number of alternative connection media, such as cellular phone, radio frequency networks, satellite networks, etc. The wireless network 42 preferably connects to the gateway 46 using a network connection 50a such as TCP or UDP (User Datagram Protocol) over IP, X.25, Frame Relay, ISDN (Integrated Services Digital Network), PSTN (Public Switched Telephone Network), etc. The workstations 10 may alternatively connect directly to the gateway 46 using dial connections 50b or 50c. Further, the wireless network 42 and network 44 may connect to one or more other networks (not shown), in an analogous manner to that depicted in FIG. 2.
Software programming code which embodies the present invention is typically accessed by the microprocessor 12 (e.g. of workstation 10, server 47, and/or an intermediary such as gateway 46) from long-term storage media 30 of some type, such as a CD-ROM drive or hard drive. The software programming code may be embodied on any of a variety of known media for use with a data processing system, such as a diskette, hard drive, or CD-ROM. The code may be distributed on such media, or may be distributed from the memory or storage of one computer system over a network of some type to other computer systems for use by such other systems. Alternatively, the programming code may be embodied in the memory 28, and accessed by the microprocessor 12 using the bus 14. The techniques and methods for embodying software programming code in memory, on physical media, and/or distributing software code via networks are well known and will not be further discussed herein.
An end user of the present invention may connect his computer to a server using a wireline connection, or a wireless connection. Wireline connections are those that use physical media such as cables and telephone lines, whereas wireless connections use media such as satellite links, radio frequency waves, and infrared waves. Many connection techniques can be used with these various media, such as: using the computer'"'"'s modem to establish a connection over a telephone line; using a LAN card such as Token Ring or Ethernet; using a cellular modem to establish a wireless connection; etc. The user'"'"'s computer may be any type of computer processor, including laptop, handheld or mobile computers; vehicle-mounted devices; desktop computers; mainframe computers; etc., having processing capabilities. The remote server and the gateway machines, similarly, can be one of any number of different types of computer which have processing and communication capabilities. These techniques are well known in the art, and the hardware devices and software which enable their use are readily available. Hereinafter, the user'"'"'s computer will be referred to equivalently as a “workstation” or “client”, and use of any of these terms or the term “server” or “gateway” refers to any of the types of computing devices described above.
In the preferred embodiment, the present invention is implemented as one or more computer software programs. The software typically operates on an intermediary (i.e. a gateway, firewall, or router) in a network, as one or more modules (also referred to as code subroutines, or “objects” in object-oriented programming). The server or intermediary may be providing services in an Internet environment, in a corporate intranet or extranet, or in any other networking environment. Alternatively, functions of the present invention may be implemented in hardware, or in a combination of hardware and software.
The present invention defines a novel technique for providing consistent, end-to-end protection for user datagrams traveling through a network by establishing one or more cascaded tunnels. The use of cascaded tunnels (as opposed to a single tunnel or SA extending from the client to the server) allows security protection to be tailored to the requirements of a particular network segment, having security policies that independently address security exposures in the Internet and in an intranet, for example. Perhaps more importantly, the cascaded tunnels allow the cleartext contents of the datagram to be surfaced at the endpoints of each tunnel, where these endpoints comprise intermediate security gateways in the network path. Providing access to the cleartext contents allows the security gateways to perform valuable services such as content inspection and access control.
The present invention will now be described in more detail with reference to
Unlike a conventional “firewall”, the security gateways which make use of the present invention do not assume that any of their external interfaces connect to “trusted” networks. This is illustrated in the representative computing environment configurations of
As stated earlier, security breaches may occur once a data packet enters the intranet environment of
The security breaches that may occur within the intranet environments of
As another representative computing environment,
The improved business partner computing environment provided when using the present invention is shown in FIG. 8. As in
Referring now to
In the preferred embodiment, all component devices, including hosts and gateways, implement the IETF'"'"'s IPSec/IKE suite of protocols and thus the present invention is described herein in terms of the security features provided by IKE in combination with IPSec. IKE and IPSec are described for use with the preferred embodiment because of the strong cryptographic techniques they inherently provide. It is therefore assumed that the component devices in
To provide consistent, end-to-end cascaded security associations or tunnels, the preferred embodiment of the present invention exploits the fact that the individual component devices have well-defined roles, both with regard to traffic flow and with regard to the IKE and IPSec protocols. The preferred embodiment then defines implementation constraints that make use of these well-defined roles to implement cascaded IPSec security associations. (IKE and IPSec are preferably used because of the strong cryptographic techniques they inherently provide.)
Referring again to
- Client 905 is a source and sink point for user traffic (as shown by the double-ended arrow 940)
- Server 935 is also a source and sink point for user traffic (shown by double-ended arrow 940)
- Security gateway 920 provides a forwarding function for client-to-server datagrams; that is, it is neither a source nor a sink point for user traffic
- Client 905 will fill the role of “IKE Initiator” for both Phase 1 and Phase 2 negotiations with the gateway for tunnel pair 1 (shown at 910, 915)
- Gateway 920 will fill the role of “IKE Responder” for both Phase 1 and Phase 2 negotations with the client for tunnel pair 1
- Gateway 920 will fill the role of “IKE Initiator” for both Phase 1 and Phase 2 negotations with the server for tunnel pair 2 (shown at 925, 930)
- Server 935 will fill the role of “IKE Responder” for both Phase 1 and Phase 2 negotations with the gateway for tunnel pair 2
Referring now to
- Prior to sending a data packet, Client 905 fills the role of“IKE Initiator”, and will proceed to establish IKE and IPSec security associations with gateway 920. When the client initiates the Phase 2 IKE exchange (to set up the IPSec SA), it will now set the “IDci” parameter (representing the identification of the connection initiator) to the client'"'"'s own IP address (say, for example, 9.1.2.3) since it is the source of the user data, and will also set the “IDcr” parameter (representing the identification of the connection responder) to reflect the server'"'"'s IP address (say, for example, 8.1.2.3) since the server is the ultimate destination of the user data. Hence, with respect to the communications stack 1015, the SAD 1005 on the gateway'"'"'s “tunnel 1 side” will record and locally store these values for the ID payloads. The ID parameters also specify the protocol and port to be protected in each direction of communication. Thus, these values from the IKE exchange are also stored on the tunnel 1 side, in the preferred embodiment. The IKE negotiations for the IPSec protection suite establish a Security Parameter Index (SPI) for each direction of transmission. This SPI is used to index into the tables where IKE stores the detailed information on addresses, protocols, and ports to be protected.
When a data packet arrives from the client at the gateway, the gateway can decrypt that packet using the decryption key corresponding to the IPSec SA (see element 915 of
- As the datagram progresses on its way, the gateway'"'"'s tunnel 2 side will see the cleartext datagram whose source is 9.1.2.3 and whose destination is 8.1.2.3. Consulting its SPD 1035 for the tunnel 2 side, the gateway will detect that this datagram is to be protected by IPSec (based on the underlying IPSec SA) and is to be cascaded (based on the cascading-enabled flag being set on). Therefore, the gateway will play the role of “IKE Initiator” for the purposes of establishing an IPSec SA with server 935 (i.e. the server having IP address 8.1.2.3). To establish the cascading of the tunnel 1 and tunnel 2 security associations, the gateway copies the IDci and IDcr values that apply to the already-established tunnel 1 IPSec SA, as well as the applicable protocol and port values in the preferred embodiment, and inserts these values into the appropriate ID payloads used in the gateway-to-server IKE exchanges. That is, the gateway, acting as initiator of the Phase 2 IPSec SA between itself and the server, will set IDci to 9.1.2.3 and will set IDcr to 8.1.2.3.
As is known in the art, one or more security policies can be defined in IPSec, and stored in an SPD. Incoming packets are then compared to the stored security policy information. If a match is found (i.e. the policy to be applied to the packet can be determined), then the attributes of an SA associated with that policy are used to locate a suitable existing SA or to create a new SA having the required attributes. In this manner, the policy also determines whether the packet will be further processed by IPSec (such as performing encryption and/or authentication on the packet content), or whether the packet is to be forwarded without further IPSec processing, or simply discarded. A policy entry specifies the attributes of traffic that will use a particular SA, including the source and destination addresses of data packets. As an example, a security policy may specify that all packets from IP addresses in the range of 1.2.3.4 to 1.2.3.255 are to use an SA that provides encryption using a particular encryption algorithm, and/or that a particular encryption key should be used with those packets, and so forth. The security policy information is used in the manner taught by the prior art, with additional processing to account for the cascading-enabled flag defined by the present invention.
Block 1120 tests whether the cascading-enabled flag from the security policy found in Block 1115 is set on. If not, control transfers to Block 1125 where the packet will be forwarded as in the prior art. Control then exits the logic of
Preferably, the cascading-enabled flag value is set by a person such as a systems administrator or VPN administrator, or perhaps an automated process, to accurately reflect those source-destination pairs for which cascading should be used.
If the test in Block 1120 has a positive result, then processing continues to Block 1130 which checks to see if a cascaded outgoing tunnel to this destination already exists. If so, then the corresponding security policy for that tunnel is retrieved from the SPD on the gateway'"'"'s tunnel 2 side (Block 1145). The security policies are applied, as in the prior art, and the datagram is then forwarded (Block 1150) over this cascaded outgoing tunnel. When the test in Block 1130 has a negative result, however, then the outgoing tunnel must be created. Control transfers to Block 1135, where the gateway copies the IDci and IDcr values (assuming that no network address translation is being performed), as well as the protocol and port values (assuming that no network port translation is being performed), from the SAD on its tunnel 1 side to the SAD on its tunnel 2 side. The gateway then establishes IKE and IPSec security associations to the destination (Block 1140), using these copied values in the appropriate ID payloads of the gateway-to-server IKE exchanges. (In the case where network address translation or network port translation is performed by the gateway, then the appropriate changes may be made to use the translated IP address or the translated port number in the ID payload either as this information is being stored in Block 1135, or as the outgoing cascaded tunnel is being established in Block 1140.) Processing then continues at Block 1150, where the datagram is forwarded over this new outgoing cascaded tunnel.
As has been demonstrated, the present invention provides a novel technique for providing end-to-end protection for user datagrams as they travel throughout a network, while still providing access to the datagram content at security gateways. This technique may be used with any IPSec-based VPNs, including those described in commonly-assigned U.S. patent (Ser. No. 09/718,041, filed Nov. 20, 2000), which is entitled “Integrated System for Network Layer Security and Fine-Grained Identity-Based Access Control”, the disclosure of which is hereby incorporated herein by reference. While the IPSec and IKE specifications outline various configurations which are mandatory to support, as previously stated, these are limited to parameters such as tunnel/transport modes, and nested tunnels. The prior art does not provide teachings which interlock the cascaded tunnels as disclosed herein, using a flag which explicitly enables or disables cascading, nor does it teach the use of the IDci and IDcr values across a cascaded set of IKE negotiations as disclosed herein. Furthermore, the prior art does not teach using the specification of IKE initiator and responder roles as a mechanism for controlling the orderly establishment of a set of cascaded tunnels, as disclosed herein.
U.S. Pat. No. 5,940,591, entitled “Apparatus and Method for Providing Network Security”, may provide a type of cascading; however, it uses logic that is positioned in the upper layers of a communication stack for providing improved network security, and does not allow participation of the end systems in the process, as contrasted to the present invention which uses network layer security and participation by the end systems.
While the preferred embodiment of the present invention has been described, additional variations and modifications in that embodiment may occur to those skilled in the art once they learn of the basic inventive concepts. Therefore, it is intended that the appended claims shall be construed to include both the preferred embodiment and all such variations and modifications as fall within the spirit and scope of the invention.