【隐私大战】App在偷听你的生活吗?

2024-02-15 11:10
文章标签 app 隐私 大战 生活 偷听

本文主要是介绍【隐私大战】App在偷听你的生活吗?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转载本文需注明出处:微信公众号EAWorld,违者必究。

产品经理

4/18 9:00

做个需求,监听一下用户今天说过哪些关键词(商品),等它打开App的时候精准推送给它,三天上线可以吧?

‍‍‍‍

4/18 9:01

。。。。。。

开发

4/21 9:00

为什么我每次刚说完要买什么东西,再打开购物软件时,首页总是会无比惊悚的来一个精准推荐呢?它们肯定偷听了!

4/21 9:01

嘘,少胡说八道。

读书人的事,那能叫偷嘛。

产品经理

哼,早晚抓它们进去陪张三!

每当跟朋友聊天说到什么商品后,再次打开某条某宝就会看到一些精准的推荐,好像App“听”到了我们的谈话一样,相信很多小伙伴都感同身受。

到底App有没有悄悄地监听呢?

洗白开始

心理学中有一种叫做"孕妇效应”,就是当人怀孕了就更容易发现孕妇,你开了奔驰就更容易看到奔驰,你拎个LV就发现满大街都是LV。

其实App首页每天都有包包,你今天恰巧跟同事说到要买,回去再打开某宝发现居然真的给你推荐了包包?

好像也像那么回事。

继续诡辩

首先,想要录音App总得有录音权限吧,你来教我在哪里申请权限?

第二,录音得到的数据是离线处理还是传到后台处理呢,就算以低码率录音,每天也要产生至少1个G的录音数据。

第三,用户群体中不说普通话的用户比例有多少,目前语音识别率在我们日常对话的场景里还不够,更别说方言了。

第四,对于每天都在进化的国产系统,长时间使用录音接口,最新的MIUI是会弹窗提示的,弹窗点进去还可以一键关闭当前App的录音权限,不要小看了这些厂商的安全能力。

第五,大多数公司都有自建的基于用户习惯等维度的推荐系统,有着完备的用户画像,你非要这么玩,事情败露了你担得起吗!

真没问题?

在当今移动互联网环境下,想要证实或者证伪都很有难度,所以只能希望大家相信大厂,相信科技向善,相信王欣,相信......除非找到了代码实锤。

实现原理

不管大厂有没有做,我们仍然对此好奇从技术上能否实现这一操作,让我们来看一下可行的方案。

方法A

App借助比如发送语音、语音搜索、语音输入等功能获取到录音权限,之后就在后台间歇性启动录音,并识别其中的关键词,推荐系统获取到关键词之后就可以进行精准推荐了。

由于App申请权限只有第一次会弹框给用户确认, 所以获取权限之后可以随意启动录音。

当然,也可以App启动时申请录音权限,不同意就退出应用,呵呵,真想打死你。

方法B

大数据背景下的数据共享。

App不去主动监听用户的谈话内容,可以向已经窃听到相关数据的厂商付费购买,App之间共享数据在技术上是很成熟的,那么手机里只要有一款App获取到敏感数据,你的隐私将不复存在。

说的好听是"数据共享",实际上不就是出售用户数据嘛,做的那么过分,真当黑哥不接单的?

欢迎大家把怀疑的App发在评论区~ 

我先来,XX输入法

方法C

加速度传感器窃听。

“加速度传感器是目前智能手机中最常见的一种嵌入式传感器,它主要用于探测手机本身的移动,常见的应用场景包括移动检测,步数统计和游戏控制等。”

由于声音信号是一种由震动产生的可以通过气态,液态,固态的各类介质进行传播的声波,而手机扬声器发出的声音会作用在手机上引起震动,这种震动可以被手机上的加速度传感器灵敏的捕捉到,因此可以通过加速度传感器的数据提取出关键字信息。

这并非耸人听闻,由浙江大学、麦吉尔大学、多伦多大学团队共同发表了有关加速度传感器窃听的成果(https://dwz.cn/dgkygjzH),经过测试,关键词的识别准确率达到了90%。

更加可怕的是在现行法律下,采集智能设备传感器数据这一行为并不违法,这也就意味着这种窃听方式目前还处于法律的灰色地带。而且在智能手机上获取传感器数据对于用户来说是无感知的,无需用户确认便可以获取相关权限。

实践

接下来,我们将就方法A搭建项目并实现,项目源码会放在结尾处。

使用到的技术

本次实践使用PermissionAnywhere进行录音权限的申请(请参考《如何优雅地申请Android运行时权限》),百度语音识别sdk完成录音转文字,使用Blob云数据库实现数据上传云端。

权限

使用PermissionAnywhere申请录音权限

(https://github.com/mingyuers/PermissionAnywhere)

PermissionAnywhere.requestPermission(this, new String[]{Manifest.permission.RECORD_AUDIO}, new PermissionCallback() {@Overridepublic void onComplete(List<String> grantedPermissions, List<String> deniedPermissions, List<String> alwaysDeniedPermissions) {if (grantedPermissions != null) {//开始录音start();}}
});

(左右滑动查看全部代码)

录音及识别

使用百度语音识别的sdk,将录音转化为文字。

private void start() {asr = EventManagerFactory.create(context, "asr");Map<String, Object> params = new LinkedHashMap<String, Object>();String event  = SpeechConstant.ASR_START; params.put(SpeechConstant.ACCEPT_AUDIO_VOLUME, false);params.put(SpeechConstant.PID, 1537); // 中文输入法模型,有逗号String json = new JSONObject(params).toString(); // 这里可以替换成你需要测试的jsonasr.send(event, json, null, 0, 0);
}

(左右滑动查看全部代码)

上传

上传阶段我们使用了Bmob的sdk,直接将录音得到的数据上传到云数据库。

public void upload(String str) {RecordBean recordBean = new RecordBean("q8", str);recordBean.save(new SaveListener<String>() {@Overridepublic void done(String s, BmobException e) {Log.d(TAG, "done: " + s);}});
}

(左右滑动查看全部代码)

效果

我们可以看到,申请到手机录音权限后,将手机放在一旁,只要我们在说话,App就会录音并识别出来,也可以按需求提取其中的关键字,识别率还是不错的。

代码下载地址

以上完整代码已开源到:

github[https://github.com/mingyuers/FuckRecord]

先说好,仅供大家研究学习。<手动狗头>

写在最后

2016年,支付宝被爆出每隔X分钟(服务端指定)会在后台开启摄像头拍照,录音X秒,然后上传到服务器上。不过后来也被支付宝官方辟谣,并声称不会在用户不知情的情况下对用户进行拍照、录音。

我们愿意相信大厂,毕竟他们有大把的方案去做精准推荐。但只要拥有相关权限,就的确能做到在后台神不知鬼不觉的做一些事情,这种事情永远不会有结果。

科技,我劝你向善。当然,老罗除外。

关于作者:明月,现任普元移动团队资深开发工程师,长期致力于IT技术研究,产品设计和开发等工作,擅长Java、NodeJs、ReactNative等领域技术。先后参加深圳登、太平洋保险等移动项目的实施,参与Mobile 8.0移动平台的设计开发工作。

关于EAWorld:微服务,DevOps,数据治理,移动架构原创技术分享。长按二维码关注!

这篇关于【隐私大战】App在偷听你的生活吗?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/711223

相关文章

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

macOS怎么轻松更换App图标? Mac电脑图标更换指南

《macOS怎么轻松更换App图标?Mac电脑图标更换指南》想要给你的Mac电脑按照自己的喜好来更换App图标?其实非常简单,只需要两步就能搞定,下面我来详细讲解一下... 虽然 MACOS 的个性化定制选项已经「缩水」,不如早期版本那么丰富,www.chinasem.cn但我们仍然可以按照自己的喜好来更换

React实现原生APP切换效果

《React实现原生APP切换效果》最近需要使用Hybrid的方式开发一个APP,交互和原生APP相似并且需要IM通信,本文给大家介绍了使用React实现原生APP切换效果,文中通过代码示例讲解的非常... 目录背景需求概览技术栈实现步骤根据 react-router-dom 文档配置好路由添加过渡动画使用

MFC中App,Doc,MainFrame,View各指针的互相获取

纸上得来终觉浅,为了熟悉获取方法,我建了个SDI。 首先说明这四个类的执行顺序是App->Doc->Main->View 另外添加CDialog类获得各个指针的方法。 多文档的获取有点小区别,有时间也总结一下。 //  App void CSDIApp::OnApp() {      //  App      //  Doc     CDocument *pD

ConstraintLayout布局里的一个属性app:layout_constraintDimensionRatio

ConstraintLayout 这是一个约束布局,可以尽可能的减少布局的嵌套。有一个属性特别好用,可以用来动态限制宽或者高app:layout_constraintDimensionRatio 关于app:layout_constraintDimensionRatio参数 app:layout_constraintDimensionRatio=“h,1:1” 表示高度height是动态变化

App Store最低版本要求汇总

1,自此日期起: 2024 年 4 月 29 日 自 2024 年 4 月 29 日起,上传到 App Store Connect 的 App 必须是使用 Xcode 15 为 iOS 17、iPadOS 17、Apple tvOS 17 或 watchOS 10 构建的 App。将 iOS App 提交至 App Store - Apple Developer 2,最低XCode版本 Xcod

鸿蒙自动化发布测试版本app

创建API客户端 API客户端是AppGallery Connect用于管理用户访问AppGallery Connect API的身份凭据,您可以给不同角色创建不同的API客户端,使不同角色可以访问对应权限的AppGallery Connect API。在访问某个API前,必须创建有权访问该API的API客户端。 1.登录AppGallery Connect网站,选择“用户与访问”。选择左侧

隐私计算实训营:SplitRec:当拆分学习遇上推荐系统

拆分学习的概念 拆分学习的核心思想是拆分网络结构。每一个参与方拥有模型结构的一部分,所有参与方的模型合在一起形成一个完整的模型。训练过程中,不同参与方只对本地模型进行正向或者反向传播计算,并将计算结果传递给下一个参与方。多个参与方通过联合模型进行训练直至最终收敛。 一个典型的拆分学习例子: Alice持有数据和基础模型。Bob只有数据、基础模型和fuse模型。 Alice使用自己的数据