当前位置: 首页 > news >正文

验证码安全志:AIGC+集成环境信息信息检测

目录

知己知彼,黑灰产破解验证码的过程

AIGC加持,防范黑灰产的破解

魔高一丈,黑灰产+AIGC突破常规验证码

双重防护,保障验证码安全


黑灰产经常采用批量撞库方式登录用户账号,然后进行违法违规操作。

黑灰产将各种方式窃取账号密码导入批量登录软件,登录软件自动尝试账号登录。邮箱服务器检测到异常登录请求,会下发验证码进行安全验证,但是黑灰产能够自动破解简单验证码,完成撞库登录过程。整个过程完全自动化操作,无需人工干预,就这样,用户的大批账号就被冒名登录了。

为了防止验证码被识别、破解、绕过,很多平台和服务在验证码加入干扰,比如采用了非常复杂的验证码:歪斜的字母汉字、复杂的图形、转瞬即变内容等。以12306为例,提供了多达接近600种图形验证码,再经过排列组合,总共有多达300000种。一次性输入准确的比例仅仅是8%,两次输入准确比例27%,三次以上输入准确的比例才勉强超过60%。

原则上验证码是越复杂越好,但是凡事都有张有弛。验证码的本质,是让操作者证明是人而不是机器人,而随着验证码越来越难,用户正常操作的门槛也越来越高。复杂的验证码确实能够降低黑灰产破解,却也增加用户识别难度,将用户也阻挡在外,导致用户纷纷吐槽。

图片


知己知彼,黑灰产破解验证码的过程

要防止黑灰产破解验证码,必须了解其破解的过程。黑灰产破解验证码主要是基于验证资源的穷举以及识别,也就是通过抓取验证码图库的图片,然后进行标注,由此破解验证码。目前黑灰产运用目前最流行的人工智能技术训练,大大提高了识别验证码的速度。

以下是一个描述基于网络爬虫和图像识别技术的验证码破解过程的简要步骤:

第一步,制作网络爬虫工具,通过访问各个验证码技术平台,爬取验证码的图片素材。网络爬虫可以快速收集大量的验证码样本,为后续的模型训练和识别提供数据支持。

第二步,生成验证码图片素材的模型库。根据不同类型的验证码,如旋转、滑动、拼图等,生成相应的模型库。这些模型库包含有关验证码的特征信息,以便后续的验证码识别过程中进行比对。

第三步,识别验证码类型。在遇到需要破解的验证码时,程序迅速分析验证码的特征,确定其属于滑动、拼接、点选、旋转或计算等类型的验证码。这一步骤为后续的处理提供了方向和依据。

第四步,使用相似度算法检索之前构建的验证码模型库,快速定位到相似的图片。通过比对目标验证码与模型库中的样本,系统可以找到最相似的图片,并为后续操作提供参考。

图片

第五步,模拟人类操作。根据验证码类型和识别结果,程序模拟人类的操作行为,进行旋转、滑动、选择、计算或拼接操作,将图片调整至目标角度。这一步骤需要模拟各种可能的验证码操作,以达到绕过验证码核验的目的。

第六步,欺骗验证码核验,获得通过凭证。通过前面几步的处理,系统成功绕过验证码的安全机制,并获得了通过验证的凭证。这使得攻击者可以继续访问受限资源或执行其他恶意操作。

图片


AIGC加持,防范黑灰产的破解

验证码要做好防守,必须针对黑灰产破解的时效性和高效性特点展开。通过高频率的生产图片保证新的验证图片实时更新,从根源上杜绝打码平台拖库。

AIGC,全名“AI generated content”,又称生成式AI,意为人工智能生成内容,具有文本续写,文字转图像、数字主持人等应用。其原理是利用人工智能技术中的自然语言处理、机器学习、深度学习等技术,对大量的语言数据进行分析、学习和模拟,从而实现对自然语言的理解和生成。

图片

集成AIGC的顶象无感验证能够无限生产验证图片。通过AIGC能够文本描述快速生成无限量的图像素材,使得基于遍历图库的破解方式失效,大大增强验证码的破解难度。而且AIGC能够根据企业业务场景,生成个性化定制验证码图片。在拼图、旋转、滑动等验证方式下,如果无法得知预先的验证图片,就无法完成破解。

此外,利用AIGC,顶象无感验证更创造出一些对用户友好、机器识别难度较高的新型验证码。例如,常见的滑块验证码,由于为了保证有足够识别度,目标缺口的像素与周围的像素需要有一些差异,因而往往非常容易识别,进而轻易判断出滑块的目标位置,因而安全性并不高。利用AIGC,可以设计出没有缺口的滑块验证码,要判断出目标位置需要理解图像的语义,由此增加黑灰产的破解难度。

图片


魔高一丈,黑灰产+AIGC突破常规验证码

AIGC技术能够生成海量图片,且有一定随机性且不可逆,使攻击者打标训练成本可增加10倍以上,虽然大幅增加机器破解的难度。但是黑灰产也可以基于AI进行破解,只是成本增加。

基于AIGC,黑灰产不再需要采集验证码厂商的图库并打标,就能训练模型识别各种艺术字。

具体来说,黑灰产可以利用AIGC自动生成大量汉字对应的各种样式的艺术字,作为数据集训练模型,使该模型能够非常鲁棒地识别任何风格的艺术字。也许在不久的将来,艺术字验证码这种验证方式将完全失效。由此,进一步推动验证码企业提升验证方式的安全性和对抗性。

图片


双重防护,保障验证码安全

除了AIGC的加持,顶象验证码基于验证环境信息进行防御,通过生产无穷的验证图片+对环境信息进行验证,双重保障验证码安全。

图片

首先,源源不断得新验证图片,极大增加了黑灰产的识别与破解成本。同时提升验证要素识别难度。基于深度学习和神经网络,生成一些难以被预测和重复的图片、元素,并在验证过程中加入时间戳或者随机数等动态变化的因素,增加破解的难度,有效抵御机器破解。

其次,集成实时流计算及场景策略结合机器学习训练的人机模型、历史数据的关联分析,通过图形算法和AI模型,对用户产生的行为轨迹数据进行机器学习建模,结合访问频率、地理位置、历史记录等多个维度信息,快速、准确得返回人机判定结果。在验证码的验证环节采集有辨识度的环境信息,配置规则和策略来,筛选出可能是黑灰产的请求进行二次验证或拦截。例如,判断完成验证时的验证环境信息和token上报时的验证环境信息是否一致,对多次恶意攻击的IP地址进行拦截,限制验证码输入的次数等。

验证码作为人机交互界面经常出现的关键要素,是身份核验、防范风险、数据反爬的重要组成部分,广泛应用网站、App上,在注册、登录、交易、交互等各类场景中发挥着巨大作用,具有真人识别、身份核验的功能,在保障账户安全方面也具有重要作用,由此也成为黑灰产攻克破解的重要目标。为了破解验证码,黑灰产利用各种技术和手段快速批量快速破解,以满足批量注册、批量登录、恶意盗取等不法操作的需要。

相关文章:

验证码安全志:AIGC+集成环境信息信息检测

目录 知己知彼,黑灰产破解验证码的过程 AIGC加持,防范黑灰产的破解 魔高一丈,黑灰产AIGC突破常规验证码 双重防护,保障验证码安全 黑灰产经常采用批量撞库方式登录用户账号,然后进行违法违规操作。 黑灰产将各种方…...

R-Meta分析教程

详情点击链接:R-Meta模型教程 一:Meta分析的选题与文献计量分析CiteSpace应用 1、Meta分析的选题与文献检索 1)什么是Meta分析? 2)Meta分析的选题策略 3)文献检索数据库 4)精确检索策略,如何检索全、检索准 5)文献的管理与…...

【3维视觉】3D空间常用算法(点到直线距离、面法线、二面角)

3D空间点到直线的距离 3D空间点到直线的距离 3D空间的曲率 三维空间有三个基本元素,点,线,面。那么曲率是如何定义的呢? 点的曲率? 线的曲率? 面的曲率? 法曲率 设曲面上的曲线在某一点处的切…...

Nodejs 第四章(Npm install 原理)

在执行npm install 的时候发生了什么? 首先安装的依赖都会存放在根目录的node_modules,默认采用扁平化的方式安装,并且排序规则.bin第一个然后系列,再然后按照首字母排序abcd等,并且使用的算法是广度优先遍历,在遍历依…...

[深度学习] GPU处理能力(TFLOPS/TOPS)

计算能力换算 理论峰值 = GPU芯片数量GPU Boost主频核心数量*单个时钟周期内能处理的浮点计算次数 只不过在GPU里单精度和双精度的浮点计算能力需要分开计算,以最新的Tesla P100为例: 双精度理论峰值 = FP64 Cores *…...

js:获取浏览器默认语言

实现代码 navigator.language zh-CN参考文章 [javascript] js如何获取浏览器的语言...

【U8+】用友U8重新注册加密锁,提示:写卡失败,请重新配置客户端控件。

【问题描述】 用友U8软件重新安装后,需要重新注册加密锁激活软件。 注册反馈提示:产品注册失败。 原因(1):写卡失败,请重新配置客户端控件。 【解决方法】 1、打开控制面板,网络和 Internet&a…...

uniapp小程序console.log在微信开发者工具中不打印问题

最近在开发一款uniapp小程序,发现console.log在微信开发者工具中不打印,但在H5页面就能够有打印输出,于是在网上寻找原因… 主要是由于vue.config.js文件中有设置发布时删除console的配置,如下: 官网参考地址&#x…...

从零基础开始开发自己的第一个微信小程序

文章目录 内容介绍小程序开发步骤注册微信小程序账号下载开发工具搭建开发环境创建工程编写代码手机上查看效果 工程里的文件作用介绍总结 内容介绍 通过本篇blog,你可以熟悉从零开始,搭建小程序开发环境,并运行起自己的第一个小程序。 小程…...

无涯教程-Lua - Arrays(数组)

数组是对象的有序排列,可以是包含行集合的一维数组,也可以是包含多行和多列的多维数组。 在Lua中,数组是使用带有整数的索引表实现的。数组的大小不是固定的,并且可以根据无涯教程的要求(取决于内存限制)来增长。 一维数组 一维…...

0基础学习VR全景平台篇 第76篇:全景相机-圆周率全景相机如何直播推流

圆周率科技,成立于2012年,是中国最早投身嵌入式全景算法研发的团队之一,亦是全球市场占有率最大的全景算法供应商。相继推出一体化智能屏、支持一键高清全景直播的智慧全景相机--Pilot Era和Pilot One,为用户带来实时畅享8K的高清…...

超详细|ChatGPT论文润色教程

本文讲述使用中科大开源ChatGPT论文辅助工具,对论文进行润色 祝看到本教程的小伙伴们都完成论文,顺利毕业。 可以加QQ群交流,一群: 123589938 第一章 介绍 今天给大家分享一款非常不错的ChatGPT论文辅助工具,使用了专…...

MMDeploy安装、python API测试及C++推理

服务器配置如下: Cuda版本:11.1 Cudnn版本:8.2.0 显卡版本:RTX3090 使用转换脚本将.pth模型转换为ONNX格式 python mmdeploy/tools/deploy.py \mmdeploy/configs/mmdet/detection/detection_onnxruntime_dynamic.py \mmdetect…...

[openCV]基于拟合中线的智能车巡线方案V3

import cv2 as cv import os import numpy as np# 遍历文件夹函数 def getFileList(dir, Filelist, extNone):"""获取文件夹及其子文件夹中文件列表输入 dir:文件夹根目录输入 ext: 扩展名返回: 文件路径列表"""newDir d…...

vite+typescript项目 :找不到模块“./***.vue”或其相应的类型声明——解决方案

vue3ts报错&#xff1a; 找不到模块“./App.vue”或其相应的类型声明。ts(2307) 解决方法&#xff1a; 1、在src文件夹找到 vite-env.d.ts 加入以下代码&#xff1a; declare module *.vue {import type { DefineComponent } from vueconst vueComponent: DefineComponent<…...

Gradio-YOLOv5-YOLOv7 搭建Web GUI

目录 0 相关资料&#xff1a;1 Gradio介绍2 环境搭建3 GradioYOLOv54 GradioYOLOv75 源码解释 0 相关资料&#xff1a; Gradio-YOLOv5-Det&#xff1a;https://gitee.com/CV_Lab/gradio_yolov5_det 【手把手带你实战YOLOv5-入门篇】YOLOv5 Gradio搭建Web GUI: https://www.bi…...

HTML模板生成word,pdf文档

1.获取html模板 public static void main(String[] args) {String htmlContent getHtmlFileContent(templateName,dataMap);String exportType "pdf";if (exportType.equals("pdf")){convertToPdf(htmlContent,filePath);}else {exportWord(htmlContent…...

ssl单向证书和双向证书校验测试及搭建流程

零、前提准备 首先了解下HTTP和HTTPS的区别&#xff1a; HTTPS与HTTP有什么不同&#xff1f; HTTP是过去很长一段时间我们经常用到的一种传输协议。HTTP协议传输的数据都是未加密的&#xff0c;这就意味着用户填写的密码、账号、交易记录等机密信息都是明文&#xff0c;随时…...

【2种方法,jmeter用一个正则提取器提取多个值!】

jmeter中&#xff0c;用json提取器&#xff0c;一次提取多个值&#xff0c;这个很多人都会。但是&#xff0c;用正则提取器一次提取多个&#xff0c;是否可以呢&#xff1f; 肯定&#xff0c;很多人都自信满满的说&#xff0c;可以&#xff01;形如&#xff1a;token":&q…...

012-堆,结构体

012-堆,结构体 堆空间的申请和释放 堆空间特点? ​ 栈空间的特点是,自动申请自动释放 ​ 堆空间由用户自己主动申请,主动释放 ​ 利用函数malloc进行堆空间的申请 ​ 利用函数free进行堆空间使用完毕后的释放 问题: ​ 局部变量的存储空间在栈区; ​ 全局变量的存储空…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...

JVM 内存结构 详解

内存结构 运行时数据区&#xff1a; Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器&#xff1a; ​ 线程私有&#xff0c;程序控制流的指示器&#xff0c;分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述&#xff1a;指针 vs. 引用&#xff08;类比其他语言&#xff09;一、指针基础概念二、指针声明与初始化三、指针操作符1. &&#xff1a;取地址&#xff08;拿到内存地址&#xff09;2. *&#xff1a;解引用&#xff08;拿到值&#xff09; 四、空指针&am…...