Internet DRAFT - draft-sec-udt
draft-sec-udt
INTERNET-DRAFT
Network Working Group Danilo Valeros Bernardo
Request for Comments: Doan B. Hoang
Category: Informational The University of Technology
Expires March 2010 Sydney, Australia
September 2009
Security Requirements for UDT
draft-d-sec-udt-00.txt
Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that other
groups may also distribute working documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/1id-abstracts.html
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html
Copyright Notice
Copyright (c) 2009 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)
in effect on the date of publication of this document. Please
review these documents carefully, as they describe your rights and
restrictions with respect to this document. Code Components
extracted from this document must include Simplified BSD
License text as described in Section 4.e of the Trust Legal
Provisions and are provided without warranty as described in
the BSD License.
Abstract
UDT does not have its specific security mechanism. It depends
on the application to provide authentication and lower layer to
provide security mechanisms[GG07]. However, UDT implementations
should check each arrived packets are from the expected source,
since UDP is connectionless.
This document proposes evaluation of security requirements for UDT,
or UDP based Data Transfer considered as an alternative data transfer
protocol for the situation when TCP does not work well.The objective
is to achieve a wide class of security methods used on existing mature
protocols such as UDP and TCP.
Bernardo, DV Expires - March 25, 2010 [Page 2]
Security Requirements for UDT October 2009
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Security Framework . . . . . . . . . . . . . . . . . . . . . 3
2.1 Absence of Checksum . . . . . . . . . . . . . . . . . . . 3
2.2 Dependencies on user preferences . . . . . . . . . . . . . 3
2.3 Dependencies on existing mechanisms . . . . . . . . . . . 3
3. Framework . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Security Evaluations . . . . . . . . . . . . . . . . . . . . . 5
3.1. Evaluation 1 Sending Rates . . . . . . . . . . . . . . . 6
3.2. Evaluation 2 End-to-End Security . . . . . . . . . . . . 6
3.3. Evaluation 3 Random sequence number feature. . . . . . . 7
3.4 Evaluation 4 Encapsulation of IPsec ESP packets . . . . 8
3.5 Evaluation 5 UDTv4 responses to Potential Threats . . . . 8
4. Implementation . . . . . . . . . . . . . . . . . . . . . . . . 9
5. IAB Considerations . . . . . . . . . . . . . . . . . . . . . . 9
6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 9
7. Security Considerations . . . . . . . . . . . . . . . . . . . . 10
8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 10
8.1. Normative References . . . . . . . . . . . . . . . . . . 11
8.2. Informative References . . . . . . . . . . . . . . . . . 11
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 12
Full Copyright Statement . . . . . . . . . . . . . . . . . . . 13
1. Introduction
This document proposes UDT's security requirements based on existing
network protocols, aimed at preserving the security and privacy of the
data flow. UDT relies on UDP to check IP streams, and similarly, it is
susceptible to attacks such as snooping, packet interception and IP
masquerading.
UDT's objective is to deliver bandwidth-intensive applications over
a protocol that carries a minimal amount of overhead (such as UDP),
but it cannot guarantee that it will avoid compromising the security,
privacy, and data integrity that is desired by the user.
This document presents a summary reviewing the existing design and
implementation of UDT's inherent security features that have not been
reviewed previously. The analysis covered any inherent security features
and control algorithms.
Conventions used in this document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119.
Bernardo, DV et al. Informational [Page 3]
2. Security Evaluation and Framework
The contention for the need of security mechanisms of the new UDT is
derived from 3 important observations [BH09b].
2.1 Absence of inherent security mechanisms, such as checksum for UDT
2.2 Dependencies on user preferences and implementation on the layer
on where it is implemented
2.3 Dependencies on existing security mechanisms of other layers on
the stack
Subsequently, the presentation of a model for UDT supports the need of
minimizing its sending rates in retransmissions and introducing its
own checksum [CD90] in its design; and supports the importance of
implementing security in UDT.
3. Security Framework
UDT's position in the layer architecture provides a layer-to-layer
approach in addressing security, its implementation needs to rely on
proven security mechanisms developed and implemented on existing
matured protocols.
A summary of security mechanisms and their implementations are presented
in Fig. 1.
+-----------------+
| | SSL/TLS, SSH, HTTPS
|Application Layer|
| | +---+
+-----------------+ |CCC|
^ +---+
v /
+-----------------+/
| UDT Socket |
+-----------------+
^
v
+-----------------+
| |
| UDT |
| |
+-----------------+
^
v UDT Data from Sender to Receiver
+------------------+
|OS Socket Interace| UDT Control Flow - Receiver to Receiver
+------------------+
^
v ETH Header +--------------------------------+
+-----------------+ |Src Addr, Des addr, Chksum |
| | ---------------------------------+
| UDP |<----> IP Header |Src IP, Dest IP, Chksum,TTL |
| | ----------------------------------
+-----------------+ UDP Header |Src Port, Dest Port, Len, Chksum|
+--------------------------------+
| |
| Message |
| |
+--------------------------------+
Figure 1. : UDT in Layer Architecture. UDT is in the application layer above UDP.
The application exchanges its data through UDT socket, which then uses UDP socket
to send or receive data.
Bernardo, DV et al. Informational [Page 4]
UDT is in the application layer above, this requires that data is transmitted
securely and correctly. UDT is implemented by each application and not by an
operating system or by a separate stack.
The existence of five application-dependent components, such as the API module,
the sender, receiver, and UDP channel, as well as four data components: sender's
protocol buffer, receiver's protocol buffer, sender's loss ist and receiver's
loss list [BH09a], require that UDT security features must be implemented on an
application basis.
An application exchanges data through the UDT socket but relies on the UDP
socket to send and receive data. This results problems during data transmission
from the UDP socket, such as unreliable data, and security flaws [BH09a].
UDT's Sequence Number is 31 and a bit long. This is a small sequence space that
does not effectively protect connections against some blind attacks, such as the
injection of resets into the connection. It does not have a feature that avoids
sequence number attacks, where an attacker can guess the sequence numbers that a
future connection would use.
The distinction between UDT and other protocols, such as UDP, TCP, STCP and DCCP,
is that UDT does not have a checksum. For most protocols, checksum is applied to
the protocol header. It applies strong integrity checks, which are available in
other protocols (e.g. DCCP). They use the same algorithm to generate the IP
checksum to generate this number. The checksum can be included for the segment in
UDT, in addition to providingthe information contained, and to prevent packets
from being incorrectly forwarded by UDP. This provides an added security feature
to ensure segment integrity.
Bernardo, DV et al. Informational [Page 5]
UDT requires protection against attackers who can snoop on a connection in progress,
or who can guess valid sequence numbers in other ways. Despite its flow management
and multiplexing, UDT does not guarantee that all packets will arrive and, if they
do, that the packets' sequences will be accurate. Attackers can execute easily by
sending data packets with random sequence numbers. If one of these packets hits the
valid sequence number window, the attacker's packet application data may be inserted
into the data stream. Attackers can also send random sequence and acknowledgment
numbers. If one of these packets hits the valid ACK number window, the receiver
will shift its sequence number window accordingly, getting out of sync with the
correct endpoint.
UDT additionally needs to provide a mechanism to limit the potential impact of some
denial-of-service attacks. It needs to provide limitations on requests, processing
options and ICMP messages, and excessive packet generation avoidance on the servers.
Because it was designed as an application level protocol that is intended for delivery
of data in high speed networks, the need to establish how it handles QoS is essential.
It is a relatively new protocol, tested in limited production cases in 2004 and focused
on performance between long distance links, before UDTv4 was developed and introduced
in 2007.
3. Evaluations
UDT is designed to be a general purpose and versatile transport protocol.
One of its major objectives is for application level implementation. It is
supportive for firewall such as NAT (see [RFC3715]) traversing with UDP
multiplexing and rendezvous connection setup. In its design, UDT is not
expected to provide all of the necessary security features. This section
describes a few considerations that can be implemented to secure UDT data flow.
Figures 3 show the possibilities for arranging secure UDT from end-to-end
(from the UDT to the UDP sockets).
As a transport protocol designed to carry reliable data, UDT is required to
meet fundamental security objectives:
-Availability of reliable and timely data transport services in
High-Speed WAN.
-Integrity of the user-to-user data transfer carried by UDT.
Bernardo, DV et al. Informational [Page 6]
The following evaluations are based on the consideration presented by
DV Bernardo & DHoang [BH09a].
3.1 Evaluation 1. UDT Sending Rates
Sending rates UDT may need to diminish its sending rates in the presence of
retransmission time outs and the arrival of duplicate acknowledgments.
An attacker can impair its connection by either causing data packets or
their acknowledgments to be lost or by forging excessive duplicate acknowledgments.
Causing three congestion control events back-to-back will often cut the ss
threshold to its minimum value of 3*SMSS, causing the connection to immediately
enter the slower-performing congestion avoidance phase. Here is the pseudo
code of the fast retransmit and fast recovery algorithm of which UDT's CTCP
redefined two handlers: onACK and onTimeout.
Virtual void onACK (cons tint&ack)
{
if(three duplicate ACK detected)
{
//ssthresh=max{flight_size /2,3}
// cwnd=ssthresh + 3* SMSS
}
else if (further duplicate ACK detected)
{
//cwnd=cwnd + SMSS
}
else if (end fast recovery)
{
// cwnd=ssthresh
}
else
{
//cwnd=cwnd+1/cwnd
}
}
3.2 Evaluation 2. End-to-End Security
End-to-end security as shown in Figure 2.
UDP Multiplexer UDP Multiplexer
IPsec ^ ^ UDP
\ +--+ | | +--+ /
\ | | | Sequence Number | | | /
Sockets ---O<--> |--|<--|------------------->|-->|--|<-->O--- Sockets
/ | | | UDT Connection | | | \
/ | | | | | | \
| | | UDT Flow | | |
\ | | | | | |
\ | | | | | |
Sockets ---O<--> |--|\ | | | |
/ | | \ | | | |
/ +--+ \| | +--+
v v
\
\_____> To other addresses
End-to-End Security
Figure 2.
Bernardo, DV et al. Informational [Page 7]
Implementations and applications desiring stronger security (to maintain integrity,
authentication, confidentiality, and access control) should use IPsec [KA98]
or end-to-end security [SRC84].
Depending on the security level required, application level cryptography
may suffice.
3.3 Evaluation 3. Random sequence number feature. In TCP, initial sequence
numbers are intended to be more or less random. TCP specifies that the 32 - bit
counter be incremented by 1 in about every given time.Instead, Berkeley-derived
kernels increment it by a constant every second, and by another constant for
each new connection.
The TCP sequence number's unpredictability has arguably been adhered to for
many years. However, some implementations have still failed to take this into
careful consideration; one such example is the iPhone. Its earlier OS version
made its TCP initial sequence numbers predictable which consequently led
to either TCP spoofing or session hijacking. This has since been corrected
in a new OS release. A lesson can be drawn from that experience in the
implementation of UDT, especially it does not intend to protect against some
classes of attackers, and is dependent on TCP and UPD. Another problem with UDT,
is its connections can be hijacked (terminating the connection unexpectedly,
or causing compromised data to be accepted by an unsuspecting endpoint as
if it came from a valid sender),especially when attackers can guess the
valid sequence numbers.
UDT, however, provides simple randomization for m_iTSN. Its sequence and ACK
numbers form a defense against attacks. Attackers can nevertheless still send
many packets with random numbers, which if they end up sequence-valid, may shut
down the connection. Security evaluations for UDT were adopted from RFC 1948,
giving each connection a cryptographic hash function (such as MD5) for
each separate sequence number space. Recommendations when using random numbers
can be based on TCP in accordance with the recommendations provided.
struct CHandShake
{
int32_t m_iVersion;
// UDT version
int32_t m_iType;
// UDT socket type
int32_t m_iISN;
// random initial sequence number
int32_t m_iMSS;
Bernardo, DV et al. Informational [Page 8]
// maximum segment size
int32_t m_iFlightFlagSize;
// flow control window size
int32_t m_iReqType;
// connection request type: 1: regular connection request, 0: rendezvous
connection request, -1/-2: response
int32_t m_iID;
// socket ID
int32_t m_iCookie;
// cookie
};
UDT provides an space on the control packet for user defined control packets
(see also Fig. 1).
// bit 16 - 31:
// 0 1 2 3
// 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-// |1| Sequence Number a (first)
|
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-// |0| Sequence Number b (last)
|
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-// |0| SequenceNumber (single)
|
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-//
3.4 Evaluation 4. Base on UDP encapsulation of IPsec ESP packets
shown in Figure. 3. UDP encapsulation of IPsec ESP Packets Source Port
Destination Port Length Checksum ESP Header (RFC2406)
+-------+
| |
.--> | UDT | <--.
| | | |
| +-------+ |
| |
| |
.--> V <--.
+-------------------------------+
| Source Port | Destination Port|
---------------------------------
| Length | Checksum |
---------------------------------
| ESP Header (RFC 2406) |
+-------------------------------+
Figure 3. Schematic diagram of securing UDT on top of UDP. It is possible to
create a security arrangement to secure UDT connections, such as authentication
handled by IPsec. Since it relies on UDP, developers can use UDP encapsulation
[RFC2406] to ensure the connection from UDP is secure. IPsec provides encryption
and keying services and offers authentication services; adding ESP extends services
to encryption. Specifications on protecting UDP packets can be found on RFC3948.
Moreover, it can be implemented with MD5 to cater for key management
to meet user security requirements.
typedef unsigned char md5_byte_t; /* 8-bit byte */
typedef unsigned int md5_word_t; /* 32-bit word */
Bernardo, DV et al. Informational [Page 9]
3.5 Evaluation 5. UDTv4 responses to Potential Threats. UDT may be used in a
wide variety of risk situations, and therefore it is important for developers of
systems to adopt security measures for their particular situations and decide on
appropriate measures. In countering insider attacks, the principles of [RFC 2196]
should be applied to minimize risk of attacks. To protect against data corruption
in data transfer and in the network, where concealed and undetected errors in the
datagrams delivered by lower layer transport services, such as UDP and IP, are
considered too great, additional integrity protection is required. Protection
also provided on the application-layer would minimize deliberate integrity
attacks to the UDT header.
The absence of appropriate security mechanisms for detection of packet replays
remains a risk. Stronger protections are required when the operating environment
contains significant risk of deliberate attacks from sophisticated adversaries.
For stronger security integrity protections, an IP Authentication header should
be used. For mobile users, confidentiality requirements,including but not limited to
masking of IP addresses and ports, ESP cryptographic transform that includes
cryptographic integrity protection must be used. This provides added protection
against integrity and confidentiality threats. As this caters to application-level
protection, encryption on that level may not be required. IKE (IKEv1 [RFC2401] or
IKEv2 [IKEv2]), however, may be considered for key management.
4. Implementation
There are several ways to use the proposed framework; as a tool to provide network
researchers, technical designers basic understanding of the advantages to a moresecure
but flexible systems and infrastructure when using UDT, and as a tool to better
evaluate the risks in the implementation of UDT on different layers of the stack.
5. IAB Considerations
The UNSAF [RFC3424] questions are addressed by the IPsec-NAT
compatibility requirements document [RFC3715].
6. Acknowledgments
Thanks to the people at iNext, University of Technology, Sydney.
7. Security Considerations
All protocols discussed in this paper have their own specific
security requirements that MUST be considered. The special security
considerations for UDT are discussed here.
Bernardo, DV et al. Informational [Page 10]
8. References
8.1. Normative References
[RFC0768] Postel, J., "User Datagram Protocol", STD 6, RFC 768,
August 1980.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2401] Kent, S. and R. Atkinson, "Security Architecture for the
Internet Protocol", RFC 2401, November 1998.
[RFC2406] Kent, S. and R. Atkinson, "IP Encapsulating Security
Payload (ESP)", RFC 2406, November 1998.
[RFC2409] Harkins, D. and D. Carrel, "The Internet Key Exchange
(IKE)", RFC 2409, November 1998.
[RFC3947] Kivinen, T., "Negotiation of NAT-Traversal in the IKE",
RFC 3947, January 2005.
8.2. Informative References
[BH09a] D.V. Bernardo and D. Hoang, "Network Security Considerations
for a New Generation Protocol UDT. Proc. IEEE the 2nd ICCIST
Conference 2009, Beijing China.
[BH08b] D.V. Bernardo and D. Hoang, "A Security Framework and its
Implementation in Fast Data Transfer Next Generation
Protocol UDT", Journal of Information Assurance and
Security Vol 4(354-360). ISN 1554-1010. 2009
[CD90] D.D. Clark and D.L. Tennenhouse: Architectural
considerations for a new generation of protocols. In ACM
SIGCOMM, pages 200-208, 1990.
[GG07] Yunhong Gu and Robert L. Grossman, UDT: UDP-based Data Transfer for
High-Speed Wide Area Networks, Computer Networks
(Elsevier). Volume 51, Issue 7. May 2007.
[GG05] Yunhong Gu and Robert L. Grossman, Supporting Configurable
Congestion Control in Data Transport Services, SC 2005, Nov 12 -
18, Seattle, WA, USA.
[GHG04a] Yunhong Gu, Xinwei Hong, and Robert L. Grossman, An Analysis
of AIMD Algorithms with Decreasing Increases, First Workshop on
Networks for Grid Applications (Gridnets 2004), Oct. 29, San Jose,
CA, USA.
[GHG04b] Yunhong Gu, Xinwei Hong, and Robert L. Grossman, Experiences
in Design and Implementation of a High Performance Transport
Protocol, SC 2004, Nov 6 - 12, Pittsburgh, PA, USA.
Bernardo, DV et al. Informational [Page 11]
[IKEv2] Kaufman, C., "Internet Key Exchange (IKEv2) Protocol",
Work in Progress, October 2004.
[KA98] S. Kent, R. Atkinson "Security Architecture for the Internet
Protocol", RFC 2401, 1998.
[LM97] T. V. Lakshman and U. Madhow, The Performance of TCP/IP for
Networks with High Bandwidth-Delay Products and Random Loss,
IEEE/ACM Trans. on Networking, vol. 5 no 3, July 1997, pp. 336-350.
[RFC1122] Braden, R., "Requirements for Internet Hosts -
Communication Layers", STD 3, RFC 1122, October 1989.
[RFC2581] Allman, M., Paxson, V. and W. Stevens, TCP Congestion
Control, RFC 2581, April 1999.
[RFC2960] R. Stewart, Q. Xie, K. Morneault, C. Sharp, H. Chwarzbauer,
T. Taylor, I. Rytina, M. Kalla, L. Zhang, and V. Paxson. Stream
Control Transmission Protocol. RFC 2960, IETF, October 2000.
[RFC3193] Patel, B., Aboba, B., Dixon, W., Zorn, G., and S. Booth,
"Securing L2TP using IPsec", RFC 3193, November 2001.
[RFC3424] Daigle, L. and IAB, "IAB Considerations for UNilateral
Self-Address Fixing (UNSAF) Across Network Address
Translation", RFC 3424, November 2002.
[RFC3715] Aboba, B. and W. Dixon, "IPsec-Network Address Translation
(NAT) Compatibility Requirements", RFC 3715, March 2004.
[SRC84] J. Saltzer, D. Reed, and D. Clark: End-to-end arguments in
system design. ACM Transactions on Computer Systems 2,4,
1984 pages 277-288.
[TS06] K. Tan, Jingmin Song, Qian Zhang, Murari Sridharan, A Compound
TCP Approach for High-speed and Long Distance Networks, in IEEE
Infocom, April 2006, Barcelona, Spain.
[UDT] UDT: UDP-based Data Transfer, URL http://udt.sf.net.
[XHR04] Lisong Xu, Khaled Harfoush, and Injong Rhee, Binary Increase
Congestion Control for Fast Long-Distance Networks, INFOCOM 2004.
Author's Addresses
Danilo Valeros Bernardo
The University of Technology - Sydney
Sydney, Australia.
Email: dbernard@db2powerhouse.com
Doan B. Hoang
The University of Technology - Sydney
Sydney, Australia.
Bernardo, DV et al. Informational [Page 12]
Full Copyright Statement
Copyright (c) 2009 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions
Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect
on the date of publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect to this
document. Code Components extracted from this document must include
Simplified BSD License text as described in Section 4.e of the
Trust Legal Provisions and are provided without warranty as described
in the BSD License.
ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN
ARE PROVIDED ON AN "AS IS" BASIS AND THE CONTRIBUTOR, THE
ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE
INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK
FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION THEREIN
WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Acknowledgment
Funding for the RFC Editor function is provided by the IETF
Administrative Support Activity (IASA).
Bernardo, DV et al. Informational [Page 13]