mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-21 03:10:25 +08:00
633 lines
22 KiB
Plaintext
633 lines
22 KiB
Plaintext
|
|
|||
|
Internet-Draft E. Stokes
|
|||
|
LDAP Extensions WG D. Byrne
|
|||
|
Intended Category: Informational IBM
|
|||
|
Expires: 25 December 1999 B. Blakley
|
|||
|
Dascom
|
|||
|
P. Behera
|
|||
|
Netscape
|
|||
|
25 June 1999
|
|||
|
|
|||
|
Access Control Requirements for LDAP
|
|||
|
<draft-ietf-ldapext-acl-reqts-02.txt>
|
|||
|
|
|||
|
STATUS OF THIS MEMO
|
|||
|
|
|||
|
This document is an Internet-Draft and is in full
|
|||
|
conformance with all provisions of Section 10 of RFC2026.
|
|||
|
|
|||
|
Internet-Drafts are working documents of the Internet
|
|||
|
Engineering Task Force (IETF), its areas, and its working
|
|||
|
groups. Note that other groups may also distribute
|
|||
|
working documents as Internet-Drafts. Internet-Drafts are
|
|||
|
draft documents valid for a maximum of six months and may
|
|||
|
be updated, replaced, or obsoleted by other documents at
|
|||
|
any time. It is inappropriate to use Internet- Drafts as
|
|||
|
reference material or to cite them other than as "work in
|
|||
|
progress."
|
|||
|
|
|||
|
The list of current Internet-Drafts can be accessed at
|
|||
|
http://www.ietf.org/ietf/1id-abstracts.txt
|
|||
|
|
|||
|
The list of Internet-Draft Shadow Directories can be
|
|||
|
accessed at http://www.ietf.org/shadow.html.
|
|||
|
|
|||
|
Comments and suggestions on this document are encouraged.
|
|||
|
Comments on this document should be sent to the LDAPEXT
|
|||
|
working group discussion list:
|
|||
|
|
|||
|
ietf-ldapext@netscape.com
|
|||
|
|
|||
|
COPYRIGHT NOTICE
|
|||
|
Copyright (C) The Internet Society (1997). All Rights
|
|||
|
Reserved.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Stokes, etal Expires 25 December 1999 [Page 1]
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Internet-Draft ACI Requirements 25 June 1999
|
|||
|
|
|||
|
|
|||
|
|
|||
|
ABSTRACT
|
|||
|
|
|||
|
This document describes the fundamental requirements of
|
|||
|
an access control list (ACL) model for the Lightweight
|
|||
|
Directory Application Protocol (LDAP) directory service.
|
|||
|
It is intended to be a gathering place for access control
|
|||
|
requirements needed to provide authorized access to and
|
|||
|
interoperability between directories. The RFC 2119
|
|||
|
terminology is used in this document.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
1. Introduction
|
|||
|
|
|||
|
The ability to securely access (replicate and distribute)
|
|||
|
directory information throughout the network is necessary
|
|||
|
for successful deployment. LDAP's acceptance as an
|
|||
|
access protocol for directory information is driving the
|
|||
|
need to provide an access control model definition for
|
|||
|
LDAP directory content among servers within an enterprise
|
|||
|
and the Internet. Currently LDAP does not define an
|
|||
|
access control model, but is needed to ensure consistent
|
|||
|
secure access across heterogeneous LDAP implementations.
|
|||
|
The requirements for access control are critical to the
|
|||
|
successful deployment and acceptance of LDAP in the
|
|||
|
market place.
|
|||
|
|
|||
|
The RFC 2119 terminology is used in this document.
|
|||
|
|
|||
|
|
|||
|
2. Objectives
|
|||
|
|
|||
|
The major objective is to provide a simple, but secure,
|
|||
|
highly efficient access control model for LDAP while also
|
|||
|
providing the appropriate flexibility to meet the needs
|
|||
|
of both the Internet and enterprise environments and
|
|||
|
policies.
|
|||
|
|
|||
|
This generally leads to several general requirements that
|
|||
|
are discussed below.
|
|||
|
|
|||
|
|
|||
|
3. Requirements
|
|||
|
|
|||
|
This section is divided into several areas of
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Stokes, etal Expires 25 December 1999 [Page 2]
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Internet-Draft ACI Requirements 25 June 1999
|
|||
|
|
|||
|
|
|||
|
|
|||
|
requirements: general, semantics/policy, usability, and
|
|||
|
nested groups (an unresolved issue). The requirements
|
|||
|
are not in any priority order. Examples and explanatory
|
|||
|
text is provided where deemed necessary. Usability is
|
|||
|
perhaps the one set of requirements that is generally
|
|||
|
overlooked, but must be addressed to provide a secure
|
|||
|
system. Usability is a security issue, not just a nice
|
|||
|
design goal and requirement. If it is impossible to set
|
|||
|
and manage a policy for a secure situation that a human
|
|||
|
can understand, then what was set up will probably be
|
|||
|
non-secure. We all need to think of usability as a
|
|||
|
functional security requirement.
|
|||
|
|
|||
|
3.1 General
|
|||
|
|
|||
|
G1. Model SHOULD be general enough to support
|
|||
|
extensibility to add desirable features in the future.
|
|||
|
|
|||
|
G2. When in doubt, safer is better, especially when
|
|||
|
establishing defaults.
|
|||
|
|
|||
|
G3. ACL administration SHOULD be part of the LDAP
|
|||
|
protocol. Access control information MUST be an LDAP
|
|||
|
attribute.
|
|||
|
|
|||
|
G4. Object reuse protection SHOULD be provided and MUST
|
|||
|
NOT inhibit implementation of object reuse. The directory
|
|||
|
SHOULD support policy controlling the re-creation of
|
|||
|
deleted DNs, particularly in cases where they are re-
|
|||
|
created for the purpose of assigning them to a subject
|
|||
|
other than the owner of the deleted DN.
|
|||
|
|
|||
|
3.2 Semantics / Policy
|
|||
|
|
|||
|
S1. Omitted as redundant; see U8.
|
|||
|
|
|||
|
S2. More specific policies must override less specific
|
|||
|
ones (e.g. individual user entry in ACL SHOULD take
|
|||
|
precedence over group entry) for the evaluation of an
|
|||
|
ACL.
|
|||
|
|
|||
|
S3. Multiple policies of equal specificity SHOULD be
|
|||
|
combined in some easily-understood way (e.g. union or
|
|||
|
intersection). This is best understood by example.
|
|||
|
Suppose user A belongs to 3 groups and those 3 groups are
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Stokes, etal Expires 25 December 1999 [Page 3]
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Internet-Draft ACI Requirements 25 June 1999
|
|||
|
|
|||
|
|
|||
|
|
|||
|
listed on the ACL. Also suppose that the permissions for
|
|||
|
each of those groups are not identical. Each group is of
|
|||
|
equal specificity (e.g. each group is listed on the ACL)
|
|||
|
and the policy for granting user A access (given the
|
|||
|
example) SHOULD be combined in some easily understood
|
|||
|
way, such as by intersection or union. For example, an
|
|||
|
intersection policy here may yield a more limited access
|
|||
|
for user A than a union policy.
|
|||
|
|
|||
|
S4. Newly created directory entries SHOULD be subject to
|
|||
|
a secure default policy.
|
|||
|
|
|||
|
S5. Access policy SHOULD NOT be expressed in terms of
|
|||
|
attributes which the directory administrator or his
|
|||
|
organization cannot administer (e.g. groups whose
|
|||
|
membership is administered by another organization).
|
|||
|
|
|||
|
S6. Access policy SHOULD NOT be expressed in terms of
|
|||
|
attributes which are easily forged (e.g. IP addresses).
|
|||
|
There may be valid reasons for enabling access based on
|
|||
|
attributes that are easily forged and the
|
|||
|
behavior/implications of doing that should be documented.
|
|||
|
|
|||
|
S7. Humans (including administrators) SHOULD NOT be
|
|||
|
required to manage access policy on the basis of
|
|||
|
attributes which are not "human-readable" (e.g. IP
|
|||
|
addresses).
|
|||
|
|
|||
|
S8. It MUST be possible to deny a subject the right to
|
|||
|
invoke a directory operation. The system SHOULD NOT
|
|||
|
require a specific implementation of denial (e.g.
|
|||
|
explicit denial, implicit denial).
|
|||
|
|
|||
|
S9. The system MUST be able (semantically) to support
|
|||
|
either default-grant or default-deny semantics (not
|
|||
|
simultaneously).
|
|||
|
|
|||
|
S10. The system MUST be able to support either union
|
|||
|
semantics or intersection semantics for aggregate
|
|||
|
subjects (not simultaneously).
|
|||
|
|
|||
|
S11. Absence of policy SHOULD be interpretable as grant
|
|||
|
or deny. Deny takes precedence over grant among entries
|
|||
|
of equal specificity.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Stokes, etal Expires 25 December 1999 [Page 4]
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Internet-Draft ACI Requirements 25 June 1999
|
|||
|
|
|||
|
|
|||
|
|
|||
|
S12. ACL policy resolution MUST NOT depend on the order
|
|||
|
of entries in the ACL.
|
|||
|
|
|||
|
S13. Rights management MUST have no side effects.
|
|||
|
Granting a subject one right to an object MUST NOT
|
|||
|
implicitly grant the same or any other subject a
|
|||
|
different right to the same object. Granting a privilege
|
|||
|
attribute to one subject MUST NOT implicitly grant the
|
|||
|
same privilege attribute to any other subject. Granting
|
|||
|
a privilege attribute to one subject MUST NOT implicitly
|
|||
|
grant a different privilege attribute to the same or any
|
|||
|
other subject. Definition: An ACL's "scope" is defined
|
|||
|
as the set of directory objects governed by the policy it
|
|||
|
defines; this set of objects is a sub-tree of the
|
|||
|
directory. Changing the policy asserted by an ACL (by
|
|||
|
changing one or more of its entries) MUST NOT implicitly
|
|||
|
change the policy governed by an ACL in a different
|
|||
|
scope.
|
|||
|
|
|||
|
S14. It SHOULD be possible to apply a single policy to
|
|||
|
multiple directory entries, even if those entries are in
|
|||
|
different subtrees. Applying a single policy to multiple
|
|||
|
directory entries SHOULD NOT require creation and storage
|
|||
|
of multiple copies of the policy data. The system SHOULD
|
|||
|
NOT require a specific implementation (e.g. nested
|
|||
|
groups, named ACLs) of support for policy sharing.
|
|||
|
|
|||
|
3.3 Usability (Manageability)
|
|||
|
|
|||
|
U1. When in doubt, simpler is better, both at the
|
|||
|
interface and in the implementation.
|
|||
|
|
|||
|
U2. Subjects MUST be drawn from the "natural" LDAP
|
|||
|
namespace; they should be DNs.
|
|||
|
|
|||
|
U3. It SHOULD NOT be possible via ACL administration to
|
|||
|
lock all users, including all administrators, out of the
|
|||
|
directory.
|
|||
|
|
|||
|
U4. Administrators SHOULD NOT be required to evaluate
|
|||
|
arbitrary Boolean predicates in order to create or
|
|||
|
understand policy.
|
|||
|
|
|||
|
U5. Administrators SHOULD be able to administer access
|
|||
|
to directories and their attributes based on their
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Stokes, etal Expires 25 December 1999 [Page 5]
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Internet-Draft ACI Requirements 25 June 1999
|
|||
|
|
|||
|
|
|||
|
|
|||
|
sensitivity, without having to understand the semantics
|
|||
|
of individual schema elements and their attributes (see
|
|||
|
U9).
|
|||
|
|
|||
|
U6. Management of access to resources in an entire
|
|||
|
subtree SHOULD require only one ACL (at the subtree
|
|||
|
root). Note that this makes access control based
|
|||
|
explicitly on attribute types very hard, unless you
|
|||
|
constrain the types of entries in subtrees. For example,
|
|||
|
another attribute is added to an entry. That attribute
|
|||
|
may fall outside the grouping covered by the ACL and
|
|||
|
hence require additional administration where the desired
|
|||
|
affect is indeed a different ACL. Access control
|
|||
|
information specified in one administrative area MUST NOT
|
|||
|
have jurisdiction in another area. You SHOULD NOT be
|
|||
|
able to control access to the aliased entry in the alias.
|
|||
|
You SHOULD be able to control access to the alias name.
|
|||
|
|
|||
|
U7. Override of subtree policy MUST be supported on a
|
|||
|
per-directory-entry basis.
|
|||
|
|
|||
|
U8. Control of access to individual directory entry
|
|||
|
attributes (not just the whole directory entry) MUST be
|
|||
|
supported.
|
|||
|
|
|||
|
U9. Administrator MUST be able to coarsen access policy
|
|||
|
granularity by grouping attributes with similar access
|
|||
|
sensitivities.
|
|||
|
|
|||
|
U10. Control of access on a per-user granularity MUST be
|
|||
|
supported.
|
|||
|
|
|||
|
U11. Administrator MUST be able to aggregate users (for
|
|||
|
example, by assigning them to groups or roles) to
|
|||
|
simplify administration.
|
|||
|
|
|||
|
U12. It MUST be possible to review "effective access" of
|
|||
|
any user, group, or role to any entry's attributes. This
|
|||
|
aids the administrator in setting the correct policy.
|
|||
|
|
|||
|
U13. A single administrator SHOULD be able to define
|
|||
|
policy for the entire directory tree. An administrator
|
|||
|
MUST be able to delegate policy administration for
|
|||
|
specific subtrees to other users. This allows for the
|
|||
|
partitioning of the entire directory tree for policy
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Stokes, etal Expires 25 December 1999 [Page 6]
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Internet-Draft ACI Requirements 25 June 1999
|
|||
|
|
|||
|
|
|||
|
|
|||
|
administration, but still allows a single policy to be
|
|||
|
defined for the entire tree independent of partitioning.
|
|||
|
(Partition in this context means scope of
|
|||
|
administration). An administrator MUST be able to create
|
|||
|
new partitions at any point in the directory tree, and
|
|||
|
MUST be able to merge a superior and subordinate
|
|||
|
partition. An administrator MUST be able to configure
|
|||
|
whether delegated access control information from
|
|||
|
superior partitions is to be accepted or not.
|
|||
|
|
|||
|
U14. It MUST be possible to authorize users to traverse
|
|||
|
directory structure even if they are not authorized to
|
|||
|
examine or modify some traversed entries; it MUST also be
|
|||
|
possible to prohibit this. The tree structure MUST be
|
|||
|
able to be protected from view if so desired by the
|
|||
|
administrator.
|
|||
|
|
|||
|
U15. It MUST be possible to create publicly readable
|
|||
|
entries, which may be read even by unauthenticated
|
|||
|
clients.
|
|||
|
|
|||
|
U16. The model for combining multiple access control
|
|||
|
list entries referring to a single individual MUST be
|
|||
|
easy to understand.
|
|||
|
|
|||
|
U17. Administrator MUST be able to determine where
|
|||
|
inherited policy information comes from, that is, where
|
|||
|
ACLs are located and which ACLs were applied. Where
|
|||
|
inheritance of ACLs is applied, it must be able to be
|
|||
|
shown how/where that new ACL is derived from.
|
|||
|
|
|||
|
U18. It SHOULD be possible for the administrator to
|
|||
|
configure the access control system to permit users to
|
|||
|
grant additional access control rights for entries which
|
|||
|
they create.
|
|||
|
|
|||
|
|
|||
|
4. Security Considerations
|
|||
|
|
|||
|
Access control is a security consideration. This
|
|||
|
documents addresses the requirements.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Stokes, etal Expires 25 December 1999 [Page 7]
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Internet-Draft ACI Requirements 25 June 1999
|
|||
|
|
|||
|
|
|||
|
|
|||
|
5. Glossary
|
|||
|
|
|||
|
This glossary is intended to aid the novice not versed in
|
|||
|
depth about access control. It contains a list [2] of
|
|||
|
terms and their definitions that are commonly used in
|
|||
|
discussing access control.
|
|||
|
|
|||
|
Access control - The prevention of use of a resource by
|
|||
|
unidentified and/or unauthorized entities in any other
|
|||
|
that an authorized manner.
|
|||
|
|
|||
|
Access control list - A set of control attributes. It is
|
|||
|
a list, associated with a security object or a group of
|
|||
|
security objects. The list contains the names of
|
|||
|
security subjects and the type of access that may be
|
|||
|
granted.
|
|||
|
|
|||
|
Access control policy - A set of rules, part of a
|
|||
|
security policy, by which human users, or their
|
|||
|
representatives, are authenticated and by which access by
|
|||
|
these users to applications and other services and
|
|||
|
security objects is granted or denied.
|
|||
|
|
|||
|
Access context - The context, in terms of such variables
|
|||
|
as location, time of day, level of security of the
|
|||
|
underlying associations, etc., in which an access to a
|
|||
|
security object is made.
|
|||
|
|
|||
|
Authorization - The granting of access to a security
|
|||
|
object.
|
|||
|
|
|||
|
Authorization policy - A set of rules, part of an access
|
|||
|
control policy, by which access by security subjects to
|
|||
|
security objects is granted or denied. An authorization
|
|||
|
policy may be defined in terms of access control lists,
|
|||
|
capabilities, or attributes assigned to security
|
|||
|
subjects, security objects, or both.
|
|||
|
|
|||
|
Control attributes - Attributes, associated with a
|
|||
|
security object that, when matched against the privilege
|
|||
|
attributes of a security subject, are used to grant or
|
|||
|
deny access to the security object. An access control
|
|||
|
list or list of rights or time of day range are examples
|
|||
|
of control attributes.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Stokes, etal Expires 25 December 1999 [Page 8]
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Internet-Draft ACI Requirements 25 June 1999
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Credentials - Data that serve to establish the claimed
|
|||
|
identity of a security subject relative to a given
|
|||
|
security domain.
|
|||
|
|
|||
|
Privilege attributes - Attributes, associated with a
|
|||
|
security subject that, when matched against control
|
|||
|
attributes of a security object, are used to grant or
|
|||
|
deny access to that subject. Group and role memberships
|
|||
|
are examples of privilege attributes.
|
|||
|
|
|||
|
Security attributes - A general term covering both
|
|||
|
privilege attributes and control attributes. The use of
|
|||
|
security attributes is defined by a security policy.
|
|||
|
|
|||
|
Security object - An entity in a passive role to which a
|
|||
|
security policy applies.
|
|||
|
|
|||
|
Security policy - A general term covering both access
|
|||
|
control policies and authorization policies.
|
|||
|
|
|||
|
Security subject - An entity in an active role to which a
|
|||
|
security policy applies.
|
|||
|
|
|||
|
|
|||
|
6. References
|
|||
|
|
|||
|
[1] Steve Kille, Tim Howes, M. Wahl, "Lightweight
|
|||
|
Directory Access Protocol (v3)", RFC 2251, August 1997.
|
|||
|
|
|||
|
[2] ECMA, "Security in Open Systems: A Security
|
|||
|
Framework" ECMA TR/46, July 1988
|
|||
|
|
|||
|
|
|||
|
AUTHOR(S) ADDRESS
|
|||
|
|
|||
|
Bob Blakley Ellen Stokes
|
|||
|
Dascom IBM
|
|||
|
5515 Balcones Drive 11400 Burnet Rd
|
|||
|
Austin, TX 78731 Austin, TX 78758
|
|||
|
USA USA
|
|||
|
mail-to: blakley@dascom.com mail-to: stokes@austin.ibm.com
|
|||
|
phone: +1 512 458 4037 ext 5012 phone: +1 512 838 3725
|
|||
|
fax: +1 512 458 2377 fax: +1 512 838 0156
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Stokes, etal Expires 25 December 1999 [Page 9]
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Internet-Draft ACI Requirements 25 June 1999
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Debbie Byrne Prasanta Behera
|
|||
|
IBM Netscape
|
|||
|
11400 Burnet Rd 501 Ellis Street
|
|||
|
Austin, TX 78758 Mountain View, CA 94043
|
|||
|
USA USA
|
|||
|
mail-to: djbyrne@us.ibm.com mail-to: prasanta@netscape.com
|
|||
|
phone: +1 512 838 1930 phone: +1 650 937 4948
|
|||
|
fax: +1 512 838 8597 fax: +1 650 528-4164
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Stokes, etal Expires 25 December 1999 [Page 10]
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Internet-Draft ACI Requirements 25 June 1999
|
|||
|
|
|||
|
|
|||
|
|
|||
|
7. Full Copyright Statement
|
|||
|
|
|||
|
Copyright (C) The Internet Society (1999).<2E> All Rights
|
|||
|
Reserved.
|
|||
|
|
|||
|
This document and translations of it may be copied and
|
|||
|
furnished to others, and derivative works that comment on or
|
|||
|
otherwise explain it or assist in its implementation may be
|
|||
|
prepared, copied, published and distributed, in whole or in
|
|||
|
part, without restriction of any kind, provided that the
|
|||
|
above copyright notice and this paragraph are included on
|
|||
|
all such copies and derivative works.<2E> However, this
|
|||
|
document itself may not be modified in any way, such as by
|
|||
|
removing the copyright notice or references to the Internet
|
|||
|
Society or other Internet organizations, except as needed
|
|||
|
for the purpose of developing Internet standards in which
|
|||
|
case the procedures for copyrights defined in the Internet
|
|||
|
Standards process must be followed, or as required to
|
|||
|
translate it into languages other than English.
|
|||
|
|
|||
|
The limited permissions granted above are perpetual and will
|
|||
|
not be revoked by the Internet Society or its successors or
|
|||
|
assigns.
|
|||
|
|
|||
|
This document and the information contained herein is
|
|||
|
provided on an "AS IS" basis and THE INTERNET SOCIETY AND
|
|||
|
THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL
|
|||
|
WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
|||
|
ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT
|
|||
|
INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
|
|||
|
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Stokes, etal Expires 25 December 1999 [Page 11]
|
|||
|
|
|||
|
|