📄 rfc2853.txt
字号:
Network Working Group J. Kabat
Request for Comments: 2853 ValiCert, Inc.
Category: Standards Track M. Upadhyay
Sun Microsystems, Inc.
June 2000
Generic Security Service API Version 2 : Java Bindings
Status 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 . . . . . . . . . . . . . 13
Kabat & 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 . . . . . . . . . . . . . . . . . . . 39
Kabat & 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 . . . . . . . . . . . . . . . . . . . . . . 66
Kabat & 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 . . . . . . . . . . . . . . . . . . . . . . . 80
Kabat & 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. . . . . . . . . . . . . . . . . 96
1. 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -