Internet DRAFT - draft-farah-uggc-protocol

draft-farah-uggc-protocol



Network Working Group                                           M. Farah
Request for Comments: nnnn                                        T.I.A.
Category: Experimental                                      1 April 2000

           Encrypted Hypertext Transfer Protocol -- UGGC/1.0
                     draft-farah-uggc-protocol-00.txt

Status of this Memo

   This memo defines an Experimental Protocol for the Internet
   community.  This memo does not specify an Internet standard of any
   kind.  Discussion and suggestions for improvement are requested.
   Distribution of this memo is unlimited.

   This document is an Internet-Draft and is in full conformance with 
   all provisions of Section 10 of RFC2026. Internet-Drafts are working 
   documents of the Internet Engineering Task Force (IETF), its areas, 
   and its working groups. Note that other groups may also distribute 
   working documents as Internet-Drafts.  
    
   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."  
    
   The list of current Internet-Drafts can be accessed at 
   http://www.ietf.org/ietf/1id-abstracts.txt  
    
   The list of Internet-Draft Shadow Directories can be accessed at 
   http://www.ietf.org/shadow.html.  


ABSTRACT

This memo defines an experimental protocol -called UGGC- that serves as
an encrypted counterpart to HTTP.




1. Introduction

   It's a known fact that web surfing has become a much more important
   activity in the net than what was expected six years ago. Anti-prying
   measures have been taken in other services (mail encryption, for
   example), but haven't been in WWW: anyone can spy at what another
   user is browsing at the moment by intercepting his packets and
   looking at their content ("sniffing"). This document proposes a
   method that guarantees it won't happen anymore, by discouraging the
   act of sniffing.

   A new URL, 'uggc', is defined, which is a sort of twin brother to
   'http'. The former works in the very same way as the latter does,
   with the following exception: both URLs and the data travelling from
   the client to the server and vice versa are encrypted. The data
   retrieved is equivalent, once decrypted back.

2. Description

   2.1 Encryption algorithm used

       Both URLs and content transferred are to be encrypted/decrypted
       using the ROT13 mechanism. This encryption/decryption method is
       algorithmically simple (it's o(N), with N = length of the input
       in bytes), and has proven to be extremely powerful. Hell, it's
       been used for more than two millennia, and the ancients certainly
       knew what they were doing.

   2.2 URL syntax and encryption methods

       URLs MUST be encrypted in one of the following ways:

       1) total encryption: the entire URL is encrypted. For example, if
          one were to access
          <URL:http://www.my.example/docs/misc/index.html>, the
          encrypted URL becomes:
          <URL:uggc://jjj.zl.rknzcyr/qbpf/zvfp/vaqrk.ugzy>.

Farah                         Experimental                      [Page 1]

                 Encrypted Hypertext Transfer Protocol      1 April 2000


       2) partial encryption: there are two acceptable syntaxes:

        - the host part of the URL is encrypted, the rest is not. The
          previous example would now become
          <URL:uggc://jjj.zl.rknzcyr/docs/misc/index.html>.

        - the host part is encrypted, and so is the abs_path up to but
          not including the file name and arguments passed as
          parameters, if any. The abs_path MUST NOT be encrypted only in
          part. The previous example becomes
          <URL:uggc://jjj.zl.rknzcyr/qbpf/zvfp/index.html>. However,
          <URL:uggc://jjj.zl.rknzcyr/qbpf/misc/index.html> does NOT
          refer to the same URL, although it's syntactically valid and
          MAY yield an actual valid response.

       In both cases, the entire host part MUST be encrypted. So, an URL
       as <URL:uggc://jjj.zl.example/docs/misc/index.html>, while
       syntactically valid, refers neither to the same URL as the
       example does, nor to the same server.

       3) null encryption: the entire URL is NOT encrypted. The previous
          example becomes
          <URL:uggc://www.my.example/docs/misc/index.html>.

       The scheme part ("uggc://") itself is not encrypted as such, but
       rather has a different name (than "http://", of course) in order
       to distinguish one protocol from the other.

       In all cases, arguments passed within a URL MAY or MAY NOT be
       encrypted, depending on the method used (total, partial or null).

   2.3 User/client/server interaction

       The interaction between the user, the client and the server is
       the following:

       - the user tries to access an URL by inputting it to his/hers/its
         WWW client (take note that in this context, "the user" may be
         either a person or a process; processes like TRON MUST be
         taught to understand the blurring of this barrier between both
         kinds of entities, which was so marked during the time when MCP
         tried to attain supreme power).

       - the WWW client determines what site it has to make the request
         to, and then sends the UGGC request in the same manner as an
         HTTP one. The client is not expected to determine wether the
         user entered the rest of the URL with total, partial or null
         encryption, and MUST NOT alter it.



Farah                         Experimental                      [Page 2]

                 Encrypted Hypertext Transfer Protocol      1 April 2000


       - the WWW server, upon reception of the request, MUST determine
         exactly what is being asked to return, process it, encrypt it
         with ROT13, and send it back to the client.

       - the WWW client receives the result, decrypts it, and then
         displays it to the user.

       This whole process MUST be transparent to the user, except for
       the detail of typing "uggc://" instead of "http://". If the user
       inputs an URL with the scheme part missing ("www.example.com",
       for example), the client MUST NOT assume the user meant the UGGC
       protocol, even if it's obviously encrypted. The client MAY issue
       a warning to the user telling him the HTTP protocol will be used.

       The data received by either protocol MUST be the same. For
       example, if accessing
       <URL:http://www.my.example/Misc/Here/Hello.html> returns the
       string "Hello, World!", then the following URLs:
          - uggc://jjj.zl.rknzcyr/Zvfp/Urer/Uryyb.ugzy
          - uggc://jjj.zl.rknzcyr/Zvfp/Urer/Hello.html
          - uggc://jjj.zl.rknzcyr/Misc/Here/Hello.html
          - uggc://www.my.example/Misc/Here/Hello.html
       MUST also return the same string. A cracker sniffing this,
       though, will only see the string "Uryyb, Jbeyq!" and will end up
       extremely confused by what he'll believe to be gibberish.

       The WWW server (www.my.example) is expected to be able to
       determine wether "Zvfp/Urer/Uryyb.ugzy" means actually the file
       "Uryyb.ugzy" in the subdirectory "Urer" in the subdirectory
       "Zvfp", or the file "Hello.html" in the same place, or the file
       "Hello.html" in the subdirectory "Here" in the subdirectory
       "Misc".

       It is RECOMMENDED that the server doesn't have any directories
       with conflicting names (following the current example, the server
       SHOULD have either the "Misc" or the "Zvfp" directory in the root
       level, but not both). Among other things, this implies that the
       login assignation algorithms used in universities and some
       companies MUST be revised to take this into account, so personal
       WWW pages from different students and/or employees won't collide.
       For example, <URL:uggc://jjj.rknzcyr.rqh/~aubea> could refer to
       either Mr. Andoni Ubea's homepage or to Mr. Nigel Horn's one.









Farah                         Experimental                      [Page 3]

                 Encrypted Hypertext Transfer Protocol      1 April 2000


       The WWW server is also expected to be able to determine wether
       any arguments passed within the URL are encrypted or not. For
       example, <URL:uggc://jjj.zl.rknzcyr/dhrel.ugzy?anzr=Zvthry> could
       either be passing the value "Zvthry" to the variable "anzr", or
       it could be passing the value "Miguel" to the variable "name". It
       has to be noted that the syntax forbids having only part of the
       arguments encrypted: either they're all encrypted or they're all
       unencrypted.

3. Resolution of conflicting site names

   Since an URL like <URL:uggc://jjj.zl.rknzcyr/Zvfp/Urer/Uryyb.ugzy>
   may refer either to the server jjj.zl.rknzcyr or to the server
   www.my.example, confusions over which is the correct site to access
   are to be expected.

   3.1 Three-lettered Top Level Domains

       The three-lettered top level domains (.com, .edu, .gov, .mil,
       .net and .org) have no conflicts among them, so this isn't an
       issue: possible server names with nonexisting TLDs are obviously
       wrong, and so the encrypted/unencrypted corresponding name must
       be the right one. In the future, when new top level domains are
       assigned, this MUST be taken into account (for example, a
       gambling-related top level domain MUST NOT be called ".bet",
       because that would provide a means of confusion with .org sites).

   3.2 Country codes Top Level Domains

       These TLDs are two-lettered, taken from the ISO3166 specification
       for 2- and 3-letter country codes. In an incredible omission made
       by the ISO, UGGC compliance was not considered; this generates
       conflicts between several pairs of countries, whose encrypted
       codes are the same as others' unencrypted ones. Some examples of
       this phenomenon are:

         -  Austria     AT <=> NG  Nigeria
         -  Chile       CL <=> PY  Paraguay
         -  China       CN <=> PA  Panama
         -  Costa Rica  CR <=> PE  Peru
         -  Finland     FI <=> SV  El Salvador
         -  France      FR <=> SE  Sweden
         -  India       IN <=> VA  Vatican City
         -  Iran        IR <=> VE  Venezuela







Farah                         Experimental                      [Page 4]

                 Encrypted Hypertext Transfer Protocol      1 April 2000


   3.3 A Method for inhibiting these conflicts

       The intuitive way of resolving this conflict would be to program
       the WWW client to contact BOTH possible sites, and see which one
       responds first. This approach is a waste of time and bandwidth,
       and does not resolve all possible situations: what if *both*
       possible servers DO answer?

       The best way to deal with this is to avoid the existence of more
       than one of those "possible" servers. To achieve this, the NICs
       of each respective country MUST agree on a procedure that will
       prevent this situation from happening. For example, if someone
       registers the "freire.cl" vanity domain in Chile ("Freire" is a
       rather common surname in this country), the Paraguayan NIC should
       forbid registering the "server.py" domain in its country from
       then on.

       With this conflict resolution scheme working, the WWW client will
       only have to do -at most- an extra DNS request, compared to the
       equivalent process using http.

   3.4 Miscellaneous considerations

       WWW clients SHOULD use heuristics for making more efficient
       guesses about which of the two possible sites is the real one.
       For example, the client receives the site "jjj.zl.rknzcyr": it
       begins with "jjj.", so it's a pretty fair chance it is encrypted,
       and thus "www.my.example" (the decrypted site name) should be
       tried first.

4. Security considerations

   This whole protocol will be rendered useless if the ROT13 encryption
   mechanism is ever cracked.

5. Acknowledgments

   The author wishes to acknowledge Julius Caesar for his tremendous
   invention.

6. Author's address

      Miguel Farah
      Regina Pacis 1305 (Providencia)
      Santiago, Chile

      phone - +56 2 205 2208

      email - miguel@webhost.cl


Farah                         Experimental                      [Page 5]