出品 |
CSDN(ID:CSDNNews)
现在面部识别变得随处可见。从购物中心到工作场所,每天你的脸都有可能会被扫描到。
智能手机中的面部识别功能本来应该应用于保护你的信息,但是现在可以通过它能泄露你的个人隐私。
如果你用的是 Android 手机,那么,建议你还是别看这篇文章了。我们使用四款最热门包含 Google Android、苹果 iOS 操作系统的手机来进行测试,验证破解它们是否费事。我们使用一个 3D 打印的头像作为工具。所有的 Android 手机都验证错了,只有 iPhone 手机给出了正确的验证结果。
两个脑袋会更好......
头像是在英国伯明翰的 Backface 打印的,在那里我被引入一个包含 50 个摄像头的圆顶式工作室。这些摄像头结合在一起构成一个完整的 3D 图像。然后将图像加载到编辑软件中,软件会自动将错误信息清除。例如,依照我的信息制作的头像缺少一块鼻子。然后,Backface 使用采用石膏粉进行构建的 3D 打印机构建模型。最后添加一些修饰和色彩,在几天内准备好了,与真人头部非常相似。所有这些只需 300 英镑多点。
在伯明翰 Backface 正在打印的制作的头像
不同 Android 设备的对抗攻击保证安全性的方式存在一些差异。例如,当第一次打开一个全新的 G7 时,LG 实际上警告用户不要打开面部识别。“脸部识别是一种辅助解锁的方法,会导致您的手机安全性降低,”它说,并指出相似的脸就可以打开你的手机。毫不奇怪,在最初的测试中,3D 打印的头像直接打开了它。
然而在验证过程中,似乎 LG 已经更新改进了面部识别功能,使得破解变得更加困难。正如 LG 发言人所述,“面部识别功能可以通过增加一个第二步的识别步骤和按照 LG 建议进行设置的方式获得安全性的提升。LG 不断寻求通过更新来提升设备稳定和安全性。“ 他们补充说,面部识别被视为其它如 PIN 或指纹之外的“辅助解锁功能”。
在三星 S9 上注册时也有类似的警告。“你的手机可能会被一个看起来像你的人解锁,”它指出。“如果你只使用面部识别,这将比使用 PIN 或密码安全性低。” 但奇怪的是,在设置设备时,第一个解锁选项是面部和虹膜识别。虹膜识别正确识别被假头像的眼睛,但是面部识别确验证错了,尽管面部识别时需要先尝试几个不同的角度和光线亮度。
我们使用我自己的真实面部信息注册了五部手机用于测试。一部 iPhone X 和四款 Android 设备:LG G7、三星S9、三星 Note 8 和 OnePlus 6。之后我使用头像进行验证操作,看看设备是否可以解锁。虽然难易度不同,但头像都可以通过验证打开所有的 Android 手机。iPhone X 是唯一验证正确的。
Note 8 具有一个打开“更快识别”的功能,服务于制造商自己的准入认证,不如慢速的认证安全。在这种情况下无关紧要,因为在两种设置下都可以被破解,尽管使用较慢的认证确实需要在光线和角度方面做出更多努力。对于 S9 和 LG 的较慢版本也是如此,虽然后者证明更难以破解。(一位三星发言人告诉称:“面部识别是打开手机的一种方便操作 - 类似于'轻扫解锁'。我们提供最高级别的生物识别验证 - 指纹和虹膜 - 锁定手机,并验证访问三星支付或安全文件夹的权限。“)。
OnePlus 6 既没有用其他 Android 手机的警告提示,也没有选择更慢但更安全的识别技术。并且,尽管在注册面部信息时使用有一些科幻风格的面部扫描图形,但当出现头像时,手机会立即打开。毫无疑问,它是我们测试的设备中最不安全的。
OnePlus 的一位发言人说:“虽然基于便利性去设计了面部解锁,同时采取了相应的措施来优化安全性,但我们始终建议您使用密码/ PIN /指纹来保证安全。基于此,面部解锁不支持例如银行或支付的任何安全应用。我们一直在努力改进我们的所有技术,包括面部解锁。“
苹果公司对其技术的投资成效显著。该公司与一个好莱坞工作室合作创建逼真的面具来测试 Face ID 。Face ID 做出了正确的识别,这些模型没有能够完成破解。
微软同样也做得很好。逼真的头像同样没有欺骗到 Windows Hello 面部识别。
让我们高兴的是,世界上最有价值的两家公司提供了最好的安全认证服务。
使用你的大脑,而不是你的脸
那些担心有人可以通过使用我们用的或其他方法让他们的设备验证失效,应该不会使用面部识别功能。网络安全承包商 NCC 集团的研究主管马特·刘易斯建议他们,作为为替代方案,可以使用复杂的密码来保证安全。“使用私密数据,即 PIN 和密码,”他补充道。“现实中任何生物识别都是可以被复制的。那些有足够的时间、资源的人会去尝试绕过这些生物识别技术。”
原文:https://www.forbes.com/sites/thomasbrewster/2018/12/13/we-broke-into-a-bunch-of-android-phones-with-a-3d-printed-head/#2ea460d21330
作者:Thomas Brewster ,Forbes 职员,以数字和物理形式报道犯罪,隐私和安全。
本文为 CSDN 翻译,如需转载,请注明来源出处。
热 文
推 荐
微软彻底告别移动操作系统!
不止 JavaScript 与 React,前端程序员必备的 9 大技能!
老代码多=过度耦合=if else?阿里巴巴工程师这样捋直老代码 | 技术头条
区块链,会越来越无聊!
女程序员:我负责赚钱养家,老公负责貌美如花
任正非:人工智能就是计算机和统计学
K8S的SDN容器网络解决方案【机制篇】
☞
心疼!能为程序员男友做些什么吗?
print_r(
'点个好看吧!'
);
var_dump(
'点个好看吧!'
);
NSLog(@
"点个好看吧!"
);
System.out.println(
"点个好看吧!"
);
console.log(
"点个好看吧!"
);
print
(
"点个好看吧!"
);
printf
(
"点个好看吧!"
);
cout <<
"点个好看吧!"
<< endl;
Console.WriteLine(
"点个好看吧!"
);
fmt.Println(
"点个好看吧!"
);
Response.Write(
"点个好看吧!"
);
alert(
"点个好看吧!"
)
echo
"点个好看吧!"
点击“阅读原文”,打开 CSDN App 阅读更贴心!
喜欢就点击“好看”吧
可生成圆形、方形、及方形的组合
头像
。项目地址:https://github.com/Pedroafa/avatar-
android
效果图:如何
使用
:首先创建个ImageView<ImageView
android
:id="@ id/roundedAvatar"
android
:layout_height="fill_parent"
android
:layout_width="fill_parent"/>2. //通过AvatarDrawableFactory生成各种形状的Drawable
AvatarDrawableFactory avatarDrawableFactory = new AvatarDrawableFactory(getResources());
BitmapFactory.Options options = new BitmapFactory.Options();
options.inMutable = false;
Bitmap avatar = BitmapFactory.decodeResource(getResources(), R.drawable.avatar, options);
//圆形的
Drawable roundedAvatarDrawable = avatarDrawableFactory.getRoundedAvatarDrawable(avatar);//生成圆形的Drawable
ImageView roundedAvatarView = (ImageView)rootView.findViewById(R.id.roundedAvatar);
roundedAvatarView.setImageDrawable(roundedAvatarDrawable);其他形状的://圆形的且带边框的
Drawable borderedRoundedAvatarDrawable = avatarDrawableFactory.getBorderedRoundedAvatarDrawable(avatar);
ImageView borderedRoundedAvatarView = (ImageView)rootView.findViewById(R.id.borderedRoundedAvatar);
borderedRoundedAvatarView.setImageDrawable(borderedRoundedAvatarDrawable);
//方形的
Drawable squaredAvatarDrawable = avatarDrawableFactory.getSquaredAvatarDrawable(avatar);
ImageView squaredAvatarView = (ImageView)rootView.findViewById(R.id.squaredAvatar);
squaredAvatarView.setImageDrawable(squaredAvatarDrawable);
//俩个方形的组合
头像
Drawable doubleSquaredAvatarDrawable = avatarDrawableFactory.getSquaredAvatarDrawable(avatar, avatar);
ImageView doubleSquaredAvatarView = (ImageView)rootView.findViewById(R.id.doubleSquaredAvatar);
doubleSquaredAvatarView.setImageDrawable(doubleSquaredAvatarDrawable);
//三个方形的组合
头像
Drawable tripleSquaredAvatarDrawable = avatarDrawableFactory.getSquaredAvatarDrawable(avatar, avatar, avatar);
ImageView tripleSquaredAvatarView = (ImageView)rootView.findViewById(R.id.tripleSquaredAvatar);
tripleSquaredAvatarView.setImageDrawable(tripleSquaredAvatarDrawable);
//四个方形的组合
头像
Drawable quadrupleSquaredAvatarDrawable = avatarDrawableFactory
.getSquaredAvatarDrawable(avatar, avatar, avatar, avatar);
ImageView quadrupleSquaredAvatarView = (ImageView)rootView.findViewById(R.id.quadrupleSquaredAvatar);
quadrupleSquaredAvatarView.setImageDrawable(quadrupleSquaredAvatarDrawable);
CuraEngine到
Android
移植
1、打开
Android
studio,新建c++工程。
2、将引擎所以源码导入.\app\src\main\cpp中。(引擎源码最好通过git clone下载)
3、修改cmkelists,首先将两个中间件protobuf和arcus去掉。然后将生成exe去掉。具体如图
将clipper编译成动态库。
将其他所有源码编译成动态库。
连接上述两个库。
再连接多线程。
编译native-lib动态库。
连接到源码库。
分别连接log-lib库。
由于要做
打印
机过热验证测试,需要通过
打印
黑块来提高
打印
机的温度。
于是通过
打印
光栅位图 来提升
打印
机温度做过热验证。
GS v 0 m xL xH yL yH d1…dk
打印
光栅位图
【格式】 ASCII码 GS v 0 m xL xH yL yH d1…dk
十六进制码 1D 76 30 m xL xH yL yH d1…...
该文章讲述了
Android
原生态开发过程中设置用户原型
头像
的实现过程。主要
使用
到技术有:
Android
原生态开发、CircleImageView圆形图片视图、Crop裁剪工具等。
1.业务介绍
业务具体流程可以分为一下几个过程:
1.用户点击进行圆形
头像
设置,可以选择拍照设置和从本地选择图片进行设置两种设计方案。(一下以拍照设置为例进行说明)
2.调用
手机
相机进行拍照
3.获取拍照照片后调用Crop工具进行照片裁剪。
4.将照片资源添加到CircleImageView视图中。
下面将对整个过程进行详细讲.
Ewebeditor是一
款
常用的网页编辑器,但是如果用户没有进行授权或者授权出现问题,会出现“未授权:功能被禁用,请先配置授权!”的提示。这个提示意味着用户需要购买授权或者重新配置授权密钥才能够
使用
Ewebeditor的所有功能。
要解决这个问题,我们可以按照以下步骤进行:
1. 购买授权
用户可以前往Ewebeditor官方网站购买授权,按照指引进行安装和激活。购买授权后可以解锁Ewebeditor的所有功能。
2. 配置授权
如果用户已经购买了授权但仍然遇到“未授权”提示,可能是授权密钥没有正确配置。用户需要将授权密钥正确地输入到Ewebeditor的设置里面才能继续
使用
。在Ewebeditor的设置界面中,用户可以找到授权设置并输入正确的授权信息。
总之,如果你遇到了“未授权:功能被禁用,请先配置授权!”这个提示,不要
惊慌
,尝试按照以上方法进行解决。购买授权或者重新配置授权信息,都可以解决这个问题,让你快速恢复Ewebeditor的功能。