簡體   English   中英

使用.net中的app公鑰/私鑰加密

[英]Encrypting with app public/private key in .net

- 我 - 我發現了另一種用途。 有些數據是通過HTTPS POST數據提交給我的,我想將它存儲在我的數據庫中(例如客戶支持可能需要稍后閱讀的母系名稱,而不是拼寫錯誤地檢查哈希是否匹配)。 我只需要加密的部分而不是整個數據庫,並且使用單獨的數據庫可能不值得。 問題:如何使用預制公鑰使用.NET加密對稱密鑰+文本? (其余的是上下文,我只想要一個答案plz)

-edit-之前我做過對稱加密。 如何使用公鑰加密對稱密鑰? 一個很好的獎勵是,如果你可以告訴我如何在一個單獨的應用程序中生成公鑰/私鑰,這樣我就可以創建它們並只在我的應用程序中存儲公鑰。

我正在考慮從更繁忙的網站自動減少壓力較小的網站抓取備份。 傳輸數據不是問題,因為我可以使用https但我不完全相信我的便宜的網站是安全的或不會有人環顧我的文件。 我主要想保護電子郵件地址和PM,如果我在網站上有它們。

所以我想知道如何在我的應用程序中使用公鑰或私鑰來加密數據,這樣只有我(或者我提供密鑰的任何人)才能解密備份。 我如何在.NET中執行此操作。 登錄和傳輸我可以在幾分鍾內寫,但我如何加密流我寫它?

- 編輯 - 它只是打我。 用戶/通行證不是秘密。 所以我必須在傳輸之前加密我的備份。 如何使用.NET使用公鑰加密對稱密鑰。 然后在我身邊解密它。 使用對稱密鑰加密文件我知道該怎么做。

首先:深度防守。 如果您擔心備份站點的安全性,請保護備份站點 通過加密緩解攻擊是一個好主意,但它不應該是唯一的想法。

其次,為什么要考慮使用公鑰/私鑰加密? 通常,在嘗試將消息從發件人傳遞給收件人時,您只使用公鑰/私鑰加密。 公鑰加密對您的方案有什么價值?

要在C#中加密流,此頁面可能會有所幫助:

http://support.microsoft.com/kb/307010

更新:

當然,是的,您必須在文件到達您認為已被盜用的網站之前對其進行加密。

您認為該網站可能不安全。 你應該做的假設是該網站是你的敵人,並試圖傷害你 像攻擊者想的那樣開始思考。 你的敵人會做什么? 如果我是你的敵人,你遞給我一堆文件代表你存儲,我可能會:

  • 刪除你的文件
  • 破壞你的文件
  • 讀你的文件
  • 記錄進入或出去進行分析的每個字節
  • 用您存儲在本網站上的惡意文件(特別是所有可執行代碼,腳本等)替換您的文件,您應該假設其中充滿了專門針對您攻擊的病毒
  • 做些讓你陷入困境的東西 - 偽造看起來像是來自你的消息,等等

假設不安全的備份站點操作員正在嘗試對您執行所有這些操作。 加密是對某些攻擊的緩解,但不是全部。

沒有冒犯,但很明顯,你不知道加密來解決這個問題,有任何合理的機會讓它對抗真正的攻擊者。 這沒什么好羞恥的; 我也沒有這方面的知識 相反, 我有足夠的知識知道這個問題超出了我的范圍。 嘗試更多地了解加密是沒有錯的; 我強烈鼓勵。 但是如果你有一個真正的威脅,並且你正試圖用專業級的加密工具來緩解它, 那么就不要推出自己的解決方案了 聘請這個領域的專家顧問,他可以告訴你正確的事情是什么,給你面臨的現實威脅。

使用對稱密鑰加密,然后使用公鑰加密對稱密鑰,然后刪除對稱密鑰。 只有相應私鑰(您)的所有者才能解密對稱密鑰,從而解密文檔。 應用程序中沒有存儲任何秘密。 好消息是,只有大約一噸的開箱即用產品(pgp)和協議(s-mime)才能解決這個問題。

您可以使用對稱密鑰算法(AES,DES,Triple-DES)對代碼執行加密,並將其以十六進制形式存儲在數據庫中(在nvarchar字段中)。 因為,你需要以加密的形式將其轉移給其他人,你不需要使用任何不對稱算法(如RSA,ElGamal等)。如果像RSA這樣的東西,你還必須考慮使用類似PGP的數據進行數據簽名。

但是,無論您使用哪種算法,都需要確保密鑰盡可能安全 ,即AES的對稱密鑰和RSA的私鑰等。

本文提供了有關如何使用/不使用Salt執行對稱加密的教程。

http://www.obviex.com/samples/Encryption.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM