浏览代码

vlc: add explanations about sandboxing

Alexandre Janniaux 6 年之前
父节点
当前提交
2e132102a0
共有 1 个文件被更改,包括 35 次插入0 次删除
  1. 35 0
      vlc/04_01_explication_sandboxing.md

+ 35 - 0
vlc/04_01_explication_sandboxing.md

@@ -0,0 +1,35 @@
+# Explication sandboxing
+
+Le sandboxing d'une application consiste à isoler l'application du système, en
+totalité ou en partie. L'objectif est de définir un contexte restreint
+d'exécution pour l'application, de façon à limiter son impact potentiel sur le
+reste du système dans le cas où elle serait compromise. Il n'est ici pas
+question de protéger l'application d'une menace extérieure à la sandbox mais
+bien de protéger l'utilisateur final en dernière mesure.
+
+> Sandbox rule no 1: le sable reste dans le bac à sable.
+TODO: Ajouter image
+
+Le cas d'une application comme VLC montre les limites d'un sandboxing
+non intrusif, effectué application par application. VLC peut se connecter au
+réseau pour télécharger un flux vidéo, l'enregistrer sur le disaque et en même
+temps le décoder et l'afficher en rendu direct via le GPU, sans compter le
+fenêtrage et la rediffusion. Trouver des règles génériques pour toute
+l'application revient à autoriser l'application à faire presque n'importe quoi
+en cas d'exécution de code arbitraire.
+
+Il est alors nécessaire de séparer l'application en plusieurs parties isolées.
+Étant donné que l'on se place dans la situation où n'importe quel code peut être
+exécuté, il faut non seulement l'isolation des ressources et permissions mais
+également de la mémoire. La solution naturelle est donc de les séparer dans des
+processus indépendant. Le défi est alors d'apporter cette architecture
+multiprocessus dans VLC, en restant multiplate-forme et en ayant le moins
+d'impact possible sur les perfomances. 
+
+// TODO critère performance
+
+Il est également hros de question de devoir trop modifier les modules, ceux-ci
+comptant pour dix fois plus de code que le core lui-même. La solution doit
+s'intégrer dans le core de VLC et être réversible.
+
+// TODO réversible ?