电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Android安全問題-網絡傳輸

瀏覽:68日期:2022-09-27 11:39:55
前言

Android開源,開源就意味著無線可能和無線的不安全。現在(2016)市面上的所有Android安全方法基本上有以下幾種:

1.代碼混淆。

2.so處理重要邏輯。

3.加殼

這些都是在客戶端做的處理,然而,如果破解客戶端能獲取的利益大于破解的難度,那么基于開源的Android基本還是會被'破解大軍'進行'三光政策'的。既然都會被破解,那還做這些做什么呢?這就是我之前文章說的,利益和難度的取舍。當我們做了以上3部后,就已經阻絕絕大部分的'破解軍',剩下的哪些頂尖人物怎么辦呢?現在我的處理方法是放在服務端。

問題

要解決問題,首先要有問題,那么對于客戶端來說什么是危險的呢?舉個栗子,當用戶注冊的時候,如果明文傳輸就有可能被攔截到,泄漏用戶密碼的問題。正對這個問題,我來敘述一下自己的解決方案,順便把這篇文章的重點帶出來。

解決

問題:用戶注冊和服務端交互的信息有可能被攔截,導致賬戶等信息泄露。

方法1

將用戶密碼進行MD5后再傳遞。

這種方法也就保證了我們自己也無法知道用戶的密碼是什么。即使被攔截,破解軍獲取到這段信息也無法得知密碼是什么。

PS:這種方法是可取的,但是如果用戶的密碼比較簡單,那也是可以通過暴力破解出來的。所以MD5的方法比較適合用來確保數據的正確性,而不適合作為數據的保密處理。

方法2

使用特殊算法進行加密后在傳遞。

這種方法可以確保即使被攔截到信息,在不知道我們算法的前提下,破解軍也無法獲取有用信息。

不過這里有兩個問題,第一是算法在破解后很容易查詢到,即使是存放在so文件中。第二是這種自己定義算法對性能的要求可能比較高,畢竟我們又不是數學專家。

當然為了更堅固的堡壘,提高破解軍的成本,該方法是可以結合使用的。

方法3

使用AES加密報文后在傳遞。

這種方法和方法2類似,只是AES是當下確定能很好加密數據,且很難暴力破解的方案。當然加密就要解密,而AES的加密和解密使用的通一個key值。那么就需要客戶端存儲一個key值,既然該key值存在客戶端,那么破解的可能性就很大了。針對這個問題,有一個彎路可以考慮,那就是隱藏key值。

這里就記錄一下隱藏key值的小故事,該方法不單是隱藏key值,也可以隱藏很多東西,增加破解的成本。

好,假設我們使用了AES加密,那么就有一個key值,那么我們應該怎么存這個key在客戶端呢?

方法基本有以下這幾種:

SharedPreferences

Java硬編碼

NDK保存在so

發現,除了NDK的方法有點難度,其它兩種基本都是新手破解軍都能搞定的事,那么怎么辦呢?那我就給他來個大雜燴別(年輕人啊)。首先我把key分成了4份。

key = 'whitelaning';

key1 = 'wh';

key2 = 'ite';

key3 = 'lan';

key4 = 'ing';

當需要使用key的時候分別獲取4段可以值合并后才能得到真正的key。

key1寫在string.xml中

mContext().getResources().getString(R.string.something1); 。

ps:為什么叫something1呢,年輕人不懂事...

key2寫在AndroidManifest.xml中

<meta-data android:name='something2' android:value='ite'/> 。

key3寫在so文件中。

#include 'com_jni_JNIUtils.h' JNIEXPORT jstring JNICALL Java_com_jni_JNIUtils_getString (JNIEnv *env, jobject obj) {

return (*env)->NewStringUTF(env, 'something3');} //--------------------------------------- key3 = new JNIUtils().getString();

key4寫在assets的文件中。

Context.getAssets().open(“something4.txt”)

然后...破解的難度提高了,而且也把以后的開發者逼瘋了...哈哈...(棄用)

方法4(使用中)

客戶端 --> 服務端

客戶端使用隨機生成的AES密鑰加密傳輸數據,使用RSA公鑰加密AES的密鑰。

服務端使用RSA私鑰解密出AES的密鑰,再使用AES的密鑰解密加密的數據。

服務端 --> 客戶端

服務端使用RSA解密出AES的密鑰后,使用該AES密鑰解密數據,然后進行業務處理。業務處理完畢后,使用該AES密鑰對數據進行加密,返回給客戶端。

客戶端接收到返回數據后,使用之前請求時隨機生成的AES密鑰進行解析,然后廢棄該AES密鑰。

以上就是一次完整的請求交互過程,當然省略了一些細節上的處理和具體業務。比如數據應該使用MD5來驗證數據的完整性,接口驗證等等。

方法4有點類似 SSL/TLS 協議握手的原理,當然因為Android是開源的,沒必要完全按照 SSL/TLS 協議來實現,畢竟做安全問題的時候,我都是默認我的源碼被盜了的情況下去做的。

來自:http://www.jianshu.com/p/84636b4b21d2

標簽: Android
相關文章:
主站蜘蛛池模板: 立式壁挂广告机厂家-红外电容触摸一体机价格-华邦瀛 | 欧必特空气能-商用空气能热水工程,空气能热水器,超低温空气源热泵生产厂家-湖南欧必特空气能公司 | 软启动器-上海能曼电气有限公司| 山楂片_雪花_迷你山楂片_山楂条饼厂家-青州市丰源食品厂 | SMC-SMC电磁阀-日本SMC气缸-SMC气动元件展示网 | 激光内雕_led玻璃_发光玻璃_内雕玻璃_导光玻璃-石家庄明晨三维科技有限公司 激光内雕-内雕玻璃-发光玻璃 | 求是网 - 思想建党 理论强党 | 重庆磨床过滤机,重庆纸带过滤机,机床伸缩钣金,重庆机床钣金护罩-重庆达鸿兴精密机械制造有限公司 | 电机修理_二手电机专家-河北豫通机电设备有限公司(原石家庄冀华高压电机维修中心) | 温湿度记录纸_圆盘_横河记录纸|霍尼韦尔记录仪-广州汤米斯机电设备有限公司 | 食品机械专用传感器-落料放大器-低价接近开关-菲德自控技术(天津)有限公司 | 电动葫芦|防爆钢丝绳电动葫芦|手拉葫芦-保定大力起重葫芦有限公司 | 生产自动包装秤_颗粒包装秤_肥料包装秤等包装机械-郑州鑫晟重工科技有限公司 | 干法制粒机_智能干法制粒机_张家港市开创机械制造有限公司 | 精密线材测试仪-电线电缆检测仪-苏州欣硕电子科技有限公司 | 鲁尔圆锥接头多功能测试仪-留置针测试仪-上海威夏环保科技有限公司 | 温州中研白癜风专科_温州治疗白癜风_温州治疗白癜风医院哪家好_温州哪里治疗白癜风 | 经济师考试_2025中级经济师报名时间_报名入口_考试时间_华课网校经济师培训网站 | ★店家乐|服装销售管理软件|服装店收银系统|内衣店鞋店进销存软件|连锁店管理软件|收银软件手机版|会员管理系统-手机版,云版,App | 真空包装机-诸城市坤泰食品机械有限公司 | 脱硝喷枪-氨水喷枪-尿素喷枪-河北思凯淋环保科技有限公司 | 北京银联移动POS机办理_收银POS机_智能pos机_刷卡机_收银系统_个人POS机-谷骐科技【官网】 | 温湿度记录纸_圆盘_横河记录纸|霍尼韦尔记录仪-广州汤米斯机电设备有限公司 | 喷播机厂家_二手喷播机租赁_水泥浆洒布机-河南青山绿水机电设备有限公司 | 北京银联移动POS机办理_收银POS机_智能pos机_刷卡机_收银系统_个人POS机-谷骐科技【官网】 | 润滑油加盟_润滑油厂家_润滑油品牌-深圳市沃丹润滑科技有限公司 琉璃瓦-琉璃瓦厂家-安徽盛阳新型建材科技有限公司 | 电动手术床,医用护理床,led手术无影灯-曲阜明辉医疗设备有限公司 | 首页|光催化反应器_平行反应仪_光化学反应仪-北京普林塞斯科技有限公司 | 深圳标识制作公司-标识标牌厂家-深圳广告标识制作-玟璟广告-深圳市玟璟广告有限公司 | 派财经_聚焦数字经济内容服务平台| 自动化改造_智虎机器人_灌装机_贴标机-上海圣起包装机械 | 雪花制冰机(实验室雪花制冰机)百科 | 钢衬玻璃厂家,钢衬玻璃管道 -山东东兴扬防腐设备有限公司 | KBX-220倾斜开关|KBW-220P/L跑偏开关|拉绳开关|DHJY-I隔爆打滑开关|溜槽堵塞开关|欠速开关|声光报警器-山东卓信有限公司 | 定硫仪,量热仪,工业分析仪,马弗炉,煤炭化验设备厂家,煤质化验仪器,焦炭化验设备鹤壁大德煤质工业分析仪,氟氯测定仪 | 浙江建筑资质代办_二级房建_市政_电力_安许_劳务资质办理公司 | 深圳善跑体育产业集团有限公司_塑胶跑道_人造草坪_运动木地板 | 胶原检测试剂盒,弹性蛋白检测试剂盒,类克ELISA试剂盒,阿达木单抗ELISA试剂盒-北京群晓科苑生物技术有限公司 | 云南丰泰挖掘机修理厂-挖掘机维修,翻新,再制造的大型企业-云南丰泰工程机械维修有限公司 | 金属软管_不锈钢金属软管_巩义市润达管道设备制造有限公司 | 骨密度检测仪_骨密度分析仪_骨密度仪_动脉硬化检测仪专业生产厂家【品源医疗】 |