基于NFC的移动单点登录解决方案作为Chrome扩展外文翻译资料

 2022-11-06 15:57:03

英语原文共 7 页,剩余内容已隐藏,支付完成后下载完整资料


基于NFC的移动单点登录解决方案作为Chrome扩展

Ufuk Celikkan and Can Gelis

Department of Software Engineering, Izmir University of Economics, Faculty of Engineering and Computer Sciences, Izmir,Turkey ufuk.celikkan@ieu.edu.tr, geliscan@gmail.com

关键词:单点登录,NFC,认证,密码,安全。

摘要:我们描述使用支持近场通信的手机的单点登录认证解决方案的设计和实现。这样的解决方案可以让用 户在将自己的身份认证到互联网上的各种服务时记住多个用户名和密码。移动电话是当今无处不在的 计算设备,用于各种目的,包括身份验证,跟踪,医疗保健,娱乐和电子支付。 NFC技术的主要优 点在于,由于它使用短距离通信,因此它固有地提供了另一个级别的安全性,并且是非接触式的,易 于使用。我们的解决方案通过浏览器扩展无缝集成到Chrome浏览器中,允许用户轻松地在手机上验证 和管理个人信息。 Google Chrome扩展程序是用JavaScript编写的;但是,这个代码(JavaScript) 在浏览器中运行时,由于浏览器的安全限制,无法访问计算机的系统资源。因此,以Java小程序编 写的程序被实现为在用户计算机中运行。该扩展程序注入到当前网页中的这个小程序提供对NFC阅读 器的访问,并提供Java和JavaScript之间的桥梁。用户不需要输入任何帐户信息,因为它是通过NFC 从手机中检索并自动提交到Web登录页面。

1 绪论

窗体顶端

窗体底端

随着互联网增长的持续,多账户认证信息的管理正在成为越来越多的问题。用于验证主体身份和身份验证的最古老和最广泛使用的机制是使用用户名和密码。为所有帐户选择相同的用户名和密码来规避问题可能是危险的,因为如果验证信息被泄露,那么所有的帐户都将被暴露出来。此外,甚至不可能为不同的网站选择相同的用户名。维护多个帐户的同步密码可能很困难,因为一个帐户的更改需要更改所有其他帐户,这需要相当多的精力和时间。另一方面,选择不同的帐户名称和密码可以记住许多不同的帐户名称和密码(Felten and Gaw, 2006, Florencio and Herley, 2007)。另外,一个包含数字和特殊字符并且长于8个字符的“好”密码增加了记住密码的挑战(USCERT,2009)。基于单点登录的概念,有几个解决方案可以解决这个问题(SSO)。

浏览器已经提供了一个密码保存库来记住和自动填写密码,但这不是一个安全的解决方案,因为密码的安全性取决于机器的安全性。 或者,密码管理员可以选择存储在云中加密的认证信息,以防止读取清楚。 然而,这种解决方案的缺点是,您不再拥有您的数据。 因此,您放弃易受其处理的数据的完整性。 可以在法律上或非法的情况下查获,分析,分发,企图破产。 企业级单点登录解决方案,其中一些基于Kerberos(Steiner et.al,1988)在企业层面解决了同样的问题,需要高度的保证,而OpenID等其他SSO解决方案主要针对Web环境登录 到网站,博客等(OpenID; Sovis等,2010)。

在NFC手机上存储用户名和密码,并将其无缝集成到浏览器中是一个安全而方便的解决方案。它提供双因素身份验证,方便单点登录解决方案。基于NFC的SSO提供比密码同步方法更好的安全性,为所有应用程序维护一个单一的同步密码(Chinitz 2000)。另外,一些NFC技术所使用的短距离通信的性质是固有的(Coskun等,2013)。一些RFID标准,蓝牙和NFC读取器从黑客角度展现出相似的安全特性。他们都可以对中间人进行攻击和窃听。然而,由于设备之间的距离和低功率RF通信领域的差距,嗅探通信和中间人攻击在NFC通信中难以设置。然而,最终的安全性是通过使用诸如Diffie-Hellman之类的密钥交换算法加密读取器和电话之间的信道通信来实现的。电话作为用于存储网站的URL,用户名和密码的信息存储器,以及当访问特定网站,用户名和密码字段将从手机自动填充。这允许用户通过电话PIN的单个条目登录到网站并访问他们的帐户。一旦用户使用PIN对手机进行身份验证,则不需要更多的手动用户名/密码输入来访问其他帐户。这样可以避免在环境缺乏足够隐私的情况下手动输入用户名和密码而导致的过度窃听的危险。

基于电话的SSO被称为本地伪SSO,因为每当用户使用网站上存储的身份验证信息登录到网站时发生单独的身份验证(Pashalidis和Mitchel,2003,De Clercq,2002)。这与真正的SSO(例如可信第三方管理您的凭据的Kerberos协议)形成对照。 Kerberos在现代操作系统中可用。本地伪SSO解决方案的商业示例是Password Director(Password Director,2014),它将密码存储在本地磁盘上的加密密码数据库中,并支持USB闪存驱动器。

我们的主要目标是创建一个双因素认证的SSO解决方案。从SSO角度来看,知道电话PIN码的用户可以在其他站点上进行身份验证,而无需输入其他密码。除了知道PIN(“你知道的东西”)之外,用户应该拥有手机(“你有的东西”)来激活系统。第二个目标是创建一个容易安装的解决方案,最小的脚印,使用方便。本文所述的解决方案需要安装Google Chrome扩展程序(Chrome,2014)和Android应用程序。

使用支持NFC的手机进行登录有助于解决拼写错误和假冒网址的问题。例如,如果在浏览器中错误地输入了mail.yohoo.com(即恶意的假地址),则尝试将该URL与该卡上的URL匹配将失败,并且不会发生登录。由于电话的存储能力,用户的登录历史可以存储在卡上,稍后可以用于验证可疑登录,登录尝试以及审计目的。

本文的其余部分安排如下。第2部分概述了解决方案的系统架构。在第3节中,作者描述了系统的实现细节。最后,第4节讨论了使用系统的优势,剩余的问题和未来的工作和增强。

  1. 系统架构

手机通过浏览器扩展程序集成到浏览器中。 该解决方案有两个组件:在手机上运行的Android应用程序,以及在主机上运行的浏览器扩展。 附接到计算机的NFC读取器有助于移动电话和计算机之间的通信。 系统架构的整体高级视图如图1所示。

安装扩展后,只有当用户尝试登录到网站时,才会激活该扩展,从而将小程序注入到网页中。 小程序然后开始轮询NFC设备。 通过从移动设备接收到登录到网站(即用户名和密码)所需的数据,分机通过自动填写表单上的登录字段并提交请求来启动认证顺序。 登录过程中扩展执行的动作如图2所示。

2.1 Android应用程序

电话上的Android应用程序存储用户帐户信息,并通过NFC将该信息发送到主机上的浏览器。 NFC通信由使用简单NDEF交换协议(SNEP,2013)的高级Android NFC库提供给对等设备传输数据(SNEP在实施部分中介绍)。 SNEP协议消息具有NFC数据交换格式(NDEF,2006),其中在有效载荷字段中发送用户帐户信息。

手机通过Android Beam将消息发送到NFC阅读器,注入网页的小程序会接收到这些消息。用户帐户信息以SQLite数据库的形式存储在电话中,作为包含域,用户名和密码信息的三元组。数据库中的此信息由操作系统保护。默认情况下,Android操作系统安全体系结构不允许一个应用程序访问另一个应用程序的私有数据,如文件,而不获取明确的权限。但是,如果电话受到攻击,并且获取root权限,则数据库中的数据将与手机上的其他数据和应用程序一起显示。加密数据库上的数据部分地解决了这个问题,因为现在用户必须在每次需要网站认证时输入加密密钥。这当然违反了本文提出的SSO解决方案。使攻击更加困难的过程可以用作流程:使用PBKDF2WithHmacSHA1算法从PIN生成的密钥加密数据库中的数据。当应用程序启动“会话”时,用户输入PIN,只要用户会话处于活动状态,密码被解锁并存储在内存中。当用户由于应用程序的终止而结束会话时,内存中的清除密码被删除。但是,请注意,这不会提供额外的安全性,并且不会消除由于受到妥协和根深蒂固的手机而导致的恢复密码的攻击。这只是使攻击更难,当应用程序不运行时,密码在数据库中保持加密。图3显示了Android应用程序的用户界面。

android应用程序具有以下帐户管理功能:

  • 添加/删除帐户:用户可以添加和删除帐户;
  • 更新帐号:用户可以更新帐号;
  • 备份数据:电话上的信息将被备份在NFC卡或标签上。 用户也可以使用此卡进行登录。

2.2 浏览器扩展

扩展名是用JavaScript实现的。 扩展名的清单文件的contents_script部分指示何时激活扩展名和要运行的JavaScript文件。 当遇到登录页面时,JavaScript代码会动态地将第二个JavaScript文件添加到html文档中,并加载Applet。 该扩展在逻辑上分为两个作为Applet和Browser层,每个执行认证过程的阶段。

2.2.1 小程序层

这个层是手机和浏览器之间的桥梁。 它轮询NFC阅读器了解手机的存在,使用NFC硬件检索数据,并将数据传递给浏览器。 该层提供移动设备和数据以NDEF格式携带的小应用程序之间的对等连接,并使用简单NDEF交换协议传输。 NDEF消息的有效载荷带有JavaScript对象符号格式的帐户信息。 JSON是一种轻量级的数据交换格式,可以轻松地被机器解析并由人类阅读。

2.2.2 浏览器层

浏览器层是用JavaScript和HTML编写的。 加载Java Applet的相应JavaScript代码和HTML小程序代码代码将注入到包含登录表单的每个网页的网站中。 浏览器层解析从小程序接收到的JSON格式的数据,以提取用户名和密码,并通过自动填充页面的登录字段并使用帐户信息完成认证,然后提交页面。

3 实现

NFC-SSO实现有两个主要组件,如图4所示。移动应用程序是在Android操作系统上运行的Java程序,主机部分使用JavaScript,HTML,CSS实现为Chrome浏览器扩展,并包含Java小程序。 NFC阅读器提供NFC启用电话和主机之间的非接触式通信。 ACR122U NFC非接触式智能卡读卡器用作NFC读卡器(ACR122U)。 该实施在运行Android 4.1.2的NFC启用手机和在Windows操作系统上运行的Chrome浏览器进行测试。

在NFC手机和NFC读取器之间使用对等模式,其中设备使用简单NDEF交换协议将数据发送给彼此。 Android应用程序使用Android Beam,其本质上是链路层控制协议(LLCP,2011)和处理程序系统,使得应用程序能够在手机处于支持NDEF推送的另一个设备的范围内自动响应。 LLCP与TCP或UDP类似于HTTP请求,处理两个活动设备之间的NDEF消息交换。

3.1 Android应用程序

Android应用程序存储用户帐户信息,并将封装在NDEF消息中的数据通过Android Beam推送到驻留在主机上的Java Applet。 Android Beam是Android的原生NFC库(android.nfc)(Android,2014)的一部分。它使用SNEP协议作为默认传输机制,回归到称为NDEF推送协议(NPP)的专有机制。该应用程序实现了CreateNdefMessageCallback接口,该接口具有createNdefMessage方法来创建要推送的NDEF消息。 NDEF是在NFC标签中存储NFC数据的容器格式。 NDEF是一种轻量级的二进制消息格式,用于将一个或多个应用程序定义的有效负载封装到单个消息构造中。 NDEF消息包含一个或多个NDEF记录,每个记录携带任意类型的有效载荷,并且可以大小为232-1个字节(NDEF,2006)。 NdefMessage类提供NDEF消息的抽象。当手机位于可能支持NDEF推送的另一个设备的范围内时,将调用createNdefMessage方法,从而允许应用程序仅在需要时创建NDEF消息。

要在消息有效载荷中发送的帐户信息存储在移动设备上的SQLite数据库中,如图5所示。信息存储为包含域,用户名和密码信息的三元组,并转换为JSON格式,以便于通过JavaScript之前将其发送到主机。

3.2 Android清单文件

Android manifest.xml文件需要使用权限元素,即lt;uses-permission android:name =“android.permission.NFC”/gt;获得访问NFC硬件的权限。 由于应用程序取决于NFC硬件,以下使用要素元素包含在清单文件中:lt;uses-feature android:name =“android.hardware.nfc”android:required =“true”/gt;。 为了响应NDEF有效载荷(即当手机靠近NFC阅读器)发送单点登录应用程序时,将添加以下意图过滤元素:lt;action a

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[139159],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。