SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


    [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

    iSCSI Security: Environment and Requirements



    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
    black_david@emc.com       Mobile: +1 (978) 394-7754
    ---------------------------------------------------
    
    


Home

Last updated: Tue Sep 04 01:04:21 2001
6315 messages in chronological order