国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
通信加密(安全傳輸、數(shù)據(jù)加密、TCP加密、UDP加密、Stunnel)

http://yuanshuilee.blog.163.com/blog/static/2176972752013112634059302/

2013

因為做了類IM的通訊軟件,那么就需要考慮傳輸加密。

最直接的方法是:我在程序中將數(shù)據(jù)加密!

首先3個概念,1、不可逆加密2、可逆對稱加密3、可逆非對稱加密
1、不可逆加密,大家最熟悉的一種,md5 sha1就是,加密后就不能解密,只能用于存儲密碼和校驗文件變動,不能用于網(wǎng)絡通訊。(其實MD5等是可以解密的,只不過這個時間和開銷很大)http://news.cnblogs.com/n/92618/
2、可逆對稱加密,用一個鑰匙把內(nèi)容加密,只要有這個鑰匙的人就可以解密,就像登錄windows,要一個密碼,只要有密碼誰都能登錄,但是如果沒有這密鑰,就很難很難解密,就像破解windows密碼需要窮盡一樣。非常適合網(wǎng)絡加密通訊。如果客戶和服務器都有著把鑰匙,那么通訊過程是保密的,即使通訊內(nèi)容被截獲,看到的也是一堆亂七八糟的加密后的byte,通訊內(nèi)容是安全的。AES已成為已然成為對稱密鑰加密中最流行的算法之一。它的介紹自己找去,給個鏈接。http://baike.baidu.com/link?url=2-tPyp8MKHYRfdvTrR-rfPlM_jSyB_Vpm5EYasd_PviXQ-IblcU3edEOp0K9zf0i9OwnRECCuiW3fotB1__ej9as-Cw9aPix8IA1jyW8ypNWtbswm8pp1Qx-FIJUizih
      但是這就產(chǎn)生一個問題了,客戶端有這把鑰匙在程序某個部分,如果被反編譯或者什么的被人發(fā)現(xiàn)了,那么以后所有客戶端和服務器通訊都可以被截獲者解密,從而失去了加密意義,所以這把鑰匙服務器要經(jīng)常變換不能事先給客戶端,需要每次通訊前才給客戶端,但是這樣這把鑰匙還是可以被截獲著截獲,所以如何安全發(fā)送這把鑰匙就成了關(guān)鍵,只要鑰匙安全了,那么整個對稱加密就安全了,如果鑰匙被人發(fā)現(xiàn)了,這個過程就沒有秘密可言。
所以可逆非對稱加密就出現(xiàn)了
3、可逆非對稱加密,客戶端和服務器通訊的時候,客戶端先用非對稱加密生成2把隨機鑰匙,一把叫公鑰一把叫密鑰,關(guān)鍵就在這里,用這個公鑰加密的內(nèi)容不能用公鑰解密,只能用密鑰解密,客戶端把公鑰發(fā)送給服務器,服務器用這個客戶端生成的公鑰把某內(nèi)容加密后返還給客戶端,客戶端用那把密鑰解密。最典型的可逆非對稱加密算法是RSA。RSA算法是第一個能同時用于加密和數(shù)字簽名的算法,也易于理解和操作。RSA是被研究得最廣泛的公鑰算法,從提出到現(xiàn)今的三十多年里,經(jīng)歷了各種攻擊的考驗,逐漸為人們接受,普遍認為是目前最優(yōu)秀的公鑰方案之一。介紹http://baike.baidu.com/link?url=eNSY7iHPRqkJJS9ark2iMfw7SQ-Gcr0RAmznw6eNOTguaCfKsCaR8iyp6-5fYFTPOlJncCLb_NVw90rQYJzifK
    仔細看看這個過程,假定有個攔截者,一開始,客戶把公鑰發(fā)送給服務器,比如讓攔截者給截獲了,服務器返回用這個公鑰加密的內(nèi)容,也讓攔截者給截獲了,攔截者想用這個公鑰解密,但是發(fā)現(xiàn)不行,公鑰加密的內(nèi)容只能用密鑰才能解密,公鑰只起一個加密作用。那密鑰在哪呢?在客戶端那個程序的內(nèi)存里,并沒有通過網(wǎng)絡發(fā)送(而且呢,這個公鑰和密鑰是臨時隨機生成的,在內(nèi)存里,當客戶端不運行的時候即使反編譯該程序也看不到),客戶端那個程序就可以解密,而攔截者即使截獲了公鑰和公鑰加密的內(nèi)容,也是白忙一場一點用都沒有。所以服務器返回的那段用公鑰加密的內(nèi)容是安全的。
    大家是不是發(fā)現(xiàn)非對稱加密比對稱加密要安全不知道多少倍啊,全隨機的,那直接全都用非對稱加密就天下太平了那還要對稱加密干什么呢?但是非對稱雖好,但是卻很慢,無論是軟件還是硬件實現(xiàn)。速度一直是RSA的缺陷。一般來說只用于少量數(shù)據(jù)加密,不能對大量的通信內(nèi)容進行加密通信,只能開始通信的時候用這種方式傳送一點很重要的內(nèi)容。
    那用來傳送點什么內(nèi)容呢?用來傳送對稱加密的那邊鑰匙就非常合適,2部分不是說對稱加密唯一不安全的地方就是那邊鑰匙的傳送過程不安全么,那么先用非對稱加密傳送對稱加密的鑰匙,這樣對稱加密的鑰匙的傳送過程就安全了,鑰匙安全問題解決了所以對稱加密和非對稱加密就一樣安全了,這時就關(guān)閉非對稱加密,以后都用對稱加密了,速度也上來了。這就是非對稱加密和對稱加密配合使用的過程,網(wǎng)上很多應用都是這種方式。
 

不直接的方法:我將數(shù)據(jù)加密交給另外的人

介紹一個軟件Stunnel!https://www.stunnel.org/index.html

Stunnel是一個自由的跨平臺軟件,用于提供全局的TLS/SSL服務。針對本身無法進行TLS或SSL通信的客戶端及服務器,Stunnel可提供安全的加密連接。

Stunnel有客戶端和服務器,客戶端運行在本機,本機發(fā)送信息之前,先發(fā)給客戶端進行加密,客戶端發(fā)給服務器,服務器解密,最終才到目的地(相當于數(shù)據(jù)流多走了兩個點,多做了一些處理)

這主要是針對那些沒法做SSL加密的應用,而如果可以,相信不會喜歡這么繞。但是這樣做的話,對原來的程序架構(gòu)完全不影響,相當于是兩個獨立的框架,在架構(gòu)上還是能給我不少啟示,所以記錄之!

 

兩個開源加密庫openssl和cryptlib的比較

    官方網(wǎng)站:http://www.openssl.org   http://www.cryptlib.com/
    參考:http://www.qqread.com/encrypt/l010502062.html
    目前開放源代碼的加密庫中,openssl和cryptlib都是比較流行的,本文將根據(jù)自己的一點理解對這兩個庫作一些比較,希望能對大家有用。這兩個庫的構(gòu)造思想和目的都不太一樣. Openssl主要是針對SSL/TLS協(xié)議的實現(xiàn),SSL的功能體現(xiàn)的非常完善,而算法庫只是一個附帶的必要部分,當然也是非常重要和完善的一個部分。Crypylib則就是實現(xiàn)了加密算法以及相關(guān)的一些編碼標準。
  【openssl的組成和特點】
  openssl是一個非常優(yōu)秀的SSL/TLS開放源碼軟件包,它包括SSL庫、加密算法庫以及應用程序三大部分,并提供了測試程序和一些應用例子,實現(xiàn)了SSL/TLS協(xié)議和其相關(guān)的PKI標準。openssl因為開發(fā)的比較早,所以采用了c語言作為編寫的語言,但是,openssl里面確可以找到很多面向?qū)ο蟮乃枷?,如BIO的封裝就是一個典型的例子。對于剛剛開始接觸openssl的技術(shù)人員來說,可能會覺得有點困難,因為openssl的結(jié)構(gòu)非常膨大,即便要閱讀完其非常不完善的文檔,工作量也是非常膨大的。建議開始接觸openssl的時候,除了有一些基本的密碼學和PKI的概念外,最好從使用它提供的一些應用程序開始。其實,openssl的應用程序已經(jīng)很完善,許多CA就是基于這些基礎上做成的。
  對于很多人來說,openssl應用程序就足以完成他們需要的功能,openssl應用程序主要提供了下列的一些功能:
  1.各種類型密鑰以及密鑰參數(shù)的生成和格式轉(zhuǎn)換功能
  2.使用各種加密算法進行數(shù)據(jù)加密的功能
  3.證書請求、證書生成和簽發(fā)以及證書其它相關(guān)標準的轉(zhuǎn)換功能,實現(xiàn)了一個CA的功能
  4.信息摘要算法以及其相關(guān)編碼的實現(xiàn)
  5.SSL協(xié)議模擬客戶端和服務器端的實現(xiàn),可以用來測試SSL服務器和SSL客戶端程序。
  【Cryptlib的組成和特點】
  Cryptlib實現(xiàn)了各種公開密鑰算法、對稱加密算法、數(shù)字簽名算法、信息摘要算法以及其相關(guān)的其它算法等等。它采用C++語言編寫而成,因為是面向?qū)ο笳Z言,所以對于初學者來說更容易理清其結(jié)構(gòu)。該庫沒有提供應用程序,只是作為庫函數(shù)提供應用。因為基于C++面向?qū)ο蟮乃枷?,其算法的剝離相對于openssl來說可能更加容易。對于不需要涉及SSL協(xié)議的技術(shù)人員來說,使用該庫函數(shù)應用是一個不錯的選擇。
  【應用現(xiàn)狀以及建議】
  目前,很多CA以及其它PKI商業(yè)程序都是基于openssl開發(fā)的,基于openssl開發(fā)的好處周期非常短,而且功能強大。而Cryptlib因為僅僅局限于加密算法,所以其應用沒有openssl廣泛,但是對于只需要加密算法的情況來說,這是一個更好的選擇。建議如果你的應用涉及到SSL等PKI協(xié)議,應該使用openssl,如果只是應用一些加密算法,則建議使用Cryptlib.

參考資料:

http://blog.csdn.net/laotse/article/details/5910378

https://www.stunnel.org/index.html

http://www.qqread.com/encrypt/l010502062.html

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
互聯(lián)網(wǎng)全站HTTPS的時代已經(jīng)到來
公鑰、私鑰、摘要、數(shù)字簽名、證書
數(shù)據(jù)安全及各種加密算法對比
PHP的OpenSSL加密擴展學習(一):對稱加密
非對稱加密rsa算法
什么是OpenSSL
更多類似文章 >>
生活服務
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服