分类 其他 下的文章

Typecho使用Markdown语法解析文档,而Markdown默认图片靠左显示,且没有比较方便的居中方案(现在常用的方法是利用html语法解析,如使用img和div标签来设置居中)。
如果使用内嵌html来设置居中,对JJJYmmm来说工作量太大。换个角度思考,可以修改网页渲染的css文件。(如果使用了主题,则在主题对应的css文件修改)
使用以下代码,就可以实现所有文章的图片一键居中了~

.your_class #your_id img {
    max-width:100%;
    margin:0 auto;
    display:block;
}
后来发现,这个方案已经有人提出:https://zhuanlan.zhihu.com/p/474859854

最近服务器时常出现卡顿现象,最近两天甚至直接崩溃了两次。痛定思痛,决定好好排查一下。

根据学姐的说法,服务器是因为CPU占用过高导致崩溃,但是我们一般都是用GPU资源,CPU跑满的情况非常少见。随后查看日志可以发现服务器崩溃前运行的是rtkit-daemon这个守护进程(这是一个音视频相关的进程)

img

网上查阅后发现不止我们出现这个情况,问题出在PulseAudio这个软件上。他会启动rtkit进程,而这个进程似乎存在过度占用CPU的bug。

image-20230603193645492

接下来关闭PulseAudio服务就好了~

打开/etc/pulse/client.conf~/.pulse/client.conf,修改autospawn=no,关闭PulseAudio服务的自启。

image-20230603191922514

然后把它kill掉就可以了!sudo pkill -f pulseaudio

当然这个方法不一定总是成功,有时候他还是会自动启动,那么也可以直接apt-get remove --purge pulseaudio将其卸载~

image-20230603195200789

至此完结,如果服务器还出现卡顿/崩溃现象再回来更新

摘要

本文提出了一个轻量级的无硬件系统,可以利用眼睛和相机对屏幕感知之间的差异,防止未经授权的用户对在诸如剧院中的屏幕上播放的视频进行录像,同时不影响合法观众的观看体验。

论文地址:https://dl.acm.org/doi/10.1145/2789168.2790106

前置知识

色域

有许多模型用来量化人类的色觉,以应用广泛的1931 CIE色域为例,它将光的光谱功率分布转换为三个刺激值X、Y、Z。这里,Y确定亮度,X和Z则确定在该亮度下的色度。色度值可以在CIE色度图中呈现,如下图所示。

image-20230430144109866

上图代表了普通人可见的所有颜色,接下来将使用三元组(x,y,Y)来描述特定颜色的色度和亮度。

CIE色度图中的三角区域为RGB色域图,是一般显示设备能够呈现的颜色区域

光谱颜色相加规则

对于两种特定的光C1和C2,可以表示为$(x_1,y_1,Y_1),(x_2,y_2,Y_2)$。如果将它们同时投影,得到的混合颜色的三元组为

$$ (x,y)=\frac{Y_{1}}{Y_{1}+Y_{2}}(x_{1},y_{1})+\frac{Y_{2}}{Y_{1}+Y_{2}}(x_{2},y_{2}) $$

$$ Y=(Y_1+Y_2)/2 $$

也就是说,混合颜色的色度位于两个色度的线段上(在色度图中),线段上的具体位置取决于混合的两种颜色的相对亮度

时间性颜色加性感知

当人们观察随时间变化的颜色时,他们接收亮度变化和色度变化。当两种等亮度颜色以25Hz或更高的频率交替时,观察者通常仅感知到一种融合颜色,其色度基于先前讨论的色度相加规则来确定。这也可能涉及视觉暂留,即认为残像在视网膜上持续大约1/16秒的理论,这也被认为是对运动感知的解释。

如下图所示,人们将红色和蓝色交替视为洋红,将红色和绿色交替视为黄色。

image-20230430145001393

闪烁和临界闪烁频率(CFF)

虽然人类的视觉系统非常强大,但其解释显示器上呈现的时间信息的能力是有限的。当变化频率小于眼睛的时间分辨率时,称为临界闪烁频率(CFF),人眼就会感知到闪烁。

照度闪烁是指在屏幕上显示的帧之间的可见的亮度衰减,当亮度下降足够长的时间间隔就会被人眼注意到。类似地也定义色彩闪烁。另一方面,当闪烁频率大于CFF阈值时,来自连续帧序列的照度闪烁刺激和色彩闪烁刺激仅被人类感知为这段时间的平均亮度和平均波长

通常,人眼只能分辨高达50Hz的亮度闪烁和25Hz的彩色闪烁。因此,我们的眼睛无法捕捉快速移动的物体和高频闪烁的图像。实际上,CFF取决于显示器上的亮度空间和时间调制两者。如果显示器亮度调制的主频率的绝对幅度大于预定的频率相关阈值(即A(f)),那么观察者将感知到闪烁。

其中$A(f)=ae^{bf}$,其中f是刷新率,a和b是取决于发光区域的大小的常数。下图展示了用于不同显示场尺寸的阈值情况,其中度数值为从眼球出发的视场角角度。给定调制阈值A(f)和常数a/b,可以得到$CFF =\frac {ln[A(f)/a]} {b}$。

image-20230430145723084

相机的采样率

摄像机感知颜色的方式与人眼相似。每个像素在曝光时间期间接收不同波长的光,并且将它们融合以计算该像素的亮度和色度值。车载摄像头现在可以以快帧率(称为记录速率)捕获高分辨率的百万像素图像,这甚至超过了视网膜的感知能力。例如,传统的车载摄像头的记录速率为24、30或60fps,而一些最新的移动的智能手机,例如。例如,在一个实施例中,iPhone 5,iPhone 6和三星Note 4,支持高达120和240fps的高品质。

滚动快门

CMOS图像传感器已成为移动设备相机的主流,其可以连续曝光和读取每行像素。大多数消费级相机由于其低能量成本而使用这种图像传感器,但这会导致捕获的图像的几何失真,称为卷帘快门效应。举一个简单的例子来解释卷帘快门机构,假设在曝光之前,视频帧的每一行需要相机传感器花费$t_r$秒用于初始化。且传感器需要逐行扫描场景以合成完整的图像,并且对于每一行需要驱动器花费$t_d$行扫描并转储数据,除此之外,每行扫描还需要加上曝光时间$t_e$。那么扫描一行像素花费的总时间

$$ t_l = t_r+t_e+t_d $$

假设摄像机的记录帧率为30 fps,则用于构建单个帧的持续时间为1/30s,表示为$T_c$。每一帧包含多个批次的线扫描,其中每一行的持续时间为$t_l$,这些线被顺序曝光和转储(可以实现并行,类似CPU流水线)有效光采样频率定义为在一秒内捕获的行的数量。虽然典型的卷帘快门相机声称录像的帧率$f_c=\frac 1 {T_c}$,但其有效采样频率为$f_s = f_c\times n$,其中n表示单帧中的相机扫描的实际行数。

不稳定帧间间隔

通常拍摄一帧图像时,快门需要打开一定的时间来获取足够的光,并且相机以预定义的高频连续地生成单个帧以记录视频。曝光时间取决于传感器本身的灵敏度和实际照明条件,比如对比度和亮度。大多数消费级相机自动调整其帧速率,以确保整个视频的视觉质量。一些现成的移动的设备在录制时无法达到标称帧率,帧间时间间隔经常会出现波动。

场景复现

image-20230430151805716

Kaleido系统应用在原始影片放映之前,通过对原始影片的预处理,可以实现:当处理后的影片在屏幕上播放时(一般是高帧视频),观看者的视觉感受与原始影片保持一致,但是盗摄者偷录的视频观看时将会发生空间、色度的扭曲,从而遏制盗版视频的传播。

场景假设

一般来说,原始影片的拍摄帧率为24fps或30fps(拍摄高帧率电影成本极高),放映时会通过插帧达到如120fps播放在荧幕上。以30fps的原始视频为例,插帧的一般做法是,将一帧原始帧复制成四份(可能会通过视频算法进行优化帧之间的过渡,但是总体来说这四帧相差不大)。Kaleido就是在插帧算法/策略上做文章。

假设影片播放帧率$f_d$,相机记录帧率$f_c$

场景1:$f_d>f_c$

在这种情况下,在单个时间窗口$T_c$期间存在由相机显示的多个帧。相机的卷帘快门效应会导致一条线的曝光时间$t_e$小于$T_c$,因为$t_e<t_l<T_c$,并且实际上,$t_e$可以小于$T_c$的一半。

因此,对于记录帧中的特定线,其曝光时间不足以在Tc期间记录完整的光信号(或者说混进去了别的帧的光信号)。如果信号随时间不变,那么不会丢失任何信息。这就是为什么我们可以使用30fps的相机记录在120Hz屏幕上显示的传统视频(30fps录制),因为它重复每个帧四次。

如果信号是时变(例如来自单个原始帧的重新编码帧是不同的),则不能记录部分变化。例如盗版视频中的记录信号的时间分布偏离原始视频帧,因为眼睛感知时间平均色度和照度,所以时间变化损失可能导致可感知的失真。此外,所记录的盗版视频中的不同行丢失了因时间变化的部分,这可能导致帧的空间变形。

或者从信息论的角度解释,采样频率小于原始频率,必然导致信息的失真(最好情况就是原本信号就是恒定的,那么这个时候采样值与实际值保持一致)

场景2:$f_d<f_c$

这种情况下,每个视频帧可以由至少一个捕获帧记录。

如果显示系统和相机系统理想地同步,则在所记录的帧的任何线的曝光时间期间,光信号是恒定的(来自单个显示帧),并且相机可以以高保真度记录所显示的光信号。

在实际应用中,摄像机与显示器不同步的可能性很大,这会导致每个记录帧中的异相线。如下图所示,一条异相线捕获来自两个连续显示帧的光信号。如果在频率$f_f = f_d/2$处存在闪烁(连续的较暗帧和较亮帧,或较亮帧和较暗帧),则扰动将被$2 \frac {f_c} {f_d} + 1(f_c/f_f+1)$个时间连续的异相线捕获。这导致闪烁现象被记录,并且频率从$f_f$下变频到$\frac 2 {2+f_d/f_c} f_f$。通过这种现象,我们有机会将频率大于CFF的不可见噪声编码到原始视频中。在通过相机记录进行下变频之后,噪声可以变得可见,因为其频率降到CFF以下,闪烁有可能被人眼感知

image-20230430155059254

Kaleido系统组件

一些约定

简单起见,考虑30帧的原始视频,且由N个帧$\{V^{1},V^{2},\cdot\cdot\cdot,V^{N}\}$组成.每个帧是RxC的矩阵,每个像素$P_{ij}^k$的颜色表示为三元组$C_{ij}^k=(x_{ij}^k,y_{ij}^k,Y_{ij}^k)$。

假设显示设备的刷新率为120Hz,那么将每个原始帧$V_k$分解成4个显示帧$\{V^{k,1},V^{k,2},V^{k,3},V^{k,4}\}$(称为子帧)。注意,所有子帧具有相同的持续时间1/120s。

为了保证闪烁频率大于CFF并且子帧可以被人眼“融合”,将每个帧分解为两个不同的子帧,称为融合对,并且重复融合对(这里重复两次)。

接下来需要确定子帧中的每个像素$P^k_{ij}$的$(x_{ij}^k,y_{ij}^k,Y_{ij}^k)$值。

对于24 fps的视频,可以使用工具转换为30 fps,或者每帧分解为5个子帧,这使得分解更加复杂(不是2的整数倍),但原理和技术是一样的。

亮度帧污染

根据场景2的解释,可以在低帧率的原始视频进行重新编码(为高帧视频)时,在临近帧加入人眼不可感知的亮度闪烁。当高帧率相机记录时,闪烁频率会下降,如果小于CFF,就有可能被人眼感知,从而降低盗摄视频的质量。

首先令子帧中的每个像素的初始亮度等于其原始帧中的亮度$Y_{ij}^k$。给定两个连续的子帧,像素对$P_{ij}^{k,1}$和$P_{ij}^{k,2}$具有亮度$Y_{ij}^k$。

可以向像素对添加亮度互补扰动(+δ,−δ),它将它们的照度水平改变为$Y_{ij}^k+δ$和$Y_{ij}^k-δ$。

如果刷新频率高于CFF,那么人眼依旧感知到的是平均亮度$Y_{ij}^k$,那么添加的互补扰动是不可感知的。然而,当存在时间信息损失时(场景1),扰动不能被抵消;当异相线捕获发生时(场景2),扰动的频率会降低到CFF以下。无论哪种情况,这种亮度扰动将变为人类可感知的闪烁。

image-20230430161209864

色度帧分解

通过亮度帧污染,可以确定每个子帧每个像素的亮度值(Y),接下来确定(x,y)。因为我们需要保证人眼不可察觉。所以混合对(两个子帧)的颜色叠加值应该为原视频帧的颜色。根据之前提到的加性规则,有无数种可能可以形成最终的颜色。这里需要找到差异最大的两种颜色,衡量颜色差异简单使用色度图上的距离。以下使用差异色搜索指代这种寻找颜色的过程。

image-20230430163241966

给定C点,需要找到RGB三角中距离最远的两个点。易得最优解至少有个点在三角形边缘,于是将三角分割成六个部分,分别在子区域中得到局部最优解,在比较得到最终结果。同样根据之前提到的规则,$CC_1$和$CC_2$的长度比值为两个帧之间的亮度(Y)比值。Y在亮度帧污染已经确定。

image-20230430162803604

这种搜索时间成本较大,可以通过区域配对、随机选择、随机混合和平滑等操作降低搜索的时间复杂度。下图为几种方法得到的两个子帧。

image-20230430163053916

以区域配对为例,首先将两个子帧分割为网格,对于每对网格分配一对区域(即上图RBG三角中的1和4、6和3、2和5)。当对这块区域进行差异色搜索,只需要在对应的两个网格里寻找即可。

image-20230430162255569

降低编码的另一个方法是相邻帧迁移,因为一般两个连续原始帧具有相似性,如果两个原始帧之间的相同像素之间的色差相差不大(这里的色差同样定义为色度图上的距离),那么就不需要对这个像素再做差异色的搜索,之间引用上一帧相同位置像素的结果即可。

以下图为例,前一帧颜色为$C^k$,搜索到的两个颜色为$C^{k,1}$和$C^{k,2}$,对于第二帧的颜色$C_{k+1}$,只需要过该点做上一帧$C^{k,1}$和$C^{k,2}$的平行线即可得到$C^{k+1,1}$和$C^{k+1,2}$。(长度比例取决于当前帧即第二帧的两个子帧之间的相对亮度)

image-20230430162751286

实验评估见论文,主要是使用了一些视频质量评估指标来评估经过Kaleido编码的原视频和其盗摄视频之间的差异,最后也做了主观实验。

结论

这篇工作中提出了一个防盗摄的方案。该设计利用了屏幕-人眼感知和屏幕-相机感知之间的微妙差异,通过对原始视频帧进行重新编码,防止未经授权的用户对在诸如剧院中的屏幕上播放的视频进行录像,同时不影响合法观众的观看体验。

摘要 & 引言

PCR-Auth: Solving Authentication Puzzle Challenge with Encoded Palm Contact Response | IEEE Conference Publication | IEEE Xplore

生物识别技术已被广泛应用为用于用户认证的个人可识别数据。然而,现有的生物特征认证易受生物特征欺骗的影响。一个原因是它们很容易被观察到,并且容易受到物理伪造的影响。例如,人体的表面图案,如指纹和面部。一个更重要的问题是,现有的认证方法完全建立在生物特征的基础上,这些特征几乎永远不会改变,并且可以被诸如人类声音之类的对手获得或学习。

为了解决生物特征认证固有的安全问题,本文提出了一种新型基于声学提取的手握生物特征,这种特征每个用户的手的几何形状,体脂率,和握力有关。并且这种特征无需特意表现出来,只需要抓住手持设备就可以使用。

基于这种特征文章开发了一个challenge-response的生物认证系统,它由一对生物编码器和解码器构成。首先根据挑战序列对超声信号进行编码(抵御重放攻击),并提取生物特征码作为本次认证的输入响应。然后通过基于卷积神经网络的算法对生物特征码进行解码并验证用户,该算法不仅检查编码的正确性(通过信噪比判断),而且还验证每个生物特征数字所呈现的生物特征。在移动的设备上的大量实验表明,系统达到97%的准确率来区分用户和拒绝100%的重放和合成攻击。(数字码为6位时)

image-20230416203041398

背景与系统模型

手掌接触响应

手持设备的普通声学声音可以在手持设备抓握设备时区分使用者的手掌。具体来说,手持设备的扬声器产生激励信号$s(t)$后,一部分信号以直接路径传播到达麦克风(结构传播或近表面空气传播),而其他部分信号则经过更复杂的反射路径,如上图所示。用户的抓握手在它们的传播路径中影响这些信号。此外,扬声器的声音引起设备表面以相同的频率振动,这用作第二声源并产生相同频率及其谐波的声音。当与手接触时,装置表面振动被阻碍,从而导致声音的改变。所有这些受手影响的声音在被麦克风接收时都携带了一定的生物特征信息。

文章将抓握手对扬声器声音的影响建模为系统响应$H(f)$,那么麦克风接收到的信号$\hat S(f)=H(f)S(f)$。其中$S(f)$是扬声器发出的频率为$f$的原始声音。$H(f)$可以分割成三个分量:直接路径传播、反射传播、表面振动传播三种信号。

$$ \hat S(f)=H_d(f)S(f)+H_r(f)S(f)+H_v(f)S(f) $$

由于反射传播和表面振动传播更慢,引入相位与振幅后公式转变为

$$ \hat S(f)=|H_d(f)|S(f)+|H_r(f)|S(f)e^{j2\pi ft}+|H_v(f)|S(f)e^{2\pi f\tau} $$

其中t和$\tau$是与直接路径信号相比,反射信号和表面振动声音的附加传播时间。值得注意的是,所有的振幅衰减因子和相位变化也与信号的频率f有关。这种频率选择性的性质促使我们使用具有更丰富的频谱点的信号来捕获用户的手抓握生物特征的更高分辨率。同时使用不同的组合的频率来提取动态生物特征的CR认证,可以抵御重放攻击。即使敌手窃听一次认证过程,也很难通过重用先前的数据来欺骗新的认证。

综上,可以将手掌接触反应(PCR)定义为

$$ pcr = <H_d,H_r,H_v,F> $$

其中F为信号频率,另外三个与F有关的信号分量来描述抓握手的生物特征

经过实验发现,不同用户的PCR时频图确实存在差异,利用时间和频率的信息,以实现有效的用户认证。如下图所示,直接路径传播的信号出现在麦克风数据前25 ms(深色区域),在扬声器声音停止播放之后,扬声器声音反射和其诱发的表面振动声音变得显著。它们在75 ms后降低超过20dB。因此,文章建议利用0 − 75 ms的声音进行抓握手掌检测。值得注意的是,25 - 75 ms范围内的声音是扬声器声音的残余,相比于直接路径信号更难伪造。(换句话说这段时间内的手掌特征更加丰富)

image-20230416211835053

系统模型

系统模型如图4所示,它是CR协议和PCR编码/解码模块的集成。认证过程在用户和PCR-Auth之间进行。为每个用户创建PCR解码器$D_{user}\{\}$,其在注册阶段使用用户的所有手部抓握生物特征进行预训练

每次挑战(登录)都需要一个唯一的PCR代码进行验证。当用户发送认证请求时,PCR-Auth生成OTC代码(即随机数)。手持设备使用其自己的扬声器播放OTC编码的刺激信号,与此同时,麦克风记录信号编码后的刺激信号$E_{OTC}\{pcr\}$。接下来,PCR-Auth应用PCR解码器Duser{}来验证PCR码并进行生物认证,其通过$D_{user}\{E_{OTC}\{pcr\}\}$来检查生物特征和编码序列

image-20230416212208310

生物编码与PCR码

PCR编码器的基本思想是利用PCR的频率选择性,通过使用不同频率的短刺激信号脉冲,我们获得n个非重叠PCR区间,并将它们映射到十进制和十六进制值(n = 10或16)作为编码单元(也可以表示更复杂的字符串)。PCR编码器$E_{OTC}\{\}$根据OTC代码选择序列中的信号脉冲。接下来,PCR码由编码信号提取为m位OTC的生物特征表示,如

$$ E_{OTC}\{PCR\}={pcr_1,pcr_2,...,pcr_m} $$

其中i = 1,2,…m是指第i个PCR数字。

image-20230416214535424

PCR解码器$D_{user}\{\}$在注册阶段利用用户的所有n种PCR数字(其实就是n种频段的线性调频信号)进行训练。在认证期间,PCR解码器首先检查PCR数字是否全部处于由OTC码索引的正确频率(利用OTC码进行滤波后判断SNR,如果频段不同则信噪比会很低),然后分别验证每个PCR数字呈现的生物特征(利用卷积神经网络)。成功验证的PCR数字重建一个OTC数字。通过将具有n个编码单元的用户手持生物特征编码成m位PCR码,我们的生物特征编码技术基于与现有生物特征CR方法相同的训练策略将生物特征响应域从n指数地扩展到$n^m$ 。因此,用户不需要周期性地用新的生物特征重新填充响应池

image-20230416214827659

关于PCR解码器的具体实现,文章提到的是使用短时傅里叶变换

$$ {\cal D}T S T F(t,f)=\sum_{\tau=t}^{t+T-1}s(\tau)w(\tau-t)e^{-j2\pi f\tau} $$

其中t和f是时间和频率索引,$w(t)$是长度为T的窗函数。然后,在坐标$(t,f)$处的2D图像(频谱图)的每个像素被计算为:

$$ s p e c t r o g r a m(t,f)=|D T S T F T(t,f)|^{2} $$

认证流程

每次发起认证请求时,应用首先获取麦克风访问权限。PCR编码器首先通过对照声压级(SPL)阈值检查超声波频带来检测设备是否处于有意的超声波干扰下,如果没有检测到专用超声,则PCR编码器生成OTC,并且基于OTC的刺激信号,调制器相应地选择超声脉冲将用户手持生物特征编码成PCR代码。

麦克风数据是PCR解码器的输入,PCR解码器首先执行数据预处理以降噪、同步和分段音频数据。预处理的数据通过通道滤波从音频中提取PCR数字。具体来说,我们推导出谱图来在时域和频域中描述PCR码。OTC控制的信道滤波器根据OTC所索引的信道设置截止频率以提取每个PCR数字未正确编码的PCR数字在这里会被滤除(其SNR也会降低)。最后把获得的PCR数字被发送到基于CNN的PCR解码器以进行验证,该模型的训练数据包括用用户本身的PCR响应,还有同一组测试人员的PCR。

这里模型的训练过程存在问题,本来应该是类似异常检测的单分类问题,作者将其转化为了二分类问题(User or NoUser)。这是不符合逻辑的,毕竟真正使用认证系统时只有用户本身的数据。当然作者在后面解释了训练时会使用“负类样本库”,但是个人感觉只是一种退而求其次的做法。

基于CNN的PCR解码器利用一个具有五个卷积层的CNN模型来从其频谱图中解码每个PCR数字,得到CNN得分(其实也就是返回每个数字是否是用户的概率)。文章进一步开发了一种基于聚类的方法,通过整合CNN得分和所有PCR数字的SNR来验证PCR代码。在此基础上计算PCR码的欧氏距离,并使用一个阈值区分用户的集群和验证用户,既检查用户的生物特征和编码序列。只有当PCR代码成功恢复OTC代码时,才授予访问权限。

简单来说,就是将m个PCR数字对应的概率组合起来作为特征向量(例如4个数字,每个数字对应2个概率,拼接得到的CNN分数长度为8),用聚类的方式来划分用户/非用户,从而提高认证的准确性。其中不同类之间的距离简单采用PCR码概率的欧氏距离。可以推断使用的聚类方法是KMeans,因为这里用户区域和非用户区域有明显的团簇特征;其次可视化聚类效果应该使用了PCA主成分分析类似的降维方式。(复现时采用了TSNE)

image-20230302164438250

网络复现

复现了CNN-Based PCR Verification部分的CNN网络以及基于无监督聚类的身份认证。相比于原始网络,加入了残差连接(虽然最后不可避免地出现了过拟合现象);聚类则采用KMeans++进行用户的区分;聚类可视化使用TSNE降维CNN-Score;通过dataloader的shuffle实现了OTC的随机化...代码暂不开源

下图为论文提到的CNN网络结构

image-20230424102004724

以下两图是复现中对于聚类认证的可视化,第一幅每个样本颜色代表真实便签、第二幅是聚类产生的标签,可以发现两者基本一致。

image-20230424105949929

image-20230424110113287

攻击手段

  • 假冒攻击:敌手使用自己的手来欺骗PCR-Auth。这种情况编码序列的频段被确保是正确的,并且敌手期望进一步模仿受害者的生物特征。有知识的模仿攻击者具有受害者如何抓握设备的先验知识,使得他/她可以在拥有设备时模仿合法用户抓握手的姿势;进一步考虑一个知识渊博的假手攻击者,他使用硅胶假手来模仿受害者的手,具有更大的自由度
  • 重放攻击:敌手窃听了受害者的认证数据,并试图使用相同的数据来欺骗新的一轮认证。为了进行攻击,对手需要使目标设备静音,并使用第二个扬声器来重放先前的声音。这种类型的攻击仅旨在呈现用户的生物特征。但是难处是预测开始录音的精确时间,这个时间段很短
  • 监听合成攻击:假设敌手可以通过监听声道捕获OTC,并立即将之前的PCR数字拼接成正确的序列。还假设对手可以获得受害者的所有PCR数字,实现攻击完全自由,这可能是通过窃听注册过程或存储的生物特征数据的泄露。然而,实施这一攻击仍然具有挑战性。如果在等待窃听所有OTC数字之后播放合成的声音,将被认证系统拒绝,因为麦克风在扬声器声音停止之后立即关闭,伪造响应无法及时生成。
  • Dos攻击:拒绝服务(DoS)攻击旨在通过专用超声波覆盖PCR-Auth的工作频率来导致身份验证错误和拒绝

实验部分

基本分析

  • 线性调频信号持续时间是系统设置的一个重要因素,较短的持续时间允许PCR-Auth在固定的时间内编码更多数字,即增加OTC数字的长度;但是持续时间越短将导致用户的PCR分辨率会降低,从而削弱生物特征。实验首先将调频信号带宽固定为100Hz,再测试从5ms到500ms的持续时间。实验发现,持续时间等于或大于10ms时PCR才能被准确区分。并且当信号持续时间从5ms改变到10ms时,准确度性能从80%快速增加到92.5%。在10ms之后,准确率增长趋势较慢。使用20ms和500ms信号时,分别达到93%和95%的准确度。这证实了使用短持续时间信号提取PCR的可行性。
  • 调频信号的带宽同样是一个重要参数。实验固定线性调频脉冲的持续时间为10ms,并测试将带宽从100Hz加到4kHz。我们观察到,当带宽大于100Hz时,用户的PCR被准确地区分。在此基础增加带宽,性能增长缓慢。例如,在100Hz、200Hz、350Hz和500Hz下的准确度性能为92.5%、95.2%、98%、98.7%。当带宽低于100Hz时,性能急剧下降。结果证实了使用窄带信号区分PCR的可行性。

image-20230424145249795

  • 设备如果配备双麦克风,那么两个麦克风同时接收信号并解码、PCR认证系统准确率更高。在选定的10个频段内,麦克风1可以达到78.9%的准确率,麦克风2可以达到85.0%的准确率。两个麦克风同时使用时可以达到91.3%的准确率。

image-20230424145932309

PCR聚类认证表现

这部分实验作者比较了传统认证器和基于聚类认证方法之间的性能。当编码数字长度为1时,两种方式性能一致;随着编码长度增加,传统认证器准确率逐渐下降,而聚类认证甚至性能有所提高。

image-20230424150212859

因为传统认证器是累计认证的方法,例如4位数字的PCR代码,每个数字的准确率为0.9,那么传统认证器的准确率为$0.9^4=0.6561$;而聚类认证之所以性能有所提高,原因可以总结为三点:

  • 编码长度增加,系统得到的用户生物特征更加丰富;
  • 不同信道处的PCR编码捕获不同方面的生物特征(提高了特征多样性);
  • 基于聚类的方法利用了PCR数字之间的连接和约束。(引入无监督学习)

不同设备的性能表现

作者测试了系统在六种不同的智能手机型号,共涉及15名参与者时的性能。首先系统在六个设备上都实现了低FAR(错误接受率)、FRR(错误拒绝率)。结果表明,PCR-Auth在大多数手持设备上具有良好的认证表现。

image-20230424151245455

攻击抵御性能

对于重放攻击:随着编码数字的增加,FAR逐渐降低。编码一位数字时FAR为10%,编码长度大于等于4时,FAR可以忽略不计。

编码一位数字时FAR为10%,相当于在10个频段里碰撞某个特定频段。

image-20230424152134105

对于监听-合成攻击:当麦克风延迟在25%时,FAR达到最高的4.8%.不过当编码长度增加时,FAR会明显下降。

image-20230424153015538

对于超声/Dos攻击,由于认证系统在认证之前会使用50dB SPL作为阈值检测DoS攻击(相当于30cm的超声波传输距离)。当使用正常移动设备登录时,如果超声波SPL大于阈值,则PCR-Auth将通知用户潜在的DoS攻击,并建议用户改变位置以重新启动PCR-Auth。

总结

本篇工作开发了一个基于结构声的生物认证系统。系统工作基本流程为:

  • 根据随机挑战序列(抵御重放攻击)对高频信号进行编码并通过扬声器播放;
  • 利用麦克风接收携带生物特征(PCR)的响应结构声,将结构声预处理后作为本次认证的输入响应;
  • 通过基于卷积神经网络的算法对生物特征码进行解码,验证每个PCR数字所呈现的生物特征得到CNN Score;
  • 验证用户时,首先检查编码的正确性(在物理层面通过SNR进行判断),再对上一步得到的CNN Scores进行聚类操作,实现用户/非用户的认证;

文章的亮点首先是引入手掌接触响应(PCR)的概念,并通过神经网络对这种复杂的反应进行解码;其次是通过聚类这种无监督学习方式增强了认证的TAR,本人复现时发现单聚类操作甚至可以提高接近10%的准确率;最后是信道编码时,根据PCR的频率敏感性选出了特定的10个频段,并且OTC数字进行随机化,有效地抵御了重放攻击。

重新补课,发现以前不是很懂的地方现在能理解了~ 论文地址

摘要

论文提出了PressPIN,一种应用于移动设备的新型PIN认证器,通过感知用户手指的压力来作为额外的认证维度。由于大多数手机都没有压敏触摸屏,作者利用声音的结构传播来估计屏幕上的压力。当用户输入PIN码时,从每个数字中提取压力以形成n位压力代码,其中n对应于PIN序列的长度。压力码很难通过窥探或录像来推断,并且增加了密码的熵。通过这种方式,PressPIN提供了一种低成本、用户友好且更安全的解决方案,可以抵抗shoulder surfing attacks。对30名参与者和三种类型的智能手机进行的广泛实验表明,PressPIN可以高准确度地认证合法用户(例如,在两次试验中高达96.7%),并且对各种类型的攻击是鲁棒的(例如,即使对手可以清楚地观察到合法用户的PIN序列和手指按压,攻击成功率也只有2.5%)。另外,PressPIN不需要额外的硬件(例如,压力传感器)并且可以容易地集成到移动的设备的现有认证系统中。

shoulder surfing attacks:例如在使用者输入PIN码时,攻击者就在附近直接观察或使用摄像头进行记录

引言

PIN码作为一种原始的移动设备认证方式,其本身安全性并不高,因为使用者一般将PIN码设置为有意义的信息(如生日或电话号码),这有可能遭受爆破攻击,除此之外还有Shoulder Surfing Attacks这种窥探类的攻击。现有的工作增加了验证的复杂性,比如眼球追踪输入PIN码、随机化输入界面等方式。这些方式虽然提高了认证的安全性,但是也随之降低了用户的使用体验(比如眼球追踪输入PIN码准确率仅达到84%,且每个PIN码平均需要2s输入)。

基于压力进行认证对于现有PIN码输入模式没有大的改变,不会增加使用者的学习成本。但是移动端设备适配压敏传感器的占少数,故需要通过软件的方式来获取施加在屏幕上的压力。最近一些研究表明,利用内置扬声器和麦克风可以通过结构声传播来感测移动的上的压力,即声音信号通过手机表面的细微振动传播,如果用户没有触摸手机的屏幕,则声信号可以容易地通过手机的表面传输。然而,当手指对屏幕施加压力时,手机表面的振动与声学信号会受到限制,导致通过该固体传播路径传输的声信号受到影响。因此,可以通过分析接收信号和原始信号之间的变化来估计施加在屏幕上的压力水平

论文通过结构声估计压力来对用户进行认证,具体来说将压力分成三种状态:1)持续弱、2)逐渐强、3)持续强。当用户输入PIN码时,不仅需要满足数字序列正确,同时每个数字对应的压力状态也需要于预设的一致。PressPIN的主要技术挑战是如何准确地估计压力状态,因为用户不同、手机不同,结构声可能具备不同的特征

在身份验证过程中,PressPIN使用内置扬声器发出难以察觉的声音信号,并使用内置麦克风接收通过手机屏幕传输的声音信号。施加在屏幕上的压力会降低声波通过手机的传播。通过计算这种退化的程度,PressPIN可以估计每次按压的压力大小。为了实现这一点,我们提出了一种新的压力估计方法:同时考虑声波降解率和手指触摸位置,以准确地估计每次按下的压力状态。还考虑了声音信号在不同手机屏幕上传播衰减的差异,以及不同用户按屏习惯的差异,使PressPIN更具通用性和实用性。

相关工作

相关工作有两个主要研究领域:PIN码增强认证基于声音的感知

PIN码增强认证就如引言提到的眼球追踪输入PIN码、随机化输入界面等方式。这些方式虽然提高了认证的安全性,但是也随之降低了正确率和用户的使用体验(比如眼球追踪输入PIN码准确率仅达到84%,且每个PIN码平均需要2s输入)。基于压力传感器的PIN认证虽然被认为是最具安全性的防御手段,但是大多数手机并没有配备压力传感器。

基于声音的感知包括基于空气声感知和基于结构声感知两种方式。基于空气传播的声感知很容易遭受周围环境的影响,结构声则更加稳定一点。

准备工作

本章首先描述PressPIN用于预估手指压力的物理特性,然后介绍观察结果和攻击模型。

结构声传播

首先由扬声器发出的声音到麦克风接收会经过三种路径。首先是经过手机内部的结构声传播,其次是空气传播,再或者经过手指或周围环境的反射传播。最终麦克风接收到的声音是这三种声学信号的组合。不过这三种声音的传播速度不同,其中结构声的传播速度比空气中快100倍。根据这个传播的时间差,我们可以准确定位到结构声信号,从而区分不同用户的不同触摸压力。

声波振动特性

声波作为一种机械波,通过物理振动在介质中传播,振幅随着传播衰减。当声信号到达两种介质的边界时,会发生反射和衍射。如下图所示,当手指按压在正在发射声波的手机(移动设备)屏幕上时,手指在屏幕上施加不同的压力,屏幕会发生不同形变。变化程度受压力的大小和触摸位置两者的影响。声信号的振动衰减与屏幕的柔性之间存在高度相关性。因此,我们可以通过分析接收到的声信号来估计压力。

image-20230415215853307

数字对声信号的影响

经过实验发现,对于PIN码上不同的数字,当手指按下时会呈现不同的声学特征。其中数字1、4、7,当按下时,声信号会增强;其他数字按下时,声信号会减弱。下图以数字3与7为例。

image-20230416114248653

对于这个现象的解释:可能与数字和声波传播途径的距离有关。做实验的手机麦克风、扬声器位置如下,其中1、4、7距离传播途径较远,按下时可能增强了声波的反射,从而增强声信号;其他数字在传播途径附近,手指的按压吸收了一部分声信号,从而减弱了声波强度。

image-20230416114544260

攻击模型

针对结构声压力传感的PIN认证机制,论文提出了三种攻击模型。

  • Blind Attack:敌手不具备合法用户的压力代码和PIN序列的任何知识
  • PIN-aware Attack:敌手通过社工、密码分析等手段得到正确的PIN序列
  • Observer Attack:敌手通过窥探或录像得到合法用户的PIN序列,并且观察用户的按压推断压力代码

系统设计

下图描述了PressPIN的系统架构,其包括五个阶段:数据采集、PIN认证、数据处理、压力码认证、结果反馈。

image-20230416115010992

数据采集

PressPIN首先生成用于感测压力的难以察觉的音频,并在用户进行身份验证时使用电话的扬声器播放音频。同时,PressPIN记录PIN序列,并使用手机的麦克风捕获包含压力信息的音频。

具体来说,扬声器发出的声信号由前导码和若干线性调频信号。前导码的频率范围为18-22kHz,持续时间为100ms。音频的采样率设置为48kHz。

前导码的作用是将接收信号与原始信号进行同步。线性调频信号则作为载波信号,其频率范围为18000-23999Hz,以满足奈奎斯特采样定理。由于大多数人无法听到频率超过18 kHz的音频,因此该频率范围可以保证用户不会受到啁啾信号的干扰。

奈奎斯特采样定理:如果信号是带限的,并且采样频率高于信号最高频率的一倍,那么,原来的连续信号可以从采样样本中完全重建出来。因为采样频率是48KHz,所以这里载波信号的频率最大为24KHz

数据处理

数据采集除了收集麦克风收到的声信号,还收集了屏幕的触控信息,比如手指按压次数(对应PIN码长度)、手指按压时间、按压位置

首先对声信号进行处理,使用巴特沃思带通滤波器从记录的音频中过滤掉无效的声学信号,其低截止频率被设置为18kHz,高截止频率被设置为23999Hz,这一步可以过滤掉环境噪声。随后使用包络检测定位前导码位置,同步发送/接收信号。接着就可以截取重复的线性调频信号。

前处理过的声信号包含结构声和其他传播路径的声信号,因而需要先将结构声提取出来。首先需要分析发射的声学信号和接收的声学信号之间的相关性。将发送的线性调频信号的反转与接收的信号做卷积操作以计算它们的相关性。观察声相关性曲线,可以发现按压和无按压状态相差一个峰值——即手指反射路径产生的峰值。结构声在固体中传播,速度最快,所以可以通过第一个峰值确定结构声的位置。

image-20230416121902944

通过使用2400个样本的窗口来分析声音相关性的曲线,从而找到第一个峰值。我们找到每个窗口的第一个峰值,并取峰值周围20个音频数据样本的平均值(峰值前10个样本和峰值后10个样本),其中主要包含结构传播的信号。此时便得到具有20Hz的采样率的新序列$seq(k)$(20Hz = 48KHz / 2400).通过分析这个新序列,可以确认压力的变化。

实验中发现即使在手机屏幕上没有任何按压,提取的结构声信号序列也会逐渐增加。这是因为当通过模数转换器(ADC)将模拟信号采样为电信号时,由于不完美的时钟,采样频率将随时间而改变。因此,需要消除钟差来校正结构声数据的偏差。在校准阶段,在非按压状态下提取出结构声序列,表示为$d(k)$。然后通过线性拟合得到$d(k)$的函数,表示为$c(k)$。图8示出了真实的$d(k)$及其对应的拟合函数$c(k)$。我们可以看到函数$c(k)$很好地拟合真实的$d(k)$。因此,我们通过减去拟合函数$c(k)$来校准$seq(k)$。

image-20230416142509930

最后一步数据处理是将得到的采样率为20Hz的信号序列进行归一化。PressPIN利用$Seq(k)$的幅度变化来测量由稍后施加在屏幕上的压力引起的后续劣化。按压之前$Seq(k)$的平均振幅表示为$Seq_{ini}$。然后,劣化速率$DR(k)$为

$$ DR(k) = |(Seq(k)-Seq_{ini}/Seq_{ini}| $$

压力建模

数据处理得到劣化率$DR(k)$后,可以将压力值建模为

$$ press(k) = \sqrt{DR(k)}+8*DR(k) $$

不过上式并不适用于每部手机上的每个数字按压位置。因此本节提出了基于按键和位置的参数校准方法。

基于键的参数校准方法:

该方法校准每个键(数字)的参数,可以得到了每个键对应的参数。在计算压力时,根据输入的数字选择相应的参数,得到压力值。

因此,触摸压力可以建模为

$$ press(k) = A*\sqrt{DR(k)}+B*DR(k) $$

其中参数A和B依赖于键位置。A/B通过按压每个键五次,收集到的50个数据样本进行拟合,其中真实的压力值由外力传感器得到

定位参数校准:

基于键的参数校准方法需要通过真正的压力值和每次按压的降解率来拟合每个按键的A/B,这是一种粗粒度的估算方法,都是需要花费很多努力调整每一个关键参数。

因此,文中提出了定位参数计算方法,通过麦克风/扬声器/按压位置的位置信息拟合A和B.

手机屏幕的坐标图10所示。原点是屏幕的左上角,$x$轴平行于短边,$y$轴平行于长边。事实上,即使用户按下相同的按钮,坐标也可能不是相同的(数字按钮本身有一定面积),例如按钮3中的A点和B点的坐标是不同的。

image-20230416144125785

当用户输入一串数字序列,PressPIN将记录按压的位置,表示为$(P_{x_i},P_{y_i})$。在这种方法中,A和B系数依赖于接触位置和麦克风和扬声器的位置。系数可以计算为

$$ A = a1*dis_m+b1*dis_s+c1*dis_l+d1\space B = a2*dis_m+b2*dis_s+c2*dis_l+d2 $$

其中,$dis_m$是从按压位置到麦克风的距离,$dis_s$是从按压位置到扬声器的距离,$dis_l$是从按压位置到麦克风到扬声器之间的直线的距离,d1和d2则是常数。的单位其中,dis_m是从按压位置到麦克风的距离,dis_s是从按压位置到扬声器的距离,dis_l是从按压位置到麦克风到扬声器之间的直线的距离,并且d1和d2是常数。dis m、dis s和dis l的单位是米。

接下来,将第一种方法测得的特定设备的A/B拿来拟合上述两个多元回归方程。其中$dis m、dis s和dis_l$可以通过通过手机参数计算得到。

通过这种方式拟合得到的参数,更具有普适性,对于一部新手机的任意按压位置,都可以计算该位置的A/B参数,再结合结构声信号提取的$DR$序列便可以预估手指的按压力度。

压力码状态

通过比较$DR$序列或预估的压力序列,可以发现不同压力状态(在引言中提到的三种)表现出的特征具有较为明显的差异。当压力持续较弱时,压力值关于时间的积分远小于另外两种状态;当压力逐渐增大时,后半段的压力积分值明显高于前半段的压力积分值,且存在许多局部峰值。

image-20230416145827092

通过上述特征,可以使用算法1进行压力码的识别与抽取。其中$T_p,T_r$取决于使用者的按压习惯。

image-20230416150141288

压力反馈

考虑到用户可能不知道他们在按压时施加了多大的力,PressPIN在用户按下每个键时实时向手机用户提供压力代码提醒。为了使攻击者难以观察到这种提醒,提示以手机轻微振动的形式给出,称为触觉反馈。每个压力代码都有自己的反馈模式。当用户输入1(即压力连续弱),并且如果用户按压2则快速且短暂地振动一次(即压力逐渐变强),并且如果用户按压3则振动两次(即压力持续强)。这样用户就可以知道刚才输入的压力代码顺序。每个压力代码的振动之间的时间间隔远短于不同压力代码的提醒之间的间隔。以这种方式,用户可以清楚地接收压力反馈。

模型评估

本文使用C/S架构的模型,移动设备作为客户端,负责PIN码输入和发送声信号(以及屏幕触控信息)给服务器;服务器负责接收声信号并处理出压力码,返回压力码供客户端进行确认。之后在该模型上做了一系列实验,例如评估了用户的认证准确率和错误接受率、讨论了不同环境的影响、不同攻击敌手的攻击成功率等。

总结

本文提出并实现了一种新型移动设备上的增强型PIN认证系统,它使用PIN码对应的压力序列来验证用户身份。PressPIN使用用户设备的内置扬声器和麦克风来播放和接收难以察觉的声音信号。施加在屏幕上的压力阻碍了(或增强,取决于数字位置)结构声的传播,通过分析不同按压位置的结构声的变化,PressPIN可以估计每次按压的压力大小。广泛的实验结果表明,PressPIN可以以高准确度认证合法用户(例如,在两次试验中高达96.7%)并且很好地抵抗肩部冲浪攻击(即使对手可以清楚地观察到合法用户的PIN序列和手指按压,攻击成功率也只有2.5%)。PressPIN为PIN身份验证系统提供了一种低成本、用户友好、更安全的解决方案,以防止肩击攻击并增加密码的熵。具体而言,PressPIN可以容易地集成到现有的移动的设备的认证系统中,而无需额外的硬件修改,这具有良好的应用前景。