web-dev-qa-db-fra.com

Ouvrez Firefox ou Chrome pour écrire dans SSLKEYLOGFILE.

J'ai exporté une nouvelle variable utilisateur SSLKEYLOGFILE à l'aide de la commande suivante:

export SSLKEYLOGFILE=($HOME)/sslkeylog.log

Si j'ouvre Firefox ou Chrome normalement, aucun fichier sslkeylog.log n'est créé (même s'il est créé, il est vide même si je navigue dans le trafic ssl via le navigateur). Existe-t-il une commande de terminal spéciale pour ouvrir les navigateurs avec ces fonctionnalités activées? Si oui, alors quoi?

1
BEWARB

Omettre les parenthèses

Si vous exécutez export (sans paramètres) après votre commande, vous verrez que SSLKEYLOGFILE est défini sur (/home/username)/sslkeylog.log, ce qui n’est pas un chemin valide. Omettez les parenthèses:

export SSLKEYLOGFILE=$HOME/sslkeylog.log

"Normalement" les applications ouvertes ne verront toujours pas la variable d'environnement

Selon le Manuel de référence Bash :

export [-fn] [-p] [name[=value]]

Mark each name to be passed to child processes in the
environment.[...]

... et de même le manuel du tiret :

 export name ...
 export -p
        The specified names are exported so that they will appear in the
        environment of subsequent commands.[...]

... la variable d'environnement exportée est uniquement transmise aux commandes suivantes du même processus ou des mêmes processus enfants. Ainsi, si vous ouvrez un terminal et exécutez la commande export SSLKEYLOGFILE..., seules les applications (processus) générées à partir du même terminal (ou plus précisément du même processus Shell dans ce terminal) verront la variable d'environnement. Si vous exécutez google-chrome(-stable) à partir de ce terminal , la variable SSLKEYLOGFILE apparaîtra et sera écrite dans le fichier spécifié.

Si vous ouvrez Google chrome via un démarreur d’application (que je suppose que vous considérez comme normal ), ce ne sera pas un processus enfant du terminal et ne sera donc pas au courant de la variable SSLKEYLOGFILE.

Sachez également que si chrome est déjà en cours d'exécution, l'exécution de google-chrome-stable dans un terminal ouvrira une nouvelle fenêtre dans le processus en cours d'exécution. Vous pouvez afficher l’arbre de processus en exécutant pstree dans un terminal.

Comme cela ne faisait pas partie de la question, je n’entrerai pas dans les détails, mais la définition de variables d’environnement persistantes, qu’elles soient au niveau de la session ou du système, est expliquée dans le wiki de la communauté Ubunt

4
danzel

je voulais partager avec d'autres, la solution susmentionnée a fonctionné pour moi sur Ubuntu 18.10 en utilisant le chrome

vous pouvez lancer un site depuis un terminal, en utilisant

$ google-chrome https://askubuntu.com/questions

pour moi, je voulais lire une conversation TCP dans Wirehark.

Les journaux de clés peuvent être écrits par NSS afin que les programmes externes puissent déchiffrer les connexions TLS. Wireshark 1.6.0 et versions ultérieures peuvent utiliser ces fichiers journaux pour décrypter les paquets. Vous pouvez indiquer à Wireshark où trouver le fichier de clé via Édition → Préférences → Protocoles → SSL → Nom du journal (Pre) -Master-Secret.

remarque, je n'ai pas essayé firefox. cela pourrait fonctionner, mais je ne voulais pas perdre de temps à le comprendre. mozilla a noté qu'elle était désactivée par défaut pour debian https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Key_Log_Format

depuis que je suis un nouveau membre, le forum ne me laissera pas voter la solution.

3
Mark