乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      【信管1.15】安全(二)加解密技術(shù)

       硬核項(xiàng)目經(jīng)理 2022-11-14 發(fā)布于湖南

      安全(二)加解密技術(shù)

      上一篇課程中我們了解到的是很多關(guān)于信息系統(tǒng)安全的概念、等級(jí)、分類(lèi)等內(nèi)容,今天的部分則更偏向于具體實(shí)現(xiàn)的技術(shù)。

      為了保證信息的安全性(即秘密性、完整性和可用性)需要采用信息加密技術(shù)對(duì)信息進(jìn)行偽裝,使得信息非法竊取者無(wú)法理解信息的真實(shí)含義;需要采用加密算法提取信息的特征碼(校驗(yàn)碼)或特征矢量,并與有關(guān)信息封裝在一起,信息的合法擁有者可以利用特征碼對(duì)信息的完整性進(jìn)行校驗(yàn);需要采用加密算法對(duì)信息使用者的身份進(jìn)行認(rèn)證、識(shí)別和確認(rèn),以對(duì)信息的使用進(jìn)行控制。

      其實(shí)說(shuō)白了,就是三件事,一個(gè)加密混淆讓別人看不懂,另一個(gè)加密解密雙方能看懂,最后一個(gè)權(quán)限控制不讓別人看。從這三件事可以看出,加解密技術(shù)是非常關(guān)鍵的內(nèi)容。加密就是把明文內(nèi)容弄成一堆亂七八糟正常人看不懂的數(shù)據(jù),然后解密就是把這堆東西再還原回?cái)?shù)據(jù)明文的過(guò)程。在這個(gè)過(guò)程中,就會(huì)牽涉到一系列的算法問(wèn)題。我們接下來(lái)就來(lái)看一下比較常見(jiàn)的那些加解密方式,最后我們也會(huì)提到一些權(quán)限控制方面的內(nèi)容。

      對(duì)稱(chēng)加密

      對(duì)稱(chēng)加密采用了對(duì)稱(chēng)密碼編碼技術(shù),特點(diǎn)是文件加密和解密使用相同的密鑰,即加密密鑰是可以當(dāng)做解密密鑰來(lái)使用的。這個(gè)和我們下面要說(shuō)的 非對(duì)稱(chēng)加密 都會(huì)有一個(gè) 密鑰 的概念,密鑰是一個(gè)加密算法中的控制部分,能夠控制加密算法最后生成的密文結(jié)果,而且往往在解密中也扮演重要的角色。比如說(shuō)這個(gè)對(duì)稱(chēng)加密,不管加還是解,都是使用同一套密鑰的,如果密鑰不對(duì),解密的結(jié)果也不會(huì)正確。

      由于密鑰固定,算法簡(jiǎn)單,對(duì)稱(chēng)加密的效率比較高、速度也比較快,但是相對(duì)來(lái)說(shuō)可能是不太安全的,因?yàn)榘呀饷苊荑€交給客戶(hù)終端實(shí)際上也等于是將加密密鑰給了客戶(hù)。在這種情況下,很容易通過(guò)反編譯等手段獲得客戶(hù)端代碼中的密鑰信息,非常不安全。而且,在下發(fā)也就是客戶(hù)第一次獲取密鑰的過(guò)程中,也可能會(huì)有中途被竊取的可能性。

      對(duì)稱(chēng)加密比較出名的包括:AES、DES、3DES、RC-5、IDEA等算法。相信 AES 和 DES 還是非常普及的,使用過(guò)的同學(xué)應(yīng)該也是比較多的,各個(gè)編程語(yǔ)言也都有非常簡(jiǎn)單地實(shí)現(xiàn)函數(shù)。

      非對(duì)稱(chēng)加密

      上面對(duì)稱(chēng)加密我們知道是加密方和解密方都持有的是相同的一個(gè)密鑰用于加解密。那么其實(shí)非對(duì)稱(chēng)加密你也能夠猜到,就是雙方持有的是不同的密鑰?;舅枷胧菍鹘y(tǒng)密碼的密鑰一分為二,也就是我們經(jīng)常會(huì)見(jiàn)到的 公鑰 和 私鑰 。通常,我們會(huì)用公鑰加密數(shù)據(jù),然后用私鑰來(lái)解密數(shù)據(jù),公鑰我們會(huì)發(fā)送給客戶(hù),然后他們傳送給我們的信息就是用我們的公鑰加密的,只有我們自己能解開(kāi)并獲得明文原文。同樣,我們要發(fā)給客戶(hù)的數(shù)據(jù),也使用客戶(hù)給我們的公鑰來(lái)進(jìn)行加密,數(shù)據(jù)發(fā)送給他們之后,他們也會(huì)使用他們自己的私鑰來(lái)解密。如果我們使用的不是他們的公鑰,那么數(shù)據(jù)也是無(wú)法被他們自己的私鑰解密的。

      非對(duì)稱(chēng)加密是不是感覺(jué)非常美好?但是,這個(gè)算法優(yōu)秀的安全性也是由代價(jià)換來(lái)的,它的計(jì)算量大,破解很難,相對(duì)的,效率也會(huì)比較差,完全無(wú)法和對(duì)稱(chēng)加密的速度相媲美。

      非對(duì)稱(chēng)加密最常見(jiàn)的,也是現(xiàn)在基本已經(jīng)成為事實(shí)標(biāo)準(zhǔn)的,就是 RSA 算法。它是一種基于 大合數(shù)因子分解困難性 的原理而生成公開(kāi)密鑰密碼的方式。我們?nèi)粘J褂玫?OpenSSL 生產(chǎn)的公私鑰,Linux/Github 的安全公鑰登錄,還有現(xiàn)在已經(jīng)完全普及的 HTTPS 等等應(yīng)用,都是基于 RSA 。

      Hash

      哈希算法(Hash)將任意長(zhǎng)度報(bào)文 M 映射為定長(zhǎng)的 Hash 碼 h ,也叫做 散列算法 。它的目的主要是生成指定數(shù)據(jù)、文件或數(shù)據(jù)塊的“系統(tǒng)”,也就是我們的 h 哈希碼。最常見(jiàn)的就是 MD5 和 SHA1 這兩種算法。這個(gè)算法是一種單向算法,也就是說(shuō),我們可以加密,但是無(wú)法解密。當(dāng)然,現(xiàn)在有彩虹表這種半人工的 Hash 數(shù)據(jù)庫(kù)可以用做 Hash 解密,但只要我們?cè)诩用軘?shù)據(jù)的時(shí)候略加變化,這個(gè)解密就非常難實(shí)現(xiàn)了。

      哈希算法應(yīng)用最最常見(jiàn)的場(chǎng)景就是用戶(hù)密碼的加密。這個(gè)加密最好還不只是一次簡(jiǎn)單的 MD5 ,最后還能多套幾次 MD5 并且加 SALT 值。嗯,說(shuō)得可能比較專(zhuān)業(yè),開(kāi)發(fā)同學(xué)可能都會(huì)明白什么意思,如果您不是開(kāi)發(fā)同學(xué),那這一段不用管它。

      數(shù)字簽名

      簽名,就是證明當(dāng)事人的身份和數(shù)據(jù)真實(shí)性的一種信息。這個(gè)東西我們?cè)诤芏嘞螺d網(wǎng)站都會(huì)看到。當(dāng)你下載某個(gè)軟件的時(shí)候,這個(gè)下載頁(yè)面都會(huì)有一個(gè) MD5 校驗(yàn)碼,然后你下載的軟件可以使用一些 MD5 校驗(yàn)軟件獲得校驗(yàn)碼,如果是一樣的,就證明你下載的軟件是沒(méi)有問(wèn)題的,而且也是完整的,和網(wǎng)站上的是同一款軟件。在這個(gè)過(guò)程中,這個(gè) MD5 校驗(yàn)碼其實(shí)就是一個(gè)雙方需要對(duì)應(yīng)的簽名。

      同理,在信息傳輸?shù)倪^(guò)程中,如何確保對(duì)方和你所接收的數(shù)據(jù)都沒(méi)有問(wèn)題呢?加一個(gè)數(shù)字簽名唄。這個(gè)數(shù)字簽名可以是 MD5 的哈希串,也可以是 RSA 的加密數(shù)據(jù),這都沒(méi)有問(wèn)題,但目的只有一個(gè),就是你和你通信的對(duì)方,你們兩個(gè)對(duì)這個(gè)簽名可以達(dá)成共識(shí)。因此,這個(gè)數(shù)字簽名有保證信息傳輸?shù)耐暾浴⑻峁┌l(fā)送者的身份驗(yàn)證以及防止交易中的抵賴(lài)情況發(fā)生的作用。

      完整的數(shù)字簽名需要滿(mǎn)足三個(gè)條件,分別是:簽名者事后不能抵賴(lài)自己的簽名;任何其他人不能偽造簽名;有公正的仲裁解決真?zhèn)螁?wèn)題。

      數(shù)字信封

      在講數(shù)字簽名時(shí),往往還有一個(gè)更重要的內(nèi)容是我們不能錯(cuò)過(guò)的,那就是 數(shù)字信封 技術(shù)。它是將對(duì)稱(chēng)密鑰通過(guò)非對(duì)稱(chēng)加密(即:有公鑰和私鑰兩個(gè))的結(jié)果分發(fā)對(duì)稱(chēng)密鑰的方法。什么意思呢?其實(shí)它就是結(jié)合上面我們學(xué)習(xí)過(guò)的對(duì)稱(chēng)和非對(duì)稱(chēng)加密兩種加密方式的特點(diǎn)而形成的一種獨(dú)特的數(shù)據(jù)安全傳輸?shù)姆绞健?/p>

      前面我們提到過(guò),對(duì)稱(chēng)加密速度快,但是不安全,因?yàn)槊荑€在傳輸過(guò)程中以及在對(duì)端不可控都會(huì)帶來(lái)安全隱患。但是,這里需要注意一點(diǎn),這個(gè)對(duì)稱(chēng)密鑰是我們控制的呀,而且往往這個(gè)對(duì)稱(chēng)密鑰都不會(huì)太長(zhǎng),一般會(huì)是一些隨機(jī)的字符串,取 8、16、32、64 位長(zhǎng)度的字符串就夠了。那么,我們可以用非對(duì)稱(chēng)加密來(lái)加密這個(gè)字符串。非對(duì)稱(chēng)加密的特點(diǎn)是安全性高但速度慢,如果數(shù)據(jù)內(nèi)容非常少的話(huà),其實(shí)它的計(jì)算效率還是可以接受的,即使是 128、256、512 個(gè)字符的對(duì)稱(chēng)密鑰其實(shí)使用非對(duì)稱(chēng)加密速度也是很快的。這樣,我們就形成了下圖這樣一個(gè)流程。

      • 首先,發(fā)送方將 明文 數(shù)據(jù)通過(guò) 對(duì)稱(chēng)密鑰 進(jìn)行加密,變成 密文 數(shù)據(jù)。

      • 然后,來(lái)到左圖的下方,將 對(duì)稱(chēng)密鑰 使用 對(duì)方的公鑰 進(jìn)行加密,變成一個(gè) 被加密過(guò)的密鑰 。

      • 接著將 密文  被加密的密鑰 一起發(fā)送給接收方。

      • 接收方首先通過(guò) 自己的私鑰 解密 被加密的密鑰 ,這樣就獲得了 對(duì)稱(chēng)密鑰 

      • 最后,使用解密出來(lái)的 對(duì)稱(chēng)密鑰 來(lái)解密 密文 獲得原始的 明文 數(shù)據(jù)。

      上面這個(gè)過(guò)程務(wù)必要弄清楚,因?yàn)樗彩俏覀兘裉熳钪匾膬?nèi)容。類(lèi)似于我們真實(shí)的普通信封寄信,普通信封在法律的約束下保證只有收信人才能閱讀信的內(nèi)容;數(shù)字信封則采用密碼技術(shù)保證了只有規(guī)定的接收人才能閱讀信息的內(nèi)容。

      同樣的,如果接收方想要給發(fā)送方發(fā)送信息,只需要調(diào)換它們的位置就好,也就是接收方變成發(fā)送方,中間的步驟還是完全一樣的。雙方都要持有對(duì)方的公鑰證書(shū),說(shuō)到這個(gè)問(wèn)題,正好引出我們下面的內(nèi)容,那就是公鑰證書(shū)體系。

      PKI公鑰體系

      公鑰基礎(chǔ)設(shè)施 PKI(Public Key Infrastucture,公開(kāi)密鑰基礎(chǔ)設(shè)施)是以不對(duì)稱(chēng)密鑰加密技術(shù)為基礎(chǔ),以數(shù)據(jù)機(jī)密性、完整性、身份認(rèn)證和行為不可抵賴(lài)性為安全目的,來(lái)實(shí)施和提供安全服務(wù)的具有普適性的安全基礎(chǔ)設(shè)施。它包括 數(shù)字證書(shū)、不對(duì)稱(chēng)密鑰密碼技術(shù)、認(rèn)證中心、證書(shū)和密鑰的管理、安全代理軟件、不可否認(rèn)性服務(wù)、時(shí)間郵戳服務(wù)、相關(guān)信息標(biāo)準(zhǔn)、操作規(guī)范等。

      PKI 可以實(shí)現(xiàn) CA 和證書(shū)的管理,密鑰的備份與恢復(fù),證書(shū)、加密密鑰和簽名密鑰的分割,支持對(duì)數(shù)字簽名的不可抵賴(lài)性,密鑰歷史的管理等功能。其中,CA 就是 Certification Authority 認(rèn)證中心的簡(jiǎn)寫(xiě)。配置過(guò)網(wǎng)站 HTTPS 的同學(xué)對(duì)這個(gè)東西一定不會(huì)陌生的。前面說(shuō)過(guò),HTTPS 的基礎(chǔ)就是 OpenSSL 生成的加密公私鑰,那么我們自己生成的證書(shū)為什么不能直接使用配置到我們的網(wǎng)站上呢?其實(shí)是可以的,不信你可以試試,但是,我們的瀏覽器不認(rèn)啊。你的生成的證書(shū)是沒(méi)有問(wèn)題,但是我們沒(méi)有辦法相信你,各個(gè)瀏覽器廠商需要有一些中間機(jī)構(gòu),并且是有信譽(yù)資質(zhì)的中間機(jī)構(gòu)來(lái)提供擔(dān)保,這些機(jī)構(gòu)其實(shí)就是實(shí)現(xiàn)了 PKI 的公司。而我們?cè)诟鱾€(gè)域名注冊(cè)商購(gòu)買(mǎi)的證書(shū)也都是由它們生成的,并且它們還有公鑰管理系統(tǒng)負(fù)責(zé)分配給客戶(hù)端的公鑰。這樣,就實(shí)現(xiàn)了一個(gè)包括第三方認(rèn)證并且可以做仲裁方的“公證人”機(jī)構(gòu)。

      PKI 一般是通過(guò)數(shù)字證書(shū)的方式向客戶(hù)端或者對(duì)端發(fā)送公私鑰。數(shù)字證書(shū)其實(shí)可以看成是又一層加密的數(shù)據(jù),根據(jù)證書(shū)規(guī)則及相關(guān)的設(shè)置可以從證書(shū)中提取出主體信息、證書(shū)序號(hào)、有效期、密碼算法標(biāo)識(shí)、公私鑰信息等內(nèi)容。常見(jiàn)的證書(shū)格式有 X.509系列、PKCS系列、DER、PEM 等,這一塊做過(guò)開(kāi)發(fā)的同學(xué)也不會(huì)陌生。

      數(shù)字認(rèn)證

      認(rèn)證(Authentication),又稱(chēng)為鑒別、確認(rèn),它是證實(shí)某事是否名副其實(shí)或者是否有效的一個(gè)過(guò)程。認(rèn)證這個(gè)東西也是我們非常常見(jiàn)的,比如說(shuō)你登錄各個(gè)網(wǎng)站或者 App 的賬號(hào),你的網(wǎng)游賬號(hào)等等,在這些賬號(hào)體系中,都會(huì)有認(rèn)證授權(quán)功能的存在。比如說(shuō),為什么你登錄進(jìn)淘寶看到的是你自己的購(gòu)物訂單,而看不到別人的購(gòu)物訂單。這就是因?yàn)槟愕馁~號(hào)通過(guò)了屬于你的身份的認(rèn)證,而沒(méi)有其他人的身份認(rèn)證,當(dāng)然就不能看到別人的訂單啦,如果要是能看到那才真是亂了套了。

      認(rèn)證系統(tǒng)常用的參數(shù)有口令、標(biāo)識(shí)符、密鑰、信物、智能卡、指紋、視網(wǎng)紋等。它與數(shù)字簽名的區(qū)別主要有:

      • 認(rèn)證總是基于某種收發(fā)雙方共享的保密數(shù)據(jù)來(lái)認(rèn)證被鑒別對(duì)象的真實(shí)性,而數(shù)字簽名中用于驗(yàn)證簽名的數(shù)據(jù)是公開(kāi)的。

      • 認(rèn)證允許收發(fā)雙方互相驗(yàn)證其真實(shí)性,不準(zhǔn)許第三者驗(yàn)證,而數(shù)字簽名允許收發(fā)雙方和第三者都能驗(yàn)證。

      • 數(shù)字簽名具有發(fā)送方不能抵賴(lài)、接收方不能偽造和具有在公證人前解決糾紛的能力,而認(rèn)證則不一定具備。

      訪問(wèn)控制

      對(duì)于訪問(wèn)控制來(lái)說(shuō),一定是跟登錄有關(guān)的,如果沒(méi)有登錄過(guò)程,那么就無(wú)法知道你這個(gè)用戶(hù)應(yīng)該是有哪些權(quán)限,也就無(wú)法通過(guò)這些權(quán)限信息來(lái)進(jìn)行訪問(wèn)的控制。在登錄之后,我們常見(jiàn)的網(wǎng)絡(luò)授權(quán)方案包括以下 4 種:

      • DAC(Discretionary Access Control)自主訪問(wèn)控制方式:該模型針對(duì)每個(gè)用戶(hù)指明能夠訪問(wèn)的資源,對(duì)于不在指定的資源列表中的對(duì)象不允許訪問(wèn)。

      • ACL(Access Control List)訪問(wèn)控制列表:該模型是目前應(yīng)用最多的方式。目標(biāo)資源擁有訪問(wèn)權(quán)限列表,指明允許哪些用戶(hù)訪問(wèn)。如果某個(gè)用戶(hù)不在訪問(wèn)控制列表中,則不允許該用戶(hù)訪問(wèn)這個(gè)資源。

      • MAC(Mandatory Access Control)自主訪問(wèn)控制方式:該模型在軍事和安全部門(mén)中應(yīng)用較多,目標(biāo)具有一個(gè)包含等級(jí)的安全標(biāo)簽(如:不保密、限制、秘密、機(jī)密、絕密);訪問(wèn)者擁有包含等級(jí)列表的許可,其中定義了可以訪問(wèn)哪個(gè)級(jí)別的目標(biāo),例如允許訪問(wèn)秘密級(jí)信息,這時(shí)秘密級(jí)、限制級(jí)和不保密級(jí)的信息是允許訪問(wèn)的,但機(jī)密和絕密級(jí)信息不允許訪問(wèn)。

      • RBAC(Role-Based Access Control)基于角色的訪問(wèn)控制方式:該模型首先定義一些組織內(nèi)的角色,如局長(zhǎng)、科長(zhǎng)、職員,再根據(jù)管理規(guī)定給這些角色分配相應(yīng)的權(quán)限,最后對(duì)組織內(nèi)的每個(gè)人根據(jù)具體業(yè)務(wù)和職位分配一個(gè)或多個(gè)角色。

      其實(shí)不用我多說(shuō),現(xiàn)在大部分的比較復(fù)雜一點(diǎn)的后臺(tái)管理系統(tǒng)基本都是 RBAC 為主的,而一些小的比如說(shuō)小網(wǎng)站、官方網(wǎng)站之類(lèi)的后臺(tái),直接使用 ACL 就可以了(就是用戶(hù)和目錄對(duì)應(yīng)上,哪些用戶(hù)有哪些目錄就在右邊目錄菜單就只展示這些目錄這種最簡(jiǎn)單的權(quán)限管理功能)。

      總結(jié)

      總算到結(jié)尾了,你以為惡夢(mèng)結(jié)束了?不不不,今天的內(nèi)容基本都是重點(diǎn)。特別是對(duì)稱(chēng)和非對(duì)稱(chēng)加密、數(shù)字信封、PKI 和 訪問(wèn)控制 這四個(gè)部分。如果你沒(méi)有接觸過(guò)開(kāi)發(fā),那么這一篇估計(jì)是很崩潰的,一點(diǎn)也不亞于之前我們學(xué)習(xí)的計(jì)算機(jī)網(wǎng)絡(luò)相關(guān)的內(nèi)容。即使很多做開(kāi)發(fā)的同學(xué),如果沒(méi)有接觸過(guò)類(lèi)似的加解密以及相關(guān)安全網(wǎng)絡(luò)傳輸?shù)臉I(yè)務(wù),估計(jì)也會(huì)有一點(diǎn)慒圈。就和其它的知識(shí)一樣,光加解密技術(shù)就可以寫(xiě)一本厚厚的書(shū),更不用說(shuō)整個(gè)信息安全體系了。所以,我們這才只是入個(gè)門(mén),沾了點(diǎn)信息安全的皮毛而已,還是那句話(huà),不管你是考試還是當(dāng)做談資,記下來(lái)多少還是會(huì)有好處的。

      如果你有開(kāi)發(fā)經(jīng)驗(yàn),可以看一下我之前的 PHP 加解密 相關(guān)的系列文章:https://www./t/加解密

      參考資料:

      《信息系統(tǒng)項(xiàng)目管理師教程》

      《某機(jī)構(gòu)培訓(xùn)資料》

        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶(hù) 評(píng)論公約

        類(lèi)似文章 更多