2009-11-16 86 views
2

我想出售Cocoa Touch應用程序的靜態庫,但希望保護它免於自由分發。有沒有人嘗試過或者對我可以構建的方案有建議?靜態庫的授權系統

來自桌面世界的一個示例是供應商在購買庫後向您發送許可證密鑰。該鍵必須嵌入到您的應用程序中,這是該庫在運行時會查找的內容。問題是任何人都可以在網上發佈圖書館和鑰匙。

回答

9

構建強大的快速密鑰生成器算法,並部分基於購買者捆綁標識符。當有人購買圖書館時,他們給你的包標識符,你給他們一個密鑰嵌入。在運行時,請閱讀捆綁標識符和嵌​​入的密鑰,通過算法運行它並查看它是否匹配。

這有點好一點,因爲如果來自其他人的人不太可能使用捆綁標識符 - 他們將不得不設置多個證書,開發者配置文件等。此外,合法購買可能不會非法使用該庫在他/她自己的不同應用之間。

+0

太棒了。通過快速密鑰生成器,你的意思是有些含糊不清,並使用包標識符來構建密鑰? – 4thSpace 2009-11-16 01:16:56

+0

是的。您還需要對其進行混淆,以防有人聰明地嘗試對二進制進行逆向工程。但是,這可能是矯枉過正,取決於你的靜態庫是什麼。 – coneybeare 2009-11-16 03:11:18

+0

我也可能在此方案中包含應用程序名稱。但是當有人想要更改他們的應用名稱或捆綁標識符時會發生什麼?這可能會成爲我的維護問題,除非我採取「混蛋」路線並收取這些更改費用。 – 4thSpace 2009-11-16 03:44:38

0

棘手。我想這取決於你想坐在不便之處 - 安全頻譜。如果你想成爲一個巨大的混蛋,你可能會要求使用你的工具構建的所有二進制文件被髮送到你發佈的Web服務,這將基於二進制文件的散列值爲它們添加一個密鑰。可能你最好遵循你目前的計劃。是的,它可以發佈在網絡上,但這只是一個你將不得不採取的機會。最好不要把你的客戶當作罪犯。跟蹤您銷售的鑰匙,如果您發現在線銷售的鑰匙吊銷其許可證。

+0

+1對於「最好不要把你的顧客當作罪犯」,但是你回過頭想要撤銷許可證。你怎麼知道他們泄露了它?也許有人從他們那裏購買了他們的程序並從中獲得了它? (現在是否可以消除我所有的競爭對手?:P) – 2009-11-16 00:13:29

+0

把鑰匙放在plist中,沒有網絡服務電話是最方便的。我是否需要保存每個庫更新中銷售的所有鍵的數組列表?我同意R. Pate不知道客戶是否真的發佈了它。沒有辦法證明這一點,公關將是可怕的。所以,只需要抓住機會,並與可憐的plist解決方案,因爲似乎沒有任何可行的。 – 4thSpace 2009-11-16 00:22:14

2

好吧,我不打算試圖向其他開發者出售受版權保護的庫。由於我們談論的是iPhone應用程序,如果您懷疑某人未經授權使用您的代碼,並且您可以證明這一點,則可以向Apple發送DMCA刪除通知,並將其從商店中刪除。

+0

您如何知道應用商店中的某個應用程序未經授權使用該庫?除非你有客戶銷售的所有應用程序的帳戶,否則你無法真正瞭解。 – 4thSpace 2009-11-16 00:27:08

0

試試這種方式: 您要求開發者提供將使用您的庫的應用程序的應用程序名稱。 使用加密的應用程序名稱和內部許可證代碼發送庫。

您的圖書館將隨機檢查時間,應用程序名稱和許可證,然後在您的圖書館中檢查訪問互聯網上的網站以驗證這一對。 如果沒有匹配,您的圖書館會要求應用程序退出。

+0

我想避免檢查Internet的情況。我相信康尼貝爾的建議是最好的。 – 4thSpace 2009-11-16 16:14:17