<- RFC Index (1401..1500)
RFC 1457
Network Working Group R. Housley
Request for Comments: 1457 Xerox Special Information Systems
May 1993
Security Label Framework for the Internet
Status of this Memo
This memo provides information for the Internet community. It does
not specify an Internet standard. Distribution of this memo is
unlimited.
Acknowledgements
The members of the Privacy and Security Research Group and the
attendees of the invitational Security Labels Workshop (hosted by the
National Institute of Standards and Technology) helped me organize my
thoughts on this subject. The ideas of these professionals are
scattered throughout the memo.
1.0 Introduction
This memo presents a security labeling framework for the Internet.
The framework is intended to help protocol designers determine what,
if any, security labeling should be supported by their protocols.
The framework should also help network architects determine whether
or not a particular collection of protocols fulfill their security
labeling requirements. The Open Systems Interconnection Reference
Model [1] provides the structure for the presentation, therefore OSI
protocol designers may also find this memo useful.
2.0 Security Labels
Data security is the set of measures taken to protect data from
accidental, unauthorized, intentional, or malicious modification,
destruction, or disclosure. Data security is also the condition that
results from the establishment and maintenance of protective measures
[2]. Given this two-pronged definition for data security, this memo
examines security labeling as one mechanism which provides data
security. In general, security labeling by itself does not provide
sufficient data security; it must be complemented by other security
mechanisms.
In data communication protocols, security labels tell the protocol
processing how to handle the data transferred between two systems.
That is, the security label indicates what measures need to be taken
to preserve the condition of security. Handling means the activities
Housley [Page 1]
RFC 1457 Security Label Framework for the Internet May 1993
performed on data such as collecting, processing, transferring,
storing, retrieving, sorting, transmitting, disseminating, and
controlling [3].
The definition of data security includes protection from modification
and destruction. In computer systems, this is protection from
writing and deleting. These protections implement the data integrity
service defined in the OSI Security Architecture [4].
Biba [5] has defined a data integrity model which includes security
labels. The Biba model specifies rule-based controls for writing and
deleting necessary to preserve data integrity. The model also
specifies rule-based controls for reading to prevent a high integrity
process from relying on data that has less integrity than the
process.
The definition of data security also includes protection from
disclosure. In computer systems, this is protection from reading.
This protection is the data confidentiality service defined in the
OSI Security Architecture [4].
Bell and LaPadula [6] defined a data confidentiality model which
includes security labels. The Bell and LaPadula model specifies
rule-based controls for reading necessary to preserve data
confidentiality. The model also specifies rule-based controls for
writing to ensure that data is not copied to a container where
confidentiality can not be guaranteed.
In both the Biba model and the Bell and LaPadula model, the security
label is an attribute of the data. In general, the security label
associated with the data remains constant. Exceptions will be
discussed later in the memo, but relabeling is always the result of
some network entity handling the data. Since the security label is
an attribute of data, it should be bound to the data. When data
moves through the network, the integrity security service [4] is
generally used to accomplish this binding. If the communications
environment does not include a protocol which provides the integrity
security service to bind the security label to the data, then the
communications environment should include other mechanisms to
preserve this binding.
2.1 Integrity Labels
Integrity labels are security labels which support data integrity
models, like the Biba model. The integrity label tells the degree of
confidence that may be placed in the data and also indicates which
measures the data requires for protection from modification and
destruction.
Housley [Page 2]
RFC 1457 Security Label Framework for the Internet May 1993
As data moves through the network, the confidence that may be placed
in that data may change as a result of being handled by various
network components. Therefore, the integrity label is a function of
the integrity of the data before being transmitted on the network and
the path that the data takes through the network. The confidence
that may be placed in data does not increase because it was
transferred across a network, but the confidence that may be placed
in data may decrease as a result of being handled by arbitrary
network components. Entities are assigned integrity labels which
indicate how much confidence may be placed in data that is handled by
them. Thus, when data is handled by an entity with an integrity
label lower than the integrity label of the data, the data is
relabeled with the integrity label of the entity. Such relabeling
should be avoided by limiting the possible paths that data may take
through the network to those where the data will be handled only by
entities with the same or a higher integrity label than the data.
When integrity labels are used, each of the systems on a network must
implement the integrity model and the protocol suite must transfer
the integrity label with the data, if the confidence of the data is
to be maintained throughout the network. Each of the systems on a
network may have its own internal representation for a integrity
label, but the protocols must provide common syntax and semantics for
the transfer of the integrity label, as well as the data itself. To
date, no protocols have been standardized which include integrity
labels in the protocol control information.
2.2 Sensitivity Labels
Sensitivity labels are security labels which support data
confidentiality models, like the Bell and LaPadula model. The
sensitivity label tells the amount of damage that will result from
the disclosure of the data and also indicates which measures the data
requires for protection from disclosure. The amount of damage that
results from unauthorized disclosure depends on who obtains the data;
the sensitivity label should reflect the worst case.
As data moves through the network, it is processed by various network
components and may be mixed with data of differing sensitivity. If
these network components are not trusted to segregate data of
differing sensitivities, then all of the data processed by those
components must be handled as the most sensitive data processed by
those network components. For example, poor buffer management may
append highly sensitive data to the end of a protocol data unit that
was otherwise publicly releasable. Therefore, the sensitivity label
is a function of the sensitivity of the data before being transmitted
on the network and the most sensitive data handled by the network
components, and the trustworthiness of those network components. The
Housley [Page 3]
RFC 1457 Security Label Framework for the Internet May 1993
amount of damage that will result from the disclosure of the data
does not decrease because it was transferred across a network, but
the amount of damage that will result from the disclosure of the data
may increase as a result of being mixed with more sensitive data by
arbitrary network components. Thus, when data is handled by an
untrusted entity with a sensitivity label higher than the sensitivity
label of the data, the data is relabeled with the higher sensitivity
label. Such relabeling should be avoided by limiting the possible
paths that data may take through the network to those where the data
will be handled only by entities with the same sensitivity label as
the data or by using trustworthy network components. Entities with
lower sensitivity labels may not handle the data because this would
be disclosure.
When sensitivity labels are used, each of the systems on a network
must implement the sensitivity model and the protocol suite must
transfer the sensitivity label with the data, if the protection from
disclosure is to be maintained throughout the network. Each of the
systems on a network may have its own internal representation for a
sensitivity label, but the protocols must provide common syntax and
semantics for the transfer of the sensitivity label, as well as the
data itself. Sensitivity labels, like the ones provided by the IP
Security Option (IPSO) [7], have been used in a few networks for
years.
3.0 Security Label Usage
The Internet includes two major types of systems: end systems and
intermediate systems [1]. These terms should be familiar to the
reader. For this discussion, the definition of intermediate system
is understood to include routers, packet switches, and bridges. End
systems and intermediate systems use security labels differently.
3.1 End System Security Label Usage
When two end systems communicate, common security label syntax and
semantics are needed. The security label, as an attribute of the
data, indicates what measures need to be taken to preserve the
condition of security. The security label must communicate all of
the integrity and confidentiality handling requirements. These
requirements can become very complex.
Some operating systems label the data they process. These security
labels are not part of the data; they are attributes of the data.
Some database management systems (DBMSs) perform similar labeling.
The format of these security labels is a local matter, but they are
usually in a format different than the one used by the data
communication protocols. Security labels must be translated by these
Housley [Page 4]
RFC 1457 Security Label Framework for the Internet May 1993
operating systems and DBMSs between the local format and the format
used in the data communication protocols without any loss of meaning.
Trusted operating systems that implement rule-based access control
policies require security labels on the data they import [8,9].
These security labels permit the Trusted Computing Base (TCB) in the
end system to perform trusted demultiplexing. That is, the traffic
is relayed from the TCB to a process only if the process has
sufficient authorization for the data. In most cases, the TCB must
first translate the security label into the local syntax before it
can make the access control decision.
3.2 Intermediate System Security Label Usage
This section discusses "user" data security labels within the
intermediate system. The labeling requirements associated with
intermediate system-to-end system (IS-ES) traffic, intermediate
system-to-intermediate system (IS-IS) traffic, and intermediate
system-to-network management (IS-NM) traffic are not included in this
discussion.
Intermediate systems may make routing choices or discard traffic
based on the security label. The security label used by the
intermediate system should contain only enough information to make
the routing/discard decision and may be a subset of the security
label used by the end system. Some portions of the label may not
effect routing decisions, but they may effect processing done within
the end system.
In the Internet today, very few intermediate systems actually make
access control decisions. For performance reasons, only those
intermediate systems which do make access control decisions should be
burdened with parsing the security label. That is, information
hiding principles apply. Further, security labels which are to be
parsed only by end systems should not be visible to physical, data
link, or network layer protocols, where intermediate systems will
have to examine them.
Intermediate systems do not usually translate the security labels to
a local format. They use them "as is" to make their routing/discard
decisions. However, when two classification authorities share a
network by bilateral agreement, the intermediate systems may be
required to perform security label translation. Security label
translations should be avoided whenever possible by using a security
label format that is supported by all systems that will process the
security label. Since end systems do not generally know which
intermediate systems will process their traffic, security label
translation cannot always be avoided.
Housley [Page 5]
RFC 1457 Security Label Framework for the Internet May 1993
Since security labels which are to be parsed only by end systems
should not be carried by protocols interpreted by intermediate
systems, such security labels should be carried by upper layer
protocols, and end systems which use different formats for such
security labels cannot rely on an intermediate systems to perform
security label translation. Neither the Internet nor the OSI
architecture includes such transformation functions in the transport,
session, or presentation layer, which means that application layer
gateways should be used to translate between different end system
security label formats. Such application gateways should be avoided
because they impinge on operation, especially when otherwise
compatible protocols are used. This complication is another reason
why the use of a security label format that is supported by all
systems is desirable. A standard label syntax with registered
security label semantics goes a long way toward avoiding security
label translation [10].
4.0 Approaches to Labeling
There are several tradeoffs to be made when determining how a
particular network will perform security labeling. Explicit or
implicit labels can be used. Also, security labels can either be
connectionless or connection-oriented. A combination of these
alternatives may be appropriate.
4.1 Explicit Versus Implicit Security Labels
Explicit security labels are actual bits in the protocol control
information (PCI). The IP Security Option (IPSO) is an example of an
explicit security label [7]. Explicit security labels may be either
connectionless or connection-oriented. The syntax and semantics of
the explicit security label may be either tightly or loosely coupled.
If the syntax and semantics are tightly coupled, then the explicit
security label format supports a single security policy. If the
syntax and semantics are loosely coupled, then the explicit security
label format can support multiple security policies through
registration. In both cases, software enforces the security policy,
but the label parsing software can be written once if the syntax and
semantics are loosely coupled. Fixed length explicit security label
format parsers are generally faster than parsers for variable length
formats. Intermediate systems suffer less performance impact when
fixed length explicit security labels can be used, but end systems
often need variable length explicit security labels to express data
handling requirements.
Implicit security labels are not actual bits in the PCI; instead,
some attribute is used to determine the security label. For example,
the choice of cryptographic key in the SP4 protocol [11] can
Housley [Page 6]
RFC 1457 Security Label Framework for the Internet May 1993
determine the security label. Implicit security labels may be either
connectionless or connection-oriented.
4.2 Connectionless Versus Connection-oriented Security Labels
When connectionless security labels are used, the security label
appears in every protocol data unit (PDU). The IP Security Option
(IPSO) [7] is an example of connectionless labeling. All protocols
have limits on the size of their PCI, and the explicit security label
cannot exceed this size limit. It cannot use the entire PCI space
either; the protocol has other fields that must be transferred as
well. This size limitation may prohibit explicit connectionless
security labels from meeting the requirements of end systems.
However, the requirements of intermediate systems are more easily
satisfied by explicit connectionless security labels.
Connection-oriented security labels are attributes of virtual
circuits, connections, and associations. For simplicity, all of
these are subsequently referred to as connections. Connection-
oriented security labels are used when the SDNS Key Management
Protocol (KMP) [12] is used to associate security labels with each of
the transport connection protected by the SP4 protocol [10,11] (using
SP4C). The security label is defined at connection establishment,
and all data transferred over the connection inherits that security
label. This approach is more compatible with end system requirements
than intermediate system requirements. One noteworthy exception is
X.25 packets switches; these intermediate systems could associate
connection-oriented labels with each virtual circuit.
Connectionless security labels may be used in conjunction with
connectionless or connection-oriented data transfer protocols.
However, connection-oriented security labels may only be used in
conjunction with connection-oriented data transfer protocols.
5.0 Labeling Within the OSI Reference Model
This section examines each of the seven OSI layers with respect to
security labels.
5.1 Layer 1, The Physical Layer
Explicit security labels are not possible in the Physical Layer. The
Physical Layer does not include any protocol control information
(PCI), so there is no place to include the bits which represent the
label.
Implicit security labels are possible in the Physical Layer. For
example, all of the data that comes in through a particular physical
Housley [Page 7]
RFC 1457 Security Label Framework for the Internet May 1993
port could inherit one security label. Most Physical Layer
communication is connectionless, supporting only bit-at-a-time or
byte-at-a-time operations. Thus, these implicit security labels are
connectionless.
Implicit security labels in the Physical Layer may be used to meet
the requirements of either end systems or intermediate systems so
long as the communication is single level. That is, only one
security label is associated with all of the data received or
transmitted through the physical connection.
5.2 Layer 2, The Data Link Layer
Explicit security labels are possible in the Data Link Layer. In
fact, the IEEE 802.2 Working Group is currently working on an
optional security label standard for the Logical Link Control (LLC)
protocol (IEEE 802.2) [13]. These labels will optionally appear in
each LLC frame. These are connectionless security labels.
Explicit connection-oriented security labels are also possible in the
Data Link Layer. One could imagine a security label standard which
worked with LLC Type II.
Of course, implicit security labels are also possible in the Data
Link Layer. Such labels could be either connectionless or
connection-oriented. One attribute that might be used in IEEE 802.3
(CSMA/CD) [14] to determine the implicit security label is the source
address of the frame.
Security labels in the Data Link Layer may be used to meet the
requirements of end systems and intermediate systems (especially
bridges). Explicit security labels in this layer tend to be small
because the protocol headers for data link layer protocols are
themselves small. Therefore, when end systems require large security
labels, a higher protocol layer should used to carry them. However,
when end systems do not require large security labels, the data link
layer is attractive because in many cases the data link layer
protocol supports several protocol suites simultaneously. Label-
based routing/relay decisions made by bridges are best supported in
this layer.
5.3 Layer 3, The Network Layer
Explicit security labels are possible in the Network Layer. In fact,
the IP Security Option (IPSO) [7] has been used for many years.
These labels optionally appear in each IP datagram. IPSO labels are
obviously connectionless security labels.
Housley [Page 8]
RFC 1457 Security Label Framework for the Internet May 1993
Explicit connection-oriented security labels are also possible in the
Network Layer. One could easily imagine a security label standard
for X.25 [15], but none exists.
Of course, implicit security labels are also possible in the Network
Layer. These labels could be either connectionless or connection-
oriented. One attribute that might be used to determine the implicit
security label is the X.25 virtual circuit.
Security labels in the Network Layer may be used to meet the
requirements of end systems and intermediate systems. Explicit
security labels in this layer tend to be small because the protocol
headers for network layer protocols are themselves small. Small
fixed size network layer protocol headers allow efficient router
implementations. Therefore, when end systems require large security
labels, a higher protocol layer should used to carry them.
Alternatively, the Network Layer (especially the Subnetwork
Independent Convergence Protocol (SNICP) sublayer) is an excellent
place to carry a security label to support trusted demultiplexing,
because many implementations demultiplex from an system-wide daemon
to a user process after network layer processing. The SNICP is end-
to-end, yet it is low enough in the protocol stack to aid trusted
demultiplexing.
Label-based routing/relay decisions made by routers and packet
switches are best supported in the Network Layer. Routers can also
add labels at subnetwork boundaries. However, placement of these
security labels must be done carefully to ensure that their addition
does not degrade overall network performance by forcing routers that
do not make label-based routing decisions to parse the security
label. Also, performance will suffer if the addition of security
labels at subnet boundaries induces fragmentation/segmentation.
5.4 Layer 4, The Transport Layer
Explicit security labels are possible in the Transport Layer. For
example, the SP4 protocol [10,11] includes them. These labels can be
either connectionless (using SP4E) or connection-oriented (using
SP4C). SP4 is an addendum to the TP [16] and CLTP [17] protocols.
Implicit security labels are also possible in the Transport Layer.
Such labels could be either connectionless or connection-oriented.
One attribute that might be used to determine the implicit label in
the SP4 protocol (when explicit labels are not used as discussed
above) is the choice of cryptographic key.
Security labels in the Transport Layer may be used to meet the
requirements of end systems. The Transport Layer cannot be used to
Housley [Page 9]
RFC 1457 Security Label Framework for the Internet May 1993
meet the requirements of intermediate systems because intermediate
systems, by definition, do not process protocols above the Network
Layer. Connection-oriented explicit security labels in this layer
are especially good for meeting end system requirements where large
labels are required. The security label is transmitted only at
connection establishment, so overhead is kept to a minimum. Of
course, connectionless transport protocols may not take advantage of
this overhead reduction technique. Yet, in many implementations the
Transport Layer is low enough in the protocol stack to aid trusted
demultiplexing.
5.5 Layer 5, The Session Layer
Explicit security labels are possible in the Session Layer. Such
labels could be either connectionless or connection-oriented.
However, it is unlikely that a standard will ever be developed for
such labels because the OSI Security Architecture [4] does not
allocate any security services to the Session Layer, and the Internet
protocol suite does not have a Session Layer.
Implicit security labels are also possible in the Session Layer.
These implicit labels could be either connectionless or connection-
oriented. Again, the OSI Security Architecture makes this layer an
unlikely choice for security labeling.
Security labels in the Session Layer may be used to meet the
requirements of end systems, but the Session Layer is too high in the
protocol stack to support trusted demultiplexing. The Session Layer
cannot be used to meet the requirements of intermediate systems
because intermediate systems, by definition, do not process protocols
above the Network Layer. Security labels in the Session Layer do not
offer any advantages to security labels in the Transport Layer.
5.6 Layer 6, The Presentation Layer
Explicit security labels are possible in the Presentation Layer. The
presentation syntax may include a security label. This approach
naturally performs translation to the local label format and supports
both connectionless and connection-oriented security labeling.
Implicit security labels are also possible in the Presentation Layer.
Such labels could be either connectionless or connection-oriented.
Security labels in the Presentation Layer may be used to meet the
requirements of end systems, but the Presentation Layer is too high
in the protocol stack to support trusted demultiplexing. The
Presentation Layer cannot be used to meet the requirements of
intermediate systems because intermediate systems, by definition, do
Housley [Page 10]
RFC 1457 Security Label Framework for the Internet May 1993
not process protocols above the Network Layer. To date, no
Presentation Layer protocols have been standardized which include
security labels.
5.7 Layer 7, The Application Layer
Explicit security labels are possible in the Application Layer. The
CCITT X.400 message handling system includes security labels in
message envelopes [18]. Other Application Layer protocols will
probably include security labels in the future. These labels could
be either connectionless or connection-oriented. Should security
labels be incorporated into transaction processing protocols and
message handling protocols, these will most likely be connectionless
security labels; should security labels be incorporated into other
application protocols, these will most likely be connection-oriented
security labels. Application layer protocols are unique in that they
can include security label information which is specific to a
particular application without burdening other applications with the
syntax or semantics of that security label.
Store and forward application protocols, like electronic messaging
and directory protocols, deserve special attention. In terms of the
OSI Reference Model, they are end system protocols, but multiple end
systems cooperate to provide the communications service. End systems
may use security labels to determine which end system should be next
in a chain of store and forward interactions; this use of security
labels is very similar to the label-based routing/relay decisions
made by routers except that the security labels are carried in an
Application Layer protocol. Also, Application Layer protocols must
be used to carry security labels in a store and forward application
when sensitivity labels must be concealed from some end systems in
the chain or when some end systems in the chain are untrustworthy.
Implicit security labels are also possible in the Application Layer.
These labels could be either connectionless or connection-oriented.
Application title or well know port number might be used to determine
the implicit label.
Security labels in the Application Layer may be used to meet the
requirements of end systems, but the Application Layer is too high in
the protocol stack to support trusted demultiplexing. The
Application Layer cannot be used to meet the requirements of
intermediate systems because intermediate systems, by definition, do
not process protocols above the Network Layer.
Housley [Page 11]
RFC 1457 Security Label Framework for the Internet May 1993
6.0 Summary
Very few hard rules exist for security labels. Internet architects
and protocol designers face many tradeoffs when making security label
placement decisions. However, a few guidelines can be derived from
the preceding discussion:
First, security label-based routing decisions are best supported by
explicit security labels in the Data Link Layer and the Network
Layer. When bridges are making the routing decisions, the Data Link
Layer should carry the explicit security label; when routers are
making the routing decisions, the Network Layer should carry the
explicit security label.
Second, when security labels are specific to a particular application
it is wise to define them in the application protocol, so that these
security labels will not burden other applications on the network.
Third, when trusted demultiplexing is a concern, the Network Layer
(preferably the SNICP) or Transport Layer should be used to carry the
explicit security label. The SNICP or transport protocol are
especially attractive when combined with a cryptographic protocol
that binds the security label to the data and protects the both
against undetected modification.
Fourth, to avoid explicit security label translation, a common
explicit security label format should be defined for the Internet.
Registration of security label semantics should be used so that many
security policies can be supported by the common explicit security
label syntax.
References
[1] ISO Open Systems Interconnection - Basic Reference Model (ISO
7498). International Organization for Standardization, 1981.
[2] Dictionary of Military and Associated Terms (JCS Pub 1). Joint
Chiefs of Staff. 1 April 1984.
[3] Security Requirements for Automatic Data Processing (ADP) Systems
(DODD 5200.28). Department of Defense. 21 March 1988.
[4] Information Processing Systems - Open Systems Interconnection
Reference Model - Security Architecture (ISO 7498-2).
Organization for Standardization, 1988.
[5] Biba, K. J. "Integrity Considerations for Secure Computer
Systems", MTR-3153, The Mitre Corporation, April 1977.
Housley [Page 12]
RFC 1457 Security Label Framework for the Internet May 1993
[6] Bell, D. E.; LaPadula, L. J. "Secure Computer System: Unified
Exposition and Multics Interpretation", MTR-2997, The MITRE
Corporation, March 1976.
[7] Kent, S. "U.S. Department of Defense Security Options for the
Internet Protocol", RFC 1108, BBN Communications, November 1992.
[8] Trusted Computer System Evaluation Criteria (DoD 5200.28-STD)
National Computer Security Center, 26 December 1985.
[9] Trusted Network Interpretation of the Trusted Computer System
Evaluation Criteria, (NCSC-TG-005, Version-1). National Computer
Security Center, 31 July 1987.
[10] Nazario, Noel (Chairman). "Standard Security Label for GOSIP An
Invitational Workshop", NISTIR 4614, June 1991.
[11] Dinkel, Charles (Editor). "Secure Data Network System (SDNS)
Network, Transport, and Message Security Protocols", NISTIR 90-
4250, February 1990, pp 39-62.
[12] Dinkel, Charles (Editor). "Secure Data Network System (SDNS) Key
Management Documents", NISTIR 90-4262, February 1990.
[13] IEEE Standards for Local Area Networks: Logical Link Control,
IEEE 802.2. The Institute of Electrical and Electronics
Engineers, Inc, 1984.
[14] IEEE Standards for Local Area Networks: Carrier Sense Multiple
Access with Collision Detection (CSMA/CD) Access Method and
Physical Layer Specification, IEEE 802.3. The Institute of
Electrical and Electronics Engineers, Inc, 1985.
[15] Recommendation X.25, Interface Between Data Terminal Equipment
(DTE) and Data Circuit Terminating Equipment (DCE) for Terminals
Operating in the Packet Mode on Public Data Networks.
Consultative Committee, International Telephone and Telegraph
(CCITT), 1984.
[16] Information Processing Systems - Open Systems Interconnection -
Connection oriented transport protocol specification (ISO 8073).
Organization for Standardization, 1985. [Also ISO 8208]
[17] Information Processing Systems - Open Systems Interconnection -
Protocol for providing the connectionless-mode transport service
(ISO 8602). Organization for Standardization, 1986.
Housley [Page 13]
RFC 1457 Security Label Framework for the Internet May 1993
[18] Recommendation X.411, Message Handling Systems: Message Transfer
System: Abstract Service Definition and Procedures. Consultative
Committee, International Telephone and Telegraph (CCITT), 1988.
[Also ISO 8883-1]
Security Considerations
This entire memo is devoted to a discussion of a Framework for
labeling information for security purposes in network protocols.
Author's Address
Russell Housley
Xerox Special Information Systems
7900 Westpark Drive
McLean, Virginia 22102
Phone: 703-790-3767
EMail: Housley.McLean_CSD@Xerox.COM
Housley [Page 14]