2017-03-07 55 views
0

考慮到有多租戶平臺,用戶可以查看其所屬組織所擁有的所有資源,並且無法查看任何其他組織擁有的資源。如果所有資源UUID都是使用確定性UUID生成的,並且其所有者org的UUID作爲它們的名稱空間,那麼可以使用組織UUID,資源的UUID和確定性UUID方法來確定任何資源的所有者組織?使用確定性UUID進行訪問控制可行嗎?

我從高度確定性的比特幣錢包中引出了這個想法,其中一個初始私鑰用於生成錢包中的所有後續私鑰(可能是不正確的釋義),以便您可以再次生成相同的私鑰從原來的一個。

回答

1

通常,多租戶環境比擁有者單位UUID具有更強大的租戶隔離。通常,UUID值具有非確定性組件。如果您使用確定性UUID,則可以推斷出另一個所有者組織的價值。在這一點看來,確定性的UUID = int標識。如果攻擊者可以指定UUID值,那麼他們將會受到攻擊。

你可能會提出的問題是不明顯是否提供保護。雖然顯眼可能會在你背上放置一個更大的目標,但隨機的不起眼的人一直都會失去他們的身份。真正的安全是使用密鑰而不是算法。

+0

我想我忽略了一個重要的細節。 UUID公司不會像祕密一樣使用,它只是用來識別公司是否擁有其他資源。經過身份驗證的用戶將提供其身份驗證令牌(例如OAuth2),並從該令牌中向用戶的信息請求身份驗證系統(包括公司UUID)。公司UUID可以存儲在每個資源中並進行比較,或者如果UUID可以基於原始公司UUID確定性,則甚至不需要將公司的UUID存儲在每個資源上。 – rgrwkmn

+0

我們可以進入多租戶環境的安全方法,例如爲每個公司使用單獨的數據庫表或單獨的數據庫,但我的問題是有關確定性UUID的功能。 – rgrwkmn

+0

您是否正在考慮正常的uuid與非確定性uuid?目前還不清楚他們爲什麼會吸引你的用例,顯然你對使用它們有一些保留。你爲什麼不使用64位int? – user3112728