RFC-0133:軟體推送目標

RFC-0133:軟體交付目標
狀態已接受
區域
  • 軟體交付
說明

軟體交付領域的一組長期目標。

Gerrit 變更
作者
審查人員
提交日期 (年-月-日)2021-09-08
審查日期 (年-月-日)2021-10-04

摘要

軟體交付領域的一組長期目標。

提振精神

Fuchsia 軟體發布系統需要優先處理客戶需求,未來也會繼續這麼做,但我們也需要設定長期方向,以便在設計時謹記在心。雖然我們對許多目標沒有明確的客戶需求,但這些目標仍是我們在演進系統時應設計和牢記的目標。這份清單可能會隨時變動,這很正常。不過,這代表了當今世界所期望的狀態。

利害關係人

協助人員:

hjfreyer@google.com

審查者:

  • abarth@google.com - FEC
  • amathes@google.com - Product
  • computerdruid@google.com - SWD
  • ampearce@google.com - Security

已諮詢:

  • kitlane@google.com
  • mckillop@google.com
  • hjfreyer@google.com
  • 軟體交付團隊

社交:

這項 RFC 已由軟體交付團隊和貢獻者以文件形式審查。

設計

目標

  1. 優先考量客戶需求:如有迫切的客戶需求,只要不影響長期目標,我們應勇於重新檢視現有導入項目或變更策略。
  2. OTA
  3. 平台和非平台更新具有相同功能:平台 OTA 和獨立模組的更新具有相同功能 (管道、分階段推出、跳板等),OSS 使用者應可使用這些功能。
  4. 減少單體式架構:我們希望平台的大部分元件都能獨立更新。
  5. 提供可修改持續性狀態的攻擊復原選項: SWD 堆疊應能在開機時自動執行更新,並盡量減少對可變動資料和其他軟體的依附性,以盡可能從嚴重安全漏洞 (包括可讓攻擊者修改持續性狀態的漏洞) 中復原。
  6. 更新可靠性至關重要:只要能證明更新軟體不會影響安全性需求,我們就應優先更新軟體。我們應優先考慮簡單可靠的程式碼,即使會對效能造成合理影響也無妨;我們的目標是建立最簡單的系統,能夠正確且安全地執行更新,並符合其他效能需求。我們應偏向安全失敗的設計,並允許再次更新,而不是可能在另一次嘗試中損毀狀態。
  7. 產品擁有者決定其產品的策略 :平台定義了哪些軟體更新策略可以表達,並建議初始策略。產品擁有者可以選擇政策設定,並隨時變更政策選項,即使裝置已部署完畢也沒問題。
  8. 所有軟體都會根據預設政策進行驗證:所有軟體都會根據為該類型軟體定義的政策進行檢查。這些政策可能包括可執行程式碼的出處檢查、完整性檢查、沙箱等。如果沒有預先定義的政策機制,任何軟體都無法執行。
  9. 軟體來源政策是產品相關問題
    1. 平台不會限制軟體發布者,也不會規定需要哪些核准。集中式與去中心化軟體來源是產品政策,而非平台政策。只要軟體發布時附上適當的中繼資料 (例如發布者簽章),平台就應該能夠執行。
    2. 平台會建立機制來強制執行軟體政策,但產品擁有者可自行決定可用的軟體來源。產品擁有者可以透過政策限制可用的軟體來源,但平台不會這麼做。
    3. 平台應能產生可安裝任意軟體的產品,包括允許使用者在裝置上執行任意發布者軟體的功能。

實作

我們會在軟體推送說明文件中加入這項 RFC 的連結,並在軟體推送領域的設計流程中謹記這項 RFC。

效能

不會影響效能。

安全性考量

這項 RFC 的實作不會立即影響安全性。從長遠來看,我們預期在執行這些目標時,會與安全團隊進行大量協作,因為 SWD 更新機制是我們在現場保護漏洞的主要方法。

隱私權注意事項

這項 RFC 的實作不會影響隱私權。從長遠來看,我們預期在達成這些目標的過程中,會與隱私權團隊進行大量合作。

測試

這項 RFC 的實作不會影響測試。

說明文件

我們會從軟體推送 README 連結至這個 RFC。

缺點、替代方案和未知事項

我們可以為軟體交付領域設定的目標幾乎無上限。 我們認為這些目標最能準確呈現堆疊的現狀和期望狀態。

我們仍有許多未知數,例如如何與任何可能的第三方軟體發布商整合。一旦我們掌握客戶對可能功能的具體需求,就能更妥善地處理這些未知情況。

既有技術和參考資料

先前發布的 SWD 藍圖資訊非常少。不過,許多先前的套件管理和軟體供應鏈安全疊代版本都存在。以下列舉一些先前技術: