Skip to main content

Research into Human Rights Protocol Considerations
draft-tenoever-hrpc-research-00

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft whose latest revision state is "Replaced".
Authors Niels ten Oever , Corinne Cath
Last updated 2016-04-01 (Latest revision 2016-03-17)
Replaces draft-dkg-hrpc-glossary, draft-varon-hrpc-methodology
Replaced by draft-irtf-hrpc-research, RFC 8280
RFC stream Internet Research Task Force (IRTF)
Formats
Additional resources
Stream IRTF state (None)
Consensus boilerplate Unknown
Document shepherd (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to irsg@irtf.org
draft-tenoever-hrpc-research-00
Internet Engineering Task Force                               A. Bierman
Internet-Draft                                                 YumaWorks
Obsoletes: 6536 (if approved)                               M. Bjorklund
Intended status: Standards Track                          Tail-f Systems
Expires: April 29, 2018                                 October 26, 2017

              Network Configuration Access Control Module
                    draft-ietf-netconf-rfc6536bis-08

Abstract

   The standardization of network configuration interfaces for use with
   the Network Configuration Protocol (NETCONF) or RESTCONF protocol
   requires a structured and secure operating environment that promotes
   human usability and multi-vendor interoperability.  There is a need
   for standard mechanisms to restrict NETCONF or RESTCONF protocol
   access for particular users to a pre-configured subset of all
   available NETCONF or RESTCONF protocol operations and content.  This
   document defines such an access control model.

   This document obsoletes RFC 6536.

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 April 29, 2018.

Copyright Notice

   Copyright (c) 2017 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

Bierman & Bjorklund      Expires April 29, 2018                 [Page 1]
Internet-Draft                    NACM                      October 2017

   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  . . . . . . . . . . . . . . . . . . . . . . . .   3
     1.1.  Terminology . . . . . . . . . . . . . . . . . . . . . . .   4
     1.2.  Changes Since RFC 6536  . . . . . . . . . . . . . . . . .   6
   2.  Access Control Design Objectives  . . . . . . . . . . . . . .   6
     2.1.  Access Control Points . . . . . . . . . . . . . . . . . .   6
     2.2.  Simplicity  . . . . . . . . . . . . . . . . . . . . . . .   7
     2.3.  Procedural Interface  . . . . . . . . . . . . . . . . . .   8
     2.4.  Datastore Access  . . . . . . . . . . . . . . . . . . . .   8
     2.5.  Users and Groups  . . . . . . . . . . . . . . . . . . . .   8
     2.6.  Maintenance . . . . . . . . . . . . . . . . . . . . . . .   8
     2.7.  Configuration Capabilities  . . . . . . . . . . . . . . .   8
     2.8.  Identifying Security-Sensitive Content  . . . . . . . . .   9
   3.  NETCONF Access Control Model (NACM) . . . . . . . . . . . . .   9
     3.1.  Introduction  . . . . . . . . . . . . . . . . . . . . . .   9
       3.1.1.  Features  . . . . . . . . . . . . . . . . . . . . . .  10
       3.1.2.  External Dependencies . . . . . . . . . . . . . . . .  10
       3.1.3.  Message Processing Model  . . . . . . . . . . . . . .  11
     3.2.  Datastore Access  . . . . . . . . . . . . . . . . . . . .  14
       3.2.1.  Mapping New Datastores to NACM  . . . . . . . . . . .  14
       3.2.2.  Access Rights . . . . . . . . . . . . . . . . . . . .  14
       3.2.3.  RESTCONF Methods  . . . . . . . . . . . . . . . . . .  15
       3.2.4.  <get> and <get-config> Operations . . . . . . . . . .  16
       3.2.5.  <edit-config> Operation . . . . . . . . . . . . . . .  16
       3.2.6.  <copy-config> Operation . . . . . . . . . . . . . . .  17
       3.2.7.  <delete-config> Operation . . . . . . . . . . . . . .  18
       3.2.8.  <commit> Operation  . . . . . . . . . . . . . . . . .  18
       3.2.9.  <discard-changes> Operation . . . . . . . . . . . . .  18
       3.2.10. <kill-session> Operation  . . . . . . . . . . . . . .  19
     3.3.  Model Components  . . . . . . . . . . . . . . . . . . . .  19
       3.3.1.  Users . . . . . . . . . . . . . . . . . . . . . . . .  19
       3.3.2.  Groups  . . . . . . . . . . . . . . . . . . . . . . .  19
       3.3.3.  Emergency Recovery Session  . . . . . . . . . . . . .  19
       3.3.4.  Global Enforcement Controls . . . . . . . . . . . . .  20
         3.3.4.1.  enable-nacm Switch  . . . . . . . . . . . . . . .  20
         3.3.4.2.  read-default Switch . . . . . . . . . . . . . . .  20
         3.3.4.3.  write-default Switch  . . . . . . . . . . . . . .  20
         3.3.4.4.  exec-default Switch . . . . . . . . . . . . . . .  21
         3.3.4.5.  enable-external-groups Switch . . . . . . . . . .  21
       3.3.5.  Access Control Rules  . . . . . . . . . . . . . . . .  21

Bierman & Bjorklund      Expires April 29, 2018                 [Page 2]
Internet-Draft                    NACM                      October 2017

     3.4.  Access Control Enforcement Procedures . . . . . . . . . .  21
       3.4.1.  Initial Operation . . . . . . . . . . . . . . . . . .  22
       3.4.2.  Session Establishment . . . . . . . . . . . . . . . .  22
       3.4.3.  "access-denied" Error Handling  . . . . . . . . . . .  22
       3.4.4.  Incoming RPC Message Validation . . . . . . . . . . .  22
       3.4.5.  Data Node Access Validation . . . . . . . . . . . . .  25
       3.4.6.  Outgoing <notification> Authorization . . . . . . . .  27
     3.5.  Data Model Definitions  . . . . . . . . . . . . . . . . .  29
       3.5.1.  Data Organization . . . . . . . . . . . . . . . . . .  30
       3.5.2.  YANG Module . . . . . . . . . . . . . . . . . . . . .  30
     3.6.  IANA Considerations . . . . . . . . . . . . . . . . . . .  40
     3.7.  Security Considerations . . . . . . . . . . . . . . . . .  41
       3.7.1.  NACM Configuration and Monitoring Considerations  . .  41
       3.7.2.  General Configuration Issues  . . . . . . . . . . . .  43
       3.7.3.  Data Model Design Considerations  . . . . . . . . . .  45
   4.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  45
     4.1.  Normative References  . . . . . . . . . . . . . . . . . .  45
     4.2.  Informative References  . . . . . . . . . . . . . . . . .  46
   Appendix A.  Change Log . . . . . . . . . . . . . . . . . . . . .  47
     A.1.  v07 to v08  . . . . . . . . . . . . . . . . . . . . . . .  47
     A.2.  v06 to v07  . . . . . . . . . . . . . . . . . . . . . . .  47
     A.3.  v05 to v06  . . . . . . . . . . . . . . . . . . . . . . .  47
     A.4.  v04 to v05  . . . . . . . . . . . . . . . . . . . . . . .  47
     A.5.  v03 to v04  . . . . . . . . . . . . . . . . . . . . . . .  47
     A.6.  v02 to v03  . . . . . . . . . . . . . . . . . . . . . . .  47
     A.7.  v01 to v02  . . . . . . . . . . . . . . . . . . . . . . .  48
     A.8.  v00 to v01  . . . . . . . . . . . . . . . . . . . . . . .  48
     A.9.  v00 . . . . . . . . . . . . . . . . . . . . . . . . . . .  48
   Appendix B.  Usage Examples . . . . . . . . . . . . . . . . . . .  48
     B.1.  <groups> Example  . . . . . . . . . . . . . . . . . . . .  48
     B.2.  Module Rule Example . . . . . . . . . . . . . . . . . . .  49
     B.3.  Protocol Operation Rule Example . . . . . . . . . . . . .  51
     B.4.  Data Node Rule Example  . . . . . . . . . . . . . . . . .  53
     B.5.  Notification Rule Example . . . . . . . . . . . . . . . .  55
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  55

1.  Introduction

   The NETCONF and RESTCONF protocols do not provide any standard
   mechanisms to restrict the protocol operations and content that each
   user is authorized to access.

   There is a need for interoperable management of the controlled access
   to administrator-selected portions of the available NETCONF or
   RESTCONF content within a particular server.

Bierman & Bjorklund      Expires April 29, 2018                 [Page 3]
Internet-Draft                    NACM                      October 2017

   This document addresses access control mechanisms for the Operations
   and Content layers of NETCONF, as defined in [RFC6241], and RESTCONF,
   as defined in [RFC8040].  It contains three main sections:

   1.  Access Control Design Objectives

   2.  NETCONF Access Control Model (NACM)

   3.  YANG Data Model (ietf-netconf-acm.yang)

   YANG version 1.1 [RFC7950] adds two new constructs that need special
   access control handling.  The "action" statement is similar to the
   "rpc" statement, except it is located within a data node.  The
   "notification" statement can also be located within a data node.

1.1.  Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

   The following terms are defined in
   [I-D.ietf-netmod-revised-datastores] and are not redefined here:

   o  datastore

   o  configuration datastore

   o  conventional configuration datastore

   o  candidate configuration datastore

   o  running configuration datastore

   o  startup configuration datastore

   o  operational state datastore

   o  client

   o  server

   The following terms are defined in [RFC6241] and are not redefined
   here:

   o  protocol operation

Bierman & Bjorklund      Expires April 29, 2018                 [Page 4]
Internet-Draft                    NACM                      October 2017

   o  session

   o  user

   The following terms are defined in [RFC7950] and are not redefined
   here:

   o  action

   o  data node

   o  data definition statement

   The following terms are defined in [RFC8040] and are not redefined
   here:

   o  data resource

   o  datastore resource

   o  operation resource

   o  target resource

   The following term is defined in [RFC7230] and is not redefined here:

   o  request URI

   The following terms are used throughout this document:

   access control:  A security feature provided by the server that
      allows an administrator to restrict access to a subset of all
      protocol operations and data, based on various criteria.

   access control model (ACM):  A conceptual model used to configure and
      monitor the access control procedures desired by the administrator
      to enforce a particular access control policy.

   access control rule:  The criterion used to determine if a particular
      access operation will be permitted or denied.

   access operation:  How a request attempts to access a conceptual
      object.  One of "none", "read", "create", "delete", "update", or
      "execute".

   data node hierarchy:  The hierarchy of data nodes that identifies the
      specific "action" or "notification" node in the datastore.

Bierman & Bjorklund      Expires April 29, 2018                 [Page 5]
Internet-Draft                    NACM                      October 2017

   recovery session:  A special administrative session that is given
      unlimited NETCONF access and is exempt from all access control
      enforcement.  The mechanism(s) used by a server to control and
      identify whether or not a session is a recovery session are
      implementation specific and outside the scope of this document.

   write access:  A shorthand for the "create", "delete", and "update"
      access operations.

1.2.  Changes Since RFC 6536

   The NACM procedures and data model have been updated to support new
   data modeling capabilities in the version 1.1. of the YANG data
   modeling language.  The "action" and "notification" statements can be
   used within data nodes to define data-model specific operations and
   notifications.

   An important use-case for these new YANG statements is the increased
   access control granularity that can be achieved over top-level "rpc"
   and "notification" statements.  The new "action" and "notification"
   statements are used within data nodes, and access to the action or
   notification can be restricted to specific instances of these data
   nodes.

   Support for the RESTCONF protocol has been added.  The RESTCONF
   operations are similar to the NETCONF operations, so a simple mapping
   to the existing NACM procedures and data model is possible.

   The server message processing behavior for the edit operation "none",
   used in the <edit-config>, has been changed.  Now read access is
   required for such data nodes, instead of no access required.

2.  Access Control Design Objectives

   This section documents the design objectives for the NETCONF Access
   Control Model presented in Section 3.

2.1.  Access Control Points

   NETCONF allows server implementors to add new custom protocol
   operations, and the YANG Data Modeling Language supports this
   feature.  These operations can be defined in standard or proprietary
   YANG modules.

   It is not possible to design an ACM for NETCONF that only focuses on
   a static set of standard protocol operations defined by the NETCONF
   protocol itself, like some other protocols.  Since few assumptions
   can be made about an arbitrary protocol operation, the NETCONF

Bierman & Bjorklund      Expires April 29, 2018                 [Page 6]
Internet-Draft                    NACM                      October 2017

   architectural server components need to be protected at three
   conceptual control points.

   These access control points, described in Figure 1, are as follows:

   protocol operation:  Permission to invoke specific protocol
      operations.

   datastore:  Permission to read and/or alter specific data nodes
      within any datastore.

   notification:  Permission to receive specific notification event
      types.

                 +-------------+                 +-------------+
    client       |  protocol   |                 |  data node  |
    request -->  |  operation  | ------------->  |   access    |
                 |  allowed?   |   datastore     |  allowed?   |
                 +-------------+   or state      +-------------+
                                   data access

                 +----------------+
                 |  notification  |
    event -->    |  allowed?      |
                 +----------------+

                                 Figure 1

2.2.  Simplicity

   There is concern that a complicated ACM will not be widely deployed
   because it is too hard to use.  Configuration of the access control
   system needs to be as simple as possible.  Simple and common tasks
   need to be easy to configure and require little expertise or domain-
   specific knowledge.  Complex tasks are possible using additional
   mechanisms, which may require additional expertise.

   A single set of access control rules ought to be able to control all
   types of NETCONF protocol operation invocation, all datastore access,
   and all notification events.

   Access control ought to be defined with a small and familiar set of
   permissions, while still allowing full control of datastore access.

Bierman & Bjorklund      Expires April 29, 2018                 [Page 7]
Internet-Draft                    NACM                      October 2017

2.3.  Procedural Interface

   The NETCONF protocol uses a remote procedure call model and an
   extensible set of protocol operations.  Access control for any
   possible protocol operation is necessary.

2.4.  Datastore Access

   It is necessary to control access to specific nodes and subtrees
   within the datastore, regardless of which protocol operation,
   standard or proprietary, was used to access the datastore.

2.5.  Users and Groups

   It is necessary that access control rules for a single user or a
   configurable group of users can be configured.

   The ACM needs to support the concept of administrative groups, to
   support the well-established distinction between a root account and
   other types of less-privileged conceptual user accounts.  These
   groups need to be configurable by the administrator.

   It is necessary that the user-to-group mapping can be delegated to a
   central server, such as a RADIUS server [RFC2865][RFC5607].  Since
   authentication is performed by the transport layer and RADIUS
   performs authentication and service authorization at the same time,
   the underlying transport protocol needs to be able to report a set of
   group names associated with the user to the server.  It is necessary
   that the administrator can disable the usage of these group names
   within the ACM.

2.6.  Maintenance

   It ought to be possible to disable part or all of the access control
   model enforcement procedures without deleting any access control
   rules.

2.7.  Configuration Capabilities

   Suitable configuration and monitoring mechanisms are needed to allow
   an administrator to easily manage all aspects of the ACM's behavior.
   A standard data model, suitable for use with the <edit-config>
   protocol operation, needs to be available for this purpose.

   Access control rules to restrict access operations on specific
   subtrees within the configuration datastore need to be supported.

Bierman & Bjorklund      Expires April 29, 2018                 [Page 8]
Internet-Draft                    NACM                      October 2017

2.8.  Identifying Security-Sensitive Content

   One of the most important aspects of the data model documentation,
   and biggest concerns during deployment, is the identification of
   security-sensitive content.  This applies to protocol operations in
   NETCONF, not just data and notifications.

   It is mandatory for security-sensitive objects to be documented in
   the Security Considerations section of an RFC.  This is nice, but it
   is not good enough, for the following reasons:

   o  This documentation-only approach forces administrators to study
      the RFC and determine if there are any potential security risks
      introduced by a new data model.

   o  If any security risks are identified, then the administrator must
      study some more RFC text and determine how to mitigate the
      security risk(s).

   o  The ACM on each server must be configured to mitigate the security
      risks, e.g., require privileged access to read or write the
      specific data identified in the Security Considerations section.

   o  If the ACM is not pre-configured, then there will be a time window
      of vulnerability after the new data model is loaded and before the
      new access control rules for that data model are configured,
      enabled, and debugged.

   Often, the administrator just wants to disable default access to the
   secure content, so no inadvertent or malicious changes can be made to
   the server.  This allows the default rules to be more lenient,
   without significantly increasing the security risk.

   A data model designer needs to be able to use machine-readable
   statements to identify content that needs to be protected by default.
   This will allow client and server tools to automatically identify
   data-model-specific security risks, by denying access to sensitive
   data unless the user is explicitly authorized to perform the
   requested access operation.

3.  NETCONF Access Control Model (NACM)

3.1.  Introduction

   This section provides a high-level overview of the access control
   model structure.  It describes the NETCONF protocol message
   processing model and the conceptual access control requirements
   within that model.

Bierman & Bjorklund      Expires April 29, 2018                 [Page 9]
Internet-Draft                    NACM                      October 2017

3.1.1.  Features

   The NACM data model provides the following features:

   o  Independent control of remote procedure call (RPC), action, data,
      and notification access.

   o  Simple access control rules configuration data model that is easy
      to use.

   o  The concept of an emergency recovery session is supported, but
      configuration of the server for this purpose is beyond the scope
      of this document.  An emergency recovery session will bypass all
      access control enforcement, in order to allow it to initialize or
      repair the NACM configuration.

   o  A simple and familiar set of datastore permissions is used.

   o  Support for YANG security tagging (e.g., "nacm:default-deny-write"
      statement) allows default security modes to automatically exclude
      sensitive data.

   o  Separate default access modes for read, write, and execute
      permissions.

   o  Access control rules are applied to configurable groups of users.

   o  The access control enforcement procedures can be disabled during
      operation, without deleting any access control rules, in order to
      debug operational problems.

   o  Access control rules are simple to configure.

   o  The number of denied protocol operation requests and denied
      datastore write requests can be monitored by the client.

   o  Simple unconstrained YANG instance identifiers are used to
      configure access control rules for specific data nodes.

3.1.2.  External Dependencies

   The NETCONF protocol [RFC6241] and RESTCONF protocol [RFC8040] are
   used for network management purposes within this document.

   The YANG Data Modeling Language [RFC7950] is used to define the data
   models for use with the NETCONF or RESTCONF protocols.  YANG is also
   used to define the data model in this document.

Bierman & Bjorklund      Expires April 29, 2018                [Page 10]
Internet-Draft                    NACM                      October 2017

3.1.3.  Message Processing Model

   The following diagram shows the conceptual message flow model,
   including the points at which access control is applied during
   NETCONF message processing.

   RESTCONF operations are mapped to the access control model based on
   the HTTP method and resource class used in the operation.  For
   example, a POST method on a data resource is considered "write data
   node" access, but a POST method on an operation resource is
   considered "operation" access.

   The new "pre-read data acc. ctl" boxes in the diagram below refer to
   group read access as it relates to data node ancestors of an action
   or notification.  As an example, if an action is defined as
   /interfaces/interface/reset-interface, the group must be authorized
   to read /interfaces and /interfaces/interface, and execute on
   /interfaces/interface/reset-interface.

Bierman & Bjorklund      Expires April 29, 2018                [Page 11]
Internet-Draft                    NACM                      October 2017

                    +-------------------------+
                    |       session           |
                    |      (username)         |
                    +-------------------------+
                       |                 ^
                       V                 |
             +--------------+     +---------------+
             |   message    |     |   message     |
             | dispatcher   |     |   generator   |
             +--------------+     +---------------+
               |      |               ^         ^
               |      V               |         |
               |  +=============+     |         |
               |  | pre-read    |     |         |
               |  | data node   |     |         |
               |  | acc. ctl    |     |         |
               |  +=============+     |         |
               |    |                 |         |
               V    V                 |         |
         +===========+     +-------------+   +----------------+
         | operation |---> |    reply    |   | <notification> |
         | acc. ctl  |     |  generator  |   |  generator     |
         +===========+     +-------------+   +----------------+
               |              ^    ^                ^
               V       +------+    |                |
         +-----------+ |   +=============+  +================+
         | operation | |   |    read     |  | <notification> |
         | processor |-+   | data node   |  |  access ctl    |
         |           |     | acc. ctl    |  |                |
         +-----------+     +=============+  +================+
               |   |                  ^       ^     ^
               V   +----------------+ |       |     |
         +===========+              | |       | +============+
         |  write    |              | |       | | pre-read   |
         | data node |              | |       | | data node  |
         | acc. ctl  | -----------+ | |       | | acc. ctl   |
         +===========+            | | |       | +============+
               |                  | | |       |   ^
               V                  V V |       |   |
         +---------------+      +-------------------+
         | configuration | ---> |      server       |
         |   datastore   |      |  instrumentation  |
         |               | <--- |                   |
         +---------------+      +-------------------+

                                 Figure 2

Bierman & Bjorklund      Expires April 29, 2018                [Page 12]
Internet-Draft                    NACM                      October 2017

   The following high-level sequence of conceptual processing steps is
   executed for each received <rpc> message, if access control
   enforcement is enabled:

   o  For each active session, access control is applied individually to
      all 's a burgeoning group of academics and practitioners
   researched questions surrounding the societal impact of protocols.
   These studies vary in focus and scope: some focus on specific
   standards [Davidsonetal] [Musiani], others look into the political,
   legal, commercial or social impact of protocols [BrownMarsden]
   [Lessig], [Mueller].    Commercial and political influences on the
   management of the Internet's architecture are well-documented in the
   academic literature and will thus not be discussed here [Benkler]
   [Brownetal]  [Denardis15]  [Lessig]  [Mueller]  [Zittrain].  It is
   enough to say that the IETF consistently tries to push back against
   the standardization of surveillance and certain other issues that
   negatively influence end-users' experience of the Internet
   [Denardis14].  The role human rights play in technical engineering is
   much less clear.    Understanding how protocols and standards impact
   human rights, especially the right to freedom of expression and
   freedom of association and assembly is crucial.  Questions at the

ten Oever & Cath       Expires September 18, 2016              [Page 10]
Internet-Draft                    hrpcr                       March 2016

   intersection of human rights and Internet architecture management are
   particularly important as Internet Standard Developing Organizations
   (SDOs) are the arenas for contention over human rights and the role
   of technical engineers to protect human rights by design [Brownetal]
   [Clarketal]  [Denardis14]  [Lessig]  [Rachovitsa].    In the academic
   literature four clear positions can be discerned, in relation to the
   role of human rights in protocol design and how to account for these
   human rights in protocol development: Clark et al. argue that there
   is a need to 'design for variation in outcome, so that the outcome
   can be different in different places, and the tussle takes place
   within the design (...) [as] Rigid designs will be broken; designs
   that permit variation will flex under pressure and survive
   [Clarketal].'  They hold that human rights should not be hard-coded
   into protocols because of four reasons: first, the rights in the UDHR
   are not absolute.  Second, technology is not the only tool in the
   tussle over human rights.  Third, there are inherent dangers to
   blunting the tools of enforcement and last but not least, it is
   dangerous to make promises that can't be kept.  The open nature of
   the Internet will never, they argue, be enough to fully protect
   individuals' human rights.

   Conversely, Brown et al.  [Brownetal] state that 'some key, universal
   values - of which the UDHR is the most legitimate expression - should
   be baked into the architecture at design time.'  They argue that
   design choices have offline consequences, and are able shape the
   power positions of groups or individuals in society.  As such, the
   individuals making these technical decisions have a moral obligation
   to take into account the impact of their decisions on society, and by
   extension human rights.  Brown et al recognise that values and the
   implementation of human rights vary across the globe.  Yet they argue
   that all members of the United Nations have found 'common agreement
   on the values proclaimed in the Universal Declaration of Human
   Rights.  In looking for the most legitimate set of global values to
   embed in the future Internet architecture, the UDHR has the
   democratic assent of a significant fraction of the planet's
   population, through their elected representatives."

   The main disagreement between these two positions lies mostly in the
   question on whether a particular value system should be build into
   the Internet's architecture or whether the architecture needs to
   account for a varying set of values.    A third position that is
   similar to that of Brown et al., is taken by [Broeders] who argues
   that 'we must find ways to continue guaranteeing the overall
   integrity and functionality of the public core of the Internet.'  He
   argues that the best way to do this is by declaring the backbone of
   the Internet - which includes the tcp/ip ProtocolSuite, numerous
   standards, the Domain Name System (dns), and routing protocols- a
   common public good. This is a different approach then that of

ten Oever & Cath       Expires September 18, 2016              [Page 11]
Internet-Draft                    hrpcr                       March 2016

   [Clarketal] and [Brownetal] because he does not suggest that social
   values should (or should not) be explicitly coded into the Internet's
   architecture, but rather that the existing architecture should be
   seen as an entity of public value.    Bless and Orwat [Bless]
   represents a fourth position.  They argue that 'pure technical
   solutions for enabling, enforcing or restricting rights/values are
   often costly, insufficient, inflexible, may have unintended
   consequences or create stakeholders with too much power'.  They argue
   that it is important to search for solutions that 'create awareness
   in the technical community about impact of design choices on social
   values.  And work towards a methodology for co-design of technical
   and institutional systems.'    Our position is that hard-coding human
   rights into protocols in addition to being undesirable is also
   impossible, because each situation is dependent on its context.  It
   is however important to make consicious design decisions that take
   into account the human rights protocol considerations guidelines
   developed below.  This will ensure that the impact protocols can have
   on human rights is clear and explicit, both for developers and for
   users.  In addition, it ensures that the impact of specific protocol
   on human rights is carefully considered and that concrete design
   decisions are documented in the protocol.

   This document details the steps taken in the research into human
   rights protocol considerations by the HRPC group to clarify the
   relation between technical concepts used in the IETF and human
   rights.  And sets out some preliminary of steps and considerations
   for engineers to take into account when developing standards and
   protocols.

5.  Methodology

   Mapping the relation between human rights and protocols and
   architectures is a new research challenge, which requires a good
   amount of interdisciplinary and cross organizational cooperation to
   develop a consistent methodology.  While the authors of this first
   draft are involved in  both human rights advocacy and research on
   Internet technologies - we believe that bringing this work into the
   IRTF facilitates and  improves this work by bringing human rights
   experts together with the  community of researchers and developers of
   Internet standards and technologies.

   The methodological choices made in this document are based on the
   political science-based method of discourse analysis and ethnographic
   research methods.  This work departs from the assumption that
   language reflects the understanding of concepts.  Or as [Jabri]
   holds, policy documents are 'social relations represented in texts
   where language is used to construct meaning and representation'.
   This process happens in 'the social space of society' [Schroeder] and

ten Oever & Cath       Expires September 18, 2016              [Page 12]
Internet-Draft                    hrpcr                       March 2016

   manifests itself in institutions and organizations [King] which were
   exposed using the ethnographic methods of semi-structured interviews
   and participant observation.

   The discourse analysis was operationalized using qualitative and
   quantitative means.  The first step was for the research group to
   read RFCs and other official IETF documents.  The second step was the
   use of a pyhon-based analyzer, using the tool Big Bang, adapted by
   Nick Doty [Doty] to scan for the concepts that were identified as
   important architetural principels (distilled on the initial reading
   and supplemented by the interviews and participant observation).
   Such a quantitative method is very precise and speeds up the research
   process [Richie].  But this tool is unable to understand 'latent
   meaning' [Denzin].  In order to mitigate these issues of automated
   word-frequency based approaches, and to get a sense of the 'thick
   meaning' [Geertz] of the data, a second qualitative analysis of the
   data set was performed.  These various rounds of discourse analysis
   were used to inform the interviews and further data analysis.  The
   ethnographic methods of the data collection process allowed the
   research group to acquire the data necessary to 'provide a holistic
   understanding of research participants' views and actions' [Denzin]
   that highlighted ongoing issues and case studies where protocols
   impact human rights.  The interview participants were selected
   through purposive sampling [Babbie], as the research group was
   interested in getting a wide variety of opinions on the role of human
   rights in guiding protocol development.  This sampling method also
   ensured that the individuals with extensive experience of working at
   the IETF in various roles were targeted.  The interviewees included
   individuals in leadership positions (Working Group (WG) chairs, Area
   Directors (ADs)), 'regular participants', individuals working for
   specific entities (corporate, civil society, political, academic) and
   represented various backgrounds, nationalities and genders.

5.1.  Data Sources

   In order to map the potential relation between human rights and
   protocols, so far, the HRPC research group gathered data from three
   specific sources:&#8232;

5.1.1.  Discourse analysis of RFCs

   To start addressing the issue, a mapping exercise analyzing Internet
   architecture and protocols features, vis-a-vis possible impact on
   human rights is being undertaken.  Therefore, research on the
   language used in current and historic RFCs and mailing list
   discussions is underway to expose core architectural principles,
   language and deliberations on human rights of those affected by the
   network.

ten Oever & Cath       Expires September 18, 2016              [Page 13]
Internet-Draft                    hrpcr                       March 2016

5.1.2.  Interviews with members of the IETF community during IETF92 in
        Dallas

   Interviews with the current and past members of the Internet
   Architecture Board (IAB), current and past members of the Internet
   Engineering Steering Group(IESG) and chairs of selected working
   groups and RFC authors.  To get an insider understanding of how they
   view the relationship (if any) between human rights and protocols to
   play out in their work.

5.1.3.  Participant observation in Working Groups

   By participating in various working groups, in person at IETF
   meetings and on mailinglists, information was gathered about the
   IETFs day-to-day workings.  From which which general themes,
   technical concepts, and use-cases about human rights and protocols
   were extracted.

5.2.  Data analysis strategies

   The data above was processed using three consecutive strategies:
   mapping protocols related to human rights, extracting concepts from
   these protocols, and creation of a common glossary (detailed under 2.
   vocabulary used).  Before going into these strategies some
   elaboration on the process of identifying technical concepts as they
   related to human rights needs to be given.

5.2.1.  Identifying qualities of technical concepts that relate to human
        rights

5.2.1.1.  Mapping protocols and standards related to human rights

   By combining data from the three data sources named above, an
   extensive list of  protocols and standards that potentially enable
   the internet as a tool for freedom of expression and association was
   assembly.  In order to determine this enabling (or inhibiting)
   featured we relied on direct references of such impact in the RFCs,
   as well as input from the community.  On the basis of this analysis a
   list of RFCs that describe standards and protocols that are
   potentially more closely related to human rights were compiled.

5.2.1.2.  Extracting concepts from mapped RFCs

   Mapping the protocols and standards that are related to human rights
   and creating an human rights enabeling environment was the first step
   to focus on specific technical concepts that underlie these protocols
   and  standards.  On the basis of this list number of technical
   concepts that appeared frequently was extracted, and used to create a

ten Oever & Cath       Expires September 18, 2016              [Page 14]
Internet-Draft                    hrpcr                       March 2016

   lt;rpc> messages (except <close-session>) received by the
      server, unless the session is identified as a recovery session.

   o  If the <action> operation defined in [RFC7950] is invoked, then
      read access is required for all instances in the hierarchy of data
      nodes that identifies the specific action in the datastore, and
      execute access is required for the action node.  If the user is
      not authorized to read all the specified data nodes and execute
      the action, then the request is rejected with an "access-denied"
      error.

   o  Otherwise, if the user is not authorized to execute the specified
      protocol operation, then the request is rejected with an "access-
      denied" error.

   o  If a datastore is accessed by the protocol operation, then the
      server checks if the client is authorized to access the nodes in
      the datastore.  If the user is not authorized to perform the
      requested access operation on the requested data, then the request
      is rejected with an "access-denied" error.

   The following sequence of conceptual processing steps is executed for
   each generated notification event, if access control enforcement is
   enabled:

   o  Server instrumentation generates a notification for a particular
      subscription.

   o  If the notification statement is specified within a data subtree,
      as specified in [RFC7950], then read access is required for all
      instances in the hierarchy of data nodes that identifies the
      specific notification in the datastore, and read access is
      required for the notification node.  If the user is not authorized
      to read all the specified data nodes and the notification node,
      then the notification is dropped for that subscription.

   o  If the notification statement is a top-level statement, the
      notification access control enforcer checks the notification event
      type, and if it is one that the user is not authorized to read,
      then the notification is dropped for that subscription.

Bierman & Bjorklund      Expires April 29, 2018                [Page 13]
Internet-Draft                    NACM                      October 2017

3.2.  Datastore Access

   The same access control rules apply to all datastores that support
   NACM, for example, the candidate configuration datastore or the
   running configuration datastore.

   All conventional configuration datastores and the operational state
   datastore are controlled by NACM.  Local or remote files or
   datastores accessed via the <url> parameter are not controlled by
   NACM.

3.2.1.  Mapping New Datastores to NACM

   It is possible that new datastores will be defined over time for use
   with the NETCONF protocol.  NACM MAY be applied to other datastores
   that have similar access rights as defined in NACM.  To apply NACM to
   a new datastore, the new datastore specification needs to define how
   it maps to the NACM CRUDX access rights.  It is possible only a
   subset of the NACM access rights would be applicable.  For example,
   only retrieval access control would be needed for a read-only
   datastore.  Operations and access rights not supported by the NACM
   CRUDX model are outside the scope of this document.  A datastore does
   not need to use NACM, e.g., the datastore specification defines
   something else, or does not use access control.

3.2.2.  Access Rights

   A small set of hard-wired datastore access rights is needed to
   control access to all possible protocol operations, including vendor
   extensions to the standard protocol operation set.

   The "CRUDX" model can support all protocol operations:

   o  Create: allows the client to add a new data node instance to a
      datastore.

   o  Read: allows the client to read a data node instance from a
      datastore or receive the notification event type.

   o  Update: allows the client to update an existing data node instance
      in a datastore.

   o  Delete: allows the client to delete a data node instance from a
      datastore.

   o  eXec: allows the client to execute the operation.

Bierman & Bjorklund      Expires April 29, 2018                [Page 14]
Internet-Draft                    NACM                      October 2017

3.2.3.  RESTCONF Methods

   The RESTCONF protocol utilizes HTTP methods to perform datastore
   operations, similar to the NETCONF protocol.  The NACM procedures
   were originally written for NETCONF protocol operations so the
   RESTCONF methods are mapped to NETCONF operations for the purpose of
   access control processing.  The enforcement procedures described
   within this document apply to both protocols unless explicitly stated
   otherwise.

   The request URI needs to be considered when processing RESTCONF
   requests on data resources:

   o  For HEAD and GET requests, any data nodes which are ancestor nodes
      of the target resource are considered to be part of the retrieval
      request for access control purposes.

   o  For PUT, PATCH, and DELETE requests, any data nodes which are
      ancestor nodes of the target resource are not considered to be
      part of the edit request for access control purposes.  The access
      operation for these nodes is considered to be "none".  The edit
      begins at the target resource.

   o  For POST requests on data resources, any data nodes which are
      specified in the request URI, including the target resource, are
      not considered to be part of the edit request for access control
      purposes.  The access operation for these nodes is considered to
      be "none".  The edit begins at a child node of the target
      resource, specified in the message body.

   Not all RESTCONF methods are subject to access control.  The
   following table specifies how each method is mapped to NETCONF
   protocol operations.  The value "none" indicates that NACM is not
   applied at all to the specific RESTCONF method.

Bierman & Bjorklund      Expires April 29, 2018                [Page 15]
Internet-Draft                    NACM                      October 2017

   +---------+-----------------+---------------------+-----------------+
   | method  | resource class  | NETCONF operation   | Access          |
   |         |                 |                     | operation       |
   +---------+-----------------+---------------------+-----------------+
   | OPTIONS | all             | none                | none            |
   | HEAD    | all             | <get>, <get-config> | read            |
   | GET     | all             | <get>, <get-config> | read            |
   | POST    | datastore, data | <edit-config>       | create          |
   | POST    | operation       | specified operation | execute         |
   | PUT     | data            | <edit-config>       | create, update  |
   | PUT     | datastore       | <copy-config>       | update          |
   | PATCH   | data, datastore | <edit-config>       | update          |
   | DELETE  | data            | <edit-config>       | delete          |
   +---------+-----------------+---------------------+-----------------+

               Table 1: Mapping RESTCONF Methods to NETCONF

3.2.4.  <get> and <get-config> Operations

   The NACM access rights are not directly coupled to the <get> and
   <get-config> protocol operations, but apply to all <rpc> operations
   that would result in a "read" access operation to the target
   datastore.  This section describes how these access rights apply to
   the specific access operations supported by the <get> and <get-
   config> protocol operations.

   Data nodes to which the client does not have read access are silently
   omitted from the <rpc-reply> message.  This is done to allow NETCONF
   filters for <get> and <get-config> to function properly, instead of
   causing an "access-denied" error because the filter criteria would
   otherwise include unauthorized read access to some data nodes.  For
   NETCONF filtering purposes, the selection criteria is applied to the
   subset of nodes that the user is authorized to read, not the entire
   datastore.

3.2.5.  <edit-config> Operation

   The NACM access rights are not directly coupled to the <edit-config>
   "operation" attribute, although they are similar.  Instead, a NACM
   access right applies to all protocol operations that would result in
   a particular access operation to the target datastore.  This section
   describes how these access rights apply to the specific access
   operations supported by the <edit-config> protocol operation.

   If the effective access operation is "none" (i.e., default-
   operation="none") for a particular data node, then read permission is
   required for that data node.  This is required to allow access to a
   subtree within a larger data structure.  For example, a user may be

Bierman & Bjorklund      Expires April 29, 2018                [Page 16]
Internet-Draft                    NACM                      October 2017

   authorized to create a new "/interfaces/interface" list entry but not
   be authorized to create or delete its parent container
   ("/interfaces").  If the "/interfaces" container already exists in
   the target datastore, then the effective operation will be "none" for
   the "/interfaces" node if an "/interfaces/interface" list entry is
   edited.

   If the protocol operation would result in the creation of a datastore
   node and the user does not have "create" access permission for that
   node, the protocol operation is rejected with an "access-denied"
   error.

   If the protocol operation would result in the deletion of a datastore
   node and the user does not have "delete" access permission for that
   node, the protocol operation is rejected with an "access-denied"
   error.

   If the protocol operation would result in the modification of a
   datastore node and the user does not have "update" access permission
   for that node, the protocol operation is rejected with an "access-
   denied" error.

   A "merge" or "replace" <edit-config> operation may include data nodes
   that do not alter portions of the existing datastore.  For example, a
   container or list node may be present for naming purposes but does
   not actually alter the corresponding datastore node.  These unaltered
   data nodes are ignored by the server and do not require any access
   rights by the client.

   A "merge" <edit-config> operation may include data nodes but not
   include particular child data nodes that are present in the
   datastore.  These missing data nodes within the scope of a "merge"
   <edit-config> operation are ignored by the server and do not require
   any access rights by the client.

   The contents of specific restricted datastore nodes MUST NOT be
   exposed in any <rpc-error> elements within the reply.

3.2.6.  <copy-config> Operation

   Access control for the <copy-config> protocol operation requires
   special consideration because the administrator may be replacing the
   entire target datastore.

   If the source of the <copy-config> protocol operation is the running
   configuration datastore and the target is the startup configuration
   datastore, the client is only required to have permission to execute
   the <copy-config> protocol operation.

Bierman & Bjorklund      Expires April 29, 2018                [Page 17]
Internet-Draft                    NACM                      October 2017

   Otherwise:

   o  If the source of the <copy-config> operation is a datastore, then
      data nodes to which the client does not have read access are
      silently omitted.

   o  If the target of the <copy-config> operation is a datastore, the
      client needs access to the modified nodes, specifically:

      *  If the protocol operation would result in the creation of a
         datastore node and the user does not have "create" access
         permission for that node, the protocol operation is rejected
         with an "access-denied" error.

      *  If the protocol operation would result in the deletion of a
         datastore node and the user does not have "delete" access
         permission for that node, the protocol operation is rejected
         with an "access-denied" error.

      *  If the protocol operation would result in the modification of a
         datastore node and the user does not have "update" access
         permission for that node, the protocol operation is rejected
         with an "access-denied" error.

3.2.7.  <delete-config> Operation

   Access to the <delete-config> protocol operation is denied by
   default.  The "exec-default" leaf does not apply to this protocol
   operation.  Access control rules must be explicitly configured to
   allow invocation by a non-recovery session.

3.2.8.  <commit> Operation

   The server MUST determine the exact nodes in the running
   configuration datastore that are actually different and only check
   "create", "update", and "delete" access permissions for this set of
   nodes, which could be empty.

   For example, if a session can read the entire datastore but only
   change one leaf, that session needs to be able to edit and commit
   that one leaf.

3.2.9.  <discard-changes> Operation

   The client is only required to have permission to execute the
   <discard-changes> protocol operation.  No datastore permissions are
   needed.

Bierman & Bjorklund      Expires April 29, 2018                [Page 18]
Internet-Draft                    NACM                      October 2017

3.2.10.  <kill-session> Operation

   The &list of technical terms that combined create the enabling environment
   for excercising human rights on the Internet.

5.2.1.3.  Building a common vocabulary of technical concepts that impact
          human rights

   While interviewing experts and mapping RFCs and compiling technical
   definitions several concepts of convergence and divergence were
   identified.  To ensure that the discussion was based on a common
   understanding of terms a list of terms was created.  The definitions
   are based on definitions from other IETF documents, and if these were
   unavailable definitions were taken from definitions from other
   Standards Developing Organizations or academic literature.

5.2.1.4.  Translating Human Rights Concept into Technical Definitions

   The previous steps allowed for the clarification of relation between
   human rights and technical concepts.  The steps taken show how the
   research process zoomed in, from compiling a broad lists of protocols
   and standards that relate to human rights to extracting the precies
   technical concepts that make up these protocols and standards in
   order to understand the relationship between the two.  This sub-
   section presents the next step: translating human rights to technical
   concepts by matching the individuals components of the rights to the
   accompanying technical concepts, allowing for the creation of a list
   of technical concepts that combined create the enabling environment
   for human rights.

5.2.1.5.  List technical terms that combined create enabling environment
          for human rights

   On the basis of the prior steps the following list of technical terms
   that combined create the enabling environment for human rights, such
   a freedom of expression and freedom of association was drafted.

ten Oever & Cath       Expires September 18, 2016              [Page 15]
Internet-Draft                    hrpcr                       March 2016

     Architectural principles                    Enabling features
       and characteristics                        for user rights

                      /------------------------------------------------\
                      |                                                |
    +=================|=============================+                  |
    =                 |                             =                  |
    =                 |           End to end        =                  |
    =                 |          Reliability        =                  |
    =                 |           Resilience        =  Access as       |
    =                 |        Interoperability     =   Human Right    |
    =    Good enough  |          Transparency       =                  |
    =     principle   |       Data minimization     =                  |
    =                 |  Permissionless innovation  =                  |
    =    Simplicity   |     Graceful degradation    =                  |
    =                 |          Connectivity       =                  |
    =                 |          Heterogeneity      =                  |
    =                 |                             =                  |
    =                 |                             =                  |
    =                 \------------------------------------------------/
    =                                               =
    +===============================================+

5.2.2.  Translation human rights to technical terms

   This analysis aims to translate human rights concepts that impact or
   are impacted by the Internet as follows:

   The combination of content agnosticism, connectivity, security,
   privacy (as defined in [RFC6973] ), and open standards are the
   technical principles that underlay freedom of expression on the
   Internet.

    (     Connectivity          )
   (      Privacy                )
   (      Security               )   = Right to freedom of expression
   (      Content agnosticism    )
   (      Internationalization   )
   (      Censorship resistance  )
   (      Open Standards         )
    (     Heterogeneity support )

   (     Anonymity          )
  (      Privacy             )   = Right to non-discrimination
  (      Pseudonymity        )
  (      Content agnosticism )
   (     Accessibility      )

ten Oever & Cath       Expires September 18, 2016              [Page 16]
Internet-Draft                    hrpcr                       March 2016

  (       Content Agnosticism  )
  (       Security             )  = Right to equal protection

   (        Anonymity       )
  (         Privacy          )   = Right to be presumed innocent
   (        Security        )

   (  Accessibility         )
  (   Internationalization   ) = Right to political participation
  (   Censorship resistance )

   (  Open standards         )
  (   Localization            ) = Right to participate in cultural life,
  (   Internationalization    )             arts and science
   (  Censorship resistance  )

   (  Connectivity         )
  (   Decentralization      )
  (     Censorship resistance   ) = Right to freedom of assembly
  (   Pseudonymity          )                   and association
  (   Anonymity             )
   (  Security             )

      ( Reliability    )
     (  Confidentiality )
     (  Integrity       ) = Right to security
     (  Authenticity    )
      ( Anonymity      )

5.2.2.1.  Map cases of protocols that are adversely impact human rights
          or are enablers thereof

   Taken this information above, the following list of cases of
   protocols that adversely impact or enable human rights was formed.

5.2.3.  IP

   The Internet Protocol version 4, known as 'layer 3' of the internet,
   and specified as a common encapsulation and protocol header, is
   defined by [RFC0791].  The evolution of Internet communications have
   led to continued development in this area, encapsulated in the
   development of version 6 of the protocol in [RFC2460].  In spite of
   this updated protocol, we find that 25 years after the specification

ten Oever & Cath       Expires September 18, 2016              [Page 17]
Internet-Draft                    hrpcr                       March 2016

   of version 6 of the protocol, the older v4 standard continues to
   account for a sizeable majority of internet traffic.

   The internet was designed as a platform for free and open
   communication, most notably encoded in the end-to-end principle, and
   that philosophy is also present in the technical implementation of
   the Internet Protocol.  [RFC3724] While the protocol was designed to
   exist in an environment where intelligence is at the end hosts, it
   has proven to provide sufficient information that a more intelligent
   network core can make policy decisions and enforce policy shaping and
   restricting the communications of end hosts.  These capabilities for
   network control and limitations of the freedom of expression by end
   hosts can be traced back to the IPv4 design, helping us understand
   which technical protocol decisions have led to harm of these human
   rights.

   Two major shifts have occurred to harm freedom of expression through
   misuse of the Internet Protocol.  The first is the network's
   exploitation of the public visibility of the host pairs for all
   communications, and the corresponding ability to discriminate and
   block traffic as a result of that metadata.  The second is the
   selective development of IP options.  Protocol extensions including
   Mobility and Multicasting have proposed alternate communication modes
   and suggest that different forms of assembly could be supported by an
   a robust IP layer.  Instead, the protocol has limited the
   deployability of such extensions by not providing a mechanism for
   appropriate fallback behavior when unrecognized extensions are
   encountered.

5.2.3.1.  Network visibility of Source and Destination

   The IPv4 protocol header contains fixed location fields for both the
   source and destination IP addresses [RFC0791].  These addresses
   identify both the host sending and receiving each message, and allow
   the core network to understand who is talking to whom, and to
   practically limit communication selectively between pairs of hosts.
   Blocking of communication based on the pair of source and destination
   is one of the most common limitations on the ability for hosts to
   communicate today, [caida] and can be seen as a restriction of the
   ability for those hosts to assemble or to consensually express
   themselves.

   Inclusion of an Internet-wide identified source in the IP header is
   not the only possible design, especially since the protocol is most
   commonly implemented over Ethernet networks exposing only link-local
   identifiers.  [RFC0894] A variety of alternative designs including
   source routing, and spoofing of the source IP address are technically
   supported by the protocol, but neither are regularly allowed on the

ten Oever & Cath       Expires September 18, 2016              [Page 18]
Internet-Draft                    hrpcr                       March 2016

   Internet.  While projects like [torproject] provide an alternative
   implementation of anonymity in connections, they have been developed
   in spite of the IPv4 protocol design.

5.2.3.2.  Protocols

   The other major feature of the IP protocol header is that it
   specifies the protocol encapsulated in each message in an easily
   observable form, and does not encourage a design where the
   encapsulated protocol is not available to a network observer.  This
   design has resulted in a proliferation of routers which inspect the
   inner protocol, and has resulted in a stagnation where only the TCP
   and UDP protocols are widely supported across the Internet.  While
   the IP protocol was designed as the entire set of metadata needed for
   routing, subsequent enhanced routers have found value on making
   policy decisions based on the contents of TCP and UDP headers as
   well, and are encoded with the assumption that only these protocols
   will be used for data transfer. [spdy] [RFC4303] defines an encrypted
   encapsulation of additional protocols, but lacks widespread
   deployment and faces the same challenge as any other protocol of
   providing sufficient metadata with each message for routers to make
   positive policy decisions.  Protocols like [RFC4906] have seen
   limited wide-area uptake, and these alternate designs are frequently
   re-implemented on top of UDP. [quic]

5.2.3.3.  Address Translation and Mobility

   A major structural shift in the Internet which has undermined the
   protocol design of IPv4, and has significantly reduced the freedom of
   end users to communicate and assemble in the introduction network
   address translation.  [RFC1631] Network address translation is a
   process whereby organizations and autonomous systems to connect two
   networks by translating the IPv4 source and destination addresses
   between the two.  This process puts the router performing the
   translation into a privileged position, where it can decide which
   subset of communications are worthy of translation, and whether an
   unknown request for communication will be correctly forwarded to a
   host on the other network.

   This process of translation has widespread adoption despite promoting
   a process that goes against the stated end-to-end process of the
   underlying protocol [natusage].  In contrast, the proposed mechanism
   to provide support for mobility and forwarding to clients which may
   move, encoded instead as an option in the IP protocol in [RFC5944],
   has failed to gain traction.  This situation again suggests that the
   compromise made in design of the protocol has resulted in a
   technology which failed to technical encode the freedom of expression
   goals it was designed to promote.

ten Oever & Cath       Expires September 18, 2016              [Page 19]
Internet-Draft                    hrpcr                       March 2016

5.2.4.  DNS

   The Domain Name System (DNS) [RFC1035], provides service discovery
   capabilities, and provides a mechanism to associate human readable
   names with services.  The DNS system is organized around a set of
   independently operated 'Root Servers' run by organizations around the
   web which enact ICANN's policy by answering queries for which
   organizations have been delegated to manage registration under each
   Top Level Domain (TLD).  Top Level domains are maintained and
   determined by ICANN.  These namespaces encompass several classes of
   services.  The initial name spaces including '.Com' and '.Net',
   provide common spaces for expression of ideas, though their policies
   are enacted through US based companies.  Other name spaces are
   delegated to specific nationalities, and may impose limits designed
   to focus speech in those forums both to promote speech from that
   nationality, and to comply with local limits on expression and social
   norms.  Finally, the system has been recently expanded with
   additional generic and sponsored name spaces, for instance '.travel'
   and '.ninja', which are operated by a range of organizations which
   may independently determine their registration policies.

   DNS has significant privacy issues per [RFC7626].  Most notable are
   the lack of encryption to limit the visibility of requests for domain
   resolution from intermediary parties, and a limited deployment of
   DNSSEC to provide authentication, allowing the client to know that
   they have received a correct, "authoritative", answer to a query.
   Together, this situation results in ongoing harm to freedom of
   expression as interference with the operation of DNS has become one
   of the central mechanisms used to block access to websites.  This
   interference limits both the freedom of expression of the publisher
   to offer their content, and the freedom of assembly for clients to
   congregate in a shared virtual space.

   There have been several mechanisms used impose these limitations
   based on the technical design of the DNS protocol.  These have led to
   a number of situations where limits on expression have been imposed
   through subversion of the DNS protocol.  Each of these situations has
   accompanying aspects of protocol design enabling those limitations.

5.2.4.1.  Removal of records

   There have been a number of cases where the records for a domain are
   removed from the name system due to real-world events.  Examples of
   this removal includes the 'seizure' of wikileaks [bbc-wikileaks] and
   the names of illegally operating gambling operations by the United
   States ICE unit, which compelled the US-based registry in charge of
   the .com TLD to hand ownership of those domains over to the
   government.  The same technique has been notably used by Libya to

ten Oever & Cath       Expires September 18, 2016              [Page 20]
Internet-Draft                    hrpcr                       March 2016

   remove sites in violation of "our Country's Law and Morality (which)
   do not allow any kind of pornography or its promotion." [techyum]

   At a protocol level, there is no technical auditing for name
   ownership, as in alternate systems like [namecoin].  As a result,
   there is no ability for users to differentiate seizure from the
   legitimate transfer of name ownership, which is purely a policy
   decision of registrars.  While DNSSEC addresses network distortion
   events described below, it does not tackle this problem, which has
   the cooperation of (or compelled action by) the registry.

5.2.4.2.  Distortion of records

   The most common mechanism by which the DNS system is abused to limit
   freedom of expression is through manipulation of protocol messages by
   the network.  One form occurs at an organizational level, where
   client computers are instructed to use a local DNS resolver
   controlled by the organization.  The DNS resolver will then
   selectively distort responses rather than request the authoritative
   lookup from the upstream system.  The second form occurs through the
   use of deep packet inspection, where all DNS protocol messages are
   inspected by the network, and objectionable content is distorted, as
   in [turkey].

   A notable instance of distortion has occurred in Greece [ververis],
   where a study found evidence of both of deep packet inspection to
   distort DNS replies, and overblocking of content, where ISPs
   prevented clients from resolving the names of domains which they were
   not instructed to do through the governmental order prompting the
   blocking systems there.

   At a protocol level, the effectiveness of these attacks is made
   possible by a lack of authentication in the DNS protocol.  DNSSEC
   provides the ability to determine authenticity of responses when
   used, but it is not regularly checked by resolvers.  DNSSEC is not
   effective when the local resolver for a network is complicit in the
   distortion, for instance when the resolver assigned for use by an ISP
   is the source of injection.  Selective distortion of records has also
   been made possible by the predictable structure of DNS messages,
   which make it computationally easy for a network device to watch all
   passing messages even at high speeds, and the lack of encryption,
   which allows the network to distort only an objectionable subset of
   protocol messages.  Specific distortion mechanisms are discussed
   further in [draft-hall-censorship-tech-01].

ten Oever & Cath       Expires September 18, 2016              [Page 21]
Internet-Draft                    hrpcr                       March 2016

5.2.4.3.  Injection of records

   Responding incorrectly to requests for name lookups is the most
   common mechanism that in-network devices use to limit the ability of
   end users to discover services.  A deviation which accomplishes a
   similar objective, though may be seen as different from a freedom of
   expression perspective, is the injection of incorrect responses to
   queries.  The most prominent example of this behavior occurs in
   China, where requests for lookups of sites which have been deemed
   inappropriate will trigger the network to respond with a bogus
   response, causing the client to ignore the real response when it
   subsequently arrives. [greatfirewall] Unlike the other forms of
   discussion discussed above, injection does not stifle the ability of
   a server to announce it's name, it instead provides another voice
   which answers sooner.  This is effective because without DNSSEC, the
   protocol will respond to whichever answer is received first, without
   listening for subsequent answers.

5.2.5.  HTTP

   The Hypertext Transfer Protocol (HTTP), described in its version 1.1
   in RFC 7230 to 7237, is a request-response application protocol
   developed throughout the 1990s, and factually contributed to the
   exponential growth of the Internet and the inter-connection of
   populations around the world.  Because of its simple design, HTTP has
   become the foundation of most modern Internet platforms and
   communication systems, from websites, to chat systems, and computer-
   to-computer applications.  In its manifestation with the World Wide
   Web, HTTP has radically revolutionized the course of technological
   development and the ways people interact with online content and with
   each other.

   However, HTTP is also a fundamentally insecure protocol, that doesn't
   natively provide encryption properties.  While the definition of the
   Secure Sockets Layer (SSL), and later of Transport Layer Security
   (TLS), also happened during the 1990s, the fact that HTTP doesn't
   mandate the use of such encryption layers to developers and service
   providers, caused a very late adoption.  Only in the middle of the
   2000s we observed big Internet service providers, such as Google,
   starting to provide encrypted access to their web services.

   The lack of sensitivity and understanding of the critical importance
   of securing web traffic incentivized malicious and offensive actors
   to develop, deploy and utilize at large interception systems and
   later active injection attacks, in order to swipe large amounts of
   data, compromise Internet-enabled devices.  The commercial
   availability of systems and tools to perform these types of attacks
   also led to a number of human rights abuses that have been discovered

ten Oever & Cath       Expires September 18, 2016              [Page 22]
Internet-Draft                    hrpcr                       March 2016

   and reported over the years and that painted a dark picture on the
   current state of control over the Internet.

   Generally we can identify in Traffic Interception and Traffic
   Manipulation the two most problematic attacks that can be performed
   against applications employing a clear-text HTTP transport layer.

5.2.5.1.  Traffic Interception

   While we are seeing an increasing trend in the last couple of years
   to employ SSL/TLS as a secure traffic layer for HTTP-based
   applications, we are still far from seeing an ubiquitous use of
   encryption on the World Wide Web. It is important to consider that
   the adoption of SSL/TLS is also a relatively recent phenomena.
   Google introduced an option for its GMail users to navigate with SSL
   only in 2008 [Rideout], and turned SSL on by default later in 2010
   [Schillace].  It took an increasing amount of scandalous security
   breaches and revelations on global surveillance from Edward Snowden
   to have other Internet service providers to follow Google's lead.
   For example, Yahoo enabled SSL/TLS by default on its webmail services
   only towards the end of 2013 [Peterson].

   As we learned through the Snowden's revelations, intelligence
   agencies have been intercepting and collecting unencrypted traffic at
   large for many years.  There are documented examples of such mass
   surveillance programs with GCHQ's TEMPORA and NSA's XKEYSCORE.
   Through these programs NSA/GCHQ have been able to swipe large amounts
   of data including email and instant messaging communications which
   have been transported by the respective providers in clear for years,
   unsuspecting of the pervasiveness and scale of governments' efforts
   and investment into global mass surveillance capabilities.

   However, similar mass interception of unencrypted HTTP communications
   is also often employed at a nation-level by less democratic countries
   by exercising control over state-owned Internet Service Providers
   (ISP) and through the use of commercially available monitoring,
   collection, and censorship equipment.  Over the last few years a lot
   of information has come to public attention on the role and scale of
   a surveillance industry dedicated to develop interception gear of
   different types.  We have several records of such equipment being
   sold and utilized by oppressive regimes in order to monitor entire
   segments of population especially at times of social and political
   distress, uncovering massive human rights abuses.  For example, in
   2013 the group Telecomix revealed that the Syrian regime was making
   use of BlueCoat products in order to intercept clear-text traffic as
   well as to enforce censorship of unwanted content [RSF].  Similarly
   in 2012 it was found that the French Amesys provided the Gaddafi's
   government with equipment able to intercept emails, Facebook traffic,

ten Oever & Cath       Expires September 18, 2016              [Page 23]
Internet-Draft                    hrpcr                       March 2016

   and chat messages ad a country level.  The use of such systems,
   especially in the context of the Arab Spring and of civil uprisings
   against the dictatorships, has caused serious concerns of significant
   human rights abuses in Libya.

5.2.5.2.  Traffic Manipulation

   The lack of a secure transport layer over HTTP connections not only
   exposes the users to interception of the content of their
   communications, but is more and more commonly abused as a vehicle for
   active compromises of computers and mobile devices.  If an HTTP
   session travels in clear over the network, any node positioned at any
   point in the network is able to perform man-in-the-middle attacks and
   observe, manipulate, and hijack the session and modify the content of
   the communication in order to trigger unexpected behavior by the
   application generating the traffic.  For example, in the case of a
   browser the attacker would be able to inject malicious code in order
   to exploit vulnerabilities in the browser or any of its plugins.
   Similarly, the attacker would be able to intercept, trojanize, and
   repackage binary software updates that are very commonly downloaded
   in clear by applications such as word processors and media players.
   If the HTTP session would be encrypted, the tampering of the content
   would not be possible, and these network injection attacks would not
   be successful.

   While traffic manipulation attacks have been long known, documented,
   and prototyped especially in the context of WiFi and LAN networks, in
   the last few years we observed an increasing investment into the
   production and sale of network injection equipment both available
   commercially as well as deployed at scale by intelligence agencies.

   For example we learned from some of the documents provided by Edward
   Snowden to the press, that the NSA has constructed a global network
   injection infrastructure, called QUANTUM, able to leverage mass
   surveillance in order to identify targets of interests and
   subsequently task man-on-the-side attacks to ultimately compromise a
   selected device.  Among other attacks, NSA makes use of an attack
   called QUANTUMINSERT [Haagsma] which intercepts and hijacks an
   unencrypted HTTP communication and forces the requesting browser to
   redirect to a host controlled by NSA instead of the intended website.
   Normally, the new destination would be an exploitation service,
   referred in Snowden documents as FOXACID, which would attempt at
   executing malicious code in the context of the target's browser.  The
   Guardian reported in 2013 that NSA has for example been using these
   techniques to target users of the popular anonymity service Tor
   [Schneier].  The German NDR reported in 2014 that NSA has also been
   using its mass surveillance capabilities to identify Tor users at
   large [Appelbaum].

ten Oever & Cath       Expires September 18, 2016              [Page 24]
Internet-Draft                    hrpcr                       March 2016

   Recently similar capabilities of Chinese authorities have been
   reported as well in what has been informally called the "Great
   Cannon" [Marcak], which raised numerous concerns on the potential
   curb on human rights and freedom of speech due to the increasing
   tighter control of Chinese Internet communications and access to
   information.

   Network injection attacks are also made widely available to state
   actors around the world through the commercialization of similar,
   smaller scale equipment that can be easily acquired and deployed at a
   country-wide level.  Companies like FinFisher and HackingTeam are
   known to have network injection gear within their products portfolio,
   respectively called FinFly ISP and RCS Network Injector
   [Marquis-Boire].  The technology devised and produced by HackingTeam
   to perform network traffic manipulation attacks on HTTP
   communications is even the subject of a patent application in the
   United States [Googlepatent].  Access to offensive technologies
   available on the commercial lawful interception market has been
   largely documented to have lead to human rights abuses and
   illegitimate surveillance of journalists, human rights defenders, and
   political activists in many countries around the world.  Companies
   like FinFisher and HackingTeam have been found selling their products
   to oppressive regimes with little concern for bad human rights
   records [Collins].  While network injection attacks haven't been the
   subject of much attention, they do enable even unskilled attackers to
   perform silent and very resilient compromises, and unencrypted HTTP
   remains one of the main vehicles.

5.2.6.  XMPP

   The Extensible Messaging and Presence Protocol (XMPP), specified in
   [RFC6120], provides a standard for interactive chat messaging, and
   has evolved to encompass interoperable text, voice, and video chat.
   The protocol is structured as a federated network of servers, similar
   to email, where users register with a local server which acts one
   their behalf to cache and relay messages.  This protocol design has
   many advantages, allowing servers to shield clients from denial of
   service and other forms of retribution for their expression, and
   designed to avoid central entities which could control the ability to
   communicate or assemble using the protocol.

   None-the-less, there are plenty of aspects of the protocol design of
   XMPP which shape the ability for users to communicate freely, and to
   assembly through the protocol.  The protocol also has facets that may
   stifle speech as users self-censor for fear of surveillance, or find
   themselves unable to express themselves naturally.

ten Oever & Cath       Expires September 18, 2016              [Page 25]
Internet-Draft                    hrpcr                       March 2016

5.2.6.1.  User Identification

   The XMPP specification dictates that clients are identified with a
   resource (node@domain/home [1] / node@domain/work [2]) to distinguish
   the conversations to specific devices.  While the protocol does not
   specify that the resource must be exposed by the client's server to
   remote users, in practice this has become the default behavior.  In
   doing so, users can be tracked by remote friends and their servers,
   who are able to monitor presence not just of the user, but of each
   individual device the user logs in with.  This has proven to be
   misleading to many users, [pidgin] since many clients only expose
   user level rather than device level presence.  Likewise, user
   invisibility so that communication can occur while users don't notify
   all buddies and other servers of their availability is not part of
   the formal protocol, and has only been added as an extension within
   the XML stream rather than enforced by the protocol.

5.2.6.2.  Surveillance of Communication

   The XMPP protocol specifies the standard by which communication of
   channels may be encrypted, but it does not provide visibility to
   clients of whether their communications are encrypted on each link.
   In particular, even when both clients ensure that they have an
   encrypted connection to their XMPP server to ensure that their local
   network is unable to read or disrupt the messages they send, the
   protocol does not provide visibility into the encryption status
   between the two servers.  As such, clients may be subject to
   selective disruption of communications by an intermediate network
   which disrupts communications based on keywords found through Deep
   Packet Inspection.  While many operators have commited to only
   establishing encrypted links from their servers in recognition of
   this vulnerability, it remains impossible for users to audit this
   behavior and encrypted connections are not required by the protocol
   itself [xmppmanifesto].

   In particular, section 13.14 of the protocol specification [RFC6120]
   explicitly acknowledges the existence of a downgrade attack where an
   adversary controlling an intermediate network can force the inter
   domain federation between servers to revert to a non-encrypted
   protocol were selective messages can then be disrupted.

5.2.6.3.  Group Chat Limitations

   Group chat in the XMPP protocol is defined as an extension within the
   XML specification of the XMPP protocol (https://xmpp.org/extensions/
   xep-0045.html).  However, it is not encoded or required at a protocol
   level, and not uniformly implemented by clients.

ten Oever & Cath       Expires September 18, 2016              [Page 26]
Internet-Draft                    hrpcr                       March 2016

   The design of multi-user chat in the XMPP protocol suffers from
   extending a protocol that was not designed with assembly of many
   users in mind.  In particular, in the federated protocol provided by
   XMPP, multi-user communities are implemented with a distinguished
   'owner', who is granted control over the participants and structure
   of the conversation.

   Multi-user chat rooms are identified by a name specified on a
   specific server, so that while the overall protocol may be federated,
   the ability for users to assemble in a given community is moderated
   by a single server.  That server may block the room and prevent
   assembly unilaterally, even between two users neither of whom trust
   or use that server directly.

5.2.7.  Peer to Peer

   Peer-to-Peer (P2P) is a network architecture (defined in [RFC7574])
   in which all the participant nodes are equally responsible engaged
   into the storage and dissemination of information.  A P2P network is
   a logical overlay that lives on top of the physical network, and
   allows nodes (or "peers") participating to it to establish contact
   and exchange information directly from one to each other.  The
   implementation of a P2P network may very widely: it may be structured
   or unstructured, and it may implement stronger or weaker
   cryptographic and anonymity properties.  While its most common
   application has traditionally been file-sharing (and other types of
   content delivery systems), P2P is increasingly becoming a popular
   architecture for networks and applications that require (or
   encourage) decentralization.  A prime example is Bitcoin (and similar
   cryptocurrencies), as well as Skype, Spotify and other proprietary
   multimedia applications.

   In a time of heavily centralized online services, peer-to-peer is
   often seen as an alternative, more democratic, and resistant
   architecture that displaces structures of control over data and
   communications and delegates all peers equally to be responsible for
   the functioning, integrity, and security of the data.  While in
   principle peer-to-peer remains critical to the design and development
   of future content distribution, messaging, and publishing systems, it
   poses numerous security and privacy challenges which are mostly
   delegated to individual developers to recognize, analyze, and solve
   in each implementation of a given P2P network.

5.2.7.1.  Network Poisoning

   Since content, and in some occasions peer lists, are safeguarded and
   distributed by its members, P2P networks are prone to what are
   generally defined as "poisoning attacks".  Poisoning attacks might be

ten Oever & Cath       Expires September 18, 2016              [Page 27]
Internet-Draft                    hrpcr                       March 2016

   directed directly at the data that is being distributed, for example
   by intentionally corrupting it, or at the index tables used to
   instruct the peers where to fetch the data, or at routing tables,
   with the attempt of providing connecting peers with lists of rogue or
   non-existing peers, with the intention to effectively cause a Denial
   of Service on the network.

5.2.7.2.  Throttling

   Peer-to-Peer traffic (and BitTorrent in particular) represents a high
   percentage of global Internet traffic and it has become increasingly
   popular for Internet Service Providers to perform throttling of
   customers lines in order to limit bandwidth usage [torrentfreak1] and
   sometimes probably as an effect of the ongoing conflict between
   copyright holders and file-sharing communities [wikileaks].

   Throttling the peer-to-peer traffic makes some uses of P2P networks
   ineffective and it might be coupled with stricter inspection of
   users' Internet traffic through Deep Packet Inspection techniques
   which might pose additional security and privacy risks.

5.2.7.3.  Tracking and Identification

   One of the fundamental and most problematic issues with traditional
   peer-to-peer networks is a complete lack of anonymization of its
   users.  For example, in the case of BitTorrent, all peers' IP
   addresses are openly available to the other peers.  This has lead to
   an ever-increasing tracking of peer-to-peer and file-sharing users
   [ars].  As the geographical location of the user is directly exposed,
   and so could be his identity, the user might become target of
   additional harassment and attacks, being of physical or legal nature.
   For example, it is known that in Germany law firms have made
   extensive use of peer-to-peer and file-sharing tracking systems in
   order to identify downloaders and initiate legal actions looking for
   compensations [torrentfreak2].

   It is worth nothing that there are varieties of P2P networks that
   implement cryptographic practices and that introduce anonymization of
   its users.  Such implementations proved to be successful in resisting
   censorship of content, and tracking of the network peers.  A primary
   example is FreeNet [freenet1], a free software application designed
   to significantly increase the difficulty of users and content
   identification, and dedicated to foster freedom of speech online
   [freenet2].

ten Oever & Cath       Expires September 18, 2016              [Page 28]
Internet-Draft                    hrpcr                       March 2016

5.2.7.4.  Sybil Attacks

   In open-membership P2P networks, a single attacker can pretend to be
   many participants, typically by creating multiple fake identities of
   whatever kind the P2P network uses [Douceur].  Attackers can use
   Sybil attacks to bias choices the P2P network makes collectively
   toward the attacker's advantage, e.g., by making it more likely that
   a particular data item (or some threshold of the replicas or shares
   of a data item) are assigned to attacker-controlled participants.  If
   the P2P network implements any voting, moderation, or peer review-
   like functionality, Sybil attacks may be used to "stuff the ballots"
   toward the attacker's benefit.  Companies and governments can use
   Sybil attacks on discussion-oriented P2P systems for "astroturfing"
   or creating the appearance of mass grassroots support for some
   position where there is none in reality.

5.2.7.5.  Conclusions

   Encrypted P2P and Anonymous P2P networks already emerged and provided
   viable platforms for sharing material, publish content anonymously,
   and communicate securely [bitmessage].  If adopted at large, well-
   designed and resistant P2P networks might represent a critical
   component of a future secure and distributed Internet, enabling
   freedom of speech and freedom of information at scale.

5.2.8.  Virtual Private Network

5.2.8.1.  Introduction

   A Virtual Private Network (VPN) is a point-to-point connection that
   enables two computers to communicate over an encrypted tunnel.  There
   are multiple implementations and protocols used in provisioning a
   VPN, and they generally diversify by encryption protocol or
   particular requirements, most commonly in proprietary and enterprise
   solutions.  VPNs are used commonly either to enable some devices to
   communicate through peculiar network configurations, or in order to
   use some privacy and security properties in order to protect the
   traffic generated by the end user; or both.  VPNs have also become a
   very popular technology among human rights defenders, dissidents, and
   journalists worldwide to avoid local illegitimate wiretapping and
   eventually also to circumvent censorship.  Among human rights
   defenders VPNs are often debated as a potential alternative to Tor or
   other anonymous networks.  Such comparison is misleading, as some of
   the privacy and security properties of VPNs are often misunderstood
   by less tech-savvy users, which could ultimately lead to unintended
   problems.

ten Oever & Cath       Expires September 18, 2016              [Page 29]
Internet-Draft                    hrpcr                       March 2016

   As VPNs increased in popularity, commercial VPN providers have
   started growing in business and are very commonly picked by human
   rights defenders and people at risk, as they are normally provided
   with an easy-to-use service and sometimes even custom applications to
   establish the VPN tunnel.  Not being able to control the
   configuration of the network, and even less so the security of the
   application, assessing the general privacy and security state of
   common VPNs is very hard.  Often such services have been discovered
   leaking information, and their custom applications have been found
   flawed.  While Tor and similar networks receive a lot of scrutiny
   from the public and the academic community, commercial or non-
   commercial VPN networks are way less analyzed and understood, and it
   might be valuable to establish some standards to guarantee a minimal
   level of privacy and security to those who need them the most.

5.2.8.2.  False sense of Anonymity

   One of the common misconception among users of VPNs is the level of
   anonymity VPN can provide.  This sense of anonymity can be betrayed
   by a number of attacks or misconfigurations of the VPN provider.  It
   is important to remember that, contrarily to Tor and similar systems,
   VPN was not designed to provide anonymity properties.  From a
   technical point of view, the VPN might leak identifiable information,
   or might be subject of correlation attacks that could expose the
   originating address of the connecting user.  Most importantly, it is
   vital to understand that commercial and non-commercial VPN providers
   are bound by the law of the jurisdiction they reside in or in which
   their infrastructure is located, and they might be legally forced to
   turn over data of specific users if legal investigations or
   intelligence requirements dictate so.  In such cases, if the VPN
   providers retain logs, it is possible that the information of the
   user is provided to the user's adversary and leads to his or her
   identification.

5.2.8.3.  Logging

   With VPN being point-to-point connections, the service providers are
   in fact able to observe the original location of the connecting users
   and they are able to track at what time they started their session
   and eventually also to which destinations they're trying to connect
   to.  If the VPN providers retain logs for long enough, they might be
   forced to turn over the relevant data or they might be otherwise
   compromised, leading to the same data getting exposed.  A clear log
   retaining policy could be enforced, but considering that countries
   enforce very different levels of data retention policies, VPN
   providers should at least be transparent on what information do they
   store and for how long is being kept.

ten Oever & Cath       Expires September 18, 2016              [Page 30]
Internet-Draft                    hrpcr                       March 2016

5.2.8.4.  3rd Party Hosting

   VPN providers very commonly rely on 3rd parties to provision the
   infrastructure that is later going to be used to run VPN endpoints.
   For example, they might rely on external dedicated server hosting
   providers, or on uplink providers.  In those cases, even if the VPN
   provider itself isn't retaining any significant logs, the information
   on the connecting users might be retained by those 3rd parties
   instead, introducing an additional collection point for the
   adversary.

5.2.8.5.  IPv6 Leakage

   Some studies proved that several commercial VPN providers and
   applications suffer of critical leakage of information through IPv6
   due to improper support and configuration [PETS2015VPN].  This is
   generally caused by a lack of proper configuration of the client's
   IPv6 routing tables.  Considering that most popular browsers and
   similar applications have been supporting IPv6 by default, if the
   host is provided with a functional IPv6 configuration, the traffic
   that is generated might be leaked if the VPN application isn't
   designed to manipulate such traffic properly.

5.2.8.6.  DNS Leakage

   Similarly, VPN services that aren't handling DNS requests and are not
   running DNS servers of their own, might be prone to DNS leaking which
   might not only expose sensitive information on the activity of the
   user, but could also potentially lead to DNS hijacking attacks and
   following compromises.

5.2.8.7.  Traffic Correlation

   As revelations of mass surveillance have been growing in the press,
   additional details on attacks on secure Internet communications have
   come to the public's attention.  Among these, VPN appeared to be a
   very interesting target for attacks and collection efforts.  Some
   implementations of VPN appear to be particularly vulnerable to
   identification and collection of key exchanges which, some Snowden
   documents revealed, are systematically collected and stored for
   future reference.  The ability of an adversary to monitor network
   connections at many different points over the Internet, can allow
   them to perform traffic correlation attacks and identify the origin
   of certain VPN traffic by cross referencing the connection time of
   the user to the endpoint and the connection time of the endpoint to
   the final destination.  These types of attacks, although very
   expensive and normally only performed by very resourceful
   adversaries, have been documented [spiegel] to be already in practice

ten Oever & Cath       Expires September 18, 2016              [Page 31]
Internet-Draft                    hrpcr                       March 2016

   and could completely vanify the use of a VPN and ultimately expose
   the activity and the identity of a user at risk.

5.2.9.  HTTP Status Code 451

   Every Internet user has run into the '404 Not Found' Hypertext
   Transfer Protocol (HTTP) status code when trying, and failing, to
   access a particular website.  It is a response status that the server
   sends to the browser, when the server cannot locate the URL. '403
   Forbidden' is another example of this class of code signals that
   gives users information about what is going on.  In the '403' case
   the server can be reached, but is blocking the request because the
   user is trying to access content forbidden to them.  This can be
   because the specific user is not allowed access to the content (like
   a government employee trying to access pornography on a work-
   computer) or because access is restricted to all users (like social
   network sites in certain countries).  As surveillance and censorship
   of the Internet is becoming more commonplace, voices were raised at
   the IETF to introduce a new status code that indicates when something
   is not available for 'legal reasons' (like censorship):

   The 451 status code would allow server operators to operate with
   greater transparency in circumstances where issues of law or public
   policy affect their operation.  This transparency may be beneficial
   both to these operators and to end-users [Bray].

   The status code would be named '451', a reference to Bradbury's
   famous novel on censorship

   During the IETF meeting in Dallas, there was discussion about the
   usefulness of '451'.  The main tension revolved around the lack of an
   apparent machine-readable technical use of the information.  The
   extent to which '451' is just 'political theatre' or whether it has a
   concrete technical use was heatedly debated.  Some argued that 'the
   451 status code is just a status code with a response body' others
   said it was problematic because 'it brings law into the picture'.
   Again others argued that it would be useful for individuals, or
   organizations like the 'Chilling Effects' project, crawling the web
   to get an indication of censorship (IETF discussion on '451' -
   author's field notes March 2015).  There was no outright objection
   during the Dallas meeting against moving forward on status code
   '451', and on December 18, 2015 the Internet Engineering Steering
   Group approved publication of 'An HTTP Status Code to Report Legal
   Obstacles'.  It is still in the process of becoming an RFC, but could
   effectively be used from the day of approval.

   What is interesting about this particular case is that not only
   technical arguments but also the status code's outright potential

ten Oever & Cath       Expires September 18, 2016              [Page 32]
Internet-Draft                    hrpcr                       March 2016

   political use for civil society played a substantial role in shaping
   the discussion, and the decision to move forward with this
   technology.

   It is however important to note that 451 is not a solution to detect
   all occasions of censorship.  A large swath of Internet filtering
   occurs in the network rather than the server itself.  For these forms
   of censorship 451 plays a limited role, as the servers will not be
   able to send the code, because they haven't received the requests (as
   is the case with servers with resources blocked by the Chinese Golden
   shield).  Such filtering regimes are unlikely to voluntarily inject a
   451 status code.  The use of 451 is most likely to apply in the case
   of cooperative, legal versions of content removal resulting from
   requests to providers.  One can think of content that is removed or
   blocked for legal reasons, like copyright infringement, gambling
   laws, child abuse, et cetera.  The major use case is thus clearly on
   the Web server itself, not the network.  Large Internet companies and
   search engines are constantly asked to censor content in various
   jurisdictions. 451 allows this to be easily discovered, for instance
   by initiatives like the Lumen Database.  In the case of adversarial
   blocking done by a filtering entity on the network 451 is less
   useful.

   Overall, the strength of 451 lies in its ability to provide
   transparency by giving the reason for blocking, and giving the end-
   user the ability to file a complaint.  It allows organizations to
   easily measure censorship in an automated way, and prompts the user
   to access the content via another path (e.g.  TOR, VPNs) when (s)he
   encounters the 451 status code.

   Status code 451 impact human rights by making censorship more
   transparent and measurable.  The status code increases transparency
   both by signaling the existence of censorship (instead of a much more
   broad HTTP error message like HTTP status code 404) as well as
   providing details of the legal restriction, which legal authority is
   imposing it, and what class of resources it applies to.  This
   empowers the user to seek redress.

5.2.10.  Middleboxes

   On the current Internet, transparency on how packets reach a
   destination is no longer a given.  This is due to the increased
   presence of firewalls, spam filters, and network address translators
   networks (NATs) - or middleboxes as these hosts are often called -
   that make use of higher-layer fields to function [Walfish].  This
   development is contentious.  The debate also unfolded at the IETF,
   specifically at the Session Protocol Underneath Datagrams (SPUD)
   Birds of a Feather (BOF) meeting held at the IETF conference in March

ten Oever & Cath       Expires September 18, 2016              [Page 33]
Internet-Draft                    hrpcr                       March 2016

   2015.  The discussion at the BOF focused on questions about adding
   meta-data, or other information to traffic flows, to enable the
   sharing of information with middleboxes in that flow.  During the
   sessions two competing arguments were distilled.  On the one hand
   adding additional data would allow for network optimization, and
   hence improve traffic carriage.  On the other hand, there are risks
   of information leakage and other privacy and security concerns.

   Middleboxes, and the protocols guiding them, influence individuals'
   ability to communicate online freely and privately.  Repeatedly
   mentioned in the discussion was the danger of censorship that comes
   with middleboxes, and the IETF's role to prevent such censorship from
   happening.  Middleboxes are becoming a proxy for the debate on the
   extent to which commercial interests are a valid reason to undermine
   the end-to-end principle.  The potential for abuse and censoring, and
   thus ultimately the impact of middleboxes on the Internet as a place
   of unfiltered, unmonitored freedom of speech, is real.  It is
   impossible to make any definitive statements about the direction the
   debate on middleboxes will take at the IETF.  The opinions expressed
   in the SPUD BOF and by the various interviewees indicate that a
   majority of engineers are trying to mitigate the negative effects of
   middleboxes on freedom of speech, but their ability to act is limited
   by their larger commercial context that is expanding the use of
   middleboxes.

5.2.11.  DDOS attacks

   Are Distributed Denial of Service (DDoS) attacks a legitimate form of
   online protest protected by the right to freedom of speech and
   association?  Can they be seen as the equivalent to 'million-(wo)men
   marches', or sit-ins?  Or are they a threat to freedom of expression
   and access to information, by limiting access to websites and in
   certain cases the freedom of speech of others?  These questions are
   crucial in our day and age, where political debates, civil
   disobedience and other forms of activism are increasingly moving
   online.

   Many individuals, not excluding IETF engineers, have argued that DDoS
   attacks are fundamentally against freedom of speech.  Technically
   DDoS attacks are when multiple computers overload the bandwidth or
   resources of a website (or other system) by flooding it with traffic,
   causing it to temporarily stop being available to users.  In their
   2010 report Zuckerman et al argue that DDoS attacks are a bad thing
   because they are increasingly used by governments to attack and
   silence critics.  Their research demonstrates that in many countries
   independent media outlets and human rights organizations are the
   victim of DDoS attacks, which are directly or indirectly linked to
   their governments.  These types of attacks are particularly

ten Oever & Cath       Expires September 18, 2016              [Page 34]
Internet-Draft                    hrpcr                       March 2016

   complicated because attribution is difficult, creating a situation in
   which governments can effectively censor content, while being able to
   deny involvement in the attacks [Zuckerman].  DDoS attacks can thus
   stifle freedom of expression, complicate the ability of independent
   media and human rights organizations to exercise their right to
   (online) freedom of association, while facilitating the ability of
   governments to censor dissent.  When it comes to comparing DDoS
   attacks to protests in offline life, it is important to remember that
   only a limited number of DDoS attacks involved solely willing
   participants.  In most cases, the clients are hacked computers of
   unrelated parties that have not consented to being part of a DDoS
   (for exceptions see Operation Abibil [Abibil] or the Iranian Green
   Movement DDoS [GreenMovement]).

   In addition, DDoS attacks are increasingly used as an extortion
   tactic, with criminals flooding a website - rendering it inaccessible
   - until the owner pays them a certain amount of money to stop the
   attack.  The costs of mitigating such attacks, either by improving
   security to prevent them or paying off the attackers, ends up being
   paid by the consumer.

   All of these issues seem to suggest that the IETF should try to
   ensure that their protocols cannot be used for DDoS attacks.
   Decreasing the number of vulnerabilities in the network stacks of
   routers or computers, reducing flaws in HTTPS implementations, and
   depreciating non-secure HTTP protocols could address this issue.  The
   IETF can clearly play a role in bringing about some of these changes,
   and has indicated in [RFC7258] its commitment to mitigating
   'pervasive monitoring (...) in the design of IETF protocols, where
   possible.'  This means the use of encryption should become standard.
   Effectively, for the web this means standardized use of HTTPS.  The
   IETF could redirect its work such that HTPPS becomes part-and-parcel
   of its standards.  However, next to the various technical trade-offs
   that this might lead to it is important to consider that DDoS attacks
   are sometimes seen as a method for exercising freedom of speech.

   DDoS although disruptive, and silencing at times, can also enable as
   protest and speech.  Or as Sauter [Sauter] argues: 'though DDoS as a
   tactic is still relatively novel, it fits within a centuries- long
   tradition of breaking laws and disrupting business as usual to make a
   political point.  These actions aren't simply disruption for
   disruption's sake.  Rather they serve to help the activist or
   dissenter to direct the attention of the public through the
   interpolation of difference into routine.' (30-31).  An often heard
   argument against DDoS attacks is that you cannot construe it as a
   means to exercise your right to freedom of speech, when the means
   used effectively impede the right of the party on the receiving end
   of the attack to exercise that same right.  The problem with this

ten Oever & Cath       Expires September 18, 2016              [Page 35]
Internet-Draft                    hrpcr                       March 2016

   line of argumentation is that it conveniently ignores the fact that
   online DDoS attacks are often one of the few effective ways for
   activists to gain the attention of the media, the government or other
   parties of interest.  Simply putting up a website for a cause won't
   garner the same amount of attention as directly confronting the issue
   via the website of the individual or organization at the heart of the
   issue.  The ability of activists to do so should be protected,
   especially considering the fact that as Sauter (2014:4) explains:
   'Collectively, we have allowed the construction of an entire public
   sphere, the Internet, which by accidents of evolution and design, has
   none of the inherent free speech guarantees we have come to expect.
   Dissenting voices are pushed out of the paths of potential audiences,
   effectively removing them from the public discourse.  There is
   nowhere online for an activist to stand with her friends and her
   sign.  She might set up a dedicated blog--which may or may not ever
   be read--but it is much harder for her to stand collectively with
   others against a corporate giant in the online space.'  Although the
   Internet is often compared to public space, it is not.  Rather the
   opposite.  The Internet is almost entirely owned by private entities.
   And the IETF plays a crucial role in developing this privatized
   commercialized Internet.

   From a legal and political perspective, the IETF does not have the
   legitimacy to determine when a DDoS is legitimate (in legal or
   political terms).  It does not have the capability to make this
   judgment as a matter of public policy and subsequently translate it
   to code.  Nor should the IETF try to do so.  From a technical
   perspective, the difference between a 'legitimate' and 'illegitimate'
   DDoS attack is meaningless because it would be extremely difficult
   for the IETF to engineer a way to detect that difference.  In
   addition, there is a need for the IETF to be consistent in the face
   of attacks (an attack is an attack is an attack) to maintain the
   viability of the network.  Arguing that some DDoS attacks should be
   allowed, based on the motivation of the attackers complicates the
   work of the IETF.  Because it approaches PM regardless of the
   motivation of the attackers (see [RFC7258]) for reasoning), taking
   the motivation of the attackers into account for DDoS would
   indirectly undermine the ability of the IETF to protect the right to
   privacy because it introduces an element of inconsistency into how
   the IETF deals with attacks.

   David Clark recently published a paper warning that the future of the
   Internet is in danger.  He argues that the private sector control
   over the Internet is too strong, limiting the myriad of ways in which
   it can be used [Daedalus], including for freedom of speech.  But just
   because freedom of speech, dissent, and protest are human rights, and
   DDoS is a potential expression of those rights, doesn't mean that
   DDoS in and of itself is a right.  To widen the analogy, just because

ten Oever & Cath       Expires September 18, 2016              [Page 36]
lt;kill-session> operation does not directly alter a datastore.
   However, it allows one session to disrupt another session that is
   editing a datastore.

   Access to the <kill-session> protocol operation is denied by default.
   The "exec-default" leaf does not apply to this protocol operation.
   Access control rules must be explicitly configured to allow
   invocation by a non-recovery session.

3.3.  Model Components

   This section defines the conceptual components related to the access
   control model.

3.3.1.  Users

   A "user" is the conceptual entity that is associated with the access
   permissions granted to a particular session.  A user is identified by
   a string that is unique within the server.

   As described in [RFC6241], the username string is derived from the
   transport layer during session establishment.  If the transport layer
   cannot authenticate the user, the session is terminated.

3.3.2.  Groups

   Access to a specific NETCONF protocol operation is granted to a
   session, associated with a group, not a user.

   A group is identified by its name.  All group names are unique within
   the server.

   Access control is applied at the level of groups.  A group contains
   zero or more group members.

   A group member is identified by a username string.

   The same user can be a member of multiple groups.

3.3.3.  Emergency Recovery Session

   The server MAY support a recovery session mechanism, which will
   bypass all access control enforcement.  This is useful for
   restricting initial access and repairing a broken access control
   configuration.

Bierman & Bjorklund      Expires April 29, 2018                [Page 19]
Internet-Draft                    NACM                      October 2017

3.3.4.  Global Enforcement Controls

   There are five global controls that are used to help control how
   access control is enforced.

3.3.4.1.  enable-nacm Switch

   A global "enable-nacm" on/off switch is provided to enable or disable
   all access control enforcement.  When this global switch is set to
   "true", then all requests are checked against the access control
   rules and only permitted if configured to allow the specific access
   request.  When this global switch is set to "false", then all access
   requested are permitted.

3.3.4.2.  read-default Switch

   An on/off "read-default" switch is provided to enable or disable
   default access to receive data in replies and notifications.  When
   the "enable-nacm" global switch is set to "true", then this global
   switch is relevant if no matching access control rule is found to
   explicitly permit or deny read access to the requested datastore data
   or notification event type.

   When this global switch is set to "permit" and no matching access
   control rule is found for the datastore read or notification event
   requested, then access is permitted.

   When this global switch is set to "deny" and no matching access
   control rule is found for the datastore read or notification event
   requested, then access is denied.

3.3.4.3.  write-default Switch

   An on/off "write-default" switch is provided to enable or disable
   default access to alter configuration data.  When the "enable-nacm"
   global switch is set to "true", then this global switch is relevant
   if no matching access control rule is found to explicitly permit or
   deny write access to the requested datastore data.

   When this global switch is set to "permit" and no matching access
   control rule is found for the datastore write requested, then access
   is permitted.

   When this global switch is set to "deny" and no matching access
   control rule is found for the datastore write requested, then access
   is denied.

Bierman & Bjorklund      Expires April 29, 2018                [Page 20]
Internet-Draft                    NACM                      October 2017

3.3.4.4.  exec-default Switch

   An on/off "exec-default" switch is provided to enable or disable
   default access to execute protocol operations.  When the "enable-
   nacm" global switch is set to "true", then this global switch is
   relevant if no matching access control rule is found to explicitly
   permit or deny access to the requested NETCONF protocol operation.

   When this global switch is set to "permit" and no matching access
   control rule is found for the NETCONF protocol operation requested,
   then access is permitted.

   When this global switch is set to "deny" and no matching access
   control rule is found for the NETCONF protocol operation requested,
   then access is denied.

3.3.4.5.  enable-external-groups Switch

   When this global switch is set to "true", the group names reported by
   the transport layer for a session are used together with the locally
   configured group names to determine the access control rules for the
   session.

   When this switch is set to "false", the group names reported by the
   transport layer are ignored by NACM.

3.3.5.  Access Control Rules

   There are four types of rules available in NACM:

   module rule:  controls access for definitions in a specific YANG
      module, identified by its name.

   protocol operation rule:  controls access for a specific protocol
      operation, identified by its YANG module and name.

   data node rule:  controls access for a specific data node, identified
      by its path location within the conceptual XML document for the
      data node.

   notification rule:  controls access for a specific notification event
      type, identified by its YANG module and name.

3.4.  Access Control Enforcement Procedures

   There are seven separate phases that need to be addressed, four of
   which are related to the NETCONF message processing model
   (Section 3.1.3).  In addition, the initial startup mode for a NETCONF

Bierman & Bjorklund      Expires April 29, 2018                [Page 21]
Internet-Draft                    NACM                      October 2017

   server, session establishment, and "access-denied" error-handling
   procedures also need to be considered.

   The server MUST use the access control rules in effect at the time it
   starts processing the message.  The same access control rules MUST
   stay in effect for the processing of the entire message.

3.4.1.  Initial Operation

   Upon the very first startup of the NETCONF server, the access control
   configuration will probably not be present.  If it isn't, a server
   MUST NOT allow any write access to any session role except a recovery
   session.

   Access rules are enforced any time a request is initiated from a user
   session.  Access control is not enforced for server-initiated access
   requests, such as the initial load of the running configuration
   datastore, during bootup.

3.4.2.  Session Establishment

   The access control model applies specifically to the well-formed XML
   content transferred between a client and a server after session
   establishment has been completed and after the <hello> exchange has
   been successfully completed.

   Once session establishment is completed and a user has been
   authenticated, the transport layer reports the username and a
   possibly empty set of group names associated with the user to the
   NETCONF server.  The NETCONF server will enforce the access control
   rules, based on the supplied username, group names, and the
   configuration data stored on the server.

3.4.3.  "access-denied" Error Handling

   The "access-denied" error-tag is generated when the access control
   system denies access to either a request to invoke a protocol
   operation or a request to perform a particular access operation on
   the configuration datastore.

   A server MUST NOT include any information the client is not allowed
   to read in any <error-info> elements within the <rpc-error> response.

3.4.4.  Incoming RPC Message Validation

   The diagram below shows the basic conceptual structure of the access
   control processing model for incoming NETCONF <rpc> messages within a
   server.

Bierman & Bjorklund      Expires April 29, 2018                [Page 22]
Internet-Draft                    NACM                      October 2017

                   Internet-Draft                    hrpcr                       March 2016

   the Internet is a medium through which the right to freedom of
   expression can be exercised does not make access to the Internet or
   specific ICTs or NCTs a human right.  Uses of DDoS might or might not
   be legitimate for political reasons, but the IETF has no means or
   methods to assess this, and in general enabling DDoS would mean a
   deterioration of the network and thus freedom of expression.

   In summation, the IETF cannot be expected to take a moral stance on
   DDoS attacks, or create protocols to enable some attacks and inhibit
   others.  But what it can do is critically reflect on its role in
   creating a commercialized Internet without a defacto public space or
   inherent protections for freedom of speech.

5.3.  Model for developing human rights protocol considerations

   Having established how human rights relate to standards and
   protocols, a common vocabulary of technical concepts that impact
   human rights and how these technical concept can be combined to
   ensure that the Internet remains an enabling environment for human
   rights means the contours of a model for developing human rights
   protocol considerations has taken shape.  This subsection provides
   the last step by detailing how the technical concepts identified
   above relate to human rights, and what questions engineers should ask
   themselves when developing or improving protocols.

5.3.1.  Human rights threats

   The human rights threats on the Internet come in a myriad of forms.
   Protocols and standards can harm or enable the right to freedom of
   expression, right to non-discrimination, right to equal protection,
   right to be presumed innocence, right to participate in cultural
   life, arts and science, right to freedom of assembly and association,
   and the right to security.  An end-user who is denied access to
   certain services, data or websites may be unable to disclose vital
   information about the malpractices of a government or other
   authority.  A person whose communications are monitored may be
   prevented from exercising their right to freedom of association.  In
   a worst-case scenario, protocols that leak information can lead to
   physical danger.  A realistic example to consider is when opposition
   leaders in totalitarian regimes are subjected to torture on the basis
   of information gathered by the regime through information leakage in
   protocols.

   This sections details several 'common' threats to human rights,
   indicating how each of these can lead to human rights violations/
   harms and present several examples of how these threats to human
   rights materialize on the Internet.  This threat modeling is inspired
   by [RFC6973] Privacy Considerations for Internet Protocols, which

ten Oever & Cath       Expires September 18, 2016              [Page 37]
Internet-Draft                    hrpcr                       March 2016

   bases itself on security threat analysis.  This method is by no means
   a perfect solution for assessing human rights risks in Internet
   protocols and systems; it is however the best approach currently
   available.  Certain human rights threats are indirectly considered in
   Internet protocols as part of the standard privacy and security
   considerations [RFC3552].  Others suggested are tailored specifically
   to human rights, and represents considerations not currently
   considered in other RFCs.

   Many threats, enablers and risks are linked to different rights.
   This is not unsurprising if one takes into account that human rights
   are interrelated, interdependent and universal.  Here however we're
   not discussing all human rights because not all human rights are
   relevant to ICTs in general and protocols and standards in
   particular.  This is by no means an attempt to cherry picks rights,
   if other rights seem relevant, please contact the authors and/or the
   hrpc mailinglist.

5.3.2.  Guidelines for human rights considerations

   This section provides guidance for document authors in the form of a
   questionnaire about a protocol being designed.  The questionnaire may
   be useful at any point in the design process, particularly after
   document authors have developed a high-level protocol model as
   described in [RFC4101].

   Note that the guidance provided in this section does not recommend
   specific practices.  The range of protocols developed in the IETF is
   too broad to make recommendations about particular uses of data or
   how human rights might be balanced against other design goals.
   However, by carefully considering the answers to each question
   mentioned under 7.3, document authors should be able to produce a
   comprehensive analysis that can serve as the basis for discussion of
   whether the protocol adequately protects against human rights
   threats.  This guidance is meant to help the thought process of a
   human rights analysis; it does not provide specific directions for
   how to write a human rights protocol considerations section
   (following the example set in [RFC6973]).

5.3.2.1.  Technical concepts as they relate to human rights

5.3.2.1.1.  Connectivity

   Does your protocol honor the end-to-end principle?

   Impacts:

   -  Right to freedom of expression

ten Oever & Cath       Expires September 18, 2016              [Page 38]
Internet-Draft                    hrpcr                       March 2016

   -  Right to freedom of assembly and association

5.3.2.1.2.  Privacy

   Did you have a look at the Guidelines in the Privacy Considerations
   for Internet Protocols [RFC6973] section 7?  Does your protocol in
   any way impact the confidentiality of protocol metadata?  Does your
   protocol countering traffic analysis, or data minimisation?

   Impacts:

   -  Right to freedom of expression

   -  Right to non-discrimination

   -  Right to be presumed innocent

5.3.2.1.3.  Content agnosticism

   If your protocol impacts packet handling, does it look at the packet
   content?  Is it making decisions based on the content of the packet?
   Is the protocol transparent about its decision?  Does your protocol
   prioritize certain content or services over others?

   Impacts:

   -  Right to freedom of expression

   -  Right to non-discrimination

   -  Right to equal protection

   -  Right to be presumed innocent

5.3.2.1.4.  Security

   Did you have a look at Guidelines for Writing RFC Text on Security
   Considerations [RFC3552]?

   Impacts:

   -  Right to freedom of expression

   -  Right to freedom of assembly and association

   -  Right to non discrimination & Right to be presumed innocent)

ten Oever & Cath       Expires September 18, 2016              [Page 39]
Internet-Draft                    hrpcr                       March 2016

5.3.2.1.5.  Internationalization

   Does your protocol have text strings that are readable or entered by
   humans?  Does your protocol allow Unicode encoded in UTF-8 only,
   thereby shifting conversion issues away from individual choices?  Did
   you have a look at [RFC6365]?

   Impacts:

   -  Right to freedom of expression

   -  Right to political participation

   -  Right to participate in cultural life, arts and science

   -  Right to political participation

5.3.2.1.6.  Censorship resistance

   Does this protocol introduce new identifiers that might be associated
   with persons or content?  Does your protocol make it apparent or
   transparent when filtering happens?

   Identifiers of content exposed within a protocol might be used to
   facilitate censorship, as in the case of HTTP in this particular
   scenario [...].

   Impacts:

   -  Right to freedom of expression

   -  Right to political participation

   -  Right to participate in cultural life, arts and science

   -  Right to freedom of assembly and association

5.3.2.1.7.  Open Standards

   Is your protocol fully documented in a way that it could be easily
   implemented, improved, build upon and/or further developed.  Is there
   any proprietary code needed for the implementation, running or
   further development of your protocol?

   Impacts:

   -  Right to freedom of expression

ten Oever & Cath       Expires September 18, 2016              [Page 40]
Internet-Draft                    hrpcr                       March 2016

   -  Right to participate in cultural life, arts and science

5.3.2.1.8.  Heterogeneity Support

   Does your protocol support heterogeneity by design?  Does your
   protocol allow for multiple types of hardware?  Does your protocol
   allow for multiple types of application protocols?

   Impacts:

   -  Right to freedom of expression

5.3.2.1.9.  Anonymity

   Did you have a look at the Privacy Considerations for Internet
   Protocols [RFC6973], especially section 6.1.1 ?

   Impacts:

   -  Right to non-discrimination

   -  Right to political participation

   -  Right to freedom of assembly and association

   -  Right to security

   -  Right to be presumed innocent

5.3.2.1.10.  Pseudonymity

   Did you have a look at the Privacy Considerations for Internet
   Protocols [RFC6973], especially section 6.1.2 ?

   Impacts:

   -  Right to non-discrimination

   -  Right to freedom of assembly and association

5.3.2.1.11.  Accessibility

   When websites, web technologies, or web tools are badly designed,
   they can create barriers that exclude people from using the Web. Is
   your protocol designed to provide an enabling environment for people
   with disabilities?  It might be relevant to look at the W3C Web
   Accessibility Initiative for examples and guidance.Is your protocol

NETCONF server
                  +------------+
                  |    XML     |
                  |   message  |
                  | dispatcher |
                  +------------+
                         |
                         |
                         V
                  +------------+
                  | NC-base NS |
                  |   <rpc>    |
                  +------------+
                    |   |  |
                    |   |  +-------------------------+
                    |   +------------+               |
                    V                V               V
               +-----------+ +---------------+ +------------+
               | Vendor NS | | NC-base NS    | | NC-base NS |
               | <my-edit> | | <edit-config> | | <unlock>   |
               +-----------+ +---------------+ +------------+
                      |               |
                      |               |
                      V               V
                    +----------------------+
                    |                      |
                    |    configuration     |
                    |      datastore       |
                    +----------------------+

                                 Figure 3

   Access control begins with the message dispatcher.

   After the server validates the <rpc> element and determines the
   namespace URI and the element name of the protocol operation being
   requested, the server verifies that the user is authorized to invoke
   the protocol operation.

   The server MUST separately authorize every protocol operation by
   following these steps:

   1.   If the "enable-nacm" leaf is set to "false", then the protocol
        operation is permitted.

   2.   If the requesting session is identified as a recovery session,
        then the protocol operation is permitted.

Bierman & Bjorklund      Expires April 29, 2018                [Page 23]
Internet-Draft                    NACM                      October 2017

   3.   If the requested operation is the NETCONF <close-session>
        protocol operation, then the protocol operation is permitted.

   4.   Check all the "group" entries for ones that contain a "user-
        name" entry that equals the username for the session making the
        request.  If the "enable-external-groups" leaf is "true", add to
        these groups the set of groups provided by the transport layer.

   5.   If no groups are found, continue with step 10.

   6.   Process all rule-list entries, in the order they appear in the
        configuration.  If a rule-list's "group" leaf-list does not
        match any of the user's groups, proceed to the next rule-list
        entry.

   7.   For each rule-list entry found, process all rules, in order,
        until a rule that matches the requested access operation is
        found.  A rule matches if all of the following criteria are met:

        *  The rule's "module-name" leaf is "*" or equals the name of
           the YANG module where the protocol operation is defined.

        *  The rule does not have a "rule-type" defined or the "rule-
           type" is "protocol-operation" and the "rpc-name" is "*" or
           equals the name of the requested protocol operation.

        *  The rule's "access-operations" leaf has the "exec" bit set or
           has the special value "*".

   8.   If a matching rule is found, then the "action" leaf is checked.
        If it is equal to "permit", then the protocol operation is
        permitted; otherwise, it is denied.

   9.   At this point, no matching rule was found in any rule-list
        entry.

   10.  If the requested protocol operation is defined in a YANG module
        advertised in the server capabilities and the "rpc" statement
        contains a "nacm:default-deny-all" statement, then the protocol
        operation is denied.

   11.  If the requested protocol operation is the NETCONF <kill-
        session> or <delete-config>, then the protocol operation is
        denied.

   12.  If the "exec-default" leaf is set to "permit", then permit the
        protocol operation; otherwise, deny the request.

Bierman & Bjorklund      Expires April 29, 2018                [Page 24]
Internet-Draft                    NACM                      October 2017

   If the user is not authorized to invoke the protocol operation, then
   an <rpc-error> is generated with the following information:

   error-tag:  access-denied

   error-path:  Identifies the requested protocol operation.  The
      following example represents the <edit-config> protocol operation
      in the NETCONF base namespace:

         <error-path
           xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
             /nc:rpc/nc:edit-config
         </error-path>

   If a datastore is accessed, either directly or as a side effect of
   the protocol operation, then the server MUST intercept the access
   operation and make sure the user is authorized to perform the
   requested access operation on the specified data, as defined in
   Section 3.4.5.

3.4.5.  Data Node Access Validation

   If a data node within a datastore is accessed, or an action or
   notification tied to a data node, then the server MUST ensure that
   the user is authorized to perform the requested "read", "create",
   "update", "delete", or "execute" access operation on the specified
   data node.

   If an action is requested to be executed, the server MUST ensure that
   the user is authorized to perform the "execute" access operation on
   the requested action.

   If a notification tied to a data node is generated, the server MUST
   ensure that the user is authorized to perform the "read" access
   operation on the requested notification.

   The data node access request is authorized by following these steps:

   1.   If the "enable-nacm" leaf is set to "false", then the access
        operation is permitted.

   2.   If the requesting session is identified as a recovery session,
        then the access operation is permitted.

   3.   Check all the "group" entries for ones that contain a "user-
        name" entry that equals the username for the session making the
        request.  If the "enable-external-groups" leaf is "true", add to
        these groups the set of groups provided by the transport layer.

Bierman & Bjorklund      Expires April 29, 2018                [Page 25]
Internet-Draft                    NACM                      October 2017

   4.   If no groups are found, continue with step 9.

   5.   Process all rule-list entries, in the order they appear in the
        configuration.  If a rule-list's "group" leaf-list does not
        match any of the user's groups, proceed to the next rule-list
        entry.

   6.   For each rule-list entry found, process all rules, in order,
        until a rule that matches the requested access operation is
        found.  A rule matches if all of the following criteria are met:

        *  The rule's "module-name" leaf is "*" or equals the name of
           the YANG module where the requested data node is defined.

        *  The rule does not have a "rule-type" defined or the "rule-
           type" is "data-node" and the "path" matches the requested
           data node, action node, or notification node.

        *  For a "read" access operation, the rule's "access-operations"
           leaf has the "read" bit set or has the special value "*".

        *  For a "create" access operation, the rule's "access-
           operations" leaf has the "create" bit set or has the special
           value "*".

        *  For a "delete" access operation, the rule's "access-
           operations" leaf has the "delete" bit set or has the special
           value "*".

        *  For an "update" access operation, the rule's "access-
           operations" leaf has the "update" bit set or has the special
           value "*".

        *  For an "execute" access operation, the rule's "access-
           operations" leaf has the "exec" bit set or has the special
           value "*".

   7.   If a matching rule is found, then the "action" leaf is checked.
        If it is equal to "permit", then the data node access is
        permitted; otherwise, it is denied.  For a "read" access
        operation, "denied" means that the requested data is not
        returned in the reply.

   8.   At this point, no matching rule was found in any rule-list
        entry.

   9.   For a "read" access operation, if the requested data node is
        defined in a YANG module advertised in the server capabilities

Bierman & Bjorklund      Expires April 29, 2018                [Page 26]
Internet-Draft                    NACM                      October 2017

        and the data definition statement contains a "nacm:default-deny-
        all" statement, then the requested data node is not included in
        the reply.

   10.  For a "write" access operation, if the requested data node is
        defined in a YANG module advertised in the server capabilities
        and the data definition statement contains a "nacm:default-deny-
        write" or a "nacm:default-deny-all" statement, then the data
        node access request is denied.

   11.  For a "read" access operation, if the "read-default" leaf is set
        to "permit", then include the requested data node in the reply;
        otherwise, do not include the requested data node in the reply.

   12.  For a "write" access operation, if the "write-default" leaf is
        set to "permit", then permit the data node access request;
        otherwise, deny the request.

   13.  For an "execute" access operation, if the "exec-default" leaf is
        set to "permit", then permit the request; otherwise, deny the
        request.

3.4.6.  Outgoing <notification> Authorization

   Configuration of access control rules specifically for descendant
   nodes of the notification event type element are outside the scope of
   this document.  If the user is authorized to receive the notification
   event type, then it is also authorized to receive any data it
   contains.

   If the notification is specified within a data subtree, as specified
   in [RFC7950], then read access to the notification is required.
   Processing continues as described in Section 3.4.5.

   The following figure shows the conceptual message processing model
   for outgoing <notification> messages.

ten Oever & Cath       Expires September 18, 2016              [Page 41]
Internet-Draft                    hrpcr                       March 2016

   optimized for low bandwidth and high latency connections?  Could your
   protocol also be developed in a stateless manner?

   Impacts:

   -  Right to non-discrimination

   -  Right to freedom of assembly and association

   -  Right to education

   -  Right to political participation

5.3.2.1.12.  Localization

   Does your protocol live up to standards of internationalization?
   Have you considered localizing your protocol for relevant audiences?

   Impacts:

   -  Right to non-discrimination

   -  Right to participate in cultural life, arts and science

5.3.2.1.13.  Decentralization

   Does your protocol contribute to more centralized points of control?
   Can your protocol be implemented without one single point of control?
   If applicable, can your protocol be deployed in a federated manner?
   What is the potential for discrimination against users of your
   protocol?  How can use of your protocol be used to implicate users?

   Impacts:

   -  Right to freedom of assembly and association

   -  Right to be presumed innocent

5.3.2.1.14.  Reliability

   Is your protocol fault tolerant?  Does it degrade gracefully?  Do you
   have a documented way to announce degradation?  Do you have measures
   in place for recovery or partial healing from failure?  Is your
   protocol able to maintain dependability and performance in the face
   of unanticipated changes or circumstances?

   Impacts:

ten Oever & Cath       Expires September 18, 2016              [Page 42]
Internet-Draft                    hrpcr                       March 2016

   -  Right to security

5.3.2.1.15.  Confidentiality

   (cf [RFC6973] ) Which information related to identifiers or data is
   exposed to each other protocol entity (i.e., recipients,
   intermediaries, and enablers)?  Are there ways for protocol
   implementers to choose to limit the information shared with each
   entity?  Are there operational controls available to limit the
   information shared with each entity?

   What controls or consent mechanisms does the protocol define or
   require before personal data or identifiers are shared or exposed via
   the protocol?  If no such mechanisms or controls are specified, is it
   expected that control and consent will be handled outside of the
   protocol?

   Does the protocol provide ways for initiators to share different
   information with different recipients?  If not, are there mechanisms
   that exist outside of the protocol to provide initiators with such
   control?

   Does the protocol provide ways for initiators to limit which
   information is shared with intermediaries?  If not, are there
   mechanisms that exist outside of the protocol to provide users with
   such control?  Is it expected that users will have relationships that
   govern the use of the information (contractual or otherwise) with
   those who operate these intermediaries?

   Does the protocol provide ways for initiators to express individuals'
   preferences to recipients or intermediaries with regard to the
   collection, use, or disclosure of their personal data?

   Impacts:

   -  Right to security

5.3.2.1.16.  Integrity

   Does your protocol maintain and assure the accuracy of data?  Does
   your protocol maintain and assure the consistency of data?  Does your
   protocol in any way allow for the data to be (intentionally or
   unintentionally) altered?

   Impacts:

   -  Right to security

ten Oever & Cath       Expires September 18, 2016              [Page 43]
Internet-Draft                    hrpcr                       March 2016

5.3.2.1.17.  Authenticity

   Do you have enough measures to confirm the truth of an attribute of a
   single piece of data or entity?  Can the attributes get garbled along
   the way (see security)?  If relevant have you implemented IPsec and
   other Standard Security Best Practices?

   Impacts:

   -  Right to security

5.3.2.1.18.  Acceptability

   Do your protocols adhere to the principle of non-discrimination?  Do
   your protocols adhere to the principle of content agnosticism?
   Impacts:

   -  Right to education

5.3.2.1.19.  Availability

   Do your protocols use or depend on proprietary code?  Also see 'Open
   Standards' above.  Also see 'Connectivity' above.

   Impacts:

   -  Right to education

5.3.2.1.20.  Adaptability

   Could your protocol stifle or hinder permissionless innovation in any
   way?  See 'Connectivity' above

   Impacts:

   -  Right to education

6.  Acknowledgements

   A special thanks to all members of the hrpc RG who contributed to
   this draft.  The following deserve a special mention:

   -  Joana Varon for helping draft the first iteration of the
      methodology, previous drafts and the direction of the film Net of
      Rights and working on the interviews at IETF92 in Dallas.

ten Oever & Cath       Expires September 18, 2016              [Page 44]
Internet-Draft                    hrpcr                       March 2016

   -  Daniel Kahn Gillmor (dkg) for helping with the first iteration of
      the glossary as well as a lot of technical guidance, support and
      language suggestions.

   -  Claudio Guarnieri for writing the first iterations of the case
      studies on VPN, HTTP, and Peer to Peer.

   -  Will Scott for writing the first iterations of the case studies on
      DNS, IP, XMPP.

   -  Avri Doria for proposing writing a glossary in the first place,
      help writing the initial proposals and Internet Drafts and
      contributing to the glossary.

   and Stephane Bortzmeyer, Barry Shein, Joe Hall, and Tim Sammut who
   made a lot of excellent suggestions, many of which found their way
   directly into the text.  We would also like to thank Molly Sauter,
   Arturo Filasto, Eleanor Saitta and all others who provided input on
   the draft or the conceptualization of the idea.

7.  Security Considerations

   As this document concerns a research document, there are no security
   considerations.

8.  IANA Considerations

   This document has no actions for IANA.

9.  Research Group Information

   The discussion list for the IRTF Human Rights Protocol Considerations
   proposed working group is located at the e-mail address hrpc@ietf.org
   [3].  Information on the group and information on how to subscribe to
   the list is at https://www.irtf.org/mailman/listinfo/hrpc

   Archives of the list can be found at: https://www.irtf.org/mail-
   archive/web/hrpc/current/index.html

10.  References

10.1.  Normative References

   [RFC6973]  Cooper, A., Tschofenig, H., Aboba, B., Peterson, J.,
              Morris, J., Hansen, M., and R. Smith, "Privacy
              Considerations for Internet Protocols", RFC 6973, DOI
              10.17487/RFC6973, July 2013,
              <http://www.rfc-editor.org/info/rfc6973>.

ten Oever & Cath       Expires September 18, 2016              [Page 45]
Internet-Draft                    hrpcr                       March 2016

10.2.  Informative References

   [Abbate]   Abbate, J., "Inventing the Internet", MIT Press , 2000,
              <https://mitpress.mit.edu/books/inventing-internet>.

   [Abibil]   Danchev, D., "Dissecting 'Operation Ababil' - an OSINT
              Analysis", 2012, <http://ddanchev.blogspot.be/2012/09/
              dissecting-operation-ababil-osint.html>.

   [Appelbaum]
              Appelbaum, J., Gibson, A., Kabish, V., Kampf, L., and L.
              Ryge, "NSA targets the privacy-conscious", 2015,
              <http://daserste.ndr.de/panorama/aktuell/
              nsa230_page-1.html>.

   [Babbie]   Babbie, E., "The Basics of Social Research", Belmont CA
              Cengage , 2010.

   [Benkler]  Benkler, Y., "The wealth of Networks - How social
              production transforms markets and freedom", New Haven and
              London - Yale University Press , 2006,
              <http://is.gd/rxUpTQ>.

   [Berners-Lee]
              Berners-Lee, T. and M. Fischetti, "Weaving the Web,",
              HarperCollins p 208, 1999.

   [Bless]    Bless, R. and C. Orwat, "Values and Networks", 2015.

   [Blumenthal]
              Blumenthal, M. and D. Clark, "Rethinking the design of the
              Internet: The end-to-end arguments vs. the brave new
              world", ACM Transactions on Internet Technology, Vol. 1,
              No. 1, August 2001, pp 70-109. , 2001.

   [Bray]     Bray, T., "A New HTTP Status Code for Legally-restricted
              Resources", 2016, <https://tools.ietf.org/html/draft-ietf-
              httpbis-legally-restricted-status-04>.

   [Broeders]
              Broeders, D., "The public core of the Internet", WRR ,
              2015,
              <http://www.wrr.nl/en/publications/publication/article/
              de-publieke-kern-van-het-internet-1/>.

   [Brown]    Brown, I. and M. Ziewitz, "A Prehistory of Internet
              Governance", Research Handbook on Governance of the
              Internet. Cheltenham, Edward Elgar. , 2013.

ten Oever & Cath       Expires September 18, 2016              [Page 46]
Internet-Draft                    hrpcr                       March 2016

   [BrownMarsden]
              Brown, I. and C. Marsden, "Regulating code", MIT Press ,
              2013, <https://mitpress.mit.edu/books/regulating-code>.

   [Brownetal]
              Brown, I., Clark, D., and D. Trossen, &Bierman & Bjorklund      Expires April 29, 2018                [Page 27]
Internet-Draft                    NACM                      October 2017

                   NETCONF server
                  +------------+
                  |    XML     |
                  |   message  |
                  | generator  |
                  +------------+
                        ^
                        |
                +----------------+
                | <notification> |
                |  generator     |
                +----------------+
                        ^
                        |
               +=================+
               | <notification>  |
               |  access control |
               |  <eventType>    |
               +=================+
                        ^
                        |
            +------------------------+
            | server instrumentation |
            +------------------------+
                      |     ^
                      V     |
             +----------------------+
             |    configuration     |
             |      datastore       |
             +----------------------+

                                 Figure 4

   The generation of a notification for a specific subscription
   [RFC5277] is authorized by following these steps:

   1.   If the "enable-nacm" leaf is set to "false", then the
        notification is permitted.

   2.   If the session is identified as a recovery session, then the
        notification is permitted.

   3.   If the notification is the NETCONF <replayComplete> or
        <notificationComplete> event type [RFC5277], then the
        notification is permitted.

Bierman & Bjorklund      Expires April 29, 2018                [Page 28]
Internet-Draft                    NACM                      October 2017

   4.   Check all the "group" entries for ones that contain a "user-
        name" entry that equals the username for the session making the
        request.  If the "enable-external-groups" leaf is "true", add to
        these groups the set of groups provided by the transport layer.

   5.   If no groups are found, continue with step 10.

   6.   Process all rule-list entries, in the order they appear in the
        configuration.  If a rule-list's "group" leaf-list does not
        match any of the user's groups, proceed to the next rule-list
        entry.

   7.   For each rule-list entry found, process all rules, in order,
        until a rule that matches the requested access operation is
        found.  A rule matches if all of the following criteria are met:

        *  The rule's "module-name" leaf is "*" or equals the name of
           the YANG module where the notification is defined.

        *  The rule does not have a "rule-type" defined or the "rule-
           type" is "notification" and the "notification-name" is "*" or
           equals the name of the notification.

        *  The rule's "access-operations" leaf has the "read" bit set or
           has the special value "*".

   8.   If a matching rule is found, then the "action" leaf is checked.
        If it is equal to "permit", then permit the notification;
        otherwise, drop the notification for the associated
        subscription.

   9.   Otherwise, no matching rule was found in any rule-list entry.

   10.  If the requested notification is defined in a YANG module
        advertised in the server capabilities and the "notification"
        statement contains a "nacm:default-deny-all" statement, then the
        notification is dropped for the associated subscription.

   11.  If the "read-default" leaf is set to "permit", then permit the
        notification; otherwise, drop the notification for the
        associated subscription.

3.5.  Data Model Definitions

Bierman & Bjorklund      Expires April 29, 2018                [Page 29]
Internet-Draft                    NACM                      October 2017

3.5.1.  Data Organization

   The following diagram highlights the contents and structure of the
   NACM YANG module.

  module: ietf-netconf-acm
      +--rw nacm
         +--rw enable-nacm?              boolean
         +--rw read-default?             action-type
         +--rw write-default?            action-type
         +--rw exec-default?             action-type
         +--rw enable-external-groups?   boolean
         +--ro denied-operations         yang:zero-based-counter32
         +--ro denied-data-writes        yang:zero-based-counter32
         +--ro denied-notifications      yang:zero-based-counter32
         +--rw groups
         |  +--rw group* [name]
         |     +--rw name         group-name-type
         |     +--rw user-name*   user-name-type
         +--rw rule-list* [name]
            +--rw name     string
            +--rw group*   union
            +--rw rule* [name]
               +--rw name                 string
               +--rw module-name?         union
               +--rw (rule-type)?
               |  +--:(protocol-operation)
               |  |  +--rw rpc-name?            union
               |  +--:(notification)
               |  |  +--rw notification-name?   union
               |  +--:(data-node)
               |     +--rw path                 node-instance-identifier
               +--rw access-operations?   union
               +--rw action               action-type
               +--rw comment?             string

3.5.2.  YANG Module

   The following YANG module specifies the normative NETCONF content
   that MUST by supported by the server.

   The "ietf-netconf-acm" YANG module imports typedefs from [RFC6991].

 <CODE BEGINS> file "ietf-netconf-acm@2017-10-26.yang"
 module ietf-netconf-acm {

   namespace "urn:ietf:params:xml:ns:yang:ietf-netconf-acm";

Bierman & Bjorklund      Expires April 29, 2018                [Page 30]
Internet-Draft                    NACM                      October 2017

   prefix "nacm";

   import ietf-yang-types {
     prefix yang;
   }

   organization
     "IETF NETCONF (Network Configuration) Working Group";

   contact
     "WG Web:   <http://tools.ietf.org/wg/netconf/>
      WG List:  <mailto:netconf@ietf.org>

      Author:   Andy Bierman
                <mailto:andy@yumaworks.com>

      Author:   Martin Bjorklund
                <mailto:mbj@tail-f.com>";

   description
     "Network Configuration Access Control Model.

      Copyright (c) 2012, 2017 IETF Trust and the persons
      identified as authors of the code. All rights reserved.

      Redistribution and use in source and binary forms, with or
      without modification, is permitted pursuant to, and subject
      to the license terms contained in, the Simplified BSD
      License set forth in Section 4.c of the IETF Trust's
      Legal Provisions Relating to IETF Documents
      (http://trustee.ietf.org/license-info).

      This version of this YANG module is part of RFC XXXX; see
      the RFC itself for full legal notices.";

   revision "2017-10-26" {
     description
       "Added support for YANG 1.1 actions and notifications tied to
        data nodes. Clarify how NACM extensions can be used by other
        data models.";
     reference
       "RFC XXXX: Network Configuration Protocol (NETCONF)
                  Access Control Model";
   }

   revision "2012-02-22" {
     description

Bierman & Bjorklund      Expires April 29, 2018                [Page 31]
Internet-Draft                    NACM                      October 2017

       "Initial version";
     reference
       "RFC 6536: Network Configuration Protocol (NETCONF)
                  Access Control Model";
   }

   /*
    * Extension statements
    */

   extension default-deny-write {
     description
       "Used to indicate that the data model node
        represents a sensitive security system parameter.

        If present, the NETCONF server will only allow the designated
        'recovery session' to have write access to the node.  An
        explicit access control rule is required for all other users.

        If the NACM module is used, then it must be enabled (i.e.,
        /nacm/enable-nacm object equals 'true'), or this extension
        is ignored.

        The "Should specific
              values be embedded in the Internet Architecture?", Sigcomm
              , 2010, <http://conferences.sigcomm.org/co-
              next/2010/Workshops/REARCH/ReArch_papers/10-Brown.pdf>.

   [Clark]    Clark, D., "The Design Philosophy of the DARPA Internet
              Protocols", Proc SIGCOMM 88, ACM CCR Vol 18, Number 4,
              August 1988, pp. 106-114. , 1988.

   [Clarketal]
              Clark, D., Wroclawski, J., Sollins, K., and R. Braden,
              "Tussle in cyberspace - defining tomorrow's Internet", ACM
              Digital Library , 2005, <https://dl.acm.org/
              citation.cfm?id=1074049>.

   [Collins]  Collins, K., "Hacking Team's oppressive regimes customer
              list revealed in hack", 2015,
              <http://www.wired.co.uk/news/archive/2015-07/06/
              hacking-team-spyware-company-hacked>.

   [Daedalus]
              Clark, D., "The Contingent Internet", Daedalus Winter
              2016, Vol. 145, No. 1. p. 9-17 , 2016,
              <http://www.mitpressjournals.org/toc/daed/current>.

   [Davidsonetal]
              Davidson, A., Morris, J., and R. Courtney, "Strangers in a
              strange land", Telecommunications Policy Research
              Conference , 2002,
              <https://www.cdt.org/files/publications/piais.pdf>.

   [Denardis14]
              Denardis, L., "The Global War for Internet Governance",
              Yale University Press , 2014,
              <https://www.jstor.org/stable/j.ctt5vkz4n>.

   [Denardis15]
              Denardis, L., "The Internet Design Tension between
              Surveillance and Security", IEEE Annals of the History of
              Computing (volume 37-2) , 2015, <http://is.gd/7GAnFy>.

ten Oever & Cath       Expires September 18, 2016              [Page 47]
Internet-Draft                    hrpcr                       March 2016

   [Denzin]   Denzin, N. and Y. Lincoln, "Handbook of Qualitative
              Research", Thousand Oaks CA Sage , 2000,
              <http://www.amazon.com/SAGE-Handbook-Qualitative-Research-
              Handbooks/dp/1412974178>.

   [Doty]     Doty, N., "Automated text analysis of Requests for Comment
              (RFCs)", 2014, <https://github.com/npdoty/rfc-analysis>.

   [Douceur]  Douceur, J., "The Sybil Attack", 2002,
              <http://research.microsoft.com:8082/pubs/74220/
              IPTPS2002.pdf>.

   [Elahi]    Elahi, T. and I. Goldberg, "CORDON - A taxonomy of
              Internet Censorship Resistance Strategies", 2012,
              <http://cacr.uwaterloo.ca/techreports/2012/
              cacr2012-33.pdf>.

   [FIArch]   "Future Internet Design Principles", January 2012,
              <http://www.future-internet.eu/uploads/media/
              FIArch_Design_Principles_V1.0.pdf>.

   [FRAMEWORK]
              ISO/IEC, ., "Information technology - Framework for
              internationalization, prepared by ISO/IEC JTC 1/SC 22/WG
              20 ISO/IEC TR 11017", 1997.

   [Geertz]   Clifford, G., "Kinship in Bali", Chicago University of
              Chicago Press. , 1975,
              <http://press.uchicago.edu/ucp/books/book/chicago/K/
              bo3625088.html>.

   [Googlepatent]
              Google, ., "Method and device for network traffic
              manipulation", 2012, <https://www.google.com/patents/
              EP2601774A1?cl=en>.

   [GreenMovement]
              Villeneuve, N., "Iran DDoS", 2009,
              <https://www.nartv.org/2009/06/16/iran-ddos/>.

   [HRC2012]  United Nations Human Rights Council, "UN General Assembly
              Resolution "The right to privacy in the digital age"
              (A/C.3/68/L.45)", 2011,
              <http://daccess-ods.un.org/TMP/554342.120885849.html>.

   [Haagsma]  Haagsma, L., "Deep dive into QUANTUM INSERT", 2015,
              <http://blog.fox-it.com/2015/04/20/
              deep-dive-into-quantum-insert/>.

ten Oever & Cath       Expires September 18, 2016              [Page 48]
Internet-Draft                    hrpcr                       March 2016

   [ICCPR]    United Nations General Assembly, "International Covenant
              on Civil and Political Rights", 1976,
              <http://www.ohchr.org/EN/ProfessionalInterest/Pages/
              CCPR.aspx>.

   [ICESCR]   United Nations General Assembly, "International Covenant
              on Economic, Social and Cultural Rights", 1966,
              <http://www.ohchr.org/EN/ProfessionalInterest/Pages/
              CESCR.aspx>.

   [Jabri]    Jabri, V., "Discourses on Violence - conflict analysis
              reconsidered", Manchester University Press , 1996.

   [King]     King, C., "Power, Social Violence and Civil Wars",
              Washington D.C. United States Institute of Peace Press ,
              2007.

   [Lessig]   Lessig, L., "Code - And Other Laws of Cyberspace, Version
              2.0.", New York Basic Books , 2006, <http://codev2.cc/>.

   [Marcak]   Marcak, B., Weaver, N., Dalek, J., Ensafi, R., Fifield,
              D., McKune, S., Rey, A., Scott-Railton, J., Deibert, R.,
              and V. Paxson, "China's Great Fire Cannon", 2015,
              <https://citizenlab.org/2015/04/chinas-great-cannon/>.

   [Marquis-Boire]
              Marquis-Boire, M., "Schrodinger's Cat Video and the Death
              of Clear-Text", 2014, <https://citizenlab.org/2014/08/cat-
              video-and-the-death-of-clear-text/>.

   [Mueller]  Mueller, M., "Networks and States", MIT Press , 2010,
              <https://mitpress.mit.edu/books/networks-and-states>.

   [Musiani]  Musiani, F., "Giants, Dwarfs and Decentralized
              Alternatives to Internet-based Services - An Issue of
              Internet Governance", Westminister Papers in Communication
              and Culture , 2015, <http://doi.org/10.16997/wpcc.214>.

   [NETmundial]
              NETmundial, "NETmundial Multistakeholder Statement", 2014,
              <http://netmundial.br/wp-content/uploads/2014/04/
              NETmundial-Multistakeholder-Document.pdf>.

   [PETS2015VPN]
              Pera, V., Barbera, M., Tyson, G., Haddadi, H., and A. Mei,
              "A Glance through the VPN Looking Glass", 2015,
              <http://www.eecs.qmul.ac.uk/~hamed/papers/
              PETS2015VPN.pdf>.

ten Oever & Cath       Expires September 18, 2016              [Page 49]
Internet-Draft                    hrpcr                       March 2016

   [Peterson]
              Peterson, A., Gellman, B., and A. Soltani, "Yahoo to make
              SSL encryption the default for Webmail users. Finally.",
              2013, <http://gmailblog.blogspot.de/2010/01/
              default-https-access-for-gmail.html>.

   [RFC0226]  Karp, P., "Standardization of host mnemonics", RFC 226,
              DOI 10.17487/RFC0226, September 1971,
              <http://www.rfc-editor.org/info/rfc226>.

   [RFC0760]  Postel, J., "DoD standard Internet Protocol", RFC 760, DOI
              10.17487/RFC0760, January 1980,
              <http://www.rfc-editor.org/info/rfc760>.

   [RFC0791]  Postel, J., "Internet Protocol", STD 5, RFC 791, DOI
              10.17487/RFC0791, September 1981,
              <http://www.rfc-editor.org/info/rfc791>.

   [RFC0793]  Postel, J., "Transmission Control Protocol", STD 7, RFC
              793, DOI 10.17487/RFC0793, September 1981,
              <http://www.rfc-editor.org/info/rfc793>.

   [RFC0894]  Hornig, C., "A Standard for the Transmission of IP
              Datagrams over Ethernet Networks", STD 41, RFC 894, DOI
              10.17487/RFC0894, April 1984,
              <http://www.rfc-editor.org/info/rfc894>.

   [RFC1035]  Mockapetris, P., "Domain names - implementation and
              specification", STD 13, RFC 1035, DOI 10.17487/RFC1035,
              November 1987, <http://www.rfc-editor.org/info/rfc1035>.

   [RFC1122]  Braden, R., Ed., "Requirements for Internet Hosts -
              Communication Layers", STD 3, RFC 1122, DOI 10.17487/
              RFC1122, October 1989,
              <http://www.rfc-editor.org/info/rfc1122>.

   [RFC1631]  Egevang, K. and P. Francis, "The IP Network Address
              Translator (NAT)", RFC 1631, DOI 10.17487/RFC1631, May
              1994, <http://www.rfc-editor.org/info/rfc1631>.

   [RFC1958]  Carpenter, B., Ed., "Architectural Principles of the
              Internet", RFC 1958, DOI 10.17487/RFC1958, June 1996,
              <http://www.rfc-editor.org/info/rfc1958>.

   [RFC1984]  IAB and , "IAB and IESG Statement on Cryptographic
              Technology and the Internet", BCP 200, RFC 1984, DOI
              10.17487/RFC1984, August 1996,
              <http://www.rfc-editor.org/info/rfc1984>.

ten Oever & Cath       Expires September 18, 2016              [Page 50]
Internet-Draft                    hrpcr                       March 2016

   [RFC2277]  Alvestrand, H., "IETF Policy on Character Sets and
              Languages", BCP 18, RFC 2277, DOI 10.17487/RFC2277,
              January 1998, <http://www.rfc-editor.org/info/rfc2277>.

   [RFC2460]  Deering, S. and R. Hinden, "Internet Protocol, Version 6
              (IPv6) Specification", RFC 2460, DOI 10.17487/RFC2460,
              December 1998, <http://www.rfc-editor.org/info/rfc2460>.

   [RFC2606]  Eastlake 3rd, D. and A. Panitz, "Reserved Top Level DNS
              Names", BCP 32, RFC 2606, DOI 10.17487/RFC2606, June 1999,
              <http://www.rfc-editor.org/info/rfc2606>.

   [RFC2775]  Carpenter, B., "Internet Transparency", RFC 2775, DOI
              10.17487/RFC2775, February 2000,
              <http://www.rfc-editor.org/info/rfc2775>.

   [RFC3365]  Schiller, J., "Strong Security Requirements for Internet
              Engineering Task Force Standard Protocols", BCP 61, RFC
              3365, DOI 10.17487/RFC3365, August 2002,
              <http://www.rfc-editor.org/info/rfc3365>.

   [RFC3552]  Rescorla, E. and B. Korver, "Guidelines for Writing RFC
              Text on Security Considerations", BCP 72, RFC 3552, DOI
              10.17487/RFC3552, July 2003,
              <http://www.rfc-editor.org/info/rfc3552>.

   [RFC3724]  Kempf, J., Ed., Austein, R., Ed., and IAB, "The Rise of
              the Middle and the Future of End-to-End: Reflections on
              the Evolution of the Internet Architecture", RFC 3724, DOI
              10.17487/RFC3724, March 2004,
              <http://www.rfc-editor.org/info/rfc3724>.

   [RFC4084]  Klensin, J., "Terminology for Describing Internet
              Connectivity", BCP 104, RFC 4084, DOI 10.17487/RFC4084,
              May 2005, <http://www.rfc-editor.org/info/rfc4084>.

   [RFC4101]  Rescorla, E. and IAB, "Writing Protocol Models", RFC 4101,
              DOI 10.17487/RFC4101, June 2005,
              <http://www.rfc-editor.org/info/rfc4101>.

   [RFC4303]  Kent, S., "IP Encapsulating Security Payload (ESP)", RFC
              4303, DOI 10.17487/RFC4303, December 2005,
              <http://www.rfc-editor.org/info/rfc4303>.

   [RFC4906]  Martini, L., Ed., Rosen, E., Ed., and N. El-Aawar, Ed.,
              "Transport of Layer 2 Frames Over MPLS", RFC 4906, DOI
              10.17487/RFC4906, June 2007,
              <http://www.rfc-editor.org/info/rfc4906>.

ten Oever & Cath       Expires September 18, 2016              [Page 51]
Internet-Draft                    hrpcr                       March 2016

   [RFC4949]  Shirey, R., "Internet Security Glossary, Version 2", FYI
              36, RFC 4949, DOI 10.17487/RFC4949, August 2007,
              <http://www.rfc-editor.org/info/rfc4949>.

   [RFC5944]  Perkins, C., Ed., "IP Mobility Support for IPv4, Revised",
              RFC 5944, DOI 10.17487/RFC5944, November 2010,
              <http://www.rfc-editor.org/info/rfc5944>.

   [RFC6120]  Saint-Andre, P., "Extensible Messaging and Presence
              Protocol (XMPP): Core", RFC 6120, DOI 10.17487/RFC6120,
              March 2011, <http://www.rfc-editor.org/info/rfc6120>.

   [RFC6365]  Hoffman, P. and J. Klensin, "Terminology Used in
              Internationalization in the IETF", BCP 166, RFC 6365, DOI
              10.17487/RFC6365, September 2011,
              <http://www.rfc-editor.org/info/rfc6365>.

   [RFC7258]  Farrell, S. and H. Tschofenig, "Pervasive Monitoring Is an
              Attack", BCP 188, RFC 7258, DOI 10.17487/RFC7258, May
              2014, <http://www.rfc-editor.org/info/rfc7258>.

   [RFC7574]  Bakker, A., Petrocco, R., and V. Grishchenko, "Peer-to-
              Peer Streaming Peer Protocol (PPSPP)", RFC 7574, DOI
              10.17487/RFC7574, July 2015,
              <http://www.rfc-editor.org/info/rfc7574>.

   [RFC7626]  Bortzmeyer, S., "DNS Privacy Considerations", RFC 7626,
              DOI 10.17487/RFC7626, August 2015,
              <http://www.rfc-editor.org/info/rfc7626>.

   [RSF]      RSF, ., "Syria using 34 Blue Coat Servers to spy on
              Internet users", 2013, <https://en.rsf.org/syria-syria-
              using-34-blue-coat-servers-23-05-2013,44664.html>.

   [Rachovitsa]
              Rachovitsa, A., "Engineering "Privacy by Design" in the
              Internet Protocols - Understanding Online Privacy both as
              a Technical and a Human Rights Issue in the Face of
              Pervasive Monitoring", International Journal of Law and
              Information Technology , 2015, <https://www.ietf.org/mail-
              archive/web/hrpc/current/pdfRBnRYFeVsm.pdf>.

   [Richie]   Richie, J. and J. Lewis, "Qualitative Research Practice -
              A Guide for Social Science Students and Researchers",
              London Sage , 2003, <http://www.amazon.co.uk/
              Qualitative-Research-Practice-Students-Researchers/
              dp/0761971106>.

ten Oever & Cath       Expires September 18, 2016              [Page 52]
Internet-Draft                    hrpcr                       March 2016

   [Rideout]  Rideout, A., "Making security easier", 2008,
              <http://gmailblog.blogspot.de/2008/07/
              making-security-easier.html>.

   [Saltzer]  Saltzer, J., Reed, D., and D. Clark, "End-to-End Arguments
              in System Design", ACM TOCS, Vol 2, Number 4, November
              1984, pp 277-288. , 1984.

   [Sauter]   Sauter, M., "The Coming Swarm", Bloomsbury, London , 2014.

   [Schillace]
              Schillace, S., "Default https access for Gmail", 2010,
              <http://gmailblog.blogspot.de/2010/01/
              default-https-access-for-gmail.html>.

   [Schneier]
              Schneier, B., "Attacking Tor - how the NSA targets users'
              online anonymity", 2013,
              <http://www.theguardian.com/world/2013/oct/04/
              tor-attacks-nsa-users-online-anonymity>.

   [Schroeder]
              Schroeder, I. and B. Schmidt, "Introduction - Violent
              Imaginaries and Violent Practice", London and New York
              Routledge , 2001, <http://resourcelists.st-
              andrews.ac.uk/items/
              BFC20363-67B0-B3EF-EA48-13E5230E7899.html>.

   [UDHR]     United Nations General Assembly, "The Universal
              Declaration of Human Rights", 1948,
              <http://www.un.org/en/documents/udhr/>.

   [UNGA2013]
              United Nations General Assembly, "UN General Assembly
              Resolution "The right to privacy in the digital age"
              (A/C.3/68/L.45)", 2013,
              <http://daccess-ods.un.org/TMP/1133732.05065727.html>.

   [W3Ci18nDef]
              W3C, "Localization vs. Internationalization", 2010,
              <http://www.w3.org/International/questions/qa-i18n.en>.

   [WP-Debugging]
              "Debugging", n.d., <https://en.wikipedia.org/wiki/
              Debugging>.

ten Oever & Cath       Expires September 18, 2016              [Page 53]
Internet-Draft                    hrpcr                       March 2016

   [WP-Stateless]
              "Stateless protocol", n.d.,
              <https://en.wikipedia.org/wiki/Stateless_protocol>.

   [Walfish]  Walfish, M., Stribling, J., Krohn, M., Balakrishnan, H.,
              Morris, R., and S. Shenker, "Middleboxes No Longer
              Considered Harmful", 2004, <http://nms.csail.mit.edu/doa>.

   [Zittrain]
              Zittrain, J., "The Future of the Internet - And How to
              Stop It", Yale University Press , 2008,
              <https://dash.harvard.edu/bitstream/handle/1/4455262/
              Zittrain_Future%20of%20the%20Internet.pdf?sequence=1>.

   [Zuckerman]
              Zuckerman, E., Roberts, H., McGrady, R., York, J., and J.
              Palfrey, "Report on Distributed Denial of Service (DDoS)
              Attacks", The Berkman Center for Internet and Society at
              Harvard University , 2010,
              <https://cyber.law.harvard.edu/sites/
              cyber.law.harvard.edu/
              files/2010_DDoS_Attacks_Human_Rights_and_Media.pdf>.

   [ars]      Anderson, N., "P2P researchers - use a blocklist or you
              will be tracked... 100% of the time", 2007,
              <http://arstechnica.com/uncategorized/2007/10/p2p-
              researchers-use-a-blocklist-or-you-will-be-tracked-100-of-
              the-time/>.

   [bbc-wikileaks]
              BBC, "Whistle-blower site taken offline", 2008,
              <http://news.bbc.co.uk/2/hi/technology/7250916.stm>.

   [bitmessage]
              Bitmessage, "Bitmessage Wiki?", 2014,
              <https://bitmessage.org/wiki/Main_Page>.

   [caida]    Dainotti, A., Squarcella, C., Aben, E., Claffy, K.,
              Chiesa, M., Russo, M., and A. Pescape, "Analysis of
              Country-wide Internet Outages Caused by Censorship", 2013,
              <http://www.caida.org/publications/papers/2014/
              outages_censorship/outages_censorship.pdf>.

   [draft-hall-censorship-tech-01]
              Hall, J., Aaron, M., and B. Jones, "A Survey of Worldwide
              Censorship Techniques", 2015,
              <https://tools.ietf.org/html/draft-hall-censorship-tech-
              01>.

ten Oever & Cath       Expires September 18, 2016              [Page 54]
Internet-Draft                    hrpcr                       March 2016

   [freenet1]
              Freenet, "What is Freenet?", n.d.,
              <https://freenetproject.org/whatis.html>.

   [freenet2]
              Ian Clarke, ., "The Philosphy behind Freenet?", n.d.,
              <https://freenetproject.org/philosophy.html>.

   [greatfirewall]
              Anonymous, ., "Towards a Comprehensive Picture of the
              Great Firewall's DNS Censorship", 2014,
              <https://www.usenix.org/system/files/conference/foci14/
              foci14-anonymous.pdf>.

   [namecoin]
              Namecoin, "Namecoin - Decentralized secure names", 2015,
              <https://namecoin.info/>.

   [natusage]
              Maier, G., Schneider, F., and A. Feldmann, "NAT usage in
              Residential Broadband networks", 2011,
              <http://www.icsi.berkeley.edu/pubs/networking/
              NATusage11.pdf>.

   [pidgin]   js, . and Pidgin Developers, "-XMPP- Invisible mode
              violating standard", July 2015,
              <https://developer.pidgin.im/ticket/4322>.

   [quic]     The Chromium Project, "QUIC, a multiplexed stream
              transport over UDP", 2014, <https://www.chromium.org/
              quic>.

   [spdy]     The Chromium Project, "SPDY - An experimental protocol for
              a faster web", 2009, <https://www.chromium.org/spdy/spdy-
              whitepaper>.

   [spiegel]  SPIEGEL, "Prying Eyes - Inside the NSA's War on Internet
              Security", 2014,
              <http://www.spiegel.de/international/germany/
              inside-the-nsa-s-war-on-internet-security-a-1010361.html>.

   [techyum]  Violet, ., "Official - vb.ly Link Shortener Seized by
              Libyan Government", 2010, <http://techyum.com/2010/10/
              official-vb-ly-link-shortener-seized-by-libyan-
              government/>.

ten Oever & Cath       Expires September 18, 2016              [Page 55]
Internet-Draft                    hrpcr                       March 2016

   [torproject]
              The Tor Project, ., "Tor Project - Anonymity Online",
              2007, <https://www.torproject.org/>.

   [torrentfreak1]
              Van der Sar, E., "Proposal for research on human rights
              protocol considerations", 2015, <https://torrentfreak.com/
              is-your-isp-messing-with-bittorrent-traffic-find-out-
              140123/>.

   [torrentfreak2]
              Andy, ., "LAWYERS SENT 109,000 PIRACY THREATS IN GERMANY
              DURING 2013", 2014, <https://torrentfreak.com/lawyers-
              sent-109000-piracy-threats-in-germany-during-
              2013-140304/>.

   [turkey]   Akguel, M. and M. Kirlido&#287;, "Internet censorship in
              Turkey", 2015,
              <http://policyreview.info/articles/analysis/
              internet-censorship-turkey>.

   [ververis]
              Vasilis, V., Kargiotakis, G., Filasto, A., Fabian, B., and
              A. Alexandros, "Understanding Internet Censorship Policy -
              The Case of Greece", 2015,
              <https://www.usenix.org/system/files/conference/foci15/
              foci15-paper-ververis-update.pdf>.

   [wikileaks]
              Sladek, T. and E. Broese, "Market Survey - Detection &
              Filtering Solutions to Identify File Transfer of Copyright
              Protected Content for Warner Bros. and movielabs", 2011,
              <https://wikileaks.org/sony/docs/05/docs/Anti-Piracy/CDSA/
              EANTC-Survey-1.5-unsecured.pdf>.

   [xmppmanifesto]
              Saint-Andre, P. and . XMPP Operators, "A Public Statement
              Regarding Ubiquitous Encryption on the XMPP Network",
              2014,
              <https://raw.githubusercontent.com/stpeter/manifesto/
              master/manifesto.txt>.

10.3.  URIs

   [1] mailto:node@domain/home

   [2] mailto:node@domain/work

ten Oever & Cath       Expires September 18, 2016              [Page 56]
Internet-Draft                    hrpcr                       March 2016

   [3] mailto:hrpc@ietf.org

Authors' Addresses

   Niels ten Oever
   Article19

   EMail: niels@article19.org

   Corinne Cath
   Oxford Internet Institute

   EMail: corinne.cath@oii.ox.ac.uk

ten Oever & Cath       Expires September 18, 2016              [Page 57]