home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / iscsiprj.zip / draft-ietf-ips-security-12.txt < prev   
Text File  |  2002-06-02  |  156KB  |  3,961 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. IPS Working Group                                               B. Aboba
  8. INTERNET-DRAFT                                                 Microsoft
  9. Category: Standards Track                                   Joshua Tseng
  10. <draft-ietf-ips-security-12.txt>                          Nishan Systems
  11. 16 May 2002                                                 Jesse Walker
  12.                                                                    Intel
  13.                                                            Venkat Rangan
  14.                                                   Rhapsody Networks Inc.
  15.                                                        Franco Travostino
  16.                                                          Nortel Networks
  17.  
  18.                 Securing Block Storage Protocols over IP
  19.  
  20. Status of this Memo
  21.  
  22. This document is an Internet-Draft and is in full conformance with all
  23. provisions of Section 10 of RFC 2026.
  24.  
  25. Internet-Drafts are working documents of the Internet Engineering Task
  26. Force (IETF), its areas, and its working groups.  Note that other groups
  27. may also distribute working documents as Internet-Drafts.
  28.  
  29. Internet-Drafts are draft documents valid for a maximum of six months
  30. and may be updated, replaced, or obsoleted by other documents at any
  31. time.  It is inappropriate to use Internet-Drafts as reference material
  32. or to cite them other than as "work in progress."
  33.  
  34. The list of current Internet-Drafts can be accessed at
  35. http://www.ietf.org/ietf/1id-abstracts.txt
  36.  
  37. The list of Internet-Draft Shadow Directories can be accessed at
  38. http://www.ietf.org/shadow.html.
  39.  
  40. Copyright Notice
  41.  
  42. Copyright (C) The Internet Society (2002).  All Rights Reserved.
  43.  
  44. Abstract
  45.  
  46. This document discusses how to secure block storage and storage
  47. discovery protocols running over IP.
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58. Aboba, et al.                Standards Track                    [Page 1]
  59.  
  60.  
  61.  
  62.  
  63.  
  64. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  65.  
  66.  
  67. Table of Contents
  68.  
  69. 1.     Introduction ..........................................    4
  70.    1.1       iSCSI overview ..................................    4
  71.    1.2       iFCP overview ...................................    5
  72.    1.3       FCIP overview ...................................    5
  73.    1.4       IPsec overview ..................................    5
  74.    1.5       Terminology .....................................    6
  75.    1.6       Requirements language ...........................    7
  76. 2.     Block storage protocol security .......................    8
  77.    2.1       Security requirements  ..........................    8
  78.    2.2       Resource constraints ............................   11
  79.    2.3       Security protocol ...............................   12
  80.    2.4       SLPv2 security ..................................   16
  81.    2.5       iSNS security ....................................  21
  82. 3.     iSCSI security inter-operability guidelines ...........   25
  83.    3.1       iSCSI security issues ...........................   25
  84.    3.2       iSCSI and IPsec interaction .....................   26
  85.    3.3       Initiating a new iSCSI session ..................   27
  86.    3.4       Graceful iSCSI teardown .........................   27
  87.    3.5       Non-graceful iSCSI teardown .....................   28
  88.    3.6       Application layer CRC ...........................   29
  89. 4.     iFCP and FCIP security issues .........................   30
  90.    4.1       iFCP and FCIP Authentication Requirements .......   30
  91.    4.2       iFCP Interaction with IPsec and IKE .............   31
  92.    4.3       FCIP Interaction with IPsec and IKE .............   32
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118. Aboba, et al.                Standards Track                    [Page 2]
  119.  
  120.  
  121.  
  122.  
  123.  
  124. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  125.  
  126.  
  127. 5.     Security considerations ...............................   33
  128.    5.1       Transport mode versus tunnel mode ...............   33
  129.    5.2       NAT traversal ...................................   35
  130.    5.3       IKE issues ......................................   36
  131.    5.4       Rekeying issues .................................   36
  132.    5.5       Transform issues ................................   38
  133.    5.6       Fragmentation issues ............................   41
  134.    5.7       Security checks .................................   42
  135.    5.8       Authentication issues ...........................   42
  136.    5.9       Use of AES in counter mode ......................   46
  137.    5.10      Use of SRP in iSCSI Authentication ..............   46
  138. 6.     Normative references ..................................   47
  139. 7.     Informative references ................................   49
  140. Appendix A - Well Known Groups for Use with SRP  .............   53
  141. Appendix B - Software Performance of IPsec Transforms  .......   55
  142.    B.1       Authentication transforms .......................   55
  143.    B.2       Encryption and Authentication transforms ........   58
  144. Acknowledgments ..............................................   63
  145. Authors' Addresses ...........................................   64
  146. Intellectual Property Statement ..............................   65
  147. Full Copyright Statement .....................................   65
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178. Aboba, et al.                Standards Track                    [Page 3]
  179.  
  180.  
  181.  
  182.  
  183.  
  184. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  185.  
  186.  
  187. 1.  Introduction
  188.  
  189. This specification discusses use of the IPsec protocol suite for
  190. protecting block storage protocols over IP networks (including iSCSI,
  191. iFCP and FCIP), as well as storage discovery protocols (iSNS and SLPv2).
  192.  
  193. 1.1.  iSCSI overview
  194.  
  195. iSCSI, described in [iSCSI], is a connection-oriented command/response
  196. protocol that runs over TCP, and is used to access disk, tape and other
  197. devices.  iSCSI is a client-server protocol in which clients
  198. (Initiators) open connections to servers (Targets) and perform an iSCSI
  199. login.
  200.  
  201. This draft uses the SCSI terms Initiator and Target for clarity and to
  202. avoid the common assumption that clients have considerably less
  203. computational and memory resources than servers; the reverse is often
  204. the case for SCSI, as Targets are commonly dedicated devices of some
  205. form.
  206.  
  207. The iSCSI protocol has a text based negotiation mechanism as part of its
  208. initial (login) procedure.  The mechanism is extensible in what can be
  209. negotiated (new text keys and values can be defined) and also in the
  210. number of negotiation rounds (e.g., to accommodate functionality such as
  211. challenge-response authentication).  While the iSCSI login may include
  212. mutual authentication of the iSCSI endpoints and negotiation of session
  213. parameters, iSCSI does not define its own per-packet authentication,
  214. integrity, confidentiality or replay protection mechanisms.
  215.  
  216. After a successful login, the iSCSI Initiator may issue SCSI commands
  217. for execution by the iSCSI Target, which returns a status response for
  218. each command, over the same connection.  A single connection is used for
  219. both command/status messages as well as transfer of data and/or optional
  220. command parameters.  An iSCSI session may have multiple connections, but
  221. a separate login is performed on each.  The iSCSI session terminates
  222. when its last connection is closed.
  223.  
  224. iSCSI Initiators and Targets are layer 5 entities that are independent
  225. of TCP ports and IP addresses.  Initiators and Targets have names whose
  226. syntax is defined in [iSCSIName].  iSCSI sessions between a given
  227. Initiator and Target are run over one or more TCP connections between
  228. those entities.  That is, the login process establishes an association
  229. between an iSCSI Session and the TCP connection(s) over which iSCSI PDUs
  230. will be carried.
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238. Aboba, et al.                Standards Track                    [Page 4]
  239.  
  240.  
  241.  
  242.  
  243.  
  244. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  245.  
  246.  
  247. 1.2.  iFCP overview
  248.  
  249. iFCP, defined in [iFCP], is a gateway-to-gateway protocol, which
  250. provides transport services to Fibre Channel devices over a TCP/IP
  251. network. iFCP allows interconnection and networking of existing Fibre
  252. Channel devices at wire speeds over an IP network. iFCP implementations
  253. emulate fabric services in order to improve fault tolerance and
  254. scalability by fully leveraging IP technology. Each TCP connection is
  255. used to support storage traffic between a unique pair of Fibre Channel
  256. N_PORTs.
  257.  
  258. iFCP does not have a native, in-band security mechanism. Rather, it
  259. relies upon the IPsec protocol suite to provide data confidentiality and
  260. authentication services, and IKE as the key management protocol. iFCP
  261. uses TCP to provide congestion control, error detection and error
  262. recovery.
  263.  
  264. 1.3.  FCIP overview
  265.  
  266. FCIP, defined in [FCIP], is a pure FC encapsulation protocol that
  267. transports FC frames. Current specification work intends this for
  268. interconnection of Fibre Channel switches over TCP/IP networks, but the
  269. protocol is not inherently limited to connecting FC switches.  FCIP
  270. differs from iFCP in that no interception or emulation of fabric
  271. services is involved. One or more TCP connections are bound to an FCIP
  272. Link, which is used to realize Inter-Switch Links (ISLs) between pairs
  273. of Fibre Channel entities.
  274.  
  275. FCIP does not have a native, in-band security mechanism.  Rather, it
  276. relies upon the IPsec protocol suite to provide data confidentiality and
  277. authentication services, and IKE as the key management protocol.  FCIP
  278. uses TCP to provide congestion control, error detection and error
  279. recovery.
  280.  
  281. 1.4.  IPsec overview
  282.  
  283. IPsec is a protocol suite which is used to secure communication at the
  284. network layer between two peers.  The IPsec protocol suite is specified
  285. within the IP Security Architecture [RFC2401], IKE [RFC2409], IPsec
  286. Authentication Header (AH) [RFC2402] and IPsec Encapsulating Security
  287. Payload (ESP) [RFC2406] documents.  IKE is the key management protocol
  288. while AH and ESP are used to protect IP traffic.
  289.  
  290. An IPsec SA is a one-way security association, uniquely identified by
  291. the 3-tuple: SPI, protocol (ESP) and destination IP.  The parameters for
  292. an IPsec security association are typically established by a key
  293. management protocol. These include the encapsulation mode, encapsulation
  294. type, session keys and SPI values.
  295.  
  296.  
  297.  
  298. Aboba, et al.                Standards Track                    [Page 5]
  299.  
  300.  
  301.  
  302.  
  303.  
  304. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  305.  
  306.  
  307. IKE is a two phase negotiation protocol based on the modular exchange of
  308. messages defined by ISAKMP [RFC2408],and the IP Security Domain of
  309. Interpretation (DOI) [RFC2407]. IKE has two phases, and accomplishes the
  310. following functions:
  311.  
  312. [1]  Protected cipher suite and options negotiation - using keyed MACs
  313.      and encryption and anti-replay mechanisms
  314.  
  315. [2]  Master key generation - such as via MODP Diffie-Hellman
  316.      calculations
  317.  
  318. [3]  Authentication of end-points
  319.  
  320. [4]  IPsec SA management (selector negotiation, options negotiation,
  321.      create, delete, and rekeying)
  322.  
  323. Items 1 through 3 are accomplished in IKE Phase 1, while item 4 is
  324. handled in IKE Phase 2.
  325.  
  326. An IKE Phase 2 negotiation is performed to establish both an inbound and
  327. an outbound IPsec SA.  The traffic to be protected by an IPsec SA is
  328. determined by a selector which has been proposed by the IKE Initiator
  329. and accepted by the IKE Responder.  In IPsec transport mode, the IPsec
  330. SA selector can be a "filter" or traffic classifier, defined as the
  331. 5-tuple: <Source IP address, Destination IP address, transport protocol
  332. (UDP/SCTP/TCP), Source port, Destination port>.  The successful
  333. establishment of a IKE Phase-2 SA results in the creation of two uni-
  334. directional IPsec SAs fully qualified by the tuple <Protocol (ESP/AH),
  335. destination address, SPI>.
  336.  
  337. The session keys for each IPsec SA are derived from a master key,
  338. typically via a MODP Diffie-Hellman computation.  Rekeying of an
  339. existing IPsec SA pair is accomplished by creating two new IPsec SAs,
  340. making them active, and then optionally deleting the older IPsec SA
  341. pair.  Typically the new outbound SA is used immediately, and the old
  342. inbound SA is left active to receive packets for some locally defined
  343. time, perhaps 30 seconds or 1 minute.
  344.  
  345. 1.5.  Terminology
  346.  
  347. Fibre Channel
  348.           Fibre Channel (FC) is a gigabit speed networking technology
  349.           primarily used to implement Storage Area Networks (SANs).  FC
  350.           is standardized under American National Standard for
  351.           Information Systems of the National Committee for Information
  352.           Technology Standards (ANSI-NCITS) in its T11 technical
  353.           committee.
  354.  
  355.  
  356.  
  357.  
  358. Aboba, et al.                Standards Track                    [Page 6]
  359.  
  360.  
  361.  
  362.  
  363.  
  364. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  365.  
  366.  
  367. FCIP      Fibre Channel over IP (FCIP) is a protocol for interconnecting
  368.           islands of Fibre Channel SANs over IP Networks so as to form a
  369.           unified SAN in a single Fibre Channel fabric. The principal
  370.           FCIP interface point to the IP Network is the FCIP Entity. The
  371.           FCIP Link represents one or more TCP connections that exist
  372.           between a pair of FCIP Entities.
  373.  
  374. HBA       Host Bus Adapter (HBA) is a generic term for a SCSI interface
  375.           to other device(s); it's roughly analogous to the term Network
  376.           Interface Card (NIC) for a TCP/IP network interface, except
  377.           that HBAs generally have on-board SCSI implementations,
  378.           whereas most NICs do not implement TCP, UDP, or IP.
  379.  
  380. iFCP      iFCP is a gateway-to-gateway protocol, which provides Fibre
  381.           Channel fabric services to Fibre Channel devices over a TCP/IP
  382.           network.
  383.  
  384. IP block storage protocol
  385.           Where used within this document, the term "IP block storage
  386.           protocol" applies to all block storage protocols running over
  387.           IP, including iSCSI, iFCP and FCIP.
  388.  
  389. iSCSI     iSCSI is a client-server protocol in which clients
  390.           (Initiators) open connections to servers (Targets).
  391.  
  392. iSNS      The Internet Storage Name Server (iSNS) protocol provides for
  393.           discovery and management of iSCSI and Fibre Channel (FCP)
  394.           storage devices.  iSNS applications store iSCSI and FC device
  395.           attributes and monitor their availability and reachability,
  396.           providing a consolidated information repository for an
  397.           integrated IP storage network.  iFCP requires iSNS for
  398.           discovery and management, while iSCSI may use iSNS for
  399.           discovery, and FCIP does not use iSNS.
  400.  
  401. Initiator The iSCSI Initiator connects to the Target on well-known TCP
  402.           port 3260. The iSCSI Initiator then issues SCSI commands for
  403.           execution by the iSCSI Target.
  404.  
  405. Target    The iSCSI Target listens on a well-known TCP port for incoming
  406.           connections, and  returns a status response for each command
  407.           issued by the iSCSI Initiator, over the same connection.
  408.  
  409. 1.6.  Requirements language
  410.  
  411. In this document, the key words "MAY", "MUST,  "MUST  NOT",  "OPTIONAL",
  412. "RECOMMENDED",  "SHALL", "SHALL NOT", "SHOULD",  and  "SHOULD  NOT", are
  413. to be interpreted as described in [RFC2119].
  414.  
  415.  
  416.  
  417.  
  418. Aboba, et al.                Standards Track                    [Page 7]
  419.  
  420.  
  421.  
  422.  
  423.  
  424. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  425.  
  426.  
  427. Note that requirements specified in this document apply only to use of
  428. IPsec and IKE with IP block storage protocols. Thus, these requirements
  429. do not apply to IPsec implementations in general. Implementation
  430. requirements language should therefore be assumed to relate to the
  431. availability of features for use with IP block storage security only.
  432.  
  433. Although the security requirements in this document are already
  434. incorporated into the iSCSI [iSCSI], iFCP [iFCP] and FCIP [FCIP]
  435. standards track documents, they are reproduced here for convenience.  In
  436. the event of a discrepancy, the individual protocol standards track
  437. documents take precedence.
  438.  
  439. 2.  Block storage protocol security
  440.  
  441. 2.1.  Security requirements
  442.  
  443. IP Block storage protocols such as iSCSI, iFCP and FCIP are used to
  444. transmit SCSI commands over IP networks.  Therefore, both the control
  445. and data packets of these IP block storage protocols are vulnerable to
  446. attack.  Examples of attacks include:
  447.  
  448. [1]  An adversary may attempt to acquire confidential data and
  449.      identities by snooping data packets.
  450.  
  451. [2]  An adversary may attempt to modify packets containing data and
  452.      control messages.
  453.  
  454. [3]  An adversary may attempt to inject packets into an IP block storage
  455.      connection.
  456.  
  457. [4]  An adversary may attempt to hijack TCP connection(s) corresponding
  458.      to an IP block storage session.
  459.  
  460. [5]  An adversary may launch denial of service attacks against IP block
  461.      storage devices such as by sending a TCP reset.
  462.  
  463. [6]  An adversary may attempt to disrupt security negotiation process,
  464.      in order to weaken the authentication, or gain access to user
  465.      passwords.  This includes disruption of application-layer
  466.      authentication negotiations such as iSCSI Login.
  467.  
  468. [7]  An adversary may attempt to impersonate a legitimate IP block
  469.      storage entity.
  470.  
  471. [8]  An adversary may launch a variety of attacks (packet modification
  472.      or injection, denial of service) against the discovery (SLPv2,
  473.      [RFC2608]) or discovery and management (iSNS, [iSNS]) process.
  474.      iSCSI can use SLPv2 or iSNS. FCIP only uses SLPv2, and iFCP only
  475.  
  476.  
  477.  
  478. Aboba, et al.                Standards Track                    [Page 8]
  479.  
  480.  
  481.  
  482.  
  483.  
  484. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  485.  
  486.  
  487.      uses iSNS.
  488.  
  489. Since iFCP and FCIP devices are the last line of defense for a whole
  490. Fibre Channel island, the above attacks, if successful, could compromise
  491. the security of all the Fibre Channel hosts behind the devices.
  492.  
  493. To address the above threats, IP block storage security protocols MUST
  494. provide confidentiality, data origin authentication, integrity, and
  495. replay protection on a per-packet basis.  Confidentiality services are
  496. important since IP block storage traffic may traverse insecure public
  497. networks. The IP block storage security protocols MUST support perfect
  498. forward secrecy in the rekeying process.
  499.  
  500. Bi-directional authentication of the communication endpoints MUST be
  501. provided. There is no requirement that the identities used in
  502. authentication be kept confidential (e.g., from a passive eavesdropper).
  503.  
  504. For a security protocol to be useful, CPU overhead and hardware
  505. availability must not preclude implementation at 1 Gbps today.
  506. Implementation feasibility at 10 Gbps is highly desirable, but may not
  507. be demonstrable at this time.  These performance levels apply to
  508. aggregate throughput, and include all TCP connections used between IP
  509. block storage endpoints.  IP block storage communications typically
  510. involve multiple TCP connections.  Performance issues are discussed
  511. further in Appendix B.
  512.  
  513. Enterprise data center networks are considered mission-critical
  514. facilities that must be isolated and protected from possible security
  515. threats.  Such networks are often protected by security gateways, which
  516. at a minimum provide a shield against denial of service attacks.  The IP
  517. block storage security architecture should be able to leverage the
  518. protective services of the existing security infrastructure, including
  519. firewall protection, NAT and NAPT services, and VPN services available
  520. on existing security gateways.
  521.  
  522. When iFCP or FCIP devices are deployed within enterprise networks, IP
  523. addresses will be typically be statically assigned as is the case with
  524. most routers and switches.  Consequently, support for dynamic IP
  525. address assignment, as described in [DHCPIPsec], will typically not be
  526. required, although it cannot be ruled out.  Such facilities will also be
  527. relevant to iSCSI hosts whose addresses are dynamically assigned. As a
  528. result, the IP block storage security protocols MUST NOT introduce
  529. additional security vulnerabilities where dynamic address assignment is
  530. supported.
  531.  
  532. While IP block storage security is mandatory to implement, it is not
  533. mandatory to use.  The security services used depend on the
  534. configuration and security policies put in place.  For example,
  535.  
  536.  
  537.  
  538. Aboba, et al.                Standards Track                    [Page 9]
  539.  
  540.  
  541.  
  542.  
  543.  
  544. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  545.  
  546.  
  547. configuration will influence the authentication algorithm negotiated
  548. within iSCSI Login, as well as the security services (confidentiality,
  549. data origin authentication, integrity, replay protection) and transforms
  550. negotiated when IPsec is used to protect IP block storage protocols such
  551. as iSCSI, iFCP and FCIP.
  552.  
  553. FCIP implementations may allow enabling and disabling security
  554. mechanisms at the granularity of an FCIP Link.  For iFCP, the
  555. granularity corresponds to an iFCP Portal. For iSCSI, the granularity of
  556. control is typically that of an iSCSI session, although it is possible
  557. to exert control down to the granularity of the destination IP address
  558. and TCP port.
  559.  
  560. Note that with IPsec, security services are negotiated at the
  561. granularity of an IPsec SA, so that IP block storage connections
  562. requiring a set of security services different from those negotiated
  563. with existing IPsec SAs will need to negotiate a new IPsec SA. Separate
  564. IPsec SAs are also advisable where quality of service considerations
  565. dictate different handling of IP block storage connections. Attempting
  566. to apply different quality of service to connections handled by the same
  567. IPsec SA can result in reordering, and falling outside the replay
  568. window. For a discussion of the issues, see [RFC2983].
  569.  
  570. IP block storage protocols can be expected to carry sensitive data and
  571. provide access to systems and data that require protection against
  572. security threats.  SCSI and Fibre Channel currently contain little in
  573. the way of security mechanisms, and rely on physical security,
  574. administrative security, and correct configuration of the communication
  575. medium and systems/devices attached to it for their security properties.
  576.  
  577. For most IP networks, it is inappropriate to assume physical security,
  578. administrative security, and correct configuration of the network and
  579. all attached nodes (a physically isolated network in a test lab may be
  580. an exception).  Therefore, authentication SHOULD be used by IP block
  581. storage protocols (e.g., iSCSI SHOULD use one of its inband
  582. authentication mechanisms or the authentication provided by IKE) in
  583. order to provide a minimal assurance that connections have initially
  584. been opened with the intended counterpart.
  585.  
  586. iSNS, described in [iSNS], is required in all iFCP deployments.  iSCSI
  587. may use iSNS for discovery, and FCIP does not use iSNS.  iSNS
  588. applications store iSCSI and FC device attributes and monitor their
  589. availability and reachability, providing a consolidated information
  590. repository for an integrated IP storage network.  The iSNS specification
  591. defines mechanisms to secure communication between an iSNS server and
  592. its clients.
  593.  
  594.  
  595.  
  596.  
  597.  
  598. Aboba, et al.                Standards Track                   [Page 10]
  599.  
  600.  
  601.  
  602.  
  603.  
  604. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  605.  
  606.  
  607. 2.2.  Resource constraints
  608.  
  609. iFCP and FCIP devices will typically be embedded systems deployed on
  610. racks in air-conditioned data center facilities.  Such embedded systems
  611. may include hardware chipsets to provide data encryption,
  612. authentication, and integrity processing.  Therefore, memory and CPU
  613. resources are generally not a constraining factor.
  614.  
  615. iSCSI will be implemented on a variety of systems ranging from large
  616. servers running general purpose operating systems to embedded host bus
  617. adapters (HBAs). In general, a host bus adapter is the most constrained
  618. iSCSI implementation environment, although an HBA may draw upon the
  619. resources of the system to which it is attached in some cases (e.g.,
  620. authentication computations required for connection setup).  More
  621. resources should be available to iSCSI implementations for embedded and
  622. general purpose operating systems.  The following guidelines indicate
  623. the approximate level of resources that authentication, keying, and
  624. rekeying functionality can reasonably expect to draw upon:
  625.  
  626.   - Low power processors with small word size are generally not used,
  627.     as power is usually not a constraining factor, with the possible
  628.     exception of HBAs, which can draw upon the computational resources
  629.     of the system into which they are inserted).  Computational
  630.     horsepower should be available to perform a reasonable amount of
  631.     exponentiation as part of authentication and key derivation for
  632.     connection setup.  The same is true of rekeying, although the
  633.     ability to avoid exponentiation for rekeying may be desirable (but
  634.     is not an absolute requirement).
  635.  
  636.   - RAM and/or flash resources tend to be constrained in embedded
  637.     implementations.  8-10 MB of code and data for authentication,
  638.     keying, and rekeying is clearly excessive, 800-1000 KB is clearly
  639.     larger than desirable, but tolerable if there is no other
  640.     alternative and 80-100 KB should be acceptable.  These sizes are
  641.     intended as rough order of magnitude guidance, and should not be
  642.     taken as hard Targets or limits (e.g., smaller code sizes are
  643.     always better).  Software implementations for general purpose
  644.     operating systems may have more leeway.
  645.  
  646. The primary resource concern for implementation of authentication and
  647. keying mechanisms is code size, as iSCSI assumes that the computational
  648. horsepower to do exponentiations will be available.
  649.  
  650. There is no dominant iSCSI usage scenario - the scenarios range from a
  651. single connection constrained only by media bandwidth to hundreds of
  652. Initiator connections to a single Target or communication endpoint.
  653. SCSI sessions and hence the connections they use tend to be relatively
  654. long lived; for disk storage, a host typically opens a SCSI connection
  655.  
  656.  
  657.  
  658. Aboba, et al.                Standards Track                   [Page 11]
  659.  
  660.  
  661.  
  662.  
  663.  
  664. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  665.  
  666.  
  667. on boot and closes it on shutdown.  Tape session length tends to be
  668. measured in hours or fractions thereof (i.e., rapid fire sharing of the
  669. same tape device among different Initiators is unusual), although tape
  670. robot control sessions can be short when the robot is shared among tape
  671. drives.  On the other hand, tape will not see a large number of
  672. Initiator connections to a single Target or communication endpoint, as
  673. each tape drive is dedicated to a single use at a single time, and a
  674. dozen tape drives is a large tape device.
  675.  
  676. 2.3.  Security protocol
  677.  
  678. 2.3.1.  Transforms
  679.  
  680. All IP block storage security compliant implementations MUST support
  681. IPsec ESP [RFC2406] to provide security for both control packets and
  682. data packets.  All IP block storage security compliant implementations
  683. MUST support IPsec ESP [RFC2406] to provide security for both control
  684. packets and data packets.  All IP block storage security compliant
  685. implementations MUST support the replay protection mechanisms of IPsec.
  686. When ESP is utilized, per-packet data origin authentication, integrity
  687. and replay protection MUST be used.
  688.  
  689. To provide confidentiality with ESP, ESP with 3DES in CBC mode MUST be
  690. supported, and AES in Counter mode, as described in [AESCTR], SHOULD be
  691. supported.  To provide data origin authentication and integrity with
  692. ESP, HMAC-SHA1 MUST be supported, and AES in CBC MAC mode with XCBC
  693. extensions [AESCBC] SHOULD be supported. DES in CBC mode SHOULD NOT be
  694. used due to its inherent weakness.  ESP with NULL encryption MUST be
  695. supported for authentication.
  696.  
  697. 2.3.2.  IPsec modes
  698.  
  699. Conformant  IP block storage protocol implementations MUST support ESP
  700. [RFC2406] in tunnel mode and MAY implement IPsec with ESP in transport
  701. mode.
  702.  
  703. 2.3.3.  IKE
  704.  
  705. Conformant IP block storage security implementations MUST support IKE
  706. [RFC2409] for peer authentication, negotiation of security associations,
  707. and key management, using the IPsec DOI [RFC2407].  Manual keying MUST
  708. NOT be used since it does not provide the necessary rekeying support.
  709. Conformant IP block storage security implementations MUST support peer
  710. authentication using a pre-shared key, and MAY support certificate-based
  711. peer authentication using digital signatures.  Peer authentication using
  712. the public key encryption methods outlined in IKE's sections 5.2 and 5.3
  713. [RFC2409] SHOULD NOT be used.
  714.  
  715.  
  716.  
  717.  
  718. Aboba, et al.                Standards Track                   [Page 12]
  719.  
  720.  
  721.  
  722.  
  723.  
  724. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  725.  
  726.  
  727. Conformant IP block storage security implementations MUST support IKE
  728. Main Mode and SHOULD support Aggressive Mode.  IKE Main Mode with pre-
  729. shared key authentication SHOULD NOT be used when either of the peers
  730. use a dynamically assigned IP address. While Main Mode with pre-shared
  731. key authentication offers good security in many cases, situations where
  732. dynamically assigned addreses are used force use of a group pre-shared
  733. key, which is vulnerabile to man-in-the-middle attack.
  734.  
  735. When digital signatures are used for authentication, either IKE Main
  736. Mode or IKE Aggressive Mode MAY be used.  In all cases, access to
  737. locally stored secret information (pre-shared key,  or private  key for
  738. digital signing) must be suitably restricted, since compromise of the
  739. secret information nullifies the security properties of the IKE/IPsec
  740. protocols.
  741.  
  742. When digital signatures are used to achieve authentication, an IKE
  743. negotiator SHOULD use IKE Certificate Request Payload(s) to specify the
  744. certificate authority (or authorities) that are trusted in accordance
  745. with its local policy.  IKE negotiators SHOULD check the pertinent
  746. Certificate Revocation List (CRL) before accepting a PKI certificate for
  747. use in IKE's authentication procedures.
  748.  
  749. The IPsec DOI [RFC2407] provides for several types of identification
  750. data. Within IKE Phase 1, for use within the IDii and IDir payloads,
  751. conformant IP block storage security implementations MUST support the
  752. ID_IPV4_ADDR, ID_IPV6_ADDR (if the protocol stack supports IPv6) and
  753. ID_FQDN Identity Payloads. iSCSI security implementations SHOULD support
  754. the ID_USER_FQDN Identity Payload; other IP block storage protocols
  755. (iFCP, FCIP) SHOULD NOT use the ID_USER_FQDN Identity Payload.
  756. Identities other than ID_IPV4_ADDR and ID_IPV6_ADDR (such as ID_FQDN or
  757. ID_USER_FQDN) SHOULD be employed in situations where Aggressive mode is
  758. utilized along with pre-shared keys and IP addresses are dynamically
  759. assigned.  The IP Subnet, IP Address Range, ID_DER_ASN1_DN,
  760. ID_DER_ASN1_GN formats SHOULD NOT be used for IP block storage protocol
  761. security; The ID_KEY_ID Identity Payload MUST NOT be used.  As described
  762. in [RFC2407], within Phase 1 the ID port and protocol fields MUST be set
  763. to zero or to UDP port 500. Also, as noted in [RFC2407]:
  764.  
  765.    When an IKE exchange is authenticated using certificates (of any
  766.    format), any ID's used for input to local policy decisions SHOULD be
  767.    contained in the certificate used in the authentication of the
  768.    exchange.
  769.  
  770. The Phase 2 Quick Mode exchanges used by IP block storage protocol
  771. implementations MUST explicitly carry the Identity Payload fields (IDci
  772. and IDcr).  Each Phase 2 IDci and IDcr Payload SHOULD carry a single IP
  773. address (ID_IPV4_ADDR, ID_IPV6_ADDR) and a single non-zero port number,
  774. and SHOULD NOT use the IP Subnet or IP Address Range formats. Other ID
  775.  
  776.  
  777.  
  778. Aboba, et al.                Standards Track                   [Page 13]
  779.  
  780.  
  781.  
  782.  
  783.  
  784. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  785.  
  786.  
  787. payload formats MUST NOT be used.
  788.  
  789. Since IPsec acceleration hardware may only be able to handle a limited
  790. number of active IKE Phase 2 SAs, Phase 2 delete messages may be sent
  791. for idle SAs, as a means of keeping the number of active Phase 2 SAs to
  792. a minimum. The receipt of an IKE Phase 2 delete message SHOULD NOT be
  793. interpreted as a reason for tearing down an IP block storage connection.
  794. Rather, it is preferable to leave the connection up, and if additional
  795. traffic is sent on it, to bring up another IKE Phase 2 SA to protect it.
  796. This avoids the potential for continually bringing connections up and
  797. down.
  798.  
  799. 2.3.4.  iSCSI authentication
  800.  
  801. To support authentication between the iSCSI Initiator and Target, the
  802. Secure Remote Password (SRP) protocol described in [RFC2945] MUST be
  803. implemented within the iSCSI text-based multi-round negotiation
  804. mechanism. A number of additional authentication protocols have also
  805. been specified in the current iSCSI draft.  Negotiation between
  806. Initiator and Target is used to determine which authentication algorithm
  807. to use (or whether to use one at all); the connection closes if either
  808. side requires authentication and no mutually acceptable algorithm can be
  809. agreed upon.
  810.  
  811. 2.3.5.  Security policy configuration
  812.  
  813. One of the goals of this specification is to enable a high level of
  814. interoperability without requiring extensive configuration.  This
  815. section provides guidelines on setting of IKE parameters so as to
  816. enhance the probability of a successful negotiation. It also describes
  817. how information on security policy configuration can be provided so as
  818. to further enhance the chances of success.
  819.  
  820. To enhance the prospects for interoperability, some of the actions to
  821. consider include:
  822.  
  823.  
  824. [1]  Transform restriction. Since support for 3DES-CBC and HMAC-SHA1 is
  825.      required of all implementations, offering these transforms enhances
  826.      the probability of a successful negotiation.  If AES-CTR with CBC-
  827.      MAC is supported, this transform combination will typically be
  828.      preferred, with 3DES-CBC/HMAC-SHA1 as a secondary offer.
  829.  
  830. [2]  Group Restriction. If 3DES-CBC/HMAC-SHA1 is offered, and DH groups
  831.      are offered, then it is recommended that a DH group of at least
  832.      1024 bits be offered along with it. If AES-CTR/CBC-MAC is the
  833.      preferred offer, and DH groups are offered, then it is recommended
  834.      that a DH group of at least 2048 bits be offered along with it, as
  835.  
  836.  
  837.  
  838. Aboba, et al.                Standards Track                   [Page 14]
  839.  
  840.  
  841.  
  842.  
  843.  
  844. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  845.  
  846.  
  847.      noted in [KeyLen]. If perfect forward secrecy is required in Quick
  848.      Mode, then it is recommended that the QM PFS DH group be the same
  849.      as the IKE Phase 1 DH group.  This reduces the total number of
  850.      combinations, enhancing the chances for interoperability.
  851.  
  852. [3]  Key lifetimes. If a key lifetime is offered that is longer than
  853.      desired, then rather than causing the IKE negotiation to fail, it
  854.      is recommended that the Responder consider the offered lifetime as
  855.      a maximum, and accept it. The key can then use a lesser value for
  856.      the lifetime, and utilize a Lifetime Notify in order to inform the
  857.      other peer of lifetime expiration.
  858.  
  859. Even when the above advice is taken, it still may be useful to be able
  860. to provide additional configuration information in order to enhance the
  861. chances of success, and it is useful to be able to manage security
  862. configuration regardless of the scale of the deployment.
  863.  
  864. For example, it may be desirable to configure the security policy of an
  865. IP block storage device. This can be done manually or automatically via
  866. a security policy distribution mechanism. Alternatively, it can be
  867. supplied via iSNS or SLPv2. If an IP block storage endpoint can obtain
  868. the required security policy by other means (manually, or automatically
  869. via a security policy distribution mechanism) then it need not request
  870. this information via iSNS or SLPv2. However, if the required security
  871. policy configuration is not available via other mechanisms, iSNS or
  872. SLPv2 can be used to obtain it.
  873.  
  874. It may also be helpful to obtain information about the peer
  875. configuration.  While it is generally possible to negotiate security
  876. parameters within IKE, there are situations in which incompatible
  877. parameters can cause the IKE negotiation to fail. In this case, it can
  878. be helpful to obtain information about the preferences of the peer prior
  879. to intiating IKE.  This information can be provided via SLPv2 or iSNS.
  880. Information in this category includes:
  881.  
  882. [4]  IPsec or cleartext support. The the minimum piece of peer
  883.      configuration required is whether an IP block storage endpoint
  884.      requires IPsec or cleartext. This cannot be determined from the IKE
  885.      negotiation alone without risking a long timeout, which is highly
  886.      undesirable for a disk access protocol.
  887.  
  888. [5]  Perfect Forward Secrecy (PFS) support. It is helpful to know
  889.      whether a peer allows PFS, since an IKE Phase 2 Quick Mode can fail
  890.      if an Initiator proposes PFS to a Responder that does not allow it.
  891.  
  892. [6]  Preference for tunnel mode. While it is legal to propose both
  893.      transport and tunnel mode within the same offer, not all IKE
  894.      implementations will support this. As a result, it is useful to
  895.  
  896.  
  897.  
  898. Aboba, et al.                Standards Track                   [Page 15]
  899.  
  900.  
  901.  
  902.  
  903.  
  904. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  905.  
  906.  
  907.      know whether a peer prefers tunnel mode or transport mode, so that
  908.      it is possible to negotiate the preferred mode on the first try.
  909.  
  910. [7]  Main Mode and Aggressive Mode support. Since the IKE negotiation
  911.      can fail if a mode is proposed to a peer that doesn't allow it, it
  912.      is helpful to know which modes a peer allows, so that an allowed
  913.      mode can be negotiated on the first try.
  914.  
  915. Since iSNS or SLPv2 can be used to distribute IPsec security policy and
  916. configuration information for use with IP block storage protocols, these
  917. discovery protocols would constitute a 'weak link' were they not secured
  918. at least as well as the protocols whose security they configure. Since
  919. the major vulnerability is packet modification and replay, when iSNS or
  920. SLPv2 are used to distribute security policy or configuration
  921. information, at a minimum, per-packet data origin authentication,
  922. integrity and replay protection MUST be used to protect the discovery
  923. protocol.
  924.  
  925. 2.4.  SLPv2 Security
  926.  
  927. Both iSCSI and FCIP protocols use SLPv2 as a way to discover peer
  928. entities and management servers. SLPv2 may also be used to provide
  929. information on peer security configuration. When SLPv2 is deployed, the
  930. SA advertisements as well as UA requests and/or responses are subject to
  931. the following security threats:
  932.  
  933. [1]  An attacker could insert or alter SA advertisements or a response
  934.      to a UA request in order to masquerade as the real peer or launch a
  935.      denial of service attack.
  936.  
  937. [2]  An attacker could gain knowledge about an SA or a UA through
  938.      snooping, and launch an attack against the peer. Given the
  939.      potential value of iSCSI targets and FCIP entities, leaking of such
  940.      information not only increases the possibility of an attack over
  941.      the network; there is also the risk of physical theft.
  942.  
  943. [3]  An attacker could spoof a DAAdvert. This could cause UAs and SAs to
  944.      use a rogue DAs.
  945.  
  946. To address these threats, the following capabilities are required:
  947.  
  948. [a]  Service information, as included in SrvRply, AttrRply, SrvReg and
  949.      SrvDereg messages, needs to be kept confidential.
  950.  
  951. [b]  The UA has to be able to distinguish between legitimate and
  952.      illegitimate service information from SrvRply and AttrRply
  953.      messages.  In the SLPv2 security model SAs are trusted to sign
  954.      data.
  955.  
  956.  
  957.  
  958. Aboba, et al.                Standards Track                   [Page 16]
  959.  
  960.  
  961.  
  962.  
  963.  
  964. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  965.  
  966.  
  967. [c]  The DA has to be able to distinguish between legitimate and
  968.      illegitimate SrvReg and SrvDereg messages.
  969.  
  970. [d]  The UA has to be able to distinguish between legitimate and
  971.      illegitimate  DA Advertisements.  This allows the UA to avoid rogue
  972.      DAs which will return incorrect data or no data at all.  In the
  973.      SLPv2 security model, UAs trust DAs to store, answer queries on and
  974.      forward data on services, but not necessarily to originate it.
  975.  
  976. [e]  SAs may have to trust DAs, especially if 'mesh-enhanced' SLPv2 is
  977.      used.  In this case, SAs register with only one DA and trust that
  978.      this DA will forward the registration to others.
  979.  
  980. By itself, SLPv2 security, defined in [RFC2608], does not satisfy these
  981. security requirements.  SLPv2 only provides end-to-end authentication,
  982. but does not support confidentiality. In SLPv2 authentication there is
  983. no way to authenticate 'zero result responses'.  This enables an
  984. attacker to mount a denial of service attack by sending UAs a 'zero
  985. results' SrvRply or AttrRply as if from a DA with whose source address
  986. corresponds to a legitimate DAAdvert.
  987.  
  988. In all cases, there is a potential for denial of service attack against
  989. protocol service providers, but such an attack is possible even in the
  990. absence of SLPv2 based discovery mechanisms.
  991.  
  992. 2.4.1.  SLPv2 security protocol
  993.  
  994. SLPv2 message types include: SrvRqst, SrvRply, SrvReg, SrvDereg, SrvAck,
  995. AttrRqst, AttrRply, DAAdvert, SrvTypeRqst, SrvTypeRply, SAAdvert.  SLPv2
  996. requires that UAs and SAs support SrvRqst, SrvRply, and DAAdvert. SAs
  997. must additionally support SrvReg, SrvAck, and SAAdvert.
  998.  
  999. Where no DA exists, the SrvRqst is multicast, but the SrvRply is sent
  1000. via unicast UDP. DAAdverts are also multicast. However, all other SLPv2
  1001. messages are sent via UDP unicast.
  1002.  
  1003. In order to provide the required security functionality, iSCSI and FCIP
  1004. security implementations SHOULD protect SLPv2 messages sent via unicast
  1005. using IPsec ESP with a non-null transform. SLPv2 authentication blocks
  1006. (carrying digital signatures), described in [RFC2608] MAY also be used
  1007. to authenticate unicast and multicast messages.
  1008.  
  1009. The usage of SLPv2 by iSCSI is described in [iSCSISLP]. iSCSI Initiators
  1010. and Targets may enable IKE mechanisms to establish identity. In
  1011. addition, a subsequent user-level iSCSI session login can protect the
  1012. Initiator-Target nexus.  This will protect them from any compromise of
  1013. security in the SLPv2 discovery process.
  1014.  
  1015.  
  1016.  
  1017.  
  1018. Aboba, et al.                Standards Track                   [Page 17]
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  1025.  
  1026.  
  1027. The usage of SLPv2 by FCIP is described in [FCIPSLP]. FCIP Entities
  1028. assume that once the IKE identity of a peer is established, the FCIP
  1029. Entity Name carried in FCIP Short Frame is also implicitly accepted as
  1030. the authenticated peer.  Any such association between the IKE identity
  1031. and the FCIP Entity Name is administratively established.
  1032.  
  1033. For use in securing SLPv2, when digital signatures are used to achieve
  1034. authentication in IKE, an IKE negotiator SHOULD use IKE Certificate
  1035. Request Payload(s) to specify the certificate authority (or authorities)
  1036. that are trusted in accordance with its local policy.  IKE negotiators
  1037. SHOULD check the pertinent Certificate Revocation List (CRL) before
  1038. accepting a PKI certificate for use in IKE's authentication procedures.
  1039. If key management of SLPv2 DAs needs to be coordinated with the SAs and
  1040. the UAs as well as the protocol service implementations, one may use
  1041. certificate based key management, with a shared root CA.
  1042.  
  1043. One of the reasons for utilizing IPsec for SLPv2 security is that is
  1044. more likely that certificates will be deployed for IPsec than for SLPv2.
  1045. This both simplifies SLPv2 security and makes it more likely that it
  1046. will be implemented interoperably and more importantly, that it will be
  1047. employed. As a result, it is desirable that little additional effort be
  1048. required to enable IPsec protection of SLPv2.
  1049.  
  1050. However, just because a certificate is trusted for use with IPsec does
  1051. not necessarily imply that the host is authorized to perform SLPv2
  1052. operations. When using IPsec to secure SLPv2, it may be desirable to
  1053. distinguish between certificates appropriate for use by UAs, SAs, and
  1054. DAs. For example, while a UA might be allowed to use any certificate
  1055. conforming to IKE certificate policy, the certificate used by an SA
  1056. might indicate that it is a legitimate source of service advertisements.
  1057. Similarly, a DA certificate might indicate that it is a valid DA. This
  1058. can be accomplished by using special CAs to issue certificates valid for
  1059. use by SAs and DAs; alternatively SA and DA authorizations can be
  1060. employed.
  1061.  
  1062. Assume that the policy for issuing and distributing SLPv2 authorized
  1063. certificates to SAs and DAs limits them only to legitimate SAs and DAs.
  1064. In this case, IPsec is used to provide SLPv2 security as follows:
  1065.  
  1066. [f]  SLPv2 messages sent via unicast are IPsec protected, using ESP with
  1067.      a non-null transform.
  1068.  
  1069. [g]  SrvRply and AttrRply messages from either a DA or SA are unicast to
  1070.      UAs.  Assuming that the SA used a certificate authorized for SLPv2
  1071.      service advertisement in establishing the the IKE Phase 1 SA, or
  1072.      that the DA used a certificate authorized for DA usage, the UA can
  1073.      accept the information sent, even if it has no SLPv2 authentication
  1074.      block.
  1075.  
  1076.  
  1077.  
  1078. Aboba, et al.                Standards Track                   [Page 18]
  1079.  
  1080.  
  1081.  
  1082.  
  1083.  
  1084. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  1085.  
  1086.  
  1087. [h]  SrvReg and SrvDereg messages from a SA are unicast to DAs.
  1088.      Assuming that the SA used a certificate authorized for SLPv2
  1089.      service advertisement in establishing the the IKE Phase 1 SA, the
  1090.      DA can accept the de/registration even if it has no SLPv2
  1091.      authentication block. Typically, the SA will check the DA
  1092.      authorization prior to sending the service advertisement.
  1093.  
  1094. [i]  Multicast DAAdverts can be considered advisory.  The UA will
  1095.      attempt to contact DAs via unicast.  Assuming that the DA used a
  1096.      certificate authorized for SLPv2 DAAdverts in establishing the the
  1097.      IKE Phase 1 SA, the UA can accept the DAAdvert even if it has no
  1098.      SLPv2 authentication block.
  1099.  
  1100. [j]  SAs can accept DAAdverts as described in i.
  1101.  
  1102. 2.4.2.  Confidentiality of service information
  1103.  
  1104. Since SLPv2 messages can contain information that can potentially reveal
  1105. the vendor of the device or its other associated characteristics,
  1106. revealing service information constitutes a security risk. As an
  1107. example, the FCIP Entity Name may reveal a WWN from which an attacker
  1108. can learn potentially useful information about the Entity's
  1109. characteristics.
  1110.  
  1111. The SLPv2 security model assumes that service information is public, and
  1112. therefore does not provide for confidentiality. However, storage devices
  1113. represent mission critical infrastructure of substantial value, and so
  1114. iSCSI and FCIP security implementations MUST support confidentiality as
  1115. well as authentication of unicast SLPv2 messages.
  1116.  
  1117. Assuming that all unicast SLPv2 messages are protected by IPsec, and
  1118. that confidentiality is provided, then the risk of disclosure can be
  1119. limited to SLPv2 messages sent via multicast, namely the SrvRqst and
  1120. DAAdvert.
  1121.  
  1122. The information leaked in a multicast SrvRqst depends on the level of
  1123. detail in the query. If leakage is a concern, then a DA can be provided.
  1124. If this is not feasible, then a general query can be sent via multicast,
  1125. and then further detail can be obtained from the replying entities via
  1126. additional unicast queries, protected by IPsec.
  1127.  
  1128. Information leakage via a multicast DAAdvert is less of a concern than
  1129. the authenticity of the message, since knowing that a DA is present on
  1130. the network only enables an attacker to know that SLPv2 is in use, and
  1131. possibly that a directory service is also present. This information is
  1132. not considered very valuable.
  1133.  
  1134.  
  1135.  
  1136.  
  1137.  
  1138. Aboba, et al.                Standards Track                   [Page 19]
  1139.  
  1140.  
  1141.  
  1142.  
  1143.  
  1144. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  1145.  
  1146.  
  1147. 2.4.3.  SLPv2 security implications
  1148.  
  1149. Through the definition of security attributes, it is possible to use
  1150. SLPv2 to distribute information about security settings for IP block
  1151. storage entities.  SLPv2 distribution of security policy is not
  1152. necessary if the security settings can be determined by other means,
  1153. such as manual configuration or IPsec security policy distribution. If
  1154. an entity has already obtained its security configuration via other
  1155. mechanisms, then it MUST NOT request security policy via SLPv2.
  1156.  
  1157. Where SLPv2 is used to provide security policy information for use with
  1158. IP block storage protocols, SLPv2 MUST be protected by IPsec as
  1159. described in this document.  Where SLPv2 is not used to distribute
  1160. security policy information, implementations MAY implement SLPv2
  1161. security as described in this document.
  1162.  
  1163. Where SLPv2 is used, but security is not implemented, IP block storage
  1164. protocol implementations MUST support a negative cache for
  1165. authentication failures. This allows implementations to avoid
  1166. continually contacting discovered endpoints which fail authentication
  1167. within IPsec or at the application layer (in the case of iSCSI Login).
  1168. The negative cache need not be  maintained within the IPsec
  1169. implementation, but rather within the IP block storage protocol
  1170. implementation.
  1171.  
  1172. Since this document proposes that hop-by-hop security be used as the
  1173. primary mechanism to protect SLPv2, UAs have to trust DAs to accurately
  1174. relay data from SAs.  This is a change to the SLPv2 security model
  1175. described in [RFC2608].
  1176.  
  1177. When IPsec is used to protect SLPv2, it is not necessarily appropriate
  1178. for all hosts with whom an IPsec security association can be established
  1179. to be trusted to originate SLPv2 service advertisements. This is
  1180. particularly the case in environments where it is easy to obtain
  1181. certificates valid for use with IPsec (for example, where anyone with
  1182. access to the network can obtain a machine certificate valid for use
  1183. with IPsec).  If not all hosts are authorized to originate service
  1184. advertisements, then it is necessary to distinguish between authorized
  1185. and unauthorized hosts.
  1186.  
  1187. This can be accomplished by restricting the issuance of certificates
  1188. valid for use in SLPv2 service advertisement. For example, while all
  1189. certificates allowed for use with IPsec will chain to a trusted root,
  1190. certificates for hosts authorized to originate service advertisements
  1191. could be signed by an SLPv2-authorized CA, or could contain explicit
  1192. SLPv2 authorizations within the certificate. After the IPsec security
  1193. association is set up between the SLPv2 entities, the SLPv2
  1194. implementations can then retrieve the certificates used in the
  1195.  
  1196.  
  1197.  
  1198. Aboba, et al.                Standards Track                   [Page 20]
  1199.  
  1200.  
  1201.  
  1202.  
  1203.  
  1204. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  1205.  
  1206.  
  1207. negotiation in order to determine whether the entities are authorized
  1208. for the operations that are being performed.
  1209.  
  1210. Use of IPsec for SLPv2 security has advantages over SLPv2 authentication
  1211. as defined in [RFC2608], which does not provide a way to authenticate
  1212. "zero result responses", leaving SLPv2 vulnerable to a denial of service
  1213. attack.  Such an attack can be carried out on a UA by sending it a "zero
  1214. results" SrvRply or AttrRply, sent from a source address corresponding
  1215. to a DA issuing a legitimate DAAdvert.
  1216.  
  1217. When IPsec with ESP and a non-null transform is used to protect SLPv2,
  1218. not only can unicast requests and replies be authenticated, but
  1219. confidentiality can also be provided. This includes unicast requests to
  1220. DAs and SAs as well as replies. It is also possible to actively discover
  1221. SAs using multicast SA discovery, and then to send unicast requests to
  1222. the discovered SAs.
  1223.  
  1224. Using IPsec to secure SLPv2 has performance implications.  Security
  1225. associations established between:
  1226.  
  1227. -    UAs and SAs may be reused (the client on the UA host will use the
  1228.      service on the SA host).
  1229.  
  1230. -    SAs and DAs may be reused (the SAs will reregister services)
  1231.  
  1232. -    UAs and DAs will probably not be reused (many idle security
  1233.      associations are likely to result, and build up on the DA).
  1234.  
  1235. 2.5.  iSNS security
  1236.  
  1237. The iSCSI protocol may use iSNS for discovery and management services,
  1238. while the iFCP protocol is required to use iSNS for such services.  In
  1239. addition, iSNS can be used to store and distribute security policy and
  1240. authorization information to iSCSI and iFCP devices.  When the iSNS
  1241. protocol is deployed, the interaction between iSNS server and iSNS
  1242. clients are subject to the following additional security threats:
  1243.  
  1244. [1]  An attacker can alter iSNS protocol messages, directing iSCSI and
  1245.      iFCP devices to establish connections with rogue devices, or
  1246.      weakening IPsec protection for iSCSI or iFCP traffic.
  1247.  
  1248. [2]  An attacker can masquerade as the real iSNS server by sending false
  1249.      iSNS heartbeat messages.  This could could deceive iSCSI and iFCP
  1250.      devices into using rogue iSNS servers.
  1251.  
  1252. [3]  An attacker can gain knowledge about iSCSI and iFCP devices by
  1253.      snooping iSNS protocol messages.  Such information could aid an
  1254.      attacker in mounting a direct attack on iSCSI and iFCP devices,
  1255.  
  1256.  
  1257.  
  1258. Aboba, et al.                Standards Track                   [Page 21]
  1259.  
  1260.  
  1261.  
  1262.  
  1263.  
  1264. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  1265.  
  1266.  
  1267.      such as a denial-of-service attack or outright physical theft.
  1268.  
  1269. To address these threats, the following capabilities are needed:
  1270.  
  1271. [a]  Unicast iSNS protocol messages may need to be authenticated.  In
  1272.      addition, to protect against threat [3] above, confidentiality
  1273.      support is desireable, and REQUIRED when certain functions of iSNS
  1274.      are used.
  1275.  
  1276. [b]  Multicast iSNS protocol messages such as the iSNS heartbeat message
  1277.      need to be authenticated. These messages need not be confidential
  1278.      since they do not leak critical information.
  1279.  
  1280. There is no requirement that the identities of iSNS entities be kept
  1281. confidential. Specifically, the identity and location of the iSNS server
  1282. need not be kept confidential.
  1283.  
  1284. In order to protect against an attacker masquerading as an iSNS server,
  1285. client devices MUST support authentication of broadcast or multicast
  1286. messages such as the iSNS heartbeat.  The iSNS authentication block
  1287. (which is identical in format to the SLP authentication block) MAY be
  1288. used for this purpose.  Note that the authentication block is used only
  1289. for iSNS broadcast or multicast messages, and SHOULD NOT be used in
  1290. unicast iSNS messages.
  1291.  
  1292. Since iSNS is used to distribute authorizations determining which client
  1293. devices can communicate, IPsec authentication and data integrity MUST be
  1294. supported.  In addition, if iSNS is used to distribute security policy
  1295. for iFCP and iSCSI devices, then authentication, data integrity, and
  1296. confidentiality MUST be supported and used.
  1297.  
  1298. Where iSNS is used without security, IP block storage protocol
  1299. implementations MUST support a negative cache for authentication
  1300. failures. This allows implementations to avoid continually contacting
  1301. discovered endpoints which fail authentication within IPsec or at the
  1302. application layer (in the case of iSCSI Login).  The negative cache need
  1303. not be  maintained within the IPsec implementation, but rather within
  1304. the IP block storage protocol implementation.
  1305.  
  1306. 2.5.1.  Use of iSNS to Discover Security Configuration of Peer Devices
  1307.  
  1308. In practice, within a single installation, iSCSI and/or iFCP devices may
  1309. have different security settings. For example, some devices may be
  1310. configured to initiate secure communication, while other devices may be
  1311. configured to respond to a request for secure communication, but not to
  1312. require security. Still other devices, while security capable, may
  1313. neither initiate nor respond securely.
  1314.  
  1315.  
  1316.  
  1317.  
  1318. Aboba, et al.                Standards Track                   [Page 22]
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  1325.  
  1326.  
  1327. In practice, these variations in configuration can result in devices
  1328. being unable to communicate with each other. For example, a device that
  1329. is configured to always initiate secure communication will experience
  1330. difficulties in communicating with a device that neither initiates nor
  1331. responds securely.
  1332.  
  1333. The iSNS protocol is used to transfer naming, discovery, and management
  1334. information between iSCSI devices, iFCP gateways, management stations,
  1335. and the iSNS server. This includes the ability to enable discovery of
  1336. security settings used for communication via the iSCSI and/or iFCP
  1337. protocols.
  1338.  
  1339. The iSNS server stores security settings for each iSCSI and iFCP device
  1340. interface.  These security settings, which can be retrieved by
  1341. authorized hosts, include use or non-use of IPSec, IKE, Main Mode,
  1342. Aggressive Mode, PFS, Pre-shared Key, and certificates.
  1343.  
  1344. For example, IKE may not be enabled for a particular device interface.
  1345. If a peer device can learn of this in advance by consulting the iSNS
  1346. server, it will not need to waste time and resources attempting to
  1347. initiate an IKE Phase 1 SA with that device interface.
  1348.  
  1349. If iSNS is used to distribute security policy, then the minimum
  1350. information that should be learned from the iSNS server is the use or
  1351. non-use of IKE and IPSec by each iFCP or iSCSI peer device interface.
  1352. This information is encoded in the Security Bitmap field of each Portal
  1353. of the peer device, and is applicable on a per-interface basis for the
  1354. peer device.  iSNS queries to acquire security configuration data about
  1355. peer devices MUST be protected by IPsec/ESP authentication.
  1356.  
  1357. 2.5.2.  Use of iSNS to Distribute iSCSI and iFCP Security Policies
  1358.  
  1359. Once communication between iSNS clients and the iSNS server are secured
  1360. through use of IPsec, iSNS clients have the capability to discover the
  1361. security settings required for communication via the iSCSI and/or iFCP
  1362. protocols.  Use of iSNS for distribution of security policies offers the
  1363. potential to reduce the burden of manual device configuration, and
  1364. decrease the probability of communications failures due to incompatible
  1365. security policies.  If iSNS is used to distribute security policies,
  1366. then IPSec authentication, data integrity, and confidentiality MUST be
  1367. used to protect all iSNS protocol messages.
  1368.  
  1369. The complete IKE/IPSec configuration of each iFCP and/or iSCSI device
  1370. can be stored in the iSNS server, including policies that are used for
  1371. IKE Phase 1 and Phase 2 negotiations between client devices.  The IKE
  1372. payload format includes a series of one or more proposals that the iSCSI
  1373. or iFCP device will use when negotiating the appropriate IPsec policy to
  1374. use to protect iSCSI or iFCP traffic.
  1375.  
  1376.  
  1377.  
  1378. Aboba, et al.                Standards Track                   [Page 23]
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  1385.  
  1386.  
  1387. Note that iSNS distribution of security policy is not necessary if the
  1388. security settings can be determined by other means, such as manual
  1389. configuration or IPsec security policy distribution. If an entity has
  1390. already obtained its security configuration via other mechanisms, then
  1391. it MUST NOT request security policy via iSNS.
  1392.  
  1393. For further details on how to store and retrieve IKE policy proposals in
  1394. the iSNS server, see [iSNS].
  1395.  
  1396. 2.5.3.  iSNS Interaction with IKE and IPsec
  1397.  
  1398. When IPsec security is enabled, each iSNS client that is registered in
  1399. the iSNS database maintains at least one Phase 1 and one Phase 2
  1400. security association with the iSNS server.  All iSNS protocol messages
  1401. between iSNS clients and the iSNS server are to be protected by a phase-
  1402. 2 security association.
  1403.  
  1404. 2.5.4.  iSNS Server Implementation Requirements
  1405.  
  1406. All iSNS implementations MUST support the replay protection mechanisms
  1407. of IPsec. ESP in tunnel mode MUST be implemented.  The implementation
  1408. MUST conform to [RFC2401] requirements for support of ESP in transport
  1409. mode.  Section 4.1 of [RFC2401] states:
  1410.  
  1411.      a) A host MUST support both transport and tunnel mode.
  1412.      b) A security gateway is required to support only tunnel
  1413.         mode.  If it supports transport mode, that should be used
  1414.         only when the security gateway is acting as a host, e.g.,
  1415.         for network management.
  1416.  
  1417. To provide data origin authentication and integrity with ESP, HMAC-SHA1
  1418. MUST be supported, and AES in CBC MAC mode with XCBC extensions [AESCBC]
  1419. SHOULD be supported.  When confidentiality is implemented, 3DES in CBC
  1420. mode MUST be supported, and AES in Counter mode, as described in
  1421. [AESCTR], SHOULD be supported.  DES in CBC mode SHOULD NOT be used due
  1422. to its inherent weakness.  If confidentiality is not required but data
  1423. origin authentication and integrity is enabled, ESP with NULL Encryption
  1424. MUST be used.
  1425.  
  1426. Conformant iSNS implementations MUST support IKE for authentication,
  1427. negotiation of security associations, and key management, using the
  1428. IPsec DOI, described in [RFC2407]. Manual keying SHOULD NOT be used
  1429. since it does not provide the necessary rekeying support. Conformant
  1430. iSNS security implementations MUST support authentication using a pre-
  1431. shared key, and MAY support certificate-based peer authentication using
  1432. digital signatures.  Peer authentication using the public key encryption
  1433. methods outlined in [RFC2409] sections 5.2 and 5.3 SHOULD NOT be used.
  1434.  
  1435.  
  1436.  
  1437.  
  1438. Aboba, et al.                Standards Track                   [Page 24]
  1439.  
  1440.  
  1441.  
  1442.  
  1443.  
  1444. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  1445.  
  1446.  
  1447. Conformant iSNS implementations MUST support IKE Main Mode and SHOULD
  1448. support Aggressive Mode. IKE Main Mode with pre-shared key
  1449. authentication SHOULD NOT be used when either of the peers use
  1450. dynamically assigned IP addresses. While Main Mode with pre-shared key
  1451. authentication offers good security in many cases, situations where
  1452. dynamically assigned addreses are used force use of a group pre-shared
  1453. key, which is vulnerable to man-in-the-middle attack.
  1454.  
  1455. When digital signatures are used for authentication, either IKE Main
  1456. Mode or IKE Aggressive Mode MAY be used.  In all cases, access to
  1457. locally stored secret information (pre-shared key or private key for
  1458. digital signing) MUST be suitably restricted, since compromise of the
  1459. secret information nullifies the security properties of the IKE/IPsec
  1460. protocols.
  1461.  
  1462. When digital signatures are used to achieve authentication, an IKE
  1463. negotiator SHOULD use IKE Certificate Request Payload(s) to specify the
  1464. certificate authority (or authorities) that are trusted in accordance
  1465. with its local policy.  IKE negotiators SHOULD check the pertinent
  1466. Certificate Revocation List (CRL) before accepting a PKI certificate for
  1467. use in IKE's authentication procedures.
  1468.  
  1469. 3.  iSCSI security interoperability guidelines
  1470.  
  1471. The following guidelines are established to meet iSCSI security
  1472. requirements using IPsec in practical situations.
  1473.  
  1474. 3.1.  iSCSI security issues
  1475.  
  1476. iSCSI provides for iSCSI Login, which includes support for application-
  1477. layer authentication.  This authentication is logically between the
  1478. iSCSI Initiator and the iSCSI Target (as opposed to between the TCP/IP
  1479. communication endpoints).  The intent of the iSCSI design is that the
  1480. Initiator and Target represent the systems (e.g., host and disk array or
  1481. tape system) participating in the communication, as opposed to network
  1482. communication interfaces or endpoints.
  1483.  
  1484. The iSCSI protocol, and iSCSI Login authentication do not meet the
  1485. security requirements for iSCSI. iSCSI Login authentication provides
  1486. mutual authentication between the iSCSI Initiator and Target at
  1487. connection origination, but does not protect control and data traffic on
  1488. a per packet basis, leaving the iSCSI connection vulnerable to attack.
  1489. iSCSI Login authentication can mutually authenticates the Initiator to
  1490. the Target, but does not by itself provide per-packet authentication,
  1491. integrity, confidentiality or replay protection. In addition, iSCSI
  1492. Login authentication, outlined in [iSCSI], does not provide for a
  1493. protected ciphersuite negotiation.  Therefore, iSCSI Login provides a
  1494. weak security solution.
  1495.  
  1496.  
  1497.  
  1498. Aboba, et al.                Standards Track                   [Page 25]
  1499.  
  1500.  
  1501.  
  1502.  
  1503.  
  1504. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  1505.  
  1506.  
  1507. 3.2.  iSCSI and IPsec interaction
  1508.  
  1509. An iSCSI session [iSCSI], comprised of one or more TCP connections, is
  1510. identified by the 2-tuple of the Initiator-defined identifier and the
  1511. Target-defined identifier, <ISID, TSID>.  Each connection within a given
  1512. session is assigned a unique Connection Identification, CID. The TCP
  1513. connection is identified by the 5-tuple <Source IP address, Destination
  1514. IP address, Protocol (TCP), Source Port, Destination Port>.  An IPsec
  1515. Phase 2 SA is identified by the 3-tuple <Protocol (ESP),destination
  1516. address, SPI>.
  1517.  
  1518. The iSCSI session and connection information is carried within the iSCSI
  1519. Login Commands, transported over TCP.  Since an iSCSI Initiator may have
  1520. multiple interfaces, iSCSI connections within an iSCSI session may be
  1521. initiated from different IP addresses. Similarly, multiple iSCSI Targets
  1522. may exist behind a single IP address, so that there may be multiple
  1523. iSCSI sessions between a given <source IP address, destination IP
  1524. address> pair.
  1525.  
  1526. When multiple iSCSI sessions are active between a given <Initiator,
  1527. Target> pair, the set of TCP connections used by a given iSCSI session
  1528. must be disjoint from those used by all other iSCSI sessions between the
  1529. same <Initiator, Target> pair. Therefore a TCP connection can be
  1530. associated with one and only one iSCSI session.
  1531.  
  1532. The relationship between iSCSI sessions, TCP connections and IKE Phase 1
  1533. and Phase 2 SAs is as follows:
  1534.  
  1535. [1]  An iSCSI Initiator or Target may have more than one interface, and
  1536.      therefore may have multiple IP addresses. Also, multiple iSCSI
  1537.      Initiators and Targets may exist behind a single IP address.  As a
  1538.      result, an iSCSI Session may correspond to multiple IKE Phase 1
  1539.      Security Associations, though typically a single IKE Phase 1
  1540.      security association will exist for an <Initiator IP address,
  1541.      Target IP address> tuple.
  1542.  
  1543. [2]  Each TCP connection within an iSCSI Session is protected by an IKE
  1544.      Phase 2 SA. The selectors may be specific to that TCP connection or
  1545.      may cover multiple connections. While each IKE Phase 2 SA may
  1546.      protect multiple TCP connections, each TCP connection is
  1547.      transported under only one IKE Phase 2 SA.
  1548.  
  1549. Given this, all the information needed for the iSCSI/IPsec binding is
  1550. contained within the iSCSI Login messages from the iSCSI Initiator and
  1551. Target. This includes the binding between an IKE Phase 1 SA and the
  1552. corresponding iSCSI sessions, as well as the binding between a TCP
  1553. connection, an IKE Phase 2 SA and the iSCSI connection ID.
  1554.  
  1555.  
  1556.  
  1557.  
  1558. Aboba, et al.                Standards Track                   [Page 26]
  1559.  
  1560.  
  1561.  
  1562.  
  1563.  
  1564. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  1565.  
  1566.  
  1567. 3.3.  Initiating a New iSCSI Session
  1568.  
  1569. In order to create a new iSCSI Session, if an IKE Phase 1 SA does not
  1570. already exist, then it is established by an Initiator implementing iSCSI
  1571. security.  Subsequent iSCSI connections established within the iSCSI
  1572. session will typically be protected by IKE Phase 2 SAs derived from that
  1573. IKE Phase 1 SA, although additional IKE Phase 1 SAs can also be brought
  1574. up.
  1575.  
  1576. The Initiator and Target implementations successfully complete the IKE
  1577. Phase 1 and Phase 2 negotiations before the iSCSI Initiator contacts the
  1578. Target on well-known TCP port 3260, and sends the iSCSI Login command
  1579. over the TCP connection.  IPsec implementations configured with the
  1580. correct policies (e.g. use ESP with non-null transform for all traffic
  1581. destined for the iSCSI well-known TCP port 3260) will handle this
  1582. automatically.
  1583.  
  1584. The Initiator fills in the ISID field, and leaves the TSID field set to
  1585. zero, to indicate that it is the first message of a new session
  1586. establishment exchange.  The Initiator also fills in a CID value, that
  1587. identifies the TCP connection over which the Login command is being
  1588. exchanged. When the iSCSI Target replies with its Login Command, both
  1589. iSCSI devices will know the TSID, and therefore the iSCSI session
  1590. identifier <ISID, TSID>.
  1591.  
  1592. A single iSCSI session identifier may have multiple associated IKE Phase
  1593. 1 SAs, and each IKE Phase 1 SA may correspond to multiple iSCSI session
  1594. identifiers. Each iSCSI connection (identified by the connection
  1595. identifier) corresponds to a single TCP connection (identified by the
  1596. 5-tuple). Each IKE Phase 2 SA is identified by the <Protocol (ESP),
  1597. destination address, SPI> combination.  A Phase 2 SA may protect
  1598. multiple TCP connections, and corresponds to a single IKE Phase 1 SA.
  1599.  
  1600. Within IKE, each key refresh requires that a new security association be
  1601. established.  In practice there is a time interval during which an old,
  1602. about-to-expire SA and newly established SA will both be valid.  The
  1603. IPsec implementation will choose which security association to use based
  1604. on local policy, and iSCSI concerns play no role in this selection
  1605. process.
  1606.  
  1607. 3.4.  Graceful iSCSI Teardown
  1608.  
  1609. Mechanisms within iSCSI provide for both graceful and non-graceful
  1610. teardown of iSCSI Sessions or individual TCP connections within a given
  1611. session.  The iSCSI Logout command is used to effect graceful teardown.
  1612. This command allows the iSCSI Initiator to request that:
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618. Aboba, et al.                Standards Track                   [Page 27]
  1619.  
  1620.  
  1621.  
  1622.  
  1623.  
  1624. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  1625.  
  1626.  
  1627. [a]  the session be closed
  1628.  
  1629. [b]  a specific connection within the session be closed
  1630.  
  1631. [c]  a specific connection be marked for recovery
  1632.  
  1633. When the iSCSI implementation wishes to close a session, it uses the
  1634. appropriate iSCSI commands to accomplish this.  After exchanging the
  1635. appropriate iSCSI control messages for session closure, the iSCSI
  1636. security implementation will typically initiate a half-close of each TCP
  1637. connection within the iSCSI session.
  1638.  
  1639. When the iSCSI security implementation wishes to close an individual TCP
  1640. connection while leaving the parent iSCSI session active, it should
  1641. half-close the TCP connection. This results in a FIN being sent, putting
  1642. the TCP connection into the FIN WAIT-1 state, as described in [RFC793].
  1643. After the other side responds, the TIME WAIT state is entered. After the
  1644. expiration of the TIME WAIT timeout, the TCP connection is closed.
  1645.  
  1646. 3.5.  Non-graceful iSCSI Teardown
  1647.  
  1648. If a given TCP connection unexpectedly fails, the associated iSCSI
  1649. connection is torn down. There is no requirement that an IKE Phase 2
  1650. delete immediately follow iSCSI connection tear down or Phase 1
  1651. deletion.  Since an IKE Phase 2 SA may correspond to multiple TCP
  1652. connections, such a deletion might be inappropriate. Similarly, if the
  1653. IKE implementation receives a Phase 2 Delete message for a security
  1654. association corresponding to a TCP connection, this does not necessarily
  1655. imply that the TCP or iSCSI connection is to be torn down.
  1656.  
  1657. If a Logout Command/Logout Response sequence marks a connection for
  1658. removal from the iSCSI session, then after the iSCSI peer has executed
  1659. an iSCSI teardown process for the connection, the TCP connection will be
  1660. closed. The iSCSI connection state can then be safely removed.
  1661.  
  1662. Since an IKE Phase 2 SA may be used by multiple TCP connections, an
  1663. iSCSI implementation should not depend on receiving the IPsec Phase 2
  1664. delete as confirmation that the iSCSI peer has executed an iSCSI
  1665. teardown process for the connection.
  1666.  
  1667. Since IPsec acceleration hardware may only be able to handle a limited
  1668. number of active IKE Phase 2 SAs, Phase 2 delete messages may be sent
  1669. for idle SAs, as a means of keeping the number of active Phase 2 SAs to
  1670. a minimum. The receipt of an IKE Phase 2 delete message SHOULD NOT be
  1671. interpreted as a reason for tearing down the corresponding iSCSI
  1672. connection if no Logout Command/Logout Receive has been executed on the
  1673. connection.  Rather, it is preferable to leave the iSCSI connection up,
  1674. and if additional traffic is sent on it, to bring up another IKE Phase 2
  1675.  
  1676.  
  1677.  
  1678. Aboba, et al.                Standards Track                   [Page 28]
  1679.  
  1680.  
  1681.  
  1682.  
  1683.  
  1684. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  1685.  
  1686.  
  1687. SA to protect it. This avoids the potential for continually bringing
  1688. iSCSI connections up and down.
  1689.  
  1690. 3.6.  Application-layer CRC
  1691.  
  1692. iSCSI's error detection and recovery assumes that the TCP and IP
  1693. checksums provide inadequate integrity protection for high speed
  1694. communications. As described in [CRCTCP], when operating at high speeds,
  1695. the 16-bit TCP checksum [RFC793] will not necessarily detect all errors,
  1696. resulting in possible data corruption.  iSCSI [iSCSI] therefore
  1697. incorporates a 32-bit CRC to protect its headers and data.
  1698.  
  1699. When a CRC check fails (i.e.  CRC computed at receiver does not match
  1700. the received CRC), the iSCSI PDU covered by that CRC is discarded.
  1701. Since presumably the error was not detected by the TCP checksum, TCP
  1702. retransmission will not occur and thus cannot assist in recovering from
  1703. the error.  iSCSI contains both data and command retry mechanisms to
  1704. deal with the resulting situations, including SNACK, the ability to
  1705. reissue R2T commands, and the retry (X) bit for commands.
  1706.  
  1707. IPsec offers protection against an attacker attempting to modify packets
  1708. in transit, as well as unintentional packet modifications caused by
  1709. router malfunctions. In general, IPsec authentication transforms afford
  1710. stronger integrity protection than both the 16-bit TCP checksum and the
  1711. 32-bit application-layer CRC that has been proposed for use with iSCSI.
  1712. Since IPsec integrity protection occurs below TCP, if an error is
  1713. discovered, then the packet will be discarded and TCP retransmission
  1714. will occur, so that no recovery action need be taken at the iSCSI layer.
  1715.  
  1716. 3.6.1.  Simplification of recovery logic
  1717.  
  1718. Where IPsec integrity protection is known to be in place, and covers the
  1719. entire connection between iSCSI endpoints (or the portion that requires
  1720. additional integrity connection), portions of iSCSI can be simplified.
  1721. For example, mechanisms to recover from CRC check failures are not
  1722. necessary.
  1723.  
  1724. If the iSCSI CRC is negotiated, the recovery logic can be simplified to
  1725. regard any CRC check failure as fatal (e.g., generate a SCSI CHECK
  1726. CONDITION on data error, close the corresponding TCP connection on
  1727. header error) because it will be very rare for errors undetected by
  1728. IPsec integrity protection to be detected by the iSCSI CRC.
  1729.  
  1730. 3.6.2.  Omission of iSCSI CRC
  1731.  
  1732. In some situations where IPsec is employed, the iSCSI CRC will not
  1733. provide additional protection, and can be omitted.
  1734.  
  1735.  
  1736.  
  1737.  
  1738. Aboba, et al.                Standards Track                   [Page 29]
  1739.  
  1740.  
  1741.  
  1742.  
  1743.  
  1744. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  1745.  
  1746.  
  1747. For example, where IPsec processing as well as TCP checksum and iSCSI
  1748. CRC verification are offloaded within the NIC, each of these checks will
  1749. be verified prior to transferring data across the bus, so that
  1750. subsequent errors will not be detected.  As a result, where IPsec
  1751. processing is offloaded to the NIC, the iSCSI CRC is not necessary and
  1752. the implementations may wish not to negotiate it.
  1753.  
  1754. However, in other circumstances, the TCP checksum and iSCSI CRC will
  1755. provide additional protection, and it is desirable to negotiate use of
  1756. the iSCSI CRC even though IPsec is available. These situations occur
  1757. where:
  1758.  
  1759. [1]  IPsec, TCP and iSCSI are implemented purely in software.  Here,
  1760.      additional failure modes may be detected by the TCP checksum and/or
  1761.      iSCSI CRC. For example, after the IPsec message integrity check is
  1762.      successfully verified, the segment is copied as part of TCP
  1763.      processing, and a memory error during this process might cause the
  1764.      TCP checksum or iSCSI CRC verification to fail.
  1765.  
  1766. [2]  The implementation is an iSCSI-iSCSI proxy or gateway. Here the
  1767.      iSCSI CRC can be propagated from one iSCSI connection to another.
  1768.      In this case, the iSCSI CRC is useful to protect iSCSI data against
  1769.      memory, bus, or software errors within the proxy or gateway, and
  1770.      requesting it is desirable.
  1771.  
  1772. [3]  IPsec is provided by a device external to the actual iSCSI device.
  1773.      Here the iSCSI header and data CRCs can be kept across the part of
  1774.      the connection that is not protected by IPsec. For instance, the
  1775.      iSCSI connection could traverse an extra bus, interface card,
  1776.      network, interface card, and bus between the iSCSI device and the
  1777.      device providing IPsec. In this case, the iSCSI CRC is desirable,
  1778.      and the iSCSI implementation behind the IPsec device may request
  1779.      it.
  1780.  
  1781.      Note that if both ends of the connection are on the same segment,
  1782.      then traffic will be effectively protected by the layer 2 CRC, so
  1783.      that negotiation of the iSCSI CRC is not necessary.
  1784.  
  1785. 4.  iFCP and FCIP security issues
  1786.  
  1787. 4.1.  iFCP and FCIP Authentication Requirements
  1788.  
  1789. iFCP and FCIP are peer-to-peer protocols.  iFCP and FCIP sessions may be
  1790. initiated by either or both peer gateways. Consequently, bi-directional
  1791. authentication of peer gateways MUST be provided.
  1792.  
  1793. iFCP and FCIP are transport protocols that encapsulate SCSI and Fibre
  1794. Channel frames over IP. Therefore, Fibre Channel, operating system, and
  1795.  
  1796.  
  1797.  
  1798. Aboba, et al.                Standards Track                   [Page 30]
  1799.  
  1800.  
  1801.  
  1802.  
  1803.  
  1804. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  1805.  
  1806.  
  1807. user identities are transparent to the iFCP and FCIP protocols.
  1808.  
  1809. iFCP gateways use Discovery Domain information obtained from the iSNS
  1810. server to determine whether the initiating Fibre Channel N_PORT should
  1811. be allowed access to the Target N_PORT.  N_PORT identities used in the
  1812. Port Login (PLOGI) process will be considered authenticated provided
  1813. that they are received over a connection whose security complies with
  1814. the local security policy.
  1815.  
  1816. There is no requirement that the identities used in authentication be
  1817. kept confidential.
  1818.  
  1819. 4.2.  iFCP Interaction with IPsec and IKE
  1820.  
  1821. A conformant iFCP Portal is capable of establishing one or more IKE
  1822. Phase-1 Security Associations (SAs) to a peer iFCP Portal. A Phase-1 SA
  1823. may be established when an iFCP Portal is initialized, or may be
  1824. deferred until the first TCP connection with security requirements is
  1825. established.
  1826.  
  1827. An IKE Phase-2 SA protects one or more TCP connections within the same
  1828. iFCP Portal. More specifically, the successful establishment of an IKE
  1829. Phase-2 SA results in the creation of two uni-directional IPsec SAs
  1830. fully qualified by the tuple <SPI, destination IP address, ESP>. These
  1831. SAs protect the setup process of the underlying TCP connections and all
  1832. their subsequent TCP traffic. Each of the TCP connections protected by
  1833. an SA is either in the unbound state, or is bound to a specific iFCP
  1834. session.
  1835.  
  1836. In summary, at any point in time:
  1837.  
  1838. [1] There exist 0..M IKE Phase-1 SAs between peer iFCP portals
  1839. [2] Each IKE Phase-1 SAs has 0..N IKE Phase-2 SAs
  1840. [3] Each IKE Phase-2 SA protects 0..Z TCP connections
  1841.  
  1842. The creation of an IKE Phase-2 SA may be triggered by security policy
  1843. rules retrieved from an iSNS server.  Alternately, the creation of an SA
  1844. may be triggered by policy rules configured through a management
  1845. interface, reflecting iSNS-resident policy rules.  Likewise, the use of
  1846. a Key Exchange payload in Quick Mode for perfect forward secrecy may be
  1847. driven by security policy rules retrieved from the iSNS server, or set
  1848. through a management interface.
  1849.  
  1850. If an iFCP implementation makes use of unbound TCP connections, and such
  1851. connections belong to an iFCP Portal with security requirements, then
  1852. the unbound connections MUST be protected by an SA at all times just
  1853. like bounded connections.
  1854.  
  1855.  
  1856.  
  1857.  
  1858. Aboba, et al.                Standards Track                   [Page 31]
  1859.  
  1860.  
  1861.  
  1862.  
  1863.  
  1864. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  1865.  
  1866.  
  1867. Upon receiving an IKE Phase-2 delete message, there is no requirement to
  1868. terminate the protected TCP connections or delete the associated IKE
  1869. Phase-1 SA. Since an IKE Phase-2 SA may be associated with multiple TCP
  1870. connections, terminating such connections might in fact be inappropriate
  1871. and untimely. An iFCP Portal must instead attempt to create a new
  1872. Phase-2 SA while there are outstanding iFCP sessions.
  1873.  
  1874. To minimize the number of active Phase-2 SAs, IKE Phase-2 delete
  1875. messages may be sent for Phase-2 SAs whose TCP connections have not
  1876. handled data traffic for a while. To minimize the use of SA resources
  1877. while the associated TCP connections are idle, creation of a new SA may
  1878. be deferred until new data is to be sent over the connections.
  1879.  
  1880. 4.3.  FCIP Interaction with IPsec and IKE
  1881.  
  1882. FCIP Entities establish tunnels with other FCIP Entities in order to
  1883. transfer IP encapsulated FC frames. Each tunnel is a separate FCIP Link,
  1884. and can encapsulate multiple TCP connections.  The binding of TCP
  1885. connections to an FCIP Link is performed using the Fibre Channel World
  1886. Wide Names (WWNs) of the two FCIP Entities.
  1887.  
  1888. FCIP Entities may have more than one interface and IP address, and it is
  1889. possible for an FCIP Link to contain multiple TCP connections whose FCIP
  1890. endpoint IP Addresses are different. In this case, an IKE Phase 1 SA is
  1891. typically established for each FCIP endpoint IP Address pair. For the
  1892. purposes of establishing an IKE Phase 1 SA, static IP addresses are
  1893. typically used for identification.
  1894.  
  1895. Each TCP connection within an FCIP Link corresponds to an IKE Phase 2
  1896. (Quick Mode) SA. This is established prior to sending the initial TCP
  1897. SYN packet and applies to the life of the connection. Phase 2
  1898. negotiation is also required for rekeying, in order to protect against
  1899. replay attacks.
  1900.  
  1901. FCIP implementations MAY provide administrative management of
  1902. Confidentiality usage. These management interfaces SHOULD be provided in
  1903. a secure manner, so as to prevent an attacker from subverting the
  1904. security process by attacking the management interface.
  1905.  
  1906. FCIP Entities do not require any user-level authentication, since all
  1907. FCIP Entities participate in a machine-level tunnel function.
  1908.  
  1909. FCIP uses SLP for discovery, but not to distribute security policies.
  1910.  
  1911.  
  1912.  
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918. Aboba, et al.                Standards Track                   [Page 32]
  1919.  
  1920.  
  1921.  
  1922.  
  1923.  
  1924. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  1925.  
  1926.  
  1927. 5.  Security considerations
  1928.  
  1929. 5.1.  Transport mode versus tunnel mode
  1930.  
  1931. With respect to storage protocols, the major differences between the
  1932. IPsec tunnel mode and transport mode are as follows:
  1933.  
  1934. [1]  MTU considerations. Tunnel mode introduces an additional IP header
  1935.      into the datagram that reflects itself in a corresponding decrease
  1936.      in the path MTU seen by packets traversing the tunnel. This may
  1937.      result in a decrease in the maximum segment size of TCP connections
  1938.      running over the tunnel.
  1939.  
  1940. [2]  Address assignment and configuration.  Within IPsec tunnel mode, it
  1941.      is necessary for inner and outer source addresses to be configured,
  1942.      and for inner and outer destination addresses to be discovered.
  1943.      Within transport mode it is only necessary to discover a single
  1944.      destination address and configure a single source address.  IPsec
  1945.      tunnel mode address usage considerations are discussed in more
  1946.      detail below.
  1947.  
  1948. [3]  NAT traversal. As noted in [IPsecNATReq], IPsec tunnel mode ESP can
  1949.      traverse NAT in limited circumstances, whereas transport mode ESP
  1950.      cannot traverse NAT.  To enable NAT traversal in the general case,
  1951.      the IPsec NAT traversal functionality described in [UDPIPsec],
  1952.      [IPsecNATJust], [NATIKE] can be implemented.  More details are
  1953.      provided in the next section.
  1954.  
  1955. [4]  Firewall traversal. Where a storage protocol is to traverse
  1956.      administrative domains, the firewall administrator may desire to
  1957.      verify the integrity and authenticity of each transiting packet,
  1958.      rather than opening a hole in the firewall for the storage
  1959.      protocol. IPsec tunnel mode lends itself to such verification,
  1960.      since the firewall can terminate the tunnel mode connection while
  1961.      still allowing the endpoints to communicate end-to-end. If desired,
  1962.      the endpoints can in addition utilize IPsec transport mode for end-
  1963.      to-end security, so that they can also verify authenticity and
  1964.      integrity of each packet for themselves.
  1965.  
  1966.      In contrast, carrying out this verification with IPsec transport
  1967.      mode is more complex, since the firewall will need to terminate the
  1968.      IPsec transport mode connection and will need to act as an iSCSI,
  1969.      iFCP or FCIP gateway or TCP proxy, originating a new IPsec
  1970.      transport mode connection from the firewall to the internal
  1971.      endpoint. Such an implementation cannot provide end-to-end
  1972.      authenticity or integrity protection, and an application-layer CRC
  1973.      (iSCSI) or forwarding of the Fibre Channel frame CRC (iFCP and
  1974.      FCIP) is necessary to protect against errors introduced by the
  1975.  
  1976.  
  1977.  
  1978. Aboba, et al.                Standards Track                   [Page 33]
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  1985.  
  1986.  
  1987.      firewall.
  1988.  
  1989. [5]  IPsec-application integration. Where IPsec and the application
  1990.      layer protocol are implemented on the same device or host, it is
  1991.      possible to enable tight integration between them. For example, the
  1992.      application layer can request and verify that connections are
  1993.      protected by IPsec, and can obtain attributes of the IPsec security
  1994.      association. While in transport mode implementations the IPsec and
  1995.      application protocol implementations typically reside on the same
  1996.      host, with IPsec tunnel mode, they may reside on different hosts.
  1997.      Where IPsec is implemented on an external gateway, integration
  1998.      between the application and IPsec is typically not possible. This
  1999.      limits the ability of the application to control and verify IPsec
  2000.      behavior.
  2001.  
  2002. 5.1.1.  IPsec tunnel mode addressing considerations
  2003.  
  2004. IPsec tunnels include both inner and outer source as well as destination
  2005. addresses.
  2006.  
  2007. When used with IP block storage protocols, the inner destination address
  2008. represents the address of the IP block storage protocol peer (e.g. the
  2009. ultimate destination for the packet). The inner destination address can
  2010. be discovered using SLPv2 or iSNS, or can be resolved from an FQDN via
  2011. DNS, so that obtaining this address is typically not an issue.
  2012.  
  2013. The outer destination address represents the address of the IPsec
  2014. security gateway used to reach the peer. Several mechanisms have been
  2015. proposed for discovering the IPsec security gateway used to reach a
  2016. particular peer.  [RFC2320] discusses the use of KX Resource Records
  2017. (RRs) for IPsec gateway discovery. However, while KX RRs are supported
  2018. by many DNS server implementations, they have not yet been widely
  2019. deployed. Alternatively, DNS SRV [RFC2782] can also be used for this
  2020. purpose, as can protocols such as Tunnel Endpoint Discovery [TED].
  2021.  
  2022. When used with IP block storage protocols, the outer source address is
  2023. configured either statically or dynamically, using mechanisms such as
  2024. DHCPv4 [RFC2131], DHCPV6 [DHCPv6], or stateless address
  2025. autoconfiguration [RFC2373].
  2026.  
  2027. The inner source address SHOULD be included in the Quick Mode ID payload
  2028. when the peer establishes a tunnel mode SA with the IPsec security
  2029. gateway. This enables the IPsec security gateway to properly route
  2030. packets back to the remote peer. The inner source address can be
  2031. configured via a variety of mechanisms, depending on the scenario. Where
  2032. the IP block storage peers are located within the same administrative
  2033. domain, it is typically possible for the inner and outer source
  2034. addresses to be the same. This will work because the outer source
  2035.  
  2036.  
  2037.  
  2038. Aboba, et al.                Standards Track                   [Page 34]
  2039.  
  2040.  
  2041.  
  2042.  
  2043.  
  2044. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  2045.  
  2046.  
  2047. address is presumably assigned from within a prefix assigned to the
  2048. administrative domain, and which is therefore routable within the
  2049. domain. Assuming that the IPsec security gateway is aware of the inner
  2050. source address used by the connecting peer and plumbs a host route for
  2051. it, then packets arriving at the IPsec security gateway destined for the
  2052. address can be correctly encapsulated and sent down the correct tunnel.
  2053.  
  2054. Where IP block storage peers are located within different administrative
  2055. domains, it may be necessary for the inner source address to be assigned
  2056. by the IPsec security gateway, effectively "joining" the remote host to
  2057. the LAN attached to the IPsec security gateway. For example, if the
  2058. remote peer were to use its assigned (outer) source address as the inner
  2059. source address, then a number of problems might result:
  2060.  
  2061. [1]  Intrusion detection systems sniffing the LAN behind the IPsec
  2062.      security gateway would notice source addresses originating outside
  2063.      the administative domain.
  2064.  
  2065. [2]  Reply packets might not reach their destination, since the IPsec
  2066.      security gateway typically does not advertise default, but rather
  2067.      only the prefix that it allocates addresses from. Since the remote
  2068.      peer's address does not originate from with a prefix native to the
  2069.      administrative domain, it is likely that routers within the domain
  2070.      would not have a route for it, and would send the packet off to the
  2071.      router advertising default (perhaps a border router), instead of to
  2072.      the IPsec security gateway.
  2073.  
  2074. For these reasons, for inter-domain use, assignment of inner source
  2075. addresses may be needed. At present this is not a very common scenario;
  2076. however, where this is necessary, DHCP-based address assignment within
  2077. IPsec tunnel mode [DHCPIPsec] MUST be supported.  Note that this
  2078. mechanism is not yet widely deployed within IPsec security gateways;
  2079. existing IPsec tunnel mode servers typically implement this
  2080. functionality via proprietary extensions to IKE.
  2081.  
  2082. 5.2.  NAT traversal
  2083.  
  2084. As noted in [IPsecNATJust], tunnel mode ESP can traverse NAT in a
  2085. limited set of circumstances. For example, if there is only one protocol
  2086. endpoint behind a NAT, "ANY to ANY" selectors are negotiated, and the
  2087. receiver does not perform source address validation, then tunnel mode
  2088. ESP may successfully traverse NATs.  Since ignoring source address
  2089. validation introduces new security vulnerabilities, and negotiation of
  2090. specific selectors is desirable so as to limit the traffic that can be
  2091. sent down the tunnel, these conditions may not necessarily apply, and
  2092. tunnel mode NAT traversal will not always be possible.
  2093.  
  2094.  
  2095.  
  2096.  
  2097.  
  2098. Aboba, et al.                Standards Track                   [Page 35]
  2099.  
  2100.  
  2101.  
  2102.  
  2103.  
  2104. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  2105.  
  2106.  
  2107. Transport mode ESP cannot traverse NAT, even though ESP itself does not
  2108. include IP header fields within its message integrity check. This is
  2109. because the 16-bit TCP checksum is calculated based on a "pseudo-header"
  2110. that includes IP header fields, and the checksum is protected by the
  2111. IPsec message integrity check. As a result, the TCP checksum will be
  2112. invalidated by a NAT located between the two endpoints.
  2113.  
  2114. Since TCP checksum calculation and verification is mandatory in both
  2115. IPv4 and IPv6, it is not possible to omit checksum verification while
  2116. remaining standards compliant.  In order to enable traversal of NATs
  2117. existing while remaining in compliance, iSCSI, iFCP or FCIP security
  2118. implementations can implement IPsec/IKE NAT traversal, as described in
  2119. [IPsecNATReq], [UDPIPsec], [IPsecNATJust], [NATIKE].
  2120.  
  2121. The IKE [NATIKE] and IPsec [UDPIPsec] NAT traversal specifications
  2122. enable UDP encapsulation of IPsec to be negotiated if a NAT is detected
  2123. in the path. By determining the IP address of the NAT, the TCP checksum
  2124. can be calculated based on a pseudo-header including the NAT-adjusted
  2125. address and ports. If this is done prior to calculating the IPsec
  2126. message integrity check, TCP checksum verification will not fail.
  2127.  
  2128. 5.3.  IKE issues
  2129.  
  2130. There are situations where it is necessary for IKE to be implemented in
  2131. firmware.  In such situations, it is important to keep the size of the
  2132. IKE implementation within strict limits.  An upper bound on the size of
  2133. an IKE implementation might be considered to be 800 KB, with 80 KB
  2134. enabling implementation in a wide range of situations.
  2135.  
  2136. As noted in Table 5.3-1 on the next page, IKE implementations currently
  2137. exist which meet the requirements. Therefore, while removal of seldomly
  2138. used IKE functionality (such as the nonce authentication methods) would
  2139. reduce complexity, implementations typically will not require this in
  2140. order to fit within the code size budget.
  2141.  
  2142. 5.4.  Rekeying issues
  2143.  
  2144. It is expected that IP block storage implementations will need to
  2145. operate at high speed. For example, implementations operating at 1 Gbps
  2146. are currently in design, with 10 Gbps implementations to follow shortly
  2147. thereafter. At these speeds, a single IPsec SA could rapidly cycle
  2148. through the 32-bit IPsec sequence number space.
  2149.  
  2150.  
  2151.  
  2152.  
  2153.  
  2154.  
  2155.  
  2156.  
  2157.  
  2158. Aboba, et al.                Standards Track                   [Page 36]
  2159.  
  2160.  
  2161.  
  2162.  
  2163.  
  2164. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  2165.  
  2166.  
  2167. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  2168. |               | Code size   |             |
  2169. |Implementation |  (octets)   | Release     |
  2170. |               |             |             |
  2171. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  2172. |               |             | Linux       |
  2173. | Pluto         |  258KB      | FreeSWAN    |
  2174. |(FreeSWAN)     |             | x86         |
  2175. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  2176. |               |             |             |
  2177. | Racoon        |  400KB      | NetBSD 1.5  |
  2178. | (KAME)        |             | x86         |
  2179. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  2180. |               |             |             |
  2181. | Isakmpd       |  283KB      | NetBSD 1.5  |
  2182. | (Erickson)    |             | x86         |
  2183. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  2184. |               |             |             |
  2185. | WindRiver     |  142KB      | PowerPC     |
  2186. |               |             |             |
  2187. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  2188. |               |             |             |
  2189. | Cisco         |  222KB      | PowerPC     |
  2190. | VPN1700       |             |             |
  2191. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  2192. |               |             |             |
  2193. | Cisco         |  350K       | PowerPC     |
  2194. | VPN3000       |             |             |
  2195. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  2196. |               |             |             |
  2197. | Cisco         |  228KB      | MIPS        |
  2198. | VPN7200       |             |             |
  2199. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  2200.  
  2201.  
  2202. Table 5.3-1 - Code Size for IKE implementations
  2203.  
  2204. For example, a single SA operating at 1 Gbps line rate and sending 64
  2205. octet packets would exhaust the 32-bit sequence number space in 2200
  2206. seconds, or 37 minutes. With 1518 octet packets, exhaustion would occur
  2207. in 14.5 hours.  At 10 Gbs, exhaustion would occur in 220 seconds or 3.67
  2208. minutes. With 1518 octet packets, this would occur within 1.45 hours.
  2209.  
  2210. In the future, it may be desirable for implementations operating at
  2211. speeds of 1 Gbps or greater to implement IPsec sequence number
  2212. extension, described in [Seq].  Note that depending on the transform in
  2213. use, it is possible that rekeying will be required prior to exhaustion
  2214. of the sequence number space.
  2215.  
  2216.  
  2217.  
  2218. Aboba, et al.                Standards Track                   [Page 37]
  2219.  
  2220.  
  2221.  
  2222.  
  2223.  
  2224. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  2225.  
  2226.  
  2227. In CBC-mode ciphers the ciphertext of one block depends on the plaintext
  2228. of that block as well as the ciphertext of the previous block. This
  2229. implies that if the ciphertext of two blocks are identical, and the
  2230. plaintext of the next block is also identical, then the ciphertext of
  2231. the next block will be identical. Thuss, if identical ciphertext blocks
  2232. can be found with matching subsequent blocks, an attacker can determine
  2233. the existence of matching plaintext.
  2234.  
  2235. Such "Birthday attacks" were examined by Bellare et. al. in [DESANALY].
  2236. On average, a ciphertext block of size n bits will be expected to repeat
  2237. every 2^[n/2] blocks. Although a single "birthday attack" does not
  2238. provide much information to an attacker, multiple such attacks might
  2239. provide useful information. To  make this unlikely, it is recommended
  2240. that a rekey occur before 2^[n/2] blocks have been sent on a given SA.
  2241. These conclusions do not apply to counter mode.  Bellare et. al. have
  2242. formalized this in [DESANALY], showing that the insecurity of CBC mode
  2243. increases as O(s^2/2^n), where n is the block size in bits, and s is the
  2244. total number of blocks encrypted.  These conclusions do not apply to
  2245. counter mode.
  2246.  
  2247. The formula below sets a limit on the bytes that can be sent on a CBC SA
  2248. before a rekey is required:
  2249.  
  2250.             B = (n/8) * 2^[n/2]
  2251. Where:
  2252.             B = maximum bytes sent on the SA
  2253.             n = block size in bits
  2254.  
  2255. This means that cipher block size as well as key length need to be
  2256. considered in the rekey decision. 3DES uses a block size n = 64 bits
  2257. (2^3 bytes); this implies that the SA must be rekeyed before B = (64/8)
  2258. * (2^32) = 2^35 bytes are sent. At 1 Gbps, this implies that a rekey
  2259. will be required every 274.9 seconds (4.6 minutes); at 10 Gbps, a rekey
  2260. is required every 27.5 seconds.
  2261.  
  2262. In terms of the sequence number space, for a 3DES encrypted message of
  2263. 512 = 2^9 bytes (2^6 blocks) this implies that the key has become
  2264. insecure after about 2^26 messages.
  2265.  
  2266. 5.5.  Transform issues
  2267.  
  2268. Since IP block storage implementations may operate at speeds of 1 Gbps
  2269. or greater, the ability to offer IPsec security services at high speeds
  2270. is of intense concern. Since support for multiple algorithms multiplies
  2271. the complexity and expense of hardware design, one of the goals of the
  2272. transform selection effort is to find a minimal set of confidentiality
  2273. and authentication algorithms implementable in hardware at speeds of up
  2274. to 10 Gbps, as well as being efficient for implementation in software at
  2275.  
  2276.  
  2277.  
  2278. Aboba, et al.                Standards Track                   [Page 38]
  2279.  
  2280.  
  2281.  
  2282.  
  2283.  
  2284. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  2285.  
  2286.  
  2287. speeds of 100 Mbps or slower.
  2288.  
  2289. In this specification, we primarily concern ourselves with IPsec
  2290. transforms that have already been specified, and for which parts are
  2291. available that can run at 1 Gbps line rate. Where existing algorithms do
  2292. not gracefully scale to 10 Gbps, we further consider algorithms for
  2293. which transform specifications are not yet complete, but for which parts
  2294. are expected to be available for inclusion in products shipping within
  2295. the next 12 months. As the state of the art advances, the range of
  2296. feasible algorithms will broaden and additional mandatory-to-implement
  2297. algorithms may be considered.
  2298.  
  2299. Section 5 of [RFC2406] states:
  2300.  
  2301.    "A compliant ESP implementation MUST support the following
  2302.    mandatory-to-implement algorithms:
  2303.  
  2304.          - DES in CBC mode
  2305.          - HMAC with MD5
  2306.          - HMAC with SHA-1
  2307.          - NULL Authentication algorithm
  2308.          - NULL Encryption algorithm
  2309.    "
  2310.  
  2311. The DES algorithm is specified in [FIPS46-3]; implementation guidelines
  2312. are found in [FIPS74], and security issues are discussed in
  2313. [DESDIFF],[DESINT], [DESCRACK]. The DES IPsec transform is defined in
  2314. [RFC2405] and the 3DES in CBC mode IPsec transform is specified in
  2315. [RFC2451].
  2316.  
  2317. The MD5 algorithm is specified in [MD5]; HMAC is defined in [RFC2104]
  2318. and security issues with MD5 are discussed in [MD5Attack]. The HMAC-MD5
  2319. IPsec transform is specified in [HMACMD5IPsec].  The HMAC-SHA1 IPsec
  2320. transform is specified in [RFC2404].
  2321.  
  2322. In addition to these existing algorithms, NIST is currently evaluating
  2323. the following modes [NSPUE2] of AES, defined in [RIJNDAEL],[NISTAES]:
  2324.  
  2325.      AES in Electronic Codebook (ECB) confidentiality mode
  2326.      AES in Cipher Block Chaining (CBC) confidentiality mode
  2327.      AES in Cipher Feedback (CFB) confidentiality mode
  2328.      AES in Output Feedback (OFB) confidentiality mode
  2329.      AES in Counter (CTR) confidentiality mode
  2330.      AES CBC-MAC authentication mode
  2331.  
  2332. When utilizing AES modes, it may be necessary to use larger public keys;
  2333. the tradeoffs are described in [KeyLen]. Additional MODP Diffie-Hellman
  2334. groups for use with IKE are described in [MODP].
  2335.  
  2336.  
  2337.  
  2338. Aboba, et al.                Standards Track                   [Page 39]
  2339.  
  2340.  
  2341.  
  2342.  
  2343.  
  2344. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  2345.  
  2346.  
  2347. The Modes [MODES] effort is also considering a number of additional
  2348. algorithms, including the following:
  2349.  
  2350.      PMAC
  2351.  
  2352. To provide authentication, integrity and replay protection, IP block
  2353. storage security implementations MUST support HMAC-SHA1 [RFC2404] for
  2354. authentication, and AES in CBC MAC mode with XCBC extensions SHOULD be
  2355. supported [AESCBC].
  2356.  
  2357. HMAC-SHA1 [RFC2404] is to be preferred to HMAC-MD5, due to concerns that
  2358. have been raised about the security of MD5 [MD5Attack].  HMAC-SHA1 parts
  2359. are currently available that run at 1 Gbps, the algorithm is
  2360. implementable in hardware at speeds up to 10 Gbps, and an IPsec
  2361. transform specification [RFC2404] exists. As a result, it is most
  2362. practical to utilize HMAC-SHA1 as the authentication algorithm for
  2363. products shipping in the near future.  The HMAC-SHA2 algorithm [NISTSHA]
  2364. is also under development, including an IPsec transform [SHAEXT], so
  2365. that this may merit consideration in the future.  AES in CBC-MAC
  2366. authentication mode with XCBC extensions was selected since it avoids
  2367. adding substantial additional code if AES is already being implemented
  2368. for encryption; an IPsec transform document is available [AESCBC].
  2369.  
  2370. Authentication transforms also exist that are considerably more
  2371. efficient to implement than HMAC-SHA1, HMAC-SHA2 or AES in CBC-MAC
  2372. authentication mode.  UMAC [UMAC],[UMACKR] is more efficient to
  2373. implement in software and PMAC [PMAC] is more efficient to implement in
  2374. hardware.  PMAC is currently being evaluated as part of the NIST modes
  2375. effort [MODES] but an IPsec transform does not yet exist; neither does a
  2376. UMAC transform.
  2377.  
  2378. For confidentiality, the ESP mandatory-to-implement algorithm (DES) is
  2379. unacceptable.  As noted in [DESCRACK], DES is crackable with modest
  2380. computation resources, and so is inappropriate for use in situations
  2381. requiring high levels of security.
  2382.  
  2383. To provide confidentiality for iSCSI, iFCP, and FCIP, 3DES in CBC mode
  2384. [RFC2451] MUST be supported and AES in Counter Mode [AESCTR] SHOULD be
  2385. supported. For use in high speed implementations, 3DES has significant
  2386. disadvantages. However, a 3DES IPsec transform has been specified and
  2387. parts are available that can run at 1 Gbps, implementing 3DES in
  2388. products is practical for the short term.
  2389.  
  2390. As described in Appendix B, 3DES software implementations make excessive
  2391. computational demands at speeds of 100 Mbps or greater, effectively
  2392. ruling out software-only implementations.  In addition, 3DES
  2393. implementations  require rekeying prior to exhaustion of the current
  2394. 32-bit IPsec sequence number space, and thus would not be able to make
  2395.  
  2396.  
  2397.  
  2398. Aboba, et al.                Standards Track                   [Page 40]
  2399.  
  2400.  
  2401.  
  2402.  
  2403.  
  2404. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  2405.  
  2406.  
  2407. use of sequence space extensions, if they were available. This means
  2408. that 3DES will require very frequent rekeying at speeds of 10 Gbps or
  2409. faster.  Thus, 3DES is inconvenient for use at very high speeds, as well
  2410. as being impractical for implementation in software at slower speeds
  2411. (100+ Mbps).
  2412.  
  2413. 5.6.  Fragmentation Issues
  2414.  
  2415. When certificate authentication is used, IKE fragmentation can be
  2416. encountered. This can occur when certificate chains are used, or even
  2417. when exchanging a single certificate if the key size, or size of other
  2418. certificate fields (such as the distinguished name and other OIDs) is
  2419. large enough. Many Network Address Translators (NATs), and firewalls do
  2420. not handle fragments properly, dropping them on inbound and/or outbound.
  2421.  
  2422. Routers in the path will also frequently discard fragments after the
  2423. intial one, since they typically will not contain full IP headers that
  2424. can be compared against an Access List.
  2425.  
  2426. As a result, where IKE fragmentation occurs, the endpoints will often be
  2427. unable to establish an IPsec security association.  The solution to this
  2428. problem is to install NAT, firewall or router code load that can
  2429. properly support fragments. If this cannot be done, then the following
  2430. alternatives can be considered:
  2431.  
  2432. [1]  Obtaining certificates by other means.
  2433.  
  2434. [2]  Reducing the size of the certificate chain.
  2435.  
  2436. [3]  Reducing  the size of fields within the certificates. This includes
  2437.      reduction in the key size, the distinguished name or other fields.
  2438.      This should be considered only as a last resort.
  2439.  
  2440. Fragmentation can become a concern when prepending IPsec headers to a
  2441. frame. One mechanism which can be used to reduce this problem is to
  2442. utilize path MTU discovery.  For example, when TCP is used as the
  2443. transport for iSCSI, iFCP or FCIP then path MTU discovery, described in
  2444. [RFC1191], [RFC1435], [RFC1981], can be used to enable the TCP endpoints
  2445. to discover the correct MTU, including effects due to IPsec
  2446. encapsulation.
  2447.  
  2448. However, Path MTU discovery fails when appropriate ICMP messages are not
  2449. received by the host. This occurs in IPsec implementations which drop
  2450. unauthenticated ICMP packets.  This can result in blackholing in naive
  2451. TCP implementations, as described in [RFC2923].  Appropriate TCP
  2452. behavior is described in section 2.1 of [RFC2923]:
  2453.  
  2454.    "TCP should notice that the connection is timing out. After several
  2455.  
  2456.  
  2457.  
  2458. Aboba, et al.                Standards Track                   [Page 41]
  2459.  
  2460.  
  2461.  
  2462.  
  2463.  
  2464. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  2465.  
  2466.  
  2467.    timeouts, TCP should attempt to send smaller packets, perhaps turning
  2468.    off the DF flag for each packet. If this succeeds, it should continue
  2469.    to turn off PMTUD for the connection for some reasonable period of
  2470.    time, after which it should probe again to try to determine if the
  2471.    path has changed."
  2472.  
  2473. If an ICMP PMTU is received by an IPsec implementation that processes
  2474. unauthenticated ICMP packets, this value should be stored in the SA as
  2475. proposed in [RFC2401], and IPsec should also provide notification of
  2476. this event to TCP so that the new MTU value can be correctly reflected.
  2477.  
  2478. 5.7.  Security Checks
  2479.  
  2480. When a connection is opened which requires security, IP block storage
  2481. security implementations may wish to check that the connection is
  2482. protected by IPsec. If security is desired and IPsec protection is
  2483. removed on a connection, it is reinstated before non-protected IP block
  2484. storage packets are sent.  Since IPsec verifies that each packet arrives
  2485. on the correct SA, as long as it can be ensured that IPsec protection is
  2486. in place, then IP block storage implementations can be assured that each
  2487. received packet was sent by a trusted peer.
  2488.  
  2489. When used with IP block storage protocols, each TCP connection MUST be
  2490. protected by an IKE Phase 2 SA. Traffic from one or more than one TCP
  2491. connection may flow within each IPsec Phase 2 SA. IP block storage
  2492. security implementations need not verify that the IP addresses and TCP
  2493. port values in the packet match the socket information which was used to
  2494. setup the connection. This check will be performed by IPsec, preventing
  2495. malicious peers from sending commands on inappropriate Quick Mode SAs.
  2496.  
  2497. 5.8.  Authentication issues
  2498.  
  2499. 5.8.1.  Machine versus user certificates
  2500.  
  2501. The certificate credentials provided by the iSCSI Initiator during the
  2502. IKE negotiation may be those of the machine or of the iSCSI entity. When
  2503. machine authentication is used, the machine certificate is typically
  2504. stored on the iSCSI Initiator and Target during an enrollment process.
  2505. When user certificates are used, the user certificate can be stored
  2506. either on the machine or on a smartcard. For iFCP and FCIP, the
  2507. certificate credentials provided will almost always be those of the
  2508. device and will be stored on the device.
  2509.  
  2510. Since the value of a machine certificate is inversely proportional to
  2511. the ease with which an attacker can obtain one under false pretenses, it
  2512. is advisable that the machine certificate enrollment process be strictly
  2513. controlled. For example, only administrators may have the ability to
  2514. enroll a machine with a machine certificate.
  2515.  
  2516.  
  2517.  
  2518. Aboba, et al.                Standards Track                   [Page 42]
  2519.  
  2520.  
  2521.  
  2522.  
  2523.  
  2524. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  2525.  
  2526.  
  2527. While smartcard certificate storage lessens the probability of
  2528. compromise of the private key, smartcards are not necessarily desirable
  2529. in all situations. For example, some organizations deploying machine
  2530. certificates use them so as to restrict use of non-approved hardware.
  2531. Since user authentication can be provided within iSCSI login (keeping in
  2532. mind the weaknesses described earlier), support for machine
  2533. authentication in IPsec makes it is possible to authenticate both the
  2534. machine as well as the user. Since iFCP and FCIP have no equivalent of
  2535. iSCSI Login, for these protocols only the machine is authenticated.
  2536.  
  2537. In circumstances in which this dual assurance is considered valuable,
  2538. enabling movement of the machine certificate from one machine to
  2539. another, as would be possible if the machine certificate were stored on
  2540. a smart card, may be undesirable.
  2541.  
  2542. Similarly, when user certificate are deployed, it is advisable for the
  2543. user enrollment process to be strictly controlled. If for example, a
  2544. user password can be readily used to obtain a certificate (either a
  2545. temporary or a longer term one), then that certificate has no more
  2546. security value than the password. To limit the ability of an attacker to
  2547. obtain a user certificate from a stolen password, the enrollment period
  2548. can be limited, after which password access will be turned off.  Such a
  2549. policy will prevent an attacker obtaining the password of an unused
  2550. account from obtaining a user certificate once the enrollment period has
  2551. expired.
  2552.  
  2553. 5.8.2.  Pre-shared keys
  2554.  
  2555. Use of pre-shared keys in IKE Main Mode is vulnerable to man-in-the-
  2556. middle attacks when used with dynamically addressed hosts (such as with
  2557. iSCSI Initiators). In Main Mode it is necessary for SKEYID_e to be used
  2558. prior to the receipt of the identification payload. Therefore the
  2559. selection of the pre-shared key may only be based on information
  2560. contained in the IP header. However, where dynamic IP address assignment
  2561. is typical, it is often not possible to identify the required pre-shared
  2562. key based on the IP address.
  2563.  
  2564. Thus when pre-shared key authentication is used in Main Mode  along with
  2565. entities whose address is dynamically assigned, the same pre-shared key
  2566. is shared by a group and is no longer able to function as an effective
  2567. shared secret.  In this situation, neither the Initiator nor Responder
  2568. identifies itself during IKE Phase 1; it is only known that both parties
  2569. are a member of the group with knowledge of the pre-shared key. This
  2570. permits anyone with access to the group pre-shared key to act as a man-
  2571. in-the-middle.  This vulnerability is typically not of concern where IP
  2572. addresses are typically statically assigned (such as with iFCP and
  2573. FCIP), since in this situation individual pre-shared keys are possible
  2574. within IKE Main Mode.
  2575.  
  2576.  
  2577.  
  2578. Aboba, et al.                Standards Track                   [Page 43]
  2579.  
  2580.  
  2581.  
  2582.  
  2583.  
  2584. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  2585.  
  2586.  
  2587. However, where IP addresses are dynamically assigned and Main Mode is
  2588. used along with pre-shared keys, the Responder is not authenticated
  2589. unless application-layer mutual authentication is performed (e.g. iSCSI
  2590. login authentication). This enables an attacker in possession of the
  2591. group pre-shared key to masquerade as the Responder. In addition to
  2592. enabling the attacker to present false data, the attacker would also be
  2593. able to mount a dictionary attack on legacy authentication methods such
  2594. as CHAP [RFC1994], potentially compromising many passwords at a time.
  2595. This vulnerability is widely present in existing IPsec implementations.
  2596.  
  2597. Group pre-shared keys are not required in Aggressive Mode since the
  2598. identity payload is sent earlier in the exchange, and therefore the pre-
  2599. shared key can be selected based on the identity.  However, when
  2600. Aggressive Mode is used the user identity is exposed and this is often
  2601. considered undesirable.
  2602.  
  2603. Note that care needs to be taken with IKE Phase 1 Identity Payload
  2604. selection in order to enable mapping of identities to pre-shared keys
  2605. even with Aggressive Mode. Where the ID_IPV4_ADDR or ID_IPV6_ADDR
  2606. Identity Payloads are used and addresses are dynamically assigned,
  2607. mapping of identities to keys is not possible, so that group pre-shared
  2608. keys are still a practical necessity. As a result, identities other than
  2609. ID_IPV4_ADDR and ID_IPV6_ADDR (such as ID_FQDN or ID_USER_FQDN) SHOULD
  2610. be employed in situations where Aggressive mode is utilized along with
  2611. pre-shared keys and IP addresses are dynamically assigned.
  2612.  
  2613. 5.8.3.  IKE and application-layer authentication
  2614.  
  2615. In addition to IKE authentication, iSCSI implementations utilize their
  2616. own authentication methods, such as SRP described in [RFC2945].
  2617. Currently, work is underway on Fibre Channel security, so that a similar
  2618. authentication process may eventually also apply to iFCP and FCIP as
  2619. well.
  2620.  
  2621. While iSCSI provides initial authentication, it does not provide per-
  2622. packet authentication, integrity or replay protection. This implies that
  2623. the identity verified in the iSCSI Login is not subsequently verified on
  2624. reception of each packet.
  2625.  
  2626. With IPsec, when the identity asserted in IKE is authenticated, the
  2627. resulting derived keys are used to provide per-packet authentication,
  2628. integrity and replay protection. As a result, the identity verified in
  2629. the IKE conversation is subsequently verified on reception of each
  2630. packet.
  2631.  
  2632. Let us assume that the identity claimed in iSCSI Login is a user
  2633. identity, while the identity claimed within IKE is a machine identity.
  2634. Since only the machine identity is verified on a per-packet basis, there
  2635.  
  2636.  
  2637.  
  2638. Aboba, et al.                Standards Track                   [Page 44]
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  2645.  
  2646.  
  2647. is no way for the recipient to verify that only the user authenticated
  2648. via iSCSI Login is using the IPsec SA.
  2649.  
  2650. In fact, IPsec implementations that only support machine authentication
  2651. typically have no way to distinguish between user traffic within the
  2652. kernel. As a result, where machine authentication is used, once an IPsec
  2653. SA is opened, another user on a multi-user machine may be able to send
  2654. traffic down the IPsec SA. This is true for both transport mode and
  2655. tunnel mode SAs.
  2656.  
  2657. To limit the potential vulnerability, IP block storage implementations
  2658. MUST do the following:
  2659.  
  2660. [1]  Ensure that socket access is appropriately controlled.  On a multi-
  2661.      user operating system, this implies that sockets opened for use by
  2662.      IP block storage protocols MUST be exclusive.
  2663.  
  2664. [2]  In the case of iSCSI, implementations MUST also ensure that
  2665.      application layer login credentials (such as iSCSI login
  2666.      credentials) are protected from unauthorized access.
  2667.  
  2668. If these directives are followed, then a rogue process will not be able
  2669. to access an IP block storage volume.
  2670.  
  2671. While the identity asserted within IKE is verified on a per-packet
  2672. basis, to avoid interference between users on a given machine, operating
  2673. system support is required. In order to segregate traffic between users
  2674. when user authentication is supported, the IPsec endpoints must ensure
  2675. that only traffic from that particular user is sent or received within
  2676. the IPsec SA.  Enforcement of this restriction is the responsibility of
  2677. the operating system.
  2678.  
  2679. In kernel mode iSCSI drivers there typically is no user context to
  2680. perform user authentication. In this case the authentication is closer
  2681. to machine authentication. In most operating systems device permissions
  2682. would control the ability to read/write to the device prior to mounting.
  2683. Once the device is mounted, ACLs set by the filesystem control access to
  2684. the device. An administrator can access the blocks on the device
  2685. directly (for instance, by sending pass through requests to the port
  2686. driver directly such as in Windows NT). In the same way, an
  2687. administrator can open a raw socket and send IPsec protected packets to
  2688. an iSCSI Target. The situation is analogous, and in this respect no new
  2689. vulnerability is created that didn't previously exist. The Operating
  2690. system's ACLs need to be effective to protect a device (whether it is a
  2691. SCSI device or an iSCSI device).
  2692.  
  2693.  
  2694.  
  2695.  
  2696.  
  2697.  
  2698. Aboba, et al.                Standards Track                   [Page 45]
  2699.  
  2700.  
  2701.  
  2702.  
  2703.  
  2704. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  2705.  
  2706.  
  2707. 5.8.4.  IP block storage authorization
  2708.  
  2709. IP block storage protocols can use a variety of mechanisms for
  2710. authorization. Where ID_FQDN is used as the Identity Payload, IP block
  2711. storage endpoints can be configured with a list of authorized FQDNs. The
  2712. configuration can occur manually, or automatically via iSNS or the iSCSI
  2713. MIB, defined in [AuthMIB].
  2714.  
  2715. Assuming that IPsec authentication is successful, this list of FQDNs can
  2716. be examined to determine authorization levels.  Where certificate
  2717. authentication is used, it is possible to configure IP block storage
  2718. protocol endpoints with trusted roots. The trusted roots used with IP
  2719. block storage protocols might be different from the trusted roots used
  2720. for other purposes. If this is the case, then the burden of negotiating
  2721. use of the proper certificates lies with the IPsec initiator.
  2722.  
  2723. Note that because IKE does not deal well with certificate chains, and is
  2724. typically configured with a limited set of trusted roots, it is most
  2725. appropriate for intra-domain usage.
  2726.  
  2727. Since iSCSI supports Login authentication, it is also possible to use
  2728. the identities presented within the iSCSI Login for authorization
  2729. purposes.
  2730.  
  2731. 5.9.  Use of AES in counter mode
  2732.  
  2733. When utilizing AES modes, it may be necessary to use larger public keys;
  2734. the tradeoffs are described in [KeyLen]. Additional MODP Diffie-Hellman
  2735. groups for use with IKE are described in [MODP].
  2736.  
  2737. When AES in counter mode is used, it is important to avoid reuse of the
  2738. counter with the same key, even across all time. Counter mode creates
  2739. ciphertext by XORing generated key stream with plaintext. It is fairly
  2740. easy to recover the plaintext from two messages counter mode encrypted
  2741. under the same counter value, simply by XORing together the two packets.
  2742. The implication of this is that it is almost always an error to use
  2743. IPsec manual keying with counter mode, except when the implementation
  2744. takes heroic measures to maintain state across sessions.
  2745.  
  2746. Another counter mode issue is it makes forgery of correct packets
  2747. trivial. Counter mode should therefore never be used without also using
  2748. data authentication.
  2749.  
  2750. 5.10.  Use of SRP in iSCSI Authentication
  2751.  
  2752. The strength of SRP security is dependent on the characteristics of the
  2753. group being used (i.e., the prime modulus N and generator g).  As
  2754. described in [RFC2945], N is required to be a Sophie-German prime (of
  2755.  
  2756.  
  2757.  
  2758. Aboba, et al.                Standards Track                   [Page 46]
  2759.  
  2760.  
  2761.  
  2762.  
  2763.  
  2764. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  2765.  
  2766.  
  2767. the form N = 2q + 1, where q is also prime) the generator g is a
  2768. primitive root of GF(n) [SRPNDSS]. For use in iSCSI authentication, the
  2769. prime modulus N MUST be at least 768 bits.
  2770.  
  2771. Upon receiving N and g from the Target, the Initiator MUST verify that
  2772. they satisfy the above requirements (and abort the connection
  2773. otherwise). This verification MAY start by trying to match them with a
  2774. well-known group that satisfies the above requirements. SRP well-known
  2775. groups are included in Appendix A.
  2776.  
  2777. 6.  Normative references
  2778.  
  2779. [RFC793]    Postel, J., "Transmission Control Protocol", STD 7, RFC 793,
  2780.             September 1981.
  2781.  
  2782. [RFC1191]   Mogul, J., and S. Deering, "Path MTU Discovery", RFC 1191,
  2783.             November 1990
  2784.  
  2785. [RFC1435]   Knowles, S., "IESG Advice from Experience with Path MTU
  2786.             Discovery", RFC 1435, March 1993
  2787.  
  2788. [RFC1981]   McCann, J., Deering, S. and J. Mogul, "Path MTU Discovery
  2789.             for IP version 6", RFC 1981, August 1996
  2790.  
  2791. [RFC2104]   Krawczyk, H., Bellare, M. and R. Canetti, "HMAC: Keyed-
  2792.             Hashing for Message Authentication", RFC 2104, February 1997
  2793.  
  2794. [RFC2119]   Bradner, S., "Key words for use in RFCs to Indicate
  2795.             Requirement Levels", BCP 14, RFC 2119, March 1997
  2796.  
  2797. [RFC2401]   Atkinson, R., Kent, S., "Security Architecture for the
  2798.             Internet Protocol", RFC 2401, November 1998
  2799.  
  2800. [RFC2404]   Madson, C., Glenn, R., "The Use of HMAC-SHA-1-96 within ESP
  2801.             and AH", RFC 2404, November 1998
  2802.  
  2803. [RFC2406]   Kent,S., Atkinson, R., "IP Encapsulating Security Payload
  2804.             (ESP)", RFC 2406, November 1998
  2805.  
  2806. [RFC2407]   Piper, D., "The Internet IP Security Domain of
  2807.             Interpretation of ISAKMP", RFC 2407, November 1998
  2808.  
  2809. [RFC2408]   Maughan, D., Schertler, M., Schneider, M., Turner, J.,
  2810.             "Internet Security Association and Key Management Protocol
  2811.             (ISAKMP), RFC 2408, November 1998
  2812.  
  2813. [RFC2409]   Harkins, D., Carrel, D., "The Internet Key Exchange (IKE)",
  2814.             RFC 2409, November 1998
  2815.  
  2816.  
  2817.  
  2818. Aboba, et al.                Standards Track                   [Page 47]
  2819.  
  2820.  
  2821.  
  2822.  
  2823.  
  2824. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  2825.  
  2826.  
  2827. [RFC2412]   Orman, H., "The OAKLEY Key Determination Protocol", RFC
  2828.             2412, November 1998
  2829.  
  2830. [RFC2451]   Pereira, R., Adams, R., "The ESP CBC-Mode Cipher
  2831.             Algorithms", RFC 2451, November 1998
  2832.  
  2833. [RFC2608]   Guttman, E., Perkins, C., Veizades, J., Day, M, "Service
  2834.             Location Protocol, Version 2", RFC 2608, June 1999
  2835.  
  2836. [RFC2923]   Lahey, K., TCP Problems with Path MTU Discovery", RFC 2923,
  2837.             September 2000
  2838.  
  2839. [RFC2945]   Wu, T., "The SRP Authentication and Key Exchange System,"
  2840.             RFC 2945, September 2000
  2841.  
  2842. [NISTAES]   Draft FIPS Publication ZZZZ, "Advanced Encryption Standard
  2843.             (AES)", U.S. DoC/NIST, summer 2001
  2844.  
  2845. [3DESANSI]  American National Standard for Financial Services
  2846.             X9.52-1998, "Triple Data Encryption Algorithm Modes of
  2847.             Operation", American Bankers Association, Washington, D.C.,
  2848.             July 29, 1998
  2849.  
  2850. [AESCBC]    Frankel, S., Kelly, S., Glenn, R., "The AES Cipher Algorithm
  2851.             and Its Use with IPsec", Internet draft (work in progress),
  2852.             draft-ietf-ipsec-ciph-aes-cbc-03.txt, November 2001.
  2853.  
  2854. [AESCTR]    Walker, J., Moskowitz, R., "The AES128 CTR Mode of Operation
  2855.             and Its Use with IPsec", Internet draft (work in progress),
  2856.             draft-moskowitz-aes128-ctr-00.txt, September 2001
  2857.  
  2858. [DHCPIPsec] Patel, B., Aboba, B., Kelly, S., Gupta, V., "DHCPv4
  2859.             Configuration of IPsec Tunnel Mode", Internet draft (work in
  2860.             progress), draft-ietf-ipsec-dhcp-13.txt, June 2001
  2861.  
  2862. [iSCSI]     Satran, J., et al., "iSCSI", Internet draft (work in
  2863.             progress), draft-ietf-ips-iSCSI-11.txt, March 2002
  2864.  
  2865. [iFCP]      Monia, C., et al., "iFCP - A Protocol for Internet Fibre
  2866.             Channel Storage Networking", Internet drafts (work in
  2867.             progress), draft-ietf-ips-ifcp-10.txt, February 2002
  2868.  
  2869. [FCIP]      Rajagopal, M., et al., "Fibre Channel over TCP/IP (FCIP)",
  2870.             Internet draft (work in progress), draft-ietf-ips-
  2871.             fcovertcpip-09.txt, February 2002.
  2872.  
  2873. [iSCSIName] Bakke, M., et.al., "iSCSI Naming and Discovery", draft-ietf-
  2874.             ips-iscsi-name-disc-05.txt, Work in Progress, March 2002
  2875.  
  2876.  
  2877.  
  2878. Aboba, et al.                Standards Track                   [Page 48]
  2879.  
  2880.  
  2881.  
  2882.  
  2883.  
  2884. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  2885.  
  2886.  
  2887. [FCIPSLP]   Petersen, D., "Finding FCIP Entities Using SLP", Internet
  2888.             draft (work in progress), draft-ietf-ips-fcip-slp-01.txt,
  2889.             November 2001
  2890.  
  2891. [iSCSISLP]  Bakke, M., "Finding iSCSI Targets and Name Servers Using
  2892.             SLP", Internet draft (work in progress), draft-ietf-ips-
  2893.             iscsi-slp-03.txt, March 2002
  2894.  
  2895. [iSNS]      Gibbons, K., et al., "iSNS Internet Storage Name Service",
  2896.             Internet draft (work in progress), draft-ietf-ips-
  2897.             isns-08.txt, February 2002
  2898.  
  2899. [SRPNDSS]   Wu, T., "The Secure Remote Password Protocol", in
  2900.             Proceedings of the 1998 Internet Society Symposium on
  2901.             Network and Distributed Systems Security, San Diego, CA, pp.
  2902.             97-111
  2903.  
  2904. [KeyLen]    Orman, H., Hoffman, P., "Determining Strengths For Public
  2905.             Keys Used For Exchanging Symmetric Keys", Internet draft
  2906.             (work in progress), draft-orman-public-key-lengths-05.txt,
  2907.             December 2001.
  2908.  
  2909. [MODP]      Kivinen, T., Kojo, M., "More MODP Diffie-Hellman groups for
  2910.             IKE", Internet draft (work in progress), draft-ietf-ipsec-
  2911.             ike-modp-groups-04.txt, December 2001.
  2912.  
  2913. 7.  Informative references
  2914.  
  2915. [RFC2373]   Hinden, R. and S. Deering, "IP Version 6 Addressing
  2916.             Architecture", RFC 2373, July 1998.
  2917.  
  2918. [RFC2402]   Kent,S., Atkinson, R., "IP Authentication Header", RFC 2402,
  2919.             November 1998
  2920.  
  2921. [RFC2782]   Gulbrandsen , A., . Vixie, P., Esibov, L. "A DNS RR for
  2922.             specifying the location of services (DNS SRV)", RFC 2782,
  2923.             February 2000.
  2924.  
  2925. [RFC2983]   Black, D. "Differentiated Services and Tunnels", RFC 2983,
  2926.             October 2000.
  2927.  
  2928. [AuthMIB]   Bakke, M., et al., "Definitions of Managed Objects for
  2929.             iSCSI", Internet draft (work in progress), draft-ietf-ips-
  2930.             iscsi-mib-03.txt, October 2001.
  2931.  
  2932. [MD5]       Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321,
  2933.             April 1992
  2934.  
  2935.  
  2936.  
  2937.  
  2938. Aboba, et al.                Standards Track                   [Page 49]
  2939.  
  2940.  
  2941.  
  2942.  
  2943.  
  2944. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  2945.  
  2946.  
  2947. [MD5Attack] Dobbertin, H., "The Status of MD5 After a Recent Attack",
  2948.             CryptoBytes Vol.2 No.2, Summer 1996
  2949.  
  2950. [CRCTCP]    Stone J., Partridge, C., "When the CRC and TCP checksum
  2951.             disagree", ACM Sigcomm, Sept. 2000
  2952.  
  2953. [DESCRACK]  Cracking DES, O'Reilly & Associates, Sebastapol, CA 2000
  2954.  
  2955. [iSCSIREQ]  Krueger, M., et.al., "iSCSI Requirements and Design
  2956.             Considerations", draft-ietf-ips-iscsi-reqmts-05.txt, Work in
  2957.             Progress, July 2001
  2958.  
  2959. [IPsecNatReq]
  2960.             Aboba, B., "IPsec-NAT Compatibility Requirements", draft-
  2961.             ietf-ipsec-nat-reqts-01.txt, Work in Progress, March 2002.
  2962.  
  2963. [UDPIPsec]  Huttunen, A. et. al., "UDP Encapsulation of IPsec Packets",
  2964.             draft-ietf-ipsec-udp-encaps-01.txt, October 2001
  2965.  
  2966. [Seq]       Kent, S., "IP Encapsulating Security Payload (ESP)",
  2967.             Internet draft (work in progress), draft-ietf-ipsec-esp-
  2968.             v3-01.txt, November 2002
  2969.  
  2970. [IPsecNATJust]
  2971.             Dixon, W. et. al., "IPsec over NAT Justification for UDP
  2972.             Encapsulation", draft-ietf-ipsec-udp-encaps-
  2973.             justification-00.txt, June 2001
  2974.  
  2975. [NATIKE]    Kivinen, T., et al., "Negotiation of NAT-Traversal in the
  2976.             IKE", Internet draft (work in progress), draft-ietf-ipsec-
  2977.             nat-t-ike-01.txt, October 2001
  2978.  
  2979. [HMACMD5IPsec]
  2980.             Madson, C., Glenn, R., "The Use of HMAC-MD5-96 within ESP
  2981.             and AH", RFC 2403, November 1998
  2982.  
  2983. [PMAC]      Rogaway, P., Black, J., "PMAC: Proposal to NIST for a
  2984.             parallelizable message authentication code",
  2985.             http://csrc.nist.gov/encryption/modes/proposedmodes/
  2986.             pmac/pmac-spec.pdf
  2987.  
  2988. [TED]       Fluhrer, S., "Tunnel Endpoint Discovery", Internet draft
  2989.             (work in progress), draft-fluhrer-ted-00.txt, November 2001.
  2990.  
  2991. [UMAC]      Black, J., Halevi, S., Krawczyk, H., Krovetz, T., Rogaway,
  2992.             P., "UMAC: Fast and provably secure message authentication",
  2993.             Advances in Cryptology - CRYPTO '99, LNCS vol. 1666, pp.
  2994.             216-233.  Full version available from
  2995.  
  2996.  
  2997.  
  2998. Aboba, et al.                Standards Track                   [Page 50]
  2999.  
  3000.  
  3001.  
  3002.  
  3003.  
  3004. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  3005.  
  3006.  
  3007.             http://www.cs.ucdavis.edu/~rogaway/umac
  3008.  
  3009. [NISTSHA]   "Descriptions of SHA-256, SHA-384, and SHA-512,"
  3010.             http://csrc.nist.gov/cryptval/shs/sha256-384-512.pdf
  3011.  
  3012. [FIPS46-3]  U.S. DoC/NIST, "Data encryption standard (DES)", FIPS 46-3,
  3013.             October 25, 1999
  3014.  
  3015. [FIPS74]    U.S. DoC/NIST, "Guidelines for implementing and using the
  3016.             nbs data encryption standard", FIPS 74, Apr 1981
  3017.  
  3018. [DESDIFF]   Biham, E., Shamir, A., "Differential Cryptanalysis of DES-
  3019.             like cryptosystems", Journal of Cryptology Vol 4, Jan 1991
  3020.  
  3021. [RFC2405]   Madson, C., Doraswamy, N., "The ESP DES-CBC Cipher Algorithm
  3022.             With Explicit IV", RFC 2405, November 1998
  3023.  
  3024. [RIJNDAEL]  Daemen, J., Rijman, V., "AES Proposal: Rijndael," NIST AES
  3025.             Proposal, June 1998
  3026.             http://csrc.nist.gov/encryption/aes/round2/
  3027.             AESAlgs/Rijndael/Rijndael.pdf
  3028.  
  3029. [MODES]     "Symmetric Key Block Cipher Modes of Operation,"
  3030.             http://www.nist.gov/modes
  3031.  
  3032. [NSPUE2]    "Recommendation for Block Cipher Modes of Operation",
  3033.             National Institute of Standards and Technology (NIST)
  3034.             Special Publication 800-XX, CODEN: NSPUE2, U.S. Government
  3035.             Printing Office, Washington, DC, July 2001
  3036.  
  3037. [AESOCB]    Moskowitz, R., Walker, J., "The AES128 OCB Mode of Operation
  3038.             and Its Use with IPsec", Internet draft (work in progress),
  3039.             draft-moskowitz-aes128-ocb-00.txt, September 2001
  3040.  
  3041. [CTR-MODE]  Lipmaa, H., Rogaway, P., Wagner, D., "CTR-MODE encryption",
  3042.             Comment on mode of operations NIST, Jan 2001
  3043.  
  3044. [AESPERF]   Schneier, B., J. Kelsey, D. Whiting, D. Wagner, C.  Hall,
  3045.             and N. Ferguson, "Performance Comparison of the AES
  3046.             Submissions", http://www.counterpane.com/AES-
  3047.             performance.html
  3048.  
  3049. [PENTPERF]  A. Bosselaers, "Performance of Pentium implementations",
  3050.             http://www.esat.kuleuven.ac.be/~bosselae/
  3051.  
  3052. [UMACPERF]  Rogaway, P., "UMAC Performance",
  3053.             http://www.cs.ucdavis.edu/~rogaway/umac/perf00.html
  3054.  
  3055.  
  3056.  
  3057.  
  3058. Aboba, et al.                Standards Track                   [Page 51]
  3059.  
  3060.  
  3061.  
  3062.  
  3063.  
  3064. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  3065.  
  3066.  
  3067. [DESINT]    Bellovin, S., "An Issue With DES-CBC When Used Without
  3068.             Strong Integrity", Proceedings of the 32nd IETF, Danvers,
  3069.             MA, April 1995
  3070.  
  3071. [UMACKR]    Krovetz, T., Black, J., Halevi, S., Hevia, A., Krawczyk, H.,
  3072.             Rogaway, P., "UMAC: Message Authentication Code using
  3073.             Universal Hashing", Internet draft (work in progress),
  3074.             draft-krovetz-umac-01.txt, October 2000. Also available at:
  3075.             http://www.cs.ucdavis.edu/~rogaway/umac/draft-krovetz-
  3076.             umac-01.txt
  3077.  
  3078. [RFC1994]   Simpson, W.,"PPP Challenge Handshake Authentication Protocol
  3079.             (CHAP)," RFC 1994, August 1996.
  3080.  
  3081. [DESANALY]  Bellare, Desai, Jokippi, Rogaway, "A Concrete Treatment of
  3082.             Symmetric Encryption: Analysis of the DES Modes of
  3083.             Operation", 1997, http://www-cse.ucsd.edu/users/mihir/
  3084.  
  3085. [SRPDIST]   Wu, T., "SRP Distribution", http://www-cs-
  3086.             students.stanford.edu/~tjw/srp/download.html
  3087.  
  3088. [SHAEXT]    Frankel, S., Kelly, S., "The Use of SHA-256, SHA-384, and
  3089.             SHA-512 within ESP, AH and IKE," Work in progress
  3090.  
  3091.  
  3092.  
  3093.  
  3094.  
  3095.  
  3096.  
  3097.  
  3098.  
  3099.  
  3100.  
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106.  
  3107.  
  3108.  
  3109.  
  3110.  
  3111.  
  3112.  
  3113.  
  3114.  
  3115.  
  3116.  
  3117.  
  3118. Aboba, et al.                Standards Track                   [Page 52]
  3119.  
  3120.  
  3121.  
  3122.  
  3123.  
  3124. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  3125.  
  3126.  
  3127. Appendix A - Well Known Groups for Use with SRP
  3128.  
  3129. Modulus (N) and generator (g) values for various modulus lengths are
  3130. given below.  The values below are taken from software developed by Tom
  3131. Wu and Eugene Jhong for the Stanford SRP distribution [SRPDIST]:
  3132.  
  3133. [768 bits]
  3134. Modulus (base 16) =
  3135. B344C7C4F8C495031BB4E04FF8F84EE95008163940B9558276744D91F7CC9F40
  3136. 2653BE7147F00F576B93754BCDDF71B636F2099E6FFF90E79575F3D0DE694AFF
  3137. 737D9BE9713CEF8D837ADA6380B1093E94B6A529A8C6C2BE33E0867C60C3262B
  3138. Generator = 2
  3139.  
  3140. [1024 bits]
  3141. Modulus (base 16) =
  3142. EEAF0AB9ADB38DD69C33F80AFA8FC5E86072618775FF3C0B9EA2314C9C256576
  3143. D674DF7496EA81D3383B4813D692C6E0E0D5D8E250B98BE48E495C1D6089DAD1
  3144. 5DC7D7B46154D6B6CE8EF4AD69B15D4982559B297BCF1885C529F566660E57EC
  3145. 68EDBC3C05726CC02FD4CBF4976EAA9AFD5138FE8376435B9FC61D2FC0EB06E3
  3146. Generator = 2
  3147.  
  3148. [1280 bits]
  3149. Modulus (base 16) =
  3150. D77946826E811914B39401D56A0A7843A8E7575D738C672A090AB1187D690DC4
  3151. 3872FC06A7B6A43F3B95BEAEC7DF04B9D242EBDC481111283216CE816E004B78
  3152. 6C5FCE856780D41837D95AD787A50BBE90BD3A9C98AC0F5FC0DE744B1CDE1891
  3153. 690894BC1F65E00DE15B4B2AA6D87100C9ECC2527E45EB849DEB14BB2049B163
  3154. EA04187FD27C1BD9C7958CD40CE7067A9C024F9B7C5A0B4F5003686161F0605B
  3155. Generator = 2
  3156.  
  3157. [1536 bits]
  3158. Modulus (base 16) =
  3159. 9DEF3CAFB939277AB1F12A8617A47BBBDBA51DF499AC4C80BEEEA9614B19CC4D
  3160. 5F4F5F556E27CBDE51C6A94BE4607A291558903BA0D0F84380B655BB9A22E8DC
  3161. DF028A7CEC67F0D08134B1C8B97989149B609E0BE3BAB63D47548381DBC5B1FC
  3162. 764E3F4B53DD9DA1158BFD3E2B9C8CF56EDF019539349627DB2FD53D24B7C486
  3163. 65772E437D6C7F8CE442734AF7CCB7AE837C264AE3A9BEB87F8A2FE9B8B5292E
  3164. 5A021FFF5E91479E8CE7A28C2442C6F315180F93499A234DCF76E3FED135F9BB
  3165. Generator = 2
  3166.  
  3167.  
  3168.  
  3169.  
  3170.  
  3171.  
  3172.  
  3173.  
  3174.  
  3175.  
  3176.  
  3177.  
  3178. Aboba, et al.                Standards Track                   [Page 53]
  3179.  
  3180.  
  3181.  
  3182.  
  3183.  
  3184. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  3185.  
  3186.  
  3187. [2048 bits]
  3188. Modulus (base 16) =
  3189. AC6BDB41324A9A9BF166DE5E1389582FAF72B6651987EE07FC3192943DB56050
  3190. A37329CBB4A099ED8193E0757767A13DD52312AB4B03310DCD7F48A9DA04FD50
  3191. E8083969EDB767B0CF6095179A163AB3661A05FBD5FAAAE82918A9962F0B93B8
  3192. 55F97993EC975EEAA80D740ADBF4FF747359D041D5C33EA71D281E446B14773B
  3193. CA97B43A23FB801676BD207A436C6481F1D2B9078717461A5B9D32E688F87748
  3194. 544523B524B0D57D5EA77A2775D2ECFA032CFBDBF52FB3786160279004E57AE6
  3195. AF874E7303CE53299CCC041C7BC308D82A5698F3A8D0C38271AE35F8E9DBFBB6
  3196. 94B5C803D89F7AE435DE236D525F54759B65E372FCD68EF20FA7111F9E4AFF73
  3197. Generator = 2
  3198.  
  3199. In addition to these groups, the following groups MAY be used:
  3200.  
  3201. [1]  The Oakley Group 2 (1024 bit prime) defined in [RFC2412].
  3202.  
  3203. [2]  The MODP Diffie-Hellman groups for IKE, defined in [MODP].
  3204.  
  3205.  
  3206.  
  3207.  
  3208.  
  3209.  
  3210.  
  3211.  
  3212.  
  3213.  
  3214.  
  3215.  
  3216.  
  3217.  
  3218.  
  3219.  
  3220.  
  3221.  
  3222.  
  3223.  
  3224.  
  3225.  
  3226.  
  3227.  
  3228.  
  3229.  
  3230.  
  3231.  
  3232.  
  3233.  
  3234.  
  3235.  
  3236.  
  3237.  
  3238. Aboba, et al.                Standards Track                   [Page 54]
  3239.  
  3240.  
  3241.  
  3242.  
  3243.  
  3244. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  3245.  
  3246.  
  3247. Appendix B - Software Performance of IPsec Transforms
  3248.  
  3249. This Appendix provides data on the performance of IPsec encryption and
  3250. authentication transforms in software. Since the performance of IPsec
  3251. transforms is heavily implementation dependent, the data presented here
  3252. may not be representative of performance in a given situation, and are
  3253. presented solely for purposes of comparison. Other performance data is
  3254. available in [AESPERF],[PENTPERF] and [UMACPERF].
  3255.  
  3256. B.1 Authentication transforms
  3257.  
  3258. Table B-1 presents the cycles/byte required by the AES-PMAC, AES-CBC-
  3259. MAC, AES-UMAC, HMAC-MD5, and HMAC-SHA1 algorithms at various packet
  3260. sizes, implemented in software.
  3261.  
  3262. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3263. |         |         |           |         |         |         |
  3264. |  Data   |  AES-   | AES-CBC-  |  AES-   |  HMAC-  |  HMAC-  |
  3265. |  Size   |  PMAC   | MAC       |  UMAC   |  MD5    |  SHA1   |
  3266. |         |         |           |         |         |         |
  3267. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3268. |   64    |  31.22  |   26.02   |  19.51  |  93.66  | 109.27  |
  3269. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3270. |  128    |  33.82  |   28.62   |  11.06  |  57.43  |  65.04  |
  3271. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3272. |  192    |  34.69  |   26.02   |   8.67  |  45.09  |  48.56  |
  3273. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3274. |  256    |  33.82  |   27.32   |   7.15  |  41.63  |  41.63  |
  3275. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3276. |  320    |  33.3   |   27.06   |   6.24  |  36.42  |  37.46  |
  3277. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3278. |  384    |  33.82  |   26.88   |   5.42  |  34.69  |  34.69  |
  3279. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3280. |  448    |  33.45  |   26.76   |   5.39  |  32.71  |  31.96  |
  3281. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3282. |  512    |  33.82  |   26.67   |   4.88  |  31.22  |  30.57  |
  3283. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3284. |  576    |  33.53  |   26.59   |   4.77  |  30.64  |  29.48  |
  3285. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3286. |  640    |  33.3   |   26.54   |   4.42  |  29.66  |  28.62  |
  3287. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3288.  
  3289.  
  3290.  
  3291.  
  3292.  
  3293.  
  3294.  
  3295.  
  3296.  
  3297.  
  3298. Aboba, et al.                Standards Track                   [Page 55]
  3299.  
  3300.  
  3301.  
  3302.  
  3303.  
  3304. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  3305.  
  3306.  
  3307. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3308. |         |         |           |         |         |         |
  3309. |  Data   |  AES-   | AES-CBC-  |  AES-   |  HMAC-  |  HMAC-  |
  3310. |  Size   |  PMAC   | MAC       |  UMAC   |  MD5    |  SHA1   |
  3311. |         |         |           |         |         |         |
  3312. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3313. |  768    |  33.82  |   26.88   |   4.23  |  28.18  |  27.32  |
  3314. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3315. |  896    |  33.45  |   27.13   |   3.9   |  27.5   |  25.64  |
  3316. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3317. | 1024    |  33.5   |   26.67   |   3.82  |  26.99  |  24.71  |
  3318. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3319. | 1152    |  33.53  |   27.17   |   3.69  |  26.3   |  23.99  |
  3320. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3321. | 1280    |  33.56  |   26.8    |   3.58  |  26.28  |  23.67  |
  3322. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3323. | 1408    |  33.58  |   26.96   |   3.55  |  25.54  |  23.41  |
  3324. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3325. | 1500    |  33.52  |   26.86   |   3.5   |  25.09  |  22.87  |
  3326. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3327.  
  3328. Table B-1: Cycles/byte consumed by the AES-PMAC, AES-CBC-MAC,
  3329. AES-UMAC, HMAC-MD5, and HMAC-SHA1 authentication algorithms at
  3330. various packet sizes.
  3331.  
  3332. Source: Jesse Walker, Intel
  3333.  
  3334.  
  3335.  
  3336.  
  3337.  
  3338.  
  3339.  
  3340.  
  3341.  
  3342.  
  3343.  
  3344.  
  3345.  
  3346.  
  3347.  
  3348.  
  3349.  
  3350.  
  3351.  
  3352.  
  3353.  
  3354.  
  3355.  
  3356.  
  3357.  
  3358. Aboba, et al.                Standards Track                   [Page 56]
  3359.  
  3360.  
  3361.  
  3362.  
  3363.  
  3364. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  3365.  
  3366.  
  3367. Table B-2 presents the cycles/second required by the AES-PMAC, AES-CBC-
  3368. MAC, AES-UMAC, HMAC-MD5, and HMAC-SHA1 algorithms, implemented in
  3369. software, assuming a 1500 byte packet.
  3370.  
  3371. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3372. |               | Cycles/     |  Cycles/sec | Cycles/sec  |  Cycles/sec |
  3373. |   Transform   |  octet      |     @       |    @        |     @       |
  3374. |               | (software)  |  100 Mbps   |   1 Gbps    |   10 Gbps   |
  3375. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3376. |               |             |             |             |             |
  3377. | AES-UMAC      |     3.5     |  43,750,000 | 437,500,000 |  4.375  B   |
  3378. | (8 octets)    |             |             |             |             |
  3379. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3380. |               |             |             |             |             |
  3381. | HMAC-SHA1     |    22.87    | 285,875,000 |   2.8588 B  |  28.588 B   |
  3382. | (20 octets)   |             |             |             |             |
  3383. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3384. |               |             |             |             |             |
  3385. | HMAC-MD5      |    25.09    | 313,625,000 |   3.1363 B  |  31.363 B   |
  3386. |               |             |             |             |             |
  3387. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3388. |               |             |             |             |             |
  3389. | AES-CBC-MAC   |    26.86    | 335,750,000 |   3.358 B   |  33.575 B   |
  3390. |               |             |             |             |             |
  3391. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3392. |               |             |             |             |             |
  3393. | AES-PMAC      |    33.52    | 419,000,000 |   4.19  B   |  41.900 B   |
  3394. | (8 octets)    |             |             |             |             |
  3395. |               |             |             |             |             |
  3396. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3397.  
  3398. Table B-2: Software performance of the HMAC-SHA1, HMAC-MD5, AES-CBC-MAC
  3399. and AES-PMAC authentication algorithms at 100 Mbps, 1 Gbps, and 10 Gbps
  3400. line rates (1500 byte packet).
  3401.  
  3402. Source: Jesse Walker, Intel
  3403.  
  3404. At speeds of 100 Mbps, AES-UMAC is implementable with only a modest
  3405. processor, and the other algorithms are implementable, assuming that a
  3406. single high-speed processor can be dedicated to the task. At 1 Gbps,
  3407. only AES-UMAC is implementable on a single high-speed processor;
  3408. multiple high speed processors (1+ Ghz) will be required for the other
  3409. algorithms.  At 10 Gbps, only AES-UMAC is implementable even with
  3410. multiple high speed processors; the other algorithms will require a
  3411. prodigious number of cycles/second. Thus at 10 Gbps, hardware
  3412. acceleration will be required for all algorithms with the possible
  3413. exception of AES-UMAC.
  3414.  
  3415.  
  3416.  
  3417.  
  3418. Aboba, et al.                Standards Track                   [Page 57]
  3419.  
  3420.  
  3421.  
  3422.  
  3423.  
  3424. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  3425.  
  3426.  
  3427. B.2 Encryption and Authentication transforms
  3428.  
  3429. Table B-3 presents the cycles/byte required by the AES-CBC, AES-CTR and
  3430. 3DES-CBC encryption algorithms (no MAC), implemented in software, for
  3431. various packet sizes.
  3432.  
  3433. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3434. |               |             |             |             |
  3435. |  Data size    |   AES-CBC   |   AES-CTR   |  3DES-CBC   |
  3436. |               |             |             |             |
  3437. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3438. |      64       |   31.22     |    26.02    |  156.09     |
  3439. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3440. |     128       |   31.22     |    28.62    |  150.89     |
  3441. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3442. |     192       |   31.22     |    27.75    |  150.89     |
  3443. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3444. |     256       |   28.62     |    27.32    |  150.89     |
  3445. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3446. |     320       |   29.14     |    28.1     |  150.89     |
  3447. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3448. |     384       |   28.62     |    27.75    |  148.29     |
  3449. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3450. |     448       |   28.99     |    27.5     |  149.4      |
  3451. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3452. |     512       |   28.62     |    27.32    |  148.29     |
  3453. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3454. |     576       |   28.33     |    27.75    |  147.72     |
  3455. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3456. |     640       |   28.62     |    27.06    |  147.77     |
  3457. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3458.  
  3459.  
  3460.  
  3461.  
  3462.  
  3463.  
  3464.  
  3465.  
  3466.  
  3467.  
  3468.  
  3469.  
  3470.  
  3471.  
  3472.  
  3473.  
  3474.  
  3475.  
  3476.  
  3477.  
  3478. Aboba, et al.                Standards Track                   [Page 58]
  3479.  
  3480.  
  3481.  
  3482.  
  3483.  
  3484. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  3485.  
  3486.  
  3487. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3488. |               |             |             |             |
  3489. |  Data size    |   AES-CBC   |   AES-CTR   |  3DES-CBC   |
  3490. |               |             |             |             |
  3491. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3492. |     768       |   28.18     |    27.32    |  147.42     |
  3493. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3494. |     896       |   28.25     |    27.5     |  147.55     |
  3495. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3496. |    1024       |   27.97     |    27.32    |  148.29     |
  3497. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3498. |    1152       |   28.33     |    27.46    |  147.13     |
  3499. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3500. |    1280       |   28.1      |    27.58    |  146.99     |
  3501. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3502. |    1408       |   27.91     |    27.43    |  147.34     |
  3503. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3504. |    1500       |   27.97     |    27.53    |  147.85     |
  3505. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3506.  
  3507. Table B-3: Cycles/byte consumed by the AES-CBC, AES-CTR and 3DES-CBC
  3508. encryption algorithms at various packet sizes, implemented in
  3509. software.
  3510.  
  3511. Source: Jesse Walker, Intel
  3512.  
  3513.  
  3514.  
  3515.  
  3516.  
  3517.  
  3518.  
  3519.  
  3520.  
  3521.  
  3522.  
  3523.  
  3524.  
  3525.  
  3526.  
  3527.  
  3528.  
  3529.  
  3530.  
  3531.  
  3532.  
  3533.  
  3534.  
  3535.  
  3536.  
  3537.  
  3538. Aboba, et al.                Standards Track                   [Page 59]
  3539.  
  3540.  
  3541.  
  3542.  
  3543.  
  3544. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  3545.  
  3546.  
  3547. Table B-4 presents the cycles/second required by the AES-CBC, AES-CTR
  3548. and 3DES-CBC encryption algorithms (no MAC), implemented in software, at
  3549. 100 Mbps, 1 Gbps, and 10 Gbps line rates (assuming a 1500 byte packet).
  3550.  
  3551. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3552. |               | Cycles/     |  Cycles/sec | Cycles/sec  |  Cycles/sec |
  3553. |   Transform   |  octet      |     @       |    @        |     @       |
  3554. |               | (software)  |  100 Mbps   |   1 Gbps    |   10 Gbps   |
  3555. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3556. |               |             |             |             |             |
  3557. | AES-CBC       |   27.97     | 349,625,000 |   3.4963 B  |  34.963 B   |
  3558. |               |             |             |             |             |
  3559. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3560. |               |             |             |             |             |
  3561. | AES-CTR       |   27.53     | 344,125,000 |   3.4413 B  |  34.413 B   |
  3562. |               |             |             |             |             |
  3563. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3564. |               |             |             |             |             |
  3565. | 3DES -CBC     |  147.85     | 1.84813 B   |  18.4813 B  | 184.813 B   |
  3566. |               |             |             |             |             |
  3567. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3568.  
  3569. Table B-4: Software performance of the AES-CBC, AES-CTR, and 3DES
  3570. encryption algorithms at 100 Mbps, 1 Gbps, and 10 Gbps line rates
  3571. (1500 byte packet).
  3572.  
  3573. Source: Jesse Walker, Intel
  3574.  
  3575. At speeds of 100 Mbps, AES-CBC and AES-CTR mode are implementable with a
  3576. high-speed processor, while 3DES would require multiple high speed
  3577. processors. At speeds of 1 Gbps, multiple high speed processors are
  3578. required for AES-CBC and AES-CTR mode. At speeds of 1+ Gbps for 3DES,
  3579. and 10 Gbps for all algorithms, implementation in software is
  3580. infeasible, and hardware acceleration is required.
  3581.  
  3582.  
  3583.  
  3584.  
  3585.  
  3586.  
  3587.  
  3588.  
  3589.  
  3590.  
  3591.  
  3592.  
  3593.  
  3594.  
  3595.  
  3596.  
  3597.  
  3598. Aboba, et al.                Standards Track                   [Page 60]
  3599.  
  3600.  
  3601.  
  3602.  
  3603.  
  3604. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  3605.  
  3606.  
  3607. Table B-5 presents the cycles/byte required for combined
  3608. encryption/authentication algorithms: AES CBC + CBCMAC, AES CTR +
  3609. CBCMAC, AES CTR + UMAC, and AES-OCB at various packet sizes, implemented
  3610. in software.
  3611.  
  3612. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3613. |               |  AES      | AES     |  AES    |         |
  3614. |  Data size    |  CBC +    | CTR +   |  CTR +  |  AES-   |
  3615. |               |  CBCMAC   | CBCMAC  |  UMAC   |  OCB    |
  3616. |               |           |         |         |         |
  3617. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3618. |      64       |  119.67   |  52.03  |  52.03  |  57.23  |
  3619. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3620. |     128       |   70.24   |  57.23  |  39.02  |  44.23  |
  3621. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3622. |     192       |   58.97   |  55.5   |  36.42  |  41.63  |
  3623. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3624. |     256       |   57.23   |  55.93  |  35.12  |  40.32  |
  3625. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3626. |     320       |   57.23   |  55.15  |  33.3   |  38.5   |
  3627. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3628. |     384       |   57.23   |  55.5   |  32.95  |  37.29  |
  3629. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3630. |     448       |   58.72   |    55   |  32.71  |  37.17  |
  3631. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3632. |     512       |   58.54   |  55.28  |  32.52  |  36.42  |
  3633. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3634.  
  3635.  
  3636.  
  3637.  
  3638.  
  3639.  
  3640.  
  3641.  
  3642.  
  3643.  
  3644.  
  3645.  
  3646.  
  3647.  
  3648.  
  3649.  
  3650.  
  3651.  
  3652.  
  3653.  
  3654.  
  3655.  
  3656.  
  3657.  
  3658. Aboba, et al.                Standards Track                   [Page 61]
  3659.  
  3660.  
  3661.  
  3662.  
  3663.  
  3664. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  3665.  
  3666.  
  3667. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3668. |               |  AES      | AES     |  AES    |         |
  3669. |  Data size    |  CBC +    | CTR +   |  CTR +  |  AES-   |
  3670. |               |  CBCMAC   | CBCMAC  |  UMAC   |  OCB    |
  3671. |               |           |         |         |         |
  3672. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3673. |     576       |   57.81   |  55.5   |  31.8   |  37     |
  3674. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3675. |     640       |   57.75   |  55.15  |  31.74  |  36.42  |
  3676. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3677. |     768       |   57.67   |  55.5   |  31.65  |  35.99  |
  3678. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3679. |     896       |   57.61   |  55.75  |  31.22  |  35.68  |
  3680. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3681. |    1024       |   57.56   |  55.61  |  31.22  |  35.45  |
  3682. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3683. |    1152       |   57.52   |  55.21  |  31.22  |  35.55  |
  3684. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3685. |    1280       |   57.75   |  55.15  |  31.22  |  36.16  |
  3686. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3687. |    1408       |   57.47   |  55.34  |  30.75  |  35.24  |
  3688. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3689. |    1500       |   57.72   |  55.5   |  30.86  |  35.3   |
  3690. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3691.  
  3692. Table B-5: Cycles/byte of combined encryption/authentication
  3693. algorithms:  AES CBC + CBCMAC, AES CTR + CBCMAC, AES CTR + UMAC,
  3694. and AES-OCB at various packet sizes, implemented in software.
  3695.  
  3696.  
  3697.  
  3698.  
  3699.  
  3700.  
  3701.  
  3702.  
  3703.  
  3704.  
  3705.  
  3706.  
  3707.  
  3708.  
  3709.  
  3710.  
  3711.  
  3712.  
  3713.  
  3714.  
  3715.  
  3716.  
  3717.  
  3718. Aboba, et al.                Standards Track                   [Page 62]
  3719.  
  3720.  
  3721.  
  3722.  
  3723.  
  3724. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  3725.  
  3726.  
  3727. Table B-6 presents the cycles/second required for the AES CBC + CBCMAC,
  3728. AES CTR + CBCMAC, AES CTR + UMAC, and AES-OCB encryption and
  3729. authentication algorithms operating at line rates of 100 Mbps, 1 Gbps
  3730. and 10 Gbps, assuming 1500 byte packets.
  3731.  
  3732. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3733. |               | Cycles/     |  Cycles/sec | Cycles/sec  |  Cycles/sec |
  3734. |   Transform   |  octet      |     @       |    @        |     @       |
  3735. |               | (software)  |  100 Mbps   |   1 Gbps    |   10 Gbps   |
  3736. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3737. |               |             |             |             |             |
  3738. |     AES       |             |             |             |             |
  3739. | CBC + CBCMAC  |   57.72     | 721,500,000 |  7.215 B    |  72.15 B    |
  3740. |               |             |             |             |             |
  3741. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3742. |               |             |             |             |             |
  3743. |     AES       |             |             |             |             |
  3744. | CTR + CBCMAC  |   55.5      | 693,750,000 |  6.938 B    |  69.38 B    |
  3745. |               |             |             |             |             |
  3746. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3747. |               |             |             |             |             |
  3748. |     AES       |             |             |             |             |
  3749. | CTR + UMAC    |   30.86     | 385,750,000 |  3.858 B    |  38.58 B    |
  3750. |               |             |             |             |             |
  3751. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3752. |               |             |             |             |             |
  3753. |               |             |             |             |             |
  3754. | AES-OCB       |   35.3      | 441,250,000 |   4.413 B   |  44.13 B    |
  3755. |               |             |             |             |             |
  3756. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  3757.  
  3758. Table B-6: Cycles/second required for the AES CBC + CBCMAC, AES CTR + CBCMAC,
  3759. AES CTR + UMAC, and AES-OCB encryption and authentication algorithms,
  3760. operating at line rates of 100 Mbps, 1 Gbps and 10 Gbps,
  3761. assuming 1500 octet packets.
  3762.  
  3763. Source: Jesse Walker, Intel
  3764.  
  3765. At speeds of 100 Mbps, the algorithms are implementable on a high speed
  3766. processor. At speeds of 1 Gbps, multiple high speed processors are
  3767. required, and none of the algorithms are implementable in software at 10
  3768. Gbps line rate.
  3769.  
  3770. Acknowledgments
  3771.  
  3772. Thanks to Steve Bellovin of AT&T Research, William Dixon of Microsoft,
  3773. David Black of EMC, Joseph Tardo and Uri Elzur of Broadcom, Julo Satran,
  3774. Ofer Biran, and Charles Kunzinger of IBM, Mark Bakke and Steve Senum of
  3775.  
  3776.  
  3777.  
  3778. Aboba, et al.                Standards Track                   [Page 63]
  3779.  
  3780.  
  3781.  
  3782.  
  3783.  
  3784. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  3785.  
  3786.  
  3787. Cisco, Erik Guttman of Sun Microsystems and Howard Herbert of Intel for
  3788. useful discussions of this problem space.
  3789.  
  3790. Authors' Addresses
  3791.  
  3792. Bernard Aboba
  3793. Microsoft Corporation
  3794. One Microsoft Way
  3795. Redmond, WA 98052
  3796.  
  3797. Phone: +1 425 706 6605
  3798. Fax:   +1 425 706 7329
  3799. EMail: bernarda@microsoft.com
  3800.  
  3801. Joshua Tseng
  3802. Nishan Systems
  3803. 3850 North First Street
  3804. San Jose, CA 95134-1702
  3805.  
  3806. Phone: +1 408 519 3749
  3807. EMail: jtseng@nishansystems.com
  3808.  
  3809. Jesse Walker
  3810. Intel Corporation
  3811. 2211 NE 25th Avenue
  3812. Hillboro, OR 97124
  3813.  
  3814. Phone: +1 503 712 1849
  3815. Fax:   +1 503 264 4843
  3816. Email: jesse.walker@intel.com
  3817.  
  3818. Venkat Rangan
  3819. Rhapsody Networks Inc.
  3820. 3450 W. Warren Ave.
  3821. Fremont, CA 94538
  3822.  
  3823. Phone: +1 510 743 3018
  3824. Fax: +1 510 687 0136
  3825. EMail: venkat@rhapsodynetworks.com
  3826.  
  3827. Franco Travostino
  3828. Director, Content Internetworking Lab
  3829. Nortel Networks
  3830. 3 Federal Street
  3831. Billerica, MA  01821
  3832.  
  3833. Phone: +1 978 288 7708
  3834. EMail: travos@nortelnetworks.com
  3835.  
  3836.  
  3837.  
  3838. Aboba, et al.                Standards Track                   [Page 64]
  3839.  
  3840.  
  3841.  
  3842.  
  3843.  
  3844. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  3845.  
  3846.  
  3847. Intellectual Property Statement
  3848.  
  3849. The IETF takes no position regarding the validity or scope of any
  3850. intellectual property or other rights that might be claimed to pertain
  3851. to the implementation or use of the technology described in this
  3852. document or the extent to which any license under such rights might or
  3853. might not be available; neither does it represent that it has made any
  3854. effort to identify any such rights.  Information on the IETF's
  3855. procedures with respect to rights in standards-track and standards-
  3856. related documentation can be found in BCP-11.  Copies of claims of
  3857. rights made available for publication and any assurances of licenses to
  3858. be made available, or the result of an attempt made to obtain a general
  3859. license or permission for the use of such proprietary rights by
  3860. implementors or users of this specification can be obtained from the
  3861. IETF Secretariat.
  3862.  
  3863. The IETF invites any interested party to bring to its attention any
  3864. copyrights, patents or patent applications, or other proprietary rights
  3865. which may cover technology that may be required to practice this
  3866. standard.  Please address the information to the IETF Executive
  3867. Director.
  3868.  
  3869. Full Copyright Statement
  3870.  
  3871. Copyright (C) The Internet Society (2002).  All Rights Reserved.
  3872.  
  3873. This document and translations of it may be copied and furnished to
  3874. others, and derivative works that comment on or otherwise explain it or
  3875. assist in its implementation may be prepared, copied, published and
  3876. distributed, in whole or in part, without restriction of any kind,
  3877. provided that the above copyright notice and this paragraph are included
  3878. on all such copies and derivative works.  However, this document itself
  3879. may not be modified in any way, such as by removing the copyright notice
  3880. or references to the Internet Society or other Internet organizations,
  3881. except as needed for the purpose of developing Internet standards in
  3882. which case the procedures for copyrights defined in the Internet
  3883. Standards process must be followed, or as required to translate it into
  3884. languages other than English.  The limited permissions granted above are
  3885. perpetual and will not be revoked by the Internet Society or its
  3886. successors or assigns.  This document and the information contained
  3887. herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE
  3888. INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR
  3889. IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
  3890. INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
  3891. WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE."
  3892.  
  3893.  
  3894.  
  3895.  
  3896.  
  3897.  
  3898. Aboba, et al.                Standards Track                   [Page 65]
  3899.  
  3900.  
  3901.  
  3902.  
  3903.  
  3904. INTERNET-DRAFT     Securing IP Block Storage Protocols       16 May 2002
  3905.  
  3906.  
  3907. Expiration Date
  3908.  
  3909. This memo is filed as <draft-ietf-ips-security-12.txt>, and expires
  3910. November 22, 2002.
  3911.  
  3912.  
  3913.  
  3914.  
  3915.  
  3916.  
  3917.  
  3918.  
  3919.  
  3920.  
  3921.  
  3922.  
  3923.  
  3924.  
  3925.  
  3926.  
  3927.  
  3928.  
  3929.  
  3930.  
  3931.  
  3932.  
  3933.  
  3934.  
  3935.  
  3936.  
  3937.  
  3938.  
  3939.  
  3940.  
  3941.  
  3942.  
  3943.  
  3944.  
  3945.  
  3946.  
  3947.  
  3948.  
  3949.  
  3950.  
  3951.  
  3952.  
  3953.  
  3954.  
  3955.  
  3956.  
  3957.  
  3958. Aboba, et al.                Standards Track                   [Page 66]
  3959.  
  3960.  
  3961.