apk簽名相當(dāng)于程序的身份識(shí)別代碼。
成都創(chuàng)新互聯(lián)公司不只是一家網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司;我們對(duì)營(yíng)銷、技術(shù)、服務(wù)都有自己獨(dú)特見解,公司采取“創(chuàng)意+綜合+營(yíng)銷”一體化的方式為您提供更專業(yè)的服務(wù)!我們經(jīng)歷的每一步也許不一定是最完美的,但每一步都有值得深思的意義。我們珍視每一份信任,關(guān)注我們的成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)質(zhì)量和服務(wù)品質(zhì),在得到用戶滿意的同時(shí),也能得到同行業(yè)的專業(yè)認(rèn)可,能夠?yàn)樾袠I(yè)創(chuàng)新發(fā)展助力。未來(lái)將繼續(xù)專注于技術(shù)創(chuàng)新,服務(wù)升級(jí),滿足企業(yè)一站式成都全網(wǎng)營(yíng)銷推廣需求,讓再小的成都品牌網(wǎng)站建設(shè)也能產(chǎn)生價(jià)值!
apk簽名用于程序編譯打包之后,手機(jī)在運(yùn)行程序之前會(huì)先去驗(yàn)證程序的簽名(可以看作類似于我們電腦上常說(shuō)的md5)是否合法,只有通過(guò)了驗(yàn)證的文件才會(huì)被運(yùn)行,所以簽名軟件的作用的讓文件通過(guò)手機(jī)的驗(yàn)證為合法,不同的手機(jī)、系統(tǒng)是對(duì)應(yīng)不同的簽名的。
進(jìn)行加密通訊防止API外部調(diào)用
服務(wù)器端與客戶端各自會(huì)存儲(chǔ)一個(gè)TOKEN,這個(gè)TOKEN我們?yōu)榱朔乐狗淳幾g是用C語(yǔ)言來(lái)寫的一個(gè)文件并做了加殼和混淆處理。
在客戶端訪問(wèn)服務(wù)器API任何一個(gè)接口的時(shí)候,客戶端需要帶上一個(gè)特殊字段,這個(gè)字段就是簽名signature,簽名的生成方式為:
訪問(wèn)的接口名+時(shí)間戳+加密TOKEN 進(jìn)行整體MD5,并且客戶端將本地的時(shí)間戳作為明文參數(shù)提交到服務(wù)器
服務(wù)器首先會(huì)驗(yàn)證這兩個(gè)參數(shù):驗(yàn)證時(shí)間戳,如果時(shí)間誤差與服務(wù)器超過(guò)正負(fù)一分鐘,服務(wù)器會(huì)拒絕訪問(wèn)(防止被抓包重復(fù)請(qǐng)求服務(wù)器,正負(fù)一分鐘是防止時(shí)間誤差,參數(shù)可調(diào)整),
然后服務(wù)器會(huì)根據(jù)請(qǐng)求的API地址和提交過(guò)來(lái)的時(shí)間戳再加上本地存儲(chǔ)的token按照MD5重新生成一個(gè)簽名,并比對(duì)簽名,簽名一致才會(huì)通過(guò)服務(wù)器的驗(yàn)證,進(jìn)入到下一步的API邏輯
支付網(wǎng)關(guān)是連接公共網(wǎng)絡(luò)和銀行專用網(wǎng)絡(luò)的安全接口。
支付網(wǎng)關(guān)是連接銀行專用網(wǎng)絡(luò)與Internet的一組服務(wù)器,是金融專用網(wǎng)和公用網(wǎng)之間的接口,也是金融網(wǎng)的安全屏障與關(guān)口,是電子支付的重要工具。
支付網(wǎng)關(guān)是支付形式,通常是指接口支付,因?yàn)橥ㄟ^(guò)接口進(jìn)行支付要進(jìn)過(guò)網(wǎng)關(guān)進(jìn)行準(zhǔn)入控制,流量控制,風(fēng)險(xiǎn)控制等。
一般有五種方式:
1、Token授權(quán)認(rèn)證,防止未授權(quán)用戶獲取數(shù)據(jù);
2、時(shí)間戳超時(shí)機(jī)制;
3、URL簽名,防止請(qǐng)求參數(shù)被篡改;
4、防重放,防止接口被第二次請(qǐng)求,防采集;
5、采用HTTPS通信協(xié)議,防止數(shù)據(jù)明文傳輸;
所有的安全措施都用上的話有時(shí)候難免太過(guò)復(fù)雜,在實(shí)際項(xiàng)目中需要根據(jù)自身情況作出取舍,比如可以只使用簽名機(jī)制就可以保證信息不會(huì)被篡改,或者定向提供服務(wù)的時(shí)候只用Token機(jī)制就可以了,如何取舍,全看項(xiàng)目實(shí)際情況和對(duì)接口安全性的要求。
HTTP協(xié)議是無(wú)狀態(tài)的,一次請(qǐng)求結(jié)束,連接斷開,下次服務(wù)器再收到請(qǐng)求,它就不知道這個(gè)請(qǐng)求是哪個(gè)用戶發(fā)過(guò)來(lái)的,但是對(duì)我們有權(quán)限訪問(wèn)限制的模塊而言,它是需要有狀態(tài)管理的,以便服務(wù)端能夠準(zhǔn)確的知道HTTP請(qǐng)求是哪個(gè)用戶發(fā)起的,從而判斷他是否有權(quán)限繼續(xù)這個(gè)請(qǐng)求。
Token的設(shè)計(jì)方案是用戶在客戶端使用用戶名和密碼登錄后,服務(wù)器會(huì)給客戶端返回一個(gè)Token,并將Token以鍵值對(duì)的形式存放在緩存(一般是Redis)中,后續(xù)客戶端對(duì)需要授權(quán)模塊的所有操作都要帶上這個(gè)Token,服務(wù)器端接收到請(qǐng)求后進(jìn)行Token驗(yàn)證,如果Token存在,說(shuō)明是授權(quán)的請(qǐng)求。
Token生成的設(shè)計(jì)要求:
1、應(yīng)用內(nèi)一定要唯一,否則會(huì)出現(xiàn)授權(quán)混亂,A用戶看到了B用戶的數(shù)據(jù);
2、每次生成的Token一定要不一樣,防止被記錄,授權(quán)永久有效;
3、一般Token對(duì)應(yīng)的是Redis的key,value存放的是這個(gè)用戶相關(guān)緩存信息,比如:用戶的id;
4、要設(shè)置Token的過(guò)期時(shí)間,過(guò)期后需要客戶端重新登錄,獲取新的Token,如果Token有效期設(shè)置較短,會(huì)反復(fù)需要用戶登錄,體驗(yàn)比較差,我們一般采用Token過(guò)期后,客戶端靜默登錄的方式,當(dāng)客戶端收到Token過(guò)期后,客戶端用本地保存的用戶名和密碼在后臺(tái)靜默登錄來(lái)獲取新的Token,還有一種是單獨(dú)出一個(gè)刷新Token的接口,但是一定要注意刷新機(jī)制和安全問(wèn)題;
根據(jù)上面的設(shè)計(jì)方案要求,我們很容易得到Token=md5(用戶ID+登錄的時(shí)間戳+服務(wù)器端秘鑰)這種方式來(lái)獲得Token,因?yàn)橛脩鬒D是應(yīng)用內(nèi)唯一的,登錄的時(shí)間戳保證每次登錄的時(shí)候都不一樣,服務(wù)器端秘鑰是配置在服務(wù)器端參與加密的字符串(即:鹽),目的是提高Token加密的破解難度,注意一定不要泄漏;
客戶端每次請(qǐng)求接口都帶上當(dāng)前時(shí)間的時(shí)間戳timestamp,服務(wù)端接收到timestamp后跟當(dāng)前時(shí)間進(jìn)行比對(duì),如果時(shí)間差大于一定時(shí)間(比如:1分鐘),則認(rèn)為該請(qǐng)求失效。時(shí)間戳超時(shí)機(jī)制是防御DOS攻擊的有效手段。
寫過(guò)支付寶或微信支付對(duì)接的同學(xué)肯定對(duì)URL簽名不陌生,我們只需要將原本發(fā)送給server端的明文參數(shù)做一下簽名,然后在server端用相同的算法再做一次簽名,對(duì)比兩次簽名就可以確保對(duì)應(yīng)明文的參數(shù)有沒(méi)有被中間人篡改過(guò)。
簽名算法:
1、首先對(duì)通信的參數(shù)按key進(jìn)行字母排序放入數(shù)組中(一般請(qǐng)求的接口地址也要參與排序和簽名,那么需要額外添加url= 這個(gè)參數(shù));
2、對(duì)排序完的數(shù)組鍵值對(duì)用進(jìn)行連接,形成用于加密的參數(shù)字符串;
3、在加密的參數(shù)字符串前面或者后面加上私鑰,然后用md5進(jìn)行加密,得到sign,然后隨著請(qǐng)求接口一起傳給服務(wù)器。
注意: 對(duì)于客戶端的私鑰一定要妥善處理好,不能被非法者拿到,如果針對(duì)于H5的項(xiàng)目,H5保存私鑰是個(gè)問(wèn)題,目前沒(méi)有更好的方法,也是一致困擾我的問(wèn)題,如果大家有更好的方法可以留言一起探討。
客戶端第一次訪問(wèn)時(shí),將簽名sign存放到服務(wù)器的Redis中,超時(shí)時(shí)間設(shè)定為跟時(shí)間戳的超時(shí)時(shí)間一致,二者時(shí)間一致可以保證無(wú)論在timestamp限定時(shí)間內(nèi)還是外 URL都只能訪問(wèn)一次,如果被非法者截獲,使用同一個(gè)URL再次訪問(wèn),如果發(fā)現(xiàn)緩存服務(wù)器中已經(jīng)存在了本次簽名,則拒絕服務(wù)。如果在緩存中的簽名失效的情況下,有人使用同一個(gè)URL再次訪問(wèn),則會(huì)被時(shí)間戳超時(shí)機(jī)制攔截,這就是為什么要求sign的超時(shí)時(shí)間要設(shè)定為跟時(shí)間戳的超時(shí)時(shí)間一致。拒絕重復(fù)調(diào)用機(jī)制確保URL被別人截獲了也無(wú)法使用(如抓取數(shù)據(jù))。
方案流程:
1、客戶端通過(guò)用戶名密碼登錄服務(wù)器并獲取Token;
2、客戶端生成時(shí)間戳timestamp,并將timestamp作為其中一個(gè)參數(shù);
3、客戶端將所有的參數(shù),包括Token和timestamp按照自己的簽名算法進(jìn)行排序加密得到簽名sign
4、將token、timestamp和sign作為請(qǐng)求時(shí)必須攜帶的參數(shù)加在每個(gè)請(qǐng)求的URL后邊
5、服務(wù)端對(duì)token、timestamp和sign進(jìn)行驗(yàn)證,只有在token有效、timestamp未超時(shí)、緩存服務(wù)器中不存在sign三種情況同時(shí)滿足,本次請(qǐng)求才有效;
眾所周知HTTP協(xié)議是以明文方式發(fā)送內(nèi)容,不提供任何方式的數(shù)據(jù)加密,如果攻擊者截取了客戶端和服務(wù)器之間的傳輸報(bào)文,就可以直接讀懂其中的信息,因此HTTP協(xié)議不適合傳輸一些敏感信息,比如信用卡號(hào)、密碼等。
為了解決HTTP協(xié)議的這一缺陷,需要使用另一種協(xié)議:安全套接字層超文本傳輸協(xié)議HTTPS,為了數(shù)據(jù)傳輸?shù)陌踩琀TTPS在HTTP的基礎(chǔ)上加入了SSL協(xié)議,SSL依靠證書來(lái)驗(yàn)證服務(wù)器的身份,并為客戶端和服務(wù)器之間的通信加密。
HTTPS也不是絕對(duì)安全的,如下圖所示為中間人劫持攻擊,中間人可以獲取到客戶端與服務(wù)器之間所有的通信內(nèi)容。
中間人截取客戶端發(fā)送給服務(wù)器的請(qǐng)求,然后偽裝成客戶端與服務(wù)器進(jìn)行通信;將服務(wù)器返回給客戶端的內(nèi)容發(fā)送給客戶端,偽裝成服務(wù)器與客戶端進(jìn)行通信。 通過(guò)這樣的手段,便可以獲取客戶端和服務(wù)器之間通信的所有內(nèi)容。 使用中間人攻擊手段,必須要讓客戶端信任中間人的證書,如果客戶端不信任,則這種攻擊手段也無(wú)法發(fā)揮作用。
針對(duì)安全性要求一般的app,可采用通過(guò)校驗(yàn)域名,證書有效性、證書關(guān)鍵信息及證書鏈的方式。
以上說(shuō)的更多是設(shè)計(jì)階段的思路,如果API已經(jīng)在運(yùn)行的話,我們則需要通過(guò)其他方式,如API網(wǎng)關(guān)工具來(lái)保護(hù)我們的API,這里推薦的是Eolinker,對(duì)于上述的5個(gè)方面,都有對(duì)應(yīng)的功能做到保護(hù)API,可以自己部署開源版本試用一下:
服務(wù)器硬盤接口分類
不同接口技術(shù)的服務(wù)器硬盤也決定了它們各自更好的適用環(huán)境。單獨(dú)存在的SATA硬盤服務(wù)器產(chǎn)品如今并不多見,大多是一些針對(duì)入門應(yīng)用的塔式服務(wù)器中。而SCSI及SAS由于具有CPU占用率低、連接設(shè)備多等諸多特點(diǎn),性能上明顯優(yōu)于SATA接口硬盤,因此可以在企業(yè)數(shù)據(jù)中心、安全服務(wù)器等應(yīng)用環(huán)境中部署。目前看來(lái),市面上的服務(wù)器硬盤或服務(wù)器產(chǎn)品,也大多呈現(xiàn)兩種形態(tài):Ultra320 SCSI及SAS/SATA。
一、風(fēng)光依舊的SATA接口
SATA接口又被稱之為“串行接口”,所以現(xiàn)在采用SATA接口的硬盤都被習(xí)慣的叫做串口硬盤。它是繼IDE硬盤之后的一次演變。SATA的物理設(shè)計(jì)是以光纖通道作為藍(lán)本,所以采用了四芯的數(shù)據(jù)線。SATA接口發(fā)展至今主要有3種規(guī)格,其中目前普遍使用的是SATA-2規(guī)格,傳輸速度可達(dá)3GB/秒,如圖1所示為某品牌固態(tài)硬盤采用的SATA-2接口規(guī)格。
圖1 SATA-2接口示意
現(xiàn)在已經(jīng)有SATA-3接口出現(xiàn),如圖3所示即為西部數(shù)據(jù)的一款SATA-3接口的服務(wù)器硬盤。SATA-3接口除了將傳輸速率提高到了6GB/秒之外,還對(duì)諸多數(shù)據(jù)類型提供了讀取優(yōu)化設(shè)置。當(dāng)然對(duì)于用戶來(lái)說(shuō),SATA-3接口的出現(xiàn)并不意味著現(xiàn)有的SATA-2產(chǎn)品會(huì)被淘汰,因?yàn)镾ATA-3雖然采用了全新INCITS ATA8-ACS標(biāo)準(zhǔn),但依然可以兼容舊有的SATA設(shè)備。
圖2 SATA-3接口示意
由于SATA接口的服務(wù)器硬盤,技術(shù)相當(dāng)成熟而且構(gòu)造成本不高,因此相對(duì)于其他接口類型的產(chǎn)品來(lái)說(shuō),其市場(chǎng)價(jià)位是比較平民化的,如圖3所示。相信對(duì)于預(yù)算不高的企業(yè)用戶來(lái)說(shuō),在原來(lái)的服務(wù)器架構(gòu)中升級(jí)同樣接口但容量更大的SATA-2接口硬盤,是最好的選擇了。
二、應(yīng)用更普及的SCSI接口
SCSI接口的服務(wù)器硬盤是現(xiàn)在多數(shù)服務(wù)器中采用的一種,它具有數(shù)據(jù)吞吐量大、CPU占有率極低的特點(diǎn):用于連接SCSI接口硬盤的SCSI控制器上有一個(gè)相當(dāng)于CPU功能的控制芯片,能夠替代CPU處理大部分工作;現(xiàn)在普遍采用的.Ultra 320標(biāo)準(zhǔn)的SCSI接口硬盤,數(shù)據(jù)傳輸率可達(dá)320MB/秒。SCSI接口服務(wù)器硬盤及SCSI控制器如圖4所示。
圖4 SCSI硬盤及控制器
另外,SCSI硬盤具有的支持熱拔插技術(shù)的SCA2接口,也非常適合部署在現(xiàn)在的工作組和部門級(jí)服務(wù)器中。SCSI硬盤必須通過(guò)SCSI接口才能使用,現(xiàn)在服務(wù)器主板一般都集成了SCSI接口,也可以安裝專門的SCSI接口卡來(lái)連接更多個(gè)SCSI設(shè)備,所以其橫向擴(kuò)展能力是比較強(qiáng)的。
圖5 服務(wù)器主板SCSI接口
那么,SCSI接口的服務(wù)器硬盤,主要強(qiáng)于哪些方面,又適用于怎樣的企業(yè)環(huán)境中呢?首先,SCSI對(duì)磁盤冗余陣列(RAID)的良好支持,可以滿足有大數(shù)據(jù)存儲(chǔ)的企業(yè)環(huán)境,同時(shí)數(shù)據(jù)安全性也有保障;再者,SCSI硬盤的轉(zhuǎn)速早已高達(dá)15000rpm,這讓企業(yè)數(shù)據(jù)中心的處理性能得到了保障;再次,其較低的CPU占用率以及多任務(wù)的并行處理特性,都可為成長(zhǎng)型企業(yè)環(huán)境提供較強(qiáng)力的數(shù)據(jù)處理及存儲(chǔ)支持。最后,從如圖6所示現(xiàn)在的市場(chǎng)價(jià)格對(duì)比來(lái)看,SCSI接口硬盤整體上要低于SAS接口硬盤,但明顯高于SATA接口硬盤,所以,其更適合裝配在對(duì)數(shù)據(jù)存儲(chǔ)有一定的安全需求、容量需求、高處理性能需求的企業(yè)環(huán)境中。
三、追求性能最大化的SAS接口
“SAS”就是串行連接SCSI的意思,簡(jiǎn)單理解就是SCSI接口技術(shù)的升級(jí)改良,目的就是進(jìn)一步改進(jìn)SCSI技術(shù)的效能、可用性和擴(kuò)充性。其特點(diǎn)就是可以同時(shí)連接更多的磁盤設(shè)備、更節(jié)省服務(wù)器內(nèi)部空間;比如SAS接口減少了線纜的尺寸,且用更細(xì)的電纜搭配,而且SAS硬盤有2.5英寸的規(guī)格,如圖7所示即為希捷(Savvio 15K.2)2.5英寸SAS硬盤接口。
圖7 2.5英寸SAS硬盤接口
更好的空間占用特點(diǎn)使得這種接口的硬盤可以廣泛部署在刀片服務(wù)器中。在2U高度內(nèi)使用 8個(gè) 2.5英寸的SAS硬盤位已經(jīng)成為大多數(shù)OEM服務(wù)器廠商的選擇。另外,對(duì)于預(yù)算不高無(wú)法更換現(xiàn)有服務(wù)器的企業(yè)來(lái)說(shuō),亦可采用SAS和SATA硬盤共存的升級(jí)方式,SAS接口良好的向下兼容性使得企業(yè)用戶可以將它們用在不同的應(yīng)用場(chǎng)合。比如SATA硬盤可用于一般事務(wù)性處理,而SAS硬盤則可專注于數(shù)據(jù)量大、數(shù)據(jù)可用性極為關(guān)鍵的應(yīng)用中。如圖8所示為上億信息(SNT)推出的ST-1042SAS-D7硬盤抽取盒,它就完美地混合支持SAS和SATA硬盤共存,且可以搭配SAS或SATA硬盤控制卡來(lái)支持RAID 0、1、5磁盤陣列模式。
圖8 SAS/SATA硬盤抽取盒
比起同容量的Ultra 320 SCSI硬盤,SAS 硬盤要貴一些,如圖9所示:這主要還是緣由其更好的擴(kuò)展性、兼容性以及更可靠的容錯(cuò)能力。而從從服務(wù)器市場(chǎng)來(lái)看,國(guó)內(nèi)外主力服務(wù)器廠商都已經(jīng)紛紛推出采用SAS硬盤的機(jī)型,只是具體產(chǎn)品的應(yīng)用和市場(chǎng)狀況有所不同。比如定位于部門級(jí)應(yīng)用的惠普 ProLiant DL380 G5、適用于流媒體服務(wù)及電子商務(wù)的IBM System x3650 M2 等,都提供了SAS硬盤的全面支持。
四、應(yīng)用高端的光纖接口
光纖通道(FC,F(xiàn)ibre Channel)是一種為提高多硬盤存儲(chǔ)系統(tǒng)的速度和靈活性才開發(fā)的接口,其可大大提高多硬盤系統(tǒng)的通信速度。對(duì)于大型的ERP系統(tǒng),或是在線實(shí)時(shí)交易系統(tǒng)等需要更大傳輸量、更快反應(yīng)速度的應(yīng)用環(huán)境而言,此類接口的服務(wù)器硬盤是最好的選擇;當(dāng)然其產(chǎn)品價(jià)格自然也就更高于前面
;
新聞名稱:服務(wù)器安全接口 服務(wù)器安全接口在哪
文章源于:http://www.rwnh.cn/article26/ddoshjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、網(wǎng)站導(dǎo)航、自適應(yīng)網(wǎng)站、做網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)