第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在屬性文件中保護(hù)密碼

在屬性文件中保護(hù)密碼

慕萊塢森 2019-12-13 09:34:49
我有一個(gè)連接數(shù)據(jù)庫(kù)的Java應(yīng)用程序。數(shù)據(jù)庫(kù)的用戶名和密碼存儲(chǔ)在屬性文件中。避免在屬性文件中以明文形式存儲(chǔ)密碼,同時(shí)仍保留允許用戶更改選項(xiàng)的常見做法是什么?這里的主要?jiǎng)訖C(jī)是防止在管理員編輯屬性文件時(shí)有人看著管理員的肩膀并看到密碼。我在這里閱讀到有一種內(nèi)置的方法可以在C#中完成。了解Java,我不希望找到一個(gè)內(nèi)置的解決方案,但我想聽聽其他人在做什么。如果找不到任何好的選擇,那么我可能會(huì)使用將保留在代碼中的恒定密碼對(duì)其進(jìn)行加密。但是我不喜歡這樣做,因?yàn)樗杏X(jué)不對(duì)。 看起來(lái)沒(méi)有魔法,我必須將密碼存儲(chǔ)在代碼中或類似的內(nèi)容中。最后,我們實(shí)現(xiàn)了與答案之一中提到的Jasypt非常相似的東西。所以我接受Jasypt答案,因?yàn)樗亲畲_定的答案。
查看完整描述

3 回答

?
慕尼黑8549860

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超11個(gè)贊

窮人妥協(xié)解決方案是使用簡(jiǎn)單的多重簽名方法。

例如,DBA將應(yīng)用程序數(shù)據(jù)庫(kù)密碼設(shè)置為50個(gè)字符的隨機(jī)字符串。 TAKqWskc4ncvKaJTyDcgAHq82X7tX6GfK2fc386bmNw3muknjU

他或她將一半的密碼提供給應(yīng)用程序開發(fā)人員,然后將其硬編碼為Java二進(jìn)制文件。

私人字符串pass1 =“ TAKqWskc4ncvKaJTyDcgAHq82”

密碼的另一半作為命令行參數(shù)傳遞。DBA將pass2交給系統(tǒng)支持人員或管理員,后者可以輸入pass2作為應(yīng)用程序的啟動(dòng)時(shí)間,或者將其放入自動(dòng)化的應(yīng)用程序啟動(dòng)腳本中。

java -jar /myapplication.jar -pass2 X7tX6GfK2fc386bmNw3muknjU

當(dāng)應(yīng)用程序啟動(dòng)時(shí),它使用pass1 + pass2并連接到數(shù)據(jù)庫(kù)。

該解決方案具有許多優(yōu)點(diǎn),而且沒(méi)有提及的缺點(diǎn)。

您可以安全地將一半密碼放在命令行參數(shù)中,因?yàn)槌悄菗碛辛硪话朊艽a的開發(fā)人員,否則閱讀它不會(huì)有多大幫助。

DBA仍然可以更改密碼的后半部分,并且開發(fā)人員無(wú)需重新部署應(yīng)用程序。

讀取源代碼時(shí),源代碼也可以是半公開的,并且密碼不會(huì)授予您應(yīng)用程序訪問(wèn)權(quán)限。

您可以通過(guò)增加對(duì)數(shù)據(jù)庫(kù)將接受其連接的IP地址范圍的限制來(lái)進(jìn)一步改善這種情況。


查看完整回答
反對(duì) 回復(fù) 2019-12-13
?
Smart貓小萌

TA貢獻(xiàn)1911條經(jīng)驗(yàn) 獲得超7個(gè)贊

如何提供自定義的N因素身份驗(yàn)證機(jī)制?

在合并可用方法之前,讓我們假設(shè)我們可以執(zhí)行以下操作:

1)Java程序內(nèi)部的硬代碼

2)存儲(chǔ)在.properties文件中

3)要求用戶從命令行鍵入密碼

4)要求用戶從表格中輸入密碼

5)要求用戶從命令行或表單加載密碼文件

6)通過(guò)網(wǎng)絡(luò)提供密碼

7)許多替代方法(例如,“畫出秘密”,指紋,特定于IP,bla bla bla)

第一種選擇:我們可以通過(guò)混淆使攻擊者的事情變得更復(fù)雜,但這并不是一個(gè)好的對(duì)策。優(yōu)秀的編碼人員可以訪問(wèn)文件,從而輕松理解其工作原理。我們甚至可以導(dǎo)出每個(gè)用戶的二進(jìn)制文件(或僅導(dǎo)出混淆部分或密鑰部分),因此攻擊者必須有權(quán)訪問(wèn)此用戶特定的文件,而不是另一個(gè)發(fā)行版。同樣,我們應(yīng)該找到一種更改密碼的方法,例如通過(guò)重新編譯或使用反射來(lái)即時(shí)更改類行為。

第二個(gè)選擇:我們可以將密碼以加密格式存儲(chǔ)在.properties文件中,因此攻擊者無(wú)法直接看到它(就像jasypt一樣)。如果我們需要密碼管理器,我們也將需要一個(gè)主密碼,該密碼又應(yīng)該存儲(chǔ)在某個(gè)地方-在.class文件,密鑰庫(kù),內(nèi)核,另一個(gè)文件甚至在內(nèi)存中-都有各自的優(yōu)缺點(diǎn)。
但是,現(xiàn)在用戶只需編輯.properties文件即可更改密碼。

第三個(gè)選項(xiàng):從命令行運(yùn)行時(shí)輸入密碼,例如java -jar /myprogram.jar -p sdflhjkiweHIUHIU8976hyd。

不需要存儲(chǔ)密碼,它將保留在內(nèi)存中。但是,history命令和OS日志可能是您最大的敵人。要即時(shí)更改密碼,您將需要實(shí)現(xiàn)一些方法(例如,監(jiān)聽控制臺(tái)輸入,RMI,套接字,REST等等),但是密碼將始終保留在內(nèi)存中。

甚至可以僅在需要時(shí)才對(duì)其進(jìn)行臨時(shí)解密->然后刪除解密的內(nèi)容,但始終將加密的密碼保留在內(nèi)存中。不幸的是,前述方法并未增加針對(duì)未經(jīng)授權(quán)的內(nèi)存中訪問(wèn)的安全性,因?yàn)閷?shí)現(xiàn)該目的的人可能將有權(quán)訪問(wèn)所使用的算法,鹽和任何其他秘密。

第四個(gè)選項(xiàng):從自定義表單(而不是命令行)提供密碼。這將避免測(cè)井暴露的問(wèn)題。

第五個(gè)選項(xiàng):提供一個(gè)文件作為密碼,該文件先前存儲(chǔ)在另一種介質(zhì)上->然后硬刪除文件。這將再次規(guī)避伐木暴露的問(wèn)題,再也不需要敲擊可能會(huì)被偷來(lái)的打字。如果需要更改,請(qǐng)?zhí)峁┝硪粋€(gè)文件,然后再次刪除。

第六種選擇:再次避免肩并肩沖浪,可以實(shí)施RMI方法調(diào)用,從另一個(gè)設(shè)備(例如,通過(guò)移動(dòng)電話)提供密碼(通過(guò)加密通道)。但是,您現(xiàn)在需要保護(hù)網(wǎng)絡(luò)通道并訪問(wèn)其他設(shè)備。

我將選擇上述方法的組合以實(shí)現(xiàn)最大的安全性,因此必須訪問(wèn).class文件,屬性文件,日志,網(wǎng)絡(luò)通道,肩膀沖浪,中間人以及其他文件。使用所有sub_password之間的XOR操作可以很容易地實(shí)現(xiàn)此操作,以產(chǎn)生實(shí)際的密碼。

但是,我們不能免受未經(jīng)授權(quán)的內(nèi)存訪問(wèn)的保護(hù),這只能通過(guò)使用某些訪問(wèn)受限的硬件(例如,智能卡,HSM,SGX)來(lái)實(shí)現(xiàn),其中將所有內(nèi)容都計(jì)算在內(nèi),沒(méi)有任何人,甚至沒(méi)有合法的所有者能夠訪問(wèn)解密密鑰或算法。同樣,人們也可以竊取這種硬件,據(jù)報(bào)道有側(cè)通道攻擊可以幫助攻擊者提取密鑰,在某些情況下,您需要信任另一方(例如,使用SGX,您可以信任英特爾)。當(dāng)然,當(dāng)安全區(qū)域克隆(拆裝)成為可能時(shí),情況可能會(huì)惡化,但是我認(rèn)為這將需要幾年才能實(shí)現(xiàn)。

同樣,可以考慮一種密鑰共享解決方案,其中將完整密鑰分配給不同的服務(wù)器。但是,在重建時(shí),完整密鑰可能會(huì)被盜。緩解上述問(wèn)題的唯一方法是通過(guò)安全的多方計(jì)算。

我們應(yīng)該始終牢記,無(wú)論采用哪種輸入方法,都需要確保我們不容易受到網(wǎng)絡(luò)嗅探(MITM攻擊)和/或鍵盤記錄程序的攻擊。


查看完整回答
反對(duì) 回復(fù) 2019-12-13
  • 3 回答
  • 0 關(guān)注
  • 722 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)