home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_n_r / draft-petke-ext-intro-00.txt < prev    next >
Text File  |  1996-11-16  |  13KB  |  345 lines

  1.  
  2. INTERNET-DRAFT                                                   G Brown
  3. draft-petke-ext-intro-00.txt                                  CompuServe
  4. Expires: 15-May-97                                      15 November 1996
  5.  
  6.  
  7.                     Remote Passphrase Authentication
  8.                     Part One:  Extended Introduction
  9.  
  10.  
  11. Status of this Memo
  12.  
  13.    This document is an Internet-Draft.  Internet-Drafts are working
  14.    documents of the Internet Engineering Task Force (IETF), its
  15.    areas, and its working groups.  Note that other groups may also
  16.    distribute working documents as Internet-Drafts.
  17.  
  18.    Internet-Drafts are draft documents valid for a maximum of six
  19.    months and may be updated, replaced, or obsoleted by other
  20.    documents at any time.  It is inappropriate to use Internet-
  21.    Drafts as reference material or to cite them other than as
  22.    "work in progress."
  23.  
  24.    To learn the current status of any Internet-Draft, please check
  25.    the "1id-abstracts.txt" listing contained in the Internet-
  26.    Drafts Shadow Directories on ftp.is.co.za (Africa),
  27.    nic.nordu.net (Europe), munnari.oz.au (Pacific Rim),
  28.    ds.internic.net (US East Coast), or ftp.isi.edu (US West Coast).
  29.    
  30.  
  31. Abstract 
  32.    
  33.    Remote Passphrase Authentication provides a way to authenticate a 
  34.    user to a service by using a pass phrase over an insecure network, 
  35.    without revealing the pass phrase to eavesdroppers. In addition, the
  36.    service need not know and does not learn the user's pass phrase, 
  37.    making this scheme useful in distributed environments where it would 
  38.    be difficult or inappropriate to trust a service with a pass phrase 
  39.    database or to allow the server to learn enough to masquerade as the 
  40.    user in a future authentication attempt.
  41.  
  42.    This draft is part one of a four part series and contains an extended
  43.    introduction to the problem and potential solutions to the problem.
  44.    It is optional reading for those already familiar with the general
  45.    issues of authentication over insecure networks.  Part two
  46.    (draft-petke-mech-00.txt) explains the RPA mechanism.  Part three
  47.    (draft-petke-http-auth-scheme-00.txt) explains how to incorporate the
  48.    mechanism into HTTP.  Part four
  49.    (draft-petke-serv-deity-protocol-00.txt) explains the protocol
  50.    between the service and deity.
  51.  
  52.    This scheme was inspired by Dave Raggett's Mediated Digest
  53.    Authentication paper.
  54.  
  55.  
  56.  
  57. G Brown                                                         [Page 1]
  58.  
  59. INTERNET-DRAFT              RPA - Part One              15 November 1996
  60.  
  61.  
  62. Table of Contents 
  63.    
  64.    1. INTRODUCTION    
  65.    1.1 IDENTIFICATION    
  66.    1.2 AUTHENTICATION    
  67.    1.3 AUTHORIZATION    
  68.    
  69.    2. THE PROBLEM AND HOW NOT TO SOLVE IT    
  70.    2.1 ENCRYPT THE PASS PHRASE?    
  71.    2.2 A CHALLENGE-RESPONSE MECHANISM?    
  72.    2.3 WHAT IF I DON'T KNOW YOUR PASS PHRASE?    
  73.    2.4 TWO MORE WAYS NOT TO SOLVE THE PROBLEM    
  74.  
  75.    3. SECURITY CONSIDERATIONS
  76.  
  77.    4. AUTHOR'S ADDRESS
  78.    
  79.  
  80. 1. Introduction 
  81.    
  82.    In this introduction we'll explain the problem--fundamentally, how to
  83.    authenticate a user to a service without revealing a pass phrase, and
  84.    without requiring the service to know the user's pass phrase--and 
  85.    consider several alternatives and their flaws, leading to the reasons
  86.    for developing this authentication mechanism. If you're already 
  87.    familiar with the concept of authentication and the surrounding 
  88.    issues, you might prefer to skip to Part two of the specification, 
  89.    (draft-petke-mech-00.txt), returning to this part only if you
  90.    want more information about the motivation for the mechanism. 
  91.    
  92.    We'll speak of an environment in which a user communicates with a 
  93.    service that wishes to learn and authenticate the user's identity and
  94.    vice versa. You may, of course, think in terms of client and server, 
  95.    but those terms generally refer to an implementation. We're speaking 
  96.    at a higher level where there's no direct correspondence between 
  97.    server and service nor user and client. 
  98.    
  99.    We'll use CompuServe and America Online as concrete examples of 
  100.    services, but the same concepts apply even to a single Web server or 
  101.    BBS that wants to authenticate users. There are three aspects of this
  102.    environment of interest: 
  103.    
  104.       Identification--the way in which we refer to a user. 
  105.       
  106.       Authentication--the way in which a user may prove his or her 
  107.       identity. 
  108.       
  109.       Authorization--the way in which we determine what a given user may
  110.       do. 
  111.    
  112.    The same aspects apply to services as well as users. 
  113.  
  114. G Brown                                                         [Page 2]
  115.  
  116. INTERNET-DRAFT              RPA - Part One              15 November 1996
  117.  
  118.    
  119. 1.1 Identification 
  120.    
  121.    A user's identity consists of a user name and a realm name. A realm 
  122.    is a universe of identities; CompuServe Information Service user IDs 
  123.    and America Online screen names are two examples of realms. The 
  124.    combination of username and realm--typically shown as 
  125.    name@realm--identifies a user. Any given service will recognize some 
  126.    particular set of identities. A realm doesn't have to be large, 
  127.    though, either in number of users or size of service. For example, a 
  128.    single Web server might have its own realm of users. 
  129.    
  130.    Often, a service recognizes only one realm: CIS recognizes only 
  131.    identities within the CIS realm, and AOL recognizes only identities 
  132.    within the AOL realm. But one can imagine a service that has 
  133.    agreements with both CIS and AOL. The service gives the user a choice
  134.    of realms--"Please supply a CIS or AOL identity, and prove it"--and 
  135.    the user chooses a realm in which he has an identity. 
  136.  
  137.    
  138. 1.2 Authentication 
  139.    
  140.    Identification provides the ability to identify, or refer to, a user. 
  141.    Authentication provides the ability to prove identity. When you ask 
  142.    to do something for which your identity matters, we ask for your 
  143.    identity--your username and realm--and we make you prove that you are
  144.    who you say you are. 
  145.    
  146.    To accomplish this, we'll use a secret that we call a pass phrase, 
  147.    although it's not necessarily derived from text. Such a secret is 
  148.    sometimes called a secret key, but we won't be using it for 
  149.    encryption. 
  150.    
  151.    The fundamental problem to be solved is, How can you prove to me that
  152.    you know your pass phrase without revealing the pass phrase in the 
  153.    process? We'll explore this problem in more detail momentarily. 
  154.  
  155.    
  156. 1.3 Authorization 
  157.    
  158.    Authorization refers to the process of determining whether a given 
  159.    user is allowed to do something. For example, may he post a message?
  160.    May he use a surcharged service? We won't say much about this topic,
  161.    but it's important to realize that authentication and authorization 
  162.    are distinct processes, one related to proving an identity, and the 
  163.    other related to the properties of an identity. 
  164.    
  165.    Our mechanism has nothing to do with authorization, but it is 
  166.    designed to co-exist with authorization mechanisms. 
  167.  
  168.  
  169.  
  170.    
  171. G Brown                                                         [Page 3]
  172.  
  173. INTERNET-DRAFT              RPA - Part One              15 November 1996
  174.  
  175.  
  176. 2. The problem and how not to solve it 
  177.    
  178.    Imagine that I'm a service who wishes to authenticate you, a user. 
  179.    You must identify yourself and prove to me that you know your pass 
  180.    phrase. That's easy: I'll prompt you for your pass phrase. 
  181.    
  182.    But that doesn't work. We learned long ago that plaintext pass 
  183.    phrases cannot be transmitted through a network. X.25 networks have 
  184.    been compromised, and LANs, modem pools, and "The Internet" likewise 
  185.    are not suitable for plaintext pass phrases. Prompting for the pass 
  186.    phrase is not the answer. 
  187.  
  188.    
  189. 2.1 Encrypt the pass phrase? 
  190.    
  191.    How about encrypting the pass phrase? Sounds good. You encrypt your 
  192.    pass phrase, send me the result, and I'll decrypt it. Techniques like
  193.    Diffie-Hellman can create a one-time key that prevents an 
  194.    eavesdropper from decrypting your pass phrase. 
  195.    
  196.    But that doesn't work, either. What if somebody else--a 
  197.    spoofer--pretends to be the service? He'll decrypt the result, 
  198.    learning your pass phrase and gaining the ability to masquerade as 
  199.    you. Perhaps that sounds unlikely, but it's not; even in dial-up 
  200.    modem days, people have spoofed services--"Here's a new telephone 
  201.    number they left out of their directory. It's much faster than the 
  202.    listed numbers!" 
  203.    
  204.    We need a mechanism that won't reveal your pass phrase to anyone, 
  205.    even if you're not talking to whom you think you're talking. 
  206.  
  207.    
  208. 2.2 A challenge-response mechanism? 
  209.    
  210.    How about a challenge-response mechanism? Now we're on the right 
  211.    track. I send you a challenge, which is a random number, and you use 
  212.    a one-way function to calculate a result that depends on the 
  213.    challenge and your pass phrase. You send me the result, and I perform
  214.    the same calculation and see if my result matches yours. Done 
  215.    correctly, this reveals no information to eavesdroppers, nor does it 
  216.    allow a spoofer to acquire your pass phrase--if someone pretends to 
  217.    be me, they learn only your result for a particular challenge, which 
  218.    is of no value.
  219.    
  220.    Although such a mechanism works, it doesn't quite solve our problem. 
  221.    If I'm the service, I must know your pass phrase in order to 
  222.    reproduce your calculation and verify your response to my challenge. 
  223.    But what if I don't know your pass phrase? 
  224.  
  225.  
  226.  
  227.  
  228. G Brown                                                         [Page 4]
  229.  
  230. INTERNET-DRAFT              RPA - Part One              15 November 1996
  231.  
  232.    
  233. 2.3 What if I don't know your pass phrase? 
  234.    
  235.    Why might I, the service, not know your pass phrase? Consider a set 
  236.    of services that share a set of users' identities. For example, 
  237.    imagine a collection of Web servers, scattered throughout the world,
  238.    all of which are a part of Gary's Information Service; you may use 
  239.    your GIS name and pass phrase to identify yourself to any GIS 
  240.    service. 
  241.    
  242.    The obvious implementation--each physical server has a copy of all 
  243.    pass phrases or access to a master database--is awkward at best, 
  244.    especially if some are third-party servers, not directly under the 
  245.    control of our imaginary GIS. 
  246.    
  247.    Or consider a service that accepts identities in multiple realms. 
  248.    Imagine a service that has agreements with both CIS and AOL. The 
  249.    service gives the user a choice of realms--"Please supply a CIS or 
  250.    AOL identity, and prove it"--and the user chooses a realm in which he
  251.    has an identity. It's unlikely that CIS and AOL will entrust a copy 
  252.    of their pass phrase databases to a third-party service--or to each 
  253.    other. 
  254.    
  255.    So, if I don't know your pass phrase, how can you prove to me that 
  256.    you do know it? And that's the fundamental question addressed by this
  257.    mechanism. We'll begin by pointing out a couple of solutions that 
  258.    don't work. 
  259.  
  260.    
  261. 2.4 Two more ways not to solve the problem 
  262.    
  263.    Wrong answer #1--I'll prompt you for your pass phase. Let's make this
  264.    example more concrete: I'll display an HTML form with a box that asks
  265.    for your name and a box for your pass phrase. We'll use SSL or SHTTP 
  266.    so an eavesdropper can't see it. When I get your reply, I can use a 
  267.    challenge-response mechanism to verify your pass phrase with a server
  268.    that knows the pass phrases. 
  269.    
  270.    But that won't work. It's important to teach users not to type their 
  271.    pass phrases just because somebody asks for it--that's a standard 
  272.    technique for cracking others' accounts. Teaching users to provide 
  273.    their pass phrases in an HTML form is a bad idea. 
  274.    
  275.    And I'll see your pass phrase, which is precisely what we want to 
  276.    avoid, especially if I'm a spoofer. 
  277.    
  278.    Wrong answer #2--We'll create a pass-phrase database server. I'll ask
  279.    it for a copy of your pass phrase. Now that I know it, we can use an 
  280.    ordinary challenge-response mechanism.
  281.  
  282.  
  283.  
  284.  
  285. G Brown                                                         [Page 5]
  286.  
  287. INTERNET-DRAFT              RPA - Part One              15 November 1996
  288.  
  289.    
  290.    That won't work. We'd need a way to get the pass phrase from that 
  291.    database to me, safely. And if I can look up your pass phrase, what's
  292.    to stop somebody else from doing the same? (Don't say "a firewall." 
  293.    Services that need to verify your identity exist outside firewalls, 
  294.    too.) 
  295.    
  296.    If anything, this is even worse--I could dump the entire pass-phrase 
  297.    database--and, again, I should never see your pass phrase. 
  298.    
  299.    But there is a solution, which we'll cover in Part two of this 
  300.    specification (draft-petke-mech-00.txt).
  301.    
  302.  
  303. 3. Security Considerations 
  304.    
  305.    This entire document is about security. 
  306.    
  307.  
  308. 4. Author's Address 
  309.    
  310.    Gary S. Brown
  311.    CompuServe Incorporated
  312.    5000 Britton Rd
  313.    P.O. Box 5000
  314.    Hilliard OH 43026-5000
  315.    USA
  316.    +1 614 723 1127
  317.    <gsb@csi.compuserve.com>
  318.  
  319.  
  320. This Internet-Draft expires on May 15, 1997.
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342. G Brown                                                         [Page 6]
  343.  
  344.  
  345.