Use of the WebSocket Protocol as a Transport for the Remote Framebuffer Protocol
draft-realvnc-websocket-00

The information below is for an old version of the document
Document Type Active Internet-Draft (individual)
Last updated 2013-09-16 (latest revision 2013-08-13)
Stream ISE
Intended RFC status Informational
Formats plain text pdf html bibtex
Additional URLs
Stream ISE state Finding Reviewers
Consensus Boilerplate Unknown
Document shepherd None
IESG IESG state I-D Exists
Telechat date
Responsible AD (None)
Send notices to (None)
Internet Engineering Taskforce                                 N. Wilson
Internet-Draft                                              RealVNC Ltd.
Intended status: Informational                           August 13, 2013
Expires: February 14, 2014

Use of the WebSocket Protocol as a Transport for the Remote Framebuffer
                                Protocol
                       draft-realvnc-websocket-00

Abstract

   The Remote Framebuffer protocol (RFB) enables clients to connect to
   and control remote graphical resources.  This document describes a
   transport for RFB using the WebSocket protocol, and defines a
   corresponding WebSocket subprotocol, enabling an RFB server to offer
   resources to clients with WebSocket connectivity, such as web-
   browsers.

Requirements Language

   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 [RFC2119].

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   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."

   This Internet-Draft will expire on February 14, 2014.

Copyright Notice

   Copyright (c) 2013 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

Wilson                  Expires February 14, 2014               [Page 1]
Internet-Draft        The RFB WebSocket Subprotocol          August 2013

   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 Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
     1.1.  Background  . . . . . . . . . . . . . . . . . . . . . . .   2
     1.2.  Overview of the WebSocket Protocol as a stream transport    3
   2.  Definitions . . . . . . . . . . . . . . . . . . . . . . . . .   4
   3.  Interaction with the WebSocket Protocol . . . . . . . . . . .   4
     3.1.  The "Sec-WebSocket-Protocol" header . . . . . . . . . . .   4
     3.2.  Close Frames  . . . . . . . . . . . . . . . . . . . . . .   5
     3.3.  Data Frames . . . . . . . . . . . . . . . . . . . . . . .   5
   4.  Versioning Considerations . . . . . . . . . . . . . . . . . .   6
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   6
     5.1.  Registration of the RFB WebSocket Subprotocol . . . . . .   6
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .   7
     6.1.  Origin checking . . . . . . . . . . . . . . . . . . . . .   7
     6.2.  Encryption  . . . . . . . . . . . . . . . . . . . . . . .   8
     6.3.  Creating a Safe JavaScript Environment  . . . . . . . . .   8
   7.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   8
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   8
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .   9
     8.2.  Informative References  . . . . . . . . . . . . . . . . .   9
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .   9

1.  Introduction

1.1.  Background

   _This section is non-normative._

   The WebSocket Protocol [RFC6455] provides a reliable, full-duplex,
   message-oriented transport.  The opening handshake is formatted as an
   HTTP request and response, enabling access to resources through
   intermediaries obeying HTTP semantics, such as proxies.  This enables
   resources served over a WebSocket-based transport to be accessible to
   all web user-agents.

   In addition, although untrusted websites cannot be given a mechanism
   to make arbitrary TCP connections, web-browsers are able to offer web

Wilson                  Expires February 14, 2014               [Page 2]
Internet-Draft        The RFB WebSocket Subprotocol          August 2013

   resources such as JavaScript scripts the ability to make arbitrary
   connections using the WebSocket protocol.  This is because the
   initial HTTP handshake, performed by the user agent rather than the
Show full document text