如何防范 AI 盗取你的密码
现如今,随着人工智能(AI)应用的普及和快速迭代,几乎任何人都可以轻而易举地利用AI进行密码破解之类的攻击。这已经引起了业界的担忧。下面,我将围绕着:密码破解究竟意味着什么,基于AI的密码猜测技术,以及我们该如何保护自己的密码免受此类攻击这三个方面展开讨论。
破解密码意味着什么?
长期以来,密码始终是网络攻击者关注的焦点。他们只需获取密码,就能绕过所有的安全系统,攫取整个系统的相关信息,及其存储在其中的所有数据。
让我们先来了解一下与密码破解有关的散列(哈希,hashing)概念。密码散列是一种通过更改原始记录中的数字,来安全地存储用户密码的方法。其过程为:对用户的真实密码(通常为纯文本)进行数学计算处理,以输出固定长度的加密散列值。例如,您在登录某个网站时将密码设置为“secret_password123”,那么该网站的预定义散列函数会根据该输入的数据,生成类似“3a5b9c1d8e7f2b6g”的特定散列输出。换句话说,您在该网站数据库中留存的数据记录将是“3a5b9c1d8e7f2b6g”,而不是“secret_password123”。对此,如果网络攻击者劫持了该网站的数据库,他们就不得不通过计算“3a5b9c1d8e7f2b6g”值,来逆向推导出您的真实密码。然而,散列(哈希)算法的一个特点便是单向性。这会使得密码的破解过程变得相当复杂。不过,随着AI的赋能,黑客如今已可以采用多维度、不同的方法,去尝试着破解真实的散列密码。
AI能够破解密码吗?
凭借人工智能的快速计算、以及处理大型数据集的能力,网络攻击者能够据此,来缩短并破解某些由加密算法保护的密码。其中,最为典型的当属AI在密码破解过程中的学习能力。只要有足够的数据和时间被用来学习特定的加密算法,人工智能模型就能够学会理解和破解加密所用到的数学关系。可见,与普通的试错方法相比,人工智能可以更有效、更快速地破解密码。
除了机器学习,网络攻击者仍然可以借助人工智能,对密码开展暴力破解的攻击方式。此处的暴力破解是指,尝试所有可能的密码组合,以找到正确密码的过程。而人工智能完全可以优化该过程,以减少重复破解密码的尝试次数。
此外,人工智能还可以研究文本语言以及语法,成功地破解出那些基于自然语言的加密密钥。也就是说,利用人工智能的语言模型,网络攻击者可以更加高效地在密码分析中,使用基于频率分析的方式予以破解。
基于AI的密码猜测技术
密码的猜测往往直接涉及到各种数学方法。作为密码学研究领域的一个分支,密码分析最典型的方式莫过于历史上赫赫有名的英格玛密码(Enigma Code)。当然,人工智能也会用到如下以数学为基础的方式:
- 频率分析:它试图通过分析密文中字母或符号的出现频率,来猜测加密密钥或密码。通常,自然语言中的字母有着一定的频率分布规律,而经过加密后的文本字母也会出现类似的频率分布。这种规律的捕捉对于简单的加密算法而言,是特别有效的。
- 差分密码分析:这是发现块密码算法(block cipher algorithms)弱点的理想方法。该分析方法试图通过检查加密算法,在输入和输出之间的差异中,找到所使用的加密密钥。
- 线性和微分密码分析:它涉及到用于分析对称密钥加密算法的数学技术。该技术试图利用加密算法的线性方程、或差分方程,去发现加密密钥。
- 错误分析:在加密算法的实际执行过程中,系统极可能会出现各种潜在的错误,或是暴露出与安全相关的漏洞。该分析试图利用此类错误或漏洞,来伺机获取加密密钥。
- 随机性测试:由于加密算法的安全性主要取决于随机性,因此攻击者可以通过数学方法,来测试确定加密算法中使用到的随机性(其实是基于算法的“伪随机性”),以预测算法的输出结果。
- 特殊算法攻击:利用加密算法的相关知识和深入研究,网络攻击者可以发现某些典型算法的弱点,进而在此基础上开发出专门设计好的攻击方式。
上述密码分析方法不仅能够帮助到网络攻击者,也能够协助密码分析师,来评估正在使用、或已经采用的密钥算法的健壮程度。因此,它们对于密码安全的重要程度,是不言而喻的。
如何加强密码安全,防范人工智能攻击
鉴于网络攻击者可以将人工智能和密码破解技术结合起来发起攻击,普通用户又该如何采取行之有效的措施,来予以应对呢?
使用长而复杂的密码
许多人趋向使用简单的短语作为密码,以方便记忆。素不知,此举也方便了攻击者。对此,我们需要采用足够长的密码(至少12个字符),以应对简单的猜测攻击。
与此同时,密码中必须包含不同类型的字符,如:大、小写字母、数字和特殊字符等。例如,您不应该使用曾被认为神秘难测的“P@ssw0rd”之类的简单密码,而应当使用“Tr#78sF$a24pQ”这样在结构上更为复杂的密码。
如果您担心自己记不住长而复杂的密码的话,请使用一些功能强大的密码管理工具来协助您。当然,笔和纸这种老套的方式,并非毫无使用场景。
为每个平台设置不同的密码
许多人会在不同平台的多个账户中使用相同的密码。这种所谓的“图省事儿”往往潜藏着重大的安全风险。试想,如果网络攻击者获取了您其中一个账户的访问权限,那么他将轻而易举地访问您的其他账户。因此,我们需要通过为每个平台创建不同的密码的方式,来切断账户之间的联系。注意,此处所谓的“账户之间的联系”,不应只是简单地从一个应用的“password_1234”密码,更换为另一个应用的密码--“1235_password”,而是要尽量减少重复字符组合的出现频率。
使用双因素身份验证
双因素身份验证(Two-factor authentication,2FA)可以提供额外的安全保障。除了密码,2FA机制需要向您的手机、电子邮件或其他设备发送一串代码,以完成后续的身份验证。由于此举能够更好地保护您的账户免受恶意攻击,因此请确保您在主动支持 2FA 的平台上启用此项功能。
遵守密码更新和注销政策
定期更改密码有助于防范那些曾被用到过的密码被盗取,而不会波及到现有使用的密码。此外,请养成注销个人资料的习惯。此举将能够避免那些不再使用的设备、应用等在您毫不知情的状态下泄漏出去。
人工智能和网络安全的未来
人工智能技术的发展可谓日新月异。不只是技术专家和软件开发者正在积极探索AI的使用场景,让人类的生活更加轻松;也不乏黑客和恶意攻击者使用AI获取他人的密码,或达到其他不可告人的目的。针对如何防范AI盗取用户密码,希望上述简单实用的规避要点,能够给您提供帮助。
相关文章:

如何防范 AI 盗取你的密码
现如今,随着人工智能(AI)应用的普及和快速迭代,几乎任何人都可以轻而易举地利用AI进行密码破解之类的攻击。这已经引起了业界的担忧。下面,我将围绕着:密码破解究竟意味着什么,基于AI的密码猜测…...

华清远见第六课程作业day3
类 栈 #include <iostream>using namespace std;class Sta{ private:int *data;int top; public:Sta():data(new int(128)){top-1;cout<<"stack::无参构造:"<<endl;}~Sta(){delete data;cout<<"stack::析构函数:"<<this<…...
Rabbitmq配置定义
RabbitMQ 环境变量 RabbitMQ 的环境变量都是以"RABBITMQ_"开头的,可以在Shell 环境中设置,也可以在配置文件中定义。默认的配置文件如下: ## /etc/rabbitmq/rabbitmq-env.conf 定义配置文件: /va/lib/rabbitmq/ 的目…...
2023年数模国赛时间分配
2023年数模国赛时间分配 写在前面赛前准备第一天(9.7 18:00发布题目)第二天(9.8)第三天(9.9)第四天(9.10 20:00提交)总结 写在前面 国赛马上就要开始啦 今年的比赛时间是9月7日&…...

kubernetes(K8S)笔记
文章目录 大佬博客简介K8SDocker VS DockerDockerK8S简介K8S配合docker相比较单纯使用docker 大佬博客 Kubernetes(通常缩写为K8s)是一个用于自动化容器化应用程序部署、管理和扩展的开源容器编排平台。它的构造非常复杂,由多个核心组件和附加…...

vue 部署到本机IIS 部署 SPA 应用
安装 URL Rewrite Works With: IIS 7, IIS 7.5, IIS 8, IIS 8.5, IIS 10 URL Rewrite : The Official Microsoft IIS Site 目前电脑IIS是6版本的,以下的方法不太合适操作。目前用Nginx部署,够用了。 nginx配置参考: uni-app 前面项目&am…...
面试那些事——Java全栈
今年年初因为个人的精神状态和职业方向辞职休息了一段时间,最近重新找了一份开发的工作,还是在太原,在这里分享一下自己的一些面试经验。 面试,面的是什么 我们要知道,目标的就职地行业的需求是什么,目标的…...

LINUX 文件基本管理
一、文件类型和根目录结构 1、文件类型 可以通过 ls -l 或者 ll来查看文件类型 可以根据显示,查看第一个字符,就表示文件类型。 - 字符:普通文件,类似于Windows的记事本。 d 字符:目录文件,类似于Wind…...

一、认识GitHub项目 —— TinyWebServer
认识GitHub项目 —— TinyWebServer 一、前言 这个项目是Linux下C轻量级Web服务器。几乎是想从事C服务器开发方向的同学的必备初始项目了。属于那种,“烂大街”,但是你又不能不会的项目。 对这个项目笔者打算多分几章讲解,帮助刚用GitHub&a…...

66.C++多态与虚函数
目录 1.什么是多态 2.多态的分类 3.对象转型 3.1 向上转型: 3.2 向下转型: 4.虚函数 1.什么是多态 生活中的多态,是指的客观的事物在人脑中的主观体现。例如,在路上看到⼀只哈士奇,你可以看做是哈士奇…...
【ICer的脚本练习】通过perl脚本来检查仿真log的结果
系列的目录说明请见:ICer的脚本练习专栏介绍与全流程目录_尼德兰的喵的博客-CSDN博客 前言 这是一个非常简单的perl脚本示例,展示一下perl语言“极简”的编码习惯。perl是我脚本入门的语言,一度也是最擅长的,但是因为python的强势现在我基本不写perl了。上一个大的perl脚本…...

创邻科技图数据库课程走进一流高校
《图数据库原理和实践》 正式开课! 最近,浙江大学计算机学院新开了一门名为 《图数据库原理和实践》 的新课程,该课程由创邻科技和浙江大学联合推出,吸引了许多学生踊跃参与! 曾为浙大学子的创邻科技CTO周研博士作为…...

RabbtiMQ的安装与在Springboot中的使用!!!
一、安装Erlang与Rabbitmq 安装教程本教程是在centos8下试验的,其实linux系统的都差不多RabbitMQ官方:Messaging that just works — RabbitMQRabbitMQ是开源AMQP实现,服务器端用Erlang语言编写,Python、Ruby、 NET、Java、JMS、c…...

【可定制、转换时间戳】解析nc文件,并保存为csv文件
解析nc文件,并保存为csv文件 写在最前面解析nc文件(代码汇总放最后面)读取nc文件获取气象文件中所有变量解析时间解析部分代码汇总 写入csv文件 写在最前面 愿称之为:支持私人订制、非常完美的版本 参考: 解析部分参…...
介绍串行和并行两种通信方式
前言 参考文章: 串行和并行- CSDN搜索 并行传输和串行传输的区别_金陵大掌柜的博客-CSDN博客 串行和并行介绍 (1)串行和并行是计算机领域中两个重要的概念。串行是指在计算机中,任务按照顺序一个一个执行,每个任务执行…...

优化爬虫效率:利用HTTP代理进行并发请求
网络爬虫作为一种自动化数据采集工具,广泛应用于数据挖掘、信息监测等领域。然而,随着互联网的发展和网站的增多,单个爬虫往往无法满足大规模数据采集的需求。为了提高爬虫的效率和性能,我们需要寻找优化方法。本文将介绍一种利用…...
关于磁盘空间不够,导致报错 springboot内置tomcat相关的临时目录无法创建等问题,如何自定义配置 tomcat 缓存文件路径
问题 关于磁盘空间不够,导致报错 springboot内置tomcat相关的临时目录无法创建等问题,如何自定义配置 tomcat 缓存文件路径 解决方法: shell 脚本命令:(配置自定义缓存路径 java-Djava.io.tmpdir ) tmp…...
Android HAL - hidl-gen
1.hidl-gen的使用 hidl-gen 编译器会将 .hal 文件编译成一组 .h 和 .cpp 文件,这些 自动生成的文件用于编译客户端 / 服务端实现链接到的共享库,同 时也可以生成 Android.bp 编译文件。 1.1 生成的文件 HIDL 软件包中自动生成的文件会关联到与该软件…...
CGAL 数值类型
文章目录 一、简介二、内置数值类型三、CGAL提供的数值类型四、GMP提供的数值类型五、LEDA提供的数值类型六、CORE提供的数值类型七、区间运算参考资料一、简介 数字类型必须满足一定的语法和语义要求,这样它们才能在CGAL代码中成功使用。一般来说,它们被认为是一个代数结构概…...
建站系列(六)--- 后端开发语言
目录 相关系列文章前言一、常见后端开发语言二、PHP三、Java四、Python五、Go 相关系列文章 建站系列(一)— 网站基本常识 建站系列(二)— 域名、IP地址、URL、端口详解 建站系列(三)— 网络协议 建站系列…...

linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...

P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...

手机平板能效生态设计指令EU 2023/1670标准解读
手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...
深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏
一、引言 在深度学习中,我们训练出的神经网络往往非常庞大(比如像 ResNet、YOLOv8、Vision Transformer),虽然精度很高,但“太重”了,运行起来很慢,占用内存大,不适合部署到手机、摄…...

Python环境安装与虚拟环境配置详解
本文档旨在为Python开发者提供一站式的环境安装与虚拟环境配置指南,适用于Windows、macOS和Linux系统。无论你是初学者还是有经验的开发者,都能在此找到适合自己的环境搭建方法和常见问题的解决方案。 快速开始 一分钟快速安装与虚拟环境配置 # macOS/…...