home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_i / draft-ietf-ipp-security-00.txt < prev    next >
Text File  |  1997-06-26  |  42KB  |  1,193 lines

  1.  
  2.  
  3.  
  4.      INTERNET-DRAFT
  5.                                                      Roger deBry
  6.                                                  IBM Corporation
  7.                                                    Jerry Hadsell
  8.                                                  IBM Corporation
  9.                                                  Daniel Manchala
  10.                                                Xerox Corporation
  11.                                                     Xavier Riley
  12.                                                Xerox Corporation
  13.                                                        John Wenn
  14.                                                Xerox Corporation
  15.                                                    June 12, 1997
  16.  
  17.  
  18.  
  19.                    Internet Printing Protocol/1.0: Security
  20.                         draft-ietf-ipp-security-00.txt
  21.  
  22.  
  23.      Status of this memo
  24.  
  25.      This document is an Internet-Draft. Internet-Drafts are working
  26.      documents of the Internet Engineering Task Force (IETF), its
  27.      areas, and its working groups.  Note that other groups may also
  28.      distribute working documents as Internet-Drafts. Internet-Drafts
  29.      are draft documents valid for a maximum of six months and may be
  30.      updated, replaced, or obsoleted by other documents at any time.
  31.      It is inappropriate to use Internet-Drafts as reference material
  32.      or to cite them other than as "work in progress."
  33.  
  34.      To learn the current status of any Internet-Draft, please check
  35.      the "1id-abstracts.txt" listing contained in the Internet-Drafts
  36.      Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net
  37.      (Europe),
  38.      munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
  39.      ftp.isi.edu (US West Coast).
  40.  
  41.      Abstract
  42.  
  43.      This document is one of a set of documents which together
  44.      describe all aspects of a new Internet Printing Protocol (IPP).
  45.      IPP is an application level protocol that can be used for
  46.      distributed printing on the Internet. The protocol is heavily
  47.      influenced by the printing model introduced in the Document
  48.      Printing Application (ISO/IEC 10175 DPA) standard, which
  49.      DeBry, Hadsell, Manchala, Riley, Wenn             [Page 1]
  50.                         Expires December 12, 1997
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.      INTERNET-DRAFT        IPP/1.0: Security      June 12, 1997
  58.  
  59.  
  60.  
  61.      describes a distributed printing service. The full set of IPP
  62.      documents includes:
  63.  
  64.  
  65.           Internet Printing Protocol/1.0: Requirements
  66.           Internet Printing Protocol/1.0: Model and Semantics
  67.           Internet Printing Protocol/1.0: Security
  68.           Internet Printing Protocol/1.0: Protocol Specification
  69.           Internet Printing Protocol/1.0: Directory Schema
  70.  
  71.      This documentis the `Internet Printing Protocol/1.0: Security'
  72.      document.
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.      DeBry, Hadsell, Manchala, Riley, Wenn             [Page 2]
  107.                        Expires December 12, 1997
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.      INTERNET-DRAFT        IPP/1.0: Security      June 12, 1997
  115.  
  116.  
  117.  
  118.      Table of Contents
  119.  
  120.      1.0 Introduction .........................................4
  121.      2.0 Security Threats and Attacks .........................4
  122.         2.1 Threats ...........................................5
  123.         2.2 Methods of Attack .................................5
  124.      3.0 Internet Printing ....................................6
  125.         3.1 Printer and Client in the Same Security Domain ....7
  126.         3.2 Printer and client in Different Security Domains ..7
  127.         3.3 Print-by-Reference ................................7
  128.            3.3.1 Unprotected Documents ........................8
  129.            3.3.2 Protected Documents ..........................8
  130.         3.4 Common Security Scenarios .........................8
  131.            3.4.1 No Security ..................................8
  132.            3.4.2 Message Protection During Transmission .......8
  133.            3.4.3 Client Authentication and Authorization ......9
  134.            3.4.4 Mutual Authentication, Authorization and Message
  135.                  Protection ...................................9
  136.      4.0 Security Services ....................................9
  137.      5.0 Applying security to IPP operations .................10
  138.         5.1 Create-Job .......................................11
  139.         5.2 Send-Document ....................................11
  140.         5.3 Print-Job ........................................11
  141.         5.4 Cancel-Job .......................................11
  142.         5.5 Validate .........................................12
  143.         5.6 Get-Jobs .........................................12
  144.         5.7 Get-Attributes ...................................12
  145.         5.8 Print-URI ........................................12
  146.         5.9 Send-URI .........................................12
  147.      6.0 Comments on Existing Security Technologies ..........12
  148.         6.1 Recommended Security Mechanisms ..................14
  149.      7.0 Appendix - Specific Features of Various Technologies 15
  150.         7.1 S/MIME: (Secure/Multipurpose Internet Mail Ext.)..15
  151.         7.2 Transport Layer Security 1.0 (TLS) ...............15
  152.         7.3 SASL (Simple Authentication and Security Layer) ..16
  153.         7.4 Digest Access Authentication .....................17
  154.      8.0 References ..........................................20 
  155.      9.0 Authors' Addresses ..................................21
  156.      
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.      DeBry, Hadsell, Manchala, Riley, Wenn             [Page 3]
  164.                        Expires December 12, 1997
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.      INTERNET-DRAFT        IPP/1.0: Security      June 12, 1997
  172.  
  173.  
  174.  
  175.  
  176.      1.0 Introduction
  177.  
  178.      The purpose of this document is to describe security
  179.      considerations for the Internet Printing Protocol (IPP). Internet
  180.      Printing is the application of Internet technology to network
  181.      printing. Using Internet technology, users want to be able to
  182.      locate printers, install and configure printer software, query
  183.      printers for capabilities and status, and submit and track print
  184.      jobs. The Internet Printing Protocol defines the network
  185.      interface for many of these functions.
  186.  
  187.      It is required that the Internet Printing Protocol be able to
  188.      operate within a secure environment. Wherever possible, IPP ought
  189.      to make use of existing security protocols and services. IPP will
  190.      not invent new security features when the requirements described
  191.      in this document can be met by existing protocols and services.
  192.      Examples of such services include Transport Layer Security
  193.      (TLS)[draft-tls] and Digest Access Authentication [rfc2069]in
  194.      HTTP.
  195.  
  196.      It is difficult to anticipate the security risks that might exist
  197.      in any given IPP environment. For example, if IPP is used within
  198.      a given corporation over a private network,  the risks of
  199.      exposing print data may be low enough that the corporation will
  200.      choose not to use encryption on that data. However, if the
  201.      connection between the client and the Printer is over a public
  202.      network, the client may wish to protect the content of the
  203.      information during transmission through the network with
  204.      encryption.
  205.  
  206.      Furthermore, the value of the information being printed may vary
  207.      from one use of the protocol to the next. Printing payroll
  208.      checks, for example, would have a different value than printing
  209.      public information from a file.
  210.  
  211.      Since we cannot anticipate the security levels or the specific
  212.      threats that any given IPP print administrator may be concerned
  213.      with, IPP must be capable of operating with different security
  214.      mechanisms and security policies as required by the individual
  215.      installation. Security policies might vary from very strong, to
  216.      very weak, to none at all, and corresponding security mechanisms
  217.      will be required.
  218.  
  219.      2.0 Security Threats and Attacks
  220.      DeBry, Hadsell, Manchala, Riley, Wenn             [Page 4]
  221.                        Expires December 12, 1997
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.      INTERNET-DRAFT        IPP/1.0: Security      June 12, 1997
  229.  
  230.  
  231.  
  232.  
  233.      Before discussing security services specifically as they relate
  234.      to IPP, it will be useful to quickly discuss and categorize
  235.      security threats in a general way and discuss the means by which
  236.      these threats are carried out.
  237.  
  238.      2.1 Threats
  239.  
  240.      Security threats fall into the following broad categories:
  241.  
  242.      Resource stealing: The unauthorized use of facilities, such as
  243.      printers, specific printer features, media, fonts, or logos etc.
  244.      resulting in some value to the perpetrator.
  245.  
  246.      Vandalism: Similar to resource stealing, but usually without gain
  247.      to the perpetrator.  Often results in denial of service to other
  248.      authorized users.
  249.  
  250.      Leakage: The acquisition of information by unauthorized
  251.      interceptors during transmission.
  252.  
  253.      Tampering: The interception and altering of information during
  254.      transmission.
  255.  
  256.      2.2 Methods of Attack
  257.  
  258.      The methods by which security violations can be perpetrated
  259.      depend upon obtaining access to existing communication channels
  260.      or establishing channels that masquerade as connections to a user
  261.      with some desired authority.  These methods are:
  262.  
  263.      Masquerading: Submission of print jobs or performing other IPP
  264.      operations using the identity and password of another user
  265.      without their authority, or by using an access token or
  266.      capability after the authorization to use it has expired.
  267.  
  268.      Eavesdropping: Obtaining copies of documents and job instructions
  269.      without authority, either directly from the network or by
  270.      examining information that is inadequately protected in storage.
  271.  
  272.      Document tampering: Intercepting documents or other print job
  273.      related information and altering their contents before passing
  274.      them on to the printer or print server.
  275.  
  276.  
  277.      DeBry, Hadsell, Manchala, Riley, Wenn             [Page 5]
  278.                        Expires December 12, 1997
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.      INTERNET-DRAFT        IPP/1.0: Security      June 12, 1997
  286.  
  287.  
  288.  
  289.      Replaying: Intercepting and storing print jobs or documents, and
  290.      have them submitted again later. Example: Stock Certificate
  291.      Printing. Protection against replaying requires the use of a
  292.      nonce and/or time stamp.
  293.  
  294.      Spamming: Sending irrelevant or nonsensical print jobs or other
  295.      IPP operations to a printer or print server with the objective of
  296.      overloading the system and preventing legal users from getting
  297.      service.
  298.  
  299.      Malicious Document Content Code: Sending documents that contain
  300.      malicious code which will bring the printer software into a loop
  301.      or even ruin hardware components in the print device. Example:
  302.      Using PostScript as a programming language to run the printer
  303.      into an infinite loop.
  304.  
  305.      3.0 Internet Printing Environments
  306.  
  307.      It is now important to understand how the threats and attacks we
  308.      have discussed above apply to the various environments in which
  309.      IPP will operate.
  310.  
  311.      The IPP Model encapsulates the important elements required for
  312.      printing into three simple objects, the Printer, the Job, and the
  313.      Document. The Printer represents the functions associated with a
  314.      physical output device along with the spooling, scheduling, and
  315.      multiple output device management often associated with a print
  316.      server. An IPP client uses the IPP protocol to invoke operations
  317.      on IPP objects on other network nodes.
  318.  
  319.      The initial security needs of IPP are derived from two primary
  320.      considerations.  First, the printing environments described in
  321.      this document take into account the fact that the client, the
  322.      Printer, and the document to be printed may all exist in
  323.      different security domains. When objects are in different
  324.      security domains the requirements for authentication and message
  325.      protection are much stronger than when they are in the same
  326.      domain.
  327.  
  328.      Secondly, the sensitivity and value of the content being printed
  329.      will vary. For example, a publicly available document does not
  330.      require the same level of privacy that a payroll document
  331.      requires. There are at least two parties that have an interest in
  332.      the value of the information being printed, the person asking to
  333.      have the information printed and the person who originated the
  334.      DeBry, Hadsell, Manchala, Riley, Wenn             [Page 6]
  335.                        Expires December 12, 1997
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.      INTERNET-DRAFT        IPP/1.0: Security      June 12, 1997
  343.  
  344.  
  345.  
  346.      information. This brings into the picture the need to worry about
  347.      copyrights and protection of the content.
  348.  
  349.      Security attacks are now described for the following IPP
  350.      environments. Where examples are provided they should be
  351.      considered illustrative of the environment and not an exhaustive
  352.      set. Not all of these environments will necessarily be addressed
  353.      in initial implementations of IPP.
  354.  
  355.      3.1 Client and Printer in the Same Security Domain
  356.  
  357.      This environment is typical of internal networks where
  358.      traditional office workers print the output of personal
  359.      productivity applications on shared work-group printers, or where
  360.      batch applications print their output on large production
  361.      printers. Although the identity of the user may be trusted in
  362.      this environment, a user might want to protect the content of a
  363.      document against such attacks as eavesdropping, replaying or
  364.      tampering.
  365.  
  366.      3.2 Client and Printer in Different Security Domains
  367.  
  368.      Examples of this environment include printing a document created
  369.      by the client on a publicly available printer, such as at a
  370.      commercial print shop; or printing a document remotely on a
  371.      business partner's printer. This latter operation is functionally
  372.      equivalent to sending the document to the business partner as a
  373.      facsimile. Printing sensitive information on a Printer in a
  374.      different security domain requires strong security measures. In
  375.      this environment authentication of the printer is required as
  376.      well as protection against unauthorized use of print resources.
  377.      Since the document crosses security domains, protection against
  378.      eavesdropping and document tampering are also required. It will
  379.      also be important in this environment to protect Printers against
  380.      spamming and malicious document content code.
  381.  
  382.      3.3 Print by Reference
  383.  
  384.      When the document is not stored on the client, printing can be
  385.      done by reference. That is, the print request can contain a
  386.      reference, or pointer, to the document instead of the actual
  387.      document itself. If the client physically gets the document
  388.      before it prints it, then this defaults to one of the previous
  389.      cases.
  390.  
  391.      DeBry, Hadsell, Manchala, Riley, Wenn             [Page 7]
  392.                        Expires December 12, 1997
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.      INTERNET-DRAFT        IPP/1.0: Security      June 12, 1997
  400.  
  401.  
  402.  
  403.      3.3.1 Unprotected Documents
  404.  
  405.      In many cases, documents to be printed are literally available to
  406.      anyone. Documents, such as this Internet Draft which are stored
  407.      on anonymous FTP sites, are good examples of this. No security
  408.      mechanisms are required to protect access to these document.
  409.  
  410.      3.3.2 Protected Documents
  411.  
  412.      Clearly, there are cases where the nature of a document requires
  413.      that access to it be protected by some authentication and/or
  414.      authorization mechanism, or where the right to print the document
  415.      must be paid for. This would be the case for sensitive or
  416.      confidential information, or where documents are copyrighted or
  417.      sold for profit. Unauthorized access to content is a major
  418.      concern in this environment. Protection against eavesdropping,
  419.      document tampering and unauthorized access to the document are
  420.      also concerns if the content is sensitive.
  421.  
  422.      3.4 Common Security Scenarios
  423.  
  424.      As discussed earlier in this document,we cannot anticipate the
  425.      security levels or the specific threats that any given IPP print
  426.      administrator may be concerned with. Security policies might vary
  427.      from very strong, to very weak, to none at all, and corresponding
  428.      security mechanisms will be required. In this section we will
  429.      describe what we believe to be four common usage scenarios.
  430.  
  431.      1) No security at all
  432.      2) Message protection during transmission
  433.      3) Client authentication and authorization
  434.      4) Mutual authentication, authorization, and message protection
  435.  
  436.      3.4.1 No Security
  437.  
  438.      If the server requires no authorization and the client wants no
  439.      message protection the client can send the print job, i.e., the
  440.      job content and the job attributes without invoking any security
  441.      mechanisms. The printer will print the job for the client. Print
  442.      by reference also works well in this environment as long no
  443.      security mechanisms are required to access the documents to be
  444.      printed.
  445.  
  446.      3.4.2 Message Protection During Transmission
  447.  
  448.      DeBry, Hadsell, Manchala, Riley, Wenn             [Page 8]
  449.                        Expires December 12, 1997
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.      INTERNET-DRAFT        IPP/1.0: Security      June 12, 1997
  457.  
  458.  
  459.  
  460.      There are two types of security that could be used to provide
  461.      message protection. These are channel security and object
  462.      security. In the first case, the transport medium must be made
  463.      secure by mutual authentication. Then everything between the
  464.      client and server is encrypted by the transport medium. The
  465.      transport medium can be either of the following: transport layer
  466.      security (TLS) or network layer security (IPSec).
  467.  
  468.      In the case of object security, each object is encrypted and sent
  469.      over either a secure or an insecure channel. The recipient has
  470.      the corresponding key to decrypt the object and get the contents.
  471.      The most widely used object security mechanisms are S/MIME
  472.      [draft-smime], S-HTTP and PGP/MIME.
  473.  
  474.      3.4.3 Client Authentication and Authorization
  475.  
  476.      This scenario requires client authentication which may also be
  477.      used for authorization. A user ID and password may be used for
  478.      authorization purposes, and may be encrypted by the lower
  479.      security layer. S/MIME and TLS are good examples of this. TLS
  480.      supports both one sided and mutual authentication and can also be
  481.      used in this scenario.
  482.  
  483.      3.4.4 Mutual Authentication, Authorization and Message Protection
  484.  
  485.      This scenario requires mutual authentication and message
  486.      protection. TLS and Secure Sockets Layer version 3 (SSL3) are
  487.      good channel level security providers in this category.
  488.  
  489.      4.0 Security Services
  490.  
  491.      Now that we have decribed the security threats that exist in the
  492.      various environments in which IPP may operate, we will discuss
  493.      the security services that are generally available to counter
  494.      these threats.  Security in general encompasses the software and
  495.      hardware functionality to deliver the following services:
  496.  
  497.      Authorization: Only authorized users should be able to gain
  498.      access to systems, applications, data or services. Authorization
  499.      may be based on authenticated identity, location, time of day,
  500.      role, possession of a physical device or token, or other
  501.      criterion.
  502.  
  503.      Authentication: Authentication is the process of proving who a
  504.      user or system is, and may apply to individual identities, roles,
  505.      DeBry, Hadsell, Manchala, Riley, Wenn             [Page 9]
  506.                        Expires December 12, 1997
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.      INTERNET-DRAFT        IPP/1.0: Security      June 12, 1997
  514.  
  515.  
  516.  
  517.      or groups. Authentication may be done with traditional methods
  518.      such as passwords or challenge-response mechansisms, or with
  519.      publicly recognized methods such as certificates.
  520.  
  521.      Message Protection: Access control protects data when it is
  522.      within a secure system environment. However, when data must
  523.      travel outside of a secure system, such as across a public
  524.      network, it needs to be protected. Message protection includes
  525.      the following:
  526.  
  527.      Data origin authentication guarantees that the data originates
  528.      from an identified source.
  529.  
  530.      Privacy protection guarantees that the data cannot be observed
  531.      except by authorized parties.
  532.  
  533.      Integrity protection guarantees that the data cannot be
  534.      undetectably modified except by authorized parties.
  535.  
  536.      Non-repudiation protection guarantees that actions taken on data
  537.      cannot be denied by the subjects performing those actions.
  538.  
  539.      Liability: Responsibility of the user for the printed content.
  540.      This holds the user accountable for making payments, usage of
  541.      special resources like transparencies, color printing, etc. The
  542.      printer is also responsible for the services performed and will
  543.      be held responsible for it.
  544.  
  545.      Provability of Service: The printer should be able to prove that
  546.      it performed correctly according to the job attributes which  the
  547.      client/user had indeed issued. Example: The printer should be
  548.      able to prove that the job request was indeed a monochrome when
  549.      the user claims it issued a color copy. Provability of service
  550.      requires non-repudiation.
  551.  
  552.      Payment and Accounting System: The Printer should insure that the
  553.      wong person is not charged when someone issues a print request.
  554.  
  555.      5.0 Applying Security to IPP Operations
  556.  
  557.      An IPP client uses the IPP protocol to invoke operations on
  558.      remote Printer and Job objects. We now need to understand which
  559.      security services are required for the various IPP operations.
  560.      The IPP Operations are:
  561.  
  562.      DeBry, Hadsell, Manchala, Riley, Wenn             [Page 10]
  563.                        Expires December 12, 1997
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.      INTERNET-DRAFT        IPP/1.0: Security      June 12, 1997
  571.  
  572.  
  573.  
  574.      Create-Job - Create an instance of a Job object
  575.      Send-Document - Append enclosed data to a Job object
  576.      Print-Job - Print the enclosed job, with attributes
  577.      Cancel-Job - Cancel a previously submitted print job
  578.      Validate - Validate attributes for a specific object
  579.      Get-Jobs - Return job queue information for a Printer object
  580.      Get-Attributes - Return attribute information for a Printer or
  581.      Job object
  582.      Print-URI - Print a document by reference
  583.      Send-URI - Append enclosed document reference to a Job object
  584.  
  585.      Every time a new connection with a Printer Object or with a Job
  586.      Object is opened a new security context must established. An
  587.      administrator may set up different security requirements for
  588.      different operations, i.e. a user may be able to query a printer,
  589.      but not submit a job. Once a Job is created, the same (or
  590.      greater) level of security will be required to perform additional
  591.      operations on that job.
  592.  
  593.      5.1 Create-Job
  594.  
  595.      When creating a print job, authentication of the client and the
  596.      Printer are primary security considerations. Client
  597.      authentication, along with authorization, protects against
  598.      unauthorized use of print resources. Printer authentication
  599.      guarantees the identitity of the remote Printer.
  600.  
  601.      5.2 Send-Document
  602.  
  603.      When sending document content to the Printer, message protection
  604.      is the primary security service required.
  605.  
  606.      5.3 Print-Job
  607.  
  608.      PrintJob combines the functions of CreateJob and SendDocument,
  609.      therefore
  610.      authentication, authorization, and message protection are all
  611.      required.
  612.  
  613.      5.4 Cancel-Job
  614.  
  615.      Cancel-Job is only used to cancel a job. An end user may only be
  616.      allowed to cancel his or her own print jobs. Therefore
  617.      authentication is required to protection against unauthorized
  618.      cancellation of a job.
  619.      DeBry, Hadsell, Manchala, Riley, Wenn             [Page 11]
  620.                        Expires December 12, 1997
  621.  
  622.  
  623.  
  624.  
  625.  
  626.  
  627.      INTERNET-DRAFT        IPP/1.0: Security      June 12, 1997
  628.  
  629.  
  630.  
  631.  
  632.      5.5 Validate
  633.  
  634.      Validate is used to validate the attributes of a remote object.
  635.      Administrators may choose to restrict the ability for certain end
  636.      users to see the attributes of a Printer, so authentication and
  637.      authorization are required services.
  638.  
  639.      5.6 Get-Jobs
  640.  
  641.      The level of security associated with the GetJobs operation
  642.      depends on the policy set by an administrator.  One common policy
  643.      is for the complete job queue to be returned to anyone who asks.
  644.      This policy requires no security. For more secure Printers, a
  645.      common policy is to list details only on the print jobs owned by
  646.      the end user, while giving little or no details about other jobs.
  647.      This policy requires client authentication and authorization to
  648.      match the client to the print jobs.
  649.  
  650.      5.7 Get-Attributes
  651.  
  652.      An administrator should be able to establish the level of
  653.      security associated with getting the attributes of a printer.
  654.  
  655.      5.8 Print-URI
  656.  
  657.      Print-URI is like Print-Job except that only a reference to the
  658.      document to be printed is sent in the request. Thus the Printer
  659.      must fetch the document from the given URI in order to print the
  660.      job. In IPP version 1.0 we only allow unprotected (see section
  661.      3.3.1) documents to be printed by reference. Additional, as yet
  662.      undefined security mechanisms are required to print a protected
  663.      document by reference.
  664.  
  665.      5.9 Send-URI
  666.  
  667.      Send-URI is like send-Document except that only a reference to
  668.      the document to be printed is sent in the request. This operation
  669.      has the same security concerns as Print-URI.
  670.  
  671.      Issue: Does asynchronous notification require any security?
  672.  
  673.      6.0 Comments on existing security technologies
  674.  
  675.  
  676.      DeBry, Hadsell, Manchala, Riley, Wenn             [Page 12]
  677.                        Expires December 12, 1997
  678.  
  679.  
  680.  
  681.  
  682.  
  683.  
  684.      INTERNET-DRAFT        IPP/1.0: Security      June 12, 1997
  685.  
  686.  
  687.  
  688.      TLS - Transport Layer Security:  Seems OK, is near completion in
  689.      the IETF and existing SSL product are probably compliant, or can
  690.      be made compliant without much effort. TLS Provides channel level
  691.      security.
  692.  
  693.      SSL 2 and SSL 3 - Secure Socket Layer:  Proprietary solution
  694.      initially by Netscape, but TLS is very close. Provides channel
  695.      level security.
  696.  
  697.      PGP/MIME - Pretty Good Privacy MIME variant:  The original PGP is
  698.      widely deployed (but not much liked by the US government).  The
  699.      PGP/MIME version is now being worked on but is still not out, not
  700.      yet stable, and not yet implemented and deployed. PGP/MIME
  701.      provides object level security.
  702.  
  703.      S/MIME - Secure MIME:  Currently a private implementation from
  704.      RSA.  Although coming out as product from a number of vendors,
  705.      unlikely to make it on the IETF standards track unless RSA
  706.      decides to release their proprietary products as open standards.
  707.      S/MIME provides object level security.
  708.  
  709.      SASL - Simple Authentication and Session Layer:  This seems to be
  710.      winning mind share in the IETF, but is really only a security
  711.      feature negotiation protocol and does not provide any security
  712.      services in itself.  Hence quite limited usefulness for IPP.
  713.  
  714.      HTTP 1.1 Digest Access Authentication, RFC 2069:  This provides
  715.      some limited security services, mainly only client side
  716.      authentication.  It transmits a cryptographic digest derived from
  717.      the user name, password, and a server generated challenge.
  718.  
  719.      SHTTP - Secure HTTP:  Although on the IETF standards track, this
  720.      seems to lack some important features and does not seem to go
  721.      anywhere in the market place.
  722.  
  723.      PEM - Privacy Enhanced Mail. Specified in IEF RFCs 1421-1424. It
  724.      was an early standard for securing email that specified a message
  725.      format and a hierarchy structure for certification authorities
  726.      (CAs).
  727.  
  728.      MOSS - MIME Object Security Services. Offers the same
  729.      functionality as PEM, but does not force a single trust model,
  730.      and allows the identification of users by names that don't have
  731.      any relationship to X.500, such as E-mail addresses.
  732.  
  733.      DeBry, Hadsell, Manchala, Riley, Wenn             [Page 13]
  734.                        Expires December 12, 1997
  735.  
  736.  
  737.  
  738.  
  739.  
  740.  
  741.      INTERNET-DRAFT        IPP/1.0: Security      June 12, 1997
  742.  
  743.  
  744.  
  745.      IPSec - IP Security is an IETF standards track protocol for
  746.      security on the IP layer. It consists of two separate mechanisms.
  747.      The IP Authentication Header (AH) and the IP Encapsulating
  748.      Security Payload (ESP). They can be used together or separately.
  749.      The IP Authentication header provides integrity and
  750.      authentication of IP datagrams. The IP Encapsulating Security
  751.      Payload provides integrity, authentication and privacy. IPSec
  752.      allows for either host keys or user keys to be used in security.
  753.      IPSec can satisfy the IPP requirements for integrity and privacy.
  754.      IPP Authentication, however, would require both IPSec use user
  755.      keys and that the IPP application request use their own IPSec
  756.      security association. Both requirements are recommended by IPSec
  757.      but are not required.
  758.  
  759.      6.1 Recommended Security Mechanisms
  760.  
  761.      In order to provide security for the four common usage scenarios
  762.      defined earlier, we recommend that implementations provide the
  763.      following, which are suitable for use with HTTP 1.1.
  764.  
  765.      - No Security - nothing is required
  766.      - Message Protection during transmission
  767.        - TLS
  768.        - IPSec
  769.      - Client authentication and authorization
  770.        - HTTP 1.1 Digest access authentication
  771.        - TLS
  772.      - Mutual authentication, authorization and message protection
  773.         - TLS
  774.  
  775.      The security protocol used by a particular IPP operation will
  776.      depend upon the security services provided by the Printer and the
  777.      selection made by the client. This requires that the right
  778.      handshake messages be passed. These are described in more detail
  779.      in the Appendix.
  780.  
  781.      Directory and Printer attributes are required so that an end user
  782.      can query the level of security supported, but these are yet to
  783.      be defined.
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.      DeBry, Hadsell, Manchala, Riley, Wenn             [Page 14]
  791.                        Expires December 12, 1997
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798.      INTERNET-DRAFT        IPP/1.0: Security      June 12, 1997
  799.  
  800.  
  801.  
  802.      7.0 Appendix - Specific Features of various technologies
  803.  
  804.      7.1 S/MIME: (Secure/Multipurpose Internet Mail Extensions)
  805.  
  806.      Security services and features offered:
  807.      Sender Authentication is provided using digital signatures. The
  808.      recipient reads the sender's digital signature. Non-repudiation
  809.      of origin is also achieved using digital signatures.
  810.      Privacy (using encryption).
  811.      Integrity is achieved by using hashing to detect message
  812.      tampering.
  813.      Provides anonymity by using anonymous e-mailers and gateways. The
  814.      digital signature and the original message are placed in an
  815.      encrypted digital envelope.
  816.      Supports DES, Triple-DES, RC2.
  817.      X.509 digital certificates supported.
  818.      Supports PKCS #7(cryptographic message formatting, architecture
  819.      for certificate-based key management) and #10(message for
  820.      certification request).
  821.  
  822.      Usage, implementation and interoperability:
  823.      Used to securely transmit e-mail messages in MIME format.
  824.      Public domain mailer RIPEM available.
  825.      RSA's toolkit TIPEM (Toolkit for Interoperable Privacy Enhanced
  826.      Messaging)  can be used to build S/MIME clients. It includes C
  827.      object code for digital envelopes, digital signatures and digital
  828.      certificate operations.
  829.      Any two packages that implement S/MIME can communicate securely.
  830.      Compatible with IMAP (Internet Message Access Protocol - RFC
  831.      1730).
  832.      S/MIME works both on the Internet or any other e-mail
  833.      environment.
  834.  
  835.      7.2 Transport Layer Security 1.0 (TLS)
  836.  
  837.      TLS is a two layered protocol. The lower level TLS Record
  838.      Protocol that sits on top of TCP and the TLS Handshake Protocol.
  839.      The TLS Handshake protocol consists of a suite of three sub
  840.      protocols which are used to allow peers to agree upon security
  841.      parameters for the record layer, authenticate themselves,
  842.      instantiate negotiated security parameters, and report error
  843.      conditions to each other. TLS  is application protocol
  844.      independent. It is based on SSL v3.
  845.  
  846.      Security services and features offered:
  847.      DeBry, Hadsell, Manchala, Riley, Wenn             [Page 15]
  848.                        Expires December 12, 1997
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855.      INTERNET-DRAFT        IPP/1.0: Security      June 12, 1997
  856.  
  857.  
  858.  
  859.      Privacy: (optional). Uses symmetric keys. Encryption done by the
  860.      TLS Record Protocol. The keys are generated for each connection
  861.      by the TLS Handshake Protocol.
  862.      Integrity: Using keyed MAC. Hash functions (SHA, MD5) are used
  863.      for MAC computations.
  864.      Authentication (Both one-sided and Mutual): The TLS Handshake
  865.      Protocol uses public key cryptography. Encryption algorithms are
  866.      negotiated.
  867.  
  868.      Usage, implementation and interoperability:
  869.      Interoperability: Independent applications can be developed
  870.      utilizing TLS and successfully exchange cryptographic parameters
  871.      without knowledge of  each others code. Cannot inter-operate with
  872.      SSL 3.0
  873.      Extensibility: New encryption methods can be incorporated as
  874.      necessary.
  875.      Efficiency: To reduce the number of sessions that need to be
  876.      established from scratch, TLS provides session caching scheme.
  877.      Other operations: Compression, fragmentation is done by the TLS
  878.      Record Protocol.
  879.  
  880.      Handshake protocol steps:
  881.      Exchange hello messages to agree on algorithms, exchange random
  882.      values, and check for session resumption.
  883.      Exchange the necessary cryptographic parameters to allow the
  884.      client and server to agree on a premaster secret.
  885.      Exchange certificates and cryptographic information to allow the
  886.      client and server to authenticate themselves.
  887.      Generate a master secret from the premaster secret and exchanged
  888.      random values.
  889.      Provide security parameters to the record layer.
  890.      Allow the client and server to verify that their peer has
  891.      calculated the same security parameters and that the handshake
  892.      occurred without tampering by an attacker.
  893.  
  894.      Note: The https protocol uses port 443 regardless of which
  895.      security protocol version (TLS, SSL2, SSL3) it is using.
  896.      Star (*) indicates optional messages.
  897.  
  898.      7.3 SASL (Simple Authentication and Security Layer)
  899.  
  900.      SASL provides a method for adding authentication support to
  901.      connection-based protocols.  A command for identifying and
  902.      authenticating a user and for (optionally) negotiating a security
  903.  
  904.      DeBry, Hadsell, Manchala, Riley, Wenn             [Page 16]
  905.                        Expires December 12, 1997
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.      INTERNET-DRAFT        IPP/1.0: Security      June 12, 1997
  913.  
  914.  
  915.  
  916.      layer for subsequent protocol interactions is included with a
  917.      protocol.
  918.  
  919.      Security services and features offered:
  920.      (These are layers that SASL would call. One of these could be
  921.      selected.)
  922.      No security
  923.      Integrity
  924.      Privacy
  925.  
  926.      Security mechanisms:
  927.      Kerberos
  928.      GSS-API
  929.      S/Key
  930.  
  931.      Handshaking protocol:
  932.      1. Client sends data
  933.      2. Server returns success* with additional data (challenge).
  934.      Multiple authentication (s)* (Only one - the latest security
  935.      layer
  936.           exists during multiple authentication).
  937.           4. Registration procedures.*
  938.  
  939.      Note: SASL is not relevant for HTTP based protocols, but could be
  940.      relevant to IPP, if IPP decides to later define an IPP specific
  941.      protocol.
  942.  
  943.      7.4 Digest Access Authentication [rfc2069]
  944.  
  945.      Digest Access Authentication is a proposed standard for weak
  946.      authentication in HTTP 1.1.  It is intended as a replacement for
  947.      Basic Access Authentication found in HTTP 1.0.  While Digest
  948.      authentication is on the weak end of the security spectrum, it is
  949.      a considerable improvement over the completely insecure Basic
  950.      authentication.
  951.  
  952.      Security services and features offered:
  953.      a.  Client Authentication is provided for by a client
  954.      username/password pair.  A hash of the username/password (and
  955.      other information) is sent from the client to the server. How the
  956.      username/password is created is outside the protocol.
  957.      b.  Integrity (optional) is provided for by a hash of the entity
  958.      body, username/password, selected entity headers (and other
  959.      information).  This can be done on either messages from the
  960.      client or from the server.
  961.      DeBry, Hadsell, Manchala, Riley, Wenn             [Page 17]
  962.                        Expires December 12, 1997
  963.  
  964.  
  965.  
  966.  
  967.  
  968.  
  969.      INTERNET-DRAFT        IPP/1.0: Security      June 12, 1997
  970.  
  971.  
  972.  
  973.      c.  By default, the hash uses MD5.  However, there are provisions
  974.      for other algorithms.
  975.      d.  Digest authentication is vulnerable to replay attacks, man-
  976.      in-the-middle attacks, server spoofing, and attacks on the stored
  977.      password on the server.  Well chosen implementations can
  978.      minimize, but not eliminate the vulnerability.
  979.  
  980.      Usage, implementation and interoperability:
  981.      a.  This is used by web servers and clients to pass
  982.      authentication information.
  983.      b.  This is a proposed feature addition to HTTP 1.1.  As such, it
  984.      is limited to HTTP 1.1 implementations (currently a small
  985.      number).
  986.      c.  Different implementations have proven interoperable.
  987.  
  988.      Handshake protocol steps:
  989.      a.  Client asks for an access-protected object and an acceptable
  990.      Authorization header is not sent.
  991.      b.  The Server responds with a "401 Unauthorized" status code,
  992.      and a WWW-Authenticate header.  The header has the fields:
  993.         * realm - a string indicating the context for the
  994.      authorization
  995.         * domain [optional] - a list of URIs the authentication is
  996.      used for
  997.         * nonce - a data string used in authentication
  998.         * opaque [optional] - a data string supplied by the server
  999.         * stale [optional] - a flag indicating the previous effort
  1000.      used a stale nonce
  1001.         * algorithm [optional] - a token indicating the hash algorithm
  1002.      to use
  1003.      c.  The Client then asks the User for the username/password (if
  1004.      needed).  It then calculates the needed information and retries
  1005.      the request with a Authorization header.  The header has the
  1006.      fields:
  1007.         * username - the string supplied by the user
  1008.         * realm - the value supplied by the server
  1009.         * nonce - the value supplied by the server
  1010.         * uri - the URI requested
  1011.         * response - the response hash (see below)
  1012.         * digest [optional] - the digest hash (see below), used for
  1013.      integrity checking
  1014.         * algorithm [optional] - the algorithm used
  1015.         * opaque - the value supplied by the server
  1016.      d.  If authorization is granted, the Server responds with result
  1017.      of query,
  1018.      DeBry, Hadsell, Manchala, Riley, Wenn             [Page 18]
  1019.                        Expires December 12, 1997
  1020.  
  1021.  
  1022.  
  1023.  
  1024.  
  1025.  
  1026.      INTERNET-DRAFT        IPP/1.0: Security      June 12, 1997
  1027.  
  1028.  
  1029.  
  1030.      optionally including a AuthenticationInfo header.  The header has
  1031.      the fields:
  1032.         * nextnonce [optional] - the nonce the client should use for
  1033.      the next request
  1034.         * digest [optional] - the digest hash (see below) used for
  1035.      integrity checking.
  1036.  
  1037.      Calculation of hashes
  1038.  
  1039.      The response hash uses the values of username, realm, password,
  1040.      nonce, HTTP method, and URI.  It is calculated by:
  1041.        response = Hash(Hash(A1) ":" nonce ":" Hash(A2))
  1042.        A1 = username ":" realm ":" password
  1043.        A2 = method ":" URI
  1044.  
  1045.      The digest hash uses the values of username, realm, password,
  1046.      nonce, HTTP method, date, URI, content-type, content-length,
  1047.      content-encoding, last-modified, expires, and the entity body.
  1048.      The values of content-type, content-length, content-encoding,
  1049.      last-modified and expires are all taken from the HTTP headers,
  1050.      and are blank if not defined.  The digest hash can be sent.by
  1051.      either the client or the server.  The digest hash is calculated
  1052.      by:
  1053.         digest = Hash(Hash(A1) ":" nonce ":" method ":" date ":"
  1054.      entity-info ":"Hash(entity-body))
  1055.         entity-info = Hash(URI ":" content-type ":" content-length ":"
  1056.      content-encoding ":" last-modified ":" expires)
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066.  
  1067.  
  1068.  
  1069.  
  1070.  
  1071.  
  1072.  
  1073.  
  1074.  
  1075.      DeBry, Hadsell, Manchala, Riley, Wenn             [Page 19]
  1076.                        Expires December 12, 1997
  1077.  
  1078.  
  1079.  
  1080.  
  1081.  
  1082.  
  1083.      INTERNET-DRAFT        IPP/1.0: Security      June 12, 1997
  1084.  
  1085.  
  1086.  
  1087.      8.0 References:
  1088.  
  1089.      [rfc2069] J. Franks, P. Hallam-Baker, J. Hostetler, P. Leach, A.
  1090.      Luotonen, E. Sink, L. Stewart, _An Extension to HTTP: Digest
  1091.      Access Authentication_, RFC-2069, Jan 1997.
  1092.  
  1093.      [draft-smime] S. Dusse, _S/MIME Message Specification_, <draft-
  1094.      dusse-mime-msg-spec-00.txt_, Sep. 1996.
  1095.  
  1096.      [draft-sasl] J. Myers, _Simple Authentication and Security Layer
  1097.      (SASL)_, <draft-myers-auth-sasl-11.txt>, April 1997.
  1098.  
  1099.      [draft-tsl] T. Dierks, C. Allen, _The TLS Protocol_, <draft-ietf-
  1100.      tls-protocol-03.txt>, March 24, 1997.
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.  
  1128.  
  1129.  
  1130.  
  1131.  
  1132.      DeBry, Hadsell, Manchala, Riley, Wenn             [Page 20]
  1133.                        Expires December 12, 1997
  1134.  
  1135.  
  1136.  
  1137.  
  1138.  
  1139.  
  1140.      INTERNET-DRAFT        IPP/1.0: Security      June 12, 1997
  1141.  
  1142.  
  1143.  
  1144.      9.0 Authors' Addresses
  1145.  
  1146.      Roger deBry
  1147.      HUC/003G
  1148.      IBM Corporation
  1149.      P.O. Box 1900
  1150.      Boulder, CO 80301-9191
  1151.      rdebry@us.ibm.com
  1152.  
  1153.      Jerry Hadsell
  1154.      1130
  1155.      IBM Corporation
  1156.      Rt. 100
  1157.      Somers, N.Y. 10589
  1158.      hadsell@us.ibm.com
  1159.  
  1160.      Daniel Manchala
  1161.      Xerox Corporation
  1162.      701 Aviation Blvd.
  1163.      El Segundo, CA 90245
  1164.      manchala@cp10.es.xerox.com
  1165.  
  1166.      Xavier Riley
  1167.      Xerox Corporation
  1168.      701 Aviation Blvd.
  1169.      El Segundo, CA 90245
  1170.      xriley@cp10.es.xerox.com
  1171.  
  1172.      John Wenn
  1173.      Xerox Corporation
  1174.      701 Aviation Blvd.
  1175.      El Segundo, CA 90245
  1176.      jwenn@cp10.es.xerox.com
  1177.  
  1178.  
  1179.      Other Contributors
  1180.  
  1181.      Scott Isaacson, Novell
  1182.      Carl-Uno Manros, Xerox
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.      DeBry, Hadsell, Manchala, Riley, Wenn             [Page 21]
  1190.                        Expires December 12, 1997
  1191.  
  1192.  
  1193.