-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 These two documents discuss a technique for two-way anonymous software to software communication by standard interface - SOAP. The first is a new transport binding for SOAP, the second is an adaptation for two-way anonymity.
Respond onlist or privately by post to alt.anonymous.messages ATTN: Sister Tornado. Best, S.T. USENET Transport Binding for SOAP 1.1 10 February 2002 Authors (alphabetically): Sister Tornado Copyright� 2002 Sister Tornado. Reproduce with credit at will. - ---------------------------------------------------------------------- - ---------- Abstract SOAP [1] is a lightweight protocol for exchange of information in a decentralized, distributed environment, using XML. This document details transporting SOAP messages over the USENET. [2] Status This is a draft. Table of Contents 1. Introduction 1.1 Notational Conventions 2. Use Of USENET Message body 2.1 Encoding 3. Identifying USENET transports in WSDL 4. Request / Response semantics 5. Examples 6. Security Considerations 7. References 1. Introduction By binding SOAP to USENET, we can take advantage of USENET's store and forward messaging to provide an asynchronous, broadcast, one way transport for SOAP. Two one way messages can be correlated to provide request / response semantics (this closely follows the SOAP model). This allows SOAP to be used in a number of scenarios where HTTP is not suitable (partially connected nodes, one way notifications etc.) The author wishes to acknowledge that the shameless cribbing of much of the text from "SMTP Transport Binding for SOAP 1.1 " [0]. 1.1 Notational Conventions The keywords "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 [3]. 2. Use of USENET Standard 2.1 Use of USENET Message Headers The USENET Message standard requires the use of a Subject field. This field SHOULD be used to identify the service being called. For example: Subject: SoapRobot 2.2 Use of USENET Message body SOAP payloads in USENET MUST be packaged into the body of the USENET message. 2.3 Encoding A content transfer encoding of base64 is RECOMMENDED. A content transfer encoding of Quoted-Printable MAY be used if the SOAP payload meets the requirements of RFC-1036 [2]. 3. Identifying USENET transports in WSDL The URI http://schemas.xmlsoap.com/soap/usenet/ SHOULD be used to identify USENET transports compliant with this specification in the transport attribute of the soap:binding element of a WSDL [4] document (see section 3.3 of the WSDL spec.) The address of the SOAP service in the soap:address element of a WSDL document SHOULD be the name or handle of the intended recipient and a comma-delimitedlist of newsgroups where a request may be posted. For example: <soap:address location="[EMAIL PROTECTED],example.alt.soap.me ssages.fake"> 4. Request / Response semantics SOAP applications requiring request / response semantics will need to perform some sort of message correlation. This SHOULD be achieved via the standard Message-Id and Followup-To USENET headers [2]. The request will include a Message-Id header, and the associated response should include a Followup-To header that contains the Message-Id of the request, and a new Message-Id header. The responder SHOULD also reflect the incoming subject header into the response, prefixing it with "Re: ". 5. Example A request destined for [EMAIL PROTECTED] Path: [EMAIL PROTECTED]/relay.site.example/ site.example/injector.site.example%jsmith Message-ID: <[EMAIL PROTECTED]> From: [EMAIL PROTECTED] Date: Mon, 11 February 2002 23:27:00 -0700 Subject: SoapRobot Newsgroups: example.alt.comp.rec.foo <?xml version=3D"1.0" encoding=3D"UTF-8"?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle=3D"http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENC=3D"http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV=3D"http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema" xmlns:xsi=3D"http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <m:echoString xmlns:m=3D"http://soapinterop.org/"> <inputString>A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects. --Robert A. Heinlein</inputString> </m:echoString> </SOAP-ENV:Body> </SOAP-ENV:Envelope> The resulting response from SoapRobot Path: [EMAIL PROTECTED]/relay.site.example/ site.example/injector.site.example%jsmith Message-Id: <[EMAIL PROTECTED]> From: [EMAIL PROTECTED] Date: Mon, 11 February 2002 23:51:00 -0700 Subject: Re: SoapRobot Newsgroups: example.alt.comp.rec.foo References: <[EMAIL PROTECTED]> <?xml version=3D"1.0" encoding=3D"UTF-8"?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle=3D"http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENC=3D"http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV=3D"http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema" xmlns:xsi=3D"http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <m:echoStringResponse xmlns:m=3D"http://soapinterop.org/"> <return>A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects. --Robert A. Heinlein</return> </m:echoStringResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 6. Security Considerations Clients may wish to authenticate the sender's response in some API-specific way, as there is no direct connection between client and server and the server's response is trivially spoofed. 7. References [0] Cunnings R., Fell S., Kulchenko P., "SMTP Transport Binding for SOAP 1.1", 2001 [1] Box, D., Ehnebuske, D., Kakivaya, G., Layman, A., Mendelsohn, N., Nielsen, H. F., Thatte, S. and D. Winer, "Simple Object Access Protocol (SOAP) 1.1", May 2000. [2] Horton M., Adams R., "Standard for Interchange of USENET Messages" RFC1036, December 1987 [3] Bradner S., "Key words for use in RFCs to Indicate Requirement Levels", RFC 2119, Harvard University, March 1997 [4] Christensen E., Curbera F., Meredith G., Weerawarana S. "Web Services Description Language (WSDL) 1.1", March 2001. - ---------------------------------------------------------------------- - --------------------------------------------------- BLACK USENET Transport Binding for SOAP 1.1 11 February 2002 Authors (alphabetically): Sister Tornado Copyright� 2002 Sister Tornado. Reproduce with credit at will. - ---------------------------------------------------------------------- - ---------- Abstract SOAP [1] is a lightweight protocol for exchange of information in a decentralized, distributed environment, using XML. This document details transporting SOAP messages over the USENET [2], as modified by the ideas and techniques of BlackNet [3]. Status This is a draft. Table of Contents 1. Introduction 1.1 Notational Conventions 2. Use Of USENET Message body 2.1 Encoding 3. Identifying USENET transports in WSDL 4. Request / Response semantics 5. Examples 6. Security Considerations 7. References 1. Introduction BlackNet provides a model for two-way anonymous communication over USENET. This document describes an adaptation of the technique for computer-to-computer communication. It is hoped that this technique will allow very high risk Web Services to operate with a reduced risk of exposure to coercive forces. Like the BlackNet model, this SOAP transport hides the identities of both client and server from each other, at the expense of latency. Clients and servers post anonymously to USENET through a chain of anonymous remailers. 1.1 Notational Conventions The keywords "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 [4]. 2. Use of USENET Standard 2.1 Use of USENET Message Headers As USENET SOAP, except servers MAY decrypt every message in the newsgroups it monitors, ignoring Subject headers and Message-IDs. 2.2 Messages should always be ENCRYPTED to the recipient's public key. The server's key is published in WSDL, publicly or by arrangement. The client's key is published publicly or via API call. Encrypted messages should be ARMORED. 3. Identifying BLACK USENET transports in WSDL The URI http://schemas.xmlsoap.com/soap/usenet/black/ SHOULD be used to identify USENET transports compliant with this specification in the transport attribute of the soap:binding element of a WSDL [5] document (see section 3.3 of the WSDL spec.) The address of the SOAP service in the soap:address element of a WSDL document SHOULD be the name or handle of the intended recipient and a comma-delimitedlist of newsgroups where a request may be posted. For example: <soap:address location="[EMAIL PROTECTED],example.alt.soap.me ssages.fake"> 4. Request / Response semantics As in USENET SOAP, but Message-Id header and Subject correlations are not required. 5. Example. As in USENET SOAP transport. 6. Security Considerations It's not clear whether an automated service can reliably choose anonymous remailers in an intelligent and anonymous manner. Can an automated service survive an extended period of message passing in this manner and remain anonymous? How does this affect Traffic Analysis? 7. References [0] Tornado, S. "USENET Transport Binding for SOAP 1.1", February 2002 [1] Box, D., Ehnebuske, D., Kakivaya, G., Layman, A., Mendelsohn, N., Nielsen, H. F., Thatte, S. and D. Winer, "Simple Object Access Protocol (SOAP) 1.1", May 2000. [2] Horton M., Adams R., "Standard for Interchange of USENET Messages" RFC1036, December 1987 [3] May T., "True Nyms and Crypto Anarchy", 2001 [4] Bradner S., "Key words for use in RFCs to Indicate Requirement Levels", RFC 2119, Harvard University, March 1997 [5] Christensen E., Curbera F., Meredith G., Weerawarana S. "Web Services Description Language (WSDL) 1.1", March 2001. -----BEGIN PGP SIGNATURE----- Version: PGPfreeware 6.5.3 for non-commercial use <http://www.pgp.com> iQA/AwUBPGn1Cde1eESVabrmEQKXWgCgoDqHt5w23ZXhF4rd21S/pHMGv8UAnRzD cNPON5ns+VGDZJ0V9FXkuVj7 =ibLA -----END PGP SIGNATURE----- -----BEGIN PGP PUBLIC KEY BLOCK----- Version: PGPfreeware 6.5.3 for non-commercial use <http://www.pgp.com> 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 oJXCDkBZ+CrXlUxhuuiVXktbKb5l =X1Ml -----END PGP PUBLIC KEY BLOCK-----
