home *** CD-ROM | disk | FTP | other *** search
/ Internet Standards / CD1.mdf / nist / oiw / agreemnt / 12s_9403.txt < prev    next >
Text File  |  1994-05-22  |  121KB  |  4,093 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.           Stable Implementation
  9.           Agreements for Open Systems
  10.           Interconnection Protocols:
  11.           Part 12 - OS Security
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.           Output from the March 1994 Open Systems Environment Implementors'
  25.           Workshop (OIW)
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.           Acting SIG Chair:  Richard Harris, The Boeing Company
  60.           SIG Editor:    Dr. Mohammad Mirhakkak, MITRE
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.           PART 12 - SECURITY                            March 1994 (Stable)
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.           Foreword
  92.  
  93.           This part of the Stable Implementation Agreements was prepared by
  94.           the Security Special Interest Group (SECSIG) of the Open  Systems
  95.           Environment Implementors'  Workshop (OIW) hosted by  the National
  96.           Institute  of Standards  and Technology  (NIST).   See  Part 1  -
  97.           Workshop   Policies   and  Procedures   of  the   "Draft  Working
  98.           Implementation Agreements Document."
  99.  
  100.           Text in this part has been approved  by the Plenary of the above-
  101.           mentioned Workshop.   This part replaces the  previously existing
  102.           chapter on this subject.   There is significant technical  change
  103.           from this text as previously given.  
  104.  
  105.           Future changes and additions to this version of these Implementor
  106.           Agreements  will  be  published as  change  pages.   Deleted  and
  107.           replaced text  will be shown  as strikeout.  New and  replacement
  108.           text will be shown as shaded.
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.                                           ii
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.           PART 12 - SECURITY                            March 1994 (Stable)
  141.  
  142.                                   Table of Contents
  143.  
  144.  
  145.           Part 12 - Security  . . . . . . . . . . . . . . . . . . . . .   1
  146.  
  147.           0   Introduction  . . . . . . . . . . . . . . . . . . . . . .   1
  148.  
  149.           1   Scope . . . . . . . . . . . . . . . . . . . . . . . . . .   1
  150.  
  151.           2   Normative References  . . . . . . . . . . . . . . . . . .   1
  152.  
  153.           3   Definitions . . . . . . . . . . . . . . . . . . . . . . .   2
  154.  
  155.           4   Symbols and Abbreviations . . . . . . . . . . . . . . . .   2
  156.  
  157.           5   Architectures . . . . . . . . . . . . . . . . . . . . . .   2
  158.               5.1  Introduction . . . . . . . . . . . . . . . . . . . .   3
  159.               5.2  Application Environments . . . . . . . . . . . . . .   3
  160.                    5.2.1    Base Environment  . . . . . . . . . . . . .   4
  161.                    5.2.2    Single Application Association Environment    5
  162.                    5.2.2.1  Architectural Diagram . . . . . . . . . . .   6
  163.                    5.2.2.2  Functional Groups . . . . . . . . . . . . .   6
  164.                    5.2.3    Application Relay Environment . . . . . . .   6
  165.                    5.2.3.1  Architectural Diagram . . . . . . . . . . .   7
  166.                    5.2.3.2  Functional Groups . . . . . . . . . . . . .   8
  167.                    5.2.4    Distributed  Applications Environment . . .   8
  168.                    5.2.4.1  Architectural diagram . . . . . . . . . . .   8
  169.                    5.2.4.2  Functional Groups . . . . . . . . . . . . .   9
  170.               5.3  Security Classes . . . . . . . . . . . . . . . . . .  10
  171.                    5.3.1    Security Class S0 . . . . . . . . . . . . .  11
  172.                    5.3.2    Security Class S1 . . . . . . . . . . . . .  11
  173.                    5.3.3    Security Class S2 . . . . . . . . . . . . .  12
  174.               5.4  Guidelines for OIW Application Profile Development .  12
  175.  
  176.           6   Key Management  . . . . . . . . . . . . . . . . . . . . .  12
  177.  
  178.           7   Security Algorithms . . . . . . . . . . . . . . . . . . .  12
  179.               7.1  Message Digests  . . . . . . . . . . . . . . . . . .  13
  180.                    7.1.1    Square-Mod-N  . . . . . . . . . . . . . . .  13
  181.                    7.1.2    MD2 . . . . . . . . . . . . . . . . . . . .  14
  182.                    7.1.3    MD4 . . . . . . . . . . . . . . . . . . . .  14
  183.                    7.1.4    MD5 . . . . . . . . . . . . . . . . . . . .  15
  184.                    7.1.5    SHA . . . . . . . . . . . . . . . . . . . .  15
  185.                    7.1.6    MDC-2 . . . . . . . . . . . . . . . . . . .  15
  186.               7.2  Reversible Public Key Algorithms . . . . . . . . . .  16
  187.                    7.2.1    RSA (X.509) . . . . . . . . . . . . . . . .  16
  188.                    7.2.2    RSA Encryption  . . . . . . . . . . . . . .  17
  189.                    7.2.3    RSA Signature . . . . . . . . . . . . . . .  17
  190.               7.3  Irreversible Public Key Algorithms . . . . . . . . .  17
  191.  
  192.  
  193.                                          iii
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.           PART 12 - SECURITY                            March 1994 (Stable)
  207.  
  208.                    7.3.1    El Gamal  . . . . . . . . . . . . . . . . .  18
  209.                    7.3.2    DSA . . . . . . . . . . . . . . . . . . . .  18
  210.                    7.3.3    DSA with Common Parameters  . . . . . . . .  19
  211.               7.4  Key Exchange   . . . . . . . . . . . . . . . . . . .  19
  212.                    7.4.1    Diffie-Hellman  . . . . . . . . . . . . . .  19
  213.                    7.4.2    Diffie-Hellman with Common Parameters . . .  20
  214.                    7.4.3    RSA Key Transport . . . . . . . . . . . . .  20
  215.               7.5  Signature Algorithms . . . . . . . . . . . . . . . .  21
  216.                    7.5.1    Message Digests with RSA  . . . . . . . . .  21
  217.                    7.5.1.1  Square-Mod-N with RSA . . . . . . . . . . .  21
  218.                    7.5.1.2  MD2 with RSA  . . . . . . . . . . . . . . .  21
  219.                    7.5.1.3  MD4 with RSA  . . . . . . . . . . . . . . .  21
  220.                    7.5.1.4  MD5 with RSA  . . . . . . . . . . . . . . .  22
  221.                    7.5.2    Message Digests with RSA Encryption . . . .  22
  222.                    7.5.2.1  MD2 with RSA Encryption . . . . . . . . . .  22
  223.                    7.5.2.2  MD4 with RSA Encryption . . . . . . . . . .  22
  224.                    7.5.2.3  MD5 with RSA Encryption . . . . . . . . . .  22
  225.                    7.5.3    DSA With SHA  . . . . . . . . . . . . . . .  23
  226.                    7.5.4    DSA With SHA with Common Parameters . . . .  23
  227.                    7.5.5    RSA Signature With MDC-2  . . . . . . . . .  23
  228.                    7.5.6    RSA Signature With SHA  . . . . . . . . . .  23
  229.               7.6  Symmetric Encryption Algorithms  . . . . . . . . . .  24
  230.                    7.6.1    Data Encryption Standard  . . . . . . . . .  24
  231.                    7.6.1.1  DES-ECB . . . . . . . . . . . . . . . . . .  24
  232.                    7.6.1.2  DES-CBC . . . . . . . . . . . . . . . . . .  25
  233.                    7.6.1.3  DES-OFB . . . . . . . . . . . . . . . . . .  26
  234.                    7.6.1.4  DES-CFB . . . . . . . . . . . . . . . . . .  26
  235.                    7.6.1.5  DES-MAC . . . . . . . . . . . . . . . . . .  26
  236.                    7.6.1.6  DES-EDE . . . . . . . . . . . . . . . . . .  27
  237.                    7.6.2    RC2-CBC . . . . . . . . . . . . . . . . . .  27
  238.                    7.6.3    RC-4  . . . . . . . . . . . . . . . . . . .  28
  239.               7.7  ASN.1  . . . . . . . . . . . . . . . . . . . . . . .  28
  240.                    7.7.1    Distinguished Encoding Rules  . . . . . . .  28
  241.  
  242.           8   Lower Layers Security . . . . . . . . . . . . . . . . . .  30
  243.  
  244.           9   Upper Layers Security . . . . . . . . . . . . . . . . . .  30
  245.               9.1  Security Mechanisms  . . . . . . . . . . . . . . . .  30
  246.                    9.1.1    Peer Entity Authentication  . . . . . . . .  30
  247.                    9.1.1.1  Simple-Strong Authentication  . . . . . . .  31
  248.                    9     .     1     .     1     .     1     .     1
  249.                             Operation . . . . . . . . . . . . . . . . .  31
  250.                    9     .     1     .     1     .     1     .     2
  251.                             Data Structure  . . . . . . . . . . . . . .  31
  252.                    9     .     1     .     1     .     1     .     3
  253.                             Options . . . . . . . . . . . . . . . . . .  32
  254.                    9.1.1.2  External Authentication Mechanisms  . . . .  33
  255.                    9     .     1     .     1     .     2     .     1
  256.                             Kerberos Version 5  . . . . . . . . . . . .  33
  257.                    9.1.2    Integrity/Data     Origin     Authentication
  258.  
  259.                                           iv
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.           PART 12 - SECURITY                            March 1994 (Stable)
  273.  
  274.                             Transformation  . . . . . . . . . . . . . .  33
  275.  
  276.           10  Message Handling System (MHS) Security  . . . . . . . . .  35
  277.  
  278.           11  Directory Services Security . . . . . . . . . . . . . . .  36
  279.  
  280.           12  Network Management Security . . . . . . . . . . . . . . .  36
  281.               12.1 Threats  . . . . . . . . . . . . . . . . . . . . . .  36
  282.               12.2 Security Services  . . . . . . . . . . . . . . . . .  37
  283.                    12.2.1   Basic Security Services . . . . . . . . . .  37
  284.                    12.2.2   Enhanced Security Services  . . . . . . . .  37
  285.               12.3 Security Mechanisms  . . . . . . . . . . . . . . . .  38
  286.                    12.3.1   Peer Entity Authentication  . . . . . . . .  38
  287.                    12.3.2   Connectionless  IntegrityProposed  text  for
  288.                             this clause appears  in WIA Part 12,  clause
  289.                             12.3.2.
  290.           Annex A (normative)
  291.  
  292.           ISPICS Requirements List  . . . . . . . . . . . . . . . . . .  39
  293.  
  294.           Annex B (normative)
  295.  
  296.           Errata  . . . . . . . . . . . . . . . . . . . . . . . . . . .  40
  297.  
  298.           Annex C (normative)
  299.  
  300.           TBD . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  41
  301.  
  302.           Annex D (informative)
  303.  
  304.           Security Algorithms and Attributes  . . . . . . . . . . . . .  42
  305.  
  306.           Annex E (normative)
  307.  
  308.           References for Security Algorithms  . . . . . . . . . . . . .  46
  309.  
  310.           Annex F (informative)
  311.  
  312.           Bibliography  . . . . . . . . . . . . . . . . . . . . . . . .  50
  313.  
  314.           Annex G (informative)
  315.  
  316.           ElGamal . . . . . . . . . . . . . . . . . . . . . . . . . . .  43
  317.               G.1  Background . . . . . . . . . . . . . . . . . . . . .  43
  318.               G.2  Digital Signature  . . . . . . . . . . . . . . . . .  44
  319.               G.3  Verification . . . . . . . . . . . . . . . . . . . .  45
  320.               G.4  Known Constraints on Parameters  . . . . . . . . . .  45
  321.  
  322.  
  323.  
  324.  
  325.                                           v
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.           PART 12 - SECURITY                            March 1994 (Stable)
  339.  
  340.                                    List of Figures
  341.  
  342.           Figure  1 -  Basic  Elements of  a  Generic OSI  Application
  343.                Environment  . . . . . . . . . . . . . . . . . . . . . .   4
  344.           Figure  2 -  Architectural  Diagram for  Single  Application
  345.                Association Environment  . . . . . . . . . . . . . . . .   6
  346.           Figure 3  -  Architectural  diagram  for  Application  Relay
  347.                Environment  . . . . . . . . . . . . . . . . . . . . . .   7
  348.           Figure   4   -   Architectural   diagram   for   Distributed
  349.                Applications Environment . . . . . . . . . . . . . . . .   9
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.                                           vi
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.           PART 12 - SECURITY                            March 1994 (Stable)
  405.  
  406.                                     List of Tables
  407.  
  408.           Table 1 - Security Classes  . . . . . . . . . . . . . . . . .  10
  409.           Table B.1 - SIA Part 12 changes . . . . . . . . . . . . . . .  40
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.                                          vii
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.           Part 12 - Security
  471.  
  472.                Editor's  Note -  Previous  material in  this part  has been
  473.                deleted and is no longer applicable.
  474.  
  475.  
  476.           0   Introduction
  477.  
  478.           The  relationship between protocols  and security is accomplished
  479.           by developing a  security profile that binds  these two together.
  480.           Security  profiles  define protocol  specific  implementations of
  481.           security architectures.
  482.  
  483.           A security profile includes the following items:
  484.  
  485.                a)  A grouping of the security services to be offered;
  486.  
  487.                b)  The placement of those security services;
  488.  
  489.                c)    The  selection of  mechanisms  to  support the  placed
  490.                security services.
  491.  
  492.           This   part  completes  this   sequence  of  steps   for  several
  493.           generalized  security  architectures.    A  generalized  security
  494.           architecture is chosen and tailored to derive a protocol-specific
  495.           security  profile.  This  part is comprised  of protocol-specific
  496.           security profiles and other supporting functions.
  497.  
  498.  
  499.           1   Scope
  500.  
  501.  
  502.           2   Normative References
  503.  
  504.           [ISO7498-2]    ISO/IEC  7498-2 Information  Processing Systems  -
  505.                Open  Systems Interconnection - Basic Reference Model - Part
  506.                2: Security Architecture, February 1989.
  507.  
  508.           [ISO8649] ISO/IEC 8649:  1988/Amd 1:1990  Service Definition  for
  509.                the  Association  Control   Service  Element,  Amendment  1:
  510.                Peer-Entity Authentication During Association Establishment.
  511.  
  512.           [ISO8650] ISO/IEC  9594-3 Information  Technology -  Open Systems
  513.                Interconnection - The  Directory - Part 3:  Abstract Service
  514.                Definition.
  515.  
  516.           [ISO8650/1]    ISO/IEC    8650:    1988/Amd    1:1990    Protocol
  517.                Specification for  the Association Control  Service Element,
  518.                Amendment 1:  Peer-Entity Authentication  During Association
  519.                Establishment.
  520.  
  521.           [ISO9594-7]    ISO/IEC  9594-7 Information  Processing Systems  -
  522.  
  523.                                           1
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.           PART 12 - SECURITY                            March 1994 (Stable)
  537.  
  538.                Open  Systems  Interconnection  - The  Directory  -  Part 7:
  539.                Selected Object Classes, 1990.
  540.  
  541.           [ISO9594-8]    ISO/IEC  9594-8 Information  Processing Systems  -
  542.                Open  Systems  Interconnection  - The  Directory  -  Part 8:
  543.                Authentication Framework, 1990.
  544.  
  545.           [ISO10021-4]   ISO/IEC 10021-4  Information Processing  Systems -
  546.                Text Communication - MOTIS - 
  547.                Message Transfer  System :  Abstract Service  Definition and
  548.           Procedures.
  549.  
  550.           [X.509-88]     CCITT  X.509:1988 The  Directory -  Authentication
  551.                Framework.
  552.  
  553.           [X.511-88]     CCITT X.511:1988 The Directory - Abstract  Service
  554.                Definition.
  555.  
  556.           [X.411-84]     CCITT X.411:1984 Message Transfer System - Message
  557.                Transfer Layer.
  558.  
  559.           [X.521-88]     CCITT X.521:1988  The Directory -  Selected Object
  560.                Classes.
  561.  
  562.  
  563.           3   Definitions
  564.  
  565.  
  566.           4   Symbols and Abbreviations
  567.  
  568.  
  569.           5   Architectures
  570.  
  571.           The purpose of this clause is to provide guidance on how to build
  572.           a security architecture  based on an OSI  application environment
  573.           and its threats and vulnerabilities.
  574.  
  575.           A Security  Architecture specifies  the relationship  between the
  576.           set of  security services  and mechanisms  with which  protection
  577.           from threats and vulnerabilities is  achieved.  It is designed to
  578.           respond  to  assessed  vulnerabilities,  threats,  and  risks  as
  579.           identified by  a security policy.  The  establishment of security
  580.           policies is beyond the scope of the OIW.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.                                           2
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.           PART 12 - SECURITY                            March 1994 (Stable)
  603.  
  604.           5.1    Introduction
  605.  
  606.           Open Systems Security provides for secure distributed information
  607.           processing   in   OSI   application   environments   which    are
  608.           heterogeneous in  terms of  technology and  administration.   For
  609.           example,  some environments may require protection from a minimal
  610.           set  of security  threats  while  others  require  more  complete
  611.           protection.
  612.  
  613.           The sequence of steps by which a security architecture is created
  614.           for a specific application environment is as follows:
  615.  
  616.                a)  Development of threat analysis; 
  617.  
  618.                b)  Determination of security services; 
  619.  
  620.                c)  Placement of security services; 
  621.  
  622.                d)  Selection of mechanisms;
  623.  
  624.                e)  Selection of algorithms.
  625.  
  626.           These implementation agreements  assume that steps  a  and b have
  627.           been completed for the specific application.  An introduction  to
  628.           the threat  analysis process  and the  determination of  security
  629.           services is included in Annex H.
  630.  
  631.           Generic OSI application  environments are defined in  Clause 5.2.
  632.           Generic  security services as  defined by ISO  7498-2 are grouped
  633.           into classes in  Clause 5.3.  A generalized security architecture
  634.           for  each  environment is    developed  by mapping  the  security
  635.           classes  onto the  functional  groups  of  each  environment  and
  636.           providing  guidance as to at which layer   to support the service
  637.           in Clause 5.4.  Guidance on how to select mechanisms suitable for
  638.           each security service is presented in Clause 5.5.
  639.  
  640.           It  is beyond  the  scope of  these implementation  agreements to
  641.           specify the use of one algorithm over another.  Clause 7 presents
  642.           a set of algorithms suitable for various mechanisms.
  643.  
  644.  
  645.           5.2    Application Environments
  646.  
  647.           It is useful  for the sake of  simplification to look at  the OSI
  648.           application environments and to  separate them into   generic OSI
  649.           application   environments  so  that  security  profiles  can  be
  650.           developed for each.   The  environments are:   Single Application
  651.           Association, Application  Relay, and  Distributed   Applications.
  652.           All  applications   will  operate  in   one  or  more   of  these
  653.           environments.  For  example, a Message Handling  application that
  654.  
  655.                                           3
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.           PART 12 - SECURITY                            March 1994 (Stable)
  669.  
  670.           uses a Message  Transfer Agent (MTA) to relay mail  from one User
  671.           Agent  (UA) to  another UA  would  map to  the Application  Relay
  672.           Environment.   Likewise a Message Handling application which only
  673.           includes a  UA accessing a  Message Store (MS)  would map to  the
  674.           Single Application Association Environment.
  675.  
  676.           For each environment,  an architectural diagram is  provided that
  677.           portrays the interconnection of the elements.  In addition, a set
  678.           of functional groups are defined each of which is comprised of an
  679.           interconnected set of  elements.
  680.  
  681.           5.2.1   Base Environment
  682.  
  683.           Figure 1 depicts the basic elements of a generic OSI  application
  684.           environment  from which all  OSI application environments  can be
  685.           derived.  In all  application environment figures,  dashed  lines
  686.           indicate an  optional communication  path   and the  double-lined
  687.           boxes indicate an optional basic element.  Ellipses indicate that
  688.           the previous basic element may be repeated zero or more times.
  689.  
  690.  
  691.           +---------------------------------------------------------------+
  692.           |                                                               |
  693.           |              +---------------------------------+              |
  694.           |              |                                 |              |
  695.           | +-----+      |   +-----+       +------+        |    +------+  |
  696.           | | SU  +------+---+ SA  + ...   | SA   +--------+----+  SU  |  |
  697.           | +-----+      |   +-----+       +------+        |    +------+  |
  698.           |              |                                 |              |
  699.           |              +-------------SS------------------+              |
  700.           |                                                               |
  701.           |                            SU = Service User                  |
  702.           |                            SA = Service Agent                 |
  703.           |                            SS = Service System                |
  704.           |                                                               |
  705.           +---------------------------------------------------------------+
  706.                 Figure 1 - Basic Elements of a Generic OSI Application
  707.                                      Environment 
  708.  
  709.  
  710.           The basic elements are as follows:
  711.  
  712.                Service  User (SU):  an entity  that functions as  a service
  713.                initiator or responder ;
  714.  
  715.                Service  Agent (SA): an  intermediate  entity  that actively
  716.                participates in providing the services  between an initiator
  717.                and a responder;
  718.  
  719.                Service  System  (SS):  zero  or  more  cooperating  service
  720.  
  721.                                           4
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  
  731.  
  732.  
  733.  
  734.           PART 12 - SECURITY                            March 1994 (Stable)
  735.  
  736.                agents.
  737.  
  738.           Basic  elements   that  communicate,  either  through   a  direct
  739.           association or indirectly through intermediaries, are  classified
  740.           as a  functional group.   Functional groups  defined in  Figure 1
  741.           are:
  742.  
  743.                a.  f0: SU -> SU  (Service User to Service User directly);
  744.  
  745.                b.  f1: SU => SU  (Service User to Service User indirectly);
  746.  
  747.                c.  f2: SU -> SA  (Service User to Service Agent directly);
  748.  
  749.                d.    f3:  SU  =>  SA    (Service  User  to   Service  Agent
  750.                indirectly);
  751.  
  752.                e.  f4: SA -> SA  (Service Agent to Service Agent directly);
  753.  
  754.                f.    f5:  SA  =>  SA    (Service  Agent  to  Service  Agent
  755.                indirectly);
  756.  
  757.                g.  f6: SA -> SU  (Service Agent to Service User directly);
  758.  
  759.                h.    f7:  SA  =>  SU    (Service   Agent  to  Service  User
  760.                indirectly).
  761.  
  762.  
  763.                Editor's Note  -   the "->"  notation indicates  association
  764.                security  relationship  and  "=>" indicates  relay  security
  765.                relationship.
  766.  
  767.           These definitions and this functional  group syntax will be  used
  768.           to   define  generic  OSI  application  environments.    In  some
  769.           applications, these functional groups may have to be combined for
  770.           the purpose of performing a security analysis.
  771.  
  772.  
  773.           5.2.2   Single Application Association Environment
  774.  
  775.           The   Single    Application   Association    Environment   covers
  776.           applications   which  are   designed  to   operate   over  Single
  777.           Application Associations  (as defined  in ISO  9545) between  one
  778.           pair of application-entity-invocations (AEIs).  This  environment
  779.           specifically  includes  the  case  of  recovery,  i.e., different
  780.           associations may exist  at different  times between  one pair  of
  781.           AEIs.
  782.  
  783.           Examples of applications to which this environment applies are as
  784.           follows:
  785.  
  786.  
  787.                                           5
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.  
  800.           PART 12 - SECURITY                            March 1994 (Stable)
  801.  
  802.                a)  FTAM;
  803.  
  804.                b)  Network Management;
  805.  
  806.                c)  Virtual Terminal.
  807.  
  808.           Applications  such as  MHS, Directory  Services, and TP  are only
  809.           partially  covered  by  this environment  because  some  of their
  810.           service elements may  use store and forward or  chaining types of
  811.           relay  functions.    The    environments  that  apply   to  these
  812.           applications   are   the   Application  Relay   and   Distributed
  813.           Applications Environments respectively.
  814.  
  815.  
  816.           5.2.2.1   Architectural Diagram
  817.  
  818.           Figure  2 portrays  the  architectural  diagram  for  the  Single
  819.           Application Association Environment.
  820.  
  821.  
  822.               +-------------------------------------------------------+
  823.               |                                                       |
  824.               |       +-----+                      +-----+            |
  825.               |       | SU  +----------------------+ SU  |            |
  826.               |       +-----+                      +-----+            |
  827.               |                     SU = Service User                 |
  828.               |                                                       |
  829.               +-------------------------------------------------------+
  830.                Figure 2 - Architectural Diagram for Single Application
  831.                                Association Environment
  832.  
  833.  
  834.  
  835.           5.2.2.2   Functional Groups
  836.  
  837.           The   following  functional  group  is  defined  for  the  Single
  838.           Application Association Environment:
  839.  
  840.                a)  f0:SU -> SU.
  841.  
  842.  
  843.           5.2.3   Application Relay Environment
  844.  
  845.           The Application  Relay Environment covers  applications which are
  846.           designed to operate with the active participation of at least one
  847.           service  agent in support of transferring  a service user request
  848.           from an initiator  to a responder.   When more  than one  service
  849.           agent is present, they function sequentially.
  850.  
  851.           An example of an application to which this environment applies is
  852.  
  853.                                           6
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.  
  863.  
  864.  
  865.  
  866.           PART 12 - SECURITY                            March 1994 (Stable)
  867.  
  868.           Message Handling Systems.
  869.  
  870.  
  871.           5.2.3.1   Architectural Diagram
  872.  
  873.           Figure 3 portrays  the architectural diagram for  the Application
  874.           Relay  Environment.    In  all  application environment  figures,
  875.           dashed lines  indicate an  optional communication  path   and the
  876.           double-lined  boxes indicate an optional basic element.  Ellipses
  877.           indicate that the previous basic  element may be repeated zero or
  878.           more times.  
  879.  
  880.  
  881.           +----------------------------------------------------------------
  882.                                       ---------+
  883.           |                   +---------------------------------+           
  884.                                               |
  885.           |                   |                                 |           
  886.                                               |
  887.              |      +-----+      |   +-----+          +-----+      |    
  888.                                    +-----+       |
  889.           |      | SU  +------+---+ SA  |  ...     | SA  +------+-----+ SU 
  890.                                       |       |
  891.              |      +-----+      |   +-----+          +-----+      |    
  892.                                    +-----+       |
  893.           |                   |                                 |           
  894.                                               |
  895.           |                   +----------- SS  -----------------+           
  896.                                               |
  897.           |                                                                 
  898.                                               |
  899.           |                                          SU = Service User      
  900.                                               |
  901.           |                                          SA = Service Agent     
  902.                                               |
  903.           |                                          SS = Service System    
  904.                                               |
  905.           |                                                                 
  906.                                               |
  907.           |                                                                 
  908.                                               |
  909.           +----------------------------------------------------------------
  910.                                       ---------+
  911.                 Figure 3 - Architectural diagram for Application Relay
  912.                                      Environment
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.                                           7
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.  
  930.  
  931.  
  932.           PART 12 - SECURITY                            March 1994 (Stable)
  933.  
  934.           5.2.3.2   Functional Groups
  935.  
  936.           The following  functional groups  are defined  and added for  the
  937.           Application Relay Environment:
  938.  
  939.                a.  f2: SU -> SA;
  940.  
  941.                b.  f3: SU => SA; 
  942.  
  943.                c.  f4: SA -> SA;
  944.  
  945.                d.  f6: SA -> SU. 
  946.  
  947.  
  948.           5.2.4   Distributed  Applications Environment
  949.  
  950.           The Distributed Application Environment covers applications which
  951.           are designed to operate with  the active participation of zero or
  952.           more service  agents which may  process a  service user  request.
  953.           Processing may  include modifying, interpreting,  or transferring
  954.           the service user request or its data.  When more than one service
  955.           agent is present, they may function in parallel, sequentially, or
  956.           both.
  957.  
  958.  
  959.           5.2.4.1   Architectural diagram
  960.  
  961.           Figure 4 portrays  the architectural diagram for  the Distributed
  962.           Applications  Environment.     In  all   application  environment
  963.           figures,  dashed lines  indicate  an optional  communication path
  964.           and  the double-lined boxes  indicate an optional  basic element.
  965.           Ellipses indicate that the previous basic element may be repeated
  966.           zero or more times.
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.                                           8
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.           PART 12 - SECURITY                            March 1994 (Stable)
  999.  
  1000.  
  1001.           +----------------------------------------------------------------
  1002.                                       ---------+
  1003.           |                   +---------------------------------+           
  1004.                                               |
  1005.           |                   |                                 |           
  1006.                                               |
  1007.              |      +-----+      |   +-----+                       |    
  1008.                                    +-----+       |
  1009.           |      | SU  +------+---+ SA  |    ...        --------|-----| SU 
  1010.                                       |       |
  1011.              |      +-----+      |   +-----+                       |    
  1012.                                    +-----+       |
  1013.           |                   |                                 |           
  1014.                                               |
  1015.           |                   +----------- SS  -----------------+           
  1016.                                               |
  1017.           |                                                                 
  1018.                                               |
  1019.           |                                          SU = Service User      
  1020.                                               |
  1021.           |                                          SA = Service Agent     
  1022.                                               |
  1023.           |                                          SS = Service System    
  1024.                                               |
  1025.           |                                                                 
  1026.                                               |
  1027.           |                                                                 
  1028.                                               |
  1029.           +----------------------------------------------------------------
  1030.                                       ---------+
  1031.             Figure 4 - Architectural diagram for Distributed Applications
  1032.                                      Environment
  1033.  
  1034.  
  1035.  
  1036.           5.2.4.2   Functional Groups
  1037.  
  1038.  
  1039.           The following  functional groups  are defined  and added  for the
  1040.           Distributed  Applications Environment:
  1041.  
  1042.                a)  f0: SU -> {SU; ... };
  1043.  
  1044.                b)  f1: SU => {SU; ... };
  1045.  
  1046.                c)  f2: SU -> {SA; ... };
  1047.  
  1048.                d)  f3: SU => {SA; ... };
  1049.  
  1050.  
  1051.                                           9
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.           PART 12 - SECURITY                            March 1994 (Stable)
  1065.  
  1066.                e)  f4: SA -> {SA; ... };
  1067.  
  1068.                f)  f5: SA => {SA; ... };
  1069.  
  1070.                g)  f6: SA -> {SU; ... };
  1071.  
  1072.                h)  f7: SA => {SU; ... }.
  1073.  
  1074.  
  1075.           5.3    Security Classes
  1076.  
  1077.  
  1078.           Security classes are  defined to provide a framework  on which to
  1079.           build  security  profiles.   Each  class  specifies  the required
  1080.           security services.  The services  specified in each class are the
  1081.           generic security  services as  defined by ISO  7498-2.   For each
  1082.           application's profile, specific security  services are chosen for
  1083.           each class.   For example,  data integrity is a  generic security
  1084.           service  for  which  there exists  five  distinct  data integrity
  1085.           services.   One  or  more   specific  security  services must  be
  1086.           specified  to meet  the requirements  of a  security class  in an
  1087.           application specific security profile.
  1088.  
  1089.           The classes  are organized into two similar  hierarchies as shown
  1090.           in Table 1.   Each level of each  hierarchy is a superset of  the
  1091.           security services required  of the  immediately preceding  level.
  1092.           For  each level  in the  hierarchies,  the same  set of  security
  1093.           services  are  required,  except  that  one   hierarchy  includes
  1094.           confidentiality services.
  1095.  
  1096.                               Table 1 - Security Classes
  1097.  
  1098.                     +------------------------+-------------------+
  1099.                     | SECURITY SERVICES      | SECURITY CLASSES  |
  1100.                     |                        +---------+---------+
  1101.                     |                        |         |ADD CONF |
  1102.                     +------------------------+---------+---------+
  1103.                     |  AUTH. & ACCESS CONTROL|    S0   |         |
  1104.                     |                        |         |   S0A   |
  1105.                     +------------------------+---------+---------+
  1106.                     |  ADD DATA INTEGRITY    |    S1   |         |
  1107.                     |                        |         |   S1A   |
  1108.                     +------------------------+---------+---------+
  1109.                     |  ADD NON-REPUDIATION   |    S2   |         |
  1110.                     |                        |         |   S2A   |
  1111.                     |                        |         |         |
  1112.                     +------------------------+---------+---------+
  1113.  
  1114.  
  1115.           There  are  two  interesting properties  of  these  relationships
  1116.  
  1117.                                           10
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.  
  1128.  
  1129.  
  1130.           PART 12 - SECURITY                            March 1994 (Stable)
  1131.  
  1132.           between the  classes.  First,  each level of  the confidentiality
  1133.           hierarchy is a superset of the other hierarchy  at the same level
  1134.           and   a  superset  of   the  confidentiality  hierarchy   at  the
  1135.           immediately  preceding  level.    For example,  class  S2A  is  a
  1136.           superset of classes S2 and S1A.
  1137.  
  1138.           Second,  for two  entities each  supporting  a distinct  security
  1139.           class in  a different hierarchy,  the best level of  service that
  1140.           can  be  achieved   between  them  is  the  class   in  the  non-
  1141.           confidentiality  hierarchy at the same level  as the lowest class
  1142.           of  the two entities.  For example,  if one entity supports class
  1143.           S2 and  the other supports class  S1A, the best class  of service
  1144.           achievable is S1.
  1145.  
  1146.                Editor's  Note  - This  is  not a  mechanism  for negotiated
  1147.                services.  That is a future work item.
  1148.  
  1149.  
  1150.  
  1151.           5.3.1   Security Class S0
  1152.  
  1153.           The  Security Class S0  includes implementation of  the following
  1154.           security services: 
  1155.  
  1156.                a)  S0 = Authentication and Access Control.
  1157.  
  1158.           The Security Class  S0A adds the  confidentiality service to  the
  1159.           Class S0 as follows:
  1160.  
  1161.                b)  S0A = S0 + Confidentiality.
  1162.  
  1163.  
  1164.           5.3.2   Security Class S1
  1165.  
  1166.           The Security Class S1 adds the Data Integrity Service to class S0
  1167.           as follows:
  1168.  
  1169.  
  1170.                a)  S1 = S0 + Data Integrity.
  1171.  
  1172.           The Security Class S1A adds the Confidentiality  Service to Class
  1173.           S1 as follows:
  1174.  
  1175.  
  1176.                b)  S1A = S1 + Confidentiality
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.                                           11
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.  
  1193.  
  1194.  
  1195.  
  1196.           PART 12 - SECURITY                            March 1994 (Stable)
  1197.  
  1198.           5.3.3   Security Class S2
  1199.  
  1200.           The  Security Class S2 adds  the Non-repudiation Service to Class
  1201.           S1 as follows:
  1202.  
  1203.                a)  S2 = S1 + Non-repudiation
  1204.  
  1205.           The Security Class S2A adds  the Confidentiality Service to Class
  1206.           S2 as follows:
  1207.  
  1208.                b)  S2A = S2 + Confidentiality
  1209.  
  1210.  
  1211.           5.4    Guidelines for OIW Application Profile Development
  1212.  
  1213.  
  1214.           6   Key Management
  1215.  
  1216.           [ISO7498-2]  defines  Key  Management  (KM) as  the  "generation,
  1217.           storage,  distribution, deletion,  archiving, and  application of
  1218.           keys in  accordance with  a security policy."   The  Security SIG
  1219.           recognizes that security  policies are outside the  scope of IAs,
  1220.           and  it is inappropriate  to make general  recommendations in the
  1221.           absence of a KM framework.
  1222.  
  1223.  
  1224.           7   Security Algorithms
  1225.  
  1226.                Editor's  Note - Implementors are cautioned that security of
  1227.                an algorithm  may change  at any time.   Therefore,  the WIA
  1228.                must be  consulted in  order to determine  if there  is more
  1229.                current information.
  1230.  
  1231.           The algorithms  included here are  listed in no  particular order
  1232.           (beyond categorization by  type of algorithm).  It  is beyond the
  1233.           scope of these  agreements to recommend the use  of one algorithm
  1234.           over  another.  However, if  a vulnerability is  known to exist a
  1235.           reference will be provided along with a recommendation not to use
  1236.           the algorithm.
  1237.  
  1238.           This  clause  references  a  definitive  specification  for  each
  1239.           algorithm,  which includes  an object  identifier.   In  general,
  1240.           control of the definitive specification is expected to be outside
  1241.           the  scope  of  the OIW.    The  benefit of  not  controlling the
  1242.           specification  is  that  the   organization  that  developed  the
  1243.           algorithm is best situated to  maintain and have knowledge of the
  1244.           security  of the  algorithm.   Algorithms for  which there  is no
  1245.           controlling organization are defined in an Annex in this Part.
  1246.  
  1247.           For each algorithm, its typical  usage is stated, its  definitive
  1248.  
  1249.                                           12
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.  
  1259.  
  1260.  
  1261.  
  1262.           PART 12 - SECURITY                            March 1994 (Stable)
  1263.  
  1264.           reference is  given, and its  object identifier  is included  for
  1265.           reference  purposes.Optionally,  additional  information  may  be
  1266.           included, for example a reference to known vulnerabilities.
  1267.  
  1268.           Implementors  should be  aware  that  export  of  products  using
  1269.           cryptography may be subject to export restrictions.  In  general,
  1270.           use of cryptography  not involving confidentiality is  subject to
  1271.           Commerce Department  regulations, while  use of  cryptography for
  1272.           confidentiality   is   controlled  by   (more   stringent)  State
  1273.           Department regulations.   It is the  implementor's responsibility
  1274.           to determine  any  export restrictions  which  apply to  a  given
  1275.           product, as the export controls may change from time to time. 
  1276.  
  1277.                Editor's  Note - Some  of the references  are RFCs, Internet
  1278.                Drafts, and PKCS documents.  We need to include  information
  1279.                on how to access these documents.
  1280.  
  1281.  
  1282.           7.1    Message Digests
  1283.  
  1284.           These  message digest algorithms  (or hash algorithms)  compute a
  1285.           fixed  size  representation  of  an  input  stream.    They  have
  1286.           different  performance   characteristics  and   employ  different
  1287.           computational  techniques,  making  each  suitable for  different
  1288.           applications.
  1289.  
  1290.  
  1291.           7.1.1   Square-Mod-N
  1292.  
  1293.           Square-Mod-N is a hash algorithm that is used to  compute a fixed
  1294.           size representation of an input stream.  It is defined in [X.509]
  1295.           and its object identifier is  defined there as:
  1296.  
  1297.                sqmod-n ALGORITHM
  1298.                PARAMETER BlockSize
  1299.                ::= {hashAlgorithm 1}
  1300.  
  1301.                BlockSize ::= INTEGER
  1302.  
  1303.           Recent research regarding the square-mod-n  one-way hash function
  1304.           described in Annex D of [X.509] has revealed that the function is
  1305.           not secure.  Its use, therefore, is discouraged.
  1306.  
  1307.  
  1308.                Editor's Note -  We need the  reference that identifies  its
  1309.                vulnerabilities so we can recommend it not be used.
  1310.  
  1311.  
  1312.  
  1313.  
  1314.  
  1315.                                           13
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.  
  1325.  
  1326.  
  1327.  
  1328.           PART 12 - SECURITY                            March 1994 (Stable)
  1329.  
  1330.           7.1.2   MD2
  1331.  
  1332.           MD2   is  a  message  digest  algorithm  that  employs  accepted,
  1333.           traditional computational techniques.   Its speed is  the slowest
  1334.           of the message digests listed here.
  1335.  
  1336.           It is defined in Internet Draft [a]  and its object identifier is
  1337.           defined there as: 
  1338.  
  1339.                md2 ALGORITHM
  1340.                PARAMETER NULL
  1341.                ::=    {iso(1)    member-body(2)    US(840)   rsadsi(113549)
  1342.           digestAlgorithm(2) 2}
  1343.  
  1344.                Editor's  Note -  There  is  a Directory  SIG  OID for  this
  1345.                algorithm.
  1346.  
  1347.           The    reference includes  a  source code  implementation  of the
  1348.           algorithm  written  in  the  C  programming  language.    MD2  is
  1349.           copyrighted  and its  use may  require  specific permission  or a
  1350.           license.  Details are stated in the Internet Draft.
  1351.  
  1352.  
  1353.           7.1.3   MD4
  1354.  
  1355.           MD4  is a message  digest algorithm that  employs non-traditional
  1356.           computational techniques  to enhance  its speed  in software  and
  1357.           hardware with native 32-bit arithmetic.  Its speed is the fastest
  1358.           of the message digests listed here.
  1359.  
  1360.           It is defined in Internet Draft [b] and its object identifier  is
  1361.           there as:
  1362.  
  1363.                md4 ALGORITHM
  1364.                PARAMETER NULL
  1365.                ::=    {iso(1)    member-body(2)    US(840)   rsadsi(113549)
  1366.           digestAlgorithm(2) 4}
  1367.  
  1368.           This  reference  includes  a source  code  implementation  of the
  1369.           algorithm written in the C programming language.
  1370.  
  1371.           It is suggested that MD4 be used only with applications for which
  1372.           performance is critical.
  1373.  
  1374.                Editor's  Note -  We need  to  include text  from the  MD4/5
  1375.                Internet  Drafts which describes the differences between the
  1376.                two algorithms and the preference for MD5.
  1377.  
  1378.  
  1379.  
  1380.  
  1381.                                           14
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  
  1391.  
  1392.  
  1393.  
  1394.           PART 12 - SECURITY                            March 1994 (Stable)
  1395.  
  1396.           7.1.4   MD5
  1397.  
  1398.           MD5  is  a  message  digest  algorithm  which  is  based  on  the
  1399.           techniques  of MD4, but  with additional enhancements  to counter
  1400.           proposed attacks.   A detailed description of the  changes can be
  1401.           found in [c]..
  1402.  
  1403.           MD5 is defined in Internet Draft [c] and its object identifier is
  1404.           defined there as:   
  1405.  
  1406.                md5 ALGORITHM
  1407.                PARAMETER NULL
  1408.                ::=    {iso(1)    member-body(2)    US(840)   rsadsi(113549)
  1409.           digestAlgorithm(2) 5}
  1410.  
  1411.           This  reference  includes  a source  code  implementation  of the
  1412.           algorithm written in the C programming language.
  1413.  
  1414.  
  1415.           7.1.5   SHA
  1416.  
  1417.           This algorithm is  the NIST  Secure Hash Algorithm  [ab].  It  is
  1418.           based  on concepts  similar to  those used  in MD4  and MD5,  and
  1419.           outputs a 160-bit digest.
  1420.  
  1421.                sha ALGORITHM 
  1422.                PARAMETER NULL
  1423.                ::= {algorithm 18}
  1424.  
  1425.                Editor's Note -  This and other algorithms may be registered
  1426.                by ISO  instead, in  which case this  text will  be adjusted
  1427.                prior  to moving to  Stable Agreements,  or if  necessary as
  1428.                Alignment Errata.
  1429.  
  1430.  
  1431.           7.1.6   MDC-2
  1432.  
  1433.           This is  a DES-based  hash function [ac]  in which the  output of
  1434.           each block encryption is fed back as keying material for the next
  1435.           block.  It outputs a 128 bit digest.
  1436.  
  1437.                mdc-2 ALGORITHM 
  1438.                PARAMETER NULL
  1439.                ::= { algorithm 19 }
  1440.  
  1441.  
  1442.  
  1443.  
  1444.  
  1445.  
  1446.  
  1447.                                           15
  1448.  
  1449.  
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.  
  1457.  
  1458.  
  1459.  
  1460.           PART 12 - SECURITY                            March 1994 (Stable)
  1461.  
  1462.           7.2    Reversible Public Key Algorithms
  1463.  
  1464.           These  algorithms  are  asymmetric; separate  keys  are  used for
  1465.           encryption  and decryption.   They  also have  the property  that
  1466.           applying the encipherment  function followed by the  decipherment
  1467.           function  has  the  same  effect  as  applying  the  decipherment
  1468.           function followed by the  encipherment function.  This is  useful
  1469.           if a single  algorithm is needed to  provide both confidentiality
  1470.           (e.g., transport of symmetric  keys) and authentication/integrity
  1471.           (e.g., digital signatures).  
  1472.  
  1473.           RSA  is  a  public  key   (asymmetric)  cryptographic  algorithm,
  1474.           typically  used  in  conjunction with  message  digest  (or hash)
  1475.           algorithms to  create  digital signatures  and  for  confidential
  1476.           distribution  of symmetric keys.  It may also be used to exchange
  1477.           confidential messages.
  1478.  
  1479.           The RSA algorithm  is defined  in [d]  and is  also described  in
  1480.           Annex C of [X.509].  The RSA technology is patented in the United
  1481.           States [e][f].
  1482.  
  1483.           According to [X.509], the ASN.1  BIT STRING containing the public
  1484.           key will contain the BER encoding of the modulus and exponent:
  1485.  
  1486.  
  1487.                SEQUENCE {
  1488.                     n    INTEGER,  -- modulus
  1489.                     e    INTEGER } -- public exponent
  1490.  
  1491.  
  1492.           7.2.1   RSA (X.509)
  1493.  
  1494.           RSA is  defined in [X.509]  and its object identifier  is defined
  1495.           there as:
  1496.  
  1497.                rsa ALGORITHM
  1498.                PARAMETER KeySize
  1499.                ::= {encryptionAlgorithm 1}
  1500.  
  1501.                KeySize ::= INTEGER
  1502.  
  1503.           The key size specifies  the length in bits of the  RSA public key
  1504.           modulus.
  1505.  
  1506.           The definition of  this algorithm does not  include specification
  1507.           of padding rules.  If  one assumes that the data is treated as an
  1508.           integer and  padded with zero bits on  the left, the algorithm is
  1509.           subject  to various  attacks, such  as those  described  in [ah],
  1510.           which  render it unsuitable  for some applications,  e.g., multi-
  1511.           recipient mail,  notarization.   In such  cases RSAEncryption  is
  1512.  
  1513.                                           16
  1514.  
  1515.  
  1516.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522.  
  1523.  
  1524.  
  1525.  
  1526.           PART 12 - SECURITY                            March 1994 (Stable)
  1527.  
  1528.           preferred.  
  1529.  
  1530.           7.2.2   RSA Encryption
  1531.  
  1532.  
  1533.           RSA  Encryption  is  defined  in  PKCS  #1  [g]  and  its  object
  1534.           identifier is defined there as:
  1535.  
  1536.                rsaEncryption ALGORITHM
  1537.                PARAMETER NULL
  1538.                ::=  {iso(1) member-body(2)  US(840) rsadsi(113549)  pkcs(1)
  1539.           pkcs-1(1) 1}
  1540.  
  1541.           This algorithm defines  various types of block  padding depending
  1542.           on whether the block is being encrypted using a public or private
  1543.           key.   The padding protects against various attacks documented in
  1544.           the literature.
  1545.  
  1546.  
  1547.           7.2.3   RSA Signature
  1548.  
  1549.           This algorithm  [ad] is  compatible with IS  9796 [ae],  with the
  1550.           Sign and Verify functions required to be those in Annex A  of ISO
  1551.           9796.
  1552.  
  1553.                rsaSignature ALGORITHM
  1554.                PARAMETER NULL
  1555.                ::= {algorithm 11}
  1556.  
  1557.           This algorithm provides additional redundancy in the construction
  1558.           of the  signature block,  and ensures that  it is  not a  natural
  1559.           power.  (If the signature block is a natural power, one can forge
  1560.           a signature by simply taking the e-th  root where e is the public
  1561.           exponent.   E.g.,  if  e  is 3,  one  could  potentially forge  a
  1562.           signature,  if  the  block  is  a natural  cube,  by  taking  the
  1563.           (integer) cube root.  However, the chance that an integer  near a
  1564.           given x  is a cube is quite small if  x is large; the probability
  1565.           x-2/3, so if x  is about 2505 (as  is the case for 512-bit  RSA),
  1566.           then the probability is about 2-337.)
  1567.  
  1568.  
  1569.           7.3    Irreversible Public Key Algorithms
  1570.  
  1571.           These algorithms are  not reversible, as defined  in section 7.2.
  1572.           Typically,  different  algorithms  are used  for  encryption  and
  1573.           signature.     This   section   defines  several   signature-only
  1574.           algorithms.   Note that  these algorithms  expand the  plaintext,
  1575.           producing output  which is  significantly larger  than the  input
  1576.           block or digest.  These  algorithms are of use in authentication-
  1577.           only  systems,   and  are   generally  not   subject  to   export
  1578.  
  1579.                                           17
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588.  
  1589.  
  1590.  
  1591.  
  1592.           PART 12 - SECURITY                            March 1994 (Stable)
  1593.  
  1594.           restrictions.  
  1595.  
  1596.  
  1597.           7.3.1   El Gamal
  1598.  
  1599.           ElGamal is a public key (asymmetric) digital signature algorithm.
  1600.           It is defined in [k].  Its object identifier is:
  1601.  
  1602.                ElGamal ALGORITHM
  1603.                PARAMETER NULL
  1604.                ::= {encryptionAlgorithm 1}
  1605.  
  1606.                Editor's Note - This OID was assigned by the Directory SIG.
  1607.  
  1608.           In  [X.509], the ASN.1  data element subjectPublicKey  defined as
  1609.           BIT STRING should  be interpreted in the case of ElGamal as being
  1610.           of type:
  1611.  
  1612.                SEQUENCE {
  1613.                prime INTEGER, -- p
  1614.                base INTEGER,  -- alpha
  1615.                key INTEGER    -- public key, Y
  1616.                }
  1617.  
  1618.           Also, in [X.509], the  value associated with the ENCRYPTED  MACRO
  1619.           should be interpreted in the case of ElGamal as being of type:
  1620.  
  1621.                SEQUENCE {
  1622.                s INTEGER,
  1623.                r INTEGER
  1624.                }
  1625.  
  1626.           The ElGamal technology is patented in the United States [f].
  1627.  
  1628.                Editor's Note -  Should we describe and define  OIDs for the
  1629.                message  digest with ElGamal signature algorithms?  There is
  1630.                a Directory SIG OID for md2WithElGamal.
  1631.  
  1632.  
  1633.           7.3.2   DSA
  1634.  
  1635.           The NIST Digital Signature Algorithm [aa] is a variant of ElGamal
  1636.           which produces a shorter  signature size.  Its object  identifier
  1637.           is:
  1638.  
  1639.                dsa ALGORITHM
  1640.                PARAMETER DSAParameters
  1641.                ::= {algorithm 12}
  1642.  
  1643.           The ASN.1  data element  subjectPublicKey defined  as BIT  STRING
  1644.  
  1645.                                           18
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654.  
  1655.  
  1656.  
  1657.  
  1658.           PART 12 - SECURITY                            March 1994 (Stable)
  1659.  
  1660.           should be interpreted in the case of DSA as being of type:
  1661.  
  1662.  
  1663.                DSAPublicKey ::= INTEGER
  1664.  
  1665.                DSAParameters ::= SEQUENCE {
  1666.                     prime1              INTEGER,  -- p
  1667.                     prime2              INTEGER,  -- q
  1668.                     base                INTEGER } -- g
  1669.  
  1670.           The DSAPublicKey is  simply an INTEGER, which is  encapsulated in
  1671.           the subjectPublicKey BIT  STRING in the  obvious way:  The MSB of
  1672.           the INTEGER becomes the MSB of the BIT STRING, and the LSB of the
  1673.           INTEGER becomes the LSB of the BIT STRING.
  1674.  
  1675.           In [X.509], the value  associated with the ENCRYPTED MACRO  (i.e.
  1676.           the signature value) should be interpreted  in the case of DSA as
  1677.           being of type:
  1678.  
  1679.                SEQUENCE {
  1680.                     r INTEGER,
  1681.                     s INTEGER }
  1682.  
  1683.  
  1684.           7.3.3   DSA with Common Parameters
  1685.  
  1686.           This version of DSA uses common  parameters which are distributed
  1687.           externally.  The DSAPublicKey is  till an INTEGER as described in
  1688.           the DSA case.  The algorithm's object identifier is:
  1689.  
  1690.                dsaCommon ALGORITHM
  1691.                     PARAMETER NULL
  1692.                ::= { algorithm 20 }
  1693.  
  1694.  
  1695.           7.4    Key Exchange 
  1696.  
  1697.  
  1698.           7.4.1   Diffie-Hellman
  1699.  
  1700.           Diffie-Hellman  Key  Exchange  is   a  public  key   (asymmetric)
  1701.           algorithm  whereby  two parties, without any  prior arrangements,
  1702.           can  agree upon  some shared  (secret) information.   The parties
  1703.           exchange public  information which, in  conjunction with  private
  1704.           information  retained by  each user,  may  be used  to compute  a
  1705.           common value.  This value  is typically used as a symmetric  key,
  1706.           for  example,  to  encrypt  further  communications  between  the
  1707.           parties.  
  1708.  
  1709.           The Diffie-Hellman  Key Exchange  is defined in  [h] and  is also
  1710.  
  1711.                                           19
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.  
  1721.  
  1722.  
  1723.  
  1724.           PART 12 - SECURITY                            March 1994 (Stable)
  1725.  
  1726.           described in [j].  The Diffie-Hellman Key Exchange is patented in
  1727.           the United States [i][f].
  1728.  
  1729.           The object identifier is defined in PKCS #3 [j] as:
  1730.  
  1731.                dhKeyAgreement ALGORITHM
  1732.                PARAMETER DHParameter
  1733.                ::=  {iso(1) member-body(2)  US(840) rsadsi(113549)  pkcs(1)
  1734.           pkcs-3(3) 1}
  1735.  
  1736.                DHParameter ::= SEQUENCE {
  1737.                prime               INTEGER, -- p
  1738.                base                     INTEGER   -- g
  1739.                privateValueLength  INTEGER OPTIONAL
  1740.                }
  1741.  
  1742.  
  1743.           7.4.2   Diffie-Hellman with Common Parameters
  1744.  
  1745.           This  version  of Diffie-Hellman  assumes  the  use  of a  common
  1746.           modulus  and generator, which  are distributed by  external means
  1747.           rather  than being  conveyed in  the parameter  component of  the
  1748.           AlgorithmIdentifier.   The  patent  restrictions in  the previous
  1749.           section still apply.  
  1750.  
  1751.           The object identifier is defined as:
  1752.  
  1753.                dhWithCommonModulus ALGORITHM
  1754.                PARAMETER NULL
  1755.                ::= {algorithm 16}
  1756.  
  1757.                DHParameter ::= SEQUENCE {
  1758.                prime INTEGER, -- p
  1759.                base INTEGER   -- g
  1760.                }
  1761.  
  1762.  
  1763.           7.4.3   RSA Key Transport
  1764.  
  1765.           RSA key  transport is used  only for encipherment,  typically for
  1766.           transporting  symmetric  keys.    It  uses  the  type  2  padding
  1767.           mechanism of [g]; other padding mechanisms (e.g., those used  for
  1768.           signature) are not valid.  The algorithm's object identifier is:
  1769.  
  1770.  
  1771.                rsaKeyTransport ALGORITHM
  1772.                     PARAMETER NULL
  1773.                ::= { algorithm 22 }
  1774.  
  1775.  
  1776.  
  1777.                                           20
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.  
  1788.  
  1789.  
  1790.           PART 12 - SECURITY                            March 1994 (Stable)
  1791.  
  1792.           7.5    Signature Algorithms
  1793.  
  1794.           This  section specifies a  number of signature  algorithms, i.e.,
  1795.           hash algorithms  combined with appropriate  asymmetric encryption
  1796.           algorithms.  
  1797.  
  1798.  
  1799.           7.5.1   Message Digests with RSA
  1800.  
  1801.           The algorithms listed below are signature algorithms that combine
  1802.           a message digest  algorithm with the RSA  cryptographic algorithm
  1803.           to produce a digital signature.
  1804.  
  1805.                Editor's Note  - The  OIDs below have  been assigned  by the
  1806.                Directory SIG and  the Security SIG.  Should  we explain why
  1807.                they do not appear in a single tree?
  1808.  
  1809.  
  1810.           7.5.1.1   Square-Mod-N with RSA
  1811.  
  1812.           Square-Mod-N   is  a  signature   algorithm  that   combines  the
  1813.           Square-Mod-N hash algorithm with  the RSA cryptographic algorithm
  1814.           to produce  a digital  signature.  This  algorithm is  defined in
  1815.           [X.509] and its object identifier is defined there as:
  1816.  
  1817.                sqmod-Nwithrsa ALGORITHM
  1818.                PARAMETER KeyAndBlockSize
  1819.                ::= {signatureAlgorithm 1}
  1820.  
  1821.                KeyAndBlockSize ::= INTEGER
  1822.  
  1823.           Recent  research regarding the square-mod-n one-way hash function
  1824.           described in Annex D of [X.509] has revealed that the function is
  1825.           not secure.  Its use, therefore, is discouraged.
  1826.  
  1827.  
  1828.           7.5.1.2   MD2 with RSA
  1829.  
  1830.           Its object identifier is:
  1831.  
  1832.                md2WithRsa ALGORITHM
  1833.                PARAMETER NULL
  1834.                ::= {signatureAlgorithm 1}
  1835.           This OID was assigned by the Directory SIG.
  1836.  
  1837.           7.5.1.3   MD4 with RSA
  1838.  
  1839.           Its object identifier is:
  1840.  
  1841.  
  1842.  
  1843.                                           21
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852.  
  1853.  
  1854.  
  1855.  
  1856.           PART 12 - SECURITY                            March 1994 (Stable)
  1857.  
  1858.                md4WithRSA ALGORITHM
  1859.                PARAMETER NULL
  1860.                ::= {algorithm 2}
  1861.  
  1862.  
  1863.           7.5.1.4   MD5 with RSA
  1864.  
  1865.           Its object identifier is:
  1866.  
  1867.                md5WithRSA ALGORITHM
  1868.                PARAMETER NULL
  1869.                ::= {algorithm 3}
  1870.  
  1871.  
  1872.           7.5.2   Message Digests with RSA Encryption
  1873.  
  1874.           The algorithms listed below are signature algorithms that combine
  1875.           a  message digest algorithm with the RSA Encryption cryptographic
  1876.           algorithm to produce a digital signature.
  1877.  
  1878.  
  1879.           7.5.2.1   MD2 with RSA Encryption
  1880.  
  1881.           MD2 with RSA encryption is defined in  PKCS #1 [g] and its object
  1882.           identifier is defined there as:
  1883.  
  1884.                md2WithRSAEncryption ALGORITHM
  1885.                PARAMETER NULL
  1886.                ::=  {iso(1) member-body(2)  US(840) rsadsi(113549)  pkcs(1)
  1887.           pkcs-1(1) 2}
  1888.  
  1889.  
  1890.           7.5.2.2   MD4 with RSA Encryption
  1891.  
  1892.  
  1893.           Its object identifier is:
  1894.  
  1895.                md4WithRSAEncryption ALGORITHM
  1896.                PARAMETER NULL
  1897.                ::= {algorithm 4}
  1898.  
  1899.  
  1900.           7.5.2.3   MD5 with RSA Encryption
  1901.  
  1902.           MD5 with RSA Encryption is defined in  PKCS #1 [g] and its object
  1903.           identifier is defined there as:
  1904.  
  1905.  
  1906.  
  1907.  
  1908.  
  1909.                                           22
  1910.  
  1911.  
  1912.  
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.  
  1919.  
  1920.  
  1921.  
  1922.           PART 12 - SECURITY                            March 1994 (Stable)
  1923.  
  1924.                md5WithRSAEncryption ALGORITHM
  1925.                PARAMETER NULL
  1926.                ::=  {iso(1) member-body(2)  US(840) rsadsi(113549)  pkcs(1)
  1927.           pkcs-1(1) 4}
  1928.  
  1929.  
  1930.           7.5.3   DSA With SHA
  1931.  
  1932.           This signature algorithm  produces a 320-bit  signature.  SHA  is
  1933.           the only hash algorithm which may  be used with DSA.  Its  object
  1934.           identifier is
  1935.  
  1936.                dsaWithSHA ALGORITHM
  1937.                PARAMETER DSAParameters
  1938.                ::= {algorithm 13)
  1939.  
  1940.  
  1941.           7.5.4   DSA With SHA with Common Parameters
  1942.  
  1943.           This  version  DSA  with  SHA  signature  algorithm  uses  common
  1944.           parameters   which  are  distributed   externally.    Its  object
  1945.           identifier is
  1946.  
  1947.                dsaCommonWithSHA ALGORITHM
  1948.                     PARAMETER NULL
  1949.                ::= { algorithm 21)
  1950.  
  1951.  
  1952.           7.5.5   RSA Signature With MDC-2
  1953.  
  1954.           This  algorithm uses  the  RSA Signature  algorithm  to sign  the
  1955.           digest produced  by  the MDC-2  DES-based  hash algorithm.    Its
  1956.           object identifier is
  1957.  
  1958.                mdc2WithRSASignature
  1959.                PARAMETER NULL
  1960.                ::= { algorithm 14 }
  1961.  
  1962.  
  1963.           7.5.6   RSA Signature With SHA
  1964.  
  1965.           This algorithm uses the RSA Signature algorithm to sign a 160-bit
  1966.           SHA digest. Its object identifier is
  1967.  
  1968.  
  1969.                shaWithRSASignature
  1970.                PARAMETER NULL
  1971.                ::= {algorithm 15}
  1972.  
  1973.  
  1974.  
  1975.                                           23
  1976.  
  1977.  
  1978.  
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984.  
  1985.  
  1986.  
  1987.  
  1988.           PART 12 - SECURITY                            March 1994 (Stable)
  1989.  
  1990.           7.6    Symmetric Encryption Algorithms
  1991.  
  1992.  
  1993.           7.6.1   Data Encryption Standard
  1994.  
  1995.           The Data Encryption  Standard (DES) is  a secret key  (symmetric)
  1996.           cryptographic algorithm.   It is defined in FIPS 46-1 [l].  It is
  1997.           also  defined as DEA-1  in ANSI X3.92-1981  [m].Implementors will
  1998.           also  find several  other references  useful.   FIPS  PUB 74  [p]
  1999.           provides guidance  on  the  implementation  and use  of  DES  and
  2000.           includes a  complete specification  of the algorithm.   SPEC  PUB
  2001.           500-20  [p]  describes the  design  and  operation  of  the  NIST
  2002.           (formerly NBS)  testbed that  is used for  the validation  of DES
  2003.           implementations.  It specifies a set of 291 test cases  that have
  2004.           been designed  to exercise every basic element  of the algorithm,
  2005.           and as a  further check on the correctness  of an implementation,
  2006.           it specifies an extensive Monte  Carlo analysis.  SPEC PUB 500-61
  2007.           describes   the  design  of   four  maintenance  tests   for  DES
  2008.           implementations.     The  tests  consist  of  an  iterative  test
  2009.           procedure that uses a small program and minimum data.  The  tests
  2010.           are designed to  be independent of implementation and  to be fast
  2011.           enough to  test devices during  actual operation.  The  tests are
  2012.           defined  as four specific  stopping points  in a  general testing
  2013.           process  and  satisfy  four testing  requirements  of  increasing
  2014.           degree of completeness on the thoroughness of testing desired.
  2015.            
  2016.           There are  four modes  of operation of  the DES, as  specified by
  2017.           FIPS 81 [n]  and ANSI X3.106-1983 [o].  The modes specify how the
  2018.           data will be encrypted and decrypted.  In all cases the key is 64
  2019.           bits.  Use of DES for encryption (i.e., all modes discussed below
  2020.           except DES-MAC) are subject to export controls.  
  2021.  
  2022.  
  2023.           7.6.1.1   DES-ECB
  2024.  
  2025.           This is  the Electronic Codebook  mode of operation.   Its object
  2026.           identifier is: 
  2027.  
  2028.                desECB ALGORITHM
  2029.                PARAMETER NULL
  2030.                ::= {algorithm 6}
  2031.  
  2032.           This mode should be used to encrypt small blocks (e.g., other DES
  2033.           keys).   Its  use is  deprecated  for block  encryption since  it
  2034.           allows cryptanalysis  of repeated  block values  (i.e., the  same
  2035.           plaintext  in the same  place relative to the  block), as well as
  2036.           reassembling messages from known blocks.
  2037.  
  2038.  
  2039.  
  2040.  
  2041.                                           24
  2042.  
  2043.  
  2044.  
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050.  
  2051.  
  2052.  
  2053.  
  2054.           PART 12 - SECURITY                            March 1994 (Stable)
  2055.  
  2056.           7.6.1.2   DES-CBC
  2057.  
  2058.           This is the Cipher Block Chaining mode of operation.   Its object
  2059.           identifier is:  
  2060.  
  2061.                desCBC ALGORITHM
  2062.                PARAMETER CBCParameter
  2063.                ::= {algorithm 7}
  2064.  
  2065.           The PARAMETER  is needed  to specify  the Initialization  Vector,
  2066.           which need not be kept secret.
  2067.  
  2068.           This mode  should be used  to encrypt multiple blocks,  where the
  2069.           full message  is  available.   The  random IV  prevents  codebook
  2070.           analysis of the start of the chain.  The IV may be public.
  2071.  
  2072.           This  mode will  propagate a  single bit  error in  one plaintext
  2073.           block into all succeeding blocks, and will propagate a single bit
  2074.           error  in  the  ciphertext  into  a  garbled  plaintext block  on
  2075.           decryption as well as  a single bit  error in the next  plaintext
  2076.           block. 
  2077.  
  2078.           The following  padding mechanism from  [w] should be used  if the
  2079.           data to be encrypted is octet aligned, unless the security policy
  2080.           dictates otherwise:
  2081.  
  2082.           The input to the  DES CBC encryption process must be  padded to a
  2083.           multiple of  8 octet,  in the  following manner.   Let  n be  the
  2084.           length in  octets of the input.  Pad  the input by appending 8-(n
  2085.           mod 8) octet  to the end  of the message,  each having the  value
  2086.           8-(n mod 8),  the number of octets being  added.  In hexadecimal,
  2087.           the  possible   paddings  are:   01,   0202,  030303,   04040404,
  2088.           0505050505, 060606060606,  07070707070707, and  0808080808080808.
  2089.           All input is padded with 1 to 8 octets to produce a multiple of 8
  2090.           octets in length.  The padding can be removed unambiguously after
  2091.           decryption.
  2092.  
  2093.                Editor's  Note -  If adding  the  padding rules  would cause
  2094.                existing implementations to break, this should be registered
  2095.                as a  separate algorithm  identifier.   Note, however,  that
  2096.                [FIPS 81] specifies its own padding rules for padding binary
  2097.                data,  in the absence  of application-defined rules  such as
  2098.                those  above; those rules require an indication (which could
  2099.                be conveyed as  an algorithm PARAMETER) of  whether the data
  2100.                has been padded or not.
  2101.  
  2102.  
  2103.  
  2104.  
  2105.  
  2106.  
  2107.                                           25
  2108.  
  2109.  
  2110.  
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116.  
  2117.  
  2118.  
  2119.  
  2120.           PART 12 - SECURITY                            March 1994 (Stable)
  2121.  
  2122.           7.6.1.3   DES-OFB
  2123.  
  2124.           This  is the  Output  Feedback  mode of  operation.   Its  object
  2125.           identifier and parameters are:
  2126.  
  2127.  
  2128.                desOFB ALGORITHM
  2129.                PARAMETER FBParameter
  2130.                ::= {algorithm 8}
  2131.  
  2132.           The parameters  are needed  to specify  an IV  and the number  of
  2133.           feedback bits.
  2134.  
  2135.           This mode may be used to encrypt multiple blocks where  the error
  2136.           extension properties of  DES-CBC are undesirable.   A single  bit
  2137.           error in the ciphertext will cause only a single bit error in the
  2138.           output plaintext.
  2139.  
  2140.           7.6.1.4   DES-CFB
  2141.  
  2142.           This  is the  Cipher  Feedback  mode of  operation.   Its  object
  2143.           identifier and parameters are   
  2144.  
  2145.                desCFB ALGORITHM
  2146.                     PARAMETER FBParameter
  2147.                ::= {algorithm 9}
  2148.  
  2149.           The parameters  are needed  to specify  an IV  and the  number of
  2150.           feedback bits.
  2151.  
  2152.           This  mode may be  used when the  plaintext is made  available in
  2153.           pieces, e.g.,  a character (8-bit CFB) or a  bit (1-bit CFB) at a
  2154.           time.    This  mode will  propagate  a  single bit  error  in one
  2155.           plaintext block  into all succeeding blocks, and will propagate a
  2156.           single bit error in the ciphertext into a single-bit error in the
  2157.           corresponding plaintext character as well as garbling of the next
  2158.           8 bytes or so of output (the exact amount depends on the feedback
  2159.           size). 
  2160.  
  2161.  
  2162.           7.6.1.5   DES-MAC
  2163.  
  2164.           DES-MAC is a Message Authentication Code algorithm (cryptographic
  2165.           checksum) based on the DES that uses a single 64-bit DES key.  
  2166.  
  2167.           It is specified in FIPS 113  [s] and is equivalent to the  binary
  2168.           mode defined  in ANSI X9.9-1986  [t].  Its object  identifier and
  2169.           parameter are:
  2170.  
  2171.  
  2172.  
  2173.                                           26
  2174.  
  2175.  
  2176.  
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182.  
  2183.  
  2184.  
  2185.  
  2186.           PART 12 - SECURITY                            March 1994 (Stable)
  2187.  
  2188.                desMAC ALGORITHM
  2189.                PARAMETER MACParameter
  2190.                ::= {algorithm 10}
  2191.  
  2192.           The parameter is needed to specify the MAC length in bits.
  2193.  
  2194.           DES-MAC is equivalent to DES-CBC using an all zero Initialization
  2195.           Vector (IV), with all but the last cipher output block discarded.
  2196.           Separate keys (where one  may simply be  a variant of the  other)
  2197.           should be  used if  both DES-CBC encrypting  and MACing  the same
  2198.           data.
  2199.  
  2200.                Editor's  Note -  We  need to  include  the reference  which
  2201.                specifies  the vulnerability when  the same  key is  used to
  2202.                DES-CBC encrypt and  MAC the same  data, and recommends  the
  2203.                use of separate keys.
  2204.  
  2205.  
  2206.           7.6.1.6   DES-EDE
  2207.  
  2208.           The  DES  algorithm  in  Encrypt-Decrypt-Encrypt  (EDE) mode,  as
  2209.           defined  by [af]  for  encryption and  decryption  with pairs  of
  2210.           64-bit  keys,  might be  used  for  key  or MAC  encryption  when
  2211.           symmetric key management is employed.  (The mechanism is  subject
  2212.           to the  same constraints  as DES  ECB,  but is  cryptographically
  2213.           stronger.)  Given the  pair of keys, the data  is enciphered with
  2214.           the first key,  deciphered with  the second  key, and  enciphered
  2215.           again with  the first key  to perform encryption; the  process is
  2216.           reversed for decryption.   Note that if  both keys are the  same,
  2217.           the result is equivalent to  a single encryption under the single
  2218.           key.  The  key may be represented as a single 128-bit string with
  2219.           the first 64 bits being the first key and the last 64 bits  being
  2220.           the second key.
  2221.  
  2222.                desEDE ALGORITHM
  2223.                PARAMETER NULL
  2224.                ::= {algorithm 17}
  2225.  
  2226.  
  2227.           7.6.2   RC2-CBC
  2228.  
  2229.           RC2-CBC  is  a  symmetric  block  encryption  algorithm.    It is
  2230.           proprietary to RSA  Data Security, Inc., and a  license from them
  2231.           is  required to use the algorithm.   The algorithm uses an 8-byte
  2232.           key and operates  on an 8-byte block, with  cipher block chaining
  2233.           as  in DES.   The recommended padding  is as  described above for
  2234.           DES-CBC:   the  final block is  padded to  an 8-byte  boundary by
  2235.           appending 8  - (n mod 8) bytes, each having  the value 8 - (n mod
  2236.           8), where  n is  the total number  of bytes being  encrypted. The
  2237.           speed is comparable to DES. 
  2238.  
  2239.                                           27
  2240.  
  2241.  
  2242.  
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248.  
  2249.  
  2250.  
  2251.  
  2252.           PART 12 - SECURITY                            March 1994 (Stable)
  2253.  
  2254.                rc2CBC ALGORITHM
  2255.                PARAMETER RC2-CBCParameter
  2256.                ::={iso(1)     member-body(2)     US(840)     rsadsi(113549)
  2257.           encryptionAlgorithm(3) 2}
  2258.  
  2259.                RC2-CBCParameter   ::=   CHOICE   {IV,   SEQUENCE   {version
  2260.           RC2Version, IV}}
  2261.            
  2262.                -- with IV only, version defaults to 65
  2263.            
  2264.                IV ::= OCTET STRING -- 8 octets
  2265.                RC2Version ::= INTEGER -- 0 to 255, defined by RSADSI
  2266.  
  2267.           The version  number  relates to  the security  level.   Different
  2268.           versions of RC2 provide different security levels, some of  which
  2269.           are exportable. 
  2270.  
  2271.  
  2272.           7.6.3   RC-4
  2273.  
  2274.           RC-4   is  a  symmetric  block   encryption  algorithm.    It  is
  2275.           proprietary to RSA  Data Security, Inc., and a  license from them
  2276.           is required to use the algorithm.  The RC4 key size  is variable,
  2277.           1 to 256  bytes; the block  size is one  byte.  RC4  is a  stream
  2278.           cipher,  and it  exclusive-ors a pseudorandom  sequence generated
  2279.           from  the key to encrypt or decrypt; a given key should therefore
  2280.           be used only once.  RC4 is very fast.  
  2281.  
  2282.                rc4 ALGORITHM
  2283.                PARAMETER NULL
  2284.                ::={iso(1)     member-body(2)     US(840)     rsadsi(113549)
  2285.           encryptionAlgorithm(3) 4}
  2286.  
  2287.  
  2288.           7.7    ASN.1
  2289.  
  2290.  
  2291.           7.7.1   Distinguished Encoding Rules
  2292.  
  2293.           In order to allow verification  of digital signatures produced by
  2294.           the SIGNED and SIGNATURE MACROs  of [ISO9594-8], it is  necessary
  2295.           to define  a set  of distinguished encoding  rules to  produce an
  2296.           unambiguous   encoding  of   a  given   abstract  syntax   value.
  2297.           [ISO9594-8] defines  a number of  such encoding rules  (8.7), but
  2298.           is, unfortunately, underspecified in the following areas:
  2299.  
  2300.                a)  Ordering of SET OF components;
  2301.  
  2302.                b)  Handling of unused trailing zero bits;
  2303.  
  2304.  
  2305.                                           28
  2306.  
  2307.  
  2308.  
  2309.  
  2310.  
  2311.  
  2312.  
  2313.  
  2314.  
  2315.  
  2316.  
  2317.  
  2318.           PART 12 - SECURITY                            March 1994 (Stable)
  2319.  
  2320.                c)  Invocation and designation of new character sets in some
  2321.                of the character string types.
  2322.  
  2323.           The following rules remove these ambiguities: 
  2324.  
  2325.                a)   The [ISO9594-8] distinguished encoding rules are always
  2326.                used;
  2327.  
  2328.                b)  For  SET OF types, components are  sorted into ascending
  2329.                order of the distinguished encodings of the components;
  2330.  
  2331.                c)  For  BIT STRINGS with unused trailing bits,  if the type
  2332.                definition that specifies the  bits have significance,  then
  2333.                they are included in the encoding; otherwise they are not;
  2334.  
  2335.                d)   For  those  character strings  which  allow it,  escape
  2336.                sequences are generated to invoke and designate new register
  2337.                entries  only  when  the register  entry  for  the character
  2338.                currently  being  encoded is  different from  that currently
  2339.                designated for G0, C0, or C1. All designations shall be into
  2340.                G0 or C0. (It is assumed that all characters have entries in
  2341.                the ISO Registry of Coded Character Sets.)
  2342.  
  2343.                NOTE - Rules b,c, and  d are taken from [ISO/CD8825-3] (Nov.
  2344.                1990),  the   ASN.1  Distinguished  Encoding   Rules.  Other
  2345.                features of [ISO/CD8825-3],  which conflict with [ISO9594-8]
  2346.                (e.g.,  length encoding for  constructors), are NOT  used by
  2347.                this IA.
  2348.  
  2349.           It is recommended that whenever  the SIGNED or SIGNATURE macro is
  2350.           to be applied  to an object, the object  should be transferred in
  2351.           its distinguished encoded form.   In this way, when the resources
  2352.           required  to  encode or  decode  an object  exceed  the resources
  2353.           required to  apply the  SIGNED or  SIGNATURE  macro, a  receiving
  2354.           entity may apply  the macro immediately, thus  realizing enhanced
  2355.           performance.   However, if the macro application is unsuccessful,
  2356.           the object must be distinguished encoded and the macro re-applied
  2357.           to determine its actual success or failure.
  2358.  
  2359.  
  2360.  
  2361.  
  2362.  
  2363.  
  2364.  
  2365.  
  2366.  
  2367.  
  2368.  
  2369.  
  2370.  
  2371.                                           29
  2372.  
  2373.  
  2374.  
  2375.  
  2376.  
  2377.  
  2378.  
  2379.  
  2380.  
  2381.  
  2382.  
  2383.  
  2384.           PART 12 - SECURITY                            March 1994 (Stable)
  2385.  
  2386.           8   Lower Layers Security
  2387.  
  2388.  
  2389.           9   Upper Layers Security
  2390.  
  2391.           This clause  addresses the provision of security  services in the
  2392.           Upper Layers.   The  Upper Layers  Security  Model specifies  the
  2393.           interactions  among the  Upper  Layers  in  providing  and  using
  2394.           security services [ISO/CD10745].
  2395.  
  2396.  
  2397.           9.1    Security Mechanisms
  2398.  
  2399.  
  2400.           9.1.1   Peer Entity Authentication
  2401.  
  2402.           ACSE authentication extensions  [ISO8649][ISO8650/1] support two-
  2403.           way authentication  through the  definition of  a new  functional
  2404.           unit.     When  this  functional  unit  is  employed,  additional
  2405.           parameters  are provided by  the A-ASSOCIATE service  to indicate
  2406.           this requirement  and convey  authentication information  between
  2407.           entities.   The ASN.1  definition for  this information  is given
  2408.           below:
  2409.  
  2410.  
  2411.  
  2412.           from [ISO8650/1]: 
  2413.  
  2414.  
  2415.           Mechanism-name ::= OBJECT IDENTIFIER  
  2416.                --This  field shall be present if authentication-value is of
  2417.           type ANY.
  2418.  
  2419.           Authentication-value   :=     CHOICE { 
  2420.                charstring          [0] IMPLICIT GraphicString,       
  2421.                bitstring                [1] IMPLICIT BIT STRING,  
  2422.                external                 [2] IMPLICIT EXTERNAL,         
  2423.                other               [3] ANY -- Defined by Mechanism-name }
  2424.  
  2425.                --The abstract syntax of authentication-value is  determined
  2426.                by the authentication-mechanism 
  2427.                --used     during     association     establishment.     The
  2428.           authentication-mechanism is either explicitly 
  2429.                --denoted by the OBJECT IDENTIFIER value for Mechanism-name,
  2430.           or it is know implicitly by 
  2431.                --prior  agreement between  the communicating partners.   If
  2432.           "other" is chosen, then 
  2433.                --"Mechanism-name" must  be present  in accordance with  ISO
  2434.           8824.
  2435.  
  2436.  
  2437.                                           30
  2438.  
  2439.  
  2440.  
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446.  
  2447.  
  2448.  
  2449.  
  2450.           PART 12 - SECURITY                            March 1994 (Stable)
  2451.  
  2452.           These agreements  define the  following mechanisms  for use  with
  2453.           this ACSE functional unit:
  2454.  
  2455.                          simple-strong authentication mechanism.
  2456.  
  2457.  
  2458.           9.1.1.1   Simple-Strong Authentication
  2459.  
  2460.  
  2461.           9.1.1.1.1  Operation
  2462.  
  2463.           The operation of the simple-strong  authentication mechanisms are
  2464.           based  upon [ISO9594-3] and  [ISO9594-8] standards.   The sending
  2465.           system is the  entity requesting authentication of  its identity,
  2466.           and  the   receiving  system   is  the   entity  performing   the
  2467.           authentication.   The sending system  supplies data for  the ACSE
  2468.           authentication field of the A-ASSOCIATE primitive.  The receiving
  2469.           ACSE  obtains the ACSE  authentication data from  the A-ASSOCIATE
  2470.           PDU,  and it performs the authentication  check.  If the check is
  2471.           successful, the association formation succeeds or fails depending
  2472.           upon other  circumstances and  parameters.  The  use of  the ACSE
  2473.           authentication  fields   support  both  the  simple   and  strong
  2474.           credentials variants of the [ISO9594-8] authentication exchanges.
  2475.  
  2476.           Certificates   for  use   with  strong  authentication   must  be
  2477.           compatible with [ISO9594-8].
  2478.           Certificates procured for use with Internet Privacy Enhanced Mail
  2479.           [u][v][w][x]  are completely compatible  with [ISO9594-8] and may
  2480.           (subject  to  licensing  restrictions)  be  used  by  the  strong
  2481.           authentication  mechanism.  However, Privacy  Enhanced  Mail uses
  2482.           only a subset of the  suggested [ISO9594-7] name forms, and might
  2483.           not  support  certain  name  forms of  interest  to  specific OIW
  2484.           applications.  Examples  include  Application  Entity  names  and
  2485.           certain name  forms defined by the North American Directory Forum
  2486.           in NADF-123 [y].
  2487.  
  2488.           9.1.1.1.2  Data Structure
  2489.  
  2490.           Mechanism Name
  2491.  
  2492.           The following is the ASN.1 description of the authentication data
  2493.           structure for simple or strong authentication:
  2494.  
  2495.  
  2496.  
  2497.  
  2498.  
  2499.  
  2500.  
  2501.  
  2502.  
  2503.                                           31
  2504.  
  2505.  
  2506.  
  2507.  
  2508.  
  2509.  
  2510.  
  2511.  
  2512.  
  2513.  
  2514.  
  2515.  
  2516.           PART 12 - SECURITY                            March 1994 (Stable)
  2517.  
  2518.             simple-strong-auth-mechanism OBJECT IDENTIFIER ::= {iso (1)     
  2519.                                                
  2520.                           identified-organization (3)                       
  2521.                                                
  2522.                           oiw (14)                                          
  2523.                                                
  2524.                           secsig (3)                                        
  2525.                                                
  2526.                           authentication-mechanisms (3)                     
  2527.                                                
  2528.                           simple-strong-identity-authentication (1)         
  2529.                                                
  2530.                           }                                                 
  2531.                                                                             
  2532.                                                      
  2533.  
  2534.           Authentication Value
  2535.  
  2536.           The authentication value  is conveyed in the other  option of the
  2537.           authentication-value field of ACSE authentication.
  2538.  
  2539.               Authentication-Value ::=                                      
  2540.                                             
  2541.                    SEQUENCE OF DirectoryAbstractService.Credentials         
  2542.                                                    
  2543.  
  2544.           This    data     type    is     defined    in    ASN.1     module
  2545.           DirectoryAbstractService  of  [ISO9594-3]   as  modified  through
  2546.           resolution of Directory  Defect Report Numbers 9594/052  and 063.
  2547.           The semantics of all fields are as specified in clause 8.1.2.1 of
  2548.           [ISO9594-3].
  2549.  
  2550.           The Authentication-Value  is defined as a SEQUENCE  because it is
  2551.           permitted  to pass  credentials  for  multiple  entities  in  the
  2552.           authentication   value.    It   is  the  responsibility   of  the
  2553.           application to determine the specific meaning and use of multiple
  2554.           credentials  in such  a case.   It  is anticipated  that specific
  2555.           applications   (e.g.,    Network   Management)    would   provide
  2556.           specifications for handling multiple credentials within their own
  2557.           clauses of this Part.
  2558.  
  2559.           This   authentication   mechanism  may   employ   any  registered
  2560.           authentication  algorithm; however,  it is  recommended that  the
  2561.           algorithms identified in clause 7 be used.
  2562.  
  2563.  
  2564.           9.1.1.1.3  Options
  2565.  
  2566.           For the Simple  Credentials option of Credentials,  the following
  2567.           agreements apply.  Conforming implementations are not required to
  2568.  
  2569.                                           32
  2570.  
  2571.  
  2572.  
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578.  
  2579.  
  2580.  
  2581.  
  2582.           PART 12 - SECURITY                            March 1994 (Stable)
  2583.  
  2584.           employ  the OPTIONAL  validity sequence  of the  SimpleCredential
  2585.           data element.   Receiving implementations that do not  employ the
  2586.           validity  sequence must reject an authentication value which does
  2587.           contain this sequence.   Conforming implementations  shall employ
  2588.           the optional password field of the SimpleCredential data element.
  2589.  
  2590.           Note that the password may be hashed  using one way functions and
  2591.           the  other  validity  fields.    Password  is  either  cleartext,
  2592.           Protected1 or Protected2 according to [ISO9594-8].
  2593.  
  2594.  
  2595.           9.1.1.2   External Authentication Mechanisms 
  2596.  
  2597.           Externally  defined  authentication   exchanges  may  employ  the
  2598.           external [2]  option of  the authentication-value  field of  ACSE
  2599.           authentication.  In  this   case  it  is  recommended   that  the
  2600.           mechanism-name be omitted,  with the particular mechanism  in use
  2601.           being implied by the  abstract syntax identified in  the external
  2602.           construct.
  2603.  
  2604.  
  2605.           9.1.1.2.1  Kerberos Version 5
  2606.  
  2607.  
  2608.  
  2609.           One  instance  of  an external  authentication  mechanism  is the
  2610.           Kerberos  mechanism defined  in [z].  The  Kerberos specification
  2611.           assigned  the following object  identifier to an  abstract syntax
  2612.           suitable for use in this way:
  2613.  
  2614.                     [TBD]
  2615.  
  2616.  
  2617.           9.1.2   Integrity/Data Origin Authentication Transformation
  2618.  
  2619.           This      transformation     is      a     specialization      of
  2620.           gulsSignedTransformation, which is  defined in clause D.4  of DIS
  2621.           11586-1.   This transformation uses the following parameters, and
  2622.           provides additional details  on the operation of the encoding and
  2623.           decoding processes.
  2624.  
  2625.                1)   The initEncRules field has the value  { joint-iso-ccitt
  2626.                     asn1(1) ber-derived(2) der(1) }, i.e., DER.
  2627.  
  2628.                2)   The  signOrSealAlgorithm element  shall be  keyed-hash-
  2629.                     seal:
  2630.  
  2631.                     keyed-hash-seal ALGORITHM
  2632.                          PARAMETER NULL
  2633.                     ::= { algorithm 23 }
  2634.  
  2635.                                           33
  2636.  
  2637.  
  2638.  
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644.  
  2645.  
  2646.  
  2647.  
  2648.           PART 12 - SECURITY                            March 1994 (Stable)
  2649.  
  2650.                     The  keyed-hash-seal  algorithm  is  specified  in  the
  2651.           encoding process description below.
  2652.  
  2653.                3)   The hash algorithm, if the hashAlgorithm element is not
  2654.                     present, shall default to md5.
  2655.  
  2656.                Editor's Note -  Points 2 and 3  are redundant with text  in
  2657.                the  NM  Agreements.     This  should  be   resolved  before
  2658.                progressing to the Stable Agreements.
  2659.  
  2660.                4)   The keyInformation field is not present.
  2661.  
  2662.           Encoding process:   When a value of  an abstract syntax is  to be
  2663.           sealed for transmission, the following procedures apply:
  2664.  
  2665.                1)   Encode the output data type of the transformation using
  2666.                     the ASN.1 Distinguished Encoding Rules, with the shared
  2667.                     secret key used as the value of the appendix component.
  2668.                     (Since automatic tagging is used, this is equivalent to
  2669.                     encoding the  unprotectedItem using DER,  and enclosing
  2670.                     it  in the intermediateValue and output data type using
  2671.                     BER.)
  2672.  
  2673.                NOTE -  This encoding is  only for purposes of  the security
  2674.                transformation, and does not mean DER must be used to encode
  2675.                the PDU for transmission, i.e., as the transfer syntax.
  2676.  
  2677.                2)   Hash the complete DER encoding of the value  derived in
  2678.                     step 1.
  2679.  
  2680.                NOTE     -     The     current     definition     of     the
  2681.                gulsSignedTransformation  is  unduly   restrictive  in  that
  2682.                cryptographic   operations   are   only   applied   to   the
  2683.                intermediateValue element  of the  output data type,  rather
  2684.                than the entire type.   This is being submitted as a  ballot
  2685.                comment on DIS 11586-1.
  2686.  
  2687.                3)   Insert  the hash value  into the appendix  component of
  2688.                     the  output  data type,  which  is the  xformedDataType
  2689.                     element of the transmitted PDV.
  2690.  
  2691.           Encoding process local inputs:  Identifier of hash algorithm  and
  2692.           any required  algorithm parameters, and shared secret key.  (Most
  2693.           currently registered hash algorithms have a NULL parameter.)
  2694.  
  2695.           Decoding  process:   When  a  received PDV  to  be verified,  the
  2696.           following procedures apply:
  2697.  
  2698.  
  2699.                1)   Extract and save  the received hash value  contained in
  2700.  
  2701.                                           34
  2702.  
  2703.  
  2704.  
  2705.  
  2706.  
  2707.  
  2708.  
  2709.  
  2710.  
  2711.  
  2712.  
  2713.  
  2714.           PART 12 - SECURITY                            March 1994 (Stable)
  2715.  
  2716.                     the appendix component of the received  xformedDataType
  2717.                     component of the received PDV.
  2718.  
  2719.                2)   Replace  the value  in the  appendix  component of  the
  2720.                     xformedDataType component with the shared secret key.
  2721.  
  2722.                NOTE - The extraction and  replacement of the seal field may
  2723.                be performed directly on the ASN.1 encoded PDU if the length
  2724.                of the secret key and the hash digest are equal.  Otherwise,
  2725.                the PDU must be decoded and reencoded.
  2726.  
  2727.  
  2728.                3)   Hash the DER encoding  of the xformedDataType  element.
  2729.                     (Reencoding  may  be  avoided  if  the  unprotectedItem
  2730.                     encoding is distinguished,  and the generic  protecting
  2731.                     transfer syntax defined in DIS 11586-4 is used.)
  2732.  
  2733.                4)   Compare  the  hash extracted  in step  1 with  the hash
  2734.                     derived in step 3.  If they are equal, then the seal is
  2735.                     valid; otherwise an error is signalled.
  2736.  
  2737.           Decoding process local inputs:   Identifier of hash algorithm and
  2738.           any required algorithm parameters, and shared secret key.
  2739.  
  2740.           Decoding process  outputs:   Recovered unprotected  item. and  an
  2741.           indication of whether the seal is valid.
  2742.  
  2743.           Errors:   An error condition occurs if seal verification fails.
  2744.  
  2745.           Security services:  Data origin authentication, data integrity.
  2746.  
  2747.  
  2748.           10  Message Handling System (MHS) Security
  2749.  
  2750.           All current MHS security relevant  text appears in Part 8, clause
  2751.           10.
  2752.  
  2753.  
  2754.  
  2755.  
  2756.  
  2757.  
  2758.  
  2759.  
  2760.  
  2761.  
  2762.  
  2763.  
  2764.  
  2765.  
  2766.  
  2767.                                           35
  2768.  
  2769.  
  2770.  
  2771.  
  2772.  
  2773.  
  2774.  
  2775.  
  2776.  
  2777.  
  2778.  
  2779.  
  2780.           PART 12 - SECURITY                            March 1994 (Stable)
  2781.  
  2782.           11  Directory Services Security
  2783.  
  2784.  
  2785.           12  Network Management Security
  2786.  
  2787.           This clause outlines  an approach to providing  security services
  2788.           for OSI Network  Management.  The goals  of this approach are  to
  2789.           provide security in a manner  that is simple and straight-forward
  2790.           to  implement, and  to avoid  any  unnecessary computational  and
  2791.           managerial  overhead.  The approach also takes into consideration
  2792.           the  need  for  different  levels  of  security  services  within
  2793.           different  network  management   domains,  and   the  near   term
  2794.           requirement for  interoperability of network  management entities
  2795.           over heterogeneous network types.
  2796.  
  2797.  
  2798.           12.1   Threats
  2799.  
  2800.           For  the purpose  of  discussion, threats  are  divided into  two
  2801.           categories: primary and  secondary threats.  Primary  threats are
  2802.           those considered  to be applicable  to the full range  of network
  2803.           management   implementations,   while   secondary   threats   are
  2804.           considered to be  applicable to the more limited  range of highly
  2805.           secure implementations.
  2806.  
  2807.           The primary threats to be protected against are the following:
  2808.  
  2809.                a)  The masquerading of a manager or agent entity;
  2810.  
  2811.                b)   The fabrication  or modification  of Common  Management
  2812.                Information Protocol (CMIP) data units.
  2813.  
  2814.           By countering primary  threats, disruption of network  management
  2815.           services by the casual user can be avoided.
  2816.  
  2817.           The secondary threats to be protected against are the following:
  2818.  
  2819.                a)  All primary threats;
  2820.  
  2821.                b)  The disclosure of CMIP data units;
  2822.  
  2823.                c)    The  replay,  reflection,  reordering,  insertion,  or
  2824.                deletion of CMIP data units.
  2825.  
  2826.  
  2827.  
  2828.  
  2829.  
  2830.  
  2831.  
  2832.  
  2833.                                           36
  2834.  
  2835.  
  2836.  
  2837.  
  2838.  
  2839.  
  2840.  
  2841.  
  2842.  
  2843.  
  2844.  
  2845.  
  2846.           PART 12 - SECURITY                            March 1994 (Stable)
  2847.  
  2848.           12.2   Security Services
  2849.  
  2850.  
  2851.           12.2.1  Basic Security Services
  2852.  
  2853.           The security services required to counter primary threats are:
  2854.  
  2855.                a)  Peer entity authentication;
  2856.  
  2857.                b)  Data origin authentication;
  2858.  
  2859.                c)  Connectionless integrity.
  2860.  
  2861.           Peer entity authentication  is to occur during  the establishment
  2862.           of  an   application  association.     If   the  association   is
  2863.           successfully  established,  the   underlying  security  mechanism
  2864.           provides information  that is  subsequently used  in data  origin
  2865.           authentication.  There the information  may be included in or, in
  2866.           some other way, transform the data units of  subsequent exchanges
  2867.           so   that  they  can   be  identified  as   originating  from  an
  2868.           authenticated entity.  Both authentication security  services are
  2869.           to be provided at the application level of the protocol.
  2870.  
  2871.           Connectionless integrity insures that data units originating from
  2872.           an authenticated  source are  not  modifiable without  detection.
  2873.           When combined with a strong data origin authentication mechanism,
  2874.           the  ability  to  fabricate new  data  units  is also  countered.
  2875.           Connectionless  integrity   may   be  provided   at  either   the
  2876.           application  level of  the protocol  or within  one of  the lower
  2877.           levels of the protocol (i.e., transport or network).  
  2878.  
  2879.  
  2880.           12.2.2  Enhanced Security Services
  2881.  
  2882.           The security services required to counter secondary threats are:
  2883.  
  2884.                a)  All basic security services with the  possible exception
  2885.                of connectionless integrity;
  2886.  
  2887.                b)  Connectionless confidentiality;
  2888.  
  2889.                c)  Connection integrity with or without recovery.
  2890.  
  2891.           Both connectionless confidentiality  and connection integrity may
  2892.           be provided at either the application level of protocol or within
  2893.           one  of the lower  levels of protocol.   The  latter provision is
  2894.           assumed  here.    Enhanced security  services  are  not discussed
  2895.           further in this note,  but to be issued as a  requirement for the
  2896.           lower  layer protocol  and service  standards,  and according  to
  2897.           functional standards to be developed.
  2898.  
  2899.                                           37
  2900.  
  2901.  
  2902.  
  2903.  
  2904.  
  2905.  
  2906.  
  2907.  
  2908.  
  2909.  
  2910.  
  2911.  
  2912.           PART 12 - SECURITY                            March 1994 (Stable)
  2913.  
  2914.  
  2915.           12.3   Security Mechanisms
  2916.  
  2917.  
  2918.  
  2919.           12.3.1  Peer Entity Authentication
  2920.  
  2921.  
  2922.           Peer  Entity  Authentication  will  use  the  ACSE authentication
  2923.           mechanism and  associated data  types as defined  in clause  9 of
  2924.           this Part of  the IAs.  The specific  authentication mechanism to
  2925.           be  supported  is  the  Simple-Strong Authentication  defined  in
  2926.           9.1.1.1.
  2927.  
  2928.           Support of ACSE authentication is optional.
  2929.  
  2930.  
  2931.           12.3.2  Connectionless  IntegrityProposed  text for  this  clause
  2932.                   appears in WIA Part 12, clause 12.3.2.
  2933.  
  2934.  
  2935.  
  2936.  
  2937.  
  2938.  
  2939.  
  2940.  
  2941.  
  2942.  
  2943.  
  2944.  
  2945.  
  2946.  
  2947.  
  2948.  
  2949.  
  2950.  
  2951.  
  2952.  
  2953.  
  2954.  
  2955.  
  2956.  
  2957.  
  2958.  
  2959.  
  2960.  
  2961.  
  2962.  
  2963.  
  2964.  
  2965.                                           38
  2966.  
  2967.  
  2968.  
  2969.  
  2970.  
  2971.  
  2972.  
  2973.  
  2974.  
  2975.  
  2976.  
  2977.  
  2978.           PART 12 - SECURITY                            March 1994 (Stable)
  2979.           
  2980.           Annex A (normative)
  2981.  
  2982.           ISPICS Requirements List
  2983.  
  2984.  
  2985.  
  2986.  
  2987.  
  2988.  
  2989.  
  2990.  
  2991.  
  2992.  
  2993.  
  2994.  
  2995.  
  2996.  
  2997.  
  2998.  
  2999.  
  3000.  
  3001.  
  3002.  
  3003.  
  3004.  
  3005.  
  3006.  
  3007.  
  3008.  
  3009.  
  3010.  
  3011.  
  3012.  
  3013.  
  3014.  
  3015.  
  3016.  
  3017.  
  3018.  
  3019.  
  3020.  
  3021.  
  3022.  
  3023.  
  3024.  
  3025.  
  3026.  
  3027.  
  3028.  
  3029.  
  3030.  
  3031.                                           39
  3032.  
  3033.  
  3034.  
  3035.  
  3036.  
  3037.  
  3038.  
  3039.  
  3040.  
  3041.  
  3042.  
  3043.  
  3044.           PART 12 - SECURITY                            March 1994 (Stable)
  3045.  
  3046.           Annex B (normative)
  3047.  
  3048.           Errata
  3049.  
  3050.                            Table B.1 - SIA Part 12 changes
  3051.  
  3052.            NO. OF      TYPE     REFERENCED        CLAUS   NOTES
  3053.            ERRATA               DOCUMENT          E
  3054.  
  3055.                                                                           
  3056.                                                               
  3057.                                                                   
  3058.  
  3059.  
  3060.                                                                   
  3061.  
  3062.                                                                   
  3063.  
  3064.  
  3065.                                                                   
  3066.                                                     
  3067.  
  3068.  
  3069.  
  3070.  
  3071.  
  3072.  
  3073.  
  3074.  
  3075.  
  3076.  
  3077.  
  3078.  
  3079.  
  3080.  
  3081.  
  3082.  
  3083.  
  3084.  
  3085.  
  3086.  
  3087.  
  3088.  
  3089.  
  3090.  
  3091.  
  3092.  
  3093.  
  3094.  
  3095.  
  3096.  
  3097.                                           40
  3098.  
  3099.  
  3100.  
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106.  
  3107.  
  3108.  
  3109.  
  3110.           PART 12 - SECURITY                            March 1994 (Stable)
  3111.  
  3112.           Annex C (normative)
  3113.  
  3114.           TBD
  3115.  
  3116.  
  3117.  
  3118.  
  3119.  
  3120.  
  3121.  
  3122.  
  3123.  
  3124.  
  3125.  
  3126.  
  3127.  
  3128.  
  3129.  
  3130.  
  3131.  
  3132.  
  3133.  
  3134.  
  3135.  
  3136.  
  3137.  
  3138.  
  3139.  
  3140.  
  3141.  
  3142.  
  3143.  
  3144.  
  3145.  
  3146.  
  3147.  
  3148.  
  3149.  
  3150.  
  3151.  
  3152.  
  3153.  
  3154.  
  3155.  
  3156.  
  3157.  
  3158.  
  3159.  
  3160.  
  3161.  
  3162.  
  3163.                                           41
  3164.  
  3165.  
  3166.  
  3167.  
  3168.  
  3169.  
  3170.  
  3171.  
  3172.  
  3173.  
  3174.  
  3175.  
  3176.           PART 12 - SECURITY                            March 1994 (Stable)
  3177.  
  3178.           Annex D (informative)
  3179.  
  3180.           Security Algorithms and Attributes
  3181.  
  3182.           OIWSECSIGAlgorithmObjectIdentifiers                         {i(1)
  3183.           identified-organization(3)
  3184.                                                oiw(14) secsig(3)
  3185.                                              
  3186.           oIWSECSIGAlgorithmObjectIdentifiers(1)}
  3187.           DEFINITIONS =
  3188.           BEGIN
  3189.  
  3190.           EXPORTS
  3191.           -- to be determined
  3192.  
  3193.           IMPORTS
  3194.           -- none
  3195.  
  3196.           -- category of information object
  3197.           --  defining  our  own  here; perhaps  the  definition  should be
  3198.           imported from
  3199.           -- {joint-iso-ccitt ds(5) modules(1) usefulDefinitions(0)}
  3200.  
  3201.           algorithm                      OBJECT   IDENTIFIER  ::=   {iso(1)
  3202.           identified-organization(3)
  3203.                                                     oiw(14)       secsig(3)
  3204.           algorithm(2)}
  3205.  
  3206.           -- macros
  3207.  
  3208.           --     taken    from     {joint-iso-ccitt     ds(5)    modules(1)
  3209.           authenticationFramework(7)}
  3210.           ALGORITHM MACRO::=
  3211.           BEGIN
  3212.           TYPE NOTATION::= "PARAMETER" type
  3213.           VALUE NOTATION ::= value(VALUE OBJECT IDENTIFIER)
  3214.           END -- of ALGORITHM
  3215.  
  3216.           -- algorithms
  3217.  
  3218.           md4WithRSA ALGORITHM
  3219.               PARAMETER NULL
  3220.               ::= {algorithm 2}
  3221.  
  3222.           md5WithRSA ALGORITHM
  3223.               PARAMETER NULL
  3224.               ::= {algorithm 3}
  3225.  
  3226.           md4WithRSAEncryption ALGORITHM
  3227.  
  3228.  
  3229.                                           42
  3230.  
  3231.  
  3232.  
  3233.  
  3234.  
  3235.  
  3236.  
  3237.  
  3238.  
  3239.  
  3240.  
  3241.  
  3242.           PART 12 - SECURITY                            March 1994 (Stable)
  3243.  
  3244.               PARAMETER NULL
  3245.               ::= {algorithm 4}
  3246.  
  3247.           desECB ALGORITHM
  3248.               PARAMETER NULL
  3249.               ::= {algorithm 6}
  3250.  
  3251.           desCBC ALGORITHM
  3252.                   PARAMETER CBCParameter
  3253.                   ::= {algorithm 7}
  3254.  
  3255.           CBCParameter ::= IV
  3256.  
  3257.           desOFB ALGORITHM
  3258.                   PARAMETER FBParameter
  3259.                   ::= {algorithm 8}
  3260.  
  3261.           desCFB ALGORITHM
  3262.                   PARAMETER FBParameter
  3263.                   ::= {algorithm 9}
  3264.           FBParameter ::= SEQUENCE {
  3265.                   iv IV,
  3266.                   numberOfBits NumberOfBits
  3267.                   }
  3268.  
  3269.           NumberOfBits ::= INTEGER     -- Number of feedback bits (1  to 64
  3270.           bits)
  3271.  
  3272.  
  3273.               Editor's  Note -  Check FIPS  PUB  81 for  allowed ranges  of
  3274.           feedback
  3275.               bits and specify ranges here as a comment.
  3276.  
  3277.  
  3278.                   IV ::= OCTET STRING  -- 8 octets
  3279.  
  3280.           desMAC ALGORITHM
  3281.                   PARAMETER MACParameter
  3282.                   ::= {algorithm 10}
  3283.  
  3284.           MACParameter ::= INTEGER    -- Length of MAC (16, 24,  32, 40, 40
  3285.           or 64 bits)
  3286.  
  3287.  
  3288.                   Editor's Note - Check FIPS PUB 113 for allowed
  3289.  
  3290.  
  3291.  
  3292.  
  3293.  
  3294.  
  3295.                                           43
  3296.  
  3297.  
  3298.  
  3299.  
  3300.  
  3301.  
  3302.  
  3303.  
  3304.  
  3305.  
  3306.  
  3307.  
  3308.           PART 12 - SECURITY                            March 1994 (Stable)
  3309.  
  3310.           rsaSignature ALGORITHM
  3311.                   PARAMETER NULL
  3312.                   ::= { algorithm 11 }
  3313.  
  3314.           dsa ALGORITHM
  3315.                   PARAMETER DSAParameters
  3316.                   ::= { algorithm 12 }
  3317.  
  3318.  
  3319.           dsaWithSHA ALGORITHM
  3320.                   PARAMETER DSAParameters
  3321.                   ::= { algorithm 13}
  3322.  
  3323.           mdc2WithRSASignature
  3324.                   PARAMETER NULL
  3325.                   ::= { algorithm 14 }
  3326.  
  3327.  
  3328.           shaWithRSASignature
  3329.                   PARAMETER NULL
  3330.                   ::= { algorithm 15 }
  3331.  
  3332.           dhWithCommonModulus ALGORITHM
  3333.                   PARAMETER NULL
  3334.                   ::= { algorithm 16 }
  3335.  
  3336.           desEDE ALGORITHM
  3337.                   PARAMETER NULL
  3338.                   ::= { algorithm 17 }
  3339.           sha ALGORITHM
  3340.                   PARAMETER NULL
  3341.                   ::= { algorithm 18 }
  3342.  
  3343.           mdc-2 ALGORITHM 
  3344.                   PARAMETER NULL
  3345.                   ::= { algorithm 19 }
  3346.  
  3347.           dsaCommon ALGORITHM
  3348.                   PARAMETER NULL
  3349.                   ::= { algorithm 20 }
  3350.  
  3351.           dsaCommonWithSHA ALGORITHM
  3352.                   PARAMETER NULL
  3353.                   ::= { algorithm 21)
  3354.  
  3355.           rsaKeyTransport ALGORITHM
  3356.                   PARAMETER NULL
  3357.                   ::= { algorithm 22 }
  3358.  
  3359.  
  3360.  
  3361.                                           44
  3362.  
  3363.  
  3364.  
  3365.  
  3366.  
  3367.  
  3368.  
  3369.  
  3370.  
  3371.  
  3372.  
  3373.  
  3374.           PART 12 - SECURITY                            March 1994 (Stable)
  3375.  
  3376.           keyed-hash-seal ALGORITHM
  3377.                   PARAMETER NULL
  3378.                   ::= { algorithm 23 }
  3379.           END -- of Algorithm Object Identifier Definitions
  3380.  
  3381.  
  3382.  
  3383.  
  3384.  
  3385.  
  3386.  
  3387.  
  3388.  
  3389.  
  3390.  
  3391.  
  3392.  
  3393.  
  3394.  
  3395.  
  3396.  
  3397.  
  3398.  
  3399.  
  3400.  
  3401.  
  3402.  
  3403.  
  3404.  
  3405.  
  3406.  
  3407.  
  3408.  
  3409.  
  3410.  
  3411.  
  3412.  
  3413.  
  3414.  
  3415.  
  3416.  
  3417.  
  3418.  
  3419.  
  3420.  
  3421.  
  3422.  
  3423.  
  3424.  
  3425.  
  3426.  
  3427.                                           45
  3428.  
  3429.  
  3430.  
  3431.  
  3432.  
  3433.  
  3434.  
  3435.  
  3436.  
  3437.  
  3438.  
  3439.  
  3440.           PART 12 - SECURITY                            March 1994 (Stable)
  3441.  
  3442.           Annex E (normative)
  3443.  
  3444.           References for Security Algorithms
  3445.  
  3446.           [a]     Kaliski, B.,  The MD2 Message-Digest  Algorithm, Internet
  3447.                   Draft draft-rsadsi-kaliski-md2-00.txt, July 1, 1991.
  3448.  
  3449.           [b]     Rivest,   R.  and  S.   Dusse,  The   MD4  Message-Digest
  3450.                   Algorithm, Internet Draft draft-rsadsi-rivest-md4-00.txt,
  3451.                   July 1, 1991.
  3452.  
  3453.           [c]     Rivest,   R.  and   S.  Dusse,  The   MD5  Message-Digest
  3454.                   Algorithm, Internet Draft draft-rsadsi-rivest-md5-01.txt,
  3455.                   July 10, 1991.
  3456.  
  3457.           [d]     Rivest, R.  L., A. Shamir  and L.  Adleman, A method  for
  3458.                   obtaining    digital     signatures    and     public-key
  3459.                   cryptosystems,  Communications  of  the  ACM, Volume  21,
  3460.                   Number 2, February 1978, pp. 120-126.
  3461.  
  3462.           [e]     Rivest, Ronald  L., Adi  Shamir and  Leonard M.  Adleman,
  3463.                   Cryptographic  Communications System  and  Method, United
  3464.                   States Patent No.  4,405,829, September 20, 1983.
  3465.  
  3466.           [f]     Fougner,  R.B.,   Public  Key  Standards   and  Licenses,
  3467.                   Internet  Request for Comments (RFC) 1170, January 1991.
  3468.  
  3469.           [g]     RSA  Data  Security,  Inc.,   PKCS  #1:  RSA   Encryption
  3470.                   Standard,  Version 1.4, June 3, 1991.
  3471.  
  3472.           [h]     Diffie,  W.,   and  M.E.  Hellman,   New  directions   in
  3473.                   cryptography,   IEEE Transactions on  Information Theory,
  3474.                   IT-22, pp. 644-654,  1976.
  3475.  
  3476.           [i]     Hellman, Martin E., Bailey W. Diffie and Ralph C. Merkle,
  3477.                   Cryptographic Apparatus and Method,  United States Patent
  3478.                   No.  4,200,770, April 29, 1980.
  3479.  
  3480.           [j]     RSA  Data   Security,  Inc.,   PKCS  #3:   Diffie-Hellman
  3481.                   Key-Agreement Standard,  Version 1.3, June 3, 1991.
  3482.  
  3483.           [k]     ElGamal,  T., A public  key cryptosystem and  a signature
  3484.                   scheme   based on  discrete logarithms, IEEE Transactions
  3485.                   on Information   Theory, IT-31, Number 4, July  1985, pp.
  3486.                   469-472.
  3487.  
  3488.           [l]     Federal  Information  Processing   Standards  Publication
  3489.                   (FIPS  PUB)     46-1,  Data  Encryption  Standard,   U.S.
  3490.                   Department  of   Commerce/National  Bureau of  Standards,
  3491.  
  3492.  
  3493.                                           46
  3494.  
  3495.  
  3496.  
  3497.  
  3498.  
  3499.  
  3500.  
  3501.  
  3502.  
  3503.  
  3504.  
  3505.  
  3506.           PART 12 - SECURITY                            March 1994 (Stable)
  3507.  
  3508.                   Supersedes FIPS  PUB 46,   January  15, 1977,  Reaffirmed
  3509.                   January 22, 1988.
  3510.  
  3511.           [m]     ANSI  X3.92-1981,  Data  Encryption  Algorithm,  American
  3512.                   National    Standards  Institute, Approved  December  30,
  3513.                   1980.
  3514.  
  3515.           [n]     Federal  Information  Processing   Standards  Publication
  3516.                   (FIPS PUB)  81,  DES Modes of Operation,  U.S. Department
  3517.                   of   Commerce/National Bureau  of Standards,  December 2,
  3518.                   1980.
  3519.  
  3520.           [o]     ANSI X3.106-1983,  Data Encryption  Algorithm - Modes  of
  3521.                   Operation,   American   National   Standards   Institute,
  3522.                   Approved May  16, 1983.
  3523.  
  3524.           [p]     Federal  Information  Processing   Standards  Publication
  3525.                   (FIPS PUB)  74, Guidelines for Implementing and Using the
  3526.                   NBS  Data    Encryption  Standard,   U.S.  Department  of
  3527.                   Commerce/National  Bureau of Standards, April 1, 1981.
  3528.  
  3529.           [q]     Gait,  Jason,  Validating  the  Correctness  of  Hardware
  3530.                   Implementations  of  the  NBS Data  Encryption  Standard,
  3531.                   Special      Publication  500-20,   U.S.   Department  of
  3532.                   Commerce/National Bureau   of Standards,  Issued November
  3533.                   1977, Revised September 1980.
  3534.  
  3535.           [r]     Gait, Jason, Maintenance Testing for the  Data Encryption
  3536.                   Standard, Special Publication  500-61, U.S. Department of
  3537.                   Commerce/National Bureau of Standards, August 1980.
  3538.  
  3539.           [s]     Federal  Information  Processing   Standards  Publication
  3540.                   (FIPS  PUB)    113,  Computer Data  Authentication,  U.S.
  3541.                   Department of  Commerce/National Bureau of Standards, May
  3542.                   30, 1985.
  3543.  
  3544.           [t]     American   National    Standard   X9.9-1986,    Financial
  3545.                   Institution  Message Authentication (Wholesale), American
  3546.                   Bankers  Association, April 7, 1986.
  3547.  
  3548.           [u]     Linn, John,  Privacy Enhancement for  Internet Electronic
  3549.                   Mail:  Part I --  Message Encipherment and Authentication
  3550.                   Procedures, Internet Draft draft-ietf-pem-msgproc-01.txt,
  3551.                   September 1991.
  3552.  
  3553.           [v]     Kent, Steve, Privacy Enhancement for Internet  Electronic
  3554.                   Mail:  Part  II   --  Certificate-Based  Key  Management,
  3555.                   Internet Draft draft-ietf-pem-keymgmt-00.txt, June 1991.
  3556.  
  3557.           [w]     Balenson,  David.  M,  Privacy Enhancement  for  Internet
  3558.  
  3559.                                           47
  3560.  
  3561.  
  3562.  
  3563.  
  3564.  
  3565.  
  3566.  
  3567.  
  3568.  
  3569.  
  3570.  
  3571.  
  3572.           PART 12 - SECURITY                            March 1994 (Stable)
  3573.  
  3574.                   Electronic  Mail:  Part  III --  Algorithms,  Modes,  and
  3575.                   I d e n t i f i e r s ,     I n t e r n e t     D r a f t
  3576.                   draft-ietf-pem-algorithms-00.txt, August 1991.
  3577.  
  3578.           [x]     Kaliski,  Burton.  S,  Privacy Enhancement  for  Internet
  3579.                   Electronic   Mail:   Part   IV   --  Notary,   Co-Issuer,
  3580.                   CRL-Storing and  CRL-Retrieving Services,  Internet Draft
  3581.                   draft-ietf-pem-notary-00.txt, July 1991.
  3582.  
  3583.           [y]     North American Directory Forum, A Naming Scheme for c=US,
  3584.                   Request for Comments 1255, September 1991.
  3585.  
  3586.           [z]     Kohl, John and  B. Clifford Neuman, The  Kerberos Network
  3587.                   Authentication       Service,        Internet       Draft
  3588.                   cat-kerberos-00.txt, June 1991.
  3589.  
  3590.           [aa]    Proposed FIPS xx, Digital  Signature Standard, U.S. Dept.
  3591.                   of   Commerce/National   Institute   of   Standards   and
  3592.                   Technology,  1992.   Also  published  as  ANS X9.30-199x,
  3593.                   Public Key Cryptography Using Irreversible Algorithms for
  3594.                   the Financial  Services  Industry, Part  1:  The  Digital
  3595.                   Signature Algorithm (DSA). 
  3596.  
  3597.           [ab]    Proposed FIPS  xx, Secure  Hash Standard,  U.S. Dept.  of
  3598.                   Commerce/National Institute of  Standards and Technology,
  3599.                   1992.    Also  published as  ANS  X9.30-199x,  Public Key
  3600.                   Cryptography  Using   Irreversible  Algorithms   for  the
  3601.                   Financial Services  Industry,  Part 1:  The  Secure  Hash
  3602.                   Algorithm (SHA).
  3603.  
  3604.           [ac]    ANS X9.31-199x, Public Key Cryptography Using  Reversible
  3605.                   Algorithms for the  Financial Services Industry,  Part 2:
  3606.                   Hash Algorithms.
  3607.  
  3608.           [ad]    ANS X9.31-199x, Public  Key Cryptography Using Reversible
  3609.                   Algorithms for  the Financial Services Industry,  Part 1:
  3610.                   The RSA Signature Algorithm .
  3611.  
  3612.           [ae]    ISO/IEC  IS 9796, Digital Signature Scheme Giving Message
  3613.                   Recovery, 1991.
  3614.  
  3615.           [af]    ANS  X9.17-1985,  Financial  Institution  Key  Management
  3616.                   (Wholesale), American Bankers Association, April 4, 1985,
  3617.                   Section 7.2.
  3618.  
  3619.           [ag]    D. Coppersmith,  Analysis  of  ISO/CCITT  Document  X.509
  3620.                   Annex D, IBM  Research Division,  Yorktown Heights,  June
  3621.                   1989.
  3622.  
  3623.           [ah]    J.   Moore,   "Protocol   Failures   in   Cryptosystems,"
  3624.  
  3625.                                           48
  3626.  
  3627.  
  3628.  
  3629.  
  3630.  
  3631.  
  3632.  
  3633.  
  3634.  
  3635.  
  3636.  
  3637.  
  3638.           PART 12 - SECURITY                            March 1994 (Stable)
  3639.  
  3640.                   Proceedings of the IEEE, vol. 76, no. 5, pp. 594-601, May
  3641.                   1988.
  3642.  
  3643.           [ai]    Miller,S.P.,  B.C.   Neuman,  J.I.  Schiller,   and  J.H.
  3644.                   Saltzer,  "Project Athena  Technical Plan  Section E.2.1:
  3645.                   Kerberos   Authentication   and   Authorization  System,"
  3646.                   Project Athena, MIT, December 1987.
  3647.  
  3648.  
  3649.  
  3650.  
  3651.  
  3652.  
  3653.  
  3654.  
  3655.  
  3656.  
  3657.  
  3658.  
  3659.  
  3660.  
  3661.  
  3662.  
  3663.  
  3664.  
  3665.  
  3666.  
  3667.  
  3668.  
  3669.  
  3670.  
  3671.  
  3672.  
  3673.  
  3674.  
  3675.  
  3676.  
  3677.  
  3678.  
  3679.  
  3680.  
  3681.  
  3682.  
  3683.  
  3684.  
  3685.  
  3686.  
  3687.  
  3688.  
  3689.  
  3690.  
  3691.                                           49
  3692.  
  3693.  
  3694.  
  3695.  
  3696.  
  3697.  
  3698.  
  3699.  
  3700.  
  3701.  
  3702.  
  3703.  
  3704.           PART 12 - SECURITY                            March 1994 (Stable)
  3705.  
  3706.           Annex F (informative)
  3707.  
  3708.           Bibliography
  3709.  
  3710. [1]               ISO/IEC JTC1 SC21  N3614 Information Retrieval, Transfer,
  3711.                   and Management for OSI
  3712.  
  3713. [2]               ISO/IEC DP 9796 Data Cryptographic Techniques
  3714.  
  3715. [3]               Secure Data Network System (SDNS): Key Management Profile
  3716.                   - Communications  Protocol Requirements (SDN-601/NIST  IR
  3717.                   90-4262)
  3718.  
  3719. [4]               SDNS: Message Security Protocol (SDN-701/NIST IR 90-4250)
  3720.  
  3721. [5]               SDNS: Directory (SDN-702/NIST IR 90-4250)
  3722.  
  3723. [6]               ISO/IEC JTC1 SC21/WG1 N5002 Security ASE
  3724.  
  3725. [7]               Access Control Information Specification (ACIS)
  3726.  
  3727. [8]               SDNS:  Key Management Protocol  - Definition  of Services
  3728.                   Provided (SDN-902/NIST IR 90-4262)
  3729.  
  3730. [9]               SDNS:  Key Management  Protocol  -  Specification of  the
  3731.                   Protocol (SDN-903/NIST IR 90-4262)
  3732.  
  3733. [10]              ISO/IEC JTC1 SC21/WG1 N4110 Authentication ASE Exchange
  3734.  
  3735. [11]              SDNS: Security Protocol 3 (SDN-301/NIST IR 90-4250)
  3736.  
  3737. [12]              SDNS: Security Protocol 4 (SDN-401/NIST IR 90-4250)
  3738.  
  3739. [13]              SDNS:  Key  Management   Protocol  -  SDNS  Traffic   Key
  3740.                   (SDN-906/NIST IR 90-4262)
  3741.  
  3742. [14]              ISO/IEC JTC1 SC21/WG1 N5001 Upper Layers Security Model
  3743.  
  3744. [15]              ISO/IEC JTC1 SC21/WG1 F29 N5045 Access Control Framework
  3745.  
  3746. [16]              ISO/IEC JTC1 SC21/WG1 F30 Authentication Framework
  3747.  
  3748. [17]              ISO/IEC JTC1 SC21/WG1 F31 N5047 Integrity Framework
  3749.  
  3750. [18]              ISO/IEC JTC1 SC21/WG1 F32 N5046 Non-Repudiation
  3751.  
  3752. [19]              ISO/IEC JTC1 SC21/WG4 N3775 Security Audit Trail
  3753.  
  3754. [20]              ISO/IEC JTC1 SC21/WG1 N4110 Authentication ASE Exchange
  3755.  
  3756.  
  3757.                                           50
  3758.  
  3759.  
  3760.  
  3761.  
  3762.  
  3763.  
  3764.  
  3765.  
  3766.  
  3767.  
  3768.  
  3769.  
  3770.           PART 12 - SECURITY                            March 1994 (Stable)
  3771.  
  3772. [21]              ISO/IEC JTC1 SC21/WG7 N4022 Key Management Framework
  3773.  
  3774. [22]              ISO/IEC JTC1 SC21/WG1 N5048 Confidentiality Framework
  3775.  
  3776. [23]              ISO/IEC  JTC1  SC21/WG1  N5049  Guide   to  OSI  Security
  3777.                   Standards
  3778.  
  3779. [24]              ISO/IEC JTC1 SC21/WG1 N5044 Security Framework Overview
  3780.  
  3781. [25]              RFC-1113,  Privacy  Enhancement for  Internet  Electronic
  3782.                   Mail:  Part I  - Message Encipherment  and Authentication
  3783.                   Procedures.
  3784.  
  3785. [26]              RFC-1114,  Privacy  Enhancement for  Internet  Electronic
  3786.                   Mail: Part II - Certificate-Based Key Management.
  3787.  
  3788. [27]              RFC-1115,  Privacy  Enhancement for  Internet  Electronic
  3789.                   Mail: Part  III  -  Algorithms,  Modes,  and  Identifiers
  3790.                   (August 1989).
  3791.  
  3792. [28]              Network Layer ISO/IEC JTC1 SC6 
  3793.  
  3794. [29]              Transport Layer ISO/IEC JTC1 SC6 6285 
  3795.  
  3796. [30]              Lower Layer ISO/IEC JTC1 SC6 6227
  3797.  
  3798. [31]              ANSI X9.9 DES Encryption Algorithum
  3799.  
  3800.  
  3801.  
  3802.  
  3803.  
  3804.  
  3805.  
  3806.  
  3807.  
  3808.  
  3809.  
  3810.  
  3811.  
  3812.  
  3813.  
  3814.  
  3815.  
  3816.  
  3817.  
  3818.  
  3819.  
  3820.  
  3821.  
  3822.  
  3823.                                           51
  3824.  
  3825.  
  3826.  
  3827.  
  3828.  
  3829.  
  3830.  
  3831.  
  3832.  
  3833.  
  3834.  
  3835.  
  3836.           PART 12 - SECURITY                            March 1994 (Stable)
  3837.  
  3838.           Annex G (informative)
  3839.  
  3840.           ElGamal
  3841.  
  3842.           The information in this subclause includes a tutorial description
  3843.           of the ElGamal  scheme for digital  signature using the  notation
  3844.           defined in the  Directory Documents, [ISO9594-8]. It  is intended
  3845.           that  much of the tutorial information provided in this subclause
  3846.           will be moved to the security agreements sometime in the future.
  3847.  
  3848.  
  3849.           G.1    Background
  3850.  
  3851.           The ElGamal  digital signature  scheme is  based on  earlier work
  3852.           done by Diffie and  Hellman [b] in which it was  suggested that a
  3853.           likely  candidate  for   a  one-way  function  is   the  discrete
  3854.           exponential function
  3855.  
  3856.                                                                         (1)
  3857.  
  3858.           where x is an integer  between 1 and p-1 inclusive, where  p is a
  3859.           very large  prime number,  and where    is  an integer  such that
  3860.           1   p  and {  mod p,  2  mod p, ...,  p-1 mod  p} is equal to the
  3861.           set  {1, 2,  ..., p-1}. In  algebraic terminology,  such an    is
  3862.           called a primitive element. References on the topic  of primitive
  3863.           roots and elements are [aa] and [ab].
  3864.  
  3865.           Now, in the real  number system, if y =  x, then by definition of
  3866.           the logarithm we can solve for x using x = log (y). The same idea
  3867.           extends to solving  eq (1) for x so  that inverting f(x) requires
  3868.           calculating discrete  logarithms. The reason  Diffie and  Hellman
  3869.           suspected  eq  (1)  is one-way  is  that  for suitable  p,  it is
  3870.           computationally  difficult  to  invert  f(x).  According  to  the
  3871.           current state of the art, computing discrete logs  for suitable p
  3872.           has  been  found  to  require  a  number  of  operations  roughly
  3873.           equivalent to
  3874.  
  3875.                                                                         (2)
  3876.  
  3877.           where b is the number of bits in p, and c is estimated at c = .69
  3878.           according to [ac].  This can be compared  to only about 2  log2 p
  3879.           multiplications  for discrete exponentiation. If in fact the best
  3880.           known algorithm for computing discrete logs is near  optimal then
  3881.           Expression  (2)is a good measure of the problem's complexity (for
  3882.           a properly chosen  p) and the  discrete exponential function  has
  3883.           all the  qualities of a  one-way function as  described by Diffie
  3884.           and Hellman.
  3885.  
  3886.  
  3887.  
  3888.  
  3889.                                           43
  3890.  
  3891.  
  3892.  
  3893.  
  3894.  
  3895.  
  3896.  
  3897.  
  3898.  
  3899.  
  3900.  
  3901.  
  3902.           PART 12 - SECURITY                            March 1994 (Stable)
  3903.  
  3904.           G.2    Digital Signature
  3905.  
  3906.           Private Key:  Xs denotes  the private  key for  user X.  Xs is  a
  3907.           randomly chosen integer which user X keeps secret.
  3908.  
  3909.           Public  Key:  Xp  denotes  the  public key  for  user  X  and  is
  3910.           calculated using the corresponding private key such that
  3911.  
  3912.                                                                         (3)
  3913.  
  3914.           where
  3915.  
  3916.                   a)   p is a  prime satisfying the requirements  listed in
  3917.                   12.2.2.4.
  3918.  
  3919.                   b)    is a primitive element mod p.
  3920.  
  3921.                   c)  Note that p and   could be used globally, but because
  3922.                   they  should  be  easily  changeable  (see  12.2.2.4  for
  3923.                   information  about  why  these two  parameters  should be
  3924.                   easily  changeable) it would  probably be  preferable for
  3925.                   each user to choose  his/her own p and  . If users choose
  3926.                   their own,  then p and    must  be made available  to the
  3927.                   recipient for use in the signature verification process.
  3928.  
  3929.           Signing  Procedure:  Suppose  user  A wants  to  sign  a  message
  3930.           intended for recipient B. The basic idea is to compute a two part
  3931.           signature (r, s) for the message m such that
  3932.  
  3933.                                                                         (4)
  3934.  
  3935.           where h is a one-way hash function.
  3936.  
  3937.           Compute the signature (r, s) as follows.
  3938.  
  3939.                   a)  Choose a random number k, uniformly between 0 and p-1
  3940.                   such  that k  and p-1  have  no common  divisor except  1
  3941.                   (i.e., gcd(k,p-1)=1).
  3942.  
  3943.                   b)  Compute r such that
  3944.  
  3945.                                                                         (5)
  3946.  
  3947.                   c)  Use r to solve for the corresponding s as follows.
  3948.  
  3949.  
  3950.                   1)  rewrite eq (4) using eq (5) and the definition of the
  3951.                   public key to get
  3952.  
  3953.                                                                         (6)
  3954.  
  3955.                                           44
  3956.  
  3957.  
  3958.  
  3959.  
  3960.  
  3961.  
  3962.  
  3963.  
  3964.  
  3965.  
  3966.  
  3967.  
  3968.           PART 12 - SECURITY                            March 1994 (Stable)
  3969.  
  3970.  
  3971.                   Combining exponents, get
  3972.  
  3973.                                                                         (7)
  3974.  
  3975.  
  3976.                   eq (7) implies that
  3977.  
  3978.                                                                         (8)
  3979.  
  3980.  
  3981.                   Note that  eq (8) has a  single solution for s  because k
  3982.                   was  chosen   such  that   gcd(k,p-1)=1.  See  [ad]   for
  3983.                   supporting theorem.
  3984.  
  3985.  
  3986.                   2)  now solve for s and get
  3987.  
  3988.                                                                         (9)
  3989.  
  3990.  
  3991.                   where I is computed such that k * I   1 (mod p-1).
  3992.  
  3993.           The ElGamal signature is comparable in size to the  corresponding
  3994.           RSA signature.
  3995.  
  3996.  
  3997.           G.3    Verification
  3998.  
  3999.           The recipient receives  Ap, m, r, s,   , and p and  computes both
  4000.           sides of eq (4) and then compares the results.
  4001.  
  4002.  
  4003.           G.4    Known Constraints on Parameters
  4004.  
  4005.           The following list  of constraints is  the result of a  search of
  4006.           current literature and may not be complete:
  4007.  
  4008.                   a)  p must be prime;
  4009.  
  4010.                   b)  p must be large.
  4011.  
  4012.                   Note that Expression (2) can  be used to speculate on the
  4013.                   level of security afforded by crypto systems based on the
  4014.                   discrete log problem. Breaking the ElGamal scheme has not
  4015.                   been  proven to be  equivalent to finding  discrete logs,
  4016.                   but if  we assume  equivalence then we  can estimate  how
  4017.                   large p should be for a desired level of security.
  4018.  
  4019.                   For instance,suppose we  wanted to use Expression  (2) to
  4020.  
  4021.                                           45
  4022.  
  4023.  
  4024.  
  4025.  
  4026.  
  4027.  
  4028.  
  4029.  
  4030.  
  4031.  
  4032.  
  4033.  
  4034.           PART 12 - SECURITY                            March 1994 (Stable)
  4035.  
  4036.                   decide how large p should be so that we can be reasonably
  4037.                   sure  the system cannot  be broken (using  the best known
  4038.                   algorithm) in  a practical amount  of time. To be  on the
  4039.                   conservative side, we decide we want to protect against a
  4040.                   special purpose machine that can  perform 1015 operations
  4041.                   per  second. Specifically,  we want to  know how  large p
  4042.                   should be so that such a machine  would take at least one
  4043.                   year to break the system.
  4044.  
  4045.                   In one  year, the hypothetical  machine can  perform 3  x
  4046.                   1022 operations. To find the size of the desired p, solve
  4047.                   the following equation for b.
  4048.  
  4049.                                                                        (10)
  4050.  
  4051.                   We get       . This is the number of  bits in the desired
  4052.                   p. So, the magnitude of the desired p is about 2606 which
  4053.                   is roughly 266 x 10180.
  4054.  
  4055.                   Hence, to  be reasonably  sure of  attaining the  desired
  4056.                   level of  security, we find  a prime number  greater than
  4057.                   266 x 10180 which satisfies all the other criteria listed
  4058.                   in this  subclause. Our confidence,  however, is strictly
  4059.                   based  on  the  assumption that  breaking  ElGamal  is as
  4060.                   difficult as  finding discrete  logs  and the  assumption
  4061.                   that the best  known algorithm for finding  discrete logs
  4062.                   is near optimal.
  4063.  
  4064.                   c)  p should occasionally be changed. This requirement is
  4065.                   discussed in [ae] and is related to the discovery of  new
  4066.                   algorithms for computing discrete logarithms in GF(p).
  4067.  
  4068.                   d)  p-1  must have at least one large  prime factor. This
  4069.                   requirement is  discussed in [ae]  and is imposed  by the
  4070.                   Silverman-Pohlig-Hellman  algorithm   p  which   computes
  4071.  
  4072.                   discrete  logarithms  in  GF(p)  using   on  the  order
  4073.                   operations and a comparable amount of storage, where r is
  4074.                   the largest prime factor in p-1.
  4075.  
  4076.                   e)    p  should  not  be  the  square  of  any  prime.  A
  4077.                   subexponential-time  algorithm   for  computing  discrete
  4078.                   logarithms in GF(p2) has been found. See [af]for details.
  4079.  
  4080.  
  4081.  
  4082.  
  4083.  
  4084.  
  4085.  
  4086.  
  4087.                                           46
  4088.  
  4089.  
  4090.  
  4091.  
  4092.  
  4093.