throbber
I 1111111111111111 11111 1111111111 111111111111111 11111 11111 111111111111111111
`US008458784B2
`
`c12) United States Patent
`Krumel
`
`(IO) Patent No.:
`(45) Date of Patent:
`
`US 8,458,784 B2
`*Jun. 4, 2013
`
`(54) DATA PROTECTION SYSTEM SELECTIVELY
`ALTERING AN END PORTION OF PACKETS
`BASED ON INCOMPLETE DETERMINATION
`OF WHETHER A PACKET IS VALID OR
`INVALID
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`4,941,198 A * 7/1990 Johnson et al .................... 455/9
`5,343,471 A
`8/1994 Cassagnol ..................... 370/401
`(Continued)
`
`(75)
`
`Inventor: Andrew K. Krumel, San Jose, CA (US)
`
`(73) Assignee: 802 Systems, Inc., Marshall, TX (US)
`
`JP
`WO
`
`( *) Notice:
`
`Subject to any disclaimer, the term ofthis
`patent is extended or adjusted under 35
`U.S.C. 154(b) by O days.
`
`This patent is subject to a terminal dis(cid:173)
`claimer.
`
`(21) Appl. No.: 12/807,641
`
`(22) Filed:
`
`Sep.10,2010
`
`(65)
`
`Prior Publication Data
`
`US 2011/0197273 Al
`
`Aug.11,2011
`
`Related U.S. Application Data
`
`(63) Continuation of application No. 11/374,465, filed on
`Mar. 13, 2006, now abandoned, which
`is a
`continuation of application No. 09/611,775, filed on
`Jul. 7, 2000, now Pat. No. 7,013,482.
`
`(51)
`
`Int. Cl.
`G06F 17100
`G06F 15116
`G06F9/00
`(52) U.S. Cl.
`USPC ................. 726/13; 713/154; 726/11; 726/12;
`709/229
`
`(2006.01)
`(2006.01)
`(2006.01)
`
`( 58) Field of Classification Search
`USPC .................. 713/154; 709/229; 726/11, 12, 13
`See application file for complete search history.
`
`FOREIGN PATENT DOCUMENTS
`5/1997
`09117448 A
`WO 96/34479
`10/1996
`(Continued)
`
`OTHER PUBLICATIONS
`
`Xu, Jun and Mukesh Singhal. "Design and Evaluation of a High(cid:173)
`Performance ATM Firewall Switch and Its Applications", Jun.
`1999. *
`
`(Continued)
`
`Primary Examiner - Michael Simitoski
`(74) Attorney, Agent, or Firm - Loudermilk & Associates
`
`ABSTRACT
`(57)
`Methods and systems for firewall/data protection that filters
`data packets in real time and without packet buffering are
`disclosed. A data packet filtering hub, which may be imple(cid:173)
`mented as part of a switch or router, receives a packet on one
`link, reshapes the electrical signal, and transmits it to one or
`more other links. During this process, a number of filters
`checks are performed in parallel, resulting in a decision about
`whether each packet should or should not be invalidated by
`the time that the last bit is transmitted. To execute this task, the
`filtering hub performs rules-based filtering on several levels
`simultaneously, preferably with a programmable logic or
`other hardware device. Various methods for packet filtering in
`real time and without buffering with programmable logic are
`disclosed. The system may include constituent elements of a
`stateful packet filtering hub, such as microprocessors, con(cid:173)
`trollers, and integrated circuits. The system may be reset,
`enabled, disabled, configured, and/or reconfigured with
`toggles or other physical switches. Audio and visual feedback
`may be provided regarding the operation and status of the
`system.
`
`36 Claims, 14 Drawing Sheets
`
`(optional)
`
`Transmit
`alarm
`information
`
`SpoofCheck
`
`Alert LED
`
`Ex.1001
`CISCO SYSTEMS, INC. / Page 1 of 29
`
`

`

`US 8,458,784 B2
`Page 2
`
`U.S. PATENT DOCUMENTS
`6/1995 Ong ................................ 326/39
`5,426,378 A
`6/1995 Trimberger ..................... 326/39
`5,426,379 A
`6/1996 Dighe ........................... 370/232
`5,530,695 A
`12/1996 Granville ...................... 702/155
`5,590,060 A
`8/1997 Nakagaki ...................... 370/394
`5,657,316 A
`4/1998 Dunne et al. ............. 395/200.68
`5,740,375 A
`4/1998 Jung et al. ....................... 356/73
`5,745,229 A
`8/1998 Aldebert et al. .............. 395/653
`5,794,033 A
`9/1998 Picazo et al. .................. 709/223
`5,805,816 A *
`11/1998 Shwedetal. ............ 395/200.59
`5,835,726 A
`3/1999 Baehr et al. .............. 395/187.01
`5,884,025 A
`5/1999 Flannner ....................... 370/406
`5,903,566 A
`5/1999 Holloway ..................... 713/201
`5,905,859 A
`10/1999 Nessett et al. ................ 713/201
`5,968,176 A
`10/1999 Klimenko ......................... 713/2
`5,974,547 A
`12/1999 Moughanni et al. .......... 713/200
`6,003,133 A
`12/1999 Shrader ......................... 709/249
`6,009,475 A
`1/2000 Sugawara ................ 370/395.51
`6,011,797 A
`2/2000 Patel ............................... 326/40
`6,020,758 A
`4/2000 Lawmann ....................... 326/38
`6,049,222 A
`4/2000 Lin ............................... 709/225
`6,052,785 A
`4/2000 Wesinger ...................... 713/201
`6,052,788 A
`6/2000 Fiveash ......................... 713/201
`6,076,168 A
`6/2000 Guccione ................. 395/500.17
`6,078,736 A
`7/2000 DiPlacido ..................... 709/224
`6,092,108 A
`7/2000 Steffan .............................. 710/8
`6,092,123 A
`8/2000 Graf .............................. 709/224
`6,101,540 A *
`8/2000 Knowlson ....................... 726/11
`6,108,786 A
`10/2000 Ahne ....................... 340/815.45
`6,133,844 A
`10/2000 Levy ............................. 713/200
`6,134,662 A
`11/2000 Swales .......................... 709/218
`6,151,625 A
`1/2001 Takao ........................... 715/500
`6,175,839 Bl
`1/2001 Hagiuda ....................... 713/201
`6,182,225 Bl
`4/2001 Ghani ........................... 370/230
`6,215,769 Bl
`4/2001 Fan et al. ...................... 709/225
`6,219,706 Bl
`4/2001 Schwuttke et al. ........... 345/419
`6,222,547 Bl
`4/2001 Sheafor et al. ................ 710/317
`6,223,242 Bl
`6/2001 Antur et al. ..................... 726/11
`6,243,815 Bl
`9/2001 Lakshman et al. ............ 370/389
`6,289,013 Bl
`10/2001 Fan .............................. 358/1.14
`6,310,692 Bl
`11/2001 Porras et al. .................... 726/25
`6,321,338 Bl
`12/2001 Fallside .......................... 326/38
`6,326,806 Bl
`12/2001 Kageyama ................... 358/1.15
`6,333,790 Bl
`1/2002 Kadambi ...................... 370/396
`6,335,935 B2
`1/2002 Fairchild ....................... 709/224
`6,343,320 Bl
`3/2002 Levi ................................ 716/16
`6,363,519 Bl
`4/2002 Hayes ........................... 710/107
`6,374,318 Bl
`5/2002 Katagiri ........................ 713/300
`6,389,544 Bl
`7/2002 Yagi .............................. 324/127
`6,414,476 B2
`8/2002 Sekizawa ........................ 714/47
`6,430,711 Bl
`4/2003 Suzuki .......................... 709/229
`6,549,947 Bl
`8/2003 Nichols ......................... 370/235
`6,608,816 Bl
`9/2003 Salim ............................ 370/389
`6,628,653 Bl
`10/2003 Rasmussen ................... 717/171
`6,640,334 Bl
`2/2004 Bal ............................... 709/238
`6,691,168 Bl
`6,700,891 Bl
`3/2004 Wong
`3/2004 Deng et al. .................... 713/153
`6,701,432 Bl*
`5/2004 Ochiai ......................... 358/1.15
`6,734,985 Bl
`6,771,646 Bl
`8/2004 Sarkissian ..................... 370/392
`8/2004 Xie et al. ........................ 726/11
`6,772,347 Bl*
`8/2004 Zintel ........................... 709/227
`6,779,004 Bl
`6,791,992 Bl
`9/2004 Yun ............................... 370/415
`9/2004 Trolan .......................... 713/160
`6,795,918 Bl*
`1/2006 Pearson .......................... 726/22
`6,990,591 Bl
`11/2001 Trcka et al. ................... 709/224
`2001/0039579 Al
`FOREIGN PATENT DOCUMENTS
`WO 99/48303
`9/1999
`WO 00/02114
`1/2000
`
`WO
`WO
`
`OTHER PUBLICATIONS
`
`"Baseband Specification Part B", Bluetooth Spec. v. 1.1, Edited by
`Henrik Hedlund in conjunction with Bluetooth.org, Feb.2001, Avail(cid:173)
`able from Internet: http://www.bluetooth.com/developer/specifica(cid:173)
`tion/core.asp, pp. 41-46.
`
`Comer, Douglas, "Internetworking with TCP/IP. vol. 1: Principles,
`Protocols, and Architectures", 4 th Edition, New Jersey: Prentice Hall,
`2000, Ch. 7, pp. 95-113, Ch. 12, pp. 197-206.
`Feit. Dr. Sidnie, "Architecture, Protocols, and Implementation with
`IPv6 and IP Security," TCP/IP Signature Edition, San Francisco:
`McGraw-Hill, Ch. 9: pp. 274-282, Ch. 11: pp. 432-457, 1999 .
`"Host Controller Interface Functional Specification, Part H: l" Edited
`by Christian Johansson in conjunction with Bluetooth.org., Feb .
`2001, Available from Internet: http://www.bluetooth.com/developer/
`specification/core.asp, pp. 543-550.
`"Jini Architecture Specifications." Version 1.1, Sun Microsystems,
`Inc., Oct. 2000. Available from Internet: http://www.sun.com/jini/
`specs/jinil 13 1.pdf, pp. 1-20.
`"Jini Device Architecture Specifications." Version 1.1, Sun
`Microsystems, Inc., Oct. 2000. Available from Internet: http://www .
`sun.corn/jini/specs/devicearchl_l.pdf, pp. 1-14 .
`"Logical Link Control and Adaptation Protocol Specification." Part
`D, Edited by Jon Inouye in conjunction with Bluetooth.org., Feb .
`2001, Available from Internet: http://www.bluetooth.com/developer/
`specification/core.asp, pp. 257-260 .
`Sollins, K., "The TFTP Protocol (Revision 2.0)", MIT, Jul. 1992.
`Available from Internet: http://www.cis.ohio-state.edu/cgi-bin/rfc/
`rfc1350.htrnl, pp. 1-10.
`Tanenbaum, Andrew S., "Computer Networks", 3m Edition, Vrije
`Universiteit, Amsterdam, The Netherlands, pub. New Jersey:
`Prentice Hall, 1996, 28-44 .
`Wilder, Floyd, "A Guide to the TCP/IP Protocol Suite", 2nd Edition,
`Boston: Artech House, 1998, Ch. 3, pp. 123-162 .
`3Com, "SuperStack 3 Firewall" 2000 3Com .
`Hughes, James "A High Speed Firewall Architecture for ATM/OC-
`3c" Feb. 1996 .
`IBM Technical Disclosure Bulletins NN8606320 (1986), NN950431
`(1995), NA81123528 (1981), NN9704141 (1997), NN9512419
`(1995), NN9502341 (1995), NN9308183 (1993), NN8606254
`(1986), NN83102393 (1983).
`Lakshman, T. V. "High Speed Policy-Based Packet Forwarding Using
`Efficient Multi-Dimensional Range Matching" 1998 ACM, pp. 203-
`214 .
`Network ICE Corp., "Black ICE Pro User's Guide Version 2.0" Jun .
`2000 (archive.org) .
`Packeteer, Inc., "PacketShaper 4000 Getting Started Version 4.0"
`Mar. 1999.
`Symantec, Inc. "Norton Personal Firewall 2000 User's Guide Version
`2.0" Jun. 2000 (archive.org).
`Xu, Jun and Mukesh Singha! "Design of a High-Performance ATM
`Firewall" 1999 ACM.
`Xu, Jun and Mukesh Singha!, "Design of a High-Performance ATM
`Firewall" 1998 ACM pp. 93-102 .
`AARNet,
`"ATM",
`<http://www.aarnet.edu.au/engineering/
`networkdesign/mtu/ atm.html> .
`Derfler, Jr., Frank J. et al. "How Networks Work" Sep. 2000, pp .
`162-167 .
`Newton, Harry, "Newton's TELECOM Dictionary" 2003 CMP
`Books, pp. 78-79.
`Efficiency"
`Unknown,
`"ATM
`u0227461/Website/efficiency.htm>.
`OfficeConnect Internet Firewall User Guide, 3Com, Feb. 2000, pp.
`1-178.
`Mogul, Jeffrey C., "Simple and Flexible Datagram Access Controls
`for Unix-based Gateways", Mar. 1989 .
`Biodata GmbH, "BIGfire + User Manual", V0306+, 1999 .
`Excerpts from File History related U.S. Appl. No. 09/611,775.
`Excerpts from File History of related U.S. Appl. No. 11/374,465.
`Excerpts from File History of related U.S. Appl. No. 09/745,599.
`Excerpts from File History of related U.S. Appl. No. 12/316,129,
`Abandoned.
`Excerpts from File History of related U.S. Appl. No. 09/746,519.
`Excerpts from File History of related U.S. Appl. No. 11/405,299.
`Excerpts from File History of related U.S. Appl. No. 09/746,107.
`
`<http://homepages.uel.ac.uk/
`
`* cited by examiner
`
`Ex.1001
`CISCO SYSTEMS, INC. / Page 2 of 29
`
`

`

`U.S. Patent
`
`Jun.4,2013
`
`Sheet 1 of 14
`
`US 8,458,784 B2
`
`<
`
`Ex.1001
`CISCO SYSTEMS, INC. / Page 3 of 29
`
`

`

`~ = N
`
`00
`~
`00
`UI
`~
`00
`
`d r.,;_
`
`.... ...
`0 ....
`N
`.....
`rJJ =(cid:173)
`
`('D
`('D
`
`~
`
`0 ....
`~ ...
`?
`2'
`
`N
`
`~ = ~
`
`~
`~
`~
`•
`00
`~
`
`FIG.lB
`
`Streaming Audio
`
`Server
`
`Web+ FTP
`
`Server
`
`Internal (protected) hosts
`
`Bastion ( exposed) hosts
`
`External (untrusted) hosts
`
`DSL Router
`
`Ex.1001
`CISCO SYSTEMS, INC. / Page 4 of 29
`
`

`

`U.S. Patent
`
`Jun.4,2013
`
`Sheet 3 of 14
`
`US 8,458,784 B2
`
`External
`PHY
`
`14
`
`16
`
`18
`
`0000
`
`Repeater Core
`
`Packet Nibbles L
`
`1-----jll,f Packet Type
`Filters
`
`22
`Packet Characteristics Logic
`Packet
`Characteristics
`d N'bbl D
`1 e ata ------
`an
`(No Buffering)
`
`Run Rule #1
`
`Internal
`PHY
`
`Pass/Junk----.
`
`Result
`
`Result
`Aggregator
`
`26
`
`24
`State
`36-1
`Result
`Rules Engine #1
`Get Rule
`
`.---_....__.._ __
`23 ~--~
`
`Entry to
`Loolc-Up
`
`Connection
`Cache
`
`30
`
`Run Rule #N
`34-N
`
`Result #1
`Result #N
`
`Rules
`#1
`40-1
`Rules Engine #N
`Get Rule
`36-N
`
`Rules Map _____ ___,
`Table
`Characteristics
`ID
`
`32
`
`Rule Dispatching Information
`State Rules Filter
`
`Legend
`~ Data
`~ Store
`VQueue
`
`CJ Logic
`- - Signal
`
`Rules
`#N
`40-N
`
`42
`
`FIG.2
`
`Ex.1001
`CISCO SYSTEMS, INC. / Page 5 of 29
`
`

`

`U.S. Patent
`
`Jun.4,2013
`
`Sheet 4 of 14
`
`US 8,458, 784 B2
`
`16
`
`I
`I
`
`l------------.,
`
`I
`I
`I
`I
`I
`I
`I
`I
`
`'· I
`
`I
`I
`I
`I
`I
`I
`
`Repeater
`~-P-ac-k-et-d-,--a-ta--1 Core
`
`44
`Determine packet
`characteristics
`(protocol, addrs,
`ports, flags)
`
`M--p-a-ss....,..,/f:--:-ai-=-1 ...,,,...fo-r ---.
`each network
`24
`
`Result
`Aggregator
`
`Level 2 Filters
`
`Level 3 Filters
`
`Level 4 Filters
`
`Spoof Check
`
`pass/fail
`46
`pass/fail
`48
`pass/fail
`50
`pass/fail
`52
`
`(optional)
`
`Transmit
`alarm
`information
`over
`network
`Alarm Controller ___________ .,
`
`FIG.3
`
`53 54
`Alert LED
`
`55
`
`Ex.1001
`CISCO SYSTEMS, INC. / Page 6 of 29
`
`

`

`U.S. Patent
`
`Jun.4,2013
`
`Sheet 5 of 14
`
`US 8,458, 784 B2
`
`8
`
`DSL Router/
`Cable Modem
`
`FIG.4
`18
`
`12
`56
`Bastion
`External 1 - - -+ 1 PHY
`Controller ..,.__ _ _ +---I PHY
`PHY
`data nibble
`
`60
`
`Reshape and transmit
`packet in real-time
`
`58
`
`62
`
`Level 2 Filters
`
`Junk/Pass for each
`PHY category
`Result Aggregator
`, ___ unm_own ___ i
`packet type
`66
`
`72
`
`73
`
`ket and from PHY ext?
`N
`Check options type of 7, 68, 131, or 137
`
`68
`Is from PHY ext
`and op code= 3?
`y
`y
`
`Not present
`
`Pass
`
`Present
`
`70
`
`46
`
`Ex.1001
`CISCO SYSTEMS, INC. / Page 7 of 29
`
`

`

`U.S. Patent
`
`Jun.4,2013
`
`Sheet 6 of 14
`
`US 8,458,784 B2
`
`Determine IP
`Datagram Characteristics
`
`Level 3 Filters
`
`Set Fail signal
`
`Set Fail signal
`
`80
`
`82
`
`N
`
`N
`
`88
`
`Pass
`
`86
`
`Set Fail signal
`
`90
`
`81
`
`Unknown
`
`IGMP
`
`ICMP
`

`
`~
`fQ..,
`c..,)
`E---
`
`84
`
`Is from
`PHYext?
`y
`
`Is fragment
`offset O?
`y
`
`94
`
`98
`
`y
`
`Is
`fragment O?
`N
`
`100
`
`Pass
`
`FIG.5
`
`92
`Is type 5, 8, 10
`13, 15, 17?
`N
`Pass
`
`96
`
`y
`
`Set Fail
`signal
`
`102
`
`Set Fail
`signal
`
`104
`N
`
`Is protocol header
`contained in fragment?
`y
`
`Filter TCP and
`UDP datagram
`
`106
`
`Junk
`Pass
`Signal Signal
`+
`+
`
`Ex.1001
`CISCO SYSTEMS, INC. / Page 8 of 29
`
`

`

`~ = N
`
`00
`~
`00
`UI
`~
`00
`
`d r.,;_
`
`.... ...
`0 ....
`-....J
`.....
`rJJ =(cid:173)
`
`('D
`('D
`
`~
`
`0 ....
`~ ...
`?
`2'
`
`N
`
`~ = ~
`
`~
`~
`~
`•
`00
`~
`
`-----------~----' ext external (Internet) network connection
`int internal ~AN) network connection
`port-e external port number
`port-i internal port number
`Legend
`
`PHY-e external physical byer chlp
`PHY-i internal physical byer chlp
`
`and ACK not set then pass int if have comm state match h-13 O
`If PHY-e active and TCP and port-e = 20 and SYN set
`
`-
`
`Lt~
`
`1
`\. state
`' Comm . LJ
`
`and (get client active port and store comm state)
`set and ACK set and PORT command then pass ext h-128
`
`.--1-2-4 ___.__....., h..._
`
`, _
`
`w~ If PHY-i active and TCP and port-e = 21 and SYN not
`
`ext
`pass
`
`,1,
`
`int
`pass
`
`,1,
`
`complete
`check
`state
`
`'
`
`~
`_
`~If-all--'-ch-ecks_c_om-ple-te~
`132 ~
`
`1 a s 1or 1
`s·gn l , ·nt & ext
`and bitwise-or pass
`then set comp signal
`
`FIG.6
`
`"-122
`
`I-----,
`
`If PHY-1 active and UDP and port-e = 53
`
`then pass ext and store comm state
`
`. .
`
`If PHY-i active and TCP then pass ext
`
`1
`
`•
`and TCP and port-1 = 80 then pass mt
`If server-mode enab~ed and PHY-e ac~ve
`
`L_ 120
`::=====================::1---____,
`If TCP and (ACK set or FIN set) then pass mt & ext h....t l S
`h-116
`
`j___ 114
`
`If port-i = 68 and port-e = 67 then pass int & ext
`

`
`llel ( other protocols also handled simultaneously)
`TCP and UDP packets are evaluated for pass or fail in
`
`· iiaia.
`
`108
`
`~126
`
`.------.
`,
`----------------.
`
`then pass int if have comm state match
`If PHY-e active and UDP and port-e = 53
`
`..J '-----I
`
`:
`
`and active PHY
`UDP, ICMP, ... ) L.Jh...
`Packet type (TCP,
`__ ..... r__
`/ 112
`
`-
`
`ports, and flags
`,
`IP address
`
`Determine packet 1------1
`
`1----..-
`
`• r-110
`
`Ex.1001
`CISCO SYSTEMS, INC. / Page 9 of 29
`
`

`

`U.S. Patent
`
`Jun.4,2013
`
`Sheet 8 of 14
`
`US 8,458,784 B2
`
`133
`
`Determine UDP and TCP
`Packet Characteristics
`
`lookup code
`
`~ ID Enable Web Client
`......
`ID Enable Web Servers
`~ ID User Defined Toggle(s)
`
`~ _______ __,
`
`0
`
`134
`Exec
`addr
`Rules
`Dispatcher---~- Mapping Table
`..__,__"T'"""""" mapping
`data
`
`FIG.7
`
`136
`
`I
`
`I i 148
`
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`
`I : toggle states _......__......,
`datagram
`Rules
`
`comm state
`
`Rules
`
`toggle states
`data~m
`characteristics
`comm state
`
`characteristics Engine #1 --~ .------t Engine #N
`- z
`~ ~
`"C
`s::i..
`§-
`::::s
`- ..fi
`- c.,;,
`~ .a
`-:::I ~
`tr.I z
`-=
`...... e
`~ ......
`....
`..... u
`0
`u
`
`ad
`
`rule
`data
`Rules
`Table #1
`
`142-1
`
`0
`
`0
`
`ad
`
`rule
`data
`
`c.,;,
`0
`
`tr.I
`cu
`
`Lookup comm
`state for
`external host
`
`146
`
`comm state
`update
`
`Result
`Aggregator
`
`144
`
`Pass
`Signal
`+
`
`Junk
`Signal
`+
`
`Ex.1001
`CISCO SYSTEMS, INC. / Page 10 of 29
`
`

`

`U.S. Patent
`
`Jun.4,2013
`
`Sheet 9 of 14
`
`US 8,458, 784 B2
`
`Determine UDP and TCP
`Packet Characteristics
`
`150
`
`[] Enable Active FTP
`152
`
`Pass signals for
`each network
`
`160-1
`Protocol front-end #1
`
`160-N
`Protocol front-end #N
`
`store si
`
`155
`
`store,
`clear signals
`
`Register
`Controller
`
`store and clear
`signal for Reg 1
`
`store and clear
`signal for Reg N
`
`156
`
`State
`Registers
`
`packet state
`characteristic
`match signals
`
`store si
`..___ ____ Protocol back-end #N
`
`Stateful Filters
`
`154
`
`Co!flPare
`characteristics to the
`allowed non-stateful
`rules and make
`judgment
`
`Non-Stateful Filters
`
`153
`
`Pass signal for
`each network
`
`Pass signal for
`rk
`each netwo
`!
`Result
`- Aggregator
`144_)
`FIG .8
`
`Ex.1001
`CISCO SYSTEMS, INC. / Page 11 of 29
`
`

`

`~ = N
`
`00
`~
`00
`UI
`~
`00
`d r.,;_
`
`.... ...
`0 ....
`0
`....
`.....
`rJJ =(cid:173)
`
`('D
`('D
`
`~
`
`0 ....
`~ ...
`?
`2'
`
`N
`
`~ = ~
`
`~
`~
`~
`•
`00
`~
`
`FIG.9
`
`External Link LED
`
`Link LED
`Internal
`
`179
`
`Alert LED
`
`178
`
`177
`
`I ,. Network
`Internal
`
`RJ-45 I•
`
`----PHY
`
`174
`
`172
`
`I I
`
`I ..
`
`Update button
`
`r-(S:j176
`
`button
`
`PLD
`
`PHY
`
`170
`
`162
`
`164-'
`
`I •I RJ-45
`
`Network
`External ..
`
`168
`
`Controller 1---1 I ~ Server enabled
`
`I
`
`I
`
`166-'
`
`~I 81 Client enabled
`
`button
`
`180
`
`Memory
`Nonvolatile ~ Reset Button
`
`Ex.1001
`CISCO SYSTEMS, INC. / Page 12 of 29
`
`

`

`U.S. Patent
`
`Jun. 4, 2013
`
`Sheet 11 of 14
`
`US 8,458,784 B2
`
`192
`
`193
`
`194
`
`----- __ --t--198
`
`- - -
`
`I .---208
`__ alert ____ 212 ___ _
`204
`206
`55
`223
`
`FIG.IO
`
`internal
`--ffnT- -
`
`server
`mode
`
`202
`176
`218
`220
`216
`210
`222
`
`Ex.1001
`CISCO SYSTEMS, INC. / Page 13 of 29
`
`

`

`~ = N
`
`00
`~
`00
`UI
`~
`00
`
`d r.,;_
`
`.... ...
`0 ....
`N
`....
`.....
`rJJ =(cid:173)
`
`('D
`('D
`
`~
`
`0 ....
`~ ...
`?
`2'
`
`N
`
`~ = ~
`
`~
`~
`~
`•
`00
`~
`
`N
`
`y
`
`N
`
`FIG.I I
`
`y
`
`236
`
`Junk packet
`
`y
`
`230
`
`Remove from
`
`flood list
`
`and ports to flood list entries
`
`Compare IP address
`
`226
`
`224
`
`,-----------.----------from external PHY
`Wait for a packet
`
`Ex.1001
`CISCO SYSTEMS, INC. / Page 14 of 29
`
`

`

`240
`
`N
`
`242
`
`y
`
`add 1 to new ACK #
`Unset SYN flag and
`
`244
`
`FIG.12
`
`---from internal PHY
`Wait for a packet
`
`3) transmit
`2) Recalc TCP, IP, Eth checksums
`1) set RST flag
`Transmit RST packet (high priority)
`
`238
`
`and ACK #'s
`3) swap MAC, IP, ports
`2) write bits into list
`1) get flood list locations
`
`250
`
`y
`
`Add to flood list
`
`252
`
`N
`
`2) transmit
`1) recalc TCP, IP, Eth checksums
`Transmit ACK packet:
`
`248
`
`Ex.1001
`CISCO SYSTEMS, INC. / Page 15 of 29
`
`

`

`U.S. Patent
`
`Jun. 4, 2013
`
`Sheet 14 of 14
`
`US 8,458,784 B2
`
`254
`
`Wait for 1 second
`
`256
`...-----_.,. For each flood list entry ......_ __ __,
`
`get+
`
`258
`
`N
`
`y
`
`262
`
`I) unset ACK and set RST flag
`2) add 1 to sequence#
`3) rec ale checksums
`4) recalc TCP, IP, Eth checksums
`
`264
`Transmit RST packet
`
`266
`
`Remove from flood list
`
`FIG.13
`
`Ex.1001
`CISCO SYSTEMS, INC. / Page 16 of 29
`
`

`

`US 8,458,784 B2
`
`1
`DATA PROTECTION SYSTEM SELECTIVELY
`ALTERING AN END PORTION OF PACKETS
`BASED ON INCOMPLETE DETERMINATION
`OF WHETHER A PACKET IS VALID OR
`INVALID
`
`This application is a continuation of U.S. application Ser.
`No.11/374,465, filed Mar. 13, 2006now abandoned, which is
`a continuation of U.S. application Ser. No. 09/611,775, filed
`Jul. 7, 2000, now U.S. Pat. No. 7,013,482.
`
`FIELD OF THE INVENTION
`
`The present invention relates to computer security and data
`protection systems and methods, and more particularly to
`firewall and data protection systems and methods for filtering
`packets, such as from the Internet, in real time and without
`packet buffering.
`
`2
`either accepted ( and passed to the computer) or rejected ( and
`disposed of by the software). This software often requires
`substantial computer knowledge and experience. Users of
`such devices and tools typically have an expertise in network
`5 administration or a similar field, so they can configure, opti(cid:173)
`mize, and even build the complex filtering and security
`options provided by the software.
`While such devices and tools can be quite effective in
`providing "firewall" protection for sophisticated users of
`10 large office systems, they pose several barriers to unsophisti(cid:173)
`cated users of small office and home systems in the growing
`SOHO market. Current large office systems are expensive,
`difficult to set up, and require technical skills. What is needed
`for SOHO systems is a relatively inexpensive, uncompli-
`15 cated, "plug and play" type oflnternet protection system that
`can be easily connected and configured by relatively unso(cid:173)
`phisticated users.
`
`SUMMARY OF THE INVENTION
`
`BACKGROUND OF THE INVENTION
`
`20
`
`The use of the Internet has exploded in recent years. Small
`and large companies as well as individual users are spending
`more time with their computers connected to the Internet.
`With the advent of Internet technologies, such as cable
`modems, digital subscriber lines, and other "broadband"
`access devices, users are connecting their computers to the
`Internet for extended periods of time.
`Such extended or "persistent" connection to the Internet
`brings many advantages to users in immediate access to the 30
`content on the Internet through the use of email, search
`engines, and the like. Unfortunately, however, persistent
`access to the Internet exposes connected computers to poten(cid:173)
`tial security threats, where intruders and "hackers" may com(cid:173)
`promise proprietary systems, engage in information theft, or 35
`take control of the connected computers remotely. With more
`sophisticated tools at their disposal, hackers pose security and
`privacy risks to systems with persistent access to the Internet.
`Such security risks are even present for computers connected
`to the Internet for limited periods of time (such as through 40
`dial-up, modem connections), though to a lesser degree than
`the extended access computers.
`There are currently many different types of firewall sys(cid:173)
`tems available on the market, including proxy servers, appli(cid:173)
`cation gateways, stateful inspection firewalls, and packet fil- 45
`tering firewalls, each of which provides a variety of strategies
`and services for data protection. Conventional packet filters
`typically are computers, routers, or ASICs based on general
`purpose CPUs. They perform their filtering duties by receiv(cid:173)
`ing a packet, buffering the data until a determination can be 50
`made, and forwarding the packet as applicable for the par(cid:173)
`ticular system. For example, a dual-homed, Linux-based filter
`with two network cards might receive a packet completely,
`evaluate whether it meets specific criteria, and transmit the
`packet on the other network card. In another example, a router 55
`designed for switch mode routing might begin buffering a
`packet until a decision is made, then forward the packet on the
`applicable interface while still receiving the packet. With
`most packet filters, software is used and data is buffered.
`Sophisticated computer users working for medium- to 60
`large-sized companies have a variety of relatively expensive
`protection devices and tools at their disposal. Such devices
`and tools typically screen data packets received from the
`Internet with sophisticated software-based filtering tech(cid:173)
`niques. Using relatively complex tools for software analysis, 65
`each packet is stored in a buffer and examined sequentially
`with software-based rules, which results in each packet being
`
`In accordance with the present invention, devices, methods
`and systems are provided for the filtering of Internet data
`packets in real time and without packet buffering. A stateful
`packet filtering hub is provided in accordance with preferred
`25 embodiments of the present invention. The present invention
`also could be implemented as part of a switch or incorporated
`into a router.
`A packet filter is a device that examines network packet
`headers and related information, and determines whether the
`packet is allowed into or out of a network. A stateful packet
`filter, however, extends this concept to include packet data
`and previous network activity in order to make more intelli(cid:173)
`gent decisions about whether a packet should be allowed into
`orout of the network. An Ethernet hub is a network device that
`links multiple network segments together at the medium level
`(the medium level is just above the physical level, which
`connects to the network cable), but typically provides no
`capability for packet-type filtering. As is known, when a hub
`receives an Ethernet packet on one connection, it forwards the
`packet to all other links with minimal delay and is accordingly
`not suitable as a point for making filtering-type decisions.
`This minimum delay is important since Ethernet networks
`only work correctly if packets travel between hosts ( comput(cid:173)
`ers) in a certain amount of time.
`In accordance with the present invention, as the data of a
`packet comes in from one link (port), the packet's electrical
`signal is reshaped and then transmitted down other links.
`During this process, however, a filtering decision is made
`between the time the first bit is received on the incoming port
`and the time the last bit is transmitted on the outgoing links.
`During this short interval, a substantial number of filtering
`rules or checks are performed, resulting in a determination as
`to whether the packet should or should not be invalidated by
`the time that the last bit is transmitted. To execute this task, the
`present invention performs multiple filtering decisions simul(cid:173)
`taneously: data is received; data is transmitted; and filtering
`rules are examined in parallel and in real time. For example,
`on a 100 Mbit/sec Ethernet network, 4 bits are transmitted
`every 40 nano seconds (at a clock speed of 25 MHz). The
`present invention makes a filtering decision by performing
`the rules evaluations simultaneously at the hardware level,
`preferably with a programmable logic device.
`The present invention may employ a variety of networking
`devices in order to be practical, reliable and efficient. In
`addition, preferred embodiments of the present invention
`may include constituent elements of a stateful packet filtering
`hub, such as microprocessors, controllers, and integrated cir-
`
`Ex.1001
`CISCO SYSTEMS, INC. / Page 17 of 29
`
`

`

`US 8,458,784 B2
`
`3
`cuits, in order to perform the real time, packet-filtering, with(cid:173)
`out requiring buffering as with conventional techniques. The
`present invention preferably is reset, enabled, disabled, con(cid:173)
`figured and/or reconfigured with relatively simple toggles or
`other physical switches, thereby removing the requirement 5
`for a user to be'trained in sophisticated computer and network
`configuration. In accordance with preferred embodiments of
`the present invention, the system may be controlled and/or
`configured with simple switch activation(s).
`Accordingly, one object of the present invention is to sim- 10
`plify the configuration requirements and filtering tasks of
`Internet firewall and data protection systems.
`Another object is to provide a device, method and system
`for Internet firewall and data protection that does not require 15
`the use of CPU-based systems, operating systems, device
`drivers, or memory bus architecture to buffer packets and
`sequentially carry out the filtering tasks.
`A further object of the present invention is to perform the
`filtering tasks of Internet firewall protection through the use 20
`of hardware components.
`Another object is to utilize programmable logic for filter(cid:173)
`ing tasks.
`Still another object is to provide a device, method, and
`system to carry out bitstream filtering tasks in real time.
`Yet another object is to perform parallel filtering, where
`packet data reception, filtering, and transmission are con(cid:173)
`ducted simultaneously.
`A further object of the present invention is to perform the
`filtering tasks relatively faster than current state-of-the-art, 30
`software-based firewall/data protection systems.
`Another object is to provide a device, method and system
`for firewall protection without the use of a buffer or temporary
`storage area for packet data.
`Still another object of the present invention is to design a
`device, method and system that does not require software
`networking configurations in order to be operational.
`A further object of the present invention is to provide a
`device, method and system for Internet firewall and data 40
`security protection that supports partitioning a network
`between client and server systems.
`It is a yet another object of the present invention to provide
`a device, method and system for Internet firewall and data
`protection that supports multiple networking ports.
`Another object is to maintain stateful filtering support for
`standard data transmission protocols on a per port basis.
`Still another object ofis to configure network functionality
`using predefined toggles or other types of physical switches.
`A further object of the present invention is to conduct 50
`packet filtering without requiring a MAC address or IP
`address to perform packet filtering.
`Yet another object of the present invention is to facilitate
`the shortest time to carry out bitstream filtering tasks.
`Finally, it is another object of the present invention to be 55
`able to perform filtering rules out of order and without the
`current state-of-the-art convention of prioritizing the filtering
`rules serially.
`
`25
`
`35
`
`4
`FIG. 2 is a flow diagram illustrating the components and
`operations of a preferred embodiment of the present inven(cid:173)
`tion;
`FIG. 3 is a flow chart illustrating the basic functions of a
`repeater core and four filter levels in accordance with pre(cid:173)
`ferred embodiments of the present invention;
`FIG. 4 is a diagram illustrating filtering functions of Level
`2 filters in relation to the flow of packet data from internal and
`external networks in accordance with preferred embodiments
`of the present invention;
`FIG. 5 is a flow chart illustrating packet filtering functions
`of Level 3 filters in accordance with preferred embodiments
`of the present invention;
`FIG. 6 illustrates the rules by which TCP and UDP packets
`are evaluated in parallel in accordance with preferred
`embodiments of the present invention;
`FIG. 7 is a diagram illustrating parallel rule evaluation for
`TCP and UDP packets in accordance with preferred embodi(cid:173)
`ments of the present invention;
`FIG. 8 is a flow chart illustrating packet filtering functions
`of Level 4 filters in accordance with preferred embodiments
`of the present invention;
`FIG. 9 is a blockdiagramofthehardware components ofa
`preferred embodiment of the present invention;
`FIG. 10 is an illustration of an exemplary design of an
`external case in accordance with preferred embodiments of
`the present invention;
`FIGS. 11 and 12 are flow diagrams illustrating SYN flood
`protection in accordance with preferred embodiments of the
`present invention; and
`FIG. 13 is a flow chart illustrating the process of"garbage
`collection" in flood lists in accordance with preferred
`embodiments of the present invention.
`
`DETAILED DESCRIPTION OF

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket