L’offuscation, assombrissement, ou obscurcissement est une stratégie de gestion de l'information qui vise à obscurcir le sens qui peut être tiré d'un message. Cette stratégie peut être intentionnelle ou involontaire.
Cette stratégie peut par exemple servir en matière de protection de la vie privée (par exemple, pour la protection des données personnelles ou la gestion de la réputation numérique), mais peut servir de base à un choix dans le contenu du message, à des tactiques de guerre ou à la sauvegarde de la confidentialité des informations.
On peut également parler de masquage, d'opacification ou d'assombrissement.
Exemples de stratégies reposant sur l'offuscation
L'offuscation peut être utilisée dans des contextes spécifiques et à des fins différentes. Par exemple, pendant la Seconde Guerre Mondiale, les bombardiers britanniques et américains commencèrent à utiliser des paillettes d'aluminium. Ces paillettes, en étant larguées au moment opportun, brouillaient le signal des radars allemands, permettant aux avions de s'échapper sans que les opérateurs ennemis puissent signaler leur position à leurs chasseurs. La création et le recours à l'argot peut également être perçu comme une tentative d'offuscation, visant à empêcher les non-initiés de comprendre le message échangé entre les interlocuteurs.
Le rapport au temps est important : l'offuscation peut n'avoir pour objectif que d'obscurcir le sens de l'information que pendant un temps limité. Dans l'exemple des paillettes utilisées par les avions, l'offuscation ne dure que le temps que les paillettes rejoignent le sol ou soient suffisamment dissociées du signal de l'avion pour que celui-ci réapparaisse sur les radars ennemis. L'objectif de la stratégie est alors de retarder la compréhension, de manière à gagner du temps.
Utilisation en matière de protection de la vie privée
La protection de la vie privée repose sur des normes sociales, juridiques (par exemple , la loi Informatique et Libertés) ou techniques (comme la cryptographie, qui vise à rendre illisible le message à d'autres personnes que son expéditeur et son destinataire). À l'ère d'Internet, ces protections sont remises en question par les faiblesses de régulation de l'Internet au niveau mondial et par les progrès technologiques.
Confronté à la publication ou à la « fuite » de données confidentielles, gênantes ou diffamantes, il devient de plus en plus difficile de les faire corriger, effacer ou d'exercer un droit de réponse. L'offuscation peut consiste à dissimuler le sens ou l'importance d'une information sans annuler sa visibilité, en la noyant dans une masse d'informations de même type, mais non pertinentes, et par exemple, à la rendre plus difficile à trouver en utilisant un moteur de recherche.
Exemples et outils
Sur le site de notation des professeurs Note2be, des enseignants opposés à la démarche du site ont proposé à l’évaluation Karl Marx ou Achille Talon.
TrackMeNot, une extension du navigateur Firefox, multiplie les requêtes aléatoires à Google afin que les vraies requêtes même si elles sont enregistrées, ne renseignent en rien sur les centres d’intérêt de l'internaute espionné .
Des recherches traitent de la manière d’« assombrir » les informations de géolocalisation pour protéger la vie privée des utilisateurs d’objets communicants.
代码混淆(Obfuscated code)亦称花指令,是将计算机进程的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为。代码混淆可以用于进程源代码,也可以用于进程编译而成的中间代码。执行代码混淆的进程被称作代码混淆器。目前已经存在许多种功能各异的代码混淆器。
将代码中的各种元素,如变量,函数,类的名字改写成无意义的名字。比如改写成单个字母,或是简短的无意义字母组合,甚至改写成“__”这样的符号,使得阅读的人无法根据名字猜测其用途。
重写代码中的部分逻辑,将其变成功能上等价,但是更难理解的形式。比如将for循环改写成while循环,将循环改写成递归,精简中间变量,等等。
打乱代码的格式。比如删除空格,将多行代码挤到一行中,或者将一行代码断成多行等等。
代码混淆器也会带来一些问题。主要的问题包括:
被混淆的代码难于理解,因此调试除错也变得困难起来。开发人员通常需要保留原始的未混淆的代码用于调试。
对于支持反射的语言,代码混淆有可能与反射发生冲突。
代码混淆并不能真正阻止反向工程,只能增大其难度。因此,对于对安全性要求很高的场合,仅仅使用代码混淆并不能保证源代码的安全。