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