我有一個S3存儲桶,其中包含要與網站用戶共享的對象。我知道我可以使用類似Query String Authentication的東西來提供對這些對象的安全訪問,但是如果我讓每個對象都是公開可讀的,但隱藏在包含密碼強的隨機數的複雜密鑰(即URL)後面呢?如果包含的桶不允許列出對象,那麼就沒有辦法猜測或發現這些URL了,對嗎?還是有一些我可以忽略的安全漏洞?附註:我的第一個想法是在鍵中使用UUID,但是我已經知道它們顯然可以被預測,前面幾個例子給出了。也就是說,我不瞭解這可以做多容易。如果它不平凡,我可能不會太擔心使用它們而不是一個強大的隨機數...帶有隨機密鑰的公共S3對象的安全性
0
A
回答
0
問題是,如果曾經共享的URL進入另一個用戶的手中(通過共享說) 。如果你確保URL保持足夠的祕密,這種方法沒問題(比如你通過https返回給用戶的URL,這個用戶不會共享它)。
這裏的任何漏洞都會導致一個安全漏洞 - 這裏基於查詢字符串的簽名方案是有幫助的,因爲簽名會在固定時間後過期,因此任何重新共享都不會對您造成傷害。
您可以使用UUID(確保它們不會最終重複,如果新發生碰撞,請重新生成另一個)。它們可能與任何其他8字母密碼一樣難以猜測(或更多)。
0
要做你想做的事情的標準方法是爲你想分享的每個對象生成pre-signed URLs。如果你使他們的壽命短,那麼他們不能在這段時間之外共享。所有的AWS-provided SDKs都支持這個功能。
相關問題
- 1. 定期對公共密鑰
- 2. c#的RSA公共密鑰的公鑰#
- 3. 使用Java安全性授權密鑰中的公鑰
- 4. 用隨機密鑰處理JavaScript對象
- 5. 帶有KeyStore和公共證書別名的Java安全性
- 6. 帶有API密鑰的Amazon API安全性?
- 7. 帶有半私密密鑰的OAuth授權代碼的安全
- 8. 加載公鑰爲公共加密創建rsa對象
- 9. 帶隨機對象的NSMutableArray
- 10. 將PHP RSA公共密鑰轉換爲Android公共密鑰
- 11. 在mongodb中存儲公共SSH rsa密鑰是否安全?
- 12. 安卓硬件支持的密鑰庫中的公鑰有多安全?
- 13. 帶有隨機鍵值的Json對象
- 14. 帶私鑰/公鑰的EPub加密
- 15. JavaScript中的API密鑰安全性?
- 16. 顯示帶有隨機密鑰的JSON AngularJS
- 17. 什麼是公共密鑰
- 18. 公共ssh密鑰無效
- 19. 如何與公共密鑰
- 20. 帶有大型隨機密鑰文件的一次性聊天應用程序
- 21. 連接到MQ使用安全密鑰(公鑰和私鑰)
- 22. Java的密鑰對 - 私人 - 公共 - 我只有私人
- 23. AWS S3複製對象源密鑰和目標密鑰
- 24. 帶加密公鑰和私鑰對的大難題概念
- 25. AES與RSA公共密鑰共享密鑰
- 26. 共享主機的密碼安全性(PHP 5.2+)
- 27. iOS生成RSA非隨機密鑰對?
- 28. 合併不帶公共密鑰的查詢
- 29. 帶有「BundleSignerCondition」的OSGI安全性未在Equinox上運行(信任密鑰庫)
- 30. Python:Pycrypto RSA公共密鑰加密錯誤