CN107770139B - 基于第三方usbkey设备的samba身份认证方法 - Google Patents

基于第三方usbkey设备的samba身份认证方法 Download PDF

Info

Publication number
CN107770139B
CN107770139B CN201610705640.1A CN201610705640A CN107770139B CN 107770139 B CN107770139 B CN 107770139B CN 201610705640 A CN201610705640 A CN 201610705640A CN 107770139 B CN107770139 B CN 107770139B
Authority
CN
China
Prior art keywords
user
samba
interface
party
agent module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610705640.1A
Other languages
English (en)
Other versions
CN107770139A (zh
Inventor
常旭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Institute of Computer Technology and Applications
Original Assignee
Beijing Institute of Computer Technology and Applications
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Institute of Computer Technology and Applications filed Critical Beijing Institute of Computer Technology and Applications
Priority to CN201610705640.1A priority Critical patent/CN107770139B/zh
Publication of CN107770139A publication Critical patent/CN107770139A/zh
Application granted granted Critical
Publication of CN107770139B publication Critical patent/CN107770139B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0884Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种基于第三方USBKEY设备的SAMBA身份认证方法,属于计算机存储安全技术领域。本发明通过设计WEB认证代理模块、后台服务模块以及第三方USBKEY设备及三者之间的交互方式,实现了基于第三方USBKEY设备的SAMBA身份认证,解决了SAMBA只支持用户名和口令的认证方式,以及由此引起的安全隐患问题。

Description

基于第三方USBKEY设备的SAMBA身份认证方法
技术领域
本发明涉及计算机存储安全技术领域,具体涉及一种基于第三方USBKEY设备的SAMBA身份认证方法。
背景技术
随着大数据潮流的来临,为了满足不断增长的存储需求,企业对磁盘阵列的存储容量、系统的可靠性和性能的要求提高的同时,对存储安全性的要求也越来越关注。现今,磁盘阵列通常支持SAN和NAS两种存储方式:SAN是通过高速专用网络将一个或多个网络存储设备和服务器连接起来的专用存储系统,它采用块(block)级别存储;NAS是一种特殊的专用数据存储服务器,它对文件服务器系统进行了优化并加上大容量存储,以文件方式进行数据传输,是一种专用的网络文件存储设备。
Samba是一套实现NAS中CIFS协议的软件包,而USBKEY作为一种安全认证技术,已经广泛应用在金融银行领域。Samba目前支持的认证方式有LM、NTLM、LMV2、NTLMV2等几种,这几种认证都是基于用户名和密码的认证方式,使用用户名和密码的方式存在很多的缺陷,身份认证强度不足,而Samba本身并不支持USBKEY的身份认证方式。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何设计一种基于第三方USBKEY的SAMBA身份认证方法,以便解决SAMBA只支持用户名和口令的认证方式,以及由此引起的安全隐患问题。
(二)技术方案
为了解决上述技术问题,本发明提供了一种基于第三方USBKEY设备的SAMBA身份认证方法,包括以下步骤:
S1、后台服务模块建立SAMBA用户:首先建立用户工号和用户密码,然后为该用户分配文件夹空间,并限定只有该工号的用户可以使用该文件夹空间,最后为SAMBA配置文件添加验证该工号用户的配置;
S2、进行WEB认证代理模块连接第三方USBKEY设备的初始化:首先将第三方USBKEY设备的驱动配置文件拷贝到配置目录下;然后将第三方USBKEY设备所带动态库拷贝到库目录下并保证智能卡服务运行;最后将第三方USBKEY设备“客户端接口说明”文档中用于实现WEB认证代理模块所需的接口添加到WEB认证代理模块中;
S3、添加WEB认证代理模块的HTML表单验证函数;该HTML表单验证函数模拟对外提供GET和POST两种调用方式;
S4、WEB认证代理模块进行对SAMBA用户身份认证:Web认证代理模块连接用户终端后,将第三方USBKEY设备的接口函数头文件加载,等待用户输入指令,当指令为“验证PIN码”时,WEB认证代理模块接收到上层通过POST或者GET方式下发的PIN码后,WEB认证代理模块通过动态库提供的验证口令接口进行代入认证,如果PIN码错误,则结束认证;如果PIN码正确,则调用读取用户证书接口函数,从用户终端证书载体设备中读取用户证书或CA证书,再调用获取用户身份信息接口,从而读出用户工号UID,将用户输入的SAMBA用户密码和获取到的用户工号UID作为参数传到SAMBA标准用户名和密码认证的接口中,当读取到用户工号UID后,再根据POST或者GET接收到的SAMBA用户密码进行“SAMBA认证”,如果打开SAMBA共享文件夹成功,则认证成功,LINUX操作系统客户端直接将SAMBA用户目录挂载到本地,windows操作系统客户端直接打开SAMBA用户目录;认证不成功,则结束。
优选地,所述“客户端接口说明”文档中用于实现WEB认证代理模块所需的接口包括:打开用户终端证书载体设备接口、关闭用户终端证书载体设备接口、验证口令接口、读取用户证书接口和获取用户身份信息接口。
优选地,步骤S4中,Web认证代理模块连接用户终端的过程为:Web认证代理模块启动一个主线程,主线程打开已经存储在Web认证代理模块的配置文件中配置好的端口,主线程一直监听该端口,只要有用户终端的连接请求到来,它就调用“连接处理”函数去处理连接请求,“连接处理”函数会进行预判,决定是否允许该连接,若判定连接请求不来自本用户终端,则拒绝,否则允许;如果允许,则调用“请求队列”函数并把处理工作交给它,“请求队列”函数也进行预判,判断连接队列是否已满,如果满了就等待直到有位置容纳请求,如果没有空闲进程且进程数量没有达到最大阈值,就启动一个新的工作进程去处理用户终端的请求。
(三)有益效果
本发明通过设计WEB认证代理模块、后台服务模块以及第三方USBKEY设备及三者之间的交互方式,实现了基于第三方USBKEY设备的SAMBA身份认证,解决了SAMBA只支持用户名和口令的认证方式,以及由此引起的安全隐患问题。
附图说明
图1为本发明实施例的基于第三方USBKEY设备的SAMBA身份认证方法实施例的流程图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
如图1所示,本发明实施例提供了一种基于第三方USBKEY设备的SAMBA身份认证方法,包括以下步骤:
S1、后台服务模块建立SAMBA用户
通过后台服务模块的管理界面为后台新建立一个验证本发明的SAMBA用户,界面输入参数有用户工号(UID)和密码等。后台服务模块起辅助WEB认证代理模块的作用。
后台服务模块内部相当于在操作系统中执行如下操作,以下为后台服务模块在本专利中的简易操作步骤:,
1.建立一个工号(UID)为1008的用户,密码为test的验证用户:
#useradd 1008;echo 1008:test|chpasswd;
#(echo“test”;echo“test”)|smbpasswd–s–a 1008
2.建立分配给工号UID为1008的文件夹空间,并限定只有1008可以使用。
#mkdir–p/mnt/1008
#chmod–R/mnt/1008
#chmod 1008.1008/mnt/1008
3.为SAMBA配置文件添加验证用户“1008”的简易验证配置。
#sh-c"echo-e'[{1008}]\npath=/mnt/1008\nwritable=yes\nvalid users=1008\npublic=no'>>/etc/samba/smb.conf"
S2、进行WEB认证代理模块连接第三方USBKEY设备的初始化。
Web认证代理模块为本发明的核心内容,它起到连接第三方USBKEY设备和对SAMBA进行认证的作用。可以被嵌入到任意的上层应用里(客户端软件或WEB应用服务,本步骤中安装在客户端,即用户终端,例如PC桌面设备)里,WEB认证代理模块与上层应用间交互数据承载协议为HTTP,认证结果通过JSON编码返回给上层应用。
本步骤为WEB认证代理模块加载第三方USBKEY的“驱动”、“动态库”和“客户端接口”。WEB认证代理模块支持所有标准key,此处选用的Key为通用标准key。
本步骤具体为:首先将第三方USBKEY设备的驱动配置文件拷贝到配置目录下;然后将第三方USBKEY设备所带动态库拷贝到库目录下并保证智能卡(USBKEY)服务运行;最后将第三方USBKEY设备“客户端接口说明”文档中用于实现WEB认证代理模块所需的接口添加到WEB认证代理模块中;
从第三方USBKEY的“客户端接口说明”文档得出实现WEB认证代理模块所需的接口最少有五个:
1、打开用户终端证书载体设备接口
Figure BDA0001087248390000051
2、关闭用户终端证书载体设备接口
原型 unsigned int MY_WINAPI CloseDevice();
功能 关闭用户终端证书载体设备
输入参数
返回 成功时,返回“0”;错误时,返回错误信息。
3、验证口令接口
原型 unsigned int MY_WINAPI VerifyPin(char*strPass);
功能 验证用户终端证书载体设备的保护口令。
输入参数 strPasswd口令串(6-16位)
返回 成功时,返回“0”;错误时,返回错误信息。
4、读取用户证书接口
Figure BDA0001087248390000052
Figure BDA0001087248390000061
5、获取用户身份信息接口
Figure BDA0001087248390000062
S3、添加WEB认证代理模块的HTML表单验证函数;该HTML表单验证函数模拟对外提供GET和POST两种调用方式;以GET方式交互时,请求数据位于URL中。以POST方式交互时,请求数据由表单提交。具体包括以下步骤:
1、定义HTML字符串常量模拟HTML表单提交
Figure BDA0001087248390000063
Figure BDA0001087248390000071
2、接收模拟HTML表单提交的数据
通过表单数据接收函数,可以将通过HTML表单提交的GET和POST数据存储到get_html_var函数的第三个参数中,将该参数代入到客户端接口中,可完成:
(1)接收“验证PIN码”数据
get_html_var(conn,"cmd",cmd,sizeof(cmd));
get_html_var(conn,"PIN",PIN,sizeof(PIN));
(2)接收“获取用户UID”数据
get_html_var(conn,"cmd",cmd,sizeof(cmd));
get_html_var(conn,"PIN",PIN,sizeof(PIN));
get_html_var(conn,"parseStr",parseStr,sizeof(parseStr));
S4、WEB认证代理模块进行对SAMBA用户身份认证:Web认证代理模块连接用户终端后,将第三方USBKEY设备的接口函数头文件加载,等待用户输入指令,当指令为“验证PIN码”时,WEB认证代理模块接收到上层通过POST或者GET方式下发的PIN码后,WEB认证代理模块通过动态库提供的验证口令接口进行代入认证,如果PIN码错误,则结束认证;如果PIN码正确,则调用读取用户证书接口函数,从用户终端证书载体设备中读取用户证书或CA证书,再调用获取用户身份信息接口,从而读出用户工号UID,将用户输入的SAMBA用户密码和获取到的用户工号UID作为参数传到SAMBA标准用户名和密码认证的接口中,当读取到用户工号UID后,再根据POST或者GET接收到的SAMBA用户密码进行“SAMBA认证”,如果打开SAMBA共享文件夹成功,则认证成功,LINUX操作系统客户端直接将SAMBA用户目录挂载到本地,windows操作系统客户端直接打开SAMBA用户目录;认证不成功,则结束。
其中,Web认证代理模块连接用户终端的过程为:Web认证代理模块启动一个主线程,主线程打开已经存储在Web认证代理模块的配置文件中配置好的端口,主线程一直监听该端口,只要有用户终端的连接请求到来,它就调用“连接处理”函数去处理连接请求,“连接处理”函数会进行预判,决定是否允许该连接,若判定连接请求不来自本用户终端,则拒绝,否则允许;如果允许,则调用“请求队列”函数并把处理工作交给它,“请求队列”函数也进行预判,判断连接队列是否已满,如果满了就等待直到有位置容纳请求,如果没有空闲进程且进程数量没有达到最大阈值,就启动一个新的工作进程去处理用户终端的请求。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (3)

1.一种基于第三方USBKEY设备的SAMBA身份认证方法,其特征在于,包括以下步骤:
S1、后台服务模块建立SAMBA用户:首先建立用户工号和用户密码,然后为该用户分配文件夹空间,并限定只有该工号的用户可以使用该文件夹空间,最后为SAMBA配置文件添加验证该工号用户的配置;
S2、进行WEB认证代理模块连接第三方USBKEY设备的初始化:首先将第三方USBKEY设备的驱动配置文件拷贝到配置目录下;然后将第三方USBKEY设备所带动态库拷贝到库目录下并保证智能卡服务运行;最后将第三方USBKEY设备“客户端接口说明”文档中用于实现WEB认证代理模块所需的接口添加到WEB认证代理模块中;
S3、添加WEB认证代理模块的HTML表单验证函数;该HTML表单验证函数模拟对外提供GET和POST两种调用方式;
S4、WEB认证代理模块进行对SAMBA用户身份认证:Web认证代理模块连接用户终端后,将第三方USBKEY设备的接口函数头文件加载,等待用户输入指令,当指令为“验证PIN码”时,WEB认证代理模块接收到上层通过POST或者GET方式下发的PIN码后,WEB认证代理模块通过动态库提供的验证口令接口进行代入认证,如果PIN码错误,则结束认证;如果PIN码正确,则调用读取用户证书接口函数,从用户终端证书载体设备中读取用户证书或CA证书,再调用获取用户身份信息接口,从而读出用户工号UID,将用户输入的SAMBA用户密码和获取到的用户工号UID作为参数传到SAMBA标准用户名和密码认证的接口中,当读取到用户工号UID后,再根据POST或者GET接收到的SAMBA用户密码进行“SAMBA认证”,如果打开SAMBA共享文件夹成功,则认证成功,LINUX操作系统客户端直接将SAMBA用户目录挂载到本地,windows操作系统客户端直接打开SAMBA用户目录;认证不成功,则结束。
2.如权利要求1所述的方法,其特征在于,所述“客户端接口说明”文档中用于实现WEB认证代理模块所需的接口包括:打开用户终端证书载体设备接口、关闭用户终端证书载体设备接口、验证口令接口、读取用户证书接口和获取用户身份信息接口。
3.如权利要求1或2所述的方法,其特征在于,步骤S4中,Web认证代理模块连接用户终端的过程为:Web认证代理模块启动一个主线程,主线程打开已经存储在Web认证代理模块的配置文件中配置好的端口,主线程一直监听该端口,只要有用户终端的连接请求到来,主线程就调用“连接处理”函数去处理连接请求,“连接处理”函数会进行预判,决定是否允许该连接,若判定连接请求不来自本用户终端,则拒绝,否则允许;如果允许,则调用“请求队列”函数并把处理工作交给主线程,“请求队列”函数也进行预判,判断连接队列是否已满,如果满了就等待直到有位置容纳请求,如果没有空闲进程且进程数量没有达到最大阈值,就启动一个新的工作进程去处理用户终端的请求。
CN201610705640.1A 2016-08-23 2016-08-23 基于第三方usbkey设备的samba身份认证方法 Active CN107770139B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610705640.1A CN107770139B (zh) 2016-08-23 2016-08-23 基于第三方usbkey设备的samba身份认证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610705640.1A CN107770139B (zh) 2016-08-23 2016-08-23 基于第三方usbkey设备的samba身份认证方法

Publications (2)

Publication Number Publication Date
CN107770139A CN107770139A (zh) 2018-03-06
CN107770139B true CN107770139B (zh) 2020-05-19

Family

ID=61264579

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610705640.1A Active CN107770139B (zh) 2016-08-23 2016-08-23 基于第三方usbkey设备的samba身份认证方法

Country Status (1)

Country Link
CN (1) CN107770139B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112600813B (zh) * 2020-12-08 2023-03-28 武汉卓尔信息科技有限公司 一种基于ukey的多应用统一认证方法
CN113672403B (zh) * 2021-07-30 2024-03-29 北京数码大方科技股份有限公司 信息系统中的接口调用方法及接口调用装置、管理信息系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102223409A (zh) * 2011-06-13 2011-10-19 浪潮(北京)电子信息产业有限公司 一种网络存储资源应用系统及方法
CN102340702A (zh) * 2010-07-23 2012-02-01 航天信息股份有限公司 IPTV网络播放系统及其基于USB Key的权限管理及解扰方法
CN102761559A (zh) * 2012-08-02 2012-10-31 上海上讯信息技术有限公司 基于私密数据的网络安全共享方法及通信终端
CN104639331A (zh) * 2015-02-04 2015-05-20 北京信安世纪科技有限公司 一种网络身份认证方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9100324B2 (en) * 2011-10-18 2015-08-04 Secure Crossing Research & Development, Inc. Network protocol analyzer apparatus and method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102340702A (zh) * 2010-07-23 2012-02-01 航天信息股份有限公司 IPTV网络播放系统及其基于USB Key的权限管理及解扰方法
CN102223409A (zh) * 2011-06-13 2011-10-19 浪潮(北京)电子信息产业有限公司 一种网络存储资源应用系统及方法
CN102761559A (zh) * 2012-08-02 2012-10-31 上海上讯信息技术有限公司 基于私密数据的网络安全共享方法及通信终端
CN104639331A (zh) * 2015-02-04 2015-05-20 北京信安世纪科技有限公司 一种网络身份认证方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Linux下Samba服务器的搭建-实现LINUX与WINDOWS之间文件共享;陆志烽;《科技信息》;20120930(第9期);第86页 *

Also Published As

Publication number Publication date
CN107770139A (zh) 2018-03-06

Similar Documents

Publication Publication Date Title
CN108804906B (zh) 一种用于应用登陆的系统和方法
US9053306B2 (en) Authentication system, authentication server, service providing server, authentication method, and computer-readable recording medium
US9584506B2 (en) Server apparatus, information processing method, program, and storage medium
CN104468550B (zh) 一种Windows桌面的用户登录方法、设备及系统
CN106506620A (zh) 一种云桌面智能终端管理系统
US20120173731A1 (en) System and method for starting cloud computing service according to user location
CN105162774B (zh) 虚拟机登录方法、用于终端的虚拟机登录方法及装置
CN109711845B (zh) 一种基于SaaS模式银企互联对接方法及系统
CN107241306B (zh) 一种人机识别方法、服务端、客户端及人机识别系统
US20160098791A1 (en) Method, terminal and system for resetting payment password
CN113347163B (zh) 单点登录方法、装置、设备及介质
CN107770139B (zh) 基于第三方usbkey设备的samba身份认证方法
CN107483477B (zh) 账户管理方法及账户管理系统
US9621349B2 (en) Apparatus, method and computer-readable medium for user authentication
CN107645474B (zh) 登录开放平台的方法及登录开放平台的装置
CN112202813B (zh) 网络访问方法及装置
JP2012118833A (ja) アクセス制御方法
KR20120067105A (ko) 본인확인이 가능한 소셜 인증 로그인 시스템 및 그 제공방법
EP2294868B1 (en) Seamless location aware network connectivity
JP5456842B2 (ja) ユーザ確認装置、方法及びユーザ認証システム
CN106878252A (zh) 建立免密登录关系的方法、清除账号的方法及其装置
US20190089541A1 (en) Configuration updates for access-restricted hosts
CN107172082B (zh) 一种文件共享方法及系统
CN110430211B (zh) 一种虚拟化云桌面系统及操作方法
JP2013251000A (ja) ユーザ確認装置、方法及びプログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant