<?xml version='1.0'?>
 <!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
    <!ENTITY rfc2119 PUBLIC '' 
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml'> 
    <!ENTITY rfc4287 PUBLIC '' 
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4287.xml'> 
    <!ENTITY rfc3339 PUBLIC '' 
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3339.xml'>  
    <!ENTITY rfc3986 PUBLIC '' 
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3986.xml'>  
    <!ENTITY rfc3987 PUBLIC '' 
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3987.xml'>  
    <!ENTITY rfc3023 PUBLIC '' 
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3023.xml'>  
    <!ENTITY xmlnames PUBLIC ''
      'http://xml.resource.org/public/rfc/bibxml4/reference.W3C.REC-xml-names-19990114.xml'> 
    <!ENTITY xml PUBLIC ''
      'http://xml.resource.org/public/rfc/bibxml4/reference.W3C.REC-xml-20040204.xml'> 
    <!ENTITY xmlbase PUBLIC ''
      'http://xml.resource.org/public/rfc/bibxml4/reference.W3C.REC-xmlbase-20010627.xml'>
    <!ENTITY xmldsig PUBLIC ''
      'http://xml.resource.org/public/rfc/bibxml4/reference.W3C.REC-xmldsig-core-20020212.xml'>
    <!ENTITY c14n PUBLIC ''
      'http://xml.resource.org/public/rfc/bibxml4/reference.W3C.REC-xml-c14n-20010315.xml'>
    <!ENTITY excc14n PUBLIC ''
      'http://xml.resource.org/public/rfc/bibxml4/reference.W3C.REC-xml-exc-c14n-20020718.xml'>
    <!ENTITY xmlenc PUBLIC ''
      'http://xml.resource.org/public/rfc/bibxml4/reference.W3C.REC-xmlenc-core-20021210.xml'>
]>
<?rfc compact="yes" ?>
<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc iprnotified="no" ?>
<?rfc strict="yes" ?>
<rfc category="info" ipr="trust200811" docName="draft-snell-atompub-tombstones-14.txt"> 
<front> 
<title abbrev="Atom deleted-entry">The Atom "deleted-entry" Element</title> 
<author initials="J.M." surname="Snell" fullname="James M Snell"> 
<organization></organization> 
<address> 
<postal> 
<street></street> 
<city></city> <region></region> <code></code> 
<country></country> 
</postal> 
<phone></phone> 
<email>jasnell@us.ibm.com</email> 
<uri>http://ibm.com</uri> 
</address> 
</author> 
<date month="January" year="2012" /> 
<area>General</area> 
<keyword>I-D</keyword> 
<keyword>Internet-Draft</keyword> 
<keyword>XML</keyword> 
<keyword>Extensible Markup Language</keyword> 
<keyword>Atom</keyword> 
<keyword>RSS</keyword> 
<keyword>Syndication</keyword> 
<abstract><t>This specification adds mechanisms to the Atom Syndication Format 
which publishers of Atom Feed and Entry documents can use to explicitly 
identify Atom entries that have been removed.</t></abstract> 
</front> 
<middle> 
<section title="Introduction"> 
 
<t>This specification adds mechanisms to the Atom Syndication Format which 
publishers of Atom Feed and Entry documents can use to explicitly identify 
Atom entries that have been removed.</t> 
 
</section> 
 
<section title="Notational Conventions"> 
 
<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="RFC2119" />.</t>
 
<t>This specification uses XML Namespaces <xref target="W3C.REC-xml-names-19990114"/> 
to uniquely identify XML element names.  It uses the following namespace prefix 
for the indicated namespace URI;</t> 
 
<figure><artwork><![CDATA[ 
 "at": "http://purl.org/atompub/tombstones/1.0" 
]]></artwork></figure> 
 
</section> 
 
<section title="The at:deleted-entry element"> 
 
<t>The at:deleted-entry element represents an Atom Entry that has been removed.</t> 
 
<figure><artwork><![CDATA[ 
  deletedEntry =
    element at:deleted-entry {
      atomCommonAttributes,
      attribute ref { atomUri },
      attribute when { atomDateConstruct },
      ( element at:by { atomPersonConstruct }?
      & element at:comment { atomTextConstruct }?
      & element atom:link { atomLink }*
      & element atom:source { atomSource }?
      & anyElement* )
   } 
]]></artwork></figure> 
 
<t>The at:deleted-entry element MUST contain a ref attribute whose value 
specifies the value of the atom:id of the entry that has been removed.</t> 
 
<t>The at:deleted-entry element MUST contain a when attribute whose value is an 
<xref target="RFC3339"/> "date-time" specifying the instant the entry was removed.
An uppercase "T" character MUST be used to separate date and time, and an uppercase 
"Z" character MUST be present in the absence of a numeric time zone offset</t> 
 
<t>The at:deleted-entry element MAY contain one at:by element used to identify the
entity that removed the entry. The at:by element is an Atom Person
Construct as defined by Section 3.2 of <xref target="RFC4287" />.</t> 
 
<t>The at:deleted-entry element MAY contain one at:comment element whose value 
provides additional, language-sensitive information about the deletion operation.  
The atom:comment element is an Atom Text Construct as defined by Section 3.1 of 
<xref target="RFC4287" />.</t> 
 
<t>The at:deleted-entry element MAY contain any number of atom:link elements 
as specified by Section 4.2.7 of <xref target="RFC4287" />.</t>

<t>The at:deleted-entry element MAY contain one atom:source element as defined
by Section 4.2.11 of <xref target="RFC4287" />. Within the context of an
at:deleted-entry element, the atom:source element is intended to allow the 
aggregation of at:deleted-entry element from different feeds while retaining
information about an at:deleted-entry's source feed. When an at:deleted-entry
element appears in a Feed document other than it's source Feed or when an
at:deleted-entry element that has a source Feed document is used in the 
context of a Deleted Entry Document, it MUST contain an atom:source element.</t>
 
<t>An Atom feed MAY contain any number of at:deleted-entry elements, but 
MUST NOT contain more than one with the same combination of ref and when 
attribute values.</t> 
 
<figure><artwork><![CDATA[ 
  <feed xmlns="http://www.w3.org/2005/Atom"
        xmlns:at="http://purl.org/atompub/tombstones/1.0"> 
     ...
     <!-- Minimal deleted-entry --> 
     <at:deleted-entry 
       ref="tag:example.org,2005:/entries/1" 
       when="2005-11-29T12:11:12Z"/> 
     
     <!-- Extended deleted-entry --> 
     <at:deleted-entry 
       ref="tag:example.org,2005:/entries/2"
       when="2005-11-29T12:11:12Z"> 
       <at:by> 
         <name>John Doe</name> 
         <email>jdoe@example.org</email> 
       </at:by> 
       <at:comment>Removed comment spam</at:comment> 
     </at:deleted-entry> 
     ...
  </feed> 
]]></artwork></figure> 
 
<t>An Atom feed MAY contain atom:entry elements and at:deleted-entry elements 
sharing the same atom:id value.  Atom processors SHOULD ignore any at:deleted-entry 
elements sharing an atom:id value with an atom:entry whose atom:updated element 
specifies a date and time more recent than or equal to the at:deleted-entry 
element's when value.</t> 
 
<t>Implementors should note that the at:deleted-entry element is informative
in nature only and may be ignored by Atom processors. The presence of an 
at:deleted-entry element does not guarantee that the atom:entry to which it
is referring will no longer be available.</t>
 
<t>Elements and attributes from any XML vocabulary MAY be used within an
at:deleted-entry element. Processors encountering such markup MUST NOT stop 
processing or signal an error. It might be the case that the Processor is able 
to process the foreign markup correctly and does so.  When unknown markup is 
encountered as a child of at:deleted-entry, Processors MAY bypass the markup 
and any textual content and MUST NOT change their behavior as a result of the 
markup's presence.</t> 
 
<t>This specification allows the use of IRIs <xref target="RFC3987" /> in 
precisely the same manner specified in Section 2 of <xref target="RFC4287" />.</t>

<t>Any element defined by this specification MAY have an xml:base
attribute <xref target="W3C.REC-xmlbase-20010627" />.  When xml:base is 
used, it serves the function described in section 5.1.1 of <xref target="RFC3986" />, 
establishing the base URI (or IRI) for resolving any relative references found 
within the effective scope of the xml:base attribute.</t>

<t>Any element defined by this specification MAY have an xml:lang attribute, 
whose content indicates the natural language for the element and its descendents.  
Requirements regarding the content and interpretation of xml:lang are specified in XML 1.0
<xref target="W3C.REC-xml-20040204" />, Section 2.12.</t>
 
</section> 
 
<section title="Deleted Entry Document">

<t>A "Deleted Entry Document" represents exactly one at:deleted-entry element
outside the context of an Atom feed. It's root is the at:deleted-entry element.</t>

<figure><artwork><![CDATA[
namespace at = "http://purl.org/atompub/tombstones/1.0"
start = at:deleted-entry 
]]></artwork></figure>

<t>Deleted Entry Documents are specified in terms of the XML Information Set, 
serialized as XML 1.0 <xref target="W3C.REC-xml-20040204" /> and identified 
with the "application/atomdeleted+xml" media type. Deleted Entry Documents 
MUST be well-formed XML. This specification does not define a DTD for Deleted
Entry Documents, and hence does not require them to be valid (in the sense 
used by XML).</t>

</section>

<section title="Digital Signatures">

<t>The at:deleted-entry element MAY have an Enveloped Signature, as described 
by XML-Signature and Syntax Processing <xref target="W3C.REC-xmldsig-core-20020212" />.</t>

<t>Processors MUST NOT reject an at:deleted-entry containing such a
signature because they are not capable of verifying it; they MUST
continue processing and MAY inform the user of their failure to
validate the signature.</t>

<t>In other words, the presence of an element with the namespace URI
"http://www.w3.org/2000/09/xmldsig#" and a local name of "Signature"
as a child of the document element MUST NOT cause an Processor
to fail merely because of its presence.</t>

<t>Section 6.5.1 of <xref target="W3C.REC-xmldsig-core-20020212" /> requires support for
Canonical XML <xref target="W3C.REC-xml-c14n-20010315" />.  However, many implementers do 
not use it because signed XML documents enclosed in other XML documents have 
their signatures broken.  Thus, Processors that verify signed at:deleted-entry
elements MUST be able to canonicalize with the exclusive XML canonicalization method
identified by the URI "http://www.w3.org/2001/10/xml-exc-c14n#", as
specified in Exclusive XML Canonicalization <xref target="W3C.REC-xml-exc-c14n-20020718" />.</t>

<t>Intermediaries such as aggregators may need to add an atom:source
element to an at:deleted-entry that does not contain its own atom:source
element.  If such an entry is signed, the addition will break the
signature.  Thus, a publisher of individually-signed at:deleted-entry's should
strongly consider adding an atom:source element to those elements
before signing them.  Implementers should also be aware of the issues
concerning the use of markup in the "xml:" namespace as it interacts
with canonicalization.</t>

<t>Section 4.4.2 of <xref target="W3C.REC-xmldsig-core-20020212" /> requires support for
DSA signatures and recommends support for RSA signatures.  However,
because of the much greater popularity in the market of RSA versus
DSA, Atom Processors that verify signed Atom Documents MUST be able
to verify RSA signatures, but do not need be able to verify DSA
signatures.  Due to security issues that can arise if the keying
material for message authentication code (MAC) authentication is not
handled properly, Atom Documents SHOULD NOT use MACs for signatures.</t>

</section>
 
<section title="Encryption">

<t>The root of a Deleted Entry Document (the at:deleted-entry element) MAY be 
encrypted, using the mechanisms described by XML Encryption Syntax and
Processing <xref target="W3C.REC-xmlenc-core-20021210"/>.</t>

<t>Section 5.1 of <xref target="W3C.REC-xmlenc-core-20021210"/> requires support of
TripleDES, AES-128, and AES-256. Processors that decrypt Deleted Entry
Documents MUST be able to decrypt with AES-128 in Cipher Block
Chaining (CBC) mode.</t>

<t>Encryption based on <xref target="W3C.REC-xmlenc-core-20021210"/> does not ensure
integrity of the original document.  There are known cryptographic
attacks where someone who cannot decrypt a message can still change
bits in a way where part or all the decrypted message makes sense but
has a different meaning.  Thus, Processors that decrypt Deleted Entry
Documents SHOULD check the integrity of the decrypted document by
verifying the hash in the signature (if any) in the document, or by
verifying a hash of the document within the document (if any).</t>

<t>When a Deleted Entry Document is to be both signed and encrypted, it is
generally a good idea to first sign the document, then encrypt the
signed document.  This provides integrity to the base document while
encrypting all the information, including the identity of the entity
that signed the document.  Note that, if MACs are used for
authentication, the order MUST be that the document is signed and
then encrypted, and not the other way around.</t>

</section>
 
<section title="Security Considerations"> 
  <t>As specified in <xref target="RFC4287"/>, Atom processors should be
  aware of the potential for spoofing attacks where an attacker publishes
  atom:entry or atom:deleted-entry elements using the same atom:id values as 
  entries from other Atom feeds.  An attacker may attempt to trick an application 
  into believing that a given entry has either been removed from or added to a feed.  
  To mitigate this issue, Atom processors are advised to ignore at:deleted-entry 
  elements referencing entries that have not previously appeared within the 
  containing Feed document and should take steps to verify the origin of the
  Atom feed before considering the entries to be removed.</t> 
  
  <t>The at:deleted-entry element can be encrypted and signed using
  <xref target="W3C.REC-xmlenc-core-20021210" /> and <xref target="W3C.REC-xmldsig-core-20020212" />,
  respectively, and are subject to the security considerations implied
  by their use.</t>

  <t>Digital signatures provide authentication, message integrity, and
  non-repudiation with proof of origin.  Encryption provides data
  confidentiality.</t>
  
  <t>An application supporting the use of digitally signed atom:entry and 
  at:deleted-entry elements should be aware of the potential issues that
  could arise if a at:deleted-entry element indicating the deletion of 
  an atom:entry element has been signed using a different key than what was 
  used to sign the atom:entry, or when an unsigned at:deleted-entry is used to 
  indicate the deletion of a signed atom:entry. Either case can potentially 
  indicate a form of spoofing attack. Processors must take steps to verify 
  the validity of the at:deleted-entry element.</t>
  
</section> 
 
<section title="IANA Considerations"> 
  
<t>A Deleted Entry Document, when serialized as XML 1.0, can be identified with
the following media type:</t>

<t><list>
<t>Type name: application</t>
<t>Subtype name: atomdeleted+xml</t>
<t>Required parameters: None</t>
<t>Optional parameters: "charset" : This parameter has semantics identical to
the charset parameter of the "application/xml" media type as specified in 
<xref target="RFC3023"/>.</t>
<t>Encoding considerations: Identical to those of "application/xml" as described
in <xref target="RFC3023" />, Section 3.2.</t>
<t>Security considerations: As defined in this specification. In addition,
as this media type uses the "+xml" convention, it shares the same security
considerations as described in <xref target="RFC3023" />, Section 10.</t>
<t>Interoperability considerations: There are no known interoperability issues.</t>
<t>Published specification: This specification.</t>
<t>Applications that use this media type: Undefined. As an extension to the 
Atom Syndication Format (<xref target="RFC4287" />), this specification may 
be used within any application that uses the Atom Format.</t>
<t>Additional information:
<list>
<t>Magic number(s): As specified for "application/xml" in <xref target="RFC3023" />, Section 3.2</t>
<t>File extension(s): .atomdeleted</t>
<t>Macintosh file type code(s): TEXT</t>
</list></t>
<t>Person &amp; email address to contact for further information: James M Snell &lt;jasnell@us.ibm.com&gt;</t>
<t>Intended usage: COMMON</t>
<t>Restrictions on usage: None.</t>
<t>Author: James M Snell &lt;jasnell@us.ibm.com&gt;</t>
<t>Change controller: IESG</t>
</list></t>
  
</section> 
 
<section title="Acknowledgements"> 
<t>The author gratefully acknowledges the feedback from the members of the 
Atom Publishing Format and Protocol working group during the development of 
this specification.</t> 
</section> 
 
</middle> 
 
<back> 
<references title="Normative References"> 
  &rfc2119;
  &rfc3339;
  &rfc3986;
  &rfc3987;
  &rfc4287;
  &rfc3023;
  &xmlnames;
  &xml;
  &xmlbase;
  &xmldsig;
  &c14n;
  &excc14n;
  &xmlenc;
</references> 
</back> 
</rfc>