📄 rfc2853.txt
字号:
Network Working Group J. KabatRequest for Comments: 2853 ValiCert, Inc.Category: Standards Track M. Upadhyay Sun Microsystems, Inc. June 2000 Generic Security Service API Version 2 : Java BindingsStatus of this Memo This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.Copyright Notice Copyright (C) The Internet Society (2000). All Rights Reserved.Abstract The Generic Security Services Application Program Interface (GSS-API) offers application programmers uniform access to security services atop a variety of underlying cryptographic mechanisms. This document specifies the Java bindings for GSS-API which is described at a language independent conceptual level in RFC 2743 [GSSAPIv2-UPDATE]. The GSS-API allows a caller application to authenticate a principal identity, to delegate rights to a peer, and to apply security services such as confidentiality and integrity on a per-message basis. Examples of security mechanisms defined for GSS-API are The Simple Public-Key GSS-API Mechanism [SPKM] and The Kerberos Version 5 GSS-API Mechanism [KERBV5].Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . 5 2. GSS-API Operational Paradigm . . . . . . . . . . . . . . . 6 3. Additional Controls . . . . . . . . . . . . . . . . . . . 8 3.1. Delegation . . . . . . . . . . . . . . . . . . . . . . . 9 3.2. Mutual Authentication . . . . . . . . . . . . . . . . . 10 3.3. Replay and Out-of-Sequence Detection . . . . . . . . . . 10 3.4. Anonymous Authentication . . . . . . . . . . . . . . . . 11 3.5. Confidentiality . . . . . . . . . . . . . . . . . . . . 12 3.6. Inter-process Context Transfer . . . . . . . . . . . . . 12 3.7. The Use of Incomplete Contexts . . . . . . . . . . . . . 13Kabat & Upadhyay Standards Track [Page 1]RFC 2853 GSS-API Java Bindings June 2000 4. Calling Conventions . . . . . . . . . . . . . . . . . . . 13 4.1. Package Name . . . . . . . . . . . . . . . . . . . . . . 13 4.2. Provider Framework . . . . . . . . . . . . . . . . . . . 13 4.3. Integer types . . . . . . . . . . . . . . . . . . . . . 14 4.4. Opaque Data types . . . . . . . . . . . . . . . . . . . 14 4.5. Strings . . . . . . . . . . . . . . . . . . . . . . . . 15 4.6. Object Identifiers . . . . . . . . . . . . . . . . . . . 15 4.7. Object Identifier Sets . . . . . . . . . . . . . . . . . 15 4.8. Credentials . . . . . . . . . . . . . . . . . . . . . . 16 4.9. Contexts . . . . . . . . . . . . . . . . . . . . . . . . 18 4.10. Authentication tokens . . . . . . . . . . . . . . . . . 18 4.11. Interprocess tokens . . . . . . . . . . . . . . . . . . 18 4.12. Error Reporting . . . . . . . . . . . . . . . . . . . . 19 4.12.1. GSS status codes . . . . . . . . . . . . . . . . . . 19 4.12.2. Mechanism-specific status codes . . . . . . . . . . . 21 4.12.3. Supplementary status codes . . . . . . . . . . . . . 21 4.13. Names . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.14. Channel Bindings . . . . . . . . . . . . . . . . . . . 25 4.15. Stream Objects . . . . . . . . . . . . . . . . . . . . 26 4.16. Optional Parameters . . . . . . . . . . . . . . . . . . 26 5. Introduction to GSS-API Classes and Interfaces . . . . . . 26 5.1. GSSManager class . . . . . . . . . . . . . . . . . . . . 26 5.2. GSSName interface . . . . . . . . . . . . . . . . . . . 27 5.3. GSSCredential interface . . . . . . . . . . . . . . . . 28 5.4. GSSContext interface . . . . . . . . . . . . . . . . . . 28 5.5. MessageProp class . . . . . . . . . . . . . . . . . . . 30 5.6. GSSException class . . . . . . . . . . . . . . . . . . . 30 5.7. Oid class . . . . . . . . . . . . . . . . . . . . . . . 30 5.8. ChannelBinding class . . . . . . . . . . . . . . . . . . 31 6. Detailed GSS-API Class Description . . . . . . . . . . . . 31 6.1. public abstract class GSSManager . . . . . . . . . . . . 31 6.1.1. Example Code . . . . . . . . . . . . . . . . . . . . . 32 6.1.2. getInstance . . . . . . . . . . . . . . . . . . . . . 33 6.1.3. getMechs . . . . . . . . . . . . . . . . . . . . . . . 33 6.1.4. getNamesForMech . . . . . . . . . . . . . . . . . . . 33 6.1.5. getMechsForName . . . . . . . . . . . . . . . . . . . 33 6.1.6. createName . . . . . . . . . . . . . . . . . . . . . . 33 6.1.7. createName . . . . . . . . . . . . . . . . . . . . . . 34 6.1.8. createName . . . . . . . . . . . . . . . . . . . . . . 35 6.1.9. createName . . . . . . . . . . . . . . . . . . . . . . 35 6.1.10. createCredential . . . . . . . . . . . . . . . . . . 36 6.1.11. createCredential . . . . . . . . . . . . . . . . . . 36 6.1.12. createCredential . . . . . . . . . . . . . . . . . . 37 6.1.13. createContext . . . . . . . . . . . . . . . . . . . . 37 6.1.14. createContext . . . . . . . . . . . . . . . . . . . . 38 6.1.15. createContext . . . . . . . . . . . . . . . . . . . . 38 6.1.16. addProviderAtFront . . . . . . . . . . . . . . . . . 38 6.1.16.1. Example Code . . . . . . . . . . . . . . . . . . . 39Kabat & Upadhyay Standards Track [Page 2]RFC 2853 GSS-API Java Bindings June 2000 6.1.17. addProviderAtEnd . . . . . . . . . . . . . . . . . . 40 6.1.17.1. Example Code . . . . . . . . . . . . . . . . . . . 41 6.2. public interface GSSName . . . . . . . . . . . . . . . . 42 6.2.1. Example Code . . . . . . . . . . . . . . . . . . . . . 42 6.2.2. Static Constants . . . . . . . . . . . . . . . . . . . 43 6.2.3. equals . . . . . . . . . . . . . . . . . . . . . . . . 44 6.2.4. equals . . . . . . . . . . . . . . . . . . . . . . . . 44 6.2.5. canonicalize . . . . . . . . . . . . . . . . . . . . . 44 6.2.6. export . . . . . . . . . . . . . . . . . . . . . . . . 45 6.2.7. toString . . . . . . . . . . . . . . . . . . . . . . . 45 6.2.8. getStringNameType . . . . . . . . . . . . . . . . . . 45 6.2.9. isAnonymous . . . . . . . . . . . . . . . . . . . . . 45 6.2.10. isMN . . . . . . . . . . . . . . . . . . . . . . . . 45 6.3. public interface GSSCredential implements Cloneable . . 45 6.3.1. Example Code . . . . . . . . . . . . . . . . . . . . . 46 6.3.2. Static Constants . . . . . . . . . . . . . . . . . . . 47 6.3.3. dispose . . . . . . . . . . . . . . . . . . . . . . . 48 6.3.4. getName . . . . . . . . . . . . . . . . . . . . . . . 48 6.3.5. getName . . . . . . . . . . . . . . . . . . . . . . . 48 6.3.6. getRemainingLifetime . . . . . . . . . . . . . . . . . 48 6.3.7. getRemainingInitLifetime . . . . . . . . . . . . . . . 49 6.3.8. getRemainingAcceptLifetime . . . . . . . . . . . . . . 49 6.3.9. getUsage . . . . . . . . . . . . . . . . . . . . . . . 49 6.3.10. getUsage . . . . . . . . . . . . . . . . . . . . . . 49 6.3.11. getMechs . . . . . . . . . . . . . . . . . . . . . . 50 6.3.12. add . . . . . . . . . . . . . . . . . . . . . . . . . 50 6.3.13. equals . . . . . . . . . . . . . . . . . . . . . . . 51 6.4. public interface GSSContext . . . . . . . . . . . . . . 51 6.4.1. Example Code . . . . . . . . . . . . . . . . . . . . . 52 6.4.2. Static Constants . . . . . . . . . . . . . . . . . . . 54 6.4.3. initSecContext . . . . . . . . . . . . . . . . . . . . 54 6.4.3.1. Example Code . . . . . . . . . . . . . . . . . . . . 55 6.4.4. initSecContext . . . . . . . . . . . . . . . . . . . . 56 6.4.4.1. Example Code . . . . . . . . . . . . . . . . . . . . 56 6.4.5. acceptSecContext . . . . . . . . . . . . . . . . . . . 57 6.4.5.1. Example Code . . . . . . . . . . . . . . . . . . . . 58 6.4.6. acceptSecContext . . . . . . . . . . . . . . . . . . . 59 6.4.6.1. Example Code . . . . . . . . . . . . . . . . . . . . 59 6.4.7. isEstablished . . . . . . . . . . . . . . . . . . . . 60 6.4.8. dispose . . . . . . . . . . . . . . . . . . . . . . . 60 6.4.9. getWrapSizeLimit . . . . . . . . . . . . . . . . . . . 61 6.4.10. wrap . . . . . . . . . . . . . . . . . . . . . . . . 61 6.4.11. wrap . . . . . . . . . . . . . . . . . . . . . . . . 62 6.4.12. unwrap . . . . . . . . . . . . . . . . . . . . . . . 63 6.4.13. unwrap . . . . . . . . . . . . . . . . . . . . . . . 64 6.4.14. getMIC . . . . . . . . . . . . . . . . . . . . . . . 65 6.4.15. getMIC . . . . . . . . . . . . . . . . . . . . . . . 65 6.4.16. verifyMIC . . . . . . . . . . . . . . . . . . . . . . 66Kabat & Upadhyay Standards Track [Page 3]RFC 2853 GSS-API Java Bindings June 2000 6.4.17. verifyMIC . . . . . . . . . . . . . . . . . . . . . . 67 6.4.18. export . . . . . . . . . . . . . . . . . . . . . . . 68 6.4.19. requestMutualAuth . . . . . . . . . . . . . . . . . . 68 6.4.20. requestReplayDet . . . . . . . . . . . . . . . . . . 69 6.4.21. requestSequenceDet . . . . . . . . . . . . . . . . . 69 6.4.22. requestCredDeleg . . . . . . . . . . . . . . . . . . 69 6.4.23. requestAnonymity . . . . . . . . . . . . . . . . . . 69 6.4.24. requestConf . . . . . . . . . . . . . . . . . . . . . 70 6.4.25. requestInteg . . . . . . . . . . . . . . . . . . . . 70 6.4.26. requestLifetime . . . . . . . . . . . . . . . . . . . 70 6.4.27. setChannelBinding . . . . . . . . . . . . . . . . . . 71 6.4.28. getCredDelegState . . . . . . . . . . . . . . . . . . 71 6.4.29. getMutualAuthState . . . . . . . . . . . . . . . . . 71 6.4.30. getReplayDetState . . . . . . . . . . . . . . . . . . 71 6.4.31. getSequenceDetState . . . . . . . . . . . . . . . . . 71 6.4.32. getAnonymityState . . . . . . . . . . . . . . . . . . 72 6.4.33. isTransferable . . . . . . . . . . . . . . . . . . . 72 6.4.34. isProtReady . . . . . . . . . . . . . . . . . . . . . 72 6.4.35. getConfState . . . . . . . . . . . . . . . . . . . . 72 6.4.36. getIntegState . . . . . . . . . . . . . . . . . . . . 72 6.4.37. getLifetime . . . . . . . . . . . . . . . . . . . . . 73 6.4.38. getSrcName . . . . . . . . . . . . . . . . . . . . . 73 6.4.39. getTargName . . . . . . . . . . . . . . . . . . . . . 73 6.4.40. getMech . . . . . . . . . . . . . . . . . . . . . . . 73 6.4.41. getDelegCred . . . . . . . . . . . . . . . . . . . . 73 6.4.42. isInitiator . . . . . . . . . . . . . . . . . . . . . 73 6.5. public class MessageProp . . . . . . . . . . . . . . . . 74 6.5.1. Constructors . . . . . . . . . . . . . . . . . . . . . 74 6.5.2. getQOP . . . . . . . . . . . . . . . . . . . . . . . . 75 6.5.3. getPrivacy . . . . . . . . . . . . . . . . . . . . . . 75 6.5.4. getMinorStatus . . . . . . . . . . . . . . . . . . . . 75 6.5.5. getMinorString . . . . . . . . . . . . . . . . . . . . 75 6.5.6. setQOP . . . . . . . . . . . . . . . . . . . . . . . . 75 6.5.7. setPrivacy . . . . . . . . . . . . . . . . . . . . . . 75 6.5.8. isDuplicateToken . . . . . . . . . . . . . . . . . . . 76 6.5.9. isOldToken . . . . . . . . . . . . . . . . . . . . . . 76 6.5.10. isUnseqToken . . . . . . . . . . . . . . . . . . . . 76 6.5.11. isGapToken . . . . . . . . . . . . . . . . . . . . . 76 6.5.12. setSupplementaryStates . . . . . . . . . . . . . . . 76 6.6. public class ChannelBinding . . . . . . . . . . . . . . 77 6.6.1. Constructors . . . . . . . . . . . . . . . . . . . . . 77 6.6.2. getInitiatorAddress . . . . . . . . . . . . . . . . . 78 6.6.3. getAcceptorAddress . . . . . . . . . . . . . . . . . . 78 6.6.4. getApplicationData . . . . . . . . . . . . . . . . . . 78 6.6.5. equals . . . . . . . . . . . . . . . . . . . . . . . . 78 6.7. public class Oid . . . . . . . . . . . . . . . . . . . . 79 6.7.1. Constructors . . . . . . . . . . . . . . . . . . . . . 79 6.7.2. toString . . . . . . . . . . . . . . . . . . . . . . . 80Kabat & Upadhyay Standards Track [Page 4]RFC 2853 GSS-API Java Bindings June 2000 6.7.3. equals . . . . . . . . . . . . . . . . . . . . . . . . 80 6.7.4. getDER . . . . . . . . . . . . . . . . . . . . . . . . 80 6.7.5. containedIn . . . . . . . . . . . . . . . . . . . . . 80 6.8. public class GSSException extends Exception . . . . . . 80 6.8.1. Static Constants . . . . . . . . . . . . . . . . . . . 81 6.8.2. Constructors . . . . . . . . . . . . . . . . . . . . . 83 6.8.3. getMajor . . . . . . . . . . . . . . . . . . . . . . . 84 6.8.4. getMinor . . . . . . . . . . . . . . . . . . . . . . . 84 6.8.5. getMajorString . . . . . . . . . . . . . . . . . . . . 84 6.8.6. getMinorString . . . . . . . . . . . . . . . . . . . . 84 6.8.7. setMinor . . . . . . . . . . . . . . . . . . . . . . . 84 6.8.8. toString . . . . . . . . . . . . . . . . . . . . . . . 85 6.8.9. getMessage . . . . . . . . . . . . . . . . . . . . . . 85 7. Sample Applications . . . . . . . . . . . . . . . . . . . 85 7.1. Simple GSS Context Initiator . . . . . . . . . . . . . . 85 7.2. Simple GSS Context Acceptor . . . . . . . . . . . . . . 89 8. Security Considerations . . . . . . . . . . . . . . . . . 93 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . 94 10. Bibliography . . . . . . . . . . . . . . . . . . . . . . 94 11. Authors' Addresses . . . . . . . . . . . . . . . . . . . 95 12. Full Copyright Statement. . . . . . . . . . . . . . . . . 961. Introduction This document specifies Java language bindings for the Generic Security Services Application Programming Interface Version 2 (GSS- API). GSS-API Version 2 is described in a language independent format in RFC 2743 [GSSAPIv2-UPDATE]. The GSS-API allows a caller application to authenticate a principal identity, to delegate rights to a peer, and to apply security services such as confidentiality and integrity on a per-message basis. This document leverages the work performed by the WG in the area of RFC 2743 [GSSAPIv2-UPDATE] and the C-bindings RFC 2744 [GSSAPI-C]. Whenever appropriate, text has been used from the C-bindings RFC 2744 to explain generic concepts and provide direction to the implementors. The design goals of this API have been to satisfy all the functionality defined in RFC 2743 and to provide these services in an object oriented method. The specification also aims to satisfy the
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -