Subject: iSCSI Security: Environment and Requirements

From: [email-masked]
Date: Tue, 3 Jul 2001 17:13:05 -0400

As part of some work to get some more concrete proposals
for some of the open portions of iSCSI security (results
will hopefully be visible soon), I generated the following
working note.  It'll probably go into an Internet Draft
next week, but I can't be sure I'll get that done far enough
ahead of the deadline for review and comment.  Hence, I'm
putting this up now for discussion with the intent of putting
an improved version into the draft.

Comment away.  Thanks,
--David

iSCSI and Security: Environment and Requirements
Drafty draft - working note
-- David L. Black, July 2001

-- Conventions and Caveat

Capitalized words are to be read according to RFC 2119.  All descriptions
of current status or the like are to the best of my (WG co-chair)
understanding, and are accordingly subject to change.

-- iSCSI overview

iSCSI is an TCP/IP encapsulation of the SCSI protocols used to
access disk, tape and other devices.  iSCSI is a client-server
protocol in which clients (Initiators) open connections to servers
(Targets).  We use the SCSI terms Initiators and Targets for
clarity and to avoid the common intuition that clients have
considerably less computational and memory resources than servers;
the reverse is often the case for SCSI, as Targets are usually
dedicated devices of some form.

iSCSI Initiators and Targets are layer 5 entities that are independent
of TCP ports and IP addresses.  An Initiator or Target may use multiple
communication endpoints  (<TCP port, IP address> pair), and such
endpoints may be shared by multiple Initiators or Targets, although the
common case for sharing will be that the sharing entities are all of the
same type (i.e., all Initiators or all Targets).

The iSCSI protocol has a text based negotiation mechanism as part of
its initial (Login) procedure.  The mechanism is extensible both in
what can be negotiated (new text keys and values can be defined) and
in the number of negotiation rounds to accommodate functionality such
as authentication based on responding to a challenge.  

-- Security functionality requirements

o Authentication

Bi-directional authentication (Initiator to Target) and vice-versa is
REQUIRED.  This authentication is logically of the iSCSI Initiator to
the iSCSI Target (as opposed to authenticating the communication endpoints).
The intention of the iSCSI design is that Initiator and Target should
represent the systems (e.g., host and disk array) participating in
the communication, as opposed to communication interfaces or endpoints.

The current status is that the Secure Remote Password protocol
(SRP) as specified in RFC 2945 will be REQUIRED of all implementations
based on the text-based multi-round negotiation mechanism defined above.
A number of additional authentication protocols have also been specified.
Negotiation between Initiator and Target is used to determine which
authentication algorithm will be used; the connection closes if either
side requires authentication and no mutually acceptable algorithm can
be agreed upon.

o Data origin authentication (cryptographic communication integrity)

Cryptographic integrity of all iSCSI communications after the login
phase is REQUIRED, and this integrity mechanism must be keyed to an
authentication to provide data origin authentication for all received
data (e.g., this prevents a TCP hijack attack from succeeding because
the hijacker does not know the key required to generate the correct
cryptographic integrity checks).  The current status is that ESP with
NULL encryption has been chosen as the implementation approach to
meet this requirement, but the Authentication Algorithm (MAC, e.g.,
HMAC-SHA1) has not been selected.

o Confidentiality

A confidentiality mechanism will be part of the iSCSI specification,
but the current status is that any such mechanism will be OPTIONAL
to implement and use.  The current status is also that ESP has been
chosen as the implementation approach, but no preferred ESP transform
(i.e., encryption algorithm) has been chosen.  My personal expectation
is that a single algorithm will be RECOMMENDED or REQUIRED of those
implementations that choose to implement encryption.

o Negotiation of Security Functionality

The current status is that the iSCSI negotiation mechanism described above
is expected to be usable to negotiate away security functionality in
environments
where it is not needed (as determined by local policy).  The inband
negotiation
mechanism has no intrinsic security, as it's done in the clear as far as
iSCSI is concerned.  If such a negotiation is conducted over an otherwise
unsecured connection, man-in-the-middle attacks on this negotiation have
to be considered when it is used to negotiate use of security functionality.

o Approach to Specification

Selecting appropriate subsets of existing security specifications is
believed
to be acceptable provided that good engineering judgement is used and the
result is sound from a security standpoint.  An example below is that iSCSI
currently intends to use ESP without AH even though both are REQUIRED by the
basic IPsec RFCs.  Such an approach may also be applicable in areas such as
IKE/ISAKMP and algorithm selection (e.g., believe it or not, DES is still
REQUIRED). 

-- Implementation Classes and Resource

iSCSI will be implemented on a variety of systems ranging from large
servers running general purpose operating systems to embedded host
bus adapters (HBAs).  Host Bus Adapter is a general term for a SCSI
interface to other device(s); it's roughly analogous to the term
Network Interface Card (NIC) for a TCP/IP, except that HBAs are expected
to have on-board SCSI implementations, whereas most NICs do not
implement TCP, UDP, or IP.  In general, a host bus adapter is the
most constrained implementation environment, although an HBA may draw
upon the resources of the system to which it is attached in some cases
(e.g., authentication computations required for system setup).  More
resources tend to be available to implementations for embedded and
general purpose operating systems.  The following general guidelines
indicate the level of resources that authentication, keying, and rekeying
functionality can reasonably expect to draw upon:

- Low power processors with small word size are generally not used,
	as power is usually not a constraining factor for these systems
	(with the possible exception of HBAs, which can draw upon the
	computational resources of the system into which they are inserted).
	Computational horsepower should be available to perform a
	reasonable amount of exponentiation as part of authentication
	and key derivation for connection setup.  The same is true of
	rekeying, although the ability to avoid exponentiation for
	rekeying may be desirable (but NOT REQUIRED).

- RAM and/or flash resources tend to be constrained in embedded
implementations.
	8-10 MB of code and data is clearly excessive, 800-1000 KB is larger
	than desirable, but tolerable if necessary and 80-100 KB should be
fine.
	These numbers are intended as rough order of magnitude guidance, and
	should not be taken as hard targets or limits (e.g., smaller code
sizes
	are always better).  Software implementations in general purpose
operating
	systems may have more leeway, but even in that environment these
guidelines
	are a reasonable approximation.

In summary, the primary concern in looking for a "lightweight"
authentication
and keying mechanism is code size, as the computational horsepower to do
exponentiations (e.g., those required by SRP) is generally expected to be
available.

-- Implementation Scaling

There is no dominant iSCSI usage scenario - such scenarios range from
a single connection constrained only by media bandwidth to connection
fan-out well beyond the current practical limits of Fibre Channel -
hundreds of Initiator connections to a single Target or single
communication endpoint are quite likely in some cases.  SCSI sessions
and hence the connections they use tend to be relatively long lived;
for disk storage, a host typically opens a SCSI connection on boot and
closes it on shutdown.  Tape session length tends to be measured in
significant fractions of an hour or multiple hours (i.e., rapid fire
sharing of the same tape device among different users is unusual),
although tape robot control sessions can be short when the robot is
being shared.  On the other hand, tape will not see a large fan-out
as each drive is dedicated to a single user at a single time, and
a dozen tape drives is a large tape device; add a few robot sessions
to this number to get a total.

Given current networking technology, security solutions must work
well at 1 Gbit/sec; solutions that scale up to 10 Gbits/sec would
be nice to use but are not an absolute requirement as there are
issues with a number of technologies at 10 Gbits/sec.

-- Implementation Environment Q&A

Gathering up a bunch of questions about the 

Q: Will IPsec generally be present on systems supporting iSCSI due to other
	traffic requiring IPsec security?
A: No, especially on Targets which may have no other important
functionality.

Q: What are the persistence requirements for security state across power
	off or loss of TCP connections?
A: Essentially none; most SCSI state does not survive power loss or system
crash
	events with a few exceptions like persistent reservations.  Security
state
	for open TCP connections need not survive the loss of those
connections.
	Any new connection will have to re-authenticate.

Q: What about load-balancing or fail-over middleboxes?
A: Discussions of iSCSI-aware middleboxes have usually assumed that such
	a box serves as an endpoint for the iSCSI sessions on both sides of
it.
	There have not been any major objections voiced in the WG to
	the fashion in which IPsec can interact with such boxes (e.g., TCP
	header is encrypted).

Q: What about NATs?
A: The IP Storage WG charter indicates that the ability to operate across
	NATs is important, but not an absolute requirement.  Work is
underway
	in the ipsec WG to specify transparent operation across NATs via
	UDP encapsulation.

---------------------------------------------------
David L. Black, Senior Technologist
EMC Corporation, 42 South St., Hopkinton, MA  01748
+1 (508) 435-1000 x75140     FAX: +1 (508) 497-8500
[email-masked]       Mobile: +1 (978) 394-7754
---------------------------------------------------

---

From: [email-masked]
Date: Thu, 5 Jul 2001 09:05:48 -0400

CC'ing the list with an answer to an off-line question as I believe
the answer is of general interest.

> Is built-in IPsec support a requirement for iSCSI initiators and
> targets or can initiators/targets rely on external IPsec gateways.
> Also, what type of IPsec support (tunnel or transport mode,
> AH/ESP) is envisioned?

As of right now, external gateways can be used, BUT the result
would be that only the interface on the secure side of the gateway
would be considered compliant to the iSCSI spec (i.e., the interface
between the iSCSI device and the gateway would NOT be compliant).

I would offer the caution that some of the possible solutions to the
rekeying situation may result in tighter binding between iSCSI and
IPsec that would favor built-in IPsec support and/or require modifications
to external gateways.  I believe the anticipated IPsec requirement
is ESP in tunnel mode, but this is also subject to change (e.g.,
will almost certainly be discussed further in London).

Thanks,
--David

---

From: "Saqib Jang" <[email-masked]>
Date: Fri, 6 Jul 2001 11:13:12 -0700

David,
Thanks for your reponse to the earlier question. Have another
quick question.

> will almost certainly be discussed further in London).

Are iSCSI HBAs considered "gateways" in IPsec terminilogy? Per
RFC 2401, only "gateways" can support only tunnel-mode IPsec, whereas
"hosts' are required to support both tunnel and transport mode IPsec.

Saqib

Saqib Jang
Margalla Communications, Inc.
3301 El Camino Real, Suite 220
Atherton, CA 94027
Ph: 650 298 8462
Fax: 650 851 1613
www.margallacomm.com

---

From: [email-masked]
Date: Fri, 6 Jul 2001 16:52:04 -0400

> "hosts' are required to support both tunnel and transport mode IPsec.

Not exactly.  The current path is to pick out an
appropriate subset of IPsec -- if we were to require
IPsec starting with RFC 2401, we'd wind up requiring 
a lot of stuff (AH, ESP, IKE, ISAKMP, DES, etc.).  Not
only is this far more than is necessary, but it also
requires things that have little current justification
(e.g., AH and DES).  In any case, the whole point of this
paragraph is that one should not to make inferences about
iSCSI based on requirements in IPsec RFCs as the current
plan is to require an IPsec subset. 

The specific answer to your question is that an iSCSI
HBA is a "host" as far as IPsec is concerned, however,
here are rationales I've heard for only requiring tunnel mode:

(1) Only one IPsec mode (transport or tunnel) is needed
	 for a protocol like iSCSI.
(2) Tunnel mode has better NAT transparency because the
	encapsulated IP and TCP checksums work in tunnel mode
	(they fail in transport mode).  See
	draft-ietf-ipsec-nat-reqts-00.txt for more details.
(3) Tunnel mode would allow the use of external gateways,
	transport mode would not.

Thanks,
--David