From 6bd96e45134cf6b87d555ee3311ad801d1e6b5cd Mon Sep 17 00:00:00 2001 From: Peter Saint-Andre Date: Mon, 12 May 2008 19:31:10 +0000 Subject: [PATCH] 0.8 git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@1840 4b5297f7-1745-476d-ba37-a9c6900126ab --- xep-0158.xml | 95 ++++++++++++++++++++++++++-------------------------- 1 file changed, 47 insertions(+), 48 deletions(-) diff --git a/xep-0158.xml b/xep-0158.xml index 88cd2c45..cdfae0e8 100644 --- a/xep-0158.xml +++ b/xep-0158.xml @@ -25,6 +25,12 @@ TO BE ASSIGNED &ianpaterson; &stpeter; + + 0.8 + 2008-05-12 + psa +

Move text regarding labels to new internationalization considerations section; removed necessity that ID of IQ-set shall match ID of challenge, since this is not consistent with existing usage that IDs are generated by the sender of an IQ.

+
0.7 2008-04-28 @@ -95,13 +101,13 @@

An entity (client or server) MAY send a challenge immediately after receiving a stanza from another entitiy. An entity MUST NOT send challenges under any other circumstances. Hereafter, the entity that generates the stanza that triggers the challenge is called the "sender" and the entity that sends the challenge is called the "challenger".

Love pills - 75% OFF - http://www.spimmer.com/lovepills.html + http://www.abuser.com/lovepills.html ]]> @@ -110,7 +116,7 @@

The challenger SHOULD include an explanation (in the &BODY; element) for clients that do not support this protocol. The challenger MAY also include a URL (typically a Web page with instructions) using &xep0066; as an alternative for clients that do not support the challenge form. Note: Even if it provides a URL, a challenger MUST always provide a challenge form. A constrained client, like a mobile phone, cannot present a Web page to its user.

@@ -179,7 +185,7 @@

The sender's client SHOULD ignore the challenge stanza in either of the following cases:

    -
  • If it has not recently sent (e.g., in the last two minutes) a stanza to the JID specified in the 'from' field of the form with the 'id' specified in the 'sid' field (or with no 'id' if no 'sid' field is included). Otherwise the user's presence would be disclosed, or a spim robot might dupe the user into providing answers to other people's challenges!
  • +
  • If it has not recently sent (e.g., in the last two minutes) a stanza to the JID specified in the 'from' field of the form with the 'id' specified in the 'sid' field (or with no 'id' if no 'sid' field is included). Otherwise the user's presence would be disclosed, or a robot might dupe the user into providing answers to other people's challenges!
  • If the 'from' attribute of the challenge stanza does not match the 'from' field of the form. (If the values are different, then they still match if the bare JIDs are the same, or if the 'from' attribute is the domain of the other JID.)

Otherwise, if the challenger provided a URL using Out-of-Band Data, then the sender's client MAY present the URL to the sender, instead of responding to the challenge form, in any of the following cases:

@@ -188,7 +194,7 @@
  • if it does not support all of the required challenges (see Multiple Challenges)
  • if it does not support enough of the challenges (see Multiple Challenges)
  • -

    Otherwise, the sender's client MUST respond to the challenge, preserving the 'id' attribute of the challenge stanza.

    +

    Otherwise, the sender's client MUST respond to the challenge.

    The sender's client MUST respond with a ¬acceptable; error in any of the following cases:

    • if it does not support all of the required challenges (see Multiple Challenges)
    • @@ -197,7 +203,7 @@
    @@ -209,10 +215,10 @@

    Otherwise, it MUST select one challenge according to the sender's preferences and submit the sender's response form to the challenger.

    + id='z140r0s'> @@ -238,8 +244,8 @@ + to='robot@abuser.com/zombie' + id='z140r0s'> @@ -249,15 +255,15 @@ + to='robot@abuser.com/zombie' + id='z140r0s'/> ]]>

    However, if the sender submits an incorrect response the challenger SHOULD send it a ¬acceptable; error with type "cancel": If a large proportion of the responses a server is receiving from another IP are incorrect then it SHOULD inform the administrator of the other server using the protocol specified in &xep0161; or &xep0236;. It SHOULD also automatically block all stanzas from the abusive user, users, server or IP.

    + to='robot@abuser.com/zombie' + id='z140r0s'> @@ -269,7 +275,7 @@

    The challenger MAY demand responses to more than one of the challenges it is offering; this is done by including an 'answers' <field/> element in the form. The challenger also MAY require responses to particular challenges; this is done by including <required/> elements in the compulsory fields.

    Your messages to innocent@victim.com are being blocked. @@ -310,7 +316,7 @@

    If the sender finds the request acceptable, it MUST answer all challenges that include a <required/> element. If the total number of answers was specified and it is greater than the number of <required/> elements then the sender MUST also answer one or more of the challenges without a <required/> element. In the example above, the sender should respond to the 'qa' challenge and one of the other challenges ('ocr', 'audio_recog' or 'SHA-256').

    @@ -399,12 +405,12 @@

    A service that hosts multi-user chat rooms in accordance with XEP-0045 MAY challenge unknown entities that seek to join such rooms or that send messages in such rooms.

    ]]> Your messages to friendly-chat@muc.victim.com are being blocked. To unblock @@ -469,23 +475,23 @@ ]]>
    - - + +

    Entities MUST address the needs of disabled people and CPU-constrained clients by offering senders a reasonable choice of different types of challenges.

    Desktop clients running on modern PCs will typically be configured to automatically perform a specified 'SHA-256' Hashcash challenge (see below) whenever it is below a certain level of difficulty, with the result that many people may not even notice challenges most of the time. However, people using CPU-constrained clients (e.g. Web or mobile clients) would notice the performance hit. They might prefer to take a CAPTCHA challenge instead. A CPU-constrained client could ask a faster computer (e.g., its server) to perform a Hashcash challenge for it.

    Visually disabled people using a CPU-constrained client could configure their client to always present them with an audio CAPTCHA challenge.

    Most of the challenges below are language sensitive. However, the evaluation of the OCR and Hashcash responses does not depend on the language the sender is using.

    Challenge types are distinguished by the 'var' attribute of each <field/> element. Several types of challenges are described below. More challenges MAY be documented elsewhere and registered with the XMPP Registrar (see Field Standardization).

    - -

    The SHA-256 Hashcash challenge is transparent to average PC users. It is indicated when the value of the 'var' attribute is 'SHA-256'. It forces clients to perform CPU-intensive work, making it difficult to send large amounts of spim. This significantly reduces spim, but alone it will not completely stop spim being sent through large collections of 'zombie' computers. The hope is that the extra CPU usage will often be noticed by the owners of the zombie machines, who will be more likely to fix them.

    + +

    The SHA-256 Hashcash challenge is transparent to average PC users. It is indicated when the value of the 'var' attribute is 'SHA-256'. It forces clients to perform CPU-intensive work, making it difficult to send large amounts of spim. This significantly reduces spim, but alone it will not completely stop abusive stanzas from being sent through large collections of 'zombie' computers. The hope is that the extra CPU usage will often be noticed by the owners of the zombie machines, who will be more likely to fix them.

    The challenger MUST set the 'label' attribute of the <field/> element to a hexadecimal random number containing a configured number of bits (e.g., 220 ≤ label < 221).

    To pass the test, the sender MUST return a text string that starts with the JID the sender sent the first stanza to (i.e., the stanza that triggered the challenge). The least significant bits of the SHA-256 hash (see &nistfips180-2;) of the string MUST equal the hexadecimal value specified by the challenger (in the 'label' attribute of the <field/> element). For example, if the 'label' attribute is the 20-bit value 'e03d7' then the following string would be correct:

    innocent@victim.com2450F06C173B05E3 -

    Note: When configuring the number of bits to be specified by a challenger in the 'label' attribute values, administrators MUST balance the need to make mass spim as difficult as possible, with the inconvenience that may be caused to the users of less powerful computers. (Most clients will be challenged only very occasionally, so the consumption of 70% of a typical desktop CPU for 4 seconds might be considered appropriate.) Administrators SHOULD increment the configured number of bits from time to time to match increases in the performance of typical desktop PCs. If an administrator notices that spim robots never attempt the Hashcash challenge, then he SHOULD consider reducing the number of bits, to avoid inconveniencing people unnecessarily.

    +

    Note: When configuring the number of bits to be specified by a challenger in the 'label' attribute values, administrators MUST balance the need to make mass abuse as difficult as possible, with the inconvenience that may be caused to the users of less powerful computers. (Most clients will be challenged only very occasionally, so the consumption of 70% of a typical desktop CPU for 4 seconds might be considered appropriate.) Administrators SHOULD increment the configured number of bits from time to time to match increases in the performance of typical desktop PCs. If an administrator notices that abusive robots never attempt the Hashcash challenge, then he SHOULD consider reducing the number of bits, to avoid inconveniencing people unnecessarily.

    - -

    For those CAPTCHA types where generic instructions are possible (see table below) then the <field/> element SHOULD NOT include a 'label' attribute (the client MUST present generic instructions to the sender in the language of its user interface). Otherwise the 'label' attribute SHOULD ask a specific question in the language indicated by the 'xml:lang' attribute of the challenge stanza.

    + +

    Note: It may be profitable to send abusive stanzas even if less than one percent of CAPTCHA responses are successful. The effectiveness of a CAPTCHA challenge needs to be close to perfect, unless it is used in combination with other anti-abuse techniques.

    If a media type is specified (see table below) then the <field/> element MUST contain a <media/> element that includes a <uri/> element of that type. Clients that support the CAPTCHA type MUST be able to play or render the specified MIME-types (see table below). They MAY also support other formats. Audio CAPTCHAs typically require challengers to provide at least the 'audio/x-wav' MIME-type (with the PCM codec) because more efficient patent-free formats are often not supported by constrained clients. It is RECOMMENDED that challengers provide more compact formats (like Ogg Speex or MP3) too.

    The 'type' attribute of the <field/> element SHOULD be 'text-single', 'text-private', or 'text-multi' (if no 'type' is specified, the default is 'text-single'). The 'boolean' and 'list-single' field types would make it trivial for a robot to provide a correct response at least some of the time. The response MUST be provided in the language specified by the 'xml:lang' attribute of the challenge stanza.

    @@ -494,23 +500,20 @@ - - + - - + - @@ -518,7 +521,6 @@ - @@ -526,15 +528,13 @@ - - + - @@ -542,7 +542,6 @@ - @@ -550,7 +549,6 @@ - @@ -558,7 +556,6 @@ - @@ -566,13 +563,11 @@ - - +
    Name Media type MIME-type'label'Example generic instructionsExample generic instructions *
    audio_recog Audio Recognition audio audio/x-wavNo Describe the sound you hear
    ocr *ocr ** Optical Character Recognition image image/jpegNo Enter the code you see
    Picture Question image image/jpegNo Answer the question you see
    Picture Recognition image image/jpegNoDescribe the pictureIdentify the picture
    qa Text Question and Answer - -Yes** -
    Speech Question audio audio/x-wavNo Answer the question you hear
    Speech Recognition audio audio/x-wavNo Enter the words you hear
    Video Question video video/mpegNo Answer the question in the video
    Video Recognition video video/mpegNoDescribe the videoIdentify the video
    -

    * The image portrays random characters that humans can read but OCR software cannot. See PWNtcha <http://sam.zoy.org/pwntcha/> for some example OCR CAPTCHA images. To pass the challenge, the sender must simply type the characters. The correct answer SHOULD NOT depend on the language specified by the 'xml:lang' attribute of the challenge stanza.

    -

    ** To pass the challenge, the sender must type the answer to the question in the 'label' attribute.

    -

    Note: It may be profitable to send spim even if less than one percent of CAPTCHA responses are successful. The effectiveness of a CAPTCHA challenge needs to be close to perfect, unless it is used in combination with other anti-spim techniques.

    +

    * See the Internationalization Considerations section of this document.

    +

    ** The image portrays random characters that humans can read but OCR software cannot. See PWNtcha <http://sam.zoy.org/pwntcha/> for some example OCR CAPTCHA images. To pass the challenge, the sender must simply type the characters. The correct answer SHOULD NOT depend on the language specified by the 'xml:lang' attribute of the challenge stanza.

    @@ -583,7 +578,7 @@

    Note: Even if it provides a text question in the &BODY; element, a challenger MUST always provide a challenge form.

    Your messages to me are being blocked. To unblock them, @@ -603,14 +598,14 @@ ]]>

    Legacy clients respond to the challenger using a &MESSAGE; stanza (not an &IQ;).

    + red F3A6292C ]]>

    The challenger SHOULD treat the stanza as a normal message (instead of as a response to its challenge) if the legacy client either takes too long to submit it or has already responded to the challenge. The challenger MAY treat the response as a normal message even in cases where the challenge became unnecessary while the challenger was waiting for the response.

    Otherwise the challenger MUST report the result of the challenge to the legacy client using a &MESSAGE; stanza (not an &IQ;).

    + Your message was delivered. Your messages to me are no longer being blocked. @@ -618,7 +613,7 @@ + to='robot@abuser.com/zombie'> @@ -630,16 +625,20 @@
    -

    It is RECOMMENDED that entities employ other techniques to combat spim in addition to those described in this document (e.g., see XEP-0161 and &xep0205;).

    +

    It is RECOMMENDED that entities employ other techniques to combat abusive stanzas in addition to those described in this document (e.g., see XEP-0161 and &xep0205;).

    It is expected that this protocol will be an important and successful tool for discouraging spim. However, much of its success is dependent on the quality of the CAPTCHAs employed by a particular implementation.

    The administrator of a challenger MUST discontinue the use of Robot Challenges under the following circumstances:

      -
    • If he realises that the challenger's challenges are largely ineffective in combating spim, and that the reduction in spim does not compensate for the inconvenience to humans of responding to the challenger's challenges.
    • +
    • If he realises that the challenger's challenges are largely ineffective in combating spim, and that the reduction in abuse does not compensate for the inconvenience to humans of responding to the challenger's challenges.
    • If other, more transparent, techniques being employed by the challenger are so successful that challenges are offering only negligible additional protection against spim.
    • If the challenger needs no protection at all because it receives only a negligible amount of spim.
    + +

    Each form field SHOULD include a 'label' attribute. If the sender did not include an 'xml:lang' attribute, then the challenger may not know the correct language for the labels. Therefore, depending on user preferences the client that receives a challenge MAY present generic but localized text instead of label text that would not be understood by the user. Recommended generic text (to be suitably localized) is provided by Table 1 in the CAPTCHAs section of this document.

    +
    +

    This document introduces no security considerations above and beyond those described in RFC 3920 and RFC 3921.