Internet DRAFT - draft-ssh-fixed-bandwidth

draft-ssh-fixed-bandwidth





Internet-Draft                                                  D. Bider
Expires: August 28, 2016                                 Bitvise Limited
                                                       February 28, 2016


                 Fixed-Bandwidth Mode for SSH Channels
                    draft-ssh-fixed-bandwidth-02.txt


Abstract

  This memo defines a mechanism for SSH clients and servers to counter
  some types of traffic analysis, especially keystroke analysis, in SSH
  terminal session channels.

Status

  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), 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

  Copyright (c) 2016 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 Simplified BSD License.





Bider                                                           [Page 1]

Internet-Draft    Fixed-Bandwidth Mode for SSH Channels    February 2016


1.  Overview and Rationale

  Secure Shell (SSH) is a common protocol for secure communication on
  the Internet. Despite encryption, naive SSH terminal implementations
  are vulnerable to keystroke traffic analysis. When a user is typing,
  each keystroke results in a small packet sent to the server, and the
  server echoes the key back. The sizes and timings of packets betray
  how many keys the user has pressed, as well as what key combinations
  are most likely, because different key combinations cause subtle but
  consistently different delays.
  
  It is also possible to analyze non-keystroke traffic in the direction
  from the server to client. When a client makes a directory listing,
  the resulting encrypted TCP stream is distinguishable from viewing a
  man page, or running a SQL statement.
  
  This memo defines a mechanism intended to counter keystroke analysis,
  and to generally improve terminal session privacy.

1.1.  Requirements Terminology

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


2.  Mechanism

2.1. Entering Fixed-Bandwidth Mode
  
  Because the SSH server will generally echo received keystrokes to the
  client, defending against keystroke analysis requires cooperation
  between the client and server.
  
  To enable fixed-bandwidth mode, the client sends the following channel
  request at any point after opening the channel [RFC4254]:
  
    byte    SSH_MSG_CHANNEL_REQUEST
    uint32  remoteChannelNr
    string  "fixed-bandwidth"
    bool    wantReply
    uint32  burstWindowSeconds
    uint32  msBetweenTransmissions (milliseconds)
    uint32  bytesPerTransmission
 
  This mechanism is mainly intended for channels of type "session" that
  are used for interactive terminal, but a client MAY use it for other
  channels. A server that responds positively to this request MUST
  enable fixed-bandwidth mode for that channel. A server MAY internally
  constrain parameters of this request to values it deems sensible.
  


Bider                                                           [Page 2]

Internet-Draft    Fixed-Bandwidth Mode for SSH Channels    February 2016


  If a server responds negatively to this request, a client MAY still
  enter fixed-bandwidth mode for data sent in the direction from
  client-to-server. However, such a server is likely to echo keystrokes
  back to the client, defeating the effort.
  
  When fixed-bandwidth mode is requested by the client and confirmed by
  the server, the channel starts in the resting state.
  
2.2.  Resting State
  
  In resting state, the channel waits either for an outgoing channel
  message to send, or for an incoming channel message received. Each of
  these is a triggering event.
  
  When a triggering event occurs - either a channel message is ready to
  send, or a channel message is received - this causes the channel to
  enter two or more consecutive burst windows.

2.3.  Burst Window

  When a triggering event occurs, the channel enters a burst window of
  duration burstWindowSeconds. A channel returns to resting state at the
  end of a burst window - if, and only if, no triggering event occurred
  during the last burst window. If any channel message was sent or
  received during a burst window; even if this was only the initial
  event that started the burst; then the channel continues with another
  burst window of duration burstWindowSeconds.
  
  When the channel is in a burst window; instead of sending messages as
  it would outside this mechanism; the channel operates as follows:
  
  (1) The SSH implementation operates a timer. It checks if a message
      should be sent on the channel every msBetweenTransmissions.      
  (2) If a channel message is to be sent, the implementation sends it as
      a transmission of size bytesPerTransmission; exceeding that size
      only if a message cannot be broken apart. Any further channel
      messages or data are left in queue until next sending opportunity.
  (3) If no channel message is to be sent, the implementation sends a
      transmission based on SSH_MSG_IGNORE of size bytesPerTransmission.

  The preceding treatment is applied to the following channel messages:
  
    SSH_MSG_CHANNEL_DATA
    SSH_MSG_CHANNEL_EXTENDED_DATA
    SSH_MSG_CHANNEL_WINDOW_ADJUST
    SSH_MSG_CHANNEL_REQUEST
    SSH_MSG_CHANNEL_SUCCESS
    SSH_MSG_CHANNEL_FAILURE
    SSH_MSG_CHANNEL_EOF
    SSH_MSG_CHANNEL_CLOSE



Bider                                                           [Page 3]

Internet-Draft    Fixed-Bandwidth Mode for SSH Channels    February 2016


2.4.  Unencrypted Packet Lengths and Small Transmission Targets

  A small transmission target is a bytesPerTransmission parameter which
  does not exceed the maximum empty packet length currently achievable
  using maximum padding and respecting any block alignment requirements.

  When the session encryption algorithm uses unencrypted packet lengths,
  the parameter bytesPerTransmission MUST be coerced, each time at the
  point where it is used, to a small transmission target.
  
  When a small transmission target is in use, each transmission consists
  of a single packet; either SSH_MSG_IGNORE or a payload packet; padded
  to the transmission size, while respecting any block alignment.

2.5.  Encrypted Packet Lengths and Multi-Packet Transmission Targets

  A multi-packet transmission target is a bytesPerTransmission parameter
  which DOES exceed the maximum empty packet length currently achievable
  using maximum padding and respecting any block alignment requirements.
  
  A multi-packet transmission target may be used ONLY if the session
  encryption algorithm uses encrypted packet lengths.
  
  When a multi-packet transmission target is in use, each transmission
  consists of two packets sent back-to-back. The first packet is either
  SSH_MSG_IGNORE, or a payload packet with minimal padding, respecting
  any block alignment. The second packet is an SSH_MSG_IGNORE such that
  total size reaches transmission size, subject to any block alignment.

  It is important that the encrypted back-to-back packets are delivered
  to the TCP layer as a single chunk.

2.6.  Key Re-Exchange

  Key re-exchange may change session encryption parameters, including
  block alignment, MAC size, and whether packet lengths are encrypted.
  Key re-exchange may therefore change the way transmissions are sent,
  and the way bytesPerTransmission is interpreted by both parties.

2.7.  Permissive Receiving

  A receiver MAY implement logic to verify a sender's conformance to
  this specification. If a receiver detects a sender's non-conformance,
  it MAY output a diagnostic message, but it MUST NOT disconnect.
  Detection of apparent non-conformance is not in itself proof that the
  sender is not employing a different, potentially effective strategy.







Bider                                                           [Page 4]

Internet-Draft    Fixed-Bandwidth Mode for SSH Channels    February 2016


3.  IANA Considerations

3.1.  Additions to existing tables

  IANA is requested to insert the following entry into the table
  Connection Protocol Channel Request Names under Secure Shell (SSH)
  Protocol Parameters [RFC4250]:
  
    Request Type       Reference         Note
    fixed-bandwidth    [this document]   Section 2.1


4.  References

4.1.  Normative References
  
  [RFC2119]   Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

  [RFC4250]   Lehtinen, S. and C. Lonvick, Ed., "The Secure Shell (SSH)
              Protocol Assigned Numbers", RFC 4250, January 2006.

  [RFC4254]   Ylonen, T. and C. Lonvick, Ed., "The Secure Shell (SSH)
              Connection Protocol", RFC 4254, January 2006.









































Bider                                                           [Page 5]

Internet-Draft    Fixed-Bandwidth Mode for SSH Channels    February 2016


Author's Address

  Denis Bider
  Bitvise Limited
  Suites 41/42, Victoria House
  26 Main Street
  GI

  Phone: +506 8315 6519
  EMail: ietf-ssh3@denisbider.com
  URI:   https://www.bitvise.com/









 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 











Bider                                                           [Page 6]