簡體   English   中英

Python:在腳本中保護敏感變量內容

[英]Python: securing sensitive variable contents within a script

我需要用戶在我的腳本中輸入他們的密碼,以便隨后我可以使用該密碼對他們的帳戶執行LDAP操作。 很簡單:

password = getpass.getpass()    
ldapconn.simple_bind_s(binddn, password)

即使密碼永遠不會離開腳本,也永遠不會以純文本形式顯示,它是否仍然容易受到內存轉儲之類的攻擊? 在腳本中保護此密碼的最佳方法是什么,但仍然可以使用呢?

這篇文章很有趣: https : //security.stackexchange.com/questions/29019/are-passwords-stored-in-memory-safe

主要是因為答案證實了我對存儲在RAM中的密碼不安全的懷疑。 我的問題是,應該如何執行一項要求將敏感信息存儲在RAM中的工作? 該帖子上沒有人真正發布過實用的實際解決方案,只是對RAM為什么不安全的很多確認和細節。 使用上面的LDAP連接的簡短示例,您可以進行哪些具體更改以更好地保護密碼變量?

使用上面的LDAP連接的簡短示例,您可以進行哪些具體更改以更好地保護密碼變量?

沒有。 您要么:

  • 需要純文本發送到LDAP API,
    • 在這種情況下,您需要使用純文本,攻擊者可能會得到
    • 或者您需要解密的加密文本,攻擊者在解密后可能會得到該文本
  • 需要密碼哈希值才能發送到LDAP API
    • 然后,攻擊者可以獲取哈希並使用它。 在那時,它實際上是一個普通密碼。

存在的解決方案將具有一種設計,該設計完全不涉及提示用戶輸入其密碼,並且不涉及將純文本密碼發送給其他服務。

例如,您有一個運行時間同步的Kerberos環境,用戶在首次登錄時獲得Kerberos票證,並且這些票證用於在沒有密碼提示的情況下通過服務進行身份驗證。 票證的生存期有限,並且內置了Kerberos重放檢測功能,因此,如果從內存中取出票證,則它們的用途遠不如密碼。

因此,用戶在整個環境中都單擊一次密碼提示,而不是在他們運行或訪問的每個腳本中都點擊一次密碼提示,並且該密碼由一個集中的,經過良好檢查的低級操作系統進程處理。

暫無
暫無

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

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