验证方法和系统的制作方法

文档序号:9474034阅读:317来源:国知局
验证方法和系统的制作方法
【技术领域】
[0001] 本发明涉及计算机技术领域,尤其涉及一种验证方法和系统。
【背景技术】
[0002] 许多应用场景下都需要验证用户是否为"真实的人类",验证码就是一种当前行之 有效的区分用户是计算机和人的公共自动程序。用户需要解答网站服务方提出的验证问题 才会被终端认为是人类并继续享受服务。实践证明,基于验证码的验证方法可以极大程度 降低恶意暴力破解密码、刷票、论坛灌水、刷页等常见的网络安全风险。
[0003] 读写验证码是一种最常见的验证码,通常是由服务方提供一张含有字符串的图 片,要求用户输入字符串的内容,字符串中可包含大小写字母、数字、汉字、数据公式等中的 至少一种,字符串的长度可随机或固定。由用户阅读提供的素材,并输入相应的内容,再传 回服务器进行验证。
[0004] 读写验证码的一种变形是听写验证码,是由服务器提供一段音频给用户,用户理 解音频的内容并将其记录下来传回服务器进行验证。但是,不管是读写验证码还是听写验 证码,都需要用户输入文字,容易受到码工的攻击。码工是指专门进行验证码手工输入的 人,熟练的码工具有非常高的输入效率(百毫秒级别),对系统的可用性造成严重影响。
[0005] 由此,提出了一种听说验证码。听说验证码是指在使用时,向用户播放一段具有文 字内容的音频,要求用户对着麦克风重复这段音频,服务器对采集到的这段音频进行验证。 但是,对于听说验证码来说,最简单的破解方法就是重放攻击,也就是将下发的原始音频直 接作为用户音频返回给服务器,以此欺骗服务器而通过验证。
[0006] 传统的防止重放攻击的方法通常是使用音频的信息摘要值进行过滤。例如,服务 器在接收到用户音频时,获取用户音频的MD5值,若与下发的原始音频的MD5值相同,则验 证不通过。然而,可以通过对音频进行简单的编辑就可以绕过这种过滤,从而不能得到很好 的过滤效果。因此,传统的这种验证方法被破解的几率仍很高。

【发明内容】

[0007] 基于此,有必要针对上述技术问题,提供一种能有效防止重放攻击的验证方法和 系统。
[0008] 一种验证方法,所述方法包括:
[0009] 获取待验证首频;
[0010] 检测所述待验证音频中是否存在水印,若是,则拒绝验证,否则
[0011] 检测所述待验证音频中的内容是否与对应的原始音频中的内容一致,若是,则验 证通过,否则验证不通过。
[0012] -种验证系统,所述系统包括:
[0013] 第一获取模块,用于获取待验证音频;
[0014] 水印检测模块,用于检测所述待验证音频中是否存在水印;
[0015] 验证模块,用于当所述水印检测模块检测到所述待验证音频中存在水印时,则拒 绝验证,当所述水印检测模块检测到所述待验证音频中不存在水印时,则检测所述待验证 音频中的内容是否与对应的原始音频中的内容一致,若是则验证通过,否则验证不通过。 [0016] 上述验证方法和系统,通过检测待验证音频是否存在水印,如果存在,则表明很可 能将下发的原始音频直接作为用户音频进行返回的,直接拒绝验证,只有当待验证音频中 不存在水印时,再检测待验证音频中的内容是否与对应的原始音频中的内容一致,若是,则 验证通过,否则验证不通过。该方法和系统能有效防止重放攻击,降低了听说验证码被破解 的几率。
【附图说明】
[0017] 图1为一个实施例中验证方法的应用环境图;
[0018] 图2为一个实施例中验证方法的流程示意图;
[0019] 图3为一个实施例中下发原始音频的流程示意图;
[0020] 图4为一个实施例中对原始音频添加水印的流程示意图;
[0021] 图5为一个实施例中检测待验证音频中的水印的流程示意图;
[0022] 图6为一个实施例中验证系统的结构框图;
[0023] 图7为另一个实施例中验证系统的结构框图;
[0024] 图8为一个实施例中水印添加模块的结构框图;
[0025] 图9为一个实施例中水印检测模块的结构框图;
[0026] 图10为一个实施例中运行验证方法的服务器的结构示意图。
【具体实施方式】
[0027] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。
[0028] 本发明实施例所提供的验证方法可应用于如图1所示的环境中。请参考图1所示, 终端20通过网络30与音频下发服务器40和验证服务器50进行交互,用户10使用终端向 某些应用对应的应用服务器请求数据时,音频下发服务器40随机选择一段原始音频,对原 始音频添加水印后,通过网络30下发原始音频给终端20,每个原始音频具有唯一的编号。 用户10通过终端20听取接收到的原始音频,终端20再通过麦克风等音频输入设备接收用 户10输入的音频(即待验证音频),终端20通过网络30将待验证音频和对应的原始音频 的编号发送到验证服务器50进行验证,验证服务器50接收到待验证音频,检测待验证音频 中是否存在原始音频中添加的水印,如果存在,则表明终端20发送的待验证音频实际上就 是原始音频,验证服务器50拒绝验证,从而防止了重放攻击。当验证服务器50检测到待验 证音频中不存在水印,再进一步检测待验证音频中的内容与对应的原始音频中的内容是否 一致,如果一致,说明用户10通过终端20输入的音频正确,验证通过,否则验证不通过。可 以理解,音频下发服务器40和验证服务器50可以为同一服务器,由一个服务器来负责下发 原始音频和对上传的音频进行验证。
[0029] 在一个实施例中,如图2所示,提供了一种验证方法,该验证方法可应用于服务器 端,也可以应用于终端,本实施例以该验证方法应用于服务器端进行举例说明,该方法具体 包括:
[0030] 步骤202,获取待验证音频。
[0031] 本实施例中,终端向服务器发送数据请求,在请求一些数据时,服务器需对使用终 端的用户进行验证,服务器可自动随机选择一段原始音频,对该原始音频添加水印,并将添 加了水印的原始音频和该音频对应的唯一编号下发给终端。终端的用户听取音频,通过麦 克风等设备接收用户输入的音频(即待验证音频),与原始音频的编号一起发送到服务器。
[0032] 在对原始音频添加水印时,可利用人耳的掩蔽特性,在原始音频的DCT (Discrete Cosine Transform,离散余弦变换)域内选择低频或中频系数添加水印,所添加的水印可以 是二值图像,具有更强的视觉直观性。原始音频内容可将所添加的水印掩蔽,使得人耳只能 听到原始音频的内容,不会影响用户对音频内容的理解。
[0033] 步骤204,检测待验证音频中是否存在水印,若是,则进入步骤206,否则进入步骤 208。
[0034] 本实施例中,可根据获取的原始音频的编号获取对应的原始音频,由于原始音频 中已添加了水印,利用原始音频作为先验信息可检测待验证音频中是否存在添加到原始音 频中的水印,如果存在,则表明接收到的音频就是原始音频。
[0035] 步骤206,拒绝验证。
[0036] 步骤208,检测待验证音频中的内容是否与对应的原始音频中的内容一致,若是, 则验证通过,否则验证不通过。
[0037] 如果待验证音频中不存在水印,表明获取到的待验证音频不是原始音频,可对待 验证音频进行语音识别,识别出其中的内容,然后判断是否与原始音频中的内容一致,若一 致,则表明输入的音频是正确的,验证通过,否则验证不通过。
[0038] 本实施例中,当待验证首频中存在水印,则拒绝验证,只有当待验证首频中不存在 水印时,再检测待验证音频中的内容是否与对应的原始音频中的内容一致,若是,则验证通 过,否则验证不通过。该方法和系统能有效防止重放攻击,降低了听说验证码被破解的几 率。
[0039] 在一个实施例中,如图3所示,在接收待验证音频的步骤之前,还包括:
[0040] 步骤302,获取原始音频。
[0041] 步骤304,对原始音频添加水印。
[0042] 步骤306,下发添加水印后的原始音频。
[0043] 本实施例中,服务器每次向终端下发原始音频之前,都对原始音频添加水印,水印 可以是二值图像,在添加二值图像到一维的数字原始音频之前,可对二值图像进行降维处 理得到一维序列,对一维序列进行置乱,在添加到原始音频中。这样,每次添加了水印了原 始音频都会有所区别,每次下发的原始音频的MD5都不一致,可以有效抵御对原始音频的 简单编辑,从而进一步降低了听说验证码被破解的可能性。
[0044] 进一步的,如图4所示,在一个实施例中,对原始音频添加水印的步骤,包括:
[0045] 步骤314,区分原始音频的语音段和静音段。
[0046] 具体的,可采用话音激活检测(VAD,voice activity detection)来区分原始音频 的语音段和静音段。话音激活检测采用的是对数似然比和谱熵相结合的方法。
[0047] 在一个实施例中,将频点k处的似然比定义为:
[0049] 其中,Yk表示后验信噪比,表示先验信噪比。
[0050] 判决准则为:
[0052] 其中,η为预设的阈值,L表示帧长,氏表示语音,H。表示非语音。该判决准则的 含义为:将对数似然比l〇gAk与阈值η相比,当l〇gAk大于η阈值时,则判决当前帧为语 音帧氏,否则为非语音帧Η。。
[0053] 定义第k帧的谱熵为:
[0055] 其中,
Yk为后验信噪比,N为傅立叶变换长度,即窗长。
[0056] 将噪声帧内谱熵的
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1