Solaris 开发者安全性指南

Kerberos v5 状态码

每个 GSS-API 函数都会返回两个状态码:主状态码次状态码。主状态码与 GSS-API 的行为相关。例如,如果应用程序尝试在安全上下文到期后传输消息,则 GSS-API 将返回 GSS_S_CONTEXT_EXPIRED 的主状态码。GSS-API 状态码中列出了主状态码。

次状态码是由给定的 GSS-API 实现支持的基础安全机制返回的。每个 GSS-API 函数都采用 minor_statusminor_stat 参数作为第一个变量。无论函数是否成功返回,应用程序都可以检查此参数,以了解基础机制返回的状态。

下表列出了 minor_status 参数中的 Kerberos v5 返回的状态消息。有关 GSS-API 状态码的更多信息,请参见GSS-API 状态码

Kerberos v5 中状态码 1 的返回消息

下表列出了 Kerberos v5 中状态码 1 的返回的次状态消息。

表 B–5 Kerberos v5 状态码 1

次状态 

值 

含义 

KRB5KDC_ERR_NONE 

-1765328384L 

无错误 

KRB5KDC_ERR_NAME_EXP 

-1765328383L 

数据库中的客户机项已过期 

KRB5KDC_ERR_SERVICE_EXP 

-1765328382L 

数据库中的服务器项已过期 

KRB5KDC_ERR_BAD_PVNO 

-1765328381L 

请求的协议版本不受支持 

KRB5KDC_ERR_C_OLD_MAST_KVNO 

-1765328380L 

客户机的密钥用旧的主密钥加密 

KRB5KDC_ERR_S_OLD_MAST_KVNO 

-1765328379L 

服务器的密钥用旧的主密钥加密 

KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN 

-1765328378L 

在 Kerberos 数据库中找不到客户机 

KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN 

-1765328377L 

在 Kerberos 数据库中找不到服务器 

KRB5KDC_ERR_PRINCIPAL_NOT_UNIQUE 

-1765328376L 

主体具有 Kerberos 数据库中的多项 

KRB5KDC_ERR_NULL_KEY 

-1765328375L 

客户机或服务器具有空密钥 

KRB5KDC_ERR_CANNOT_POSTDATE 

-1765328374L 

票证的生效期不能延后 

KRB5KDC_ERR_NEVER_VALID 

-1765328373L 

请求的有效生命周期为负数或太短 

KRB5KDC_ERR_POLICY 

-1765328372L 

KDC 策略拒绝请求 

KRB5KDC_ERR_BADOPTION 

-1765328371L 

KDC 无法实现请求的选项 

KRB5KDC_ERR_ETYPE_NOSUPP 

-1765328370L 

KDC 不支持加密类型 

KRB5KDC_ERR_SUMTYPE_NOSUPP 

-1765328369L 

KDC 不支持校验和类型 

KRB5KDC_ERR_PADATA_TYPE_NOSUPP 

-1765328368L 

KDC 不支持 padata 类型 

KRB5KDC_ERR_TRTYPE_NOSUPP 

-1765328367L 

KDC 不支持传输的类型 

KRB5KDC_ERR_CLIENT_REVOKED 

-1765328366L 

已撤销客户机的凭证 

KRB5KDC_ERR_SERVICE_REVOKED 

-1765328365L 

已撤销服务器的凭证 

Kerberos v5 中状态码 2 的返回消息

下表列出了 Kerberos v5 中状态码 2 的返回的次状态消息。

表 B–6 Kerberos v5 状态码 2

次状态 

值 

含义 

KRB5KDC_ERR_TGT_REVOKED 

-1765328364L 

已撤销 TGT 

KRB5KDC_ERR_CLIENT_NOTYET 

-1765328363L 

客户机尚无效,请稍后重试 

KRB5KDC_ERR_SERVICE_NOTYET 

-1765328362L 

服务器尚无效,请稍后重试 

KRB5KDC_ERR_KEY_EXP 

-1765328361L 

口令已过期 

KRB5KDC_ERR_PREAUTH_FAILED 

-1765328360L 

预验证失败 

KRB5KDC_ERR_PREAUTH_REQUIRED 

-1765328359L 

需要其他预验证 

KRB5KDC_ERR_SERVER_NOMATCH 

-1765328358L 

请求的服务器和票证不匹配 

KRB5PLACEHOLD_27 KRB5PLACEHOLD_30

-1765328357L -1765328354L

KRB5 错误码 27 30(保留)

KRB5KRB_AP_ERR_BAD_INTEGRITY 

-1765328353L 

解密完整性检查失败 

KRB5KRB_AP_ERR_TKT_EXPIRED 

-1765328352L 

票证已过期 

KRB5KRB_AP_ERR_TKT_NYV 

-1765328351L 

票证尚无效 

KRB5KRB_AP_ERR_REPEAT 

-1765328350L 

请求为重放 

KRB5KRB_AP_ERR_NOT_US 

-1765328349L 

票证不是供我们使用 

KRB5KRB_AP_ERR_BADMATCH 

-1765328348L 

票证/验证者不匹配 

KRB5KRB_AP_ERR_SKEW 

-1765328347L 

时钟相位差太大 

KRB5KRB_AP_ERR_BADADDR 

-1765328346L 

网络地址不正确 

KRB5KRB_AP_ERR_BADVERSION 

-1765328345L 

协议版本不匹配 

KRB5KRB_AP_ERR_MSG_TYPE 

-1765328344L 

消息类型无效 

KRB5KRB_AP_ERR_MODIFIED 

-1765328343L 

消息流已经过修改 

KRB5KRB_AP_ERR_BADORDER 

-1765328342L 

消息无序 

KRB5KRB_AP_ERR_ILL_CR_TKT 

-1765328341L 

非法的跨领域票证 

KRB5KRB_AP_ERR_BADKEYVER 

-1765328340L 

密钥版本不可用 

Kerberos v5 中状态码 3 的返回消息

下表列出了 Kerberos v5 中状态码 3 的返回的次状态消息。

表 B–7 Kerberos v5 状态码 3

次状态 

值 

含义 

KRB5KRB_AP_ERR_NOKEY 

-1765328339L 

服务密钥不可用 

KRB5KRB_AP_ERR_MUT_FAIL 

-1765328338L 

相互验证失败 

KRB5KRB_AP_ERR_BADDIRECTION 

-1765328337L 

消息方向不正确 

KRB5KRB_AP_ERR_METHOD 

-1765328336L 

需要替换验证方法 

KRB5KRB_AP_ERR_BADSEQ 

-1765328335L 

消息中的序列号不正确 

KRB5KRB_AP_ERR_INAPP_CKSUM 

-1765328334L 

消息中的校验和类型不适合 

KRB5PLACEHOLD_51 KRB5PLACEHOLD_59

-1765328333L -1765328325L

KRB5 错误码 51 59(保留)

KRB5KRB_ERR_GENERIC 

-1765328324L 

一般性错误 

KRB5KRB_ERR_FIELD_TOOLONG 

-1765328323L 

字段对于此实现太长 

KRB5PLACEHOLD_62 KRB5PLACEHOLD_127

-1765328322L -1765328257L

KRB5 错误码 62 127(保留)

未返回值

-1765328256L 

仅供内部使用

KRB5_LIBOS_BADLOCKFLAG 

-1765328255L 

文件锁定模式的标志无效 

KRB5_LIBOS_CANTREADPWD 

-1765328254L 

无法读取口令 

KRB5_LIBOS_BADPWDMATCH 

-1765328253L 

口令不匹配 

KRB5_LIBOS_PWDINTR 

-1765328252L 

口令读取中断 

KRB5_PARSE_ILLCHAR 

-1765328251L 

组件名称存在非法字符 

KRB5_PARSE_MALFORMED 

-1765328250L 

主体的错误格式表示 

KRB5_CONFIG_CANTOPEN 

-1765328249L 

无法打开/找到 Kerberos /etc/krb5/krb5 配置文件

KRB5_CONFIG_BADFORMAT 

-1765328248L 

Kerberos /etc/krb5/krb5 配置文件的格式不正确

KRB5_CONFIG_NOTENUFSPACE 

-1765328247L 

空间不足,无法返回完整信息 

KRB5_BADMSGTYPE 

-1765328246L 

为编码指定了无效的消息类型 

KRB5_CC_BADNAME 

-1765328245L 

凭证高速缓存名称格式错误 

Kerberos v5 中状态码 4 的返回消息

下表列出了 Kerberos v5 中状态码 4 的返回的次状态消息。

表 B–8 Kerberos v5 状态码 4

次状态 

值 

含义 

KRB5_CC_UNKNOWN_TYPE 

-1765328244L 

未知的凭证高速缓存类型 

KRB5_CC_NOTFOUND 

-1765328243L 

未找到匹配的凭证 

KRB5_CC_END 

-1765328242L 

到达凭证高速缓存的结尾 

KRB5_NO_TKT_SUPPLIED 

-1765328241L 

请求未提供票证 

KRB5KRB_AP_WRONG_PRINC 

-1765328240L 

请求中的主体错误 

KRB5KRB_AP_ERR_TKT_INVALID 

-1765328239L 

票证具有无效的标志集 

KRB5_PRINC_NOMATCH 

-1765328238L 

请求的主体和票证不匹配 

KRB5_KDCREP_MODIFIED 

-1765328237L 

KDC 回复与预期情况不匹配 

KRB5_KDCREP_SKEW 

-1765328236L 

KDC 回复中的时钟相位差太大 

KRB5_IN_TKT_REALM_MISMATCH 

-1765328235L 

初始票证请求中的客户机/服务器领域不匹配 

KRB5_PROG_ETYPE_NOSUPP 

-1765328234L 

程序缺少加密类型支持 

KRB5_PROG_KEYTYPE_NOSUPP 

-1765328233L 

程序缺少密钥类型支持 

KRB5_WRONG_ETYPE 

-1765328232L 

消息中未使用请求的加密类型 

KRB5_PROG_SUMTYPE_NOSUPP 

-1765328231L 

程序缺少校验和类型支持 

KRB5_REALM_UNKNOWN 

-1765328230L 

找不到请求领域的 KDC 

KRB5_SERVICE_UNKNOWN 

-1765328229L 

Kerberos 服务未知 

KRB5_KDC_UNREACH 

-1765328228L 

无法访问请求领域的任何 KDC 

KRB5_NO_LOCALNAME 

-1765328227L 

未找到主体名称的本地名称 

KRB5_MUTUAL_FAILED 

-1765328226L 

相互验证失败 

KRB5_RC_TYPE_EXISTS 

-1765328225L 

已注册重放高速缓存类型 

KRB5_RC_MALLOC 

-1765328224L 

无更多内存可供分配(用重放高速缓存代码) 

KRB5_RC_TYPE_NOTFOUND 

-1765328223L 

重放高速缓存类型未知 

Kerberos v5 中状态码 5 的返回消息

下表列出了 Kerberos v5 中状态码 5 的返回的次状态消息。

表 B–9 Kerberos v5 状态码 5

次状态 

值 

含义 

KRB5_RC_UNKNOWN 

-1765328222L 

一般性未知 RC 错误 

KRB5_RC_REPLAY 

-1765328221L 

消息为重放 

KRB5_RC_IO 

-1765328220L 

重放 I/O 操作失败 

KRB5_RC_NOIO 

-1765328219L 

重放高速缓存类型不支持非易失性存储 

KRB5_RC_PARSE 

-1765328218L 

重放高速缓存名称解析和格式错误 

KRB5_RC_IO_EOF 

-1765328217L 

重放高速缓存 I/O 的文件结束 

KRB5_RC_IO_MALLOC 

-1765328216L 

无更多内存可供分配(用重放高速缓存 I/O 代码) 

KRB5_RC_IO_PERM 

-1765328215L 

重放高速缓存代码中权限被拒绝 

KRB5_RC_IO_IO 

-1765328214L 

重放高速缓存 I/O 代码中的 I/O 错误 

KRB5_RC_IO_UNKNOWN 

-1765328213L 

一般性未知 RC/IO 错误 

KRB5_RC_IO_SPACE 

-1765328212L 

存储重放信息的系统空间不足 

KRB5_TRANS_CANTOPEN 

-1765328211L 

无法打开/找到领域转换文件 

KRB5_TRANS_BADFORMAT 

-1765328210L 

领域转换文件的格式不正确 

KRB5_LNAME_CANTOPEN 

-1765328209L 

无法打开或找到 lname 转换数据库

KRB5_LNAME_NOTRANS 

-1765328208L 

不能对请求的主体进行转换 

KRB5_LNAME_BADFORMAT 

-1765328207L 

转换数据库项的格式不正确 

KRB5_CRYPTO_INTERNAL 

-1765328206L 

密码系统内部错误 

KRB5_KT_BADNAME 

-1765328205L 

密钥表名称格式错误 

KRB5_KT_UNKNOWN_TYPE 

-1765328204L 

未知的密钥表类型 

KRB5_KT_NOTFOUND 

-1765328203L 

未找到密钥表项 

KRB5_KT_END 

-1765328202L 

到达密钥表的结尾 

KRB5_KT_NOWRITE 

-1765328201L 

无法写入指定的密钥表 

Kerberos v5 中状态码 6 的返回消息

下表列出了 Kerberos v5 中状态码 6 的返回的次状态消息。

表 B–10 Kerberos v5 状态码 6

次状态 

值 

含义 

KRB5_KT_IOERR 

-1765328200L 

写入密钥表时出错 

KRB5_NO_TKT_IN_RLM 

-1765328199L 

找不到请求领域的票证 

KRB5DES_BAD_KEYPAR 

-1765328198L 

DES 密钥包含错误的奇偶校验 

KRB5DES_WEAK_KEY 

-1765328197L 

DES 密钥为弱密钥 

KRB5_BAD_ENCTYPE 

-1765328196L 

错误的加密类型 

KRB5_BAD_KEYSIZE 

-1765328195L 

密钥大小与加密类型不兼容 

KRB5_BAD_MSIZE 

-1765328194L 

消息大小与加密类型不兼容 

KRB5_CC_TYPE_EXISTS 

-1765328193L 

已注册凭证高速缓存类型 

KRB5_KT_TYPE_EXISTS 

-1765328192L 

已注册密钥表类型 

KRB5_CC_IO 

-1765328191L 

凭证高速缓存 I/O 操作失败 

KRB5_FCC_PERM 

-1765328190L 

凭证高速缓存文件权限不正确 

KRB5_FCC_NOFILE 

-1765328189L 

未找到凭证高速缓存文件 

KRB5_FCC_INTERNAL 

-1765328188L 

内部文件凭证高速缓存错误 

KRB5_CC_WRITE 

-1765328187L 

写入凭证高速缓存文件时出错 

KRB5_CC_NOMEM 

-1765328186L 

没有更多内存可供分配(用凭证高速缓存代码) 

KRB5_CC_FORMAT 

-1765328185L 

凭证高速缓存中的格式错误 

KRB5_INVALID_FLAGS 

-1765328184L 

无效的 KDC 选项组合,即内部库错误 

KRB5_NO_2ND_TKT 

-1765328183L 

请求缺失的第二个票证 

KRB5_NOCREDS_SUPPLIED 

-1765328182L 

未向库例程提供凭证 

KRB5_SENDAUTH_BADAUTHVERS 

-1765328181L 

发送了错误的 sendauth 版本 

KRB5_SENDAUTH_BADAPPLVERS 

-1765328180L 

sendauth 发送了错误的应用程序版本 

KRB5_SENDAUTH_BADRESPONSE 

-1765328179L 

错误响应(sendauth 交换期间) 

KRB5_SENDAUTH_REJECTED 

-1765328178L 

服务器在执行 sendauth 交换期间拒绝验证 

Kerberos v5 中状态码 7 的返回消息

下表列出了 Kerberos v5 中状态码 7 的返回的次状态消息。

表 B–11 Kerberos v5 状态码 7

次状态 

值 

含义 

KRB5_PREAUTH_BAD_TYPE 

-1765328177L 

预验证类型不受支持 

KRB5_PREAUTH_NO_KEY 

-1765328176L 

未提供所需的预验证密钥 

KRB5_PREAUTH_FAILED 

-1765328175L 

一般性预验证故障 

KRB5_RCACHE_BADVNO 

-1765328174L 

重放高速缓存的格式版本号不受支持 

KRB5_CCACHE_BADVNO 

-1765328173L 

凭证高速缓存格式版本号不受支持 

KRB5_KEYTAB_BADVNO 

-1765328172L 

密钥表格式的版本号不受支持 

KRB5_PROG_ATYPE_NOSUPP 

-1765328171L 

程序缺少地址类型支持 

KRB5_RC_REQUIRED 

-1765328170L 

消息重放检测需要 rcache 参数 

KRB5_ERR_BAD_HOSTNAME 

-1765328169L 

主机名无法规范 

KRB5_ERR_HOST_REALM_UNKNOWN 

-1765328168L 

无法确定主机的领域 

KRB5_SNAME_UNSUPP_NAMETYPE 

-1765328167L 

未针对名称类型定义转换到服务主体 

KRB5KRB_AP_ERR_V4_REPLY 

-1765328166L 

最初的票证响应似乎为版本 4 错误 

KRB5_REALM_CANT_RESOLVE 

-1765328165L 

无法解析请求领域的 KDC 

KRB5_TKT_NOT_FORWARDABLE 

-1765328164L 

请求票证无法获取可转发票证 

KRB5_FWD_BAD_PRINCIPAL 

-1765328163L 

尝试转发凭证时的错误主体名称 

KRB5_GET_IN_TKT_LOOP 

-1765328162L 

在 krb5_get_in_tkt 中检测到循环 

KRB5_CONFIG_NODEFREALM 

-1765328161L 

配置文件 /etc/krb5/krb5.conf 未指定缺省领域

KRB5_SAM_UNSUPPORTED 

-1765328160L 

obtain_sam_padata 中的 SAM 标志错误 

KRB5_KT_NAME_TOOLONG 

-1765328159L 

密钥表名称太长 

KRB5_KT_KVNONOTFOUND 

-1765328158L 

密钥表中的主体的密钥版本号不正确 

KRB5_CONF_NOT_CONFIGURED 

-1765328157L 

未配置 Kerberos /etc/krb5/krb5.conf 配置文件

ERROR_TABLE_BASE_krb5 

-1765328384L 

缺省值