Categories
程式開發

面向軟件開發者的“GDPR指南”


對開發者來說,歐盟《GDPR》是一個令人頭疼的問題。因為它並沒有明確告訴開發者群體,需要怎麼做才能保持應用程序合規。幸運的是,法國CNIL為此發布了一個詳細指南。

CNIL,全稱Commission Nationale de l’Informatique et des Libertés,即法國國家信息與自由委員會。它是一個獨立的行政機構,依據2004年8月修訂的1978年《法國數據保護法》行使其職能。法國政府在20世紀70年代設立了一個CNIL。作為一個獨立的監察機構,CNIL負責就具體措施提出建議,以保證任何信息技術的發展都將繼續尊重個人隱私、個人權利和公共自由。

此後,該機構一直緊跟最新的行業發展,並與歐洲和國際同行密切合作,分析新技術對公民私人生活的影響。

相比GDPR指南,它的解決方案更具技術性,面向軟件開發者而非更廣泛的公眾群體。

那麼,這個指南包含哪些內容?

具體說來,它包含16個主題文件,涵蓋了開發者項目中每個階段的大部分需求,從項目準備到受眾評估:

  • 按照GDPR開發
  • 識別個人數據
  • 開發準備
  • 保護開發環境
  • 管理源代碼
  • 選擇合適的架構
  • 保護你的網站、應用程序和服務器
  • 盡量減少數據收集
  • 管理用戶信息
  • 控制使用的庫和SDK
  • 保證代碼質量和文檔
  • 測試應用程序
  • 通知用戶
  • 為人民權利的行使做準備
  • 定義數據保留期
  • 在技​​術實施中考慮法律依據
  • 使用網站和應用程序分析

在這個列表中,有幾項非常突出,值得進一步細說。

識別個人數據

在識別個人數據中,有一些個人數據構成的示例,例如:

  • 固定或移動電話號碼、郵寄地址、電子郵件地址
  • IP地址、計算機連接標識和cookie標識

同時,它還提到了個人數據的匿名化和假名化以及兩者之間的差別。

不過,在這一點上,需要注意的是,這些指導方針相對抽象,沒有涉及技術細節。換句話說,這個指南沒有向你展示如何實際匿名化數據;技術解決方案由開發者自己決定。

管理你的源代碼

在管理源代碼中,除了其它建議外,指南還要求你實現代碼質量度量工具。

該工具要在代碼提交後立即掃描代碼,並通過將密鑰和密碼保存在單獨的不會被提交的文件中,來保證它們獨立於源代碼庫之外。

此外,還需要在發生應用程序錯誤時,檢查環境變量是否被意外地寫入日誌或顯示。

選擇合適的架構

選擇合適的架構,有一個大多數人沒有考慮的被低估案例:

確保自己知道託管你代碼的服務器的地理位置。你可能會被要求傳輸數據到歐盟(European Union,EU)和歐洲經濟區(European Economic Area,EEA)之外。

雖然數據可以在歐盟/歐洲經濟區內自由傳輸,但只要確保充分且適當的數據保護水平,就可以在歐盟/歐洲經濟區以外進行傳輸。

CNIL提供了一張地圖,顯示了世界各國不同程度的數據保護級別。

保護你的網站、應用程序和服務器

在保護你的網站、應用程序和服務器上,其說明更容易上手:

  • 實現TLS版本1.2 或1.3
  • 強制使用TLS
  • 限制通訊端口
  • 不明文存放密碼
  • 測試系統上安裝的加密套件並禁用過時套件
  • 做備份,如果可能的話,加密並做定期檢查
  • 通過安排每周自動檢查來立即安裝關鍵更新
  • 保護互聯網可訪問的數據庫,盡可能限制訪問(例如,通過IP過濾)

盡量減少數據收集

盡量減少數據收集反映了《GDPR》的核心價值:

在收集前,思考你想要收集的數據的不同類型,並儘量將收集限制在嚴格必要的範圍內。

控制你使用的庫和SDK

控制你使用的庫和SDK。當今的應用程序需要處理上百個依賴才能運行,因此,開發者在評估添加的每個依賴以及選擇維護的軟件、庫和SDK的價值時,應該更好地理解其中的依賴關係。

最後,在使用網站和應用程序分析時,這個建議直指當前最具爭議的話題之一——cookies,告知用戶關於cookie的信息並尋求用戶的同意。但是,根據一些條件,用於受眾評估/分析的cookie可免於同意。請記住:

“無論它們的配置如何,大部分大型受眾評估產品都不屬於豁免範圍。”

綜上所述,這個指南為合規奠定了正確的基礎。它們將被自上而下地遵循,在技術性方面,它們應該作為接口體現,你必須為其提供具體實現。

附:

https://www.cnil.fr/zh/gdpr-developers-guide