關于軟件安全
應用云計算的,高度網絡化的現代計算機世界,安全是軟件工程最重要的一個方面。
了解安全最重要的一點是它不是一個重點項目。你不能開發過程的最后才考慮他它。你必須從一開始就意識地設計安全到你的應用程序或服務中,并把它作為從設計到實現,測試,發布的整個過程的一部分。
概述
在應用程序層,安全意味著你的代碼如何使用信息并且確保它的安全可靠。例如,以下都是你的責任:
保證用戶的個人數據安全不被窺視。使用一個安全的方式存儲數據,并且確保您的軟件只收集需要的信息。
小心對待不可信賴的文件和數據。如果你的軟件訪問互聯網或讀取也許是之前在互聯網上發送給某人的文件,你的軟件必須正確驗證這些數據。如果不,它可能在不經意間為攻擊者提供一個向量來訪問其他可能存儲在用戶的計算機或其他移動設備上的個人數據。
在傳輸過程中保護數據。如果你的軟件在互聯網上傳輸個人信息,在傳輸過程中,你必須用一個安全可靠的方式來防止未經授權的訪問或者修改這些數據。
驗證數據的真實性。如果你的軟件可以訪問或使用簽名數據,它應該驗證這些簽名,以確保數據沒有被篡改。如果你的軟件可以訪問或使用簽名數據,應該驗證這些簽名,以確保數據沒有被篡改。
威脅模型幫助您識別風險領域
在規劃階段,你必須確定軟件的威脅性質和最安全的架構方式。要做到這一點,你應該建立一個威脅模型顯示您的軟件的那些部分可能被攻擊。
相關章節:iOS安全概要-1-風險評估和威脅建模
安全編碼技術和操作系統安全功能幫助你減輕風險
在開發過程的每個階段,你必須采取措施降低風險:
避免利用編碼缺陷。在實現階段,你必須避免使用不安全的編碼技術,可以導致任意代碼注入,拒絕服務或其他不正確的行為。
不斷更新風險模型。在整個開發過程中, 隨著軟件的發展您應該繼續執行定期的風險評估和更新你的威脅模型,那么它就能準確地反映出你的風險。
不要重新發明輪子。確保您的軟件和數據的時候,你應該利用內置的安全功能,而不是編寫自己的。特別是,您可能需要確定用戶是否合法與否,將消息安全的發送到服務器保護在運輸過程中數據的完整性和保密性,或在本地磁盤存儲數據保護數據安全。
相關章節:
iOS安全概要-1-風險評估和威脅建模
iOS安全概要-2-代碼安全
iOS安全概要-3-驗證與授權
iOS安全概要-4-加密服務