RSS订阅信息安全技术跟踪与研究:技术、平台、会议、论文、产业
你现在的位置:首页 / 学术研究 / 正文

OATH:强认证开放体系

0 学术研究 | 2015年9月11日
转载申明:本站原创,欢迎转载。但转载时请保留原文地址。
原文地址:http://www.vonwei.com/post/OATHStrongAuthentication.html

OATH由很多国际IT巨头发起,致力于提供一个通用强认证的参考体系。如今国内外几乎所有公司实现的OTP解决方案都是根据OATH发布的一些规范来完成的,国内的公司如众人科技和时代亿信。

         “The Initiative for Open AuTHentication (OATH) is a collaborative effort of IT industry leaders aimed at providing a reference architecture for universal strong authentication across all users and all devices over all networks. Using open standards, OATH will offer more hardware choices, lower cost of ownership, and allow customers to replace existing disparate and proprietary security systems whose complexity often leads to higher costs.”

         无论是互联网、移动互联网,还是即将发展的物联网,将人、物体和各种设备通过虚拟的网络世界连接起来,一个基本的需求就是认证,确定网络另一方的可信性。在一个可信的网络中,各个独立的合作伙伴首先必须建立身份的可信,强认证方式可以说是可信网络的第一支柱。其是一个更加安全可靠网络的基础,在一个开放的、可互操作的联合环境中,所有用户和所有设备都能进行强的相互认证。

         “Strong authentication is the first pillar of trusted networks, in which identities can be trusted by independent partners. It is the foundation for a more secure network, where all users and all devices are strongly and mutually authenticated in an open, interoperable and federated environment.”

         可以很容易给出强认证方式的一些基本使用场景:远程访问如VPN、网上银行、远程办公、电子政务、客户和商业伙伴外联网、桌面登录、Web登录、封闭网络、移动支付等等。

         一个通用的认证系统可以总结如下图,描述了其各个高级组件:

从上图可以看到整体框架比较全面详细,不过这里从技术角度我们主要只关注如下三点:

1客户端框架(Client Framework,其支持一系列的认证方法、认证令牌Token和认证协议,可以集成多种形式的强认证方式,以及使用标准认证协议进行通信。

2配置和管理框架(Provisioning and Management FrameworkProvision这个单词其实不是很好翻译,但其意思比较明确,客户端可能是一个认证设备如移动手机,如何将支持强认证方式的软件模块和安全凭证下发到认证设备中,并进行管理,也就是Provision的意思。实际上该过程需要管理软件模块和安全凭证的整个生命周期,将一个干净的设备变成一个能使用的认证令牌Token。要保证这种下发或者配置的过程通过安全可靠的方式进行,就需要按照标准化的协议或者编程接口来完成。

3验证框架(Validation Framework,实际上与具体的强认证方式相对应,主要负责验证各种安全凭证是否有效。

1.1   客户端框架

OATH整体客户端框架如下图所示,包含各种组件和接口:

认证方法(Authentication Method

         主要实现具体的认证功能,如认证用户或者认证设备。已有的一些标准和技术如下:

1静态Password,最传统的账号密码认证方式,这种方式已经饱受很多攻击(如重放攻击、账号密码泄露等),不建议采用;

2动态口令OTP,一次性口令,更加安全,有各种实现方法,可以推荐使用;

3挑战响应方式,一般使用基于对称密码的哈希技术,如HMAC,需要双方共享一个秘密值,服务端发送挑战,客户端使用秘密值和挑战值计算响应返回给服务端;

4交易签名,挑战响应方式的一个高级版本,将用户确认的一些交易详情(如目标账号、金额、币种等)也作为对称密码操作的输入;

5用户证书,即使用公钥密码机制的一个数字签名,客户端使用私钥签名,服务端使用客户的公钥证书验证签名,需要公钥基础设施PIK的支持;

6生物因子,使用用户的一些生物特性,如指纹、虹膜、脸谱识别等,属于“what you are”类型的一种因子,主要是认证用户本身的;

7设备指纹,主要是设备上收集的一些辅助信息,如cookieIP地址、用户代理的类型和版本等,因此也只能作为一种简单的辅助认证;

8设备证书,嵌入在各种网络设备中的证书;

9可信平台模块TPM或者TCM,很多PCs中都配备有该安全硬件,可以进行强平台远程证明。

OATH发布了各种OTP的标准,因此OATH主要是推荐OTP的方式。

 

认证令牌(Authentication Token

         主要是一个硬件形式或者软件形式的容器,用来实现上面的一种或者多种认证方法。还要保证客户端认证操作执行时的安全(即隔离执行),以及保证认证凭证的存储安全(即安全存储)。目前认证令牌的形式也有很多,如一些硬件令牌的实现方式有:单独的OTP生成器(如众人科技的iKEY系列令牌)、智能卡(SIM卡、Java卡等)、包含一个独立CAP应用的EMV支付或者借记卡(做到银行卡里面了)、USB key fobsU盾不陌生了)、TPM(可信计算芯片或者其他密码芯片都可以认为是一个硬件令牌吧);另外,现在软件令牌的形式也比较流行,可以直接在PCs、移动手机和PDAs等里面实现软件模拟的令牌功能,如小米手机上的小米安全令牌等

 

令牌接口(Token Interface

         令牌一般是拥有隔离执行和安全存储能力,且实现了一些认证方法的独立存在,特别是一些硬件形式的令牌;而客户端在进行具体认证时,其客户端应用肯定在主机上,如何在主机客户应用和安全令牌之间通信认证数据和凭证,就需要规范的令牌接口。

         对于基于PKI的认证系统,拥有一些统一的标准令牌接口规范,如PKCS#11MSCNGMicrosoft Cryptographic API)。而对于一些专有的硬件令牌,可能是其独有的一些令牌接口,如TPM就拥有自己的一套驱动和可信软件栈规范;OTP硬件令牌可能支持显示接口和keypad接口与用户交互;银行U盾都要安装对应的驱动等。对于软件令牌,其很可能直接就集成在客户端应用中,还有的将其作为一个单独的设备,如直接将手机上的令牌App作为一个认证因子使用。

 

认证协议(Authentication Protocol

         认证在本地客户端应用与远程服务端应用之间进行,两种之间通过网络通信交换认证数据,需要依赖具体的认证协议。一些通用的标准认证协议总结如下:

1CHAP认证协议(Challenge Handshake Authentication Protocol),用户登录到一个互联网接入提供商时一般用此协议,可以参考RFC 1334 RFC 1994

2EAP认证协议(Extensible Authentication Protocol),参考RFC3748

3)通用安全服务应用编程接口GSSAPIGeneric Security Service Application Program Interface),非常通用的一种认证方式,参考RFC1508

4HTTP Basic and Digest Authentication,一般与SSL混合使用提供机密性,参考RFC2617

5Kerberos,主要用于分布式计算环境中,相信很多大型企业都采用的Kerberos网络认证协议,参考RFC1510

6MSCHAP v1 and v2,微软的PPP CHAP认证协议,参考RFC2433 RFC2759

7PAP认证协议(Password Authentication Protocol),一个双向握手协议,设计用来和PPP一起使用,其采用明文传送凭证,是一种不安全的认证协议,参考RFC1334 RFC1994

8SASLSimple Authentication and Security Layer),参考RFC2222

9S/Key,很早的一种OTP系统,基于哈希函数,参考RFC1760 RFC2289

10SSL/TLS,传输层安全协议,现在浏览器和Web服务已经广泛的支持这种认证协议,其是基于数字证书,并且能提供双向认证,参考RFC2246

11WS SecuritySideband signaling等。

 

1.2   配置和管理框架

         在上面的客户端框架中还有一个配置和管理协议(Provisioning / management protocol)没有介绍,实际上是与这里的配置和管理框架交互。

         设备的形状大小各一,能力和功能也变化不一,要实现一个统一的配置管理协议是非常有挑战的,其要满足各种软件组件的配置和管理,各种不同类型的安全凭证和设备的配置与管理。OATH主要是提供一个统一的框架,可以适应多种不同的标准协议,如下图所示:

         从图中可知,配置和管理的对象有两个:软件组件和安全凭证。一般在一个设备中配置软件组件主要有两种方式:在设备生产或者个性化时直接嵌入,如SIM卡和硬件Token;通过网络接口加载到设备,如PDAs和移动手机。在设备中配置安全凭证也可以使用上面两种选项,而且安全凭证还可以通过建立一个安全仓库和可信代理服务器的方式来为设备生成安全凭证。

 

Existing Credential Provisioning Protocols(安全凭证的配置与相关协议)

         现有的一些方法可以将安全凭证配置到连接的设备中,不过,这些方法和协议通常设计为只支持一种类型的凭证。而OATH配置框架的一个主要目标是支持所有类型的凭证(如对称密钥、非对称密钥对、数字证书等)。下面列举出一些可供OATH使用的相关凭证配置协议:

1XKMSXML Key Management Specification,为公钥信息的注册,以及随后的生命周期管理提供一个安全的方法,其包含两个部分:XKISSXML Key Information Service Specification)和XKRSSXML Key Registration Service Specification)。其中SKRSS规范定义了一个Web服务的接口,可以用来执行公钥信息的注册,一旦注册成功,该公钥就可以连同其它Web服务(包含XKISS)一起使用。

2PKCS #10, CRMF and PKCS #7PKCS #10CRMF定义了证书请求的标准语法。证书请求发送给一个CACA将请求转变为一个X.509公钥证书;生成的证书或者证书链通常以PKCS#7规范的格式返回。因此,PKCS #10, CRMF and PKCS #7一般得到公钥基础设施PKI广泛的支持。可以参考[RFC2986], [RFC2511] and [RFC2315]

3CMPCertificate Management Protocol为证书的请求和管理提供协议,协议消息为X.509证书的创建和管理提供。CMPPKI组件之间提供在线交互方式,包含CA和客户端之间的交互,可以参考RFC2510

4CMCCertificate Management Messages over CMS,是使用CMS一个证书管理协议。基于CMS, PKCS #10CRMF,该协议定义了一个连接到PKI组件的接口。可以参考[RFC2797] and [RFC2630]

5SCEPSimple Certificate Enrollment Protocol,思科提出的简单证书注册协议,其最显著的特征是针对大规模装置自动注册证书的可能性,只支持RSA公钥算法,使用PKCS#7

6SPEKESimple Password-authentication Exponential Key Exchange,在不安全通道上提供认证和密钥建立协议,只使用一个小的Password,而且没有离线字典攻击的风险。实际上,SPEKEDiffie-Hellman加密密钥交换(DHEKE)的一个变种。

7CTKIPCrypto Token Key Initialization Protocols ProposalCTKIP提议为使用秘密值对密码令牌进行初始化和配置提供了一个安全的方法,除了服务器和密码令牌本身,其秘密值不会泄露给其它任何实体。

8DSKPPDynamic Symmetric Key Provisioning Protocol ProposalDSKPP是基于OATH开发的DSKPP草案和CTKIP的一个密钥配置协议标准,是OATH赞助的IETF标准配置协议。

 

Existing Software Provisioning Protocols(软件模块的配置协议)

         除了将安全凭证配置到设备中外,如何下载软件模块并配置到设备中也是非常重要的一个方面。这里列举出几种常见的方法和协议:

1)基于HTTPS使用浏览器下载

2DLOTA协议,即Download Over-The-Air Protocol,该协议由OMA论坛定义,其定义了发现并下载内容和应用到移动设备的一个协议,可以用于下载认证令牌软件模块,其安全完全依赖传输层的安全。

3Java MIDP OTA provisioningJava MIDP 2.0协议允许发现和分发Java MIDLetsJava设备。

4GSM 03.48 applet download,定义了SIM appletsSIM卡的分发以及整个生命周期管理的一个安全协议。

 

1.3   验证框架

OATH的验证框架如下图所示:

 

1.4   小结

虽然OATH框架非常灵活,支持已有的各种认证方法和协议,不过OATH官方推荐的标准主要如下:

         认证方法和协议方面,主要推荐HOTPRFC4226)、TOTPRFC6238)和OCRARFC6287),基本上都是OTP动态口令的认证方式。

         由于OTP主要基于对称密钥或者共享秘密值的方式,因此配置(Provisioning)的方法主要推荐PSKCRFC6030)和DSKPPRFC6063),两者是IETF KeyProv工作组在维护,主要是支持对称密钥的配置和下发。


参考:OATH Reference Architecture, Release 2.0


  • ------------------分隔线----------------

  • 如果感兴趣,欢迎关注本站微信号,跟踪最新博文信息,手机微信扫一扫下面的二维码,即可关注!
  • 微月信公众号
  • 推荐您阅读更多有关于“ 强认证   ”的文章

    请填写你的在线分享代码
    上一篇:苹果移动支付:Apple Pay下一篇:2015新型技术总结

    猜你喜欢

    评论列表:

    发表评论

    必填

    选填

    选填

    必填,不填不让过哦,嘻嘻。

    记住我,下次回复时不用重新输入个人信息

    本站介绍
    最近发表
    本年最热文章
    本月最热文章
    网站分类
    文章归档