【中检在线-注册安全分析报告】

前言

由于网站注册入口容易被黑客攻击,存在如下安全问题:

1. 暴力破解密码,造成用户信息泄露

2. 短信盗刷的安全问题,影响业务及导致用户投诉

3. 带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞

所以大部分网站及App 都采取图形验证码或滑动验证码等交互解决方案, 但在机器学习能力提高的当下,连百度这样的大厂都遭受攻击导致点名批评, 图形验证及交互验证方式的安全性到底如何? 请看具体分析

一、 中检在线PC 注册入口

简介:"中检在线"隶属于中国检验认证(集团)有限公司,是中检集团的统一对外线上服务平台。"中检在线"致力于为客户提供高效、便捷的线上业务办理方式。平台提供在线下单、在线咨询、证书查询验真等功能,实现了中检集团业务互联网化,从客户下单、业务受理、证书查询,到开票申请、票据下载,实现全业务流程闭环操作。

二、 安全性分析报告:

中检在线采用的是自己研发的滑动验证码,容易被模拟器绕过甚至逆向后暴力攻击,滑动拼图识别率在 95% 以上。

三、 测试方法:

1 模拟器交互部分

java 复制代码
private static String INDEX_URL = "https://online.ccic.com/register";

	@Override
	public RetEntity send(WebDriver driver, String areaCode, String phone) {
		try {
			RetEntity retEntity = new RetEntity();
			driver.get(INDEX_URL);

			// 1 姓名
			WebElement nameElement = driver.findElement(By.xpath("//input[contains(@placeholder,'请输入姓名')]"));
			nameElement.sendKeys("Abc123456");

			// 2 输入手机号
			WebElement phoneElement = driver.findElement(By.xpath("//input[contains(@placeholder,'请输入手机号')]"));
			phoneElement.sendKeys(phone);
			phoneElement.getAttribute("src");

			// 3 点击获取验证码
			Thread.sleep(1000);
			WebElement buttonElement = driver.findElement(By.xpath("//button/span[text()='获取验证码']"));
			((JavascriptExecutor) driver).executeScript("arguments[0].click();", buttonElement);

			// 滑动 1 获取带阴影的背景图
			Thread.sleep(1000);
			WebElement bigElement = ChromeDriverManager.waitElement(driver, By.xpath("//img[@class='slide-canvas']"), 400);
			String bigBase64 = bigElement.getAttribute("src");
			byte[] bigBytes = (bigBase64 != null) ? GetImage.imgStrToByte(bigBase64) : null;
			int bigLen = (bigBytes != null) ? bigBytes.length : 0;
			// 滑动 2 获取小图
			WebElement smallElement = ChromeDriverManager.waitElement(driver, By.xpath("//img[@class='slide-block']"), 1);
			String smallBase64 = smallElement.getAttribute("src");
			byte[] smallBytes = (smallBase64 != null) ? GetImage.imgStrToByte(smallBase64) : null;
			// 滑动 3 计算匹配到的位置
			String ckSum = GenChecksumUtil.genChecksum(bigBytes);
			Map<String, Double> openResult = cv2.getOpenCvDistance(ckSum, bigBytes, smallBytes, "Ccic", 0);
			if (openResult == null || openResult.size() < 2) {
				System.out.println("ckSum=" + ckSum + "->openResult=" + openResult);
				return null;
			}

			Double tpLeft = openResult.get("tpLeft");
			Double minX = openResult.get("minX");

			BigDecimal disD = new BigDecimal((minX - tpLeft) * 1.08).setScale(0, BigDecimal.ROUND_HALF_UP);
			int distance = disD.intValue();
			if (distance == 0) {
				System.out.println("err distance=" + distance);
				return null;
			}
			// 滑动 4 移动轨迹
			WebElement moveElemet = ChromeDriverManager.waitElement(driver, By.id("slider-button"), 20);
			ActionMove.move(driver, moveElemet, distance);

			String msg = (buttonElement != null) ? buttonElement.getText() : null;
			retEntity.setMsg(msg);
			if (msg != null && msg.contains("秒后重新获取")) {
				retEntity.setRet(0);
			}
			return retEntity;
		} catch (Exception e) {
			logger.error("phone=" + phone + ",e=" + e.toString());
			for (StackTraceElement ele : e.getStackTrace()) {
				System.out.println(ele.toString());
			}
			return null;
		} finally {
			driver.manage().deleteAllCookies();
		}
	}

2 测试结果输出:

3. 图片比对结果测试样例:

四丶结语

"中检在线"隶属于中国检验认证(集团)有限公司,是中检集团的统一对外线上服务平台。"中检在线"致力于为客户提供高效、便捷的线上业务办理方式。平台提供在线下单、在线咨询、证书查询验真等功能,实现了中检集团业务互联网化,从客户下单、业务受理、证书查询,到开票申请、票据下载,实现全业务流程闭环操作。作为国子头的官方认证企业,技术实力雄厚,但好像对短信被盗刷的方面不够重视或没有安全方面的经验 ,公司研发的滑动验证产品, 在一定程度上提高了用户体验, 不过随着图形识别技术及机器学习能力的提升,所以在网上破解的文章和教学视频也是大量存在,并且经过验证的确有效, 所以除了滑动验证方式, 花样百出的产品层出不穷,但本质就是牺牲用户体验来提高安全。

很多人在短信服务刚开始建设的阶段,可能不会在安全方面考虑太多,理由有很多。

比如:" 需求这么赶,当然是先实现功能啊 "," 业务量很小啦,系统就这么点人用,不怕的 " , " 我们怎么会被盯上呢,不可能的 "等等。

有一些理由虽然有道理,但是该来的总是会来的。前期欠下来的债,总是要还的。越早还,问题就越小,损失就越低。

所以大家在安全方面还是要重视。(血淋淋的栗子!)#安全短信#

戳这里→康康你手机号在过多少网站注册过!!!

谷歌图形验证码在AI 面前已经形同虚设,所以谷歌宣布退出验证码服务, 那么当所有的图形验证码都被破解时,大家又该如何做好防御呢?

>>相关阅读
《腾讯防水墙滑动拼图验证码》
《百度旋转图片验证码》
《网易易盾滑动拼图验证码》
《顶象区域面积点选验证码》
《顶象滑动拼图验证码》
《极验滑动拼图验证码》
《使用深度学习来破解 captcha 验证码》
《验证码终结者-基于CNN+BLSTM+CTC的训练部署套件》

相关推荐
Coder_Boy_2 小时前
技术发展的核心规律是「加法打底,减法优化,重构平衡」
人工智能·spring boot·spring·重构
会飞的老朱4 小时前
医药集团数智化转型,智能综合管理平台激活集团管理新效能
大数据·人工智能·oa协同办公
聆风吟º5 小时前
CANN runtime 实战指南:异构计算场景中运行时组件的部署、调优与扩展技巧
人工智能·神经网络·cann·异构计算
Codebee7 小时前
能力中心 (Agent SkillCenter):开启AI技能管理新时代
人工智能
聆风吟º8 小时前
CANN runtime 全链路拆解:AI 异构计算运行时的任务管理与功能适配技术路径
人工智能·深度学习·神经网络·cann
Hello.Reader8 小时前
Flink ZooKeeper HA 实战原理、必配项、Kerberos、安全与稳定性调优
安全·zookeeper·flink
uesowys8 小时前
Apache Spark算法开发指导-One-vs-Rest classifier
人工智能·算法·spark
AI_56788 小时前
AWS EC2新手入门:6步带你从零启动实例
大数据·数据库·人工智能·机器学习·aws
User_芊芊君子8 小时前
CANN大模型推理加速引擎ascend-transformer-boost深度解析:毫秒级响应的Transformer优化方案
人工智能·深度学习·transformer
智驱力人工智能9 小时前
小区高空抛物AI实时预警方案 筑牢社区头顶安全的实践 高空抛物检测 高空抛物监控安装教程 高空抛物误报率优化方案 高空抛物监控案例分享
人工智能·深度学习·opencv·算法·安全·yolo·边缘计算