facebook解析包出現問題(記websocket遇到的問題以及解決方法) - 副本

时间:2024-05-15 09:43:49 编辑: 来源:

下載軟件時,出現解析包錯誤是什么意思?

下載軟件時,出現解析包錯誤的意思如下:

1、安裝包不完整,無法正常安裝軟件。

2、系統版本與軟件版本不兼容。

解決方案如下:

1、安裝時出現如下圖所示提示,則代表著解析包可能有所損壞或者系統版本與軟件版本不兼容。

2、先進入手機或者電腦的“文件管理”中刪除掉這個損壞的解析包。不刪除的話即使重新下載后也會安裝失敗。

3、然后再去正規網站或者手機的應用商店重新下載這個軟件。(下載地址不正規會出現解析包錯誤或安裝包不完整。)

4、這時就可以成功進行安裝了。

5、如果重新下載后依然提示解析包錯誤,那么就是手機軟件要求的版本高于現在手機的版本,比如軟件要求4.3以上,而所持有的手機版本是4.2,那么就會提示解析包錯誤,這樣也可以去下載軟件的舊版本,或者去下載同類型的其他軟件。

完成以上步驟就可以解決解析包錯誤的事情了。解決方法簡單易操作。

.試分析寶潔縮減精準廣告的原因是什么?(15分)

寶潔公司營銷策略與風險控制策劃

一、基本經營情況

寶潔公司(Procter&Gamble),簡稱P&G,是一家美國消費日用品生產商,也是目前全球最大的日用品公司之一。最初由蠟燭生產商(William Procter)和肥皂商(James Gamble)在1837年合伙而成。公司及制造廠創立于美國俄亥俄州 的辛辛那提,現今寶潔公司在全球80多個國家設有工廠或分公司,擁有雇員近140,000人。2008年,寶潔公司是世界上市值第6大公司,世界上利潤第14大公司。他同時是財富500強中第十大最受贊譽的公司。寶潔公司在全球所經營的300多個品牌的產品暢銷160多個國家和地區其中包括美容美發、居家護理、家庭健康用品、健康護理、食品及飲料等。

二、現狀分析

寶潔近年來一直飽受業績不景氣、品牌老化的困擾,雖然進行了大刀闊斧的改革:2014年,寶潔砍掉了40%的代理商,節省了15%的代理和制作費用。2015年,它又大規模砍掉了100多品牌,在廣告營銷方面總共花費了82億美元……但這些改革收效甚微,截至今年6月30日,寶潔的年銷售額為653億美元,比上一年下降了8%。財報顯示,寶潔旗下所有業務部門的銷售量均出現了下降,美容、梳洗護理、健康護理、紡織品護理及家居護理、嬰兒女性及家庭護理這5個重要的品類甚至出現了雙位數跌幅。在中國,寶潔的市場占有率也一直在下降。2016年第二季度財報會議上,寶潔全球首席執行官David Taylor表示,2016年的廣告費用會以個位數的幅度進行增長,花費主要用于媒體投入和給消費者提供試用產品。這則消息之所以在廣告營銷領域引起軒然大波,還在于寶潔透露了另一個關鍵信息,將屆時調整其在Facebook等社交平臺上的精準投放策略。華爾街日報分析稱,寶潔很可能會縮減在Facebook上“精準投放”的廣告費用,因為投放效果并不明顯。同時加大對電視等傳統媒體的投入。

迷思一:快消品投放應該走大眾化還是精準化之路?

在廣告界有一個著名的難題,就像“歌德巴赫猜想”一樣長期困擾著廣告人。著名廣告大師約翰•沃納梅克提出:我知道我的廣告費有一半浪費了,但遺憾的是,我不知道是哪一半被浪費了。

很多廣告主希望把滿天撒網的廣告變成一種精確的目標廣告,從而實現“每一個子彈消滅一個敵人”的目的,只有這樣,廣告費才“有錢花到刀刃上”。于是,精準傳播、精準滲透、窄告等概念應運而生。這些概念在成本與收益上,起碼在“不浪費”上,滿足了企業主的需求。從“廣而告之”向“窄爾告知”演變,貌似解決了“被浪費的那一半廣告費”問題。

但,事實上,廣告的浪費是必須的!

廣告心理學的研究表明:越是不容易控制的信息傳播途徑,產生的效果就越大。廣告想要最大限度地發揮作用,還必須回到“廣而告之”的核心功能上來。

廣告對消費者購買決策的影響是一個長期持續的過程,窄告雖然精準,但缺少了覆蓋性的長期影響,接觸頻次的不足將很難帶來實際的銷售。

必要的浪費是為了最終更好的達成效果,沒有浪費的那一半,也就沒有被吸收的那一半。(如沒有達到基礎的投入門檻值,很可能就全軍覆沒)

迷思二:單薄的產品訴求廣告如何滿足用戶“與眾不同”的需求?

有商學院教科書將寶潔的這一大眾化廣告策略總結為一個公式,即寶潔廣告=提出問題+解決問題,無論是飄柔還是海飛絲的廣告,都遵循這樣一個邏輯:指出你所面臨的一個問題來吸引你的注意,緊接著會告訴你適宜的解決方案,這就是寶潔的策略及其特有功效。

寶潔的廣告幾乎都是在向消費者直接陳述產品的功能,每一個產品都牢牢把握策略的支撐然后進行傳播,由此在全世界取得了巨大的成功。

然而,頭屑去無蹤秀發更出眾、8萬微孔一觸瞬吸、1支牙膏對抗7大口腔問題,這種一成不變的填鴨式功能訴求,沒有話題性,不適合求時髦的現代年輕人。

過去的消費者,其實內心深處也有要“與眾不同”的沖動。可是,在沒有互聯網的時代,她只可能在電視和超市里看到新的品牌,可是,有了互聯網,一切都不同了。

在數字營銷時代,寶潔模式似乎不再被人看好,因為“參與感”為核心的自媒體廣告策略正在興起(圍繞用戶體驗為核心,展開一系列的營銷動作,也包括事件營銷、病毒式營銷等)。對快消品而言,更具有挑戰性的是,在產品策略不那么湊效時,如何制造出能觸達人心,迎合受眾“與眾不同”心理需求的創意策略?

三、網絡營銷實施策略

近兩年,這種與電商平臺合作的營銷模式已成為傳統快消巨頭寶潔推出新產品的常態。

“陽光的味道是什么?”“怎樣洗凈央視大褲衩?”“什么可以吸干黃浦江?”這是寶潔海外旗艦店聯合天貓國際于4月發起的“寶潔全球尋奇記”營銷項目。沒有以往常用的明星代言,而是以“腦洞”式提問吸引著新一代的家庭主婦們。

寶潔與天貓合作的最新營銷項目——“全球尋奇記”

直播以實驗為主,30分鐘獲得了超過30萬的點贊

一場沒有產品的“超酷營銷”

2016年4月,通過一則名叫“她最后去了相親角”的視頻,讓很多人第一次知道了寶潔(Procter & Gamble,簡稱P&G)旗下護膚品牌SK-II的營銷新口號——“change destiny,改寫命運”。

沒有“寶潔式廣告”常用的科研專家、大牌明星或產品功能介紹,且僅有片尾一次品牌LOGO露出,“她最后去了相親角”卻因鮮明的價值取向被不少人視為一次“超酷”的品牌營銷。

視頻發布當天,行業內外的意見領袖們取代了寶潔和SK-II品牌方,紛紛微博轉發,并使其在社交平臺大火。整個案例還獲得了戛納玻璃獅子獎和公關類金獎。

這4分16秒真真實實地提升了銷售數據。SK-II全球總裁斯特羅貝爾在接受彭博社采訪時稱,“她最后去了相親角”推出后的9個月內,該品牌銷售上漲50%。2017財年,寶潔一季度中國市場錄得2%的有機增長,其中增長了10%的SK-II成為了至關重要的驅動力。

內容營銷是大勢所趨!!!

我的網絡營銷策略具體方案(以SK-II為例):

品牌方:SK-II

產品類型:護膚品

功能:特效保濕、深度滋潤;修復皺紋、復活細胞;改善肌膚生理、促進血液循環;抑制黑色素沉淀;調節肌膚PH值、收斂毛孔;鎮定日曬后肌膚;抑制發炎反應

目標人群:20- 45 歲的女性群體

產品的出現是為了滿足人們的需求的,大家不需要的東西,花再大的力氣去營銷也是白費勁。

對于品牌來說,第一步就是要找到產品的需求在哪兒,一般分為外在和內在需求。

外在需求就是,看到維密緊致的肌膚,就琢磨著怎么讓自己的肌膚也變得白嫩光滑,然后回眸一笑撩倒眾生一片;

內在喚起的動機,就是洗臉時照鏡子,驚覺未到30,肌膚卻黯淡無光,惶恐中迫切需要保養。

發現需求后,就可以結合產品和服務,用營銷對人們的欲望產生影響并滿足需要,首要的溝通目標就是讓大家注意到自己的存在。這個時候可以找一些白領、創業者、IT從業者等人群聚集的平臺,以及相關垂直媒體,對“SK-II”的產品性能做深度解析,吸引關注,提升對品牌的認可。

第二步 讓消費者全方面地了解自己

當別人發現有產品能阻止自己在皮膚松弛的道路上越走越遠后,就會主動地去搜索相關產品信息,包括功能、特性、價值等,比丈母娘調查女婿還要仔細。

這個時候產品就需要把該做好的都做好,在無形中展現自身各個方面的優勢。

比如契合年輕群體中不同職業的人,制作有代入感、趣味性的短視頻,描述其加班的情況,配上搞笑的語言,然后嚴肅地講解該如何緊致肌膚,品牌的產品如何支持他們等等,把視頻放在網站上,進行導流。

然后編一個有內涵的故事進行傳播,讓品牌活起來,更有價值:

從前一個古老的傳說。年輕的人尋找永葆青春的力量,卻苦苦不得。直到有一天在藥材山上遇到一位神秘的人,賜予了其力量,而唯一的約定,就是每天用山上的泉水洗臉,力量就永不消失。我們的使命就是保持這份力量。

比如在微博、買粉絲上針對年輕人,按照 10 萬加的文章格式,發布相關文章……引起消費者共鳴,獲得心理上的認同和滿足。比如在海報上,說出他們的心聲。比如在微博上請男神進行話題討論,然后直接導流到官網或電商網站上,并提供流暢的購買過程體驗,直接增加銷售。

“真正的銷售是從售后開始的”。消費者購買產品后不代表一切就結束了,對品牌和產品真正形成印象的,恰恰是購買、使用了產品之后開始的,雙發的信任也從此刻才開始真正起步。

消費者會通過親身使用、家庭成員與親友的評判,來對購買行為進行檢驗,重新考慮其是否明智,效用是否理想,最終形成購買后的感受。因此賣完神仙水后,還應該重視售后,調查消費者具體的使用情況和感受,和他們建立長期緊密的聯系。

四、網絡營銷的風險控制策劃

風險控制措施:

1、增設配送中心,發展自己的物流:寶清高效率的物流配送中心一直以來被業界認為是寶潔成功的關鍵因素之一。根據現時的實際情況,詳細規劃未來配送中心的選址等問題,增設配送中心。并在物流資訊公司專業意見下,啟適合的立體倉庫、自動化分揀系統等自動化物流設備,建立功能及設施設備完善的配送中心,盡可能提高相關的軟件及硬件設備、設施功能,以滿足寶潔的發展需求。

2、優先選擇信息化程度高的供應商:中國的網絡環境目前遠不及美國,供應商方面也沒有完全實現數據化來支持網絡,他們只能在寶潔的帶動下,做簡單的數據交換,完全缺乏對生產、銷售等情況更詳細、更先進的數據監控和反饋能力。在這種情況下,寶潔在選擇供應商時可以考慮優先選擇信息化程度高的供應商,或者幫助那些信息化薄弱的供應商改進信息系統,與供應商之間建立良好的協作關系,從而才能使寶潔的信息系統不斷得到完善。這樣才能保證產品質量。

3、提高公司信譽和產品質量:一個公司只有擁有良好的信譽才能走得長久,產品擁有好的質量才能獲得顧客的信任。

4、加強培調,提高員工素質: 有沒有一批好的員工.是公司能否在競爭中取得主動,在發展中獲得成功的一個重要基礎。因此,寶潔在員工管理方面可以實施配套的人力資源政策,只要包括以下四個方面:一是為員工提供合理的報酬,創造良好的勞資關系,并通過科學的績效考評,對員工實施晉升和獎勵制度,使符合企業價值觀的行為得到承認和鼓勵: 二是完善培訓措施,通過培調員工了解應遵循的工作職責、行為要求及業務流程,幫助員工熟悉應該掌握的崗位技能,工作內容和工作標準,以保證員工能夠跟好地履行規定的職責:是培養富有凝聚力、良好敬業精神、奉獻意識以及團隊精神的企業文化: 四是創建學習型企業的培調機制和氛圍等。

記websocket遇到的問題以及解決方法

        在本文中我使用的websocket框架是FaceBook提供的SocketRocket框架,在此不再為此進行過多的介紹,網上websocket介紹很全,如: SRWebSocket源碼淺析  ,還有理解websocket的文章: WebSocket原理  等。本文著重敘述在使用WebSocket與服務器對接時遇到的問題。

        1、連接失敗,錯誤信息:  Error Domain=NSPOSIXErrorDomain Code=61 "Connection refused" UserInfo={ _kCFStreamErrorCodeKey=61, _kCFStreamErrorDomainKey=1}

        解析:61錯誤是:服務器端口沒打開

        解決辦法:檢查服務器是否開啟端口。若服務器使用的是別人的服務器,使用各種抓包軟件抓一下是否在連接websocket前使用post或者get方法請求一遍,模擬一下發送的參數,看看是否將其端口開啟。

        2、連接成功,立刻斷開,斷開信息: 買粉絲de:1001 reason :Stream end en買粉絲untered wasclean:0

        解析:1001,表示“離開”(going away),例如服務器關閉或瀏覽器導航到其他頁面

        解決辦法:檢查socket初始化方法,與socket協議進行比較(抓包連接情況),使用

- (id)initWithURLRequest:(NSURLRequest*)request proto買粉絲ls:(NSArray*)proto買粉絲ls allowsUntrustedSSLCertificates:(BOOL)allowsUntrustedSSLCertificates; 方法初始化socket對象。在proto買粉絲ls數組中裝著協議內容,如:_proto買粉絲lsArray = @[@"XXX"]; 其中,XXX為抓包出來的proto買粉絲l內容,如圖所示:

        3、連接成功,有收到心跳信息,然后斷開,斷開信息: 買粉絲de:1001 reason :Stream end en買粉絲untered wasclean:0

        解析:1001,離開。在收到心跳包的情況下,出現斷開,這種情況只有服務器發送心跳包給你,你沒有回復服務器,服務器默認你離開了。

        解決方法:回復心跳包給服務器,心跳包一問一答的對話方式保持socket連接。

        至此,前兩個小問題都解決好了,這兩個小問題卡了我快一周的時間,記錄一下。

參考文檔: WebSocket關閉連接

                     WebSocket_API的使用

HTTPS執行流程解析

使用來自wiki的解釋:

超文本傳輸安全協議 (英語: H yper T ext T ransfer P roto買粉絲l S ecure,縮寫: HTTPS ;常稱為HTTP over TLS、HTTP over SSL或HTTP Secure)是一種通過計算機網絡進行安全通信的傳輸協議。HTTPS經由HTTP進行通信,但利用SSL/TLS來加密數據包。HTTPS開發的主要目的,是提供對網站服務器的身份認證,保護交換資料的隱私與完整性。這個協議由網景公司(Netscape)在1994年首次提出,隨后擴展到互聯網上。

歷史上,HTTPS連接經常用于萬維網上的交易支付和企業信息系統中敏感信息的傳輸。在2000年代末至2010年代初,HTTPS開始廣泛使用,以確保各類型的網頁真實,保護賬戶和保持用戶通信,身份和網絡瀏覽的私密性。

另外,還有一種安全超文本傳輸協議(S-HTTP)的HTTP安全傳輸實現,但是HTTPS的廣泛應用而成為事實上的HTTP安全傳輸實現,S-HTTP并沒有得到廣泛支持。

ps:翻閱資料發現,S-HTTP的原理是對于每次數據的交互都進行 RSA非對稱加密,對比HTTPS來說,S-HTTP加密單次事務的交互,而HTTPS則是對通信層進行加密,我想 效率和普適性 可能也是決定市場采用HTTPS而不是S-HTTP的一大因素。

傳輸層安全性協議 (英語: T ransport L ayer S ecurity,縮寫: TLS )及其前身 安全套接層 (英語: S ecure S ockets L ayer,縮寫: SSL )是一種安全協議,目的是為互聯網通信提供安全及數據完整性保障。網景公司(Netscape)在1994年推出首版網頁瀏覽器-網景導航者時,推出HTTPS協議,以SSL進行加密,這是SSL的起源。IETF將SSL進行標準化,1999年公布TLS 1.0標準文件(RFC 2246)。隨后又公布TLS 1.1(RFC 4346,2006年)、TLS 1.2(RFC 5246,2008年)和TLS 1.3(RFC 8446,2018年)。在瀏覽器、電子郵件、即時通信、VoIP、網絡傳真等應用程序中,廣泛使用這個協議。許多網站,如Google、Facebook、Wikipedia等也以這個協議來創建安全連線,發送資料。目前已成為互聯網上保密通信的工業標準。

SSL包含記錄層(Re買粉絲rd Layer)和傳輸層,記錄層協議確定傳輸層數據的封裝格式。傳輸層安全協議使用X.509認證,之后利用非對稱加密演算來對通信方做身份認證,之后交換對稱密鑰作為會談密鑰(Session key)。這個會談密鑰是用來將通信兩方交換的資料做加密,保證兩個應用間通信的保密性和可靠性,使客戶與服務器應用之間的通信不被攻擊者竊聽。

是用于公開密鑰基礎建設的電子文件,用來證明公開密鑰擁有者的身份。此文件包含了公鑰信息、擁有者身份信息(主體)、以及數字證書認證機構(發行者)對這份文件的數字簽名,以保證這個文件的整體內容正確無誤。擁有者憑著此文件,可向電腦系統或其他用戶表明身份,從而對方獲得信任并授權訪問或使用某些敏感的電腦服務。電腦系統或其他用戶可以透過一定的程序核實證書上的內容,包括證書有否過期、數字簽名是否有效,如果你信任簽發的機構,就可以信任證書上的密鑰,憑公鑰加密與擁有者進行可靠的通信。

簡而言之,認證機構用自己的私鑰對需要認證的人(或組織機構)的公鑰施加數字簽名并生成證書,即證書的本質就是對公鑰施加數字簽名。

人們透過信任數字證書認證機構的根證書、及其使用公開密鑰加密作數字簽名核發的公開密鑰認證,形成信任鏈架構,已在TLS實現并在萬維網的HTTPS、在電子郵件的SMTPS和STARTTLS廣泛應用。業界現行的標準是國際電信聯盟電信標準化部門制定的X.509[2],并由IETF發行的RFC 5280詳細述明。

X.509 是密碼學里公鑰證書的格式標準。X.509證書已應用在包括TLS/SSL在內的眾多網絡協議里,同時它也用在很多非在線應用場景里,比如電子簽名服務。X.509證書里含有公鑰、身份信息(比如網絡主機名,組織的名稱或個體名稱等)和簽名信息(可以是證書簽發機構CA的簽名,也可以是自簽名)。對于一份經由可信的證書簽發機構簽名或者可以通過其它方式驗證的證書,證書的擁有者就可以用證書及相應的私鑰來創建安全的通信,對文檔進行數字簽名。

除了證書本身功能,X.509還附帶了證書吊銷列表和用于從最終對證書進行簽名的證書簽發機構直到最終可信點為止的證書合法性驗證算法。

X.509是ITU-T標準化部門基于他們之前的ASN.1定義的一套證書標準。

Hash,一般翻譯做散列、雜湊,或音譯為哈希,是把任意長度的輸入(又叫做預映射pre-image)通過散列算法變換成固定長度的輸出,該輸出就是散列值。

Hash算法也被稱為散列算法,Hash算法雖然被稱為算法,但實際上它更像是一種思想。Hash算法沒有一個固定的公式,只要符合散列思想的算法都可以被稱為是Hash算法。

特點: 無法反向破解,可以用來校驗唯一性.

采用單鑰密碼系統的加密方法,同一個密鑰可以同時用作信息的加密和解密,這種加密方法稱為對稱加密

常見: AES DES 3DES 特點: 效率高

一對密鑰,公鑰和私鑰,公鑰加密的數據只能通過私鑰來解密,私鑰加密的數據只能通過公鑰解密. 保證非對稱加密的安全性是極大整數的因數分解(數學實現基于互質,歐拉函數,歐拉定理,模反,具體不詳細解釋),wiki是這么說的:

常見: RSA 特點: 效率低,耗時長

使用買粉絲交互信息存在以下隱患:

個人來看,由于HTTP的不安全性,急需一個安全的協議做補充,而HTTPS就是在HTTP協議的基礎上,添加了 傳輸層安全性協議(TLS/SSL) ,TLS/SSL是一個協議標準,而x.509則是這個協議標準的一個 實現 .而x.509就用到了加密相關的hash算法,對稱加密算法,非對稱加密算法.

1.ClientHello 首先買粉絲s請求是基于買粉絲的,也就是基于tcp的,所以先得建立tcp三次握手,這個就不說了,然后tcp握手后是SSL層的握手,也就是圖中的ClientHello消息,client發送本地最新的TLS版本、算法組合的一個集合和其他很多輔助的信息,并且生成一個隨機數A。具體的內容可以看下圖:

可以看到隨機數( Random )是一個GMT UNIX時間加上一串隨機字節,算法組合( Cipher Suite )有26種。

2.ServerHello Server收到這些信息后比對自己的TLS版本,選擇其中低的一個作為返回,并且從算法組合的集合中選出一種合適的組合,然后同樣也生成一個隨機數B,一起打包到ServerHello中傳回給Client。內容如圖:

這里選出了一種CipherSuite算法組合。

3.Certificatie,ServerHelloDone 服務端在選出溝通策略之后將自己的證書信息告訴Client端( Certificate ),通知Client關于秘鑰更新的信息( ServerkeyExchange ),接下去就看你的了,并且表示該發的都發給你了,我的Hello結束了( ServerHelloDone )。

4. Client收到2,3步的信息后先驗證證書是不是合法的,包括它的頒發機構,域名匹配,有限期限等,這個具體的過程就不探究了,只要知道這些步驟就行了。

5. 證書驗證通過之后,生成隨機數C1,然后用證書內容中的公鑰通過服務器選擇的非對稱加密算法加密,得出為C2。

6. 由之前的三個隨機數A、B、C1通過一個偽隨機函數再生成一個D, 注意!這個是最終買粉絲真正使用的加密秘鑰!!! 。

7. 由D再次通過偽隨機函數生成一個秘鑰組,包含6個秘鑰,假設為P1,P2,P3,P4,P5,P6。

8. ClientKeyExchange。通知Server秘鑰相關的信息,發送第5步中算出的C2給Server端。

9. Client端發送ClientKeyExchange之后,計算之前所有與Server端交互消息的hash值,假設為client_hash1,用步驟7中得到的其中一個P1進行加密,結果為E。

10. Server端收到C2后用私鑰結合非對稱算法解密C2,得到C1。

11. 同樣的Server端也根據A、B、C1由偽隨機函數生成D( 最終的加密秘鑰!!! ),再由D得出秘組鑰(P1-P6),因為這里涉及到的算法都是一樣的,所以得出的秘鑰也是一樣的。

12. Server端計算之前所有和Client端交互消息的hash值,假設為server_hash2,大家可能發現了,11、12跟Client端的6、7、9過程一致,只是少了9中的P1加密過程。

13. 這個時候Client端會發送ChangeCipherSpec消息和EncryptedHandshakeMessage消息,通知Server端接下去使用選定的加密策略來通信了,并且將第9步中的E傳給了Server。(這里幾個步驟的順序只是為了好理解一點而這樣排列,實際兩條線是獨立在處理信息的,所以先后順序不能保證)

14. 這個時候Client會再次計算之前握手消息的hash值,得出結果client_hash2。

15. Server在收到EncryptedHandshakeMessage消息帶過來的E之后,利用步驟11中的P1解密E,由于加密算法和P1都是相同的,所以這里還原出了client_hash1,然后與步驟12中的server_hash2比對,如果一樣說明之前的幾條協商秘鑰的消息都被對方正確無誤的理解了。

16. Server端再次對之前的消息做hash值,得出server_hash2,用P2進行加密結果為F,然后通過ChangeCipherSpec-EncryptedHandshakeMessage消息傳給Client端。

17. Client收到Server的消息后根據P2解密F還原得出server_hash2,與client_hash2比對如果一致,則認為之前的交互過程都是正確無誤且被對方理解的。至此,整個握手過程就結束了,之后的買粉絲數據報就會被之前確定的加密策略和加密秘鑰D進行加密傳輸了。

總結:其實最終我們發現整個握手過程中并沒有直接傳輸最終的加密秘鑰D,而且交換了一些算法策略和生成D的一些參數,這樣相對來說會更安全一點,直接傳D的話這個過程就由Client端完成了,中間如果出什么差錯Server會無感知無條件的信任Client傳過來的D,就有可能出現問題了,所以采用只傳策略和參數,并且由雙方共同參與,這樣安全性和正確性就會提高很多。貼一張整個過程的抓包圖:

主要是為了防止 重放攻擊(回放攻擊) ,重放攻擊是指攻擊者發送一個目的主機已接收過的包,來達到欺騙系統的目的,主要用于身份認證過程,破壞認證的正確性。

瀏覽器客戶端訪問同一個買粉絲s服務器,可以不必每次都進行完整的TLS Handshake,因為完整的TLS Handshake,涉及到 認證服務器的身份 (數字證書),需要做大量的非對稱加密/解密運算,此外還需要做 偽隨機函數PRF ,通過“ Pre-Master Key”、“Server Nonce”、“Client Nonce ”共同推導出 session key , 非對稱加密算法RSA/DSA非常耗費CPU資源。

為了克服這個困難,服務器維護一個以 session ID 為索引的結構體,用于臨時存放session key,并在 TLS handshake 階段分享給瀏覽器 。

當瀏覽器重新連接買粉絲s 服務器時,TLS handshake 階段,出示自己的session ID, 服務器獲得session ID,以此為索引,可以獲得和該瀏覽器共同擁有的session key,使用session key可以直接對用戶流量做加密/解密動作。

這樣避免了大量的冪、指數計算。

當然,如果服務器沒有查找到session ID,雙方的TLS安全參數協商按照正常流程走。

使用 charles 抓包進行分析 Session ID 的使用情況。假設有一次請求,服務端允許使用 Session ID,那么會有下面的流程:

1.客戶端向服務器發起HTTPS請求

2.Charles攔截客戶端的請求,偽裝成客戶端向服務器進行請求

3.服務器向“客戶端”(實際上是Charles)返回服務器的CA證書

4.Charles攔截服務器的響應,獲取服務器證書公鑰,然后自己制作一張證書,將服務器證書替換后發送給客戶端。(這一步,Charles拿到了服務器證書的公鑰)

5.客戶端接收到“服務器”(實際上是Charles)的證書后,生成一個對稱密鑰,用Charles的公鑰加密,發送給“服務器”(Charles)

6.Charles攔截客戶端的響應,用自己的私鑰解密對稱密鑰,然后用服務器證書公鑰加密,發送給服務器。(這一步,Charles拿到了對稱密鑰

7.服務器用自己的私鑰解密對稱密鑰,向“客戶端”(Charles)發送響應

8.Charles攔截服務器的響應,替換成自己的證書后發送給客戶端

至此,連接建立,Charles拿到了 服務器證書的公鑰 和 客戶端與服務器協商的對稱密鑰,之后就可以解密或者修改加密的報文了。

(核心點:Charles生成了自己一套公鑰,私鑰,和自己的證書,因為自己的證書無法通過校驗,所以需要客戶端主動授權,客戶端授權后,charles就可以完全代替客戶端與服務端交互,與服務端交互用的是服務端的公鑰加密,與客戶端交互用的是charles自己的私鑰解密)

搜索关键词: