iOS移動(dòng)端防止被抓包

首先介紹一下在https建立的過程中是如何被中間人抓到包的吧甲馋,前提是如果不熟悉https建立連接的過程埂奈,先看一下相關(guān)資料再接著看本文


移動(dòng)端防止被抓包

過程分析

  • 客戶端首先要向遠(yuǎn)程的服務(wù)器發(fā)送建立連接的請(qǐng)求,并帶有自己的支持的加解密的方式級(jí)別定躏,這個(gè)過程經(jīng)過了中間人的竊聽账磺,中間人把消息修改后發(fā)給了真正的目的地——服務(wù)端
  • 服務(wù)端收到了要建立https鏈接的請(qǐng)求后,會(huì)發(fā)送當(dāng)時(shí)從證書簽發(fā)機(jī)構(gòu)簽發(fā)的公鑰證書共屈。這個(gè)過程中中間人又竊聽了绑谣,然后中間人替換上自己的證書后又轉(zhuǎn)發(fā)給了客戶端。
  • 客戶端收到了中間人發(fā)過來的公鑰證書拗引,驗(yàn)證證書的真?zhèn)谓柘a(chǎn)生隨機(jī)的對(duì)稱加密的密鑰,用中間人發(fā)的公鑰加密后發(fā)給了中間人矾削。由于剛才客戶端收到的公鑰證書本身就是中間人產(chǎn)生的壤玫,所以中間人用相應(yīng)的私鑰就解開了,拿到了客戶端產(chǎn)生的那個(gè)隨機(jī)產(chǎn)生的對(duì)稱加密密鑰哼凯。中間人再用剛才服務(wù)端返回的公鑰證書加密這個(gè)客戶端產(chǎn)生的用來對(duì)稱加密的密鑰欲间,發(fā)給服務(wù)端。
  • 服務(wù)端收到了當(dāng)時(shí)用自己下發(fā)的公鑰的證書加密的對(duì)稱加密密鑰断部,用自己的私鑰解密猎贴,也得到了對(duì)稱加密的密鑰。
    以后的通信都使用這個(gè)對(duì)稱加密的密鑰加密了蝴光。因?yàn)榭蛻舳怂剩虚g人,服務(wù)端都有了這個(gè)對(duì)稱加密的密鑰蔑祟,所以都可以用此解密通信的內(nèi)容趁耗。(上面的步驟是穿插了HTTPS建立握手過程和中間人的作用介紹的,屬于簡(jiǎn)潔介紹疆虚,明白原理就可以了)苛败。
    上面有幾個(gè)字“驗(yàn)證證書的真?zhèn)巍睒?biāo)為了紅色满葛,其實(shí)一般來說這個(gè)過程應(yīng)該是安全的,因?yàn)橐话愕淖C書都是由操作系統(tǒng)來管理(Firefox自己管理)的罢屈,所以只要操作系統(tǒng)沒有證書鏈驗(yàn)證等方面的bug是沒有什么問題的嘀韧,但是為了抓包其實(shí)我們是在操作系統(tǒng)中導(dǎo)入了中間人的CA,這樣中間人下發(fā)的公鑰證書就可以被認(rèn)為是合法的儡遮,可以通過驗(yàn)證的(中間人既承擔(dān)了辦法了證書乳蛾,又承擔(dān)了驗(yàn)證證書暗赶,能不通過驗(yàn)證嘛)鄙币。

解決問題方案

客戶端為了解決這個(gè)問題,最好的方式其實(shí)就是內(nèi)嵌證書蹂随,比對(duì)一下這個(gè)證書到底是不是自己真正的“服務(wù)端”發(fā)來的十嘿,而不是中間被替換了。

下面就介紹一下解決的步驟吧:

1岳锁、問運(yùn)維要到接口站點(diǎn)的證書(即當(dāng)初證書機(jī)構(gòu)簽完的那個(gè)放到nginx里的公鑰證書)绩衷,放到工程里面就可以,AF會(huì)自動(dòng)去查找
2激率、AFNetworking設(shè)置以下代碼

AFSecurityPolicy * policy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];
_manager.securityPolicy = policy;

AF的安全策略會(huì)自動(dòng)的在bundle里面查找公鑰證書咳燕,建立https的時(shí)候進(jìn)行比對(duì)。不一樣直接就失敗了乒躺。

PS:順帶介紹一下AF的AFSSLPinningMode的三個(gè)級(jí)別

  • AFSSLPinningModeNone: (默認(rèn)級(jí)別)招盲,客戶端無條件信任任何下發(fā)的公鑰證書
  • AFSSLPinningModePublicKey: 客戶端本地去驗(yàn)證服務(wù)端下發(fā)的公鑰證書的 public keys部分。如果正確才通過
  • AFSSLPinningModeCertificate: 客戶端本地去驗(yàn)證服務(wù)端下發(fā)的公鑰證書的所有部分嘉冒。如果正確才通過

這樣做了之后曹货,就可以即使手機(jī)上安裝了抓包工具的CA,抓包工具也不能抓到包了讳推。因?yàn)槟愕目蛻舳嗽隍?yàn)證“服務(wù)端”下發(fā)的公鑰證書的真?zhèn)蔚臅r(shí)候就不會(huì)通過“中間人”下發(fā)的公鑰證書顶籽,也就不會(huì)建立起來https的連接了。
其實(shí)使用了https银觅,并且在系統(tǒng)沒有被攻破或者有證書漏洞的時(shí)候就能保證通信過程的安全了礼饱。但是這樣可以更近一步,以防止競(jìng)爭(zhēng)對(duì)手抓取你們的數(shù)據(jù)之類的究驴,畢竟數(shù)據(jù)被別人抓走了總是不好的镊绪。在寫這個(gè)博文的時(shí)候嘗試了一下可以被中間人抓包工具抓到完整包的有很多,知乎纳胧,貼吧镰吆,等好多。但是銀行的金融類app就抓不到跑慕,相對(duì)的安全了很多了万皿。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末摧找,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子牢硅,更是在濱河造成了極大的恐慌蹬耘,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件减余,死亡現(xiàn)場(chǎng)離奇詭異综苔,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)位岔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門如筛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人抒抬,你說我怎么就攤上這事杨刨。” “怎么了擦剑?”我有些...
    開封第一講書人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵妖胀,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我惠勒,道長(zhǎng)赚抡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任纠屋,我火速辦了婚禮涂臣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘巾遭。我一直安慰自己肉康,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開白布灼舍。 她就那樣靜靜地躺著吼和,像睡著了一般。 火紅的嫁衣襯著肌膚如雪骑素。 梳的紋絲不亂的頭發(fā)上炫乓,一...
    開封第一講書人閱讀 49,185評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音献丑,去河邊找鬼末捣。 笑死,一個(gè)胖子當(dāng)著我的面吹牛创橄,可吹牛的內(nèi)容都是我干的箩做。 我是一名探鬼主播,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼妥畏,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼邦邦!你這毒婦竟也來了安吁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤燃辖,失蹤者是張志新(化名)和其女友劉穎鬼店,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體黔龟,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡妇智,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了氏身。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片巍棱。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖观谦,靈堂內(nèi)的尸體忽然破棺而出拉盾,到底是詐尸還是另有隱情,我是刑警寧澤豁状,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站倒得,受9級(jí)特大地震影響泻红,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜霞掺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一谊路、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧菩彬,春花似錦缠劝、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至耙旦,卻和暖如春脱羡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背免都。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來泰國(guó)打工锉罐, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人绕娘。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓脓规,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親险领。 傳聞我的和親對(duì)象是個(gè)殘疾皇子侨舆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容