<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">

<!--used v2 -->

<?rfc toc="yes" ?>
<?rfc tocdepth="4" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<?rfc rfcedstyle="yes" ?>

<rfc submissionType="IETF" category="std" consensus="yes" number="7071"
     ipr="trust200902">

<front>

 <title abbrev="Reputation Media Type">
	A Media Type for Reputation Interchange
 </title>

 <author fullname="Nathaniel Borenstein" initials="N." surname="Borenstein">
  <organization>Mimecast</organization>
  <address>
   <postal>
    <street>203 Crescent St., Suite 303</street>
    <city>Waltham</city>
    <region>MA</region>
    <code>02453</code>
    <country>USA</country>
   </postal>
   <phone>+1 781 996 5340</phone>
   <email>nsb@guppylake.com</email>
  </address>
 </author>
    
 <author fullname="Murray S. Kucherawy" initials="M. S." surname="Kucherawy">
  <address>
   <postal>
    <street>270 Upland Drive</street>
    <city>San Francisco</city>
    <region>CA</region>
    <code>94127</code>
    <country>USA</country>
   </postal>
   <email>superuser@gmail.com</email>
  </address>
 </author>
    
 <date month="November" year="2013" />

 <area>Applications</area>
 <workgroup>REPUTE Working Group</workgroup>

 <keyword>reputation</keyword>
 <keyword>domain</keyword>
 <keyword>security</keyword>
 <keyword>messaging</keyword>
 <keyword>dkim</keyword>
 <keyword>spf</keyword>
 <keyword>authentication</keyword>

 <abstract>
  <t> This document defines the format of reputation response data
      ("reputons"), the media type for packaging it, and definition of
      a registry for the names of reputation applications and response
      sets. </t>
 </abstract>
</front>

<middle>
 <section title="Introduction">
  <t> This document defines a data object for use when answering a reputation
      query.  It also defines a media type to carry the response set data
      when using a transport method that follows the media type framework,
      such as the query method based on the HyperText Transfer Protocol (HTTP) 
      defined in <xref target="RFC7072"/>.  Any future query
      methods that might be developed are expected to use the same data
      object. </t>

  <t> Also included is the specification for an IANA registry to contain
      definitions and symbolic names for known reputation applications and
      corresponding response sets.  </t>
 </section> <!-- Introduction -->

 <section title="Terminology and Definitions" anchor="terms_and_defs">
  <t>This section defines terms used in the rest of the document.</t>

  <section title="Reputon" anchor="reputon_def">
   <t> A "reputon" is a single independent object containing reputation
       information.  A particular query about a subject of interest will
       receive one or more reputons in response, depending on the nature
       of the data collected and reported by the server. </t>
  </section>

  <section title="Key Words" anchor="defs_keywords">
   <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
      document are to be interpreted as described in
      <xref target="KEYWORDS"/>.</t>
  </section> <!-- Keywords -->

  <section title="Other Definitions" anchor="defs_other">
   <t> Other terms of importance in this document are defined in
       <xref target="RFC7070"/>, the base document in this document
       series. </t>
  </section> <!-- Vocabulary -->
 </section> <!-- Terminology and Definitions -->

 <section title="Description" anchor="descr">
  <t> The meta-format selected for the representation of a reputon is JavaScript
      Object Notation (JSON), defined in <xref target="JSON"/>.  Accordingly,
      a new media type, "application/reputon+json", is defined for the
      JSON representation of reputational data, typically in response to a
      client making a request for such data about some subject.  This media
      type takes no parameters. </t>

  <t> The body of the media type consists of a JSON document that contains
      the reputation information requested.  A detailed description of the
      expected structure of the reply is provided below. </t>

  <t> The media type comprises a single member indicating the name of the
      application context (see Section 5.1 of <xref target="RFC7070"/>)
      in which the reputational data are being returned.
      The application name refers to a registration as described in 
      <xref target="iana_registry"/>, which defines the valid assertions
      and any extensions that might also be valid (i.e., the response set)
      for that application. </t>

  <section anchor="descr_attrs" title="Reputon Attributes">
   <t> The key pieces of data found in a reputon for all reputation
       applications are defined as follows:

       <list style="hanging">
 	<t hangText="rater:"> The identity of the entity aggregating,
		computing, and providing the reputation information,
		typically expressed as a DNS domain name. </t>

	<t hangText="assertion:"> A key word indicating the specific assertion
		or claim being rated. </t>

	<t hangText="rated:"> The identity of the entity being rated.  The
		nature of this field is application specific; it could be
		domain names, email addresses, driver's license numbers, or
		anything that uniquely identifies the entity being rated.
		Documents that define specific reputation applications are
		required to define syntax and semantics for this field. </t>

	<t hangText="rating:"> The overall rating score for that entity,
		expressed as a floating-point number between 0.0 and 1.0
		inclusive.  See <xref target="ratings"/> for discussion. </t>
        </list> </t>

   <t> The following are OPTIONAL for all applications, to be used in contexts
       where they are appropriate:

       <list style="hanging">
	<t hangText="confidence:"> the level of certainty the reputation
	        provider has that the value presented is appropriate,
		expressed as a floating-point number between 0.0 and 1.0
	        inclusive. </t>

	<t hangText="normal-rating:"> An indication of what the reputation
		provider would normally expect as a rating for the subject.
		This allows the client to note that the current rating is
		or is not in line with expectations. </t>

	<t hangText="sample-size:"> The number of data points used to compute
		the rating, possibly an approximation.  Expressed as an
		unsigned 64-bit integer.  Consumers can assume that the count
		refers to distinct data points rather than a count of 
		aggregations (for example, individual votes rather than
		aggregated vote counts) unless it is specified out-of-band
		that some other interpretation is more appropriate.
		The units are deliberately not normatively specified, since
		not all reputation service providers will collect data the
		same way.  </t>

	<t hangText="generated:"> A timestamp indicating when this value was
		generated.  Expressed as the number of seconds since
		January 1, 1970 00:00 UTC. </t>

	<t hangText="expires:"> A timestamp indicating a time beyond which
		the score reported is likely not to be valid.  Expressed as
		the number of seconds since January 1, 1970 00:00 UTC.  See
		<xref target="caching"/> for discussion. </t>
      </list> </t>

   <t> A particular application that registers itself with IANA (per
       <xref target="iana_registry"/>, below) can define
       additional application-specific attribute/value pairs beyond these
       standard ones. </t>

   <t> An application service provider might operate with an enhanced form of
       common services,
       which might in turn prompt development and reporting of specialized
       reputation information.  The details of the enhancements and
       specialized information are beyond the scope of this document, except
       that the underlying JSON syntax is extensible for encoding such
       provider-specific information. </t>
  </section>
 </section> <!-- Description -->

 <section title="Ratings" anchor="ratings">
  <t> The score presented as the value in the rating attribute appears as a
      floating-point value between 0.0 and 1.0 inclusive.  The intent is that
      the definition of an assertion within an application will declare what
      the anchor values 0.0 and 1.0 specifically mean.  Generally speaking,
      1.0 implies full agreement with the assertion, while 0.0 indicates no
      support for the assertion. </t>

  <t> The definition will also specify the type of scale in use when
      generating scores, to which all reputation service providers for that
      application space must adhere.  Further discussion can be found in
      <xref target="RFC7070"/>. </t>
 </section> <!-- Ratings -->

 <section title="Caching" anchor="caching">
  <t> A reputon can contain an "expires" field indicating a timestamp
      after which the client SHOULD NOT use the rating it contains and SHOULD
      issue a new query. </t>

  <t> This specification does not mandate any caching of ratings on the part
      of the client, but there are obvious operational benefits to doing so.
      In the context of reputation, a cached (and hence, stale) rating can
      cause desirable traffic to be identified as undesirable, or
      vice versa. </t>

  <t> Reputation data is typically most volatile when the subject of the
      reputation is young.  Accordingly, if a service chooses to include
      expiration timestamps as part a reply, these values SHOULD be lower
      for subjects about which little data has been collected. </t>
 </section> <!-- Caching -->

 <section anchor="descr_json" title="Reputons">
  <section anchor="syntax" title="Syntax">
   <t> A reputon expressed in JSON 
       is a set of key-value pairs, where the keys are the names of particular
       attributes that comprise a reputon (as listed above, or as provided
       with specific applications), and values are the content associated with
       those keys.  The set of keys that make up a reputon within a given
       application are known as that application's "response set". </t>

   <t> A reputon object typically contains a reply corresponding to the
       assertion for which a client made a specific request.  For example,
       a client asking for assertion "sends-spam" about domain "example.com"
       would expect a reply consisting of a reputon making a "sends-spam"
       assertion about "example.com" and nothing more.  If a client makes
       a request about a subject but does not specify an assertion of interest,
       the server can return reputons about any assertion for which it has
       data; in effect, the client has asked for any available information
       about the subject.  A client that receives an irrelevant reputon
       simply ignores it. </t>

   <t> An empty reputon is an acknowledgement by the server that the request
       has been received, and serves as a positive indication that the server
       does not have the information requested.  This is semantically
       equivalent to returning a reputon with a "sample-size" of zero. </t>

  </section>

  <section anchor="formal" title="Formal Definition">
    <t> <xref target="JSON"/> defines the structure of JSON objects and
        arrays using a set of primitive elements.  Those elements will be
        used to describe the JSON structure of a reputation object. </t>

    <section anchor="formal_json" title="Imported JSON Terms">
     <t> <list style="hanging">
         <t hangText="OBJECT:"> a JSON object, defined in Section 2.2 of
          <xref target="JSON"/> </t>
         <t hangText="MEMBER:"> a member of a JSON object, defined in
          Section 2.2 of <xref target="JSON"/> </t>
         <t hangText="MEMBER-NAME:"> the name of a MEMBER, defined as a
          "string" in Section 2.2 of <xref target="JSON"/> </t>
         <t hangText="MEMBER-VALUE:"> the value of a MEMBER, defined as a
          "value" in Section 2.2 of <xref target="JSON"/> </t>
         <t hangText="ARRAY:"> an array, defined in Section 2.3 of
          <xref target="JSON"/> </t>
         <t hangText="ARRAY-VALUE:"> an element of an ARRAY, defined in
          Section 2.3 of <xref target="JSON"/> </t>
         <t hangText="NUMBER:"> a "number" as defined in Section 2.4 of
          <xref target="JSON"/> </t>
         <t hangText="INTEGER:"> an "integer" as defined in Section 2.4 of
          <xref target="JSON"/> </t>
         <t hangText="STRING:"> a "string" as defined in Section 2.5 of
          <xref target="JSON"/> </t>
        </list> </t>
    </section>

    <section anchor="formal_reputon" title="Reputon Structure">
    <t> Using the above terms for the JSON structures, the syntax of a
        reputation object is defined as follows:

        <list style="hanging">
         <t hangText="reputation-object:"> an OBJECT containing a MEMBER
           reputation-context and a MEMBER reputon-list </t>

         <t hangText="reputation-context:"> a MEMBER with MEMBER-NAME
           "application" and MEMBER-VALUE a STRING (see
           <xref target="descr"/>) </t>

         <t hangText="reputon-list:"> a MEMBER with MEMBER-NAME "reputons"
          and MEMBER-VALUE a reputon-array </t>

         <t hangText="reputon-array:"> an ARRAY, where each ARRAY-VALUE is a
          reputon </t>

         <t hangText="reputon:"> an OBJECT, where each MEMBER is a
          reputon-element </t>

         <t hangText="reputon-element:"> one of the following, defined below:
          rater-value, assertion-value, rated-value, rating-value, conf-value,
          normal-value, sample-value, gen-value, expire-value, ext-value;
          note the following:
          <list style="symbols">
           <t> The order of reputon-element members is not significant. </t>

           <t> A specific reputon-element MUST NOT appear more than once. </t>

           <t> rater-value, assertion-value, rated-value, and rating-value
               are REQUIRED. </t>
          </list> </t>

         <t hangText="rater-value:"> a MEMBER with MEMBER-NAME "rater" and
          MEMBER-VALUE a STRING (see "rater" in
          <xref target="descr_attrs"/>) </t>

         <t hangText="assertion-value:"> a MEMBER with MEMBER-NAME "assertion"
          and MEMBER-VALUE a STRING (see "assertion" in
          <xref target="descr_attrs"/>) </t>

         <t hangText="rated-value:"> a MEMBER with MEMBER-NAME "rated" and
          MEMBER-VALUE a STRING (see "rated" in
          <xref target="descr_attrs"/>) </t>

         <t hangText="rating-value:"> a MEMBER with MEMBER-NAME "rating" and
          MEMBER-VALUE a NUMBER between 0.0 and 1.0 inclusive (see "rating"
          in <xref target="descr_attrs"/>); the number SHOULD NOT not have
          more than three decimal places of precision </t>

         <t hangText="conf-value:"> a MEMBER with MEMBER-NAME "confidence"
          and MEMBER-VALUE a NUMBER between 0.0 and 1.0 inclusive (see
          "confidence" in <xref target="descr_attrs"/>); the number SHOULD NOT
          not have more than three decimal places of precision </t>

         <t hangText="normal-value:"> a MEMBER with MEMBER-NAME "normal-rating"
          and MEMBER-VALUE a NUMBER between 0.0 and 1.0 inclusive (see
          "normal" in <xref target="descr_attrs"/>); the number SHOULD NOT
          not have more than three decimal places of precision </t>

         <t hangText="sample-value:"> a MEMBER with MEMBER-NAME "sample-size"
          and MEMBER-VALUE a non-negative INTEGER (see "sample-size" in
          "normal" in <xref target="descr_attrs"/>) </t>

         <t hangText="gen-value:"> a MEMBER with MEMBER-NAME "generated" and
          MEMBER-VALUE a non-negative INTEGER (see "generated" in
          <xref target="descr_attrs"/>) </t>

         <t hangText="expire-value:"> a MEMBER with MEMBER-NAME "expires"
          and MEMBER-VALUE a non-negative INTEGER (see "expires" in
          <xref target="descr_attrs"/>) </t>

         <t hangText="ext-value:"> a MEMBER, for extension purposes;
          MEMBER-NAME and MEMBER-VALUE will be defined in separate
          application registrations </t>
        </list> </t>
    </section>
  </section>

  <section anchor="examples" title="Examples">
   <t> The following simple example:

	<figure><artwork>
  Content-Type: application/reputon+json

  {
    "application": "baseball",
    "reputons": [
      {
        "rater": "RatingsRUs.example.com",
        "assertion": "is-good",
        "rated": "Alex Rodriguez",
        "rating": 0.99,
        "sample-size": 50000
      }
    ]
  }
	</artwork></figure> </t>

   <t> ...indicates to the client that
       "RatingsRUs.example.com" consolidated 50000 data points (perhaps from
       everyone in Yankee Stadium) and concluded that Alex Rodriguez is
       very, very good (0.99) at something.  It doesn't tell us what he's
       good at, and while it might be playing baseball, it could just as
       well be paying his taxes on time. </t>

   <t> A more sophisticated usage would define a baseball application with a
       response set of specific assertions, so that this example:

	<figure><artwork>
  Content-Type: application/reputon+json

  {
    "application": "baseball",
    "reputons:" [
      {
        "rater": "baseball-reference.example.com",
        "assertion": "hits-for-power",
        "rated": "Alex Rodriguez",
        "rating": 0.99,
        "sample-size": 50000
      }
    ]
  }
	</artwork></figure> </t>

   <t> ...would indicate that 50000 fans polled by the entity
      baseball-reference.example.com rate Alex Rodriguez very highly in
      hitting for power, whereas this example:

	<figure><artwork>
  Content-Type: application/reputon+json

  {
    "application": "baseball",
    "reputons": [
      {
        "rater": "baseball-reference.example.com",
        "assertion": "strong-hitter",
        "rated": "Alex Rodriguez",
        "rating": 0.4,
        "confidence": 0.2,
        "sample-size": 50000
      }
    ]
  }
	</artwork></figure> </t>

   <t> ...would indicate that a similar poll indicated a somewhat weak
       consensus that Alex Rodriguez tends to fail in critical batting
       situations during baseball games. </t>

   <t> The following is an example reputon generated using this schema,
       including the media type definition line that identifies a specific
       reputation application context.  
       Here, reputation agent "rep.example.net" is asserting within
       the context of the "email-id" application (see
       <xref target="RFC7073"/>) that "example.com"
       appears to be associated with spam 1.2% of the time, based on
       just short of 17 million messages analyzed or reported to date.
       The "email-id" application has declared the extension key
       "email-id-identity" to indicate how the subject identifier was used
       in the observed data, establishing some more-specific semantics for
       the "rating" value.  In this case, the extension is used to show
       the identity "example.com", the subject of the query, is extracted
       from the analyzed messages using the DomainKeys Identified Mail
       <xref target="DKIM"/> "d="
       parameter for messages where signatures validate.  The reputation
       agent is 95% confident of this result.  A second reputon is also
       present indicating similar information for the same domain as it
       is used in the context of Sender Policy Framework <xref target="SPF"/>
       evaluations.  (See <xref target="RFC7073"/> for
       details about the registered email identifiers application.) </t>

	<t> <figure><artwork>
  Content-Type: application/reputon+json

  {
    "application": "email-id",
    "reputons": [
      { 
        "rater": "rep.example.net",
        "assertion": "spam",
        "identity": "dkim",
        "rated": "example.com",
        "confidence": 0.95,
        "rating": 0.012,
        "sample-size": 16938213,
        "updated": 1317795852
      },
      {
        "rater": "rep.example.net",
        "assertion": "spam",
        "identity": "spf",
        "rated": "example.com",
        "confidence": 0.98,
        "rating": 0.023,
        "sample-size": 16938213,
        "updated": 1317795852
      }
    ]
  }
	</artwork></figure> </t>
  </section> <!-- Examples -->
 </section> <!-- Reputon Structure -->

 <section title="IANA Considerations" anchor="iana_considerations">
  <t> This document presents two actions for IANA -- namely, the creation of the
      new media type "application/reputon+json" and the creation of a registry
      for reputation application types.  Another document in this series
      creates an initial registry entry for the latter. </t>

  <section title="application/reputon+json Media Type Registration"
           anchor="iana_media">
   <t> This section provides the media type registration application from
       <xref target="MIME-REG"/> for processing by IANA.

       <list style="hanging">
		<t hangText="To:"> media-types@iana.org </t>
		
		<t hangText="Subject:"> Registration of media
			type application/reputon+json </t>

		<t hangText="Type name:"> application </t>

		<t hangText="Subtype name:"> reputon+json </t>

		<t hangText="Required parameters:"> none </t>

		<t hangText="Optional parameters:"> none </t>

		<t hangText="Encoding considerations:">
			"7bit" encoding is sufficient and is
			used to maintain readability when viewed by
			non-MIME mail readers. </t>

		<t hangText="Security considerations:">
			See <xref target="sec_considerations"/> of
			[RFC7071]. </t>

		<t hangText="Interoperability considerations:">
			Implementers may encounter "app" values,
			attribute/value pairs, or response set items
			that they do not support, which are to be
			ignored. </t>

		<t hangText="Published specification:">
			[RFC7071] </t>

		<t hangText="Applications that use this media type:">
			Any application that wishes to query a service
			that provides reputation data using the form
			defined in <xref target="RFC7072"/>.
			The example application is one that provides
			reputation data about DNS domain names and other
			identifiers found in email messages. </t>

		<t hangText="Fragment identifier considerations:"> 
			N/A </t>

		<t hangText="Additional information:"> The value of the
			"app" parameter is registered with IANA. 

			<list style="hanging">
				<t hangText="Deprecated alias names for this type:"> N/A </t>
				<t hangText="Magic number(s):"> N/A </t>
				<t hangText="File extension(s):"> N/A </t>
				<t hangText="Macintosh file type code(s):"> N/A </t>
			</list> </t>

		<t hangText="Person and email address to contact for further information:">
<vspace blankLines="0"/>
			 Murray S. Kucherawy &lt;superuser@gmail.com&gt; </t>


		<t hangText="Intended usage:"> COMMON </t>

		<t hangText="Restrictions on usage:"> N/A </t>

		<t hangText="Author:">
<vspace blankLines="0"/>
			Nathaniel Borenstein 
<vspace blankLines="0"/>
			Murray S. Kucherawy </t>


		<t hangText="Change controller:"> IESG </t>

		<t hangText="Provisional registration?:"> no </t>
       </list> </t>
  </section> <!-- application/reputon+json Media Type Registration -->

  <section title="Reputation Applications Registry" anchor="iana_registry">
   <t> IANA has created the "Reputation Applications" registry.
       This registry contains names of applications used with the
       application/reputon+json media type (and other media types that
       carry reputons), as defined by this document. </t>

   <t> New registrations or updates are published in accordance with either
       the "IETF Review" or "Specification Required" guidelines as described in
       <xref target="IANA-CONSIDERATIONS"/>. </t>

   <t> New registrations and updates are to contain the following information:
	<list style="numbers">
		<t> Symbolic name of the application being registered or
		    updated.  Valid names conform to the ABNF construction
		    "token" as defined in Multipurpose Internet Mail
		    Extensions (MIME) Part One <xref target="MIME"/> </t>

		<t> Short description of the application (i.e., the class
		    of entity about which it reports reputation data) </t>

		<t> The document in which the application is defined </t>

		<t> New or updated status, which is to be one of:

		    <list style="hanging">
			<t hangText="current:"> The application is in
				current use </t>
			<t hangText="deprecated:"> The application is in
				current use but its use is discouraged </t>
			<t hangText="historic:"> The application is no
				longer in current use </t>
		    </list> </t>
	</list> </t>

	<t> A specification for an application space needs to be specific and
	    clear enough to allow interoperability, and include at least the
	    following details:

	    <list style="symbols">
		<t> The application's symbolic name, as it appears in the
		    registration (see above) </t>

		<t> A description of the subject of a query within this
		    reputation, and a legal syntax for the same </t>

		<t> An optional table of query parameters that are specific
		    to this application; each table entry must include: 

		    <list style="hanging">
			<t hangText="Name:"> Name of the query parameter </t>
			<t hangText="Status:"> (as above) </t>
			<t hangText="Description:"> A short description
				of the purpose of this parameter </t>
			<t hangText="Syntax:"> A reference to a description
				of valid syntax for the parameter's value </t>
			<t hangText="Required:"> "yes" if the parameter is
				mandatory; "no" otherwise </t>
		    </list> </t>

		<t> A list of one or more assertions registered within this
		    application; each table entry is to include:

		    <list style="hanging">
			<t hangText="Name:"> Name of the assertion </t>
			<t hangText="Description:"> A short description
				of the assertion, with specific meanings for
			        values of 0.0 and 1.0 </t>
			<t hangText="Scale:"> A short description
				of the scale used in computing the value
				(see <xref target="ratings"/> of this
				document) </t>
		    </list> </t>

		<t> An optional list of one or more response set extension
		    keys for use within this application; each table entry
		    is to include:

		    <list style="hanging">
			<t hangText="Name:"> Name of the extension key </t>
			<t hangText="Description:"> A short description
				of the key's intended meaning </t>
			<t hangText="Syntax:"> A description of valid values
				that can appear associated with the key </t>
		    </list> </t>
	    </list> </t>

   <t> The names of attributes registered should be prefixed by the name
       of the application itself (e.g., the "foo" application registering a
       "bar" attribute should call it "foo-bar") to avoid namespace
       collisions. </t>

   <t> For registrations qualifying under "Specification Required" rules, the
       Designated Expert <xref target="IANA-CONSIDERATIONS" /> should confirm the document meets the minima
       described above and otherwise looks generally acceptable, and then
       approve the registration. </t>
  </section> <!-- Reputation Application Registry -->
 </section> <!-- IANA Considerations -->

 <section title="Security Considerations" anchor="sec_considerations">
  <t> This document is primarily an IANA action registering a media type.
      It does not describe a new protocol that might introduce security
      considerations. </t>

  <t> Discussion of the security and operational impacts of using reputation
      services in general can be found throughout
      <xref target="CONSIDERATIONS"/>. </t>
 </section> <!-- Security Considerations -->
</middle>

<back>
 <references title="Normative References">




<reference anchor='JSON'>

<front>
<title>The application/json Media Type for JavaScript Object Notation (JSON)</title>
<author initials='D.' surname='Crockford' fullname='D. Crockford'>
<organization /></author>
<date year='2006' month='July' />
<abstract>
<t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format.  It was derived from the ECMAScript Programming Language Standard.  JSON defines a small set of formatting rules for the portable representation of structured data.  This memo provides information for the Internet community.</t></abstract></front>

<seriesInfo name='RFC' value='4627' />
<format type='TXT' octets='16319' target='http://www.rfc-editor.org/rfc/rfc4627.txt' />
</reference>




<reference anchor='KEYWORDS'>

<front>
<title abbrev='RFC Key Words'>Key words for use in RFCs to Indicate Requirement Levels</title>
<author initials='S.' surname='Bradner' fullname='Scott Bradner'>
<organization>Harvard University</organization>
<address>
<postal>
<street>1350 Mass. Ave.</street>
<street>Cambridge</street>
<street>MA 02138</street></postal>
<phone>- +1 617 495 3864</phone>
<email>sob@harvard.edu</email></address></author>
<date year='1997' month='March' />
<area>General</area>
<keyword>keyword</keyword>
<abstract>
<t>
   In many standards track documents several words are used to signify
   the requirements in the specification.  These words are often
   capitalized.  This document defines these words as they should be
   interpreted in IETF documents.  Authors who follow these guidelines
   should incorporate this phrase near the beginning of their document:

<list>
<t>
      The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
      NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and
      "OPTIONAL" in this document are to be interpreted as described in
      RFC 2119.
</t></list></t>
<t>
   Note that the force of these words is modified by the requirement
   level of the document in which they are used.
</t></abstract></front>

<seriesInfo name='BCP' value='14' />
<seriesInfo name='RFC' value='2119' />
<format type='TXT' octets='4723' target='http://www.rfc-editor.org/rfc/rfc2119.txt' />
<format type='HTML' octets='17970' target='http://xml.resource.org/public/rfc/html/rfc2119.html' />
<format type='XML' octets='5777' target='http://xml.resource.org/public/rfc/xml/rfc2119.xml' />
</reference>


<!-- draft-ietf-repute-model; companion Doc RFC 7070-->
<reference anchor='RFC7070'>
<front>
<title>An Architecture for Reputation Reporting</title>

<author initials='N' surname='Borenstein' fullname='Nathaniel Borenstein'>
    <organization />
</author>

<author initials='M' surname='Kucherawy' fullname='Murray Kucherawy'>
    <organization />
</author>

<author initials='A' surname='Sullivan' fullname='Andrew Sullivan'>
    <organization />
</author>

<date month='November' year='2013' />

<abstract><t>This document describes a general architecture for a reputation-based service, allowing one to request reputation-related data over the Internet, where "reputation" refers to predictions or expectations about an entity or an identifier such as a domain name.  The document roughly follows the recommendations of RFC4101 for describing a protocol model.</t></abstract>

</front>

<seriesInfo name='RFC' value='7070' />

</reference>



<!--draft-ietf-repute-query-http; Companion Doc; RFC7072 -->
<reference anchor='RFC7072'>
<front>
<title>A Reputation Query Protocol</title>

<author initials='N' surname='Borenstein' fullname='Nathaniel Borenstein'>
    <organization />
</author>

<author initials='M' surname='Kucherawy' fullname='Murray Kucherawy'>
    <organization />
</author>

<date month='November' year='2013' />

<abstract><t>This document defines a mechanism to conduct queries for reputation information over the Hypertext Transfer Protocol using JSON as the payload meta-format.</t></abstract>

</front>

<seriesInfo name='RFC' value='7072' />

</reference>


 </references>

 <references title="Informative References">




<reference anchor='DKIM'>

<front>
<title>DomainKeys Identified Mail (DKIM) Signatures</title>
<author initials='D.' surname='Crocker' fullname='D. Crocker' role='editor'>
<organization /></author>
<author initials='T.' surname='Hansen' fullname='T. Hansen' role='editor'>
<organization /></author>
<author initials='M.' surname='Kucherawy' fullname='M. Kucherawy' role='editor'>
<organization /></author>
<date year='2011' month='September' />
<abstract>
<t>DomainKeys Identified Mail (DKIM) permits a person, role, or organization that owns the signing domain to claim some responsibility for a message by associating the domain with the message. This can be an author's organization, an operational relay, or one of their agents. DKIM separates the question of the identity of the Signer of the message from the purported author of the message. Assertion of responsibility is validated through a cryptographic signature and by querying the Signer's domain directly to retrieve the appropriate public key. Message transit from author to recipient is through relays that typically make no substantive change to the message content and thus preserve the DKIM signature.&lt;/t>&lt;t> This memo obsoletes RFC 4871 and RFC 5672. [STANDARDS-TRACK]</t></abstract></front>

<seriesInfo name='STD' value='76' />
<seriesInfo name='RFC' value='6376' />
<format type='TXT' octets='176999' target='http://www.rfc-editor.org/rfc/rfc6376.txt' />
</reference>


<!-- draft-ietf-repute-considerations: I-D Exists -->
<reference anchor='CONSIDERATIONS'>
<front>
<title>Operational Considerations Regarding Reputation Services</title>

<author initials='M' surname='Kucherawy' fullname='Murray Kucherawy'>
    <organization />
</author>

<date month='May'  year='2013' />

<abstract><t>The use of reputation systems is has become a common tool in many applications that seek to apply collected intelligence about traffic sources.  Often this is done because it is common or even expected operator practice.  It is therefore important to be aware of a number of considerations for both operators and consumers of the data.  This document includes a collection of the best advice available regarding providers and consumers of reputation data, based on experience to date.  Much of this is based on experience with email reputation systems, but the concepts are generally applicable.</t></abstract>

</front>

<seriesInfo name="Work in" value="Progress"/>

</reference>

<!--draft-ietf-repute-email-identifiers; Companion Doc, RFC 7073-->
<reference anchor='RFC7073'>
<front>
<title>A Reputation Response Set for Email Identifiers</title>

<author initials='N' surname='Borenstein' fullname='Nathaniel Borenstein'>
    <organization />
</author>

<author initials='M' surname='Kucherawy' fullname='Murray Kucherawy'>
    <organization />
</author>

<date month='November' year='2013' />

<abstract><t>This document defines a response set for describing assertions a reputation service provider can make about email identifers, for use in generating reputons.</t></abstract>

</front>

<seriesInfo name='RFC' value='7073' />

</reference>




<reference anchor='IANA-CONSIDERATIONS'>

<front>
<title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
<author initials='T.' surname='Narten' fullname='T. Narten'>
<organization /></author>
<author initials='H.' surname='Alvestrand' fullname='H. Alvestrand'>
<organization /></author>
<date year='2008' month='May' />
<abstract>
<t>Many protocols make use of identifiers consisting of constants and other well-known values. Even after a protocol has been defined and deployment has begun, new values may need to be assigned (e.g., for a new option type in DHCP, or a new encryption or authentication transform for IPsec). To ensure that such quantities have consistent values and interpretations across all implementations, their assignment must be administered by a central authority. For IETF protocols, that role is provided by the Internet Assigned Numbers Authority (IANA).&lt;/t>&lt;t> In order for IANA to manage a given namespace prudently, it needs guidelines describing the conditions under which new values can be assigned or when modifications to existing values can be made. If IANA is expected to play a role in the management of a namespace, IANA must be given clear and concise instructions describing that role. This document discusses issues that should be considered in formulating a policy for assigning values to a namespace and provides guidelines for authors on the specific text that must be included in documents that place demands on IANA.&lt;/t>&lt;t> This document obsoletes RFC 2434. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t></abstract></front>

<seriesInfo name='BCP' value='26' />
<seriesInfo name='RFC' value='5226' />
<format type='TXT' octets='66160' target='http://www.rfc-editor.org/rfc/rfc5226.txt' />
</reference>




<reference anchor='MIME'>

<front>
<title abbrev='Internet Message Bodies'>Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies</title>
<author initials='N.' surname='Freed' fullname='Ned Freed'>
<organization>Innosoft International, Inc.</organization>
<address>
<postal>
<street>1050 East Garvey Avenue South</street>
<city>West Covina</city>
<region>CA</region>
<code>91790</code>
<country>US</country></postal>
<phone>+1 818 919 3600</phone>
<facsimile>+1 818 919 3614</facsimile>
<email>ned@innosoft.com</email></address></author>
<author initials='N.S.' surname='Borenstein' fullname='Nathaniel S. Borenstein'>
<organization>First Virtual Holdings</organization>
<address>
<postal>
<street>25 Washington Avenue</street>
<city>Morristown</city>
<region>NJ</region>
<code>07960</code>
<country>US</country></postal>
<phone>+1 201 540 8967</phone>
<facsimile>+1 201 993 3032</facsimile>
<email>nsb@nsb.fv.com</email></address></author>
<date year='1996' month='November' />
<abstract>
<t>STD 11, RFC 822, defines a message representation protocol specifying considerable detail about US-ASCII message headers, and leaves the message content, or message body, as flat US-ASCII text.  This set of documents, collectively called the Multipurpose Internet Mail Extensions, or MIME, redefines the format of messages to allow for</t>
<t>(1)   textual message bodies in character sets other than US-ASCII,</t>
<t>(2)   an extensible set of different formats for non-textual message bodies,</t>
<t>(3)   multi-part message bodies, and</t>
<t>(4)   textual header information in character sets other than US-ASCII.</t>
<t>These documents are based on earlier work documented in RFC 934, STD 11, and RFC 1049, but extends and revises them.  Because RFC 822 said so little about message bodies, these documents are largely orthogonal to (rather than a revision of) RFC 822.</t>
<t>This initial document specifies the various headers used to describe the structure of MIME messages. The second document, RFC 2046, defines the general structure of the MIME media typing system and defines an initial set of media types. The third document, RFC 2047, describes extensions to RFC 822 to allow non-US-ASCII text data in Internet mail header fields. The fourth document, RFC 2048, specifies various IANA registration procedures for MIME-related facilities. The fifth and final document, RFC 2049, describes MIME conformance
  criteria as well as providing some illustrative examples of MIME message formats, acknowledgements, and the bibliography.</t>
<t>These documents are revisions of RFCs 1521, 1522, and 1590, which themselves were revisions of RFCs 1341 and 1342.  An appendix in RFC 2049 describes differences and changes from previous versions.</t></abstract></front>

<seriesInfo name='RFC' value='2045' />
<format type='TXT' octets='72932' target='http://www.rfc-editor.org/rfc/rfc2045.txt' />
</reference>




<reference anchor='MIME-REG'>

<front>
<title>Media Type Specifications and Registration Procedures</title>
<author initials='N.' surname='Freed' fullname='N. Freed'>
<organization /></author>
<author initials='J.' surname='Klensin' fullname='J. Klensin'>
<organization /></author>
<author initials='T.' surname='Hansen' fullname='T. Hansen'>
<organization /></author>
<date year='2013' month='January' />
<abstract>
<t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols.  This memo documents an Internet Best Current Practice.</t></abstract></front>

<seriesInfo name='BCP' value='13' />
<seriesInfo name='RFC' value='6838' />
<format type='TXT' octets='72942' target='http://www.rfc-editor.org/rfc/rfc6838.txt' />
</reference>




<reference anchor='SPF'>

<front>
<title>Sender Policy Framework (SPF) for Authorizing Use of Domains in E-Mail, Version 1</title>
<author initials='M.' surname='Wong' fullname='M. Wong'>
<organization /></author>
<author initials='W.' surname='Schlitt' fullname='W. Schlitt'>
<organization /></author>
<date year='2006' month='April' />
<abstract>
<t>E-mail on the Internet can be forged in a number of ways.  In particular, existing protocols place no restriction on what a sending host can use as the reverse-path of a message or the domain given on the SMTP HELO/EHLO commands.  This document describes version 1 of the ender Policy Framework (SPF) protocol, whereby a domain may explicitly authorize the hosts that are allowed to use its domain name, and a receiving host may check such authorization.  This memo defines an Experimental Protocol for the Internet community.</t></abstract></front>

<seriesInfo name='RFC' value='4408' />
<format type='TXT' octets='105009' target='http://www.rfc-editor.org/rfc/rfc4408.txt' />
</reference>


 </references>

 <section title="Acknowledgments" anchor="acks">
  <t> The authors wish to acknowledge the contributions of the following to
      this specification:
      Frank Ellermann,
      Tony Hansen,
      Jeff Hodges,
      Simon Hunt,
      John Levine,
      David F. Skoll,
      and
      Mykyta Yevstifeyev. </t>
 </section>


  </back>
</rfc>
