Detail:http://docs.oracle.com/cd/E24847_01/html/E22200/overview-61.html

GSS-API 介绍

使用 GSS-API,程序员在编写应用程序时,可以应用通用的安全机制。开发者不必针对任何特定的平台、安全机制、保护类型或传输协议来定制安全实现。使用 GSS-API,程序员可忽略保护网络数据方面的细节。使用 GSS-API 编写的程序在网络安全方面具有更高的可移植性。这种可移植性是通用安全服务 API 的一个特点。

GSS-API 是一个以通用方式为调用者提供安全服务的框架。许多底层机制和技术(如 Kerberos v5 或公钥技术)都支持 GSS-API 框架,如下图所示。

图 4-1 GSS-API 层

从广义上讲,GSS-API 主要具有以下两种功能:

  1. GSS-API 可创建一个安全上下文,应用程序可在该上下文中相互传递数据。上下文是指两个应用程序之间的信任状态。由于共享同一个上下文的应用程序可相互识别,因此可以允许在上下文存在期间进行数据传送。

  2. GSS-API 可向要传送的数据应用一种或多种类型的保护,称为安全服务GSS-API 中的安全服务介绍了安全服务。

此外,GSS-API 还可执行以下功能:

  • 转换数据

  • 检查错误

  • 授予用户特权

  • 显示信息

  • 比较标识

GSS-API 中包括许多支持函数和便利函数。

使用 GSS-API 的应用程序的可移植性

GSS-API 为应用程序提供了以下几种类型的可移植性:

  • 机制无关性。GSS-API 提供了一个用于实现安全性的通用接口。通过指定缺省的安全机制,应用程序无需了解要应用的机制以及该机制的任何详细信息。

  • 协议无关性。GSS-API 与任何通信协议或协议套件均无关。例如,GSS-API 可用于使用套接字、RCP 或 TCP/IP 的应用程序。

    RPCSEC_GSS 是用于将 GSS-API 与 RPC 顺利集成的附加层。有关更多信息,请参见使用 GSS-API 的远程过程调用

  • 平台无关性。GSS-API 与运行应用程序的操作系统的类型无关。

  • 保护质量无关性。保护质量 (Quality of Protection, QOP) 是指一种算法类型,用于加密数据或生成加密标记。通过 GSS-API,程序员可使用 GSS-API 所提供的缺省设置忽略 QOP。另一方面,应用程序可以根据需要指定 QOP。

GSS-API 中的安全服务

GSS-API 提供了三种类型的安全服务:

  • 验证-验证是 GSS-API 提供的基本安全性。验证是指对身份进行验证。如果用户通过了验证,则系统会假设其有权以该用户名进行操作。

  • 完整性- 完整性是指对数据的有效性进行验证。即使数据来自有效用户,数据本身也可能会损坏或遭到破坏。完整性可确保消息与预期的一样完整(未增减任何内容)。 GSS-API 提供的数据附带有一个名为消息完整性代码 (Message Integrity Code, MIC) 的加密标记。MIC 可用于证明收到的数据与发送者所传送的数据是否相同。

  • 保密性-保密性可确保拦截了消息的第三方难以阅读消息内容。验证和完整性机制都不会修改数据。如果数据由于某种原因而被拦截,则其他人可以阅读该数据。因此,可通过 GSS-API 对数据进行加密,前提是提供了支持加密的基础机制。这种数据加密称为保密性。

GSS-API 中的可用机制

当前的 GSS-API 实现可使用以下机制:Kerberos v5、Diffie-Hellman 和 SPNEGO。有关 Kerberos 实现的更多信息,请参见《系统管理指南:安全性服务》中的第 21  章 "Kerberos 服务介绍"。如果任何系统上运行了能够识别 GSS-API 的程序,则应在该系统上安装和运行 Kerberos v5。

使用 GSS-API 的远程过程调用

针对网络应用程序使用 RPC(Remote Procedure Call,远程过程调用)协议的程序员可以使用 RPCSEC_GSS 来提供安全性。RPCSEC_GSS 是位于 GSS-API 上面的一个独立层。RPCSEC_GSS 可提供 GSS-API 的所有功能,但其方式是针对 RPC 进行了调整的。实际上,RPCSC_GSS 可用于向程序员隐藏 GSS-API 的许多方面,从而使 RPC 安全性具有更强的可访问性和可移植性。有关 RPCSEC_GSS 的更多信息,请参见《ONC+ Developer’s Guide》中的"Authentication Using RPCSEC_GSS"

下图说明了 RPCSEC_GSS 层在应用程序和 GSS-API 之间的位置。

图 4-2 RPCSEC_GSS 和 GSS-API

GSS-API 的限制

虽然 GSS-API 使数据保护变得很简单,但是它回避某些任务的做法并不符合 GSS-API 的一般本性。因此,GSS-API 执行以下活动:

  • 为用户或应用程序提供安全凭证。凭证必须由基础安全机制提供。GSS-API 确实允许应用程序自动或显式获取凭证。

  • 在应用程序之间传送数据。应用程序负责处理对等应用程序之间的所有数据传送,无论数据是与安全有关的数据还是明文数据。

  • 区分不同类型的传送数据。例如,GSS-API 无法识别数据包是明文数据还是经过加密的数据。

  • 指示由于异步错误而导致的状态。

  • 缺省情况下保护多进程程序的不同进程之间已发送的信息。

  • 分配要传递到 GSS-API 函数的字符串缓冲区。请参见GSS-API 中的字符串和类似数据

  • 解除分配 GSS-API 数据空间。此内存必须通过 gss_release_buffer()gss_delete_name() 等函数显式解除分配。

GSS-API 的语言绑定

本文档目前仅介绍 GSS-API 的 C 语言绑定,即函数和数据类型。现已推出 Java 绑定版本的 GSS-API。Java GSS-API 包含通用安全服务应用编程接口 (Generic Security Service Application Program Interface, GSS-API) 的 Java 绑定,如 RFC 2853 中所定义。

有关 GSS-API 的更多参考信息

以下两个文档提供有关 GSS-API 的更多信息:

GSS API的更多相关文章

  1. 点单登录原理和java实现简单的单点登录

    引用自:http://blog.csdn.net/zuoluoboy/article/details/12851725 摘要: 单点登录(SSO)的技术被越来越广泛地应用到各个领域的软件系统当中.本文 ...

  2. 单点登录SSO

    转载自 http://www.blogjava.net/xcp/archive/2010/04/13/318125.html   摘要:单点登录(SSO)的技术被越来越广泛地运用到各个领域的软件系统当 ...

  3. Atitit  J2EE平台相关规范--39个  3.J2SE平台相关规范--42个

    Atitit  J2EE平台相关规范--39个  3.J2SE平台相关规范--42个 2.J2EE平台相关规范--39个5 XML Parsing Specification16 J2EE Conne ...

  4. Atitit jsr规范有多少个  407个。Jsr规范大全

    Atitit jsr规范有多少个  407个.Jsr规范大全 1.1. JCP维护职能是发展和更新.1 1.2. Java技术规范.参考实现(RI).技术兼容包(TCK)1 1.3. JCP维护的规范 ...

  5. DB2和Oracle区别

    转 http://blog.chinaunix.net/uid-7374279-id-2057574.html 写在前面:今天客户来访(日本人),问我DB2和Oracle区别.因为不是DBA(勉强的理 ...

  6. 编写你自己的单点登录(SSO)服务

    王昱 yuwang881@gmail.com   博客地址http://yuwang881.blog.sohu.com 摘要:单点登录(SSO)的技术被越来越广泛地运用到各个领域的软件系统其中.本文从 ...

  7. Java实现SSO

    摘要:单点登录(SSO)的技术被越来越广泛地运用到各个领域的软件系统当中.本文从业务的角度分析了单点登录的需求和应用领域:从技术本身的角度分析了单点登录技术的内部机制和实现手段,并且给出Web-SSO ...

  8. java实现简单的单点登录

    java实现简单的单点登录 摘要:单点登录(SSO)的技术被越来越广泛地运用到各个领域的软件系统当中.本文从业务的角度分析了单点登录的需求和应用领域:从技术本身的角度分析了单点登录技术的内部机制和实现 ...

  9. 编写自己的单点登录(SSO)服务

    王昱 yuwang881@gmail.com   博客地址http://yuwang881.blog.sohu.com 摘要:单点登录(SSO)的技术被越来越广泛地运用到各个领域的软件系统其中.本文从 ...

随机推荐

  1. 痞子衡嵌入式:再测i.MXRT1060,1170上的普通GPIO与高速GPIO极限翻转频率

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1060/1170上的普通GPIO与高速GPIO极限翻转频率. 按照上一篇文章 <实测i.MXRT1010上的普通GP ...

  2. C/C++ Qt 选择夹TabWidget组件应用

    在Qt中通过使用选择夹组件可以实现在一个页面中集成多种功能,我们以TabWidget选择夹组件为例,实现在单个页面中集成多个功能,并给每一个子夹增加对应的Ico图标. 如果我们使用选择夹组件,必须提前 ...

  3. vue中 has no matching end tag.

    这个前端编辑体验很不好,不给自动闭合代码....

  4. Codeforces 571E - Geometric Progressions(数论+阿巴细节题)

    Codeforces 题目传送门 & 洛谷题目传送门 u1s1 感觉此题思维难度不太大,不过大概是细节多得到了精神污染的地步所以才放到 D1E 的罢((( 首先我们对所有 \(a_i,b_i\ ...

  5. alpine切换源 安装慢 apk add很慢

    alpine切换源 安装慢 apk add很慢 阿里镜像 sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/reposit ...

  6. R语言与医学统计图形-【21】ggplot2标题

    ggplot2绘图系统--标题 在期刊杂志中,需要设置的图形标题并不多. 除了图形标题,还有坐标轴标题(标签).图例标题.脚注等. 标题函数:ggtitle,labs 坐标轴标题函数:xlab,yla ...

  7. rabbitmq部署问题

    启动rabbitmq服务时报错: systemctl status rabbitmq-server 状态显示:Failed to start RabbitMQ broker Failed to sta ...

  8. 完全用Deepin Linux娱乐、工作、学习(1)

    截至今天我已经用全Deepin Desktop Linux环境娱乐.工作.学习了100多天.当你看到这个桌面的时候,会不会觉得它是MacOS?错了,它是Deepin Desktop Linux,而且它 ...

  9. 在Linux下搭建nRF51822的开发烧写环境(makefile版)

    http://www.qingpingshan.com/m/view.php?aid=394836

  10. 16-4SUM

    4.30更新,已经AC 18. 4Sum My Submissions QuestionEditorial Solution Total Accepted: 71102 Total Submissio ...