电脑关机了,内存就没数据了吗?

我们知道 Redis 是内存数据库,如果服务器断电,内存上面的数据就会丢失了。这个问题显然怎么解决? Redis 中数据的持久化 前言 我们知道 Redis 是内存数据库,所有操作都在内存上完成。内存的话,服务器断电,内存上面的数据就会丢失了。这个问题显然是需要解决的。 Redis 中引入了持久化来避免数据的丢失,主要有两种持久化的方式 RDB 持久化和 AOF 持久化。 AOF 持久化 什么是 AOF 持久化 AOF(Append Only File):通过保存数据库执行的命令来记录数据库的状态。 AOF日志对数据库命令的保存顺序是,Redis 先执行命令,把数据写入内存,然后才记录 阅读详情

大家好,我是周杰伦。

提到网络攻击技术,你脑子里首先想到的是什么?

是DDoS?

是SQL注入、XSS?

还是栈溢出、RCE(远程代码执行)?

这些最常见的网络攻击技术,基本上都是与网络、软件、代码、程序这些东西相关。

这也好理解,计算机网络安全,不跟这有关,还与什么有关系?

今天跟大家介绍一下,攻击技术,除了这些,还有一些脑洞大开的方式,它们可能跟时间、震动、频率、温度等各种物理相关的元素相关,看完绝对让你瞠目结舌!

这些不同于传统软件安全方向,而是从其他侧面进行的网络攻击,称作侧信道攻击,也叫边信道攻击。

内存冷冻

请大家思考一个问题:如果计算机突然断电,内存里的数据是不是瞬间就没了?

内存大家都知道,计算机运行离不开这东西,程序指令和数据都存储在这里,但你知道内存条存储数据的原理吗?
在这里插入图片描述
看到图中那一块块黑色的东西了吗?那就是内存条存储数据的地方:内存颗粒。

在内存颗粒里面,是超大规模集成电路,里面是密密麻麻的存储单元格,每一个单元格存储一个比特位:
在这里插入图片描述
这个单元格中的核心部件是一个电容,电容有电压,如果电压在一定范围内,这个单元格就是1,否则就是0。通过无数个这样的单元格,构成了GB级的存储空间。

但大家学过物理应该知道,电容是一个不稳定的元件,随着时间的流逝,电荷会泄漏,如果不加以控制,内存条中的电压最终就会变成0,内存中的数据也就不准确了。

因此,内存在工作的时候,需要定时的进行数据刷新,对电容进行充电,一般最多64ms就得充一次电,才能保存数据的准确性。

好了,内存的背景知识交代完毕,现在回到本节一开始提到的那个问题:计算机突然断电了,内存中的数据瞬间就没了吗?

内存中的数据是通过电容这种电子元件在承载,电容充放电都是需要时间的,所以可以大胆猜测,即使断电了,内存中的数据全部消失也是需要时间的。

国外有人脑洞大开,做了一项实验,测试内存条断电后,里面的数据随着时间的流逝,消失的情况。

普通数据不方便观察,用图片最直接,实验中将一张蒙娜丽莎的图片载入内存中,然后断电,然后计算不同时间后,这张图的变化情况:
在这里插入图片描述
可以看到,在断电后的5s内,图片数据肉眼上看不到变化,30s后也影响不大,一分钟后也能依稀可见,5分钟后才彻底看不到。

而更重要的是,如果温度降低时,电容中电荷遗漏的速度将更加缓慢。下面这个表格是测试内存条数据错误率在正常情况和冷冻情况下的比较。
在这里插入图片描述
如上图所示,红色框是不冷冻情况,蓝色框是在零下50摄氏度情况,可以看到,在冷冻情况下,一分钟后,数据的错误率是0,即便是在300秒(5分钟)后,错误率也只有惊人的0.0095%。

所以,一种新的攻击方式就出来了:使用内存冷冻的方式,可以从内存条中提取数据。

在这里插入图片描述
内存中有什么数据?很多程序的密码密钥可能都存在于内存之中,最典型的比如Windows的开机密码。

以为电脑关机了就安全了?可不是这么回事哦!

熔断与幽灵

熔断与幽灵漏洞攻击大家应该不会陌生,在2017年刚刚爆发出来的时候,占据了无数媒体的头条,可见影响力之广。
在这里插入图片描述
在讲述这个漏洞之前,先请大家看一个故事。
在这里插入图片描述
学过计算机组成原理的朋友可能都知道,CPU有两个重要的特性:分支预测和乱序执行。

在执行到判断分支的时候(比如if判断),CPU会根据它自己的“经验”来判断,一会儿可能会走入哪一个分支,从而提前执行一些这个分支的指令,这叫分支预测。

另外,CPU在执行一些指令的时候,可能并不是按照顺序一条执行完再执行下一条,而是可能在会预执行一些CPU认为可以提前执行,对程序流程无关的指令,这个叫乱序执行。
在这里插入图片描述
但CPU认为可以提前执行,那就真的可以提前执行吗,执行了可能对程序本身流程没有影响,但会不会有什么副作用呢?

先留这个问题,一会儿再说,先来看另一个概念:缓存。

CPU执行程序需要频繁与内存通信,读取数据或者写入数据。但内存的响应速度比CPU慢多了,于是CPU在其内部加了一块缓存,将最近要用的数据放到这里来,避免每一次都从内存访问,提高工作效率。
在这里插入图片描述
因此,同样读取一个数据,从内存读和从缓存读,时间上是有差异的。

熔断与幽灵正是利用这一点,来进行了系统攻击。

假如你想读取操作系统内核的数据,但因为系统安全机制,应用程序是无法直接访问内核空间的,但这个漏洞就可以帮你实现内核空间数据的读取。

下面这段程序,先执行几十次,每次传入的x都小于16,每次都走入同一个分支,训练CPU,让它获得一些“经验”,让它认为 < 16是大概率要执行的分支,然后启用乱序执行,提前执行x < 16这个分支中的指令。

void bad_guy(int x) {
 if (x < 16) {
  temp &= array2[array1[x] * 512];
 }
}

来看一下,在上面这个例子中,x < 16这个分支中会通过array1这个数组访问内存,假设x突然来了一个很大的数,这样通过array1[x]访问的内存地址就溢出到了内核空间了。

乱序执行的后果,会提前计算array1[x] * 512,并将其作为下标访问array2数组的内容,然后会将这个内容从内存条加载到CPU缓存中。

突然冷不丁的来一个大于16的参数,这下它提前执行的指令就白费了。

而随后,CPU发现了这一次x是大于16的,不应该走到这个分支中来,上面描述的这一段活就白干了。

虽然是白干了,但它做了一件事:把array2数组对应下标的那一块数据从内存搬到缓存了。

这时再依次访问array2数组的每一个元素,就能知道刚才的下标,再进一步可以推断出那个内核空间的值。

然后不断变换x的输入,可以知道任意内核地址空间的数据。

这就是熔断与幽灵漏洞的核心思想:通过分支预测+乱序执行+缓存内存访问时间差异来推断内核数据。

计时攻击

熔断与幽灵,其实是利用了CPU访问内存和访问缓存的时间差来透露信息,从而实现数据泄漏,也就是说,利用的核心是时间这个物理量。

而利用时间的另一个经典攻击方式就是计时攻击。

给大家举个例子,如果要使用C语言编写一个函数,用来判断输入的密码是否正确,有人可能会这样写:

bool check_passwd(char* input) {
  bool result = false;
  const char* passwd = "XiaoBaiGe2021";
  if (input) {
    if (strlen(input) != strlen(passwd)) {
      return false;
    }
  
    const char* p1 = input;
    const char* p2 = passwd;
    while (*p1 && *p2) {
      if (*p1 == *p2) {
        p1++;
        p2++;
      } else {
        break;
      }
    }
    
    if (*p1 == '\0' && *p2 == '\0') {
      result = true;
    }
  }
  
  return result;
}

上面这个函数中,在正式的字符串比较之前,先进行了长度的比较,如果长度都不同,那就不用比较了,节省时间。

但这个看上去很聪明的做法,实际上可能会给攻击者提供了信息参考。

通过输入不同长度的字符串,发现程序验证所花费的时间不同,攻击者可能猜测出真正密码的长度。

接下来的验证过程中,开始逐位比较字符串的每一位,乍一看也没毛病,但同样的问题,如果第一位就比较错误,程序很早就退出,而如果比较的时间相对较长,则说明密码的前几位可能是正确的。

通过这些信息,然后进行不断尝试,密码可以在短时间内破解出来,是不是觉得不可思议?这是曾经发生过的真实案例。

正则表达式

在这里插入图片描述
正则表达式在字符串校验、文本提取、格式化解析等领域有非常广泛的应用,基本上所有主流的编程语言都有对应的程序库。

但你知道正则表达式的解析引擎是如何工作的吗,你知道如果传入一些特定的字符串,可能让解析引擎陷入巨大的计算陷阱吗?

正则表达式的解析引擎有一个重要的流派就是基于NFA,这是一种状态机。随着解析引擎的逐字符解析,状态机可能会有不同的下一个状态。由于每一个状态都有许多个下一个状态,解析引擎可能会在这条链路上不断前行,直到找到一个匹配的。

比如在 《白帽子讲Web安全》 一书中所提到的例子:

有一个这样的正则表达式:^(a+)+$

如果输入四个字符’aaaa’,解析引擎的执行过程是这样的:

它只有16条路径,很快就能走完。

但如果输入的字符a大量增加时,执行的路径将会暴增。
在这里插入图片描述
可以看到,随着后续字符串长度的增加,花费的时间开始呈2倍增长趋势。如果输入64个字符a,那将会是什么后果?

CPU飞转,程序失去响应,服务拒绝攻击DOS!

没想到吧,你只是输入了一个正则表达式字符串,就能让服务器失去响应。

点击下方领取**《白帽子讲Web安全》** 高清PDF版

总结

以上就是今天给大家介绍的一些侧信道攻击技术。

除了上面这些案例,通过CPU的利用率,CPU电信号的频率等等信息,也能泄露出很多有价值的信息,侧信道攻击技术,不只是电影中的黑科技,而是可能真实发生的攻击。

装机心得(含启动原理配合排查问题),华硕B365Gaming+i7-9700+华硕TUF3-GeForce GTX 1660S O6G+海康威视c2000pro+金士顿马甲条16G*2 配置 装机放在公司用于开发,奈何公司cpu是在惨不忍睹,i5-5500的U,根本不能满足现在微服务开发的日常需求。本人又想DIY一台自己的台式机,于是有了接下来的一路踩坑。 CPU:i7-9700 主板:华硕B365Gaming 固态:海康威视c2000pro(1T,越大性能越好) 内存条:金士顿ddr4,16G,2666 电源:550W海盗船 机箱爱国者 遇到的问题清单 装好机屏幕不亮,主板有供电(RGB有亮) 重新插拔了内存条(马甲条) 每个内存插槽都试过 最后发现还是内存没怼到位 点亮 阅读详情

相关推荐

用完电脑不关机你试试?!

邻居Day²是个聪明又刻苦的程序猿。 近半年被Day²这小子天天营销洗脑,就说他们做的π-Disk派盘如何牛!如何天上有地下无。我理解说白了就是拿自己的电脑DIY一个私有云呗,貌似PC版的NAS(Network Attached Storage网络附属存储),只是功能确实强大了不少。 终于双十一被拉下水,左邻右舍一起团购了一把。否则Day²这娃说我们这帮老家伙还不如川建国拜振华呢?! 感叹,我的老苹果MacBook自豪地插上了派盘的小红旗????????!可就在同时隔壁老王就叫嚷开了,说被Day²骗了

chuanyuepan的博客 4756

RAM,ROM,SRAM,SDRAM,DDR内存

嵌入式开发者必备的各种存储器的知识!

风间琉璃的博客 8475

桑基图实战指南:Excel/Python/R三工具高效绘制方法

桑基图是一种以线条宽度编码流量大小、以节点位置表达流程阶段、以连接关系呈现数据流向的专项可视化技术,其核心原理在于‘宽即量、位即序、连即逻辑’。它并非装饰性图表,而是面向业务诊断的分析前置工具,尤其适用于预算分配、能源损耗、用户转化等存在明确单向流动与显著数值差异的场景。相比传统柱状图或漏斗图,桑基图能天然暴露系统瓶颈与隐性损耗,大幅提升决策效率。本文聚焦工程落地,覆盖Excel插件快速交付、Python Plotly交互开发、R networkD3生态集成三大主流路径,兼顾数据准备铁律、索引映射规范与中文

cuml0912的博客 488

操作系统reboot之后ddr内容还在吗?

操作系统,bios, ddr

alloc_young的专栏 2695

嵌入式开发中SAR与ΔΣ ADC选型指南:从原理到实战应用

模数转换器是嵌入式系统连接模拟世界与数字世界的核心接口,其选型直接决定了数据采集的精度与可靠性。SAR ADC采用逐次逼近原理,如同天平称重,通过二进制搜索快速完成转换,具备高速、多通道轮询的优势,适合电机控制、通信等动态场景。ΔΣ ADC则基于过采样与噪声整形技术,以速度换取精度,通过数字滤波输出高分辨率结果,在传感器测量、音频采集等静态高精度领域表现卓越。理解这两种架构的工作原理差异,是进行嵌入式ADC选型的基础。在实际工程中,需结合信号带宽、多通道切换需求、功耗约束及PCB布局能力进行综合权衡。例如,

weixin_30140399的博客 244

如何在两台电脑间,实现zotero文件和数据两种类型的双向同步

在完成本文配置后,可以在两台不同的电脑间,通过两步简单操作实现zotero数据和文件的双向同步,并且全程免费首先,打开zotero->编辑->首选项->高级->文件与文件夹,配置链接附件根目录以及数据存储位置,前者将pdf文件通过相对地址形式存于zotero中(而非真正的pdf文件),后者则是设置用户本地数据的地址建议设置在数据盘D盘,可以避免后续对盘名的修改(因为基本每个电脑都存在C盘和D盘)然后,同一页面下,打开同步,配置数据以及文件同步方式。数据同步保持默认即可,文件同步选择WebDav,然后去坚果云

weixin_43008154的博客 1万+

内存模块 --- 基础扫盲

内存基础问题

weixin_43604927的博客 1122

SolidWorks与Python二次开发实战:从宏录制到自动化脚本

本文详细介绍了利用Python对SolidWorks进行二次开发的实战方法。通过宏录制获取操作指令,再将其转换为Python脚本,工程师可以高效实现建模、出图等重复任务的自动化,显著提升设计效率。文章涵盖了环境搭建、代码转换、调试技巧及完整实战案例,为工程师提供了从入门到精通的完整路径。

weixin_29082143的博客 947

电脑无法正常关机?点了关机又会自动重启

相信不少朋友遇到过电脑关机自动重启现象,一点关机,但随后电脑有会进入重启状态,就是一直不会停,属实是很难崩。

nimo观察者 3万+

LabVIEW与VisionMaster融合开发:从封装避坑到高效集成的实战指南

本文为LabVIEW开发者提供了一套与海康VisionMaster融合开发的实战指南。针对直接调用SDK时遇到的程序集加载失败和面向对象编程冲突等核心障碍,文章详细介绍了通过C#进行“浅封装”的解决方案,包括封装显示控件和核心功能类,并给出了在LabVIEW中高效集成、调用及资源管理的最佳实践,旨在帮助开发者稳定、高效地集成机器视觉功能。

weixin_29210727的博客 153

一文搞定学术英语写作 (斯坦福SCI论文写作课程笔记)

0.前言: 本文基于斯坦福Kristin Sainani 教授的学术论文写作公开课——SCI论文写作(Writing in the Sciences)。在此基础上进行章节顺序的重排及部分内容的删减,以方便第一次进行英语学术论文写作的同学快速上手。 时间充足和想要系统学习英文学术写作的同学,十分建议观看完整课程视频,一定会受益匪浅!课程地址如下: 课程B站地址:https://www.bilibili.com/video/BV1zv41177JQ 1.论...

Ogmx的博客 3万+

你的电脑关机吗

电脑开机的时候,电脑中的元部件温度会升高,关机后温度又会降低,如果频繁开关机的话,硬件温度忽高忽低会更容易造成电脑故障。当然,如果这类操作不熟悉的小伙伴,也可以隔个四五天开关机一次,来重置内存的中文件缓存,从而释放空间,让电脑恢复顺畅。电脑的睡眠状态是将电脑的运行数据存储在内存上,只保持内存供电,其他零部件进入断电状态,从而让能最小化的使用电力,并且唤醒后可以快速回到当初的状态。长时间不关机,电脑的硬件(如CPU、内存、硬盘等)会持续工作,这可能会导致硬件加速老化,从而影响电脑的整体寿命。

橙子味冰可乐的博客 4645

【思考模型框架】前景理论(Prospect Theory),认为人们并不是完全理性的决策者,而是根据一些心理上的偏差来评估选项的价值

前景理论,是一种行为经济学理论。前景理论,描述了人们在不确定条件下如何作出决策。前景理论,认为人们并不是完全理性的决策者,而是根据一些心理上的偏差来评估选项的价值。

奶爸的编程之路,也就一周冷个三天 1642

电脑关机之前必须要退出所有的正在运行软件吗?

如果还有未保存的数据,请记得优先保存一下,再点击关机哦!

小白电脑技术的博客 7146

28、基于图像快速序列视觉呈现(RSVP)的脑机接口特征提取与分类算法综述

本文综述了基于图像快速序列视觉呈现(RSVP)的脑机接口(BCI)中的特征提取与分类算法。RSVP技术通过快速连续呈现图像序列,结合脑电图(EEG)信号分析,实现对目标图像的识别和标记。文章详细介绍了RSVP实验的设计、EEG数据的采集与预处理,并探讨了低信噪比、维度灾难、重叠epoch和不平衡数据集等挑战。针对特征提取,讨论了有监督空间滤波方法(如CSP、xDAWN、LDA波束形成器)的原理和应用。在分类策略部分,涵盖了线性分类技术(如LDA、BLR、LR、SVM)和非线性分类方法(如MLP、CNN)。文

hh234的博客 337

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

电脑突然关机重启是什么原因?

一、电脑意外关机的原因: 1、电脑感染病毒; 2、电脑开启了“电脑遇到严重错误时自动关机&重启”的设置; 3、严重内存错误导致系统当机; 4、遭到恶意程序或代码攻击; 5、由于机器散热问题(CPU风扇工作不正常,机箱整体温度过高等); 6、电压不稳定(当电压过高或是下降到主机电源的最低工作电压以下,主机也会保护关机)。 二、电脑意外关机可能带来的后果: 1、突然关机重启

wsmzyzdw的博客 9524

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

现如今的电脑还有必要进行关机吗?

电脑关机这个操作实际上是几年前甚至十几年前个人电脑使用过程遗留下来的习惯。 那时候电脑的功耗都比较大,而且系统的内存文件管理、电源管理机制都不像现在这样好。所以,电脑关机操作一是为了省电,第二就是为了使电脑负荷减少,释放系统内存空间,使内存中的数据充分释放,方便下一次的流畅使用。 但是现在的电脑,不管是Mac还是Windows,主机和便携超级本的功耗都比过去大大降低,再加上优秀的系统管理机制。...

天宇龙腾的博客 3643

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

电脑选睡眠、休眠还是关机?

在使用休眠时, Windows 会将内存中的数据,保存到硬盘上系统盘根目录下的一个文件中(可以将这个文件理解为内存状态的“镜像”),然后关闭计算机。点击【开始】,依次选择【设置】→【系统】→【电源和睡眠】→【其他电源设置】→【选择电源按钮的功能】→【更改当前不可用的设置】,在下方【关机设置】下,选中【休眠】复选框,最后点击【保存修改】。基于电脑在睡眠状态下耗电量非常少,且能快速进入系统恢复工作,所以,当你需要离开电脑一小段时间,比如喝杯咖啡、睡个午觉或晚上下班等时,就非常适合使用【睡眠】。

rtkj1122的博客 7875

强制关机对电脑的影响_强制关机对电脑伤害大吗?涨知识了

强制关机对电脑有没有影响?电脑强制关机分为长按电源键和拔插座两种!使用电脑过程中,无论你的电脑配置高低都会遇到死机、卡顿无反应,这个时候不管是电脑高手还是萌新小白都束手无策,唯一的念头就是强制关机,或者是在心里默默的告诉自己等一下下就好了,但是它并没想象中那么听话,强制关机才是最有效、直接的方法。强制关机对电脑伤害大吗,会不会损害电脑的使用寿命?我们先了解一下强制关机与系统关机的流程。按住电源键关...

weixin_39803022的博客 1953

黑苹果 电脑关机是因为发生了问题_【电脑常识】常见的电脑误区,你中了几点?...

好的电脑使用习惯,可以延长电脑的使用寿命,减少问题的出现。对于很多电脑新手来说,在使用电脑时存在很多操作误区,今天蝈蝈就来给大家一一例举一下,看看你中了几点,希望看完之后,可以改正过来,也希望本文对于电脑初学的你有所帮助。1、直接按开关按钮关机或直接拔电源很多电脑小白关电脑都是直接按开关按钮或者直接拔电源的,这种暴力关机的行为,对电脑硬盘的损害是相当大的,特别是机械硬盘,所以一般有过这种操作之后,...

weixin_39815925的博客 2245
上一篇: 小白怎么混安全圈子?
下一篇: 网络安全怎么入门 按照这个学习路线方法来
AI小模型
博客等级 码龄6年 6863粉丝 487原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI小模型

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值