throbber
Case 4:18-cv-07229-YGR Document 42-5 Filed 02/10/20 Page 1 of 12
`

`

`

`

`

`

`
`Exhibit 4
`
`

`

`Case 4:18-cv-07229-YGR Document 42-5 Filed 02/10/20 Page 2 of 12
`Case 4:18-cv-07229-YGR Docum11l1|111||||fllfllll111111|flfll| llflllflfillfllfllllllfilll
`
`USOO6965968B1
`
`(12) United States Patent
`(10) Patent N0.:
`US 6,965,968 B1
`
`Touboul
`(45) Date of Patent:
`Nov. 15, 2005
`
`(54) POLICY-BASED CACHING
`
`(75)
`
`Inventor:
`
`Shlomo Touboul, Kefar-Haim (IL)
`
`(73) Assignee: Finjan Software Ltd., Netanya (IL)
`
`( * ) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`v
`.
`a
`U'S‘C‘ 154(b) by 190 ddyb‘
`
`1
`(21) Appl' No" 111/3711le
`.
`.
`,
`(22)
`Filed‘
`Feb 27 2003
`
`Int. Cl.7 ............................................... G06F 12/00
`(51)
`(52) US. Cl.
`........................ 711/118; 711/114, 709/229
`58
`F'
`ld f S
`h
`711/114 118'
`(
`)
`1e
`0
`earc
`................................
`, 70:) 229,
`/
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`5,077,677 A
`5,359,659 A
`5,361,359 A
`5,485,409 A
`5,485,575 A
`5,572,643 A
`5,606,668 A
`5,623,600 A
`5,638,446 A
`5,692,047 A
`5,692,124 A
`5,720,033 A
`5,724,425 A
`5,740,248 A
`5,761,421 A
`5,765,205 A
`5,784,459 A
`5,796,952 A
`5,805,829 A
`5,832,208 A
`5,850,559 A
`5,859,966 A
`5,864,683 A
`5,892,904 A
`5,951,698 A
`
`12/1991 Murphy et al.
`10/1994 Rosenthal
`11/1994 Tajalll et al.
`1/1996 Gupta et al.
`1/1996 Chess et al.
`11/1996 Judson
`2/1997 Sliwed
`4/1997 Ji et al.
`6/1997 Rubin
`11/1997 McManis
`11/1997 Holden et al.
`2/1998 Deo
`3/1998 Chang et al.
`4/1998 Fieres et al.
`6/1998 van Hoff et al.
`6/1998 Breslau et al.
`7/1998 Devarakonda et al.
`8/1998 Davis et al.
`9/1998 Cohen et al.
`11/1998 Chen et al.
`12/1998 Angelo et al.
`1/1999 Hayman et al.
`1/1999 Boebert et al.
`4/1999 Atkinson et al.
`9/1999 Chen et al.
`
`9/1999 Walsh et al.
`5,956,481 A
`10/1999 Golan
`5,974,549 A
`11/1999 Apperson et al.
`5,978,484 A
`5,983,348 A * 11/1999 Ji
`............................... 713/200
`6,092,194 A
`7/2000 Touboul
`6,154,844 A
`11/2000 Touboul et al.
`
`123000 T011b9u1
`69167920 A
`3332;
`1211111111161‘11'
`2:13:22: 21
`T1111] 16 a .
`,

`,
`8/2002 Arimilli et al.
`6,434,669 B1
`11/2002 Touboul
`6,480,962 B1
`2/2003 Devireddy et al.
`6,519,679 B2
`8/2004 McClain et al.
`............ 709/229
`6,772,214 B1 *
`OTHER PUBLICATIONS
`
`.
`.
`.
`“
`.
`.NOYel fpphcanons Of CFYPFOgraPhY 1“
`”PK omura’
`Digital Communications , IEEE Communications Maga-
`Zine, May, 1990; PP~ 2129
`Okamoto, E. et al., “ID-Based Authentication System For
`Computer Virus Detection”, IEEE/IEE Electronic Library
`online, Electronics Letters, vol. 26, Issue 15, ISSN 15, ISSN
`0013-5194, Jul. 19, 1990, Abstract and pp. 1169-1170.
`URL:http://iel.ihs.com:80/cgi-bin/ielicgi7se...
`2ehts%26VieWTemplate%3ddocview%5fb%2ehts.
`
`(Continued)
`
`Primary Examiner—Mano Padmanabhan
`Assistant Examiner—Duc T Doan
`
`(74) Attorney, Agent, or Firm—Eitan Law Group
`
`(57)
`
`ABSTRACT
`
`Apolicy-based cache manager, including a memory storing
`a cache of digital content, a plurality of policies, and a policy
`index to the cache contents,
`the policy indeX indicating
`allowable cache content for each of a plurality of policies, a
`content scanner for scanning a digital content received, to
`derive a corresponding content profile, and a content evalu-
`ator for determining Whether a given digital content
`is
`allowable relative to a given policy, based on the content
`profile. A method is also described and claimed.
`
`38 Claims, 2 Drawing Sheets
`
`
`
`
`mummmzm.1
`mm m 3mm
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`FINJAN-QUALYS 003936
`
`

`

`Case 4:18-cv-07229-YGR Document 42-5 Filed 02/10/20 Page 3 of 12
`Case 4:18-cv-07229-YGR Document 42-5 Filed 02/10/20 Page 3 of 12
`
`US 6,965,968 B1
`
`Page 2
`
`OTHER PUBLICATIONS
`
`IBM AntiVirus User’s Guide Version 2.4, International
`Business Machines Corporation, Nov. 15, 1995, p. 6-7.
`Norvin Leach et al, “IE 3.0 Applets Will Earn Certification”,
`PC Week, vol. 13, No. 29, Jul. 22, 1996, 2 pages.
`“Finjan Software Releases SurfinBoard, Industry’s First
`JAVA Security Product For the World Wide Web”, Article
`published on the Internet by Finj an Software Ltd., Jul. 29,
`1996, 1 page.
`“Powerful PC Security for the New World of JavaTM and
`Downloadables, Surfin ShieldTM” Article published on the
`Internet by Finjan Software Ltd., 1996, 2 pages.
`Microsoft® Authenticode Technology, “Ensuring Account-
`ability and Authenticity for Software Components on the
`Internet”, Microsoft Corporation, Oct. 1996,
`including
`Abstract, Contents, Introduction and pp. 1-10.
`“Finjan Announces a Personal JavaTM Firewall For Web
`Browsers—the SurfinShieldTM 1.6 (formerly known as
`SurfinBoard)”,
`Press Release
`of
`Finjan Releases
`SurfinShield 1.6, Oct. 21, 1996, 2 pages.
`Company Profile “Finjan—Safe Surfing, The Java Security
`Solutions Provider” Article published on the Internet by
`Finjan Software Ltd., Oct. 31, 1996, 3 pages.
`“Finjan Announces Major Power Boost and New Features
`for SurfinShieldTM 2.0” Las Vegas Convention Center/
`Pavilion 5 P5551, Nov. 18, 1996, 3 pages.
`
`“Java Security: Issues & Solutions” Article published on the
`Internet by Finjan Software Ltd., 1996, 8 pages.
`“Products” Article published on the Internet, 7 pages.
`Mark LaDue, “Online Business Consultant: Java Security:
`Whose Business is It?” Article published on the Internet,
`Home Page Press, Inc. 1996, 4 pages.
`Ron Moritz, “Why We Shouldn’t Fear Java. ” Java Report,
`Feb., 1997, pp. 51-56.
`Web Page Article “Frequently Asked Questions About
`Authenticode”, Microsoft Corporation, last updated Feb. 17,
`1997, Printed Dec. 23, 1998. URL: http://wwwmicrosoft.
`com/workshop/security/authcode/signfaq.asp#9, pp. 1-13.
`Zhang, X.N.,
`“Secure Code Distribution”,
`lEEE/IEE
`Electronic Library online, Computer, vol. 30, Issue 6, Jun.,
`1997, pp.: 76-79.
`Khare, Rohit, “Microsoft Authenticode Analyzed”, Jul. 22,
`1996, 2 pages. URL: http://www.xent.com/FoRK-archive/
`summer96/0338.html.
`“Release Notes for the Microsoft ActiveX Development
`Kit”, Aug. 13, 1996, 11 pages. URL: http://activeX.adsp.or.
`jp/inetsdk/readme.txt.
`“Microsoft ActiveXSoftware Development Kit”, Aug. 12,
`1996, 6 pages. URL: http://activeX.adsp.or.jp/inetsdk/help/
`overview.htm.
`
`* cited by examiner
`
`FINJAN-QUALYS 003937
`
`

`

`Case 4:18-cv-07229-YGR Document 42-5 Filed 02/10/20 Page 4 of 12
`Case 4:18-cv-07229—YGR Document 42-5 Filed 02/10/20 Page 4 of 12
`
`US. Patent
`
`Nov. 15, 2005
`
`Sheet 1 0f 2
`
`US 6,965,968 B1
`
`ONH
`
` WEBSERVER
` PROFILE
`EVALUATOR
`
` SCANNER
`
`
`CONTENT
`
`CONTENTCONTENT
` CONTENTFTLTER
`
`
`
`PROFTLE
`
`
`GETCONTENT
`PERMITTED?
`
`
` POLICY-BAEDCACHE
`INDEX
`‘7POLICYC
`
`
`CACHEMANAGER
`3")I‘
`
`
`
`'S‘TSWIWLTAI
`
`..nnnnnnI.ITITlT..llllllllllllllllllT
`
`
`PROXYSERVER
`
`
`
`
`'I'I'I'I'I'IHII'I‘:
`
`A'A'A'AVA'A'AvL'Avva'AI:1"
`AVAVAVAVAVAVAVAVAVAVA
`
`
`
`FIG.1
`
`FINJAN-QUALYS 003938
`
`

`

`Case 4:18-cv-07229-YGR Document 42-5 Filed 02/10/20 Page 5 of 12
`Case 4:18-cv-07229—YGR Document 42-5 Filed 02/10/20 Page 5 of 12
`
`US. Patent
`
`Nov. 15, 2005
`
`Sheet 2 0f 2
`
`US 6,965,968 B1
`
`|‘———_ WEB CLIENT —‘t‘—— CACHE MANAGER ——’l‘¥ CONTENT FILTER —I1
`
`210
`205
`IS CONTENT #1
`
`
` USER A REQUESTS
`ALREADY AVAILABLE
`CONTENT #1
`
`IN CACHE?
`
`
`
`220
`REQUEST CONTENT #1
`REQUEST CONTENT #1
`FROM CONTENT FILTER
`FROM WEB SERVER
`
`
`
`
`
`S THERE AN ALLOWABILIT
`
`LINK FROM USER'S POLICY A
`RECEIVE CONTENT m
`225
`
`
`TO CONTENT #1?
`FROM WEB SERVER
`
`
`
` 230
`SET ALLOWABILITY POINTER
`
` MOVE CONTENT#1 TO CACHE
`FROM POLICY A TO CONTENT #1
`
`
`260
`
`
`
`
`USER RECEIVES
`REQUESTED
`CONTENT
`
`SEND CONTENT #1
`
`
`SCAN CONTENT #1 TO
`235
`
`FROM CACHE TO USER
`DETERMINE ITS PROFILE
`
`
`240
`S THERE A NONVALLOWAEILI
`‘
`COMPARE PROFILE WITH
`USER'S POLICY A
`LINK FROM USER'S POLICY A
`
`
`
`
`
`TO CONTENT #1?V
`
`
`SET NON ALLOWABILITY
`245
` IS CONTENT #1
`
`PERMITTED UNDER
`
`POINTER FROM POLICY A
`
`
`POLICY A?
`
`TO CONTENT #1
`
`
`
`
`260
`USER DOES NOT
`RECEIVE REQUESTED
`
`CONTENT
`
`
`
`DO NOT SEND CONTENT #1 TO
`
`USER
`
`
`
`
`
`
`
`ASK FILTER TO DETERMINE
`IF CONTENT #1 IS PERMITTED
`
`
`
`UNDER POLICY A?
`
`
`
`FIG,2
`
`FINJAN-QUALYS 003939
`
`

`

`Case 4:18-cv-07229-YGR Document 42-5 Filed 02/10/20 Page 6 of 12
`Case 4:18-cv-07229—YGR Document 42-5 Filed 02/10/20 Page 6 of 12
`
`US 6,965,968 B1
`
`1
`POLICY-BASED CACHING
`
`FIELD OF THE INVENTION
`
`The present invention relates to cache management and
`content filtering.
`
`BACKGROUND OF THE INVENTION
`
`Conventional caching is used to avoid repeating the same
`computations or the same data transmission. Familiar Inter-
`net browsers cache web pages so that these pages do not
`have to be re-transmitted when a user returns to view the
`
`same page a second time. The advantage of caching is
`readily noticed, as the first time a user navigates to a web
`page, it typically takes a few seconds for his browser to
`render the page, yet when a user returns to the same web
`page, for example, by clicking on a “Back” button, the page
`is re-rendered immediately. This happens because the user’s
`Internet browser typically caches the web page after it is
`received from a web server, so that the second time around
`the page is already available on the user’s computer for
`rendering.
`Caching is also used by proxy servers, which are inter-
`mediaries between servers on the Internet and a local net—
`
`work of client computers. Proxy servers are often requested
`to deliver the same web pages to multiple client computers,
`and thus proxy caching makes it possible to deliver web
`pages quickly, the second time they are requested.
`Caching is also used by computational processors, to save
`intermediate results that would otherwise need to be com-
`
`puted repeatedly. For example, if a computational expres-
`sion repeatedly includes a term sin(_x), then such term can be
`cached so that it does not need to be calculated more than
`
`once. Many compilers are able to parse source code and
`determine efficient intermediate results to cache.
`
`Caching is also used in conjunction with content control,
`used to control what content is delivered to client computers.
`Content control
`typically operates by filtering incoming
`content according to a “policy” that includes one or more
`rules. For example, URL filtering is used to block “unde—
`sirable" web pages from being delivered. Often the deter-
`mination of what is undesirable is set by a user or by a
`computer system administrator. In this regard, a policy is the
`set of rules that determine what URLs to allow or not allow
`
`to pass through the filter, and typically only allowable URLs
`are cached.
`
`A shortcoming of conventional caching as used in con-
`junction with content control is the inability to support more
`than one policy. That is, once content gets through a first
`policy, it is cached, and then it is readily available to users
`governed by a second policy, even if the second policy
`would not have allowed the content to pass through the filter.
`Using conventional caching, workarounds include dis-
`abling the cache, which defeats the advantages of caching,
`or using multiple caches, one cache per distinct policy,
`which suffers from redundancy since the same content will
`typically be stored in multiple caches.
`
`SUMMARY OF THE INVENTION
`
`The present invention provides a method and system for
`enabling a single cache to serve as multiple caches. With
`respect
`to content control,
`the present invention enables
`management of a single cache so as to control content
`relative to a plurality of policies. Using the present inven—
`
`15
`
`25
`
`35
`
`4o
`
`45
`
`50
`
`55
`
`6O
`
`65
`
`2
`tion, a single cache appears transparently as multiple caches;
`e.g., a policyAcache, a policy B cache and a policy C cache.
`The present invention enhances conventional caching by
`including a policy—based index, which is a data structure
`indicating allowability of cached content relative to a plu-
`rality of policies. Using the policy-based index of the present
`invention, a cache manager can check whether cached
`content is allowable for a different user than the original user
`who requested it, and thus block cached content from being
`delivered to users for whom it is not allowed.
`
`The present invention has many diverse applications. In
`conjunction with content control systems, for example, the
`present invention is advantageous inter alia for URL filter-
`ing, e-mail anti-spam filtering, anti-virus protection and
`malicious mobile code protection systems. In conjunction
`with document management systems, the present invention
`is advantageous inter alia for document protection, version
`control and data encryption. In conjunction with file man-
`agement systems,
`the present
`invention is advantageous
`inter alia for file protection and file sharing. In conjunction
`with multimedia systems, the present invention is advanta—
`geous inter alia for cable and satellite broadcasting, video on
`demand, streaming audio and video, and access to still
`imagery.
`It may thus be appreciated that the present invention
`provides breakthrough technology for cache management.
`There is thus provided in accordance with a preferred
`embodiment of the present invention a policy-based cache
`manager, including a memory storing a cache of digital
`content, a plurality of policies, and a policy index to the
`cache contents, the policy index indicating allowable cache
`content for each of a plurality of policies, a content scanner
`for scanning a digital content received, to derive a corre-
`sponding content profile, and a content evaluator for deter-
`mining whether a given digital content is allowable relative
`to a given policy, based on the content profile.
`There is further provided in accordance with a preferred
`embodiment of the present invention a method for policy-
`based caching,
`including receiving a user request for a
`digital content, the user having associated therewith a policy
`from among a plurality of policies, determining based on a
`cache, whether the requested digital content
`is already
`available, determining based on a policy index of the cache
`contents, whether the requested digital content is allowable
`for the user, if the determining based on a cache indicates
`that the data content is already available in the cache, and
`determining based on a profile of the requested data content,
`whether the requested data content
`is allowable for the
`user’s policy, if the determining based on the policy index is
`non-conclusive.
`
`There is yet further provided in accordance with a pre-
`ferred embodiment of the present invention a computer-
`readable storage medium storing program code for causing
`a computer to perform the steps of receiving a user request
`for a digital content, the user having associated therewith a
`policy from among a plurality of policies, determining based
`on a cache, whether the requested digital content is already
`available, determining based on a policy index of the cache
`contents, whether the requested digital content is allowable
`for the user, if the determining based on a cache indicates
`that the data content is already available in the cache, and
`determining based on a profile of the requested data content,
`whether the requested data content
`is allowable for the
`user’s policy, if the determining based on the policy index is
`non—conclusive.
`
`FINJAN-QUALYS 003940
`
`

`

`Case 4:18-cv-07229-YGR Document 42-5 Filed 02/10/20 Page 7 of 12
`Case 4:18-cv-07229—YGR Document 42-5 Filed 02/10/20 Page 7 of 12
`
`US 6,965,968 B1
`
`3
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`The present invention will be more fully understood and
`appreciated from the following detailed description, taken in
`conjunction with the drawings in which:
`FIG. 1 is a simplified block diagram for a cache manager
`that provides policy-based caching, in accordance with a
`preferred embodiment of the present invention; and
`FIG. 2 is a simplified flowchart for use of a policy—based
`cache, in accordance with a preferred embodiment of the
`present invention.
`
`DETAILED DESCRIPTION OF A PREFERRED
`EMBODIMENT
`
`The present invention provides a novel cache manage-
`ment method and system, for enabling policy-based caching.
`Specifically,
`the cache manager of the present invention
`manages a single cache as if it were multiple caches, each
`cache corresponding to a different policy.
`Reference is now made to FIG. 1, which is a simplified
`block diagram for a cache manager that provides policy-
`based caching, in accordance with a preferred embodiment
`of the present invention. Shown in FIG. 1 is a web client 110,
`which typically requests web pages from the Internet, the
`web pages having links to static content, such as GIF and
`JPEG images, and to active content, such as Java applets and
`ActiveX controls. The web pages and the static and active
`content referenced therein are located on one or more web
`servers 120.
`
`For many networks, a proxy server 130 acts as an inter-
`mediary between web server 120 and web client 110. Use of
`a proxy server provides for efficiency in delivery, and for
`control over allowable content. An important component of
`proxy server 130 is a cache 140 of stored content, and a
`cache manager 150 for managing access to cache 140. Cache
`manager 150 stores content received from web servers 120
`within cache 140, so that such content is readily available for
`transmission when it is subsequently requested by web client
`110 or by another web client.
`Thus when proxy server 130 receives a request from web
`client 110 for content, it preferably first checks whether the
`requested content is already stored in cache 140, and, if so,
`transmits the content directly from cache 140, obviating the
`need to first request and receive the content from web server
`120.
`
`In accordance with a preferred embodiment of the present
`invention, proxy server 130 generally includes a content
`filter 160, used to block content from being transmitted to
`web client 110. Content filter 160 may be, for example, a
`URL filter used to block URL’s that have undesirable
`content, or spam. Content
`filter 160 may also be,
`for
`example, an anti-virus filter that blocks content known to
`contain a computer virus therewithin. Content filter 160 may
`also be a pro-active security filter, such as described in
`applicant’s US. Pat. Nos. 6,092,194, 6,154,844, 6,167,520
`and 6,480,962, the contents of which are hereby incorpo—
`rated by reference. Such a security filter scans incoming
`mobile code to determine a security profile therefor, the
`security profile indicating suspicious operations performed
`by the mobile code.
`Generally speaking, content filter 160 is a module that
`includes a content scanner 170 for scanning incoming con-
`tent, and a content evaluator 180 for determining whether or
`not the content is allowable, based on a policy. The policy
`may, for example, indicate which URL’s are to be blocked,
`or which computer viruses are known and should thus be
`
`15
`
`25
`
`35
`
`4o
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`blocked, or which suspicious operations are permitted. Typi-
`cally, content scanner 170 scans received content and deter-
`mines a profile therefor, so that content evaluator 180 can
`determine allowability of content by comparing the content
`profile to a policy. In general, content scanner 170 produces
`a content profile as output, from a digital content as input;
`and content evaluator 180 produces a Boolean yes/no result
`as output, from a profile and a policy as input.
`It may be appreciated by those skilled in the art that
`content evaluator may operate directly on a digital content as
`input, and not require use of a profile. This may happen in
`situations where the allowability of the content is readily
`determinable from the content itself.
`
`In accordance with a preferred embodiment of the present
`invention, different policies may apply to different users.
`Thus a policy Amay apply to a first group of users, a policy
`B may apply to a second group of users, and a policy C may
`apply to a third group of users. Conventional cache manag-
`ers cannot enforce more than one policy.
`Consider, for example, a given content that is allowable
`according to policy A but not allowable according to policy
`B, If a first user, governed by policy A, initially requests the
`content from web server 120, then content filter 160 would
`allow the content, and proxy server 130 would deliver it to
`the first user and cache it. If a second user, governed by
`policy B, subsequently requests the same content, then cache
`manager 150 would recognize that the content is already
`resident in cache 140 and send it to the second user, even
`though it is not allowable for him. The allowability test of
`content filter 160, based on policy B, would be by-passed,
`since the content would have previously passed the test,
`based on policy A, and was cached at that time.
`To accommodate multiple policies, in accordance with a
`preferred embodiment of the present invention, cache man-
`ager 150 is enhanced to include a policy-based cache index
`190. Policy-based cache index 190 is a data structure that
`indicates, for each policy, content within cache 140 that is
`allowable relative thereto. Preferably, as described herein-
`below, policy-based cache 190 also indicates, for each
`policy, content within cache 140 that
`is not allowable
`relative thereto.
`Policy-based cache index 190 is preferably implemented
`as two sets of pointers associated with each policy. The first
`set of pointers, referred to as “allowability pointers,” indi-
`cates content that is allowable relative to a given policy, and
`the second set of pointers, referred to as “non-allowability
`pointers,” indicates content that is not allowable relative to
`the given policy. Although it may be appreciated that one set
`of pointers should suflice, it is explained hereinbelow why
`two sets of seemingly opposite pointers is a preferable
`implementation. Shown in FIG. 1, for example, is a set of
`allowability pointers from policies A, B and C to cached
`contents nos. 1—12.
`
`Alternatively, instead of using pointers from each policy
`to the cache content, policy-based cache index 190 may be
`implemented by assigning a bit string to each cached con-
`tent, the bits indicating those policies relative to which such
`content is allowable. Similar to the two sets of pointers
`described above, rather that use two states; namely, —“0”
`for allowability and “1” for non-allowability, a preferred
`embodiment of the present
`invention uses three states;
`namely, “0” for allowability, “1” for non-allowability, and
`“2” for non-conclusiveness.
`
`Thus it may be appreciated that with each cached content
`is associated a string of numbers “0,” “1” or “2,” one number
`per policy. Those skilled in the art will appreciate that the
`information obtained from two sets of pointers from policies
`
`FINJAN-QUALYS 003941
`
`

`

`Case 4:18-cv-07229-YGR Document 42-5 Filed 02/10/20 Page 8 of 12
`Case 4:18-cv-07229-YGR Document 42-5 Filed 02/10/20 Page 8 of 12
`
`US 6,965,968 B1
`
`5
`to cached content, is equivalent to the information obtained
`from strings of numbers “0,” “1” or “2,” one such number
`per policy. For example, if content #1 is allowable relative
`to policy A, not allowable relative to policy B and undeter-
`mined relative to policy C, then its associated bit string is
`012.
`
`Referring to FIG. 1, policy-based cache index 190 indi-
`cates that:
`content #2, 4, 6, 8 and 12 is allowable relative to policy
`A;
`content #1, 6, 9 and 12 is allowable relative to policy B;
`and
`
`content #3, 5, 6, 9 and 10 is allowable relative to policy
`C.
`
`In accordance with a preferred embodiment of the present
`invention, when cache manager 150 checks to determine if
`content requested by a user is already available within cache
`140, it also checks whether the content is allowable relative
`to the user’s policy. If the requested content is available
`within cache 140 and if policy-based cache index 190
`indicates that the content is allowable, then the content is
`delivered from cache to the user. Similarly, if policy-based
`cache index 190 indicates that the content is not allowable,
`then the content is blocked. Otherwise, if policy-based cache
`index 190 is non-conclusive, as described hereinbelow, then
`cache manager 150 queries content filter 160 as to whether
`or not the cached content is allowable relative to the user’s
`policy. If allowable, the content is delivered from cache 140
`to the user; otherwise, it is blocked. In either case, policy-
`based cache index 190 is updated accordingly.
`Thus, referring to the scenario above, when the second
`user requests the content, even though the content is resident
`in cache, policy—based index 190 is non—conclusive regard—
`ing allowability of the content relative to policy B. When
`cache manager 150 subsequently queries content filter 160,
`it discovers that the content
`is not allowable relative to
`
`policy B, and the content is blocked from delivery to the
`second user.
`
`in accordance with a
`It may thus be appreciated that
`preferred embodiment of the present invention, two deter-
`minations are used to decide whether or not to transmit
`cached content to a user. First, a determination is made based
`on policy-based cache index 190. If such first determination
`indicates that the content is allowable for the user, then the
`content is delivered directly from cache to the user. If such
`first determination indicates that the content is not allowable
`for the user, then the content is blocked. Otherwise, if such
`first determination is non-conclusive, then a second deter-
`mination is made by content filter 160, by comparing a
`profile of the content to the user’s policy using content
`evaluator 180, as described hereinabove.
`The first determination above may be affirmative, nega-
`tive or non-conclusive. The possibility of non-conclusive-
`ness arises from the incompleteness of policy-based cache
`index 190. If policy-based cache index 190 were required to
`include all allowability links from policies A, B and C to
`allowable content relative thereto, then a conclusive deter—
`mination could always be made. That is, given a content in
`cache 140 and given a policy, policy-based cache index 190
`would conclusively determine whether or not
`the given
`content is allowable relative to the given policy, simply by
`checking whether or not an allowability pointer exists from
`the given policy to the given content in cache 140.
`However, in accordance with a preferred embodiment of
`the present invention, it is not necessary for policy-based
`cache index 190 to be complete. The present invention
`allows for policy—based cache index 190 to be updated
`
`15
`
`25
`
`35
`
`4o
`
`45
`
`50
`
`55
`
`6O
`
`65
`
`6
`dynamically as user requests for cached and non-cached
`content arrive. This is an important advantage, since other-
`wise it would require an exponential amount of computa-
`tions to calculate a complete policy-based index cache 190,
`which is typically unnecessary, as the size of the cache and
`the number of policies increase.
`Instead, policy-based index cache 190 is built up on-the-
`fly, as content filter 160 analyzes specific content relative to
`specific policies. For example, listed below is a typical
`sequence of stages through which policy-based cache index
`190 is successively built up, in accordance with a preferred
`embodiment of the present invention. Initially, policy-based
`cache index 190 is empty. The stages described below
`assume that policy-based cache index 190 is implemented as
`two sets of pointers, as described hereinabove. In this case,
`there are initially no pointers created; or alternatively all
`pointers are initially set to NULL. It may be appreciated that
`if policy-based index 190 is implemented alternatively using
`bit strings, as described hereinabove, then initially all bits
`strings are stuffed with 2’s, indicating that allowability of
`content is undetermined relative to any policy.
`1. A first user, governed by policy A, requests content #1.
`2. Cache manager 150 checks its cache 140 and indicates
`that content #1 is not resident therein.
`
`3. Content filter 160 requests content #1 from web server
`120.
`
`4. Content scanner 170 scans content #1 to derive a profile
`thereof, and content evaluator 180 compares the content
`#1 profile with policy A, thereby determining that content
`#1 is allowable relative to policy A.
`5. Cache manager 150 inserts content #1 in cache 140, and
`creates an allowability link from policy A to content #1
`within policy—based cache index 190. At
`this stage,
`policy-based cache index 190 has an entry indicating that
`content #1 is allowable relative to policy A.
`6. Proxy server 130 delivers content #1 to the first user.
`7. A second user, governed by policy B, requests content #1.
`8. Cache manager 150 checks its cache 140 and indicates
`that content #1 is resident therein.
`
`9. Cache manager 150 checks policy-based cache index 190
`regarding allowability of content #1 relative to policy B,
`and is non-conclusive.
`10. Cache manager 150 asks content filter 160 whether or
`not content #1 is allowable relative to policy B.
`11. Content evaluator 180 compares the content #1 profile
`with policy B, thereby determining that content #1 is not
`allowable relative to policy B.
`12. Cache manager 150 creates a non-allowability link from
`policy B to content #1 within policy-based cache index
`190. At this stage, policy—based cache index 190 has an
`entry indicating that content #1 is not allowable relative to
`policy B.
`13. Proxy server 130 does not deliver content #1 to the
`second user.
`
`14. Athird user, governed by policy A, requests content #1.
`15. Cache manager 150 checks policy-based cache index
`190 regarding allowability of content #1 relative to policy
`A, and concludes that content #1 is allowable relative to
`policy A. There is no need to consult with content filter
`160.
`
`16. Proxy server 130 delivers content #1 to the third user.
`17. Afourth user, governed by policy B, requests content #1.
`18. Cache manager 150 checks policy-based cache index
`190 regarding allowability of content #1 relative to policy
`B, and concludes that content #1 is not allowable relative
`to policy B. There is no need to consult with content filter
`160.
`
`FINJAN-QUALYS 003942
`
`

`

`Case 4:18-cv-07229-YGR Document 42-5 Filed 02/10/20 Page 9 of 12
`Case 4:18-cv-07229—YGR Document 42-5 Filed 02/10/20 Page 9 of 12
`
`US 6,965,968 B1
`
`7
`19. Proxy server 130 does not deliver content #1 to the
`fourth user.
`
`It may thus be appreciated that cache manager 150 makes
`cache 140 appear transparently as if it were multiple caches;
`e.g., a policyAcache, a policy B cache and a policy C cache.
`Yet through the use of policy-based cache index 190 the
`multiple caches are implemented as a single cache, and there
`is no redundancy is storage. That is, content appearing to
`belong to more than one policy cache is in fact stored only
`once.
`
`In a preferred embodiment of the present invention, cache
`manager 150 is optimized for performance by designating
`content within cache 140 that is allowable relative to all
`
`policies. Such content can be immediately delivered to web
`client 110, regardless of the user’s governing policy. The
`rationale for this optimization is that typically a large portion
`of content is “innocuous,” and known to be above suspicion.
`For example, when content filter 160 is a pro—active security
`filter, content such as GIF and JPEG images are always
`allowed to pass through. By designating such content as
`innocuous, cache manager 150 can eliminate a great deal of
`unnecessary processing and time delay.
`To implement the above enhancement, in accordance with
`a preferred embodiment of the present invention, content
`filter 160 generates a “strictest” policy corresponding to all
`of the individual user policies. For example, if the individual
`policies are URL filters for blocking undesirable content,
`then the strictest policy corresponds to filtering out all
`undesirable content. Similarly, if the individual policies are
`security policies for blocking mobile code that performs
`suspicious operations, then the strictest policy corresponds
`to blocking all suspicious operations. It is noted that the
`strictest policy may or may not coincide with one of the
`individual policies.
`Preferably, whenever content filter 160 receives content
`from web server 120, and uses content scanner 170 to derive
`a profile thereof, content evaluator 180 evaluates the content
`first with respect to the strictest policy. If the content is
`allowable relative to the strictest policy, then cache manager
`150 adds the content to cache 140 and designates it as being
`innocuous. Otherwise, if the content is not allowable relative
`to the strictest policy, then content evaluator 180 evaluates
`the content with respect to the specific policy governing the
`user requesting the content. The content is then preferably
`added to cache 140, and policy-based cache index 190 is
`updated to reflect
`the content’s allowability or non-al-
`lowability relative to the user’s policy.
`It may thus be appreciated that content manager 150
`communicates with content filter 160 in two modes, as
`illustr

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