一:加密技術(shù)里的專有名詞介紹
為保證數(shù)據(jù)和交易的安全,確認(rèn)交易雙方的真實(shí)身份,電子商務(wù)必須采用加密技術(shù)。加密技術(shù)是指通過用代碼或密碼來保障數(shù)據(jù)安全性的一種手段。
密文:欲加密的數(shù)據(jù)稱為明文,加密后的數(shù)據(jù)稱為密文。
加密:明文經(jīng)過某種加密算法作用后,轉(zhuǎn)換成密文,這一過程稱之為加密。
解密:密文經(jīng)過某種解密算法作用后,轉(zhuǎn)換成明文,這一過程稱之為解密。
密鑰:加密算法和解密算法中使用的參數(shù)稱為密鑰。
二:對(duì)稱加密的應(yīng)用
對(duì)稱加密是一種可逆的加密方式,加密方和解密方共用同一把密鑰。安全性相對(duì)非對(duì)稱加密要低,但是性能要比非對(duì)稱加密要高。
圖1對(duì)稱加密的示意圖
應(yīng)用場景:
1.數(shù)據(jù)庫連接的用戶名和密碼一般會(huì)使用對(duì)稱加密進(jìn)行加解密。
2.數(shù)據(jù)庫中一些比較敏感的數(shù)據(jù)比如身份證號(hào)、手機(jī)、真實(shí)姓名、郵箱
等信息會(huì)使用對(duì)稱加密進(jìn)行加解密。
但這個(gè)一般來說不會(huì)在代碼層面體現(xiàn)出來,因?yàn)槲覀兛赡苓€會(huì)用到這些手機(jī)、姓名什么的數(shù)據(jù)來作為查詢條件使用。如果有這個(gè)需求的話,在數(shù)據(jù)庫MySQL中,也提供了一些加解密的操作。
3.HTTPS的數(shù)據(jù)傳輸階段使用對(duì)稱加密進(jìn)行加解密。
三:非對(duì)稱加密的應(yīng)用
非對(duì)稱加密是一種可逆的加密方式,是通過密鑰對(duì)來實(shí)現(xiàn)的,密鑰對(duì)包含公鑰和私鑰,公鑰是可以對(duì)外公布的,私鑰是自己保存的,不對(duì)外公布。一般是使用公鑰進(jìn)行加密,私鑰解密;私鑰簽名,公鑰驗(yàn)簽。
圖2非對(duì)稱加密的示意圖
應(yīng)用場景:
1.在支付領(lǐng)域中,與銀行進(jìn)行通信時(shí)會(huì)使用非對(duì)稱加密。
有2種方式來保證通信和數(shù)據(jù)的安全,
1.1一種是自己生成公私鑰,雙方互換公鑰。
1.2還有一種就是使用數(shù)字信封的方式
(采用加密技術(shù)來保證只有特定的收信人才能閱讀信的內(nèi)容)。
銀行采用對(duì)稱密鑰來加密信息,為了能安全的傳輸對(duì)稱密鑰,將對(duì)稱密鑰使用我們的公開密鑰來進(jìn)行加密。這部分就稱為數(shù)字信封,然后將數(shù)字信封和對(duì)稱加密的信息一起發(fā)送給我們,我們先用相應(yīng)的私鑰來打開數(shù)字信封,得到對(duì)稱密鑰,然后用對(duì)稱密鑰來解開信息。
2.在區(qū)塊鏈中,通過非對(duì)稱加密完成數(shù)據(jù)的加解密和簽名驗(yàn)簽功能。
3.在HTTPS的握手階段,通過使用非對(duì)稱加密完成握手。
整個(gè)傳輸?shù)倪^程還是使用的對(duì)稱加密,因?yàn)檫@個(gè)性能是比較好的。問題就在這個(gè)密鑰的分發(fā)問題上,可以在HTTPS的握手階段,用非對(duì)稱加密對(duì)這個(gè)密鑰來進(jìn)行加密傳輸。
四:哈希函數(shù)
哈希嚴(yán)格來說并不算是一種加密算法,但是他可以用來驗(yàn)證數(shù)據(jù)的完整性,對(duì)電子商務(wù)的安全也起到了非常重要的重要。哈希函數(shù)是一種單向的、有雪崩效應(yīng)的函數(shù)。
應(yīng)用場景
1.安全加密:
系統(tǒng)的密碼經(jīng)常使用MD5、SHA函數(shù)處理后存儲(chǔ)。
2.數(shù)據(jù)校驗(yàn):
2.1 P2P資源下載時(shí),都會(huì)包含一個(gè)MD5值。
2.2在請(qǐng)求第三方接口,通常會(huì)用個(gè)sign值,存放所有參數(shù)的MD5值。
2.3區(qū)塊鏈中常使用SHA256進(jìn)行防篡改。
3.唯一標(biāo)識(shí):
3.1對(duì)請(qǐng)求的URL進(jìn)行MD5。
3.2對(duì)文件進(jìn)行MD5。
五:HTTPS
在最初的互聯(lián)網(wǎng)通信中,大多使用的是HTTP協(xié)議,在傳輸?shù)倪^程中,都是明文在傳輸,一旦數(shù)據(jù)被截獲,就面臨著數(shù)據(jù)泄露的危險(xiǎn)。但是隨著電子商務(wù)的興起及發(fā)展,人們對(duì)數(shù)據(jù)安全性的要求越來越高。HTTPS就可以解決這個(gè)問題。
HTTPS協(xié)議可以看成是HTTP傳輸,用SSL/TLS協(xié)議來進(jìn)行加解密:HTTPS=HTTP+SSL/TLS。
SSL/TLS是世界上應(yīng)用最廣泛的密碼通信方法。比如說,當(dāng)我們?cè)诰W(wǎng)上商城中輸入信用卡號(hào)時(shí),我們的Web瀏覽器就會(huì)使用SSL/TLS進(jìn)行密碼通信。使用SSL/TLS可以對(duì)通信對(duì)象進(jìn)行認(rèn)證,還可以確保通信內(nèi)容的機(jī)密性,他綜合運(yùn)用了密碼學(xué)中的對(duì)稱密碼、非對(duì)稱密碼、消息驗(yàn)證碼、數(shù)字簽名等密碼技術(shù)。
TLS協(xié)議包括TLS握手協(xié)議和TLS記錄協(xié)議。
TLS握手協(xié)議:
又分為4個(gè)子協(xié)議:握手協(xié)議、密碼規(guī)格變更協(xié)議、警告協(xié)議、應(yīng)用數(shù)據(jù)協(xié)議。這一層主要負(fù)責(zé)除加密之外的其他各種操作。
TLS記錄協(xié)議:
位于TLS握手協(xié)議的下層,是負(fù)責(zé)使用對(duì)稱密碼對(duì)消息就像加密通信的部分,使用了對(duì)稱密碼和消息認(rèn)證碼,但具體的算法和共享的密鑰是通過握手在服務(wù)器和客戶端之間協(xié)商決定的。這一層主要負(fù)責(zé)進(jìn)行加密操作。
HTTPS協(xié)議的大致流程:
圖3HTTPS協(xié)議流程圖
TLS握手協(xié)議主要用到的密碼技術(shù):
1.哈希函數(shù):用來構(gòu)造隨機(jī)數(shù)生成器。
2.隨機(jī)數(shù)生成器:用來生成預(yù)備主密碼、密鑰(密碼參數(shù))、初始化向量。
3.非對(duì)稱加密:用來加密預(yù)備主密碼。
4.數(shù)字簽名:用來驗(yàn)證服務(wù)器和客戶端的證書。
TLS記錄協(xié)議中主要用到的密碼技術(shù):
1.對(duì)稱加密:確保消息劃分成片段后的機(jī)密性。
2.消息認(rèn)證碼:確保消息劃分片段后的完整性,并進(jìn)行認(rèn)證。
3.認(rèn)證加密:確保消息換份成片段后的完整性、機(jī)密性,并進(jìn)行認(rèn)證。
這里面使用到了數(shù)字證書。我們所處的這端,也就是瀏覽器,主要是通過它里面的信息來判斷這個(gè)數(shù)字證書是不是合法的。
1.認(rèn)證機(jī)構(gòu)是要有權(quán)威的,要背負(fù)法律責(zé)任的,全球目前有50多家機(jī)構(gòu)有資格頒發(fā)證書;
2.認(rèn)證機(jī)構(gòu)頒發(fā)的證書中包含頒發(fā)機(jī)構(gòu)信息、公鑰、公司信息、域名、有效期等信息;
3.瀏覽器發(fā)起HTTPS請(qǐng)求時(shí),服務(wù)器會(huì)返回網(wǎng)站的SSL證書,瀏覽器會(huì)對(duì)證書做驗(yàn)證:驗(yàn)證域名、有效期等信息是否正確
4.判斷證書來源是否合法。每份簽發(fā)證書都可以根據(jù)驗(yàn)證鏈查找到對(duì)應(yīng)的根證書,操作系統(tǒng)、瀏覽器會(huì)在本地存儲(chǔ)權(quán)威機(jī)構(gòu)的根證書,利用本地根證書可以對(duì)對(duì)應(yīng)機(jī)構(gòu)簽發(fā)證書完成來源驗(yàn)證;
5.判斷證書是否被篡改,需要與認(rèn)證機(jī)構(gòu)的服務(wù)器進(jìn)行校驗(yàn);
6.判斷證書是否已吊銷
六:總結(jié)
加密技術(shù)的應(yīng)用主要在電子商務(wù)的通信中的身份認(rèn)定、權(quán)限驗(yàn)證、消息完整等方面。加密技術(shù)要保證付款方和收款方不能存在抵賴行為。所以有時(shí)候通過第三方進(jìn)行收款與存款,也要通過數(shù)字簽名方式進(jìn)行身份的確認(rèn)。另外在一些軟件的應(yīng)用權(quán)限方面有嚴(yán)格的要求,要使用多級(jí)密碼。為了防止用戶口令被黑客攻破,就要提升用戶口令的復(fù)雜度與安全性,可以考慮使用MD5加鹽存儲(chǔ)技術(shù)??偠灾?,加密技術(shù)的最終目的是實(shí)現(xiàn)數(shù)據(jù)信息和密碼不受侵害,能夠進(jìn)行身份驗(yàn)證和密碼權(quán)限驗(yàn)證。