`
`
`
`
`
`a2) United States Patent
`
`
`
`US 9,280,678 B2
`(0) Patent No.:
`
`
`
`
`
`
`Mar.8, 2016
`(45) Date of Patent:
`Redberg
`
`US009280678B2
`
`
`
`
`
`
`
`(54) SECURE CLOUD STORAGE DISTRIBUTION
`AND AGGREGATION
`
`
`
`
`
`(72)
`
`
`
`
`
`
`
`
`
`
`(71) Applicant: Fortinet, Inc., Sunnyvale, CA (US)
`
`
`
`
`
`Inventor: David A. Redberg, Sunnyvale, CA (US)
`
`
`
`
`
`
`(73) Assignee: Fortinet, Inc., Sunnyvale, CA (US)
`
`
`
`
`
`
`
`
`(*) Notice:
`Subject to any disclaimer, the term ofthis
`
`
`
`
`patent is extended or adjusted under 35
`
`
`
`
`U.S.C. 154(b) by 133 days.
`
`
`
`
`
`(21) Appl. No.: 14/094,484
`
`
`
`(22)
`
`(65)
`
`Filed:
`
`
`
`
`Dec. 2, 2013
`
`
`
`
`
`Prior Publication Data
`
`
`
`US 2015/0154418 Al
`Jun. 4, 2015
`
`
`
`
`(51)
`
`
`
`
`
`
`
`
`
`(2006.01)
`(2013.01)
`(2013.01)
`(2013.01)
`(2006.01)
`
`
`
`
`
`
`
`
`Int. Cl.
`
`HOAL 29/06
`GO6F 21/00
`GO6F 21/62
`GO6F 21/60
`
`GO06F 17/30
`
`
`(52) U.S. CL.
`
`
`
`
`
`
`
`CPC ...... GO6F 21/6218 (2013.01); GO6F 17/30106
`
`
`
`
`
`(2013.01); GO6F 17/30194 (2013.01); GO6F
`
`
`
`
`
`21/60 (2013.01); GO6F 21/602 (2013.01);
`
`
`
`
`
`GO6F 21/6227 (2013.01); HO4L 63/06
`
`
`
`
`(2013.01); HO4L 63/260 (2013.01)
`
`
`
`
`(58) Field of Classification Search
`CPC vicicccsesterstesssseecteneceesenseesensenenes GO6F 21/6218
`
`
`
`
`
`
`
`
`
`
`See application file for complete search history.
`
`
`
`
`
`(56)
`
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`8/2014 Koetenet al. wu. 726/1
`8,819,768 BL*
`2010/0332401 Al* 12/2010 Prahlad etal.
`......0...0. 705/80
`
`
`
`
`
`
`
`
`
`
`
`
`
`5/2013 Burstein etal. 0... 726/1
`2013/0133023 Al*
`
`
`
`
`
`
`
`8/2013 Guralnik et al.
`» 340/5.21
`2013/0207775 Al*
`...
`
`
`
`
`
`
`
`
`
`2/2014 Aissi etal.
`.....
`713/189
`2014/0052999 Al*
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`5/2014 Haegeretal. ..
`713/153
`2014/0122866 Al*
`
`w 709/223
`5/2014 Yao etal.
`....
`2014/0136675 Al*
`
`
`
`
`
`
`
`2/2015 Huhetal. wo. 726/1
`2015/0046971 Al*
`
`
`
`
`
`
`
`
`
`3/2015 Cullenetal. ou... 713/168
`2015/0074398 Al*
`
`
`
`
`
`
`
`OTHER PUBLICATIONS
`
`
`
`
`
`
`
`
`
`
`AlephCloud. FAQ. http://www.alephcloud.com/#! faq/cl pya. 2 pgs.
`
`
`
`
`
`
`
`AlephCloud. “AlephCloud Raises $7.5M Series B for New Approach
`
`
`
`
`
`
`to Cloud Content Privacy Management.” http://www.alephcloud.
`
`
`
`com/#!pr-20130522/cbri. 2 pgs.
`
`
`AlephCloud.
`“Content Canopy.”
`
`
`
`#!products/cife. 1 pg.
`
`
`
`
`
`
`
`AlephCloud. “It’s the Content, not the Container.” http://www.
`
`
`alephcloud.com/#!solution/c15sb. | pg.
`
`
`
`http://www.alephcloud.com/
`
`
`
`
`
`
`
`
`* cited by examiner
`
`
`
`Primary Examiner — Lisa Lewis
`
`
`
`
`
`
`(74) Attorney, Agent, or Firm — Hamilton, DeSanctis & Cha
`LLP
`
`
`
`
`
`
`(57)
`
`ABSTRACT
`
`
`
`
`
`
`
`
`Methods and systems for vendor independent and secure
`
`
`
`
`
`
`
`cloud storage distribution and aggregation are provided.
`
`
`
`
`
`According to one embodiment, an application programming
`
`
`
`
`
`
`
`interface (API)is provided by a cloud storage gateway device
`
`
`
`
`
`
`
`logically interposed between third-party cloud storage plat-
`
`
`
`
`
`
`
`
`forms and users of an enterprise. The APIfacilitates storing of
`
`
`
`
`
`
`
`
`
`files, issuing of search requests againstthe files and retrieval
`
`
`
`
`
`
`
`of contentofthefiles. A file storage policy is assigned to each
`
`
`
`
`
`
`
`
`user, which defines access rights, storage diversity require-
`
`
`
`
`
`
`
`ments and a type of encryption to be appliedto files. Respon-
`
`
`
`
`
`
`
`
`sive to receiving a request to store a file, (i) searchable
`
`
`
`
`
`
`
`encrypted data is created relating to content and/or metadata
`
`
`
`
`
`
`
`
`
`
`
`ofthe file basedon the assignedfile storage policy; and (ii) the
`
`
`
`
`
`
`
`searchable encrypted data is distributed among the third-
`
`
`
`
`
`
`
`
`party cloud storage platforms based on the storage diversity
`
`
`
`
`
`
`
`requirements defined by the assigned file storage policy.
`
`
`
`
`27 Claims, 12 Drawing Sheets
`
`300 -—,»
`
`
`
`
`
`Page 1 of 30
`
`Netskope Exhibit 1001
`
`Page 1 of 30
`
`Netskope Exhibit 1001
`
`

`

`
`U.S. Patent
`
`
`
`
`Mar.8, 2016
`
`
`
`
`
`Sheet 1 of 12
`
`
`
`US 9,280,678 B2
`
`
`om,
`
`
`
`
`Cloud Store
`
`
`
`
`
`Cloud Stare
`1714b
`
`
`
`
`
`4146
`
`
`
`
`Cloud Store
`
`114d
`
`
`
`Cloud Store {148
`
`
`
`\
`
`
`a .
`‘
`
`
`, .
`
`
`\
`
`
`}
`
`\
`}
`
`
`
`/
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`a
`
`
`eect
`
`
`internet
`
`
`
`412
`ee
`
`
`
`
`
`
`Policy Database
`419
`
`
`
`
`
`
`
`
`— Cocal Area — 7
`
`Network
`|
`
`
`
`
`
`
`
`
`
`
`
`
`
` Data Agent
`
`
`
`
` Data Agent
`
`
`Data Agent
`
`
`
`
`Data Agent
`
`
`
`Fig. 1
`
`
`
`Page 2 of 30
`
`Netskope Exhibit 1001
`
`Page 2 of 30
`
`Netskope Exhibit 1001
`
`

`

`
`U.S. Patent
`
`
`
`
`Mar.8, 2016
`
`
`
`
`Sheet 2 of 12
`
`
`
`US 9,280,678 B2
`
`
`
`
`
`
`
`JOPIAQBAINESDADID
`
`
`
`
`
`vad
`
`SB}ORYaesg
`
`etapeidAssug
`
`B90e
`
`
`
`
`ainpawuondéuoug
`OreaInpowy
`Aono,|
`
`
`
`e0e
`
`}USUGHeUBIY
`
`ainpolyysGeiois
`
`BIGBUDIEES
`
`a4paydéoug
`
`9O0E
`
`
`
`idlyPOZBIEUAS
`
`BLS
`
`UOHEDSY
`
`{sjainpoy
`
`Bb
`
`aseoajecyAgod
`
`BL
`
`
`
`Z“bie
`
`AENGIE quawufissy
`
`BIBYIBAS
`
`
`
`attpeydAiouy
`
`agoe
`
`
`
`
`
`JEDIADIZOMI8SPNOEG
`
`
`
`
`
`JEDIADL.|GOWUASHNO}
`
`BINPAYY
`
`VLS
`
`Le
`
`evose
`
`aSPepBCUMOG
`
`aad
`
`padAug
`
`Page 3 of 30
`
`Netskope Exhibit 1001
`
`Page 3 of 30
`
`Netskope Exhibit 1001
`
`
`

`

`
`U.S. Patent
`
`
`
`
`Mar.8, 2016
`
`
`
`
`Sheet 3 of 12
`
`
`
`US 9,280,678 B2
`
`
`
`300 ™,
`
`Start Searchable File Encryption
`Receive File to be Encrypted
`Partition the File info Mulipie Chunks
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`~~ 302
`
`
`~~ 304
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Encrypt each File Chunk Based on Public and
`
`
`
`
`
`
`
`Private Keys such that Namespace is Created far
`
`
`
`
`each File Chunk
`
`-—- 308
`
`
`
`
`
`
`
`Process further Obfuscation of Encrypted File
`
`
`
`
`
`Chunks, if any
`
`Page 4 of 30
`
`Netskope Exhibit 1001
`
`Page 4 of 30
`
`Netskope Exhibit 1001
`
`

`

`
`U.S. Patent
`
`
`
`
`Mar.8, 2016
`
`
`
`
`Sheet 4 of 12
`
`
`
`US 9,280,678 B2
`
`Evaluate Query to Extract Search Keywords
`
`
`
`
`
`i Start Searching in Encrypted Files
`
`
`
`
`
`Receive Search Query
`
`
`
`
`
`
`
`
`
`
`
`
`
`_ 354
`fo
`
`
`
`
`
`Convert Search Keywords into Searchable
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`— 356
`
`
`~~ 358
`
`
`
`
`
`
`
`
`
`
`
`
`
`Indexes
`Execute Query Based on Searchable indexes
`Receive File Indexes as Resulis
`
`
`End
`
`
`Fig. 3B
`
`Page 5 of 30
`
`Netskope Exhibit 1001
`
`Page 5 of 30
`
`Netskope Exhibit 1001
`
`

`

`
`U.S. Patent
`
`
`
`
`Mar.8, 2016
`
`
`
`
`Sheet 5 of 12
`
`
`
`US 9,280,678 B2
`
`
`
`
`
`noeiid)yo(omAjpen}
`
`aiqeucives
`
`vondAIoua
`
`ered
`
`Page 6 of 30
`
`Netskope Exhibit 1001
`
`Page 6 of 30
`
`Netskope Exhibit 1001
`
`
`

`

`
`U.S. Patent
`
`
`
`
`Mar.8, 2016
`
`
`
`
`Sheet 6 of 12
`
`
`
`US 9,280,678 B2
`
`560 ™,
`
`
`
`
`
`
`{Start Fle Upload Onie Cloud Based \
`
`\
`
`Containers
`
`
`
`
`
`
`
`
`Assign Policy to the User
`
`
`
`
`
`Divide the File into Chunks
`
`v7 BIG
`
`_-~ 520
`/
`
`_—~ 846
`
`
`
`Containers Based on the Policy
`
`
`
`
`
`
`Store File Chunks across one or more
`
`
`
`
`
`
`
`
`End
`
`
`Fig. 5
`
`Page 7 of 30
`
`Netskope Exhibit 1001
`
`/ E
`
`
`
`
`
`
`
`ncrypt File Chunks based on the Policy such
`
`
`
`
`that each Chunk is Searchable
`
`
`
`Page 7 of 30
`
`Netskope Exhibit 1001
`
`

`

`
`U.S. Patent
`
`
`
`
`Mar.8, 2016
`
`
`
`
`Sheet 7 of 12
`
`
`
`US 9,280,678 B2
`
`600 ™,
`
`
`
`
`
`Start Search in Encrypted Files
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Receive Search Query for Searching Files
`
`
`
`
`
`Stored acrass one or more Cloud Based
`eeeeennnennnnneeeeennnCOPANOFSee
`
`
`
`
`
`
`Retrieve Policy Details of User
`
`
`
`
`
`Searchable indexes
`
`
`
`
`
`Convert Search Query Elemants into
`
`
`
`
`
`
`-—~ G40
`
`
`650
`
`
`
`
`
`Execute Query on Data Stored on Containers
`
`
`
`
`Based on Searchable Indexes
`
`
`
`
`
`
`Retrieve Files Matching Query
`
`
`
`|
`
`Fig. 6
`
`Page 8 of 30
`
`Netskope Exhibit 1001
`
`Page 8 of 30
`
`Netskope Exhibit 1001
`
`

`

`
`U.S. Patent
`
`
`
`
`Mar.8, 2016
`
`
`
`
`Sheet 8 of 12
`
`
`
`US 9,280,678 B2
`
`706 ™,
`
`
`
`
`
`Based Containers
`
`
`
`
`
`Start File Download from Cloud
`
`
`
`
`
`
`
`
`Receive Request for File to be Downloaded
`
`
`
`
`
`
`Retrieve Policy Details of User
`
`
`
`
`
`
`
`- 736
`
`
`
`
`
`
`WN Boas User Policy Allow ™
`
`Downloading?
`
`
`
`
`
`778
`
`
`
`— 720
`
`
`740
`
`
`
`
`
`
`
`
`Extract Matching File Chunks from Multiole
`
`
`
`
`
`
`
`Containers of Cloud Based Platform
`
`
`
`
`
`Save File Chunks on Local Drive
`
`
`
`
`
`
`
`Fig. 7
`
`Page 9 of 30
`
`Netskope Exhibit 1001
`
`Page 9 of 30
`
`Netskope Exhibit 1001
`
`

`

`
`U.S. Patent
`
`
`
`Mar.8, 2016
`
`Sheet 9 of 12
`
`
`
`US 9,280,678 B2
`
`
`
`
`
`
`
`BOP/SHUNUDpaydAiouTyaqeyueas
`
`sHnsay
`
`SyNSeY
`
`uondAiougUFBUIE}TUOD|}AQUIE}UODJOPIACLeENEDBIqeyoiees
`
`
`
`
`UF@UIBLUOD|1J@UIBRUIODLaPAOIeNOK)
`
`ScaLLH synsen
`UCHEIDGINteleuibug
`
`Seid/SyuNUGpeidAiougeiqeyowes
`
`
`
`SeidssyunuGpeldAsougaiqeyguess
`
`
`
`eseqeiegAonGdi|AxXOldScLH{UB
`aseqejedAaiiog|AXOid
`
`aOeYoIaS
`
`neydAuous
`
`Sey/SYUDUD
`
`synsey
`
`
`
`
`
`
`
`
`
`
`
`UCHEIDBINId
`
`auiduyuondAsug
`
`aOeUQES
`
`40J@SMOIQ
`
`vaopeonddy
`
`ae008
`
`AdYOdUNS
`
`EysixgAnod
`
`appeodny
`
`30JDSMGG
`
`WSS
`
`voneoyddy
`
`Page 10 of 30
`
`Netskope Exhibit 1001
`
`Page 10 of 30
`
`Netskope Exhibit 1001
`
`
`
`
`
`
`
`

`

`U.S. Patent
`
`Mar.8, 2016
`
`Sheet 10 of 12
`
`US 9,280,678 B2
`
`
`
`
`
`Seuant)GuuaeyiSeyUMEY
`
`LUJOURIUOS1sourequesy
`ageyoiwes
`SianpBuseyP|SuIuTEWell
`
`
`JOfBegpails*eNOWoL
`
`uoAIenDumDATZIOUOSSaNOpUT
`
`YORECgnnnnnh
`
`JBDIADIE|GNGED
`
`UOHEIDOYYIlSuibugvoydAnug
`
`BOHBIDOYYflv
`
`auibusuondAsouy
`
`
`asequyegAstiod}|AxGldSdLiH||qUaY}D)f40288MORg
`
`
`|aseqeec]ADnGeAXOldSchLLH
`
`
`
`ORSJOPIEGpapeuoKianguny
`
`KEPUPTOIBSS
`
`LIS?
`
`SSuSnoH
`
`SIQEUORSS
`
`
`
`AiBneyByesiy
`
`ASHOdSH
`
`UUJBUIZ]UOT}ABUIE}UOT
`
`
`
`JODAGIEPNA
`
`BIQCYUBES
`
`LISAADH
`
`BleUMUESS
`
`40JESMAQ
`
`FUDYSD
`
`uoneaiddy
`
`RL006
`
`6614
`
`uRnsiongAiddy
`
`i
`
`
`
`HEC)OPE)JOH
`
`IFYOO}O}suOKBuadr)
`
`BUBIUD
`
`SUnsey
`
`synsay
`
`Oody
`
`Page 11 of 30
`
`Netskope Exhibit 1001
`
`Page 11 of 30
`
`Netskope Exhibit 1001
`
`
`
`
`
`
`
`
`
`
`
`

`

`
`U.S. Patent
`
`
`
`Mar.8, 2016
`
`Sheet 11 of 12
`
`
`
`US 9,280,678 B2
`
`
`
`aepcennc~eneUIBUIBRUOS||SOLHEYUOTJOpIAdlgPHDajqzualeesesequicAoYOd|AXOUdSALLHWUSHD
`
` OLbi
`
`
`..eatremiyeMOHEIDOWYyflyaubuguondéioug
`LOBEIDOI!flyauiSuguondéisugway
`
`
`
`..uoneoyddy
`
`UJBUIB}UOS||2OLHEIUOD
`
`fODIAOldPOEsiqHUcuedc
`
`eseqEiegAouOd|AXOJdSALIH
`
`JOJISMOLG
`
`uoeoyady
`
`
`
`EASIXTABHOR
`
`
`
`Bil}DEQTUMOG
`
`"
`
`
`
`
`
`
`
`
`
`KODQ01
`
`synsey
`
`
`
`ysonbeypeopimogat
`
`peqwumocd)st
`
`ysonbay
`
`synsey
`
`
`
`papegiumageqo}OHa
`
`
`
`synsew
`
`SHNSOY
`
`JOJ9SMOIQ
`
`Page 12 of 30
`
`Netskope Exhibit 1001
`
`Page 12 of 30
`
`Netskope Exhibit 1001
`
`
`
`
`
`
`
`

`

`
`U.S. Patent
`
`
`
`
`Mar.8, 2016
`
`
`
`
`Sheet 12 of 12
`
`
`
`US 9,280,678 B2
`
`TOON
`
`
`
`
`
`
`
`External Storage Device
`
`1440
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
` Read-Only
`Mass Storage
`
`
`Main Memory
`Device
`Memory
`
`1125
`Y445
`
`
`
`
`
`4420
`
`
`
`
`ut
`i
`i,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Communication
`
`
`Procassor
`
`
`
`Pori(s}
` 4405
`
`4116
`
`
`
`
`
`
`
`
`Fig. 11
`
`
`
`Page 13 of 30
`
`Netskope Exhibit 1001
`
`Page 13 of 30
`
`Netskope Exhibit 1001
`
`

`

`
`1
`SECURE CLOUD STORAGE DISTRIBUTION
`
`
`
`AND AGGREGATION
`
`
`
`
`
`COPYRIGHT NOTICE
`
`
`
`
`
`
`
`
`
`
`Contained herein is material that is subject to copyright
`
`
`
`
`
`
`
`
`protection. The copyright owner has no objection to the fac-
`
`
`
`
`
`
`simile reproduction of the patent disclosure by any person as
`
`
`
`
`
`
`
`
`
`it appears in the Patent and Trademark Office patentfiles or
`
`
`
`
`
`
`
`
`
`records, but otherwise reserves all rights to the copyright
`
`
`
`
`
`whatsoever. Copyright© 2013, Fortinet, Inc.
`
`me 0
`
`
`
`BACKGROUND
`
`
`
`20
`
`55
`
`1. Field
`
`
`
`
`
`
`
`Embodiments of the present invention generally relate to
`
`
`
`
`
`
`
`cloud based data storage. In particular, embodiments of the
`
`
`
`
`
`
`
`
`present invention relate to systems and methods for use of
`
`
`
`
`
`
`
`vendor independent secure cloud storage distribution and
`
`aggregation.
`
`
`
`
`2. Description of the Related Art
`
`
`
`
`
`
`Computing devices have traditionally executed applica-
`
`
`
`
`
`
`
`
`
`in
`tions and data services locally on respective devices,
`
`
`
`
`
`
`
`
`which,as the data is accessed, processed, stored, cached, etc.,
`
`
`
`
`
`
`
`
`
`
`it may travel within the devices over local buses, interfaces
`
`
`
`
`
`
`
`
`
`and other data pathways. As a result, users of such devices did
`
`
`
`
`
`
`
`
`not have to worry about interference or exposure of user data
`
`
`
`
`
`
`
`
`
`
`unless the device itself was lost or stolen. However, with the
`
`
`
`
`
`
`
`
`
`growing amountof data that is generated and with the evolu-
`
`
`
`
`
`
`
`
`tion of online/Internet based services and cloudstorageplat-
`
`
`
`
`
`
`
`forms, applications, content, and services are increasingly
`
`
`
`
`
`
`
`being movedto network providers who perform someorall of
`
`
`
`
`
`
`
`
`a given service on behalf of a user’s devices. In such cases, a
`
`
`
`
`
`
`
`
`
`user may become concerned with who can access, or poten-
`
`
`
`
`
`
`
`
`
`tially worse, interfere with, the user’s data whileit is uploaded
`
`
`
`
`
`
`
`
`
`to a service, while it is stored by the service, or whileit is
`retrieved from the service.
`
`
`
`
`
`
`
`
`
`
`
`
`
`Tt has been recognized that while existing cloud storage
`
`
`
`
`
`
`
`
`providers offer a virtually infinite storage capacity, data own-
`
`
`
`
`
`
`
`
`ers seek geographical and provider diversity in data place-
`
`
`
`
`
`
`
`
`
`mentso that they are nottied to a particular service provider
`
`
`
`
`
`
`
`
`and havethe flexibility to switch to another provider without
`
`
`
`
`
`
`
`
`losing data or making significant efforts in data transition.
`
`
`
`
`
`
`
`
`Moreover, with the increasingcriticality of data being stored,
`
`
`
`
`
`
`expectations of users to have more reliable mechanisms in
`
`
`
`
`
`
`
`place to ensure availability and durability of the content are
`
`
`
`
`
`
`
`
`also on the rise. On similar lines, instead of storing data within
`
`
`
`
`
`
`
`
`
`a single cloud, it may also be desired by users to store data
`
`
`
`
`
`
`
`across multiple cloud platforms to ensure more security,
`
`
`
`
`
`
`
`redundancy, and reduction in potential threat of data compro-
`mise.
`
`
`
`
`
`
`Furthermore, storage of data in an unencrypted formatis
`
`
`
`
`
`
`
`
`
`
`alwaysat the risk of a network attack that may leadto the data
`
`
`
`
`
`
`
`being compromised. Storage of encrypted data, on the other
`
`
`
`
`
`
`
`
`hand, using existing technologies, makes thefiles, folders,
`
`
`
`
`
`
`
`filenames, and content
`thereof unsearchable and hence
`
`
`
`
`
`
`
`unfriendly for user access. Existing encryption techniques
`
`
`
`
`
`
`
`
`also expose the encrypted content to frequency analysis
`
`
`
`
`
`
`
`
`attacks. Moreover, since the could providers control
`the
`
`
`
`
`
`
`
`
`
`encryption keys, the data in the cloud can be exposedto attack
`
`
`
`
`
`
`
`
`
`within the cloud, insider jobs and subpoena—all without the
`
`
`
`
`knowledge or consent of the data owner.
`
`
`
`
`
`
`
`Existing techniques for managing distribution and aggre-
`
`
`
`
`
`
`
`gation of content stored by a cloud provider also necessitate
`
`
`
`
`
`
`
`service provider and/or vendorspecific application program-
`
`
`
`
`
`
`
`ming interfaces (APIs) to be incorporated for storage, access,
`
`
`
`
`
`
`
`and processing of the content, making present systemsrigid
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`US 9,280,678 B2
`
`
`2
`
`
`
`
`
`
`
`and non-flexible to implementation of policies that allow
`
`
`
`
`
`
`
`
`storage of data across different service providers, allow dif-
`
`
`
`
`
`
`
`
`
`ferent cloud storage access rights across users and computing
`
`
`
`
`
`
`
`devices, allow searching of downloaded encrypted data
`
`
`
`
`
`
`
`
`across cloud service vendors, among other desired activities.
`
`SUMMARY
`
`
`
`
`
`
`
`
`
`
`
`Methods and systems are described for vendor indepen-
`
`
`
`
`
`
`
`
`dent and secure cloud storage distribution and aggregation.
`
`
`
`
`
`
`According to one embodiment, a generalized application pro-
`
`
`
`
`
`
`gramming interface (API) is provided by a cloud storage
`
`
`
`
`
`
`
`gateway device that is logically interposed between one or
`
`
`
`
`
`
`
`
`more third-party cloud storage platforms and users of an
`
`
`
`
`
`
`
`
`
`enterprise. The API facilitates storing of files, issuing of
`
`
`
`
`
`
`
`
`
`search requests againstthe files andretrieval of content ofthe
`
`
`
`
`
`
`
`files. A file storage policy is assigned by the cloud storage
`
`
`
`
`
`
`
`
`
`gateway device to each user. The assignedfile storage policy
`
`
`
`
`
`
`
`defines access rights, storage diversity requirements and a
`
`
`
`
`
`
`
`type of encryption to be applied to files for the corresponding
`
`
`
`
`
`
`
`user. Responsive to receiving, via the generalized API, a
`
`
`
`
`
`
`
`
`
`request to store a file, (i) creating, by the cloud storage gate-
`
`
`
`
`
`
`
`way device, searchable encrypted data corresponding to con-
`tentofthe file and/or metadata associated with the file based
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`on the assignedfile storage policy; and (11) distributing, by the
`
`
`
`
`
`
`
`
`cloud storage gateway device, the searchable encrypted data
`
`
`
`
`
`
`
`
`amongone or more third-party cloud storage platforms based
`
`
`
`
`
`
`on the storage diversity requirements defined by the assigned
`
`
`
`file storage policy.
`
`
`
`
`Other features of embodiments of the present disclosure
`
`
`
`
`
`
`
`will be apparent from accompanying drawings and from
`
`
`
`
`detailed description that follows.
`
`
`
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`In the Figures, similar components and/or features may
`
`
`
`
`
`
`
`have the samereferencelabel. Further, various components of
`
`
`
`
`
`
`
`
`the same type may be distinguished by following the refer-
`
`
`
`
`
`
`
`
`ence label with a secondlabel that distinguishes among the
`
`
`
`
`
`
`
`
`similar components. If only the first reference label is used in
`
`
`
`
`
`
`
`the specification, the description is applicable to any one of
`
`
`
`
`
`
`
`
`
`the similar components having the samefirst reference label
`
`
`
`
`irrespective of the second reference label.
`
`
`
`
`
`
`
`FIG. 1 illustrates an exemplary network architecture in
`
`
`
`
`
`accordance with an embodimentof the present invention in
`
`
`
`
`
`accordance with an embodimentof the present invention.
`
`
`
`
`
`FIG. 2 illustrates exemplary functional modules of the
`
`
`
`
`
`
`proposed policy-based framework for secure cloud storage
`
`
`
`
`
`distribution and aggregation in accordance with an embodi-
`
`
`
`mentof the present invention.
`
`
`
`
`
`
`FIG.3A illustrates an exemplary flow diagram for gener-
`
`
`
`
`
`
`
`ating searchable encrypted files in accordance with an
`
`
`
`embodimentof the present invention.
`
`
`
`
`
`
`FIG.3B illustrates an exemplary flow diagram for process-
`
`
`
`
`
`
`
`ing search queries for searching encrypted files in accordance
`
`
`
`
`with an embodimentof the present invention.
`
`
`
`
`
`
`FIGS. 4A-C illustrate an example showing generation of
`
`
`
`
`
`
`
`searchable indices from search queries in order to execute
`
`
`
`
`
`
`
`
`
`search queries on encrypted files in accordance with an
`
`
`
`embodimentof the present invention.
`
`
`
`
`
`
`
`
`FIG.5 illustrates a flow diagram for uploading one or more
`
`
`
`
`
`
`
`
`files onto multiple containers provided by one or more cloud
`
`
`
`
`
`storage providers in accordance with an embodimentof the
`
`
`present invention.
`
`
`
`
`
`
`
`FIG.6 illustrates a flow diagram for executing search que-
`
`
`
`
`
`
`
`ries on encryptedfiles stored as one or more containers pro-
`
`
`
`
`
`
`
`
`
`
`
`
`
`Page
`
`14 of 30
`
`Netskope Exhibit 1001
`
`Page 14 of 30
`
`Netskope Exhibit 1001
`
`

`

`
`3
`
`
`
`
`
`
`
`
`vided by cloud storage providers in accordance with an
`
`
`
`embodimentof the present invention.
`
`
`
`
`
`
`
`FIG. 7 illustrates a flow diagram for downloading files
`
`
`
`
`
`
`from cloud-based storage containers in accordance with an
`
`
`
`embodimentof the present invention.
`
`
`
`
`
`
`
`FIG.8 illustrates a sequence diagram for uploadingfiles to
`
`
`
`
`
`
`
`cloud-based storage containers
`in accordance with an
`
`
`
`embodimentof the present invention.
`
`
`
`
`
`
`FIG.9 illustrates a sequence diagram for searching search-
`
`
`
`
`
`
`
`able encrypted files that are stored in cloud-based storage
`
`
`
`
`containers in accordance with an embodimentofthe present
`invention.
`
`
`
`
`
`
`
`
`FIG. 10 illustrates a sequence diagram for downloading
`
`
`
`
`
`
`
`
`files from cloud-based storage containers onto local drives/
`
`
`
`
`
`
`
`discs in accordance with an embodimentofthe present inven-
`tion.
`
`
`
`
`
`
`
`
`FIG. 11 is an example of a computer system with which
`
`
`
`
`
`embodiments of the present invention maybe utilized.
`
`
`
`
`
`
`
`
`4
`
`
`
`
`
`According to one embodiment, an encryption module is
`
`
`
`
`
`
`configured to encrypt one or morefiles to be uploaded/stored
`
`
`
`
`
`
`
`
`across one or more cloud platforms based on a policy defined
`
`
`
`
`
`
`by the policy assignment module. In an implementation, a
`
`
`
`
`
`
`
`
`selected policy can be used to define encryption keys, decryp-
`
`
`
`
`
`
`
`
`
`tion keys, and encryption type, among otherattributes for
`
`
`
`
`
`
`
`
`carrying out the encryption of data. According to another
`
`
`
`
`
`
`
`
`embodiment, the encryption module can encrypt each file
`
`
`
`
`
`
`
`and/or content thereof using cryptographic key information
`
`
`
`
`
`
`
`
`such that the encrypted content is searchable across cloud
`
`
`
`
`platforms, making the encryption architecture independent of
`
`
`
`
`
`
`the vendor/service provider of the cloud platforms. Accord-
`
`
`
`
`
`
`
`
`ing to one embodiment, based on the policy defined by the
`
`
`
`
`
`
`
`
`policy assignment module, encryptedfiles can also be down-
`
`
`
`
`
`
`
`loaded by one or a group of authenticated users onto a local
`
`
`
`
`
`
`
`
`
`device such that the downloaded encryptedfiles are available
`
`
`
`
`
`
`
`
`to offline applications, and hence can be searched, controlled,
`
`
`
`
`
`
`
`
`and managed using the keys generated by the encryption
`
`
`
`
`module based onthepolicy.
`
`
`
`
`
`According to an embodiment, a storage moduleis config-
`
`
`
`
`
`
`
`
`
`ured to store the searchable encrypted file within the one or
`
`
`
`
`
`
`
`
`more cloud platforms based on policy selected by the policy
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Systems and methods for a policy-based framework for
`assignment module.
`In an implementation,
`the selected
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`secure cloud storage distribution and aggregation are
`policy can be used to define the manner in which and/or the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`location at which thefile is to be stored (e.g., whetherthefile
`described. Methods and systemsare also providedfor imple-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`is to be stored within a single container or spread across
`menting a policy based framework for encrypting, storing,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`multiple containers and/or whether a copyofthe file is to be
`accessing, querying and managing data across one or more
`
`
`
`
`
`
`
`
`
`
`
`
`
`stored on a local device for offline usage). As the storage
`cloud platforms. According to one embodiment, a searchable
`
`
`
`
`
`
`
`
`
`
`
`
`module can be implemented independentof the cloud service
`encryption gateway framework provides assignment of a
`
`
`
`
`
`
`
`
`
`
`
`
`
`providers without using application programminginterfaces
`policy from a group ofpolicies stored in a policy database to
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`(APIs) exposed by the vendors, the encrypted files can be
`one or more users such that the policy not only defines the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`movedto any cloud platform, thereby avoiding vendorlock-
`manner in which the users can access and process content
`in.
`
`
`
`
`
`
`
`
`
`
`
`stored on the cloud, but can also configure the mode in which
`
`
`
`
`
`
`
`
`
`
`
`
`
`According to another embodiment, a management module
`the data is encrypted, stored, searched, and accessed to ensure
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`is configured to control and manage encryption, storage,
`secure and vendor independent cloud management. Embodi-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`access, and processing of cloud storage based on the policy
`ments of the system of the present invention can include a
`
`
`
`
`
`
`
`
`
`
`
`defined by the policy assignment module. In an embodiment,
`policy assignment module, an encryption module, a storage
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`based on userattributes such as the role of the user, a project
`module, and a management module, each of which can be
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`assignedto the user, the user’s need to accessthe data at issue,
`implemented across one or more network devices such as
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`amongother suchattributes, and further based on organiza-
`gateway devices, proxy devices, network controllers, among
`
`
`
`
`
`
`
`other like devices.
`
`
`
`tion level changes and requirements, a policy identified by the
`
`
`
`
`
`
`
`
`
`
`
`
`policy assignment module can be dynamically changed or
`According to one embodiment,
`the policy assignment
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`modified at run-time in order to comply with the organization
`module is configured to assign a policy to one or moreusers,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`requirements and configure the cloud storage for compliance.
`wherethe policy is selected from a group ofpolicies that are
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`According to another embodiment, the system mayfurther
`stored in a database. The selected policy can be used for
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`defining the mannerin whichafile or metadatarelated thereto include a mediation module that is operatively coupled with
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`is to be uploaded, stored, searched, downloaded, and/or pro-
`other modules and is configured to mediate vendor specific
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`cessed in the context of one or more cloud platforms. The
`protocol/APIs therebyfacilitating geographical and provider
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`selected policy can further be used to configure access rights
`diversity in data placement, making the system agnostic with
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ofthe one or moreusers such that the access rights dictate the
`respect to specific cloud vendor APIs and increasing avail-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`manner in which the users can process the uploaded
`ability and durability of the stored data. In another embodi-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`encrypted files. In an instance, a policy can allow a user to
`ment, system of the present disclosure can further include a
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`downloada searchable encryptedfile stored in the cloud to a
`generalized API module that is operatively coupled with the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`local device such as a mobile phone and search the down-
`mediation module and configured to provide a generalized
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`loaded encrypted file on the local device for further process-
`API that can be called by any content/data intensive user
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ing. The policy can further implement key managementpoli-
`application to access content from containers of cloud stor-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`cies across cloud providers and local devices such that no
`age. Generalized API module can allow a single standard
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`vendor lock-in is required and a useris given flexibility to
`thread to multiple users to connect any of their applications
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`transfer content across cloud providers and perform other
`with the proposed system and to perform any of storage,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`desired functions that otherwise require vendor specific
`upload, retrieval, download, modify, search, and other allied
`
`
`
`
`
`
`
`
`
`
`
`
`
`Application Programming Interface (API). According to one
`functions at multiple cloud stores of different cloud service
`
`
`
`
`
`
`
`embodiment, a selected policy can be applied to a group of
`providers.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`users across one or more organizations such that the policy
`In the following description, numerousspecific details are
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`not only controls the mannerin whichthe content is uploaded,
`set forth in order to provide a thorough understanding of
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`stored, and accessed in the cloud but also managesthe rights
`embodiments of the present disclosure. It will be apparent,
`
`
`
`
`
`
`
`
`of a user and the manner in which the user can retrieve and
`
`
`
`
`
`
`
`
`
`
`
`however, to one skilled in the art that embodiments of the
`
`
`
`
`
`
`
`
`
`
`process thefiles.
`present disclosure may be practiced without some of these
`
`
`
`US 9,280,678 B2
`
`DETAILED DESCRIPTION
`
`
`
`
`
`
`
`
`
`
`
`
`20
`
`30
`
`
`
`
`
`40
`
`
`
`50
`
`
`
`
`
`
`
`
`
`Page
`
`15 of 30
`
`Netskope Exhibit 1001
`
`Page 15 of 30
`
`Netskope Exhibit 1001
`
`

`

`
`
`US 9,280,678 B2
`
`
`
`
`
`
`30
`
`50
`
`60
`
`
`5
`
`
`
`
`
`
`specific details. In other instances, well-knownstructures and
`
`
`
`
`
`
`devices are shown in block diagram form.
`
`
`
`
`
`
`Embodiments of the present disclosure include various
`
`
`
`
`
`
`
`
`
`steps, which will be described below. The steps may be per-
`
`
`
`
`
`formed by hardware components or may be embodied in
`
`
`
`
`
`
`machine-executable instructions, which may be used to cause
`
`
`
`
`
`a general-purposeor special-purpose processor programmed
`
`
`
`
`
`
`with the instructions to perform the steps.
`
`
`
`
`
`Alternatively, the steps may be performed by a combina-
`
`
`
`
`
`
`tion of hardware, software, firmware and/or by human opera-
`tors.
`
`
`
`
`
`
`Embodiments of the present invention may be provided as
`
`
`
`
`
`
`
`
`a computer program product, which may include a machine-
`
`
`
`
`
`
`readable storage medium tangibly embodying thereon
`
`
`
`
`
`
`
`instructions, which may be used to program a computer (or
`
`
`
`
`
`
`
`other electronic devices) to perform a process. The machine-
`
`
`
`
`
`
`
`
`
`readable medium may include, but is not limited to, fixed
`
`
`
`
`
`
`
`
`(hard) drives, magnetic tape, floppy diskettes, optical disks,
`
`
`
`
`
`
`
`20
`compact disc read-only memories (CD-ROMs), and mag-
`
`
`
`
`
`
`neto-optical disks, semiconductor memories, such as ROMs,
`
`
`
`
`
`
`PROMs, random access memories (RAMs), programmable
`
`
`
`
`
`
`read-only memories (PROMs), erasable PROMs (EPROMs),
`
`
`
`
`
`
`electrically erasable PROMs (EEPROMs), flash memory,
`
`
`
`
`
`
`magnetic or optical cards, or other type of media/machine-
`
`
`
`
`
`
`
`readable medium suitable for storing electronic instructions
`
`
`
`
`
`
`
`(e.g., computer programming code, such as softwareor firm-
`
`
`
`
`
`
`ware). Moreover, embodiments ofthe present disclosure may
`
`
`
`
`
`
`
`also be downloaded as one or more computer program prod-
`
`
`
`
`
`
`
`
`ucts, wherein the program may betransferred from a remote
`
`
`
`
`
`
`computer to a requesting computer by way of data signals
`
`
`
`
`
`
`embodiedin a carrier wave or other propagation medium via
`
`
`
`
`
`
`
`acommunicationlink (e.g., amodem or network connection).
`
`
`
`
`
`
`
`In various embodiments,
`the article(s) of manufacture
`
`
`
`
`
`
`
`
`(e.g., the computer program products) containing the com-
`
`
`
`
`
`
`
`
`puter programming code maybe used by executing the code
`
`
`
`
`
`
`directly from the machine-readable storage medium or by
`
`
`
`
`
`
`
`
`copying the code from the machine-readable storage medium
`
`
`
`
`
`
`
`into another machine-readable storage medium (e.g., a hard
`
`
`
`
`
`
`
`disk, RAM,etc.) or by transmitting the code on a network for
`
`
`
`
`
`
`
`remote execution. Various methods described herein may be
`
`
`
`
`
`
`practiced by combining one or more machine-readable stor-
`
`
`
`
`
`
`
`
`
`age media containing the code according to the present dis-
`
`
`
`
`
`
`closure with appropriate standard computer hardware to
`
`
`
`
`
`
`
`
`execute the code contained therein. An apparatus for practic-
`
`
`
`
`
`
`
`
`ing various embodiments of the present disclosure may
`
`
`
`
`
`
`
`
`involve one or more computers (or one or more processors
`
`
`
`
`
`
`
`within a single computer) and storage systems containing or
`
`
`
`
`
`
`having network access to computer program(s) coded in
`
`
`
`
`
`
`
`
`accordance with various methods described herein, and the
`
`
`
`
`
`
`methodsteps ofthe present disclosure could b

Accessing this document will incur an additional charge of $.

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

Accept $ Charge

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.

We are unable to display this document.

PTO Denying Access

Refresh this Document
Go to the Docket