我創建了一個簡單的Mac應用程序,該應用程序可以爲您提供隨時間變化的工作行爲統計信息。例如,您每分鐘的平均單詞,您輸入的語言,刪除鍵的用法等等。有趣的東西!但是,一些測試用戶表示,如果他們不認識我,那麼他們就不會使用該應用,因爲它收集鍵盤記錄等擊鍵。如何顯示我的應用程序不是鍵盤記錄程序?
是否有一些證書可以證明我沒有做任何邪惡的事情? (我從來沒有在內存中保留多個單詞!)或者是否足以讓我的應用程序簽名?還是開源的那部分代碼? (我知道其他部分我無法開源。)
我創建了一個簡單的Mac應用程序,該應用程序可以爲您提供隨時間變化的工作行爲統計信息。例如,您每分鐘的平均單詞,您輸入的語言,刪除鍵的用法等等。有趣的東西!但是,一些測試用戶表示,如果他們不認識我,那麼他們就不會使用該應用,因爲它收集鍵盤記錄等擊鍵。如何顯示我的應用程序不是鍵盤記錄程序?
是否有一些證書可以證明我沒有做任何邪惡的事情? (我從來沒有在內存中保留多個單詞!)或者是否足以讓我的應用程序簽名?還是開源的那部分代碼? (我知道其他部分我無法開源。)
我認爲Gatekeeper對於大多數用戶來說已經足夠了。如果事實證明一個應用程序正在做壞事,那麼Apple可能會將其插入惡意軟件開發商。因此,也許有些時候應該建立你的程序對那些沒有技術傾向的人來說是「安全的」(例如,不明白你的來源)。
只需將其分發給您的公司或您的公司名稱,可以在應用程序中建立信任(當然,您的其他產品/程序未違反用戶的信任)。
通過Mac App Store發佈將會有所幫助,因爲用戶可以看到Apple已經嘗試過您的應用程序,並且沒有發現任何惡意內容。 [新增:]此外,沙盒應用程序意味着您的應用程序僅限於一組明確的技能,技術熟練的用戶可以檢查。任何未列出的東西,你都無法做到,所以這將是一個簡單的方法來證明你不會通過互聯網發送任何東西。
另一件事是將所有數據保存在用戶可讀文件中。沒有二進制plists,沒有核心數據存儲等等。(這些XML變體是否應該算作用戶可讀的,但是爲了這個目的,我認爲至少一個XML plist是足夠可讀的。關於核心數據。)
如果用戶可以使用他們信任的應用程序(例如TextEdit)讀取您存儲的所有原始數據,而不僅僅是您通常喜歡的應用程序內展示,那麼他們可以檢查他們自己,並最終相信,你沒有存儲任何他們不想要你的東西。
如果有關的潛在用戶通過電子郵件向您發送關於是否通過互聯網向自己的服務器報告他們的擊鍵,並假設您根本沒有建立任何互聯網連接(甚至沒有更新檢查),您可以推薦他們應該安裝Little Snitch,這會在任何時候任何應用嘗試連接到某個東西時彈出確認提醒。當他們沒有看到關於你的應用程序的警報時,他們知道你不打電話回家。
您也可以在您的產品網頁上加入技術檔案的鏈接。 Here's Jesper's article proposing them和here's one example of such a document, for one of his products。
建議不要與互聯網通話。在Android上,通過不要求安裝權限就可以證明沒有互聯網連接。很遺憾,iOS上沒有類似的東西。 – Steve
@Steve:問題是關於OS X,一個(技術上足夠熟練的)用戶可以檢查沙盒應用程序的權利列表,並發現它無權成爲網絡服務器或客戶端。在這裏可能有機會爲這些信息提供更友好的用戶界面。 –
Apple的文檔沒有直接解決問題,但我不認爲沙盒應用可以捕獲其他應用的按鍵事件。文檔很清楚,你可以*發送*事件給其他應用程序,所以我很確定你無法捕獲它們。我喜歡將有關用戶引導至小金斯威奇的想法。 –
如果您可以將應用程序放到Apple的App Store上,那麼這意味着他們將檢查它是否存在這樣的問題。他們沒有辦法在那裏明確地允許一個鍵盤記錄應用程序。此外,使用Apple證書籤署應用程序可確保如果已從App Store下載並稍後被發現是邪惡的,則可將其列入黑名單。
開源代碼也是一個好主意。我認爲你不能全部打開它,因爲它不屬於你?如果是這樣,那麼就清楚地說明它使用的是什麼技術,並且對應用程序的功能以及如何執行這些功能持開放誠實的態度。
簽名只是說第三方已收到一些錢,說可執行文件通過你的手(即實體'斯坦詹姆斯'被記賬,簽署該軟件的實體'斯坦詹姆斯'可能是同一個實體,模數你失去了你的祕密密鑰)。如果人們不相信你,說軟件來自你並不真正有幫助。 –