【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

专访友录创始人姜洋,谈移动客户端安全

  • 2011-12-22
  • 本文字数:1590 字

    阅读完需:约 5 分钟

姜洋是知名手机软件“友录通讯录”的创始人之一,该软件1 年间收获了超千万次的下载,日前友录团队悄然推出了新的商务社交应用“友联系”,主打纸质名片识别、电子名片交换、同道聚会等维护和拓展人脉的功能。

从保存和保护用户备份的通讯录数据,到协助用户拓展人脉关系,安全性始终是姜洋及其团队考虑的重中之重,多年移动开发的经验也让他在这方面逐步有了真正的经验积累。针对近期用户信息泄露泄露的系列安全事件,InfoQ 对他进行了专访。

InfoQ:从移动客户端开发的安全来讲,您觉得最应该注意的是哪些东西?

姜洋:手机客户端的安全,首先密码不能明文保存,这是最基本的。一般都是做一个 MD5 加密,但是反向 MD5 的库其实也挺多的,所以 MD5 这事儿也并不那么安全。我觉得还是要用一些对称的加密策略,去加密和服务器通讯的协议,一般是用 AES。如果用 AES,必然涉及到密钥,这个密钥如果直接写在程序里面,也是不安全的,有可能被反编出来。如果使用常量,也肯定很容易就找到了,特别是 Java,Java 是可以反编译的,就是混淆了也可以被找的到。

我们用的办法是这样:我们的密钥是 t 和平台相关的,Android 平台用这个,iOS 用另外一个,Windows Phone 再换一个,这可以加强反编译的难度。还有很重要的一点:这个密钥也就是用一个函数算出来的,而不是写在常量里边,这是我们目前的做法。

手机客户端的安全这块儿,目前业界做得挺糟糕的。去年,美国的 Instagram 就出现了明文传输用户名和密码的重大安全漏洞。现在好多软件和新浪微博、FaceBook、QQ 这些 SNS 平台是打通的,只要知道一个密码,就相当于他什么都知道了,这个也很不安全。如果走 WiFi,通过 WiFi 抓取上行数据,WiFi 里边经过的各种协议和信息都有可能被截获,然后知道用户的密码,特别是公共 WiFi 上。

我觉得加密这个东西,很难做到非常彻底,真要想把你的密钥找出来,目前也能找出来,只不过是增加他们的成本。有时候我觉得更主要的原因,还是出于程序员比较懒,由于懒的结果才犯这种错。

在后端服务器的安全上,我们在一开始创业的时候也强调得非常多。现在友录整个的数据已经上亿条了,我估计会有黑客惦记,所以我们也比较紧张。特别现在安全事故也发生挺多的,我们反正也经常强调吧。

InfoQ:像我们 InfoQ 的很多读者除了是技术人员之外,他本身也是用户,从用户角度出发,您还有哪些安全方面的建议?

姜洋:我建议他们不用那些安全上不靠谱的应用,但这可能也不太现实。用户反正一直就看那功能对他有没有价值,有他可能就去下载了。我觉得这个只能靠提高从业人员的素质。莫名其妙的一个应用装上,没有品牌的这样一个应用,特别是说谁做了一个打通新浪微博的应用,然后用了一下,就可能会出问题。用户在用应用的时候,最好知道可能会发生什么,那会好一点。

这就好比说:大街上随便谁放一个提款机,让你把银行卡插进去,然后你就指着从里边取出来钱,其实这两个事挺类似的。之前好像也有人造那种假的提款机出来,然后窃取用户密码,你的钱就被偷走了。我觉得现在的互联网行业有点类似。

InfoQ:也就是说其实这种隐患还是很多的,用户一定要自己长个心眼就对了?

姜洋:对,这没啥办法,可能你大街上放个取款机这事儿挺大的,有人来查你。但是做一个 App 太容易了,目前没啥好办法。

InfoQ:这次用户信息泄露事件,你觉得大家应该从里面吸收什么样的经验教训?

姜洋:我觉得这给整个行业提了个醒,所有做同类事情的,保存用户名、密码的,都留神点。但因为某几个程序员懒了一下,就如何如何了,我觉得也不会。还是领导不够重视,领导如果亲自盯一下,问的多一点,把每个细节关键细节都问一遍,应该也不至于发生这种事。

InfoQ 安全系列—专访韩轶平:整个行业都要提高安全意识

InfoQ 安全系列—专访土豆网技术副总黄冬:后端服务器的隔离非常重要

InfoQ 安全系列—专访安全宝 CEO 马杰:安全需要做到整条战线的严丝合缝

InfoQ 安全系列—安全问题成为社区热点

2011-12-22 20:281905
用户头像

发布了 479 篇内容, 共 152.4 次阅读, 收获喜欢 47 次。

关注

评论

发布
暂无评论
发现更多内容

MobTech MobLink|引流统计一站式服务

MobTech袤博科技

向量嵌入:AutoGPT的幻觉解法?

OneFlow

卷起来了!阿里最新出品“微服务全阶笔记”,涵盖微服务全部操作

收到请回复

架构 #编程 #微服务

灾备的级别和等级划分

穿过生命散发芬芳

灾备 三周年连更

“精准测试” 在商家地址专项的探索 | 得物技术

得物技术

北大GPT解题有数学老师内味了,用人话讲难题,从高中数学到高数都能搞定

Openlab_cosmoplat

人工智能 开源社区

九科信息流程挖掘产品bit-Miner即将开放面向对象流程挖掘能力

九科Ninetech

流程挖掘

让 AI 更简单 人工智能平台 SEAL 携手龙蜥落地达摩院算法能力 | 龙蜥案例

OpenAnolis小助手

开源 操作系统 SEAL 达摩院 龙蜥案例

Django笔记十六之aggregate聚合操作

Hunter熊

Python django 聚合 aggregate

Go语言并发编程核心-Channel的典型应用场景分析

Jack

如何开发一个小程序自定义组件

Onegun

小程序 前端 小程序组件

提交代码「前置处理」,向前一小步,效率提升「亿点点」

极狐GitLab

DevOps 极狐GitLab git hook lefthook 代码前置

视频大文件传输的演变:从“卷轴男孩”到自动化

镭速

Nautilus Chain :基于模块化架构的Layer3正在走向成熟

股市老人

Go RWMutex:高并发读多写少场景下的性能优化利器

陈明勇

Go golang 读写锁 三周年连更 RWMutex

Oracle EBS学习篇:Oracle EBS启用诊断功能

back_wang

TPU、TensorFlow—谷歌云“增强”AI 芯片团队,与微软云竞争AI云份额

B Impact

2022-04-25:给定两个长度为N的数组,a[]和b[] 也就是对于每个位置i来说,有a[i]和b[i]两个属性 i a[i] b[i] j a[j] b[j] 现在想为了i,选一个最

福大大架构师每日一题

golang 算法 rust 福大大

HarmonyOS Codelabs最新参考

坚果

OpenHarmony 三周年连更

在企业内容城池边,它建立起一支保卫军

ToB行业头条

智慧园区数字转型下的移动App建设策略

Onegun

移动应用 智慧城市 智慧园区

MegEngine 使用小技巧:量化

MegEngineBot

量化 MegEngine

把“ai模型+低代码”应用在项目管理中,效率翻了好几倍

优秀

AI 低代码

一文带你了解 TypeScript 泛型

程序员海军

typescript 三周年连更

Nautilus Chain :基于模块化架构的Layer3正在走向成熟

EOSdreamer111

如何利用 Go 创建一个 Web 应用

宇宙之一粟

Go Web 服务端 客户端 三周年连更

走进社区客户端测试 | 得物技术

得物技术

测试

您有一份直播回放待查收!

BinTools图尔兹

直播回放 版本发布

手势识别:让你的手成为计算机的新界面

来自四九城儿

深度分享 | API 测试经济学与 API First 践行

Apifox

程序员 前端 接口 后端 API

关于时间管理的一点建议

光毅

时间管理 Tech Lead

专访友录创始人姜洋,谈移动客户端安全_安全_郑柯_InfoQ精选文章