throbber
United States Patent
`Anand et al.
`
`[19]
`
`US006044466A
`Patent Number:
`Date of Patent:
`
`[11]
`[45]
`
`6,044,466
`Mar. 28, 2000
`
`[54] FLEXIBLE AND DYNAMIC DERIVATION OF
`PERMISSIONS
`
`[75] Inventors: RangachariAnand, Teaneck, N.J.;
`Frederique-Anne Giraud, Ossining,
`N.Y.; Nayeem Islam, Thornwood, N.Y.;
`Trent Ray J aeger, Croton-on Hudson,
`NY; Jochen Liedtke, Ossining, NY.
`
`[73] Assignee: International Business Machines
`Corp., Armonk, NY.
`
`[21] Appl. No.: 08/979,807
`[22] Filed:
`Nov. 25, 1997
`
`[51] Int. Cl.7 .................................................... .. G06F 12/14
`[52] US. Cl. ............................................................ .. 713/200
`[58] Field of Search ................................... .. 713/200, 201;
`709/225, 229; 364/2225, 286.4, 286.5;
`711/163; 707/9
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,265,221 11/1993 Miller .................................... .. 395/725
`5,335,346
`8/1994
`395/600
`5,649,099
`7/1997 Theimer et al. ................. .. 395/18701
`5,911,143
`6/1999 Deinhart et al. ...................... .. 707/103
`
`5,924,094
`
`7/1999 simei . . . . . . . . . . . .
`
`. . . . .. 707/10
`
`7/1999 Hsieh .......... ..
`5,925,126
`5,966,715 10/1999 Sweeney et al.
`5,968,177 10/1999 Batten-Carew et al. .
`
`713/200
`707/203
`.. 713/201
`
`OTHER PUBLICATIONS
`
`Yellin, “Low Level Security in Java”, http://java.sun.com/
`sfaq/veri?erhtml, pp 1—12, Dec. 1996.
`Bank, “Java Security”,
`http://www—swiss.ai.mit.edu/
`~jbank/javapaper.html, pp 1—11, Dec. 1995.
`Thomas, “The Navigator Java Environment: Current Secu
`rity Issues”, http://developer.netscape.com/docs/manuals/
`javasecurityhtml, pp. 1—3, Jan. 1996.
`Jaeger et al., “Implementation of a Discretionary Access
`Control Model for Scrip—based Systems”, 8th IEEE Com
`puter Security Foundations Workshop Proceedings, pp
`70—84, Jun. 1995.
`
`Sandhu et al., “Role—Based Access Control: A Multi—Di
`mensional View”, IEEE 10th Annual Computer Security
`Applications Conference Proceedings, pp 54—62, Dec. 1994.
`
`Anand et al., “A Flexible Security Model for Using Internet
`Content”, IEEE The Sixteenth Symposium on Reliable
`Distributed Systems Proceedings, pp 89—96, Oct. 1997.
`Unknown, “HotJava(tm): The Security Story”, http://java
`.sun.com/sfaq/may95/security.html, pp. 1—7, May 1995.
`
`Trent J aeger, Aviel D. Rubin, Atul Prakash, “Building Sys
`tems That Flexibly Control Downloaded Executable Con
`tent”, USENIX Association, 6th USENIX Security Sympo
`sium, pp. 131—148.
`
`Nayeem Islam, Rangachari Anand, Trent J aeger and Josyula
`R. Rao, “A Flexible Security System For Using Internet
`Content”, IEEE Software, Sep./Oct. 1997, pp. 52—59.
`
`Primary Examiner—Robert W. Beausoliel, Jr.
`Assistant Examiner—Stephen C. Elmore
`Attorney, Agent, or Firm—Scully, Scott, Murphy & Presser;
`Kevin N. Jordan, Esq.
`
`[57]
`
`ABSTRACT
`
`A dynamic derivation mechanism is de?ned which enables
`limited permissions to be dynamically and ?exibly derived
`for executables based upon their authenticated description.
`The dynamic derivation mechanism uses the authenticated
`description to determine the maximal permissions that indi
`vidual principals can delegate to the content. A principal’s
`maximal permissions for content de?ne a superset of the
`rights that that principal will actually delegate to that con
`tent. Although the maximal permissions are derived from
`prede?ned speci?cations, the speci?cations can be sensitive
`to runtime state on the downloader’s system or previous
`delegations to enable the dynamic (i.e., runtime) derivation.
`Multiple principals can delegate a subset of their maximal
`permissions for the executable content. The mechanism uses
`policy for combining the delegated permissions into the
`content’s runtime permissions.
`
`44 Claims, 11 Drawing Sheets
`
`nmiiiiailiiii
`riimipa
`IL]
`
`c?lllelll
`Description
`1L
`
`:i.
`'7
`
`0n Maximal Pl‘lIlllSE-IOD Policy
`Graph i0! 0?, : rt
`
`w
`
`(Vigil
`
`Sim‘f' lypF 6i
`Maximal Fermi.
`
`Maximal Pernils
`Maximal PPl'mlS
`
`imiiiiil
`Peiiiiissimii @
`
`‘Dull/e iiiiiimul PHWSSHHS ZZUJ
`
`Petitioner Apple Inc. - Ex. 1049, p. 1
`
`

`
`U.S. Patent
`
`Mar. 28,2000
`
`Sheet 1 0f 11
`
`6,044,466
`
`Downloading
`Principal
`112
`
`Content
`Description
`22
`
`Site
`Security Policy
`29
`
`Protection
`Domain
`Derivation
`Server
`5.0.
`
`Dynamic
`Derivation
`Mechanism
`
`L99
`
`Derivation Instance lQQ
`(Figs. 6,7)
`Maximal Permissions 129
`
`Derivation Instance @
`(Figs. 6,7)
`Current Permissions L49
`
`FIG.1
`
`Petitioner Apple Inc. - Ex. 1049, p. 2
`
`

`
`U.S. Patent
`
`Mar. 28,2000
`
`Sheet 2 0f 11
`
`6,044,466
`
`Downloading
`Principal
`m
`
`Content
`Description
`120
`
`Site
`Security Policy
`1_39
`
`Dynamic
`Derivation
`Mechanism
`1-09
`
`Create Derivation Instance
`(Fig-7)
`2_0O_
`J’
`Retrieve Permissions Propositions
`(Fig-8)
`3L0
`
`Derive Maximal Permissions
`(Fig.9)
`Q32
`I
`Obtain Current Permissions
`Contributions (Fig.12) @
`I
`Compute Current Permissions
`Q2
`
`Derivation Instance l_6_0
`
`Derivation Instance L6__O
`
`Maximal Permissions 1%
`
`Current Permissions ED
`
`Petitioner Apple Inc. - Ex. 1049, p. 3
`
`

`
`U.S. Patent
`
`Mar. 28,2000
`
`Sheet 3 0f 11
`
`6,044,466
`
`Site Security Policy @
`
`Current Permission
`Propositions Q9
`
`.
`P0110)’ Graphs 3 0
`
`l
`
`1
`
`Equation _301
`(P1 U P2) n P3
`Constraint
`Propositions
`_Q:2,_
`If X_>Then Y
`
`__
`
`Principal @
`
`Traversal Method
`3_2g
`_
`.
`C0mblna§l2€1 Method
`
`Directed Graph %
`
`Access Control List
`i251
`
`Maximal Permission
`Propositions
`§_1_0
`
`Permissions
`(Fig.5)
`
`3Q
`
`1
`
`l
`
`Equations w
`
`Constraint
`Proposition g; r_
`
`Permissions/Node
`.
`
`O
`
`0
`.
`
`Petitioner Apple Inc. - Ex. 1049, p. 4
`
`

`
`U.S. Patent
`
`Mar. 28,2000
`
`Sheet 4 of 11
`
`6,044,466
`
`Policy Graph Directed Graph 32-4
`
`Attribute
`$1.9
`ALL
`
`Manufacturer
`
`Qt]
`entry : PB
`Value
`: IBM Access Control List
`= System Admin RW
`IBM
`4_4(_>
`
`401/ £39
`
`Node 400
`
`* _ A
`
`Value
`:Netscalm
`
`Description
`W Value
`—— N‘ide n. : IBM
`2%
`£1.03
`
`\
`_
`entry —¢
`
`Value entryIPN
`:Netscape
`
`Application
`Class
`__
`
`Value
`: Gam€s
`520:
`
`entry : PC
`
`Application
`Name
`
`entry I PX
`Value
`I Doom
`119A
`
`Petitioner Apple Inc. - Ex. 1049, p. 5
`
`

`
`U.S. Patent
`
`Mar. 28,2000
`
`Sheet 5 of 11
`
`6,044,466
`
`Permissions Structure
`139
`
`Positive Rights:
`2.52
`Negative Rights:
`96o
`Transforms:
`in
`
`Object Group
`El
`Object Group
`our
`Principal
`Q11
`
`Operations
`2152
`Operations
`263
`Action
`so
`
`Limit
`5111
`
`Result
`.57_3
`
`FIG.5
`
`Derivation lnstance
`Structure
`
`Downloading Principal 11
`
`Content Description
`
`Site Security Policy
`
`1 0
`
`l O
`
`Current Permissions
`
`1 O
`
`Maximal Permissions
`
`1 O
`
`FIG.6
`
`Petitioner Apple Inc. - Ex. 1049, p. 6
`
`

`
`U.S. Patent
`
`Mar. 28,2000
`
`Sheet 6 0f 11
`
`6,044,466
`
`Downloading
`Principal
`11_0
`
`Content
`Description
`L32
`
`Site
`Security
`Policy Q9
`
`Create Derivation Instance
`M
`
`Set DI Downloading
`PrincipalzllO
`m
`
`Set DI Content
`Description1l20
`221
`
`Set DI Site
`Security Policy=l30
`m
`
`Set remaining attributes
`to N I L m
`
`l
`
`Derivation Instance
`LE
`
`(Create Derivation Instance 160)
`
`Petitioner Apple Inc. - Ex. 1049, p. 7
`
`

`
`U.S. Patent
`
`Mar. 28,2000
`
`Sheet 7 0f 11
`
`6,044,466
`
`Downloading
`Principal
`11_O
`
`Content
`Description
`1_2_Q
`
`Site
`Security
`Policy Q)
`
`Retrieve the Current
`Retrieve the Maximal
`Proposition Policy Graph
`Proposition Policy Graph
`for the Downloading
`for the Downloading
`Principal
`w Principal
`@
`
`Derive the Maximal
`Permissions Proposition
`from the Policy Graph
`(Figll)
`g9
`
`Derive the Current
`Permissions Proposition
`from the Policy Graph
`(Figll)
`@
`
`Maximal
`Permissions
`Proposition
`m
`
`Current
`Permissions
`Proposition
`m
`
`(Retrieve Permission Propositions 210)
`
`Petitioner Apple Inc. - Ex. 1049, p. 8
`
`

`
`U.S. Patent
`
`Mar. 28,2000
`
`Sheet 8 of 11
`
`6,044,466
`
`Downloading
`Principal
`1_1_0
`l
`
`Content
`Description
`1%
`l
`
`Maximal
`Site
`Permissions
`Security
`Policy Q9 Proposition 3_()
`l
`
`Retrieve Contributing
`Principals (CP) (Fig.10)
`
`91
`
`S t: M . P
`'
`'
`S t: ¢>
`22g
`e
`izzbx
`ermission e
`Max.:# of Contributing Principals
`
`Get Maximal Permission Policy
`Graph for CPi I PGi
`l
`Derive Maximal Permission Contribution
`from PGi using Content Description
`and Downloading Principal I result i
`(Fig.1l)
`9_4Q
`
`9_3Q
`
`l
`Store type of CPi and result i in
`Maximal Permission Set
`
`95_()
`
`Compute Maximal Permissions from
`Maximal Permission Set and
`Maximal Permission Propositions w
`l
`
`l
`Maximal
`Permissions Set Q8_0
`
`l
`Maximal
`Permissions
`
`Q9
`
`(Derive Maximal Permissions 220)
`
`Petitioner Apple Inc. - Ex. 1049, p. 9
`
`

`
`U.S. Patent
`
`Mar. 28,2000
`
`Sheet 9 0f 11
`
`6,044,466
`
`Maximal
`Permissions
`Propositions
`
`3 0
`
`Get Equation from
`Maximal Permissions
`Proposition
`1010
`
`Set: iIO
`Contributing Principals I nill
`Max.=# of equation elements
`
`112.0
`
`Yes
`
`If
`not Operand
`11E)
`
`Collect into
`Contributing Principals
`1&9
`
`Contributing
`Principals
`11M.)
`
`(Retrieve Contributing Principals)
`
`FIG.1O
`
`Petitioner Apple Inc. - Ex. 1049, p. 10
`
`

`
`U.S. Patent
`
`Mar. 28,2000
`
`Sheet 10 of 11
`
`6,044,466
`
`Policy Graph
`3%
`l
`
`Description
`LE)
`
`-
`l
`Set Results to Null
`11_10
`l
`
`Select Next Node
`——> to visit (Traversal
`Method) w
`
`Node = Null
`11 0
`
`Access Control
`List Permits Read
`
`by Caller 1140
`
`Yes
`
`Update Result (Using
`Combination Method)
`LE9
`
`Set Error: PG ACL
`Abort Derivation
`_
`
`Result
`1M)
`
`(Derive X from Policy 810)
`
`FIG.11
`
`Petitioner Apple Inc. - Ex. 1049, p. 11
`
`

`
`U.S. Patent
`
`Mar. 28,2000
`
`Sheet 11 0f 11
`
`6,044,466
`
`Current
`Permissions
`Proposition im
`L
`
`Maximal
`Permissions
`l_5_0
`l
`
`Maximal
`Positions Set
`QQQ
`l
`
`Retrieve Current Contributing
`Principals (Fig.10)
`it
`Set Current Permission I <0
`
`ii]
`
`12A
`
`l
`Execute Delegation Mechanism
`for next Contributing Principal ‘
`1220
`
`.
`Errol” Notlfy
`13g)
`
`Return I True
`
`Yes
`
`Put Principal at
`end of Contributing
`Principals
`12A)
`
`If
`Return is
`within Permissions 0
`Principals Entry in Maximal
`Permission Set and Maximal
`Permission
`E529
`
`Principals
`in)
`Yes
`Current Permission Set 1290
`'_
`
`Add mapping of Principal
`Return to Current Permission
`Set and remove Principal from
`Contributing Principals ll
`
`(Obtain Current Permission
`Contributions)
`
`Petitioner Apple Inc. - Ex. 1049, p. 12
`
`

`
`1
`FLEXIBLE AND DYNAMIC DERIVATION OF
`PERMISSIONS
`BACKGROUND OF THE INVENTION
`1. Field of the Invention
`The present invention is related to a mechanism that
`enables ?exible and dynamic derivation of permissions for
`system processes using an authenticated description of the
`executable content run by the process and a site security
`policy that prescribes the principals that can delegate per
`missions to content of that description and limits to the
`permissions that may be delegated.
`
`Object
`
`Operation
`
`Principal
`
`Permissions
`
`Current Permissions
`
`Maximal Permissions
`
`Glossary
`
`Data containing
`entity.
`An action that uses
`an object.
`A system subject
`that performs
`operations on
`objects (e.g., process)
`The set of objects
`and operations that
`(or Access Rights)
`are permitted upon
`those objects for a
`speci?c principal.
`The permissions of
`a principal at the
`current time.
`A principal’s
`permissions that is
`alWays a superset
`of that principal’s
`current permissions.
`
`2. Discussion of the Prior Art
`DoWnloaded executable content are messages that contain
`programs that are executed upon receipt. It is Well-knoWn
`that doWnloaded executable content must be executed With
`limited permissions to prevent content providers from gain
`ing unauthoriZed access to the doWnloading principal’s
`resources (e.g., private ?les).
`HoWever, deriving a proper, limited set of permissions
`that control the execution of content can be dif?cult. There
`are tWo main problems: (1) content can be transient, so their
`permissions must often be derived aneW and (2) no single
`principal has complete knoWledge of What permissions are
`required and safe for content. Content execution systems
`enable the creation of custom content that may only be
`executed once per doWnloading principal, so the derivation
`of permissions must not depend upon complete prior knoWl
`edge of its behavior. Several principals have limited knoWl
`edge about the permissions that a content should be granted,
`but no one has the breadth of knoWledge necessary to derive
`content permissions. For example, system administrators are
`often trusted to specify permissions of processes completely
`(e.g., mandatory access control). HoWever, the control of
`content requires that system administrators knoW hoW a
`custom application needs to access user data. System admin
`istrators cannot knoW the rights needed by custom content
`nor can they knoW the semantics of user ?les, so they are
`limited in the access control decisions they can make. Other
`principals, such as users and application developers, may
`knoW these ansWers, but they are not completely trusted to
`make access control decisions.
`Current systems depend upon prede?ned mappings
`betWeen content and principals. Typically, this mapping is
`
`6,044,466
`
`2
`based upon the identity of an authenticated signer for the
`doWnloaded content. In addition, codebases (i.e., the source
`locations from Which content Was doWnloaded) are also used
`to identify the rights of content. Derivation of protection
`domains is limited because only one input is available and
`this input may be orthogonal to the rights required. The use
`of the signing principal or codebase to derive rights requires
`that all content from this principal or codebase be executed
`With the same rights. Therefore, When neW content is created
`(and its associated public key or codebase) its rights cannot
`be derived even if the manufacturer and application class are
`knoWn. A separation betWeen author identity, location, and
`content description is necessary to overcome this limitation.
`Current systems demonstrate that multiple principals can
`provide information to derive content permissions, but these
`systems lack a model of hoW these principals interact to
`make such decisions. Most systems rely primarily on one
`principal to make access control decisions, such as the
`content execution system developer (see S. Thomas, The
`Navigator Java Environment: Current Security Issues, at
`Web site (URL), http://developer.netscape.com/library/
`documentation/j avasecurity.html, Which describes the
`Netscape 2.0 and 3.0 security model) or the user (see T.
`Jaeger et al., Implementation of a Discretionary Access
`Control Model for Scripted-based Systems, in Proceedings
`of the 8th IEEE Computer Security Foundations Workshop,
`pgs. 70—84, 1995). Most systems provide access control
`mechanisms, but make no commitment to hoW permissions
`are derived (see N. Borenstein, Email With a Mind of Its
`OWn: The Safe-Tcl Language for Enabled Mail, ULPAA ’94
`Proceedings, pgs. 389—402, 1994 as an early example). A
`feW systems use multiple means for deriving permissions.
`FlexxGuard enables users and/or system administrators to
`select permissions for content, but users have the ultimate
`decision-making poWer (see N. Islam et al., A Flexible
`Security System for Using Internet Content, in IEEE
`SoftWare, pgs. 52—59, September, 1997). In Netscape’s Java
`Capabilities API (see Netscape Communications Corp.,
`Introduction to the Capabilities Classes, at URL html for the
`Netscape 4.0 security model), application developers
`request access rights Within a limited domain speci?ed by
`users and/or system administrators. HoWever, users are not
`limited in the rights that they can delegate to content, and the
`content developer can obtain any rights Within the maximal
`permissions by simply activating them. In a Tcl ?exible
`content interpreter (see T. Jaeger et al., Building Systems
`That Flexibly Control DoWnloaded Executable Content, in
`Proceedings of the Sixth USENIX Security Symposium,
`pgs. 131—148, 1996.), system administrators can de?ne hoW
`application developers may limit other content’s access
`rights, but users may not grant rights.
`RBAC models have also been used extensively to repre
`sent access control policy management, but also presently
`lack the ?exibility to express hoW multiple principals can
`affect common access control decisions. RBAC models
`permit principals to assume a role, Which is another principal
`With its oWn permissions. RBAC models are often used by
`system administrators to specify mandatory access control
`(MAC) policies (see R. Sandhu et al., Role-based Access
`Control: A Multi-Dimensional VieW, Proceedings of the 10th
`Computer Security Applications Conference). A MAC sys
`tem partitions the World into tWo groups: (1) system admin
`istrators Who specify access control policy and (2) users that
`are controlled by the policy. Thus, these RBAC models
`enable system administrators to describe the rights available
`to principals. The only decision a principal can make is
`Whether to delegate all these rights to another principal.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`55
`
`60
`
`65
`
`Petitioner Apple Inc. - Ex. 1049, p. 13
`
`

`
`3
`Dynamic creation of permissions to delegate to processes is
`not possible because of the mandatory nature of the systems.
`In addition, current RBAC systems that permit discretionary
`access control use ACLs Which do not enable the creation of
`dynamic principals (because ACLs need to be updated).
`Therefore, users, content execution systems, and application
`developers must develop ad hoc mechanisms for ?exibly
`and dynamically limiting the rights that are to be delegated
`to the content that they execute. There appears to be nothing
`inherently limiting about RBAC that prevents its use in
`dynamic derivation of rights, but current systems are not
`suitable for such derivation.
`
`SUMMARY OF THE INVENTION
`The present invention de?nes a dynamic derivation
`mechanism that enables limited permissions to be dynami
`cally and ?exibly derived for executables based upon their
`authenticated description. The dynamic derivation mecha
`nism uses the authenticated description to determine the
`maximal permissions that individual principals can delegate
`to the content. A principal’s maximal permissions for con
`tent de?ne a superset of the rights that that principal Will
`actually delegate to that content. Although the maximal
`permissions are derived from prede?ned speci?cations, the
`speci?cations may be sensitive to runtime state on the
`doWnloader’s system or previous delegations to enable the
`dynamic (i.e., runtime) derivation. Multiple principals can
`delegate a subset of their maximal permissions for the
`executable content. The mechanism uses policy for combin
`ing the delegated permissions into the content’s current
`permissions.
`Therefore, trusted principals (e.g., system administrators)
`can specify limits in Which users, application developers,
`and content execution systems can ?exibly delegate rights to
`the speci?ed content.
`In accordance With a preferred embodiment, a method is
`de?ned for deriving current and maximal permissions for
`executable content using:
`a. one or more executable content descriptions;
`b. one or more sets of permissions (access rights) that
`describe the operations that executable content can
`perform on objects;
`c. one or more permission equations that compute one set
`of permissions from one or more other sets of permis
`sions;
`d. one or more permission propositions that specify con
`ditions under Which associated modi?cations to per
`missions apply;
`e. one or more policy graphs that associate permissions,
`permission equations, and/or permission propositions
`With graph nodes;
`The method for deriving current and maximal permissions
`comprises the folloWing steps;
`f. deriving one or more permission equations and one or
`more permission propositions from policy graphs;
`g. deriving of one or more maximal sets of permissions
`from policy graphs;
`h. selecting granted permissions from Within an associ
`ated maximal set of permissions;
`i. combining one or more maximal sets of permissions
`into the maximal permissions using one permission
`equation and one or more permission propositions;
`j. combining one or more granted permissions into one
`current set of permissions Which are a subset of the
`maximal permissions using one permission equation
`and one or more permission propositions.
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`6,044,466
`
`4
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 illustrates hoW a dynamic derivation mechanism
`pursuant to the present invention takes an authenticated
`description of some executable content, a site security
`policy, and the identity of the doWnloading principal, and
`derives current and maximal permissions for this instance of
`the content’s doWnload.
`FIG. 2 illustrates ?ve major steps implemented by the
`dynamic derivation mechanism of the present invention.
`FIG. 3 shoWs the site security policy Which includes sets
`of policy graphs used to derive the maximal permissions
`contributions that any principal can delegate to the content
`and sets of permissions propositions used to compute the
`current and maximal permissions from the maximal permis
`sions contributions and the current permissions contribu
`tions delegated by those principals.
`FIG. 4 illustrates that the nodes of a policy graph’s
`directed graph consist of an attribute, a value, an entry, and
`an access control list.
`FIG. 5 illustrates a preferred embodiment of the permis
`sions structure, and shoWs that permissions include positive
`and negative rights and transforms.
`FIG. 6 illustrates the structure of a derivation instance
`Which maps a content description and doWnloading principal
`to its current and maximal permissions, given a site security
`policy.
`FIG. 7 illustrates hoW the ?rst step of the dynamic
`derivation mechanism creates a derivation instance and sets
`its attributes values.
`FIG. 8 illustrates hoW the second step of the dynamic
`derivation mechanism retrieves the maximal and current
`permissions propositions for the doWnloading principal and
`content description from the site security policy.
`FIG. 9 illustrates hoW the third step of the dynamic
`derivation mechanism derives the maximal permissions
`from the contributions of each principal in the maximal
`permissions proposition equation.
`FIG. 10 illustrates hoW the contributing principals are
`extracted from the maximal permissions proposition.
`FIG. 11 illustrates hoW results are derived from a policy
`graph.
`FIG. 12 illustrates hoW the ?fth step of the dynamic
`derivation mechanism derives the current permission set
`from the principals that can contribute to the current per
`mission set.
`
`DETAILED DESCRIPTION OF THE DRAWINGS
`As FIG. 1 depicts, the derivation mechanism (100) takes
`an authenticated description of some executable content
`(120), a site security policy (130), the identity of the
`doWnloading principal (110) and derives current and maxi
`mal permissions (140,150) for this instance of the content’s
`doWnload (160). When the content is executed by the
`doWnloading principal, its operations are to be authoriZed
`against the current permissions (150). It is possible to extend
`the current permissions (150) by adding permissions that are
`Within the maximal permissions of the content (140).
`FIG. 1 also shoWs that the derivation mechanism is
`executed by a Permission Derivation Server (170). This
`server (170) can be run on the doWnloading principal’s
`system or on a server machine trusted by the doWnloading
`principal (e.g., a secure server in Which messages are
`communicated to the doWnloading principal’s system via a
`secure channel).
`
`Petitioner Apple Inc. - Ex. 1049, p. 14
`
`

`
`6,044,466
`
`5
`As FIG. 2 depicts, the derivation mechanism (100) con
`sists of the following ?ve steps: (1) create a derivation
`instance (200) for this content description (120) and down
`loading principal (110); (2) retrieve the current and maximal
`permissions propositions (210) from the site security policy
`(130) for the derivation instance (160); (3) derive the
`maximal permissions (150) from the contributions of each
`principal in the maximal permission proposition (220); (4)
`obtain the current permissions contributions (230) delegated
`by each principal in the current permission proposition
`(300), as illustrated in FIG. 3; and (5) compute the current
`and maximal permissions (140,150,240) using the current
`and maximal permissions propositions (300,310) and the
`current and maximal contributions (230,220) of the propo
`sitions’ principals. The current permissions (150), by
`de?nition, must always be a subset of the maximal permis
`sions (140).
`The description of executable content (120) is a set of
`attribute-value pairs. One possible embodiment is RDF
`(“Resource Description Framework”) labels that describe
`the meta-data of a website’s URI (“Universal Resource
`Identi?er”). RDF is a Web Consortium Activity (see
`http://www.w3.org/metadata/RDF/overview.html).
`Attributes with string values can be used to describe a URI.
`Table 1 shows attributes used in a preferred embodiment
`for the content description (120). This is a modi?cation of
`the content description structure used by FlexxGuard (see N.
`Islam et al., A Flexible Security System for Using Internet
`Content, in IEEE Software, pgs. 52—59, September, 1997).
`
`TABLE 1
`
`Content Description Attributes
`
`@ Description Field
`
`De?nition
`
`121 Manufacturer
`
`122 Description Author
`
`123 Application Classes
`
`124 Application Name
`125 Version
`126 Requested Permissions
`
`127 Content Digest
`
`128 Application Role
`
`Content’s originating
`manufacturer
`Principal responsible
`for the description
`Application types
`to which the
`content belongs
`Application name
`Content version
`Permissions
`requested by the content
`A cryptographic
`digest of the content
`Role of content in
`the application
`
`The content is created by its manufacturer (121). The
`content description (120) is authenticated to be from the
`description author (122). The description author (122) can
`be different from the manufacturer (121), but the derivation
`mechanism (100) may limit the permissions granted (140,
`150) based on the site security policy’s (130) trust in the
`description author (122). The application classes (123) indi
`cate the types of applications to which this content belongs.
`The application name (124) and version (125) specify the
`name and version of the content. The content’s crypto
`graphic digest (127) enables veri?cation that the content
`description (120) refers to the expected content. In a pre
`ferred embodiment, a one-way, collision-free hash function
`(see National Institute of Standards and Technology, US.
`Department of Commerce, Secure Hash Standard, Publica
`tion FIPS PUB 180-1) is used to generate such digests. The
`application role (128) speci?es the principal that the content
`assumes from the application’s perspective.
`Content descriptions (120) should be cryptographically
`authenticated (i.e., integrity and source veri?cation) or sent
`
`10
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`6
`over a trusted communication link prior to use. In a preferred
`embodiment, public key cryptography is used to verify the
`integrity and source of content descriptions (120). Two
`additional ?elds are added to the description (120): (1) a
`?eld that contains a list of signatures and (2) a ?eld that
`contains a list of public key certi?cates. The certi?cates
`enable the veri?cation of any of the contained signatures.
`FIG. 3 shows the site security policy (130). It includes sets
`of policy graphs (320) used to derive the maximal permis
`sions contributions (150) that any principal can delegate to
`the content and sets of permissions propositions (300,310)
`used to compute the current and maximal permissions
`(140,150) from the maximal permissions contributions (150)
`and the current permissions contributions delegated by those
`principals.
`FIG. 3 also shows the structure of a policy graph (320). A
`policy graph consists of a directed graph (324), a traversal
`method (322), a combination method (323), an access con
`trol list (325), and a downloading principal to whom the
`graph applies (321). The directed graph (324) stores the
`security policy speci?c to the speci?ed downloading prin
`cipal (321). The traversal method (322) determines how the
`directed graph (324) is traversed (e.g., from a root down or
`from a leaf up) when it is evaluated. The combination
`method (323) determines how the node’s entries (430) are
`combined into the resultant policy value. The access control
`list (325) limits access to the policy graph (320). Principals
`can be permitted to modify any of the policy graph attributes
`(321—325).
`As shown in FIG. 4, the nodes (400) of a policy graph’s
`(320) directed graph (324) consist of an attribute (410), a
`value (420), an entry (430), and an access control list (440).
`The traversal method uses the node attribute (410) and node
`value (420) to match the node with the content’s description
`(120). If a match occurs, then the combination method (323)
`applies the node entry (430) to the current result derived so
`far from the policy graph traversal (810). In a preferred
`embodiment, node entries (430) refer to permissions. The
`access control list (440) controls access to the node. In a
`preferred embodiment, principals can be permitted to read,
`write, delete, and create children of the node.
`In the directed graph (324) shown in FIG. 4, an example
`traversal method (322) speci?es that traversal starts at the
`root of the directed graph (324) and repeatedly follows the
`child link whose node’s (400) attribute (410) value (420) is
`the same as the content description’s (120) value for that
`attribute. An example combination method (323) is the
`union set operator. A traversal method (322) that goes from
`the root (400) to the manufacturer=IBM node (401) to the
`description author=IBM (402) to the application classes=
`games node (403) results in the permissions (580) PA U PB
`PC.
`Note that Netscape content shares the same node at the
`application type level of the policy graph as the IBM content
`in our example. Therefore, the resulting permissions (580)
`for a content description (120) of manufacturer=Netscape
`(121), description author=Netscape (122), and application
`classes=games (123) is PA U PN PC.
`The permissions structure (330) in a preferred embodi
`ment is shown in FIG. 5. Permissions (330) include positive
`(550) and negative rights (560) and transforms (570). Rights
`associate an object group (551) with a set of operations that
`are permitted or denied (552) and a limit for the number of
`times this permission may be used (553). In authoriZation, if
`a positive right (550) exists that grants an operation on an
`object and a negative right (560) exists that precludes the
`operation on that object, then the operation is not authoriZed.
`
`Petitioner Apple Inc. - Ex. 1049, p. 15
`
`

`
`6,044,466
`
`7
`That is, positive rights (550) are always superseded by
`negative rights (560). Object groups (551,561) may refer to
`logical objects and be mapped to physical objects at runtime
`to permit the same speci?cation to cover multiple principals.
`Transforms (570) associate a delegating principal’s (571)
`action (e.g., operation) (572) With modi?cations to permis
`sions (573) (e.g., addition or removal of rights). For a
`transform (570) to apply, the rights to be delegated must be
`Within the delegating principal’s (571) maximal permissions
`contribution (140) for the delegatee’s content. Also, the
`delegated rights must be Within the maximal permissions
`(140) of the delegatee’s content. Transforms (570) enable
`the current permissions (150) to evolve based on the state of
`the application.
`The permissions propositions (300,310) describe hoW the
`current and maximal permissions (140,150) are derived
`from the contributions from multiple contributing principals.
`In a preferred embodiment, set operations (e.g., union,
`intersection) (301,311) are used to combine the permissions
`contributed by the contributing principals (110) and con
`straint propositions (302,312) imply the addition or removal
`(e.g, implication of positive or negative rights) of permis
`sions.
`A derivation instance (160) maintains the state of the
`derivation. Its structure is shoWn in FIG. 6. A derivation
`instance (160) maps a content description (120) and doWn
`loading principal (110) to its current and maximal permis
`sions (140,150) given a site security policy (130). Other
`?elds can be added to maintain the state of the derivation.
`Mechanism Description
`As shoWn in FIG. 7, step 1

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