* Making package.el talk over Tor @ 2023-10-16 2:04 Richard Stallman 2023-10-16 6:54 ` Akib Azmain Turja 2023-10-16 7:12 ` Stefan Kangas 0 siblings, 2 replies; 47+ messages in thread From: Richard Stallman @ 2023-10-16 2:04 UTC (permalink / raw) To: emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] I would like to arrange for package.el to always connect to ELPA across the Tor network. But it is 4600 lines of code and I would rather not have to read it all. Can someone tell me where to find the code that actually communicates with the ELPA repos? Where is the best place to make that change? -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-10-16 2:04 Making package.el talk over Tor Richard Stallman @ 2023-10-16 6:54 ` Akib Azmain Turja 2023-10-16 7:10 ` Emanuel Berg ` (2 more replies) 2023-10-16 7:12 ` Stefan Kangas 1 sibling, 3 replies; 47+ messages in thread From: Akib Azmain Turja @ 2023-10-16 6:54 UTC (permalink / raw) To: Richard Stallman; +Cc: emacs-devel [-- Attachment #1: Type: text/plain, Size: 1058 bytes --] Richard Stallman <rms@gnu.org> writes: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > I would like to arrange for package.el > to always connect to ELPA across the Tor network. > But it is 4600 lines of code and I would rather not have to read it all. > > Can someone tell me where to find the code that actually > communicates with the ELPA repos? Where is the best place > to make that change? Isearching for 'url-' reveals that the following functions use the URL package to access the HTTP server: 'package--with-work-buffer', 'package--archive-file-exists-p' and'package--with-response-buffer-1'. But I think a better/safer solution will be to use torsocks. -- Akib Azmain Turja, GPG key: 70018CE5819F17A3BBA666AFE74F0EFA922AE7F5 Fediverse: akib@hostux.social Codeberg: akib emailselfdefense.fsf.org | "Nothing can be secure without encryption." [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 832 bytes --] ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-10-16 6:54 ` Akib Azmain Turja @ 2023-10-16 7:10 ` Emanuel Berg 2023-10-18 1:42 ` Richard Stallman 2023-11-17 3:53 ` Richard Stallman 2 siblings, 0 replies; 47+ messages in thread From: Emanuel Berg @ 2023-10-16 7:10 UTC (permalink / raw) To: emacs-devel Akib Azmain Turja wrote: >> I would like to arrange for package.el to always connect to >> ELPA across the Tor network. But it is 4600 lines of code >> and I would rather not have to read it all. >> >> Can someone tell me where to find the code that actually >> communicates with the ELPA repos? Where is the best place >> to make that change? > > Isearching for 'url-' reveals that the following functions > use the URL package to access the HTTP server: > 'package--with-work-buffer', > 'package--archive-file-exists-p' > and'package--with-response-buffer-1'. > > But I think a better/safer solution will be to use torsocks. Holy socks! But won't there be a connection speed disadvantage from doing this? -- underground experts united https://dataswamp.org/~incal ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-10-16 6:54 ` Akib Azmain Turja 2023-10-16 7:10 ` Emanuel Berg @ 2023-10-18 1:42 ` Richard Stallman 2023-11-17 3:53 ` Richard Stallman 2 siblings, 0 replies; 47+ messages in thread From: Richard Stallman @ 2023-10-18 1:42 UTC (permalink / raw) To: Akib Azmain Turja; +Cc: emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > Isearching for 'url-' reveals that the following functions use the URL > package to access the HTTP server: 'package--with-work-buffer', > 'package--archive-file-exists-p' and'package--with-response-buffer-1'. > But I think a better/safer solution will be to use torsocks. Better/safer solution than which other solution? Using torsocks was what I had in mind -- the question is where it would be easy to do that. Would it be easy to do in those three functions? If not, then where? -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-10-16 6:54 ` Akib Azmain Turja 2023-10-16 7:10 ` Emanuel Berg 2023-10-18 1:42 ` Richard Stallman @ 2023-11-17 3:53 ` Richard Stallman 2023-11-17 7:03 ` Philip Kaludercic 2023-11-18 3:03 ` Richard Stallman 2 siblings, 2 replies; 47+ messages in thread From: Richard Stallman @ 2023-11-17 3:53 UTC (permalink / raw) To: Akib Azmain Turja; +Cc: emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] Thanks for replying to my question a month ago. I got so backlogged I just saw the reply. > > Can someone tell me where to find the code that actually > > communicates with the ELPA repos? Where is the best place > > to make that change? > Isearching for 'url-' reveals that the following functions use the URL > package to access the HTTP server: 'package--with-work-buffer', > 'package--archive-file-exists-p' and'package--with-response-buffer-1'. > But I think a better/safer solution will be to use torsocks. I agree, and I plan to use torsocks. But in order to do thst, I need to know where to do that. That's really what my question was about. Can you suggest where I should do that? Does the url package have a variable to specify the command to use? I could specify torsocks there. -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-11-17 3:53 ` Richard Stallman @ 2023-11-17 7:03 ` Philip Kaludercic 2023-11-19 3:39 ` Richard Stallman 2023-11-18 3:03 ` Richard Stallman 1 sibling, 1 reply; 47+ messages in thread From: Philip Kaludercic @ 2023-11-17 7:03 UTC (permalink / raw) To: Richard Stallman; +Cc: Akib Azmain Turja, emacs-devel Richard Stallman <rms@gnu.org> writes: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > Thanks for replying to my question a month ago. > I got so backlogged I just saw the reply. > > > > Can someone tell me where to find the code that actually > > > communicates with the ELPA repos? Where is the best place > > > to make that change? > > > Isearching for 'url-' reveals that the following functions use the URL > > package to access the HTTP server: 'package--with-work-buffer', > > 'package--archive-file-exists-p' and'package--with-response-buffer-1'. > > > But I think a better/safer solution will be to use torsocks. > > I agree, and I plan to use torsocks. But in order to do thst, I need > to know where to do that. That's really what my question was about. > > Can you suggest where I should do that? > > Does the url package have a variable to specify the command to use? > I could specify torsocks there. No, url.el eventually calls `make-network-process', that directly invokes the respective networking system calls, not making it possible to interject torsocks. What I believe Akib meant was to start Emacs with torsocks, but to my understanding this is not a recommended practice either, because one will continue to leak fingerprintable metadata (specially inside of Emacs) that would undermine the point of using Tor to begin with. ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-11-17 7:03 ` Philip Kaludercic @ 2023-11-19 3:39 ` Richard Stallman 2023-11-19 6:17 ` Eli Zaretskii 2023-12-14 12:41 ` Philip Kaludercic 0 siblings, 2 replies; 47+ messages in thread From: Richard Stallman @ 2023-11-19 3:39 UTC (permalink / raw) To: Philip Kaludercic; +Cc: akib, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > No, url.el eventually calls `make-network-process', that directly > invokes the respective networking system calls, not making it possible > to interject torsocks. Is this the code you mean? (open-network-stream name buffer host service :type gw-method ;; Use non-blocking socket if we can. :nowait (and (featurep 'make-network-process) (url-asynchronous url-current-object) '(:nowait t))) How can I make that use TOR? I could set `url-gateway-method' to specify some other method, but what other value would make it possible to put in torsocks? > What I believe Akib meant was to start Emacs > with torsocks, I think that is no good -- all subprocesses of Emacs would be compelled to use torsocks too. > because one will continue to leak fingerprintable > metadata (specially inside of Emacs) Could you give me an example of what you mean? -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-11-19 3:39 ` Richard Stallman @ 2023-11-19 6:17 ` Eli Zaretskii 2023-12-09 4:06 ` Richard Stallman 2023-12-14 12:41 ` Philip Kaludercic 1 sibling, 1 reply; 47+ messages in thread From: Eli Zaretskii @ 2023-11-19 6:17 UTC (permalink / raw) To: rms; +Cc: philipk, akib, emacs-devel > From: Richard Stallman <rms@gnu.org> > Cc: akib@disroot.org, emacs-devel@gnu.org > Date: Sat, 18 Nov 2023 22:39:36 -0500 > > > No, url.el eventually calls `make-network-process', that directly > > invokes the respective networking system calls, not making it possible > > to interject torsocks. > > Is this the code you mean? > > (open-network-stream > name buffer host service > :type gw-method > ;; Use non-blocking socket if we can. > :nowait (and (featurep 'make-network-process) > (url-asynchronous url-current-object) > '(:nowait t))) Yes. > How can I make that use TOR? Perhaps the ':type shell' connection is the solution? ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-11-19 6:17 ` Eli Zaretskii @ 2023-12-09 4:06 ` Richard Stallman 2023-12-09 7:40 ` Eli Zaretskii 0 siblings, 1 reply; 47+ messages in thread From: Richard Stallman @ 2023-12-09 4:06 UTC (permalink / raw) To: Eli Zaretskii; +Cc: philipk, akib, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > Is this the code you mean? > > > > (open-network-stream > > name buffer host service > > :type gw-method > > ;; Use non-blocking socket if we can. > > :nowait (and (featurep 'make-network-process) > > (url-asynchronous url-current-object) > > '(:nowait t))) > > How can I make that use TOR? > Perhaps the ':type shell' connection is the solution? I have no idea. How could I use that to acheieve the goal? -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-12-09 4:06 ` Richard Stallman @ 2023-12-09 7:40 ` Eli Zaretskii 2023-12-13 4:58 ` Richard Stallman 0 siblings, 1 reply; 47+ messages in thread From: Eli Zaretskii @ 2023-12-09 7:40 UTC (permalink / raw) To: rms; +Cc: philipk, akib, emacs-devel > From: Richard Stallman <rms@gnu.org> > Cc: philipk@posteo.net, akib@disroot.org, emacs-devel@gnu.org > Date: Fri, 08 Dec 2023 23:06:38 -0500 > > > > Is this the code you mean? > > > > > > (open-network-stream > > > name buffer host service > > > :type gw-method > > > ;; Use non-blocking socket if we can. > > > :nowait (and (featurep 'make-network-process) > > > (url-asynchronous url-current-object) > > > '(:nowait t))) > > > > How can I make that use TOR? > > > Perhaps the ':type shell' connection is the solution? > > I have no idea. How could I use that to acheieve the goal? I never tried this, and I'm not familiar with TOR, so all I have is what the ELisp manual says where it documents open-network-stream (which is the workhorse of all Emacs commands that use network connections): -- Function: open-network-stream name buffer host service &rest parameters This function opens a TCP connection, with optional encryption, and returns a process object that represents the connection. [...] The remaining arguments PARAMETERS are keyword/argument pairs that are mainly relevant to encrypted connections: [...] ‘:type TYPE’ The type of connection. Options are: ‘plain’ An ordinary, unencrypted connection. ‘tls’ ‘ssl’ A TLS (Transport Layer Security) connection. ‘nil’ ‘network’ Start with a plain connection, and if parameters ‘:success’ and ‘:capability-command’ are supplied, try to upgrade to an encrypted connection via STARTTLS. If that fails, retain the unencrypted connection. ‘starttls’ As for ‘nil’, but if STARTTLS fails drop the connection. ‘shell’ A shell connection. [...] ‘:shell-command STRING-OR-NIL’ If the connection ‘type’ is ‘shell’, this parameter will be interpreted as a format-spec string that will be executed to make the connection. The specs available are ‘%s’ for the host name and ‘%p’ for the port number. For instance, if you want to first ssh to ‘gateway’ before making a plain connection, then this parameter could be something like ‘ssh gateway nc %s %p’. This sounds like a way to make the connection by running a shell command. Maybe you could arrange for using this facility to do what you want? Apologies if this makes no sense to someone who does understand how TOR works; I don't. ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-12-09 7:40 ` Eli Zaretskii @ 2023-12-13 4:58 ` Richard Stallman 2023-12-14 12:25 ` Philip Kaludercic 0 siblings, 1 reply; 47+ messages in thread From: Richard Stallman @ 2023-12-13 4:58 UTC (permalink / raw) To: Eli Zaretskii; +Cc: philipk, akib, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > This sounds like a way to make the connection by running a shell > command. Maybe you could arrange for using this facility to do what > you want? I have no idea. I don't know how to make a program talk to anything over the net, either with Tor or without. I think all Emacs features to do something over the internet should give users a way to say "go through Tor". (For most applicaions I think a global variable is the preferable way to specify this.) Can someone who knows how to do that please implement it for Emacs package.el? -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-12-13 4:58 ` Richard Stallman @ 2023-12-14 12:25 ` Philip Kaludercic 2023-12-17 3:21 ` Richard Stallman 0 siblings, 1 reply; 47+ messages in thread From: Philip Kaludercic @ 2023-12-14 12:25 UTC (permalink / raw) To: Richard Stallman; +Cc: Eli Zaretskii, akib, emacs-devel Richard Stallman <rms@gnu.org> writes: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > This sounds like a way to make the connection by running a shell > > command. Maybe you could arrange for using this facility to do what > > you want? > > I have no idea. I don't know how to make a program talk to anything > over the net, either with Tor or without. I tried out Eli's suggestion, and it seems to work: (let ((conn (open-network-stream "test" (current-buffer) "gnu.org" "http" :type 'shell :shell-command "torsocks nc %s %p"))) (process-send-string conn "GET / HTTP/1.0\r\n\r\n")) > > I think all Emacs features to do something over the internet should > give users a way to say "go through Tor". (For most applicaions I > think a global variable is the preferable way to specify this.) If you have a Tor daemon running on your system, it should provide a SOCKS proxy by default, meaning that you can configure every package that uses url.el to go through this proxy (unless I have misunderstood something): --8<---------------cut here---------------start------------->8--- (setq url-gateway-method 'socks socks-server '("Tor" "localhost" 9050 5)) --8<---------------cut here---------------end--------------->8--- That being said, while testing I noticed that when connecting to a server I have access to, I always receive two requests, one from a Tor exit node and one from my current IP address. Unless I missed something obvious, that might be a bug. > Can someone who knows how to do that please implement it for Emacs package.el? FWIW As package.el doesn't directly use any low level networking, so the :shell trick wouldn't be something that could be easily implemented. ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-12-14 12:25 ` Philip Kaludercic @ 2023-12-17 3:21 ` Richard Stallman 2023-12-18 4:12 ` Richard Stallman 0 siblings, 1 reply; 47+ messages in thread From: Richard Stallman @ 2023-12-17 3:21 UTC (permalink / raw) To: Philip Kaludercic; +Cc: emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > If you have a Tor daemon running on your system, it should provide a > SOCKS proxy by default, I believe it does that. meaning that you can configure every package > that uses url.el to go through this proxy (unless I have misunderstood > something): Maybe that is possible. But I know very little about sockets or how to use them. I would appreciate precise advice about what I should do to tell package.el to connect using Tor. You sent this code (let ((conn (open-network-stream "test" (current-buffer) "gnu.org" "http" :type 'shell :shell-command "torsocks nc %s %p"))) (process-send-string conn "GET / HTTP/1.0\r\n\r\n")) but I don't think that is a solution ready to use. It looks like a proposed approach for designing that solution. Also, the end of your message MAY mean that this approach is not applicable to package.el. > If you have a Tor daemon running on your system, it should provide a > SOCKS proxy by default, meaning that you can configure every package > that uses url.el to go through this proxy (unless I have misunderstood > something): > --8<---------------cut here---------------start------------->8--- > (setq url-gateway-method 'socks > socks-server '("Tor" "localhost" 9050 5)) > --8<---------------cut here---------------end--------------->8--- > That being said, while testing I noticed that when connecting to a > server I have access to, I always receive two requests, one from a Tor > exit node and one from my current IP address. Unless I missed something > obvious, that might be a bug. I await word about further progress. When I know enough to be able to do it, I will add a feature to package.el for a user option to tell it to go through Tor always. -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-12-17 3:21 ` Richard Stallman @ 2023-12-18 4:12 ` Richard Stallman 2023-12-18 8:05 ` Tomas Hlavaty 0 siblings, 1 reply; 47+ messages in thread From: Richard Stallman @ 2023-12-18 4:12 UTC (permalink / raw) To: philipk; +Cc: emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] Would it be possible to add this code to eww.el in the right place > (let ((conn > (open-network-stream > "test" (current-buffer) "gnu.org" "http" > :type 'shell > :shell-command "torsocks nc %s %p"))) > (process-send-string conn "GET / HTTP/1.0\r\n\r\n")) and cause all use of eww to go through Tor? If so, can someone show me how and where this is needed? -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-12-18 4:12 ` Richard Stallman @ 2023-12-18 8:05 ` Tomas Hlavaty 2023-12-18 8:10 ` Tomas Hlavaty 2023-12-21 4:20 ` Richard Stallman 0 siblings, 2 replies; 47+ messages in thread From: Tomas Hlavaty @ 2023-12-18 8:05 UTC (permalink / raw) To: rms, philipk; +Cc: emacs-devel > and cause all use of eww to go through Tor? I have this in .emacs: (custom-set-variables '(url-cookie-confirmation nil) '(url-cookie-untrusted-urls '(".*")) '(url-gateway-method 'native) '(url-privacy-level 'paranoid) '(url-proxy-services '(("no_proxy" . "localhost") ("http" . "127.0.0.1:8118") ("https" . "127.0.0.1:8118"))) '(url-queue-timeout 4) and eww goes through tor running on port 8118 why is this not a sufficient solution? ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-12-18 8:05 ` Tomas Hlavaty @ 2023-12-18 8:10 ` Tomas Hlavaty 2023-12-21 4:20 ` Richard Stallman 1 sibling, 0 replies; 47+ messages in thread From: Tomas Hlavaty @ 2023-12-18 8:10 UTC (permalink / raw) To: rms, philipk; +Cc: emacs-devel On Mon 18 Dec 2023 at 09:05, Tomas Hlavaty <tom@logand.com> wrote: >> and cause all use of eww to go through Tor? > > I have this in .emacs: > > (custom-set-variables > '(url-cookie-confirmation nil) > '(url-cookie-untrusted-urls '(".*")) > '(url-gateway-method 'native) > '(url-privacy-level 'paranoid) > '(url-proxy-services > '(("no_proxy" . "localhost") > ("http" . "127.0.0.1:8118") > ("https" . "127.0.0.1:8118"))) > '(url-queue-timeout 4) > > and eww goes through tor running on port 8118 actually iirc I have it like this: eww -> privoxy -> tor (because of additional rules in privoxy, e.g. some sites should not go via tor). but privoxy could probably be dropped if desired ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-12-18 8:05 ` Tomas Hlavaty 2023-12-18 8:10 ` Tomas Hlavaty @ 2023-12-21 4:20 ` Richard Stallman 2023-12-21 9:52 ` Philip Kaludercic 1 sibling, 1 reply; 47+ messages in thread From: Richard Stallman @ 2023-12-21 4:20 UTC (permalink / raw) To: Tomas Hlavaty; +Cc: philipk, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > (custom-set-variables > '(url-cookie-confirmation nil) > '(url-cookie-untrusted-urls '(".*")) > '(url-gateway-method 'native) > '(url-privacy-level 'paranoid) > '(url-proxy-services > '(("no_proxy" . "localhost") > ("http" . "127.0.0.1:8118") > ("https" . "127.0.0.1:8118"))) > '(url-queue-timeout 4) I will give that a try. Thanks. > why is this not a sufficient solution? I am the wrong person to ask. I don't have the background knowledge to tell whether it solves the problem. -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-12-21 4:20 ` Richard Stallman @ 2023-12-21 9:52 ` Philip Kaludercic 2023-12-21 9:55 ` Philip Kaludercic 0 siblings, 1 reply; 47+ messages in thread From: Philip Kaludercic @ 2023-12-21 9:52 UTC (permalink / raw) To: Richard Stallman; +Cc: Tomas Hlavaty, emacs-devel Richard Stallman <rms@gnu.org> writes: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > (custom-set-variables > > '(url-cookie-confirmation nil) > > '(url-cookie-untrusted-urls '(".*")) > > '(url-gateway-method 'native) > > '(url-privacy-level 'paranoid) > > '(url-proxy-services > > '(("no_proxy" . "localhost") > > ("http" . "127.0.0.1:8118") > > ("https" . "127.0.0.1:8118"))) For this to work, one has to add HTTPTunnelPort localhost:8118 and it only appears to work for https:// URLs, not unencrypted http://. > > '(url-queue-timeout 4) > > I will give that a try. Thanks. > > > why is this not a sufficient solution? > > I am the wrong person to ask. I don't have the background knowledge > to tell whether it solves the problem. You can use https://check.torproject.org/ to check, if the request goes through the Tor proxy, the page will say "Congratulations. This browser is configured to use Tor." ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-12-21 9:52 ` Philip Kaludercic @ 2023-12-21 9:55 ` Philip Kaludercic 2023-12-21 19:15 ` Tomas Hlavaty 2023-12-24 3:57 ` Richard Stallman 0 siblings, 2 replies; 47+ messages in thread From: Philip Kaludercic @ 2023-12-21 9:55 UTC (permalink / raw) To: Richard Stallman; +Cc: Tomas Hlavaty, emacs-devel Philip Kaludercic <philipk@posteo.net> writes: > Richard Stallman <rms@gnu.org> writes: > >> [[[ To any NSA and FBI agents reading my email: please consider ]]] >> [[[ whether defending the US Constitution against all enemies, ]]] >> [[[ foreign or domestic, requires you to follow Snowden's example. ]]] >> >> > (custom-set-variables >> > '(url-cookie-confirmation nil) >> > '(url-cookie-untrusted-urls '(".*")) >> > '(url-gateway-method 'native) >> > '(url-privacy-level 'paranoid) >> > '(url-proxy-services >> > '(("no_proxy" . "localhost") >> > ("http" . "127.0.0.1:8118") >> > ("https" . "127.0.0.1:8118"))) > > For this to work, one has to add > > HTTPTunnelPort localhost:8118 * to /etc/tor/torrc > and it only appears to work for https:// URLs, not unencrypted http://. > >> > '(url-queue-timeout 4) >> >> I will give that a try. Thanks. >> >> > why is this not a sufficient solution? >> >> I am the wrong person to ask. I don't have the background knowledge >> to tell whether it solves the problem. > > You can use https://check.torproject.org/ to check, if the request goes > through the Tor proxy, the page will say "Congratulations. This browser > is configured to use Tor." ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-12-21 9:55 ` Philip Kaludercic @ 2023-12-21 19:15 ` Tomas Hlavaty 2023-12-24 3:57 ` Richard Stallman 1 sibling, 0 replies; 47+ messages in thread From: Tomas Hlavaty @ 2023-12-21 19:15 UTC (permalink / raw) To: Philip Kaludercic, Richard Stallman; +Cc: emacs-devel On Thu 21 Dec 2023 at 09:55, Philip Kaludercic <philipk@posteo.net> wrote: >>> > '(url-proxy-services >>> > '(("no_proxy" . "localhost") >>> > ("http" . "127.0.0.1:8118") >>> > ("https" . "127.0.0.1:8118"))) >> >> For this to work, one has to add >> >> HTTPTunnelPort localhost:8118 > > * to /etc/tor/torrc > >> and it only appears to work for https:// URLs, not unencrypted http://. interesting I use it with privoxy: emacs -> privoxy on port 8118 -> tor on port 9050 iirc the protocols are: emacs -> privoxy on port 8118 -> tor on port 9050 http(s) socks4a ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-12-21 9:55 ` Philip Kaludercic 2023-12-21 19:15 ` Tomas Hlavaty @ 2023-12-24 3:57 ` Richard Stallman 2023-12-24 13:36 ` Tomas Hlavaty 1 sibling, 1 reply; 47+ messages in thread From: Richard Stallman @ 2023-12-24 3:57 UTC (permalink / raw) To: Philip Kaludercic; +Cc: tom, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > >> > '(url-proxy-services > >> > '(("no_proxy" . "localhost") > >> > ("http" . "127.0.0.1:8118") > >> > ("https" . "127.0.0.1:8118"))) Is there a reason for using the number 9118? Tor's default seems to be 9050; if I specify that number here, would it work without changing /etc/tor/torrc? -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-12-24 3:57 ` Richard Stallman @ 2023-12-24 13:36 ` Tomas Hlavaty 2023-12-24 15:19 ` Philip Kaludercic 0 siblings, 1 reply; 47+ messages in thread From: Tomas Hlavaty @ 2023-12-24 13:36 UTC (permalink / raw) To: rms, Philip Kaludercic; +Cc: emacs-devel On Sat 23 Dec 2023 at 22:57, Richard Stallman <rms@gnu.org> wrote: > > >> > '(url-proxy-services > > >> > '(("no_proxy" . "localhost") > > >> > ("http" . "127.0.0.1:8118") > > >> > ("https" . "127.0.0.1:8118"))) > > Is there a reason for using the number 9118? in my case: 8118 has privoxy running so it looks like this: emacs -> 8118 privoxy -> 9050 tor 8118 is a HTTP proxy 9050 is a socks proxy > Tor's default seems to > be 9050; if I specify that number here, would it work > without changing /etc/tor/torrc? I don't think so. iirc emacs using socks proxy did not work for me emacs using http proxy works fine and I can have other rules in privoxy which I do not thing is possible to specify directly in emacs without changing emacs ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-12-24 13:36 ` Tomas Hlavaty @ 2023-12-24 15:19 ` Philip Kaludercic 2023-12-24 20:37 ` Tomas Hlavaty 0 siblings, 1 reply; 47+ messages in thread From: Philip Kaludercic @ 2023-12-24 15:19 UTC (permalink / raw) To: Tomas Hlavaty; +Cc: rms, emacs-devel Tomas Hlavaty <tom@logand.com> writes: > On Sat 23 Dec 2023 at 22:57, Richard Stallman <rms@gnu.org> wrote: >> > >> > '(url-proxy-services >> > >> > '(("no_proxy" . "localhost") >> > >> > ("http" . "127.0.0.1:8118") >> > >> > ("https" . "127.0.0.1:8118"))) >> >> Is there a reason for using the number 9118? > > in my case: > 8118 has privoxy running > so it looks like this: > emacs -> 8118 privoxy -> 9050 tor > > 8118 is a HTTP proxy > 9050 is a socks proxy > >> Tor's default seems to >> be 9050; if I specify that number here, would it work >> without changing /etc/tor/torrc? > > I don't think so. > > iirc emacs using socks proxy did not work for me Do you recall what your configuration was. I gave an example earlier on in this thread, but noticed that url wouldn't redirect all messages over the SOCKS proxy. > emacs using http proxy works fine > and I can have other rules in privoxy > which I do not thing is possible to specify directly in emacs > without changing emacs ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-12-24 15:19 ` Philip Kaludercic @ 2023-12-24 20:37 ` Tomas Hlavaty 0 siblings, 0 replies; 47+ messages in thread From: Tomas Hlavaty @ 2023-12-24 20:37 UTC (permalink / raw) To: Philip Kaludercic; +Cc: rms, emacs-devel On Sun 24 Dec 2023 at 15:19, Philip Kaludercic <philipk@posteo.net> wrote: > Tomas Hlavaty <tom@logand.com> writes: >> iirc emacs using socks proxy did not work for me > > Do you recall what your configuration was. I gave an example earlier on > in this thread, but noticed that url wouldn't redirect all messages over > the SOCKS proxy. I don't remember, it was a long time ago. The configuration I sent is something I figured out at that time and it still works reliably without any changes. It would be nice if it was possible for me to drop privoxy and specify per host/ip proxying rules in emacs directly, but privoxy works well so this has low priority i guess. ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-11-19 3:39 ` Richard Stallman 2023-11-19 6:17 ` Eli Zaretskii @ 2023-12-14 12:41 ` Philip Kaludercic 2023-12-14 12:54 ` Emanuel Berg 2023-12-17 3:21 ` Richard Stallman 1 sibling, 2 replies; 47+ messages in thread From: Philip Kaludercic @ 2023-12-14 12:41 UTC (permalink / raw) To: Richard Stallman; +Cc: akib, emacs-devel Richard Stallman <rms@gnu.org> writes: > > because one will continue to leak fingerprintable > > metadata (specially inside of Emacs) > > Could you give me an example of what you mean? As mention in my other message, I was testing what my web server was logging when accessing the server via Tor, and this was the log entry: 185.220.101.26 - - [14/Dec/2023:13:04:00 +0100] "GET /test HTTP/1.1" 301 169 "https://amodernist.com/" "URL/Emacs Emacs/30.0.50 (PureGTK; x86_64-pc-linux-gnu)" As you can see the User-Agent indicates that I am using Emacs, what version and even my architecture. Compare that to the user agent that you'd regularly encounter from an average browser: 31.10.139.153 - - [14/Dec/2023:00:18:33 +0100] "GET / HTTP/1.1" 200 10585 "-" "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Mobile Safari/537.36" This can be remedied by setting the `url-privacy-level' user option to 'paranoid, but in that case you are still identifiable because there is no user agent, which carries some information. Other than the user-agent, there are certainly other bits of behaviour that a malicious actor can use to track a user, such as the order in which HTTP headers are transmitted, the size of chunks by which the client sends and receives data and of course what requests aren't being sent (e.g. due to a lack of Javascript in EWW). The EFF has more information on the topic here: https://coveryourtracks.eff.org/learn. That being said: All of this doesn't matter that much for package.el, since most people are accessing it via Emacs. ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-12-14 12:41 ` Philip Kaludercic @ 2023-12-14 12:54 ` Emanuel Berg 2023-12-14 13:06 ` Emanuel Berg 2023-12-17 3:21 ` Richard Stallman 1 sibling, 1 reply; 47+ messages in thread From: Emanuel Berg @ 2023-12-14 12:54 UTC (permalink / raw) To: emacs-devel Philip Kaludercic wrote: > 185.220.101.26 - - [14/Dec/2023:13:04:00 +0100] "GET /test > HTTP/1.1" 301 169 "https://amodernist.com/" "URL/Emacs > Emacs/30.0.50 (PureGTK; x86_64-pc-linux-gnu)" I tried to visit this page with Emacs-w3m https://www.site24x7.com/tools/browser-fingerprint-test.html and it outputted the below data (last). Summary: There is no information except the the IP details. The "IP Address" is correct, that's my public IP. The Location is partly correct (the country is, the city and region isn't). The ISP is correct. This is without torsocks. OS patch - patch_minor - major - minor - family Other Device family Other Browser patch - major - minor - family Other IP Details IP Address 85.230.218.84 Location BORAS ,VASTRA GOTALANDS LAN ,SWEDEN ISP TELENOR SVERIGE AB Misc Details CPU cores (logical) GPU Touch enabled ? Resolution View Port Orientation Color Depth Battery Language Time Zone Connection type RAM Cookies enabled ? Do not track header Fonts installed -- underground experts united https://dataswamp.org/~incal ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-12-14 12:54 ` Emanuel Berg @ 2023-12-14 13:06 ` Emanuel Berg 0 siblings, 0 replies; 47+ messages in thread From: Emanuel Berg @ 2023-12-14 13:06 UTC (permalink / raw) To: emacs-devel >> 185.220.101.26 - - [14/Dec/2023:13:04:00 +0100] "GET /test >> HTTP/1.1" 301 169 "https://amodernist.com/" "URL/Emacs >> Emacs/30.0.50 (PureGTK; x86_64-pc-linux-gnu)" > > I tried to visit this page with Emacs-w3m > > https://www.site24x7.com/tools/browser-fingerprint-test.html > > and it outputted the below data (last). > > Summary: There is no information except the the IP details. > The "IP Address" is correct, that's my public IP. The Location > is partly correct (the country is, the city and region isn't). > The ISP is correct. > > This is without torsocks. With torsocks, i.e. to run Emacs like this $ torsocks emacs everything else is still blank, and also those three things are incorrect. But with torsocks everything is much slower and half the stuff don't work, e.g. Google doesn't work (429/302 Moved). -- underground experts united https://dataswamp.org/~incal ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-12-14 12:41 ` Philip Kaludercic 2023-12-14 12:54 ` Emanuel Berg @ 2023-12-17 3:21 ` Richard Stallman 2023-12-17 8:23 ` Stefan Kangas 2023-12-17 11:51 ` Philip Kaludercic 1 sibling, 2 replies; 47+ messages in thread From: Richard Stallman @ 2023-12-17 3:21 UTC (permalink / raw) To: Philip Kaludercic; +Cc: akib, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > 185.220.101.26 - - [14/Dec/2023:13:04:00 +0100] "GET /test HTTP/1.1" 301 169 "https://amodernist.com/" "URL/Emacs Emacs/30.0.50 (PureGTK; x86_64-pc-linux-gnu)" > As you can see the User-Agent indicates that I am using Emacs, what > version and even my architecture. Compare that to the user agent that > you'd regularly encounter from an average browser: We should (1) let users specify what User-Agent to send, and (2) maybe choose a different default. Icecat, by default, identifies itself as some widely used proprietary browser running on Windows. > Other than the user-agent, there are certainly other bits of behaviour > that a malicious actor can use to track a user, such as the order in > which HTTP headers are transmitted, the size of chunks by which the > client sends and receives data and of course what requests aren't being > sent (e.g. due to a lack of Javascript in EWW). We could work on making Emacs-based browsing more similar to the most common browsers, in such aspects of visible behavior. > and of course what requests aren't being > sent (e.g. due to a lack of Javascript in EWW). Compareed with the harm done by _running_ the page's Javascript, giving evidence of not running Javascript is arguably a far lesser evil. That said, one important method for preventing sites from effectively profiling you is to connect to them through Tor. In fact, connecting directly enables OTHERS that observe your network traffic to figure out what you are talking to! That is why I want to connect to the Emacs package repo via Tor. I am not worried about being profiled by the Emacs package repo! More generally, if all that distinguishes you in the actual interaction with a site is that you don't run the Javascript, and you connect through Tor, whatever site you are talking to will have trouble distinguishing you from other users that don't run the Javascript. > That being said: All of this doesn't matter that much for package.el, > since most people are accessing it via Emacs. I agree. However, these issues may have some real importance for the case of using EWW to look at pages _other than_ the Emacs package repo. -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-12-17 3:21 ` Richard Stallman @ 2023-12-17 8:23 ` Stefan Kangas 2023-12-17 9:12 ` Eli Zaretskii 2023-12-19 3:53 ` Making package.el talk over Tor Richard Stallman 2023-12-17 11:51 ` Philip Kaludercic 1 sibling, 2 replies; 47+ messages in thread From: Stefan Kangas @ 2023-12-17 8:23 UTC (permalink / raw) To: rms, Philip Kaludercic; +Cc: akib, emacs-devel Richard Stallman <rms@gnu.org> writes: > > 185.220.101.26 - - [14/Dec/2023:13:04:00 +0100] "GET /test HTTP/1.1" 301 169 "https://amodernist.com/" "URL/Emacs Emacs/30.0.50 (PureGTK; x86_64-pc-linux-gnu)" > > > As you can see the User-Agent indicates that I am using Emacs, what > > version and even my architecture. Compare that to the user agent that > > you'd regularly encounter from an average browser: > > We should (1) let users specify what User-Agent to send, and (2) maybe > choose a different default. > > Icecat, by default, identifies itself as some widely used proprietary > browser running on Windows. Should we bump the default to 'paranoid'? Do what icecat does? Does the remote ever need to know if we're using X11 or PureGTK? I think they don't, and we should never add that information, in any configuration. > > Other than the user-agent, there are certainly other bits of behaviour > > that a malicious actor can use to track a user, such as the order in > > which HTTP headers are transmitted, the size of chunks by which the > > client sends and receives data and of course what requests aren't being > > sent (e.g. due to a lack of Javascript in EWW). > > We could work on making Emacs-based browsing more similar to the most > common browsers, in such aspects of visible behavior. If you are very concerned about your privacy, it's probably better to browse the web using the Tor web browser and eschew Emacs altogether. How about telling users about this in the EWW manual? ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-12-17 8:23 ` Stefan Kangas @ 2023-12-17 9:12 ` Eli Zaretskii 2023-12-17 12:02 ` Never send user email address in HTTP requests Stefan Kangas 2023-12-19 3:53 ` Making package.el talk over Tor Richard Stallman 1 sibling, 1 reply; 47+ messages in thread From: Eli Zaretskii @ 2023-12-17 9:12 UTC (permalink / raw) To: Stefan Kangas; +Cc: rms, philipk, akib, emacs-devel > From: Stefan Kangas <stefankangas@gmail.com> > Date: Sun, 17 Dec 2023 00:23:27 -0800 > Cc: akib@disroot.org, emacs-devel@gnu.org > > Richard Stallman <rms@gnu.org> writes: > > > > 185.220.101.26 - - [14/Dec/2023:13:04:00 +0100] "GET /test HTTP/1.1" 301 169 "https://amodernist.com/" "URL/Emacs Emacs/30.0.50 (PureGTK; x86_64-pc-linux-gnu)" > > > > > As you can see the User-Agent indicates that I am using Emacs, what > > > version and even my architecture. Compare that to the user agent that > > > you'd regularly encounter from an average browser: > > > > We should (1) let users specify what User-Agent to send, and (2) maybe > > choose a different default. > > > > Icecat, by default, identifies itself as some widely used proprietary > > browser running on Windows. > > Should we bump the default to 'paranoid'? Do what icecat does? > > Does the remote ever need to know if we're using X11 or PureGTK? > I think they don't, and we should never add that information, in any > configuration. > > > > Other than the user-agent, there are certainly other bits of behaviour > > > that a malicious actor can use to track a user, such as the order in > > > which HTTP headers are transmitted, the size of chunks by which the > > > client sends and receives data and of course what requests aren't being > > > sent (e.g. due to a lack of Javascript in EWW). > > > > We could work on making Emacs-based browsing more similar to the most > > common browsers, in such aspects of visible behavior. > > If you are very concerned about your privacy, it's probably better to > browse the web using the Tor web browser and eschew Emacs altogether. > > How about telling users about this in the EWW manual? It looks like a changeset was installed on master which changes how URL behaves in this matter, see commit 346e571230. I'm worried that this is a backward-incompatible change which doesn't seem to have any way for users to get back old behavior. I think we should provide such a way, and I think this change should be called out in the "Incompatible changes" section of NEWS. Thanks. ^ permalink raw reply [flat|nested] 47+ messages in thread
* Never send user email address in HTTP requests 2023-12-17 9:12 ` Eli Zaretskii @ 2023-12-17 12:02 ` Stefan Kangas 2023-12-17 12:34 ` Eli Zaretskii 0 siblings, 1 reply; 47+ messages in thread From: Stefan Kangas @ 2023-12-17 12:02 UTC (permalink / raw) To: Eli Zaretskii; +Cc: rms, philipk, akib, emacs-devel, Stefan Monnier Eli Zaretskii <eliz@gnu.org> writes: > It looks like a changeset was installed on master which changes how > URL behaves in this matter, see commit 346e571230. I'm worried that > this is a backward-incompatible change which doesn't seem to have any > way for users to get back old behavior. I think we should provide > such a way, and I think this change should be called out in the > "Incompatible changes" section of NEWS. Thanks, I moved it to "Incompatible changes". The TL;DR here is that I think the issue fixed in 346e571230 is a serious issue, and that we should not provide a way to get back to the old behavior. The other issues we discussed in this thread had to do with fingerprinting, which is also a real concern. However, more steps are required for someone to figure out your real identity. The basic problem is that a mere misconfiguration of `url-privacy-level' will lead a user's privacy to be fully compromised. For example, a typo like: (setq url-privacy-level '(eemail)) will make Emacs announce your email (that you customized separately, for Gnus or Notmuch) to the remote server in every HTTP request. In fact, it's enough to customize that setting to anything that is not `high', `paranoid', or a list containing the symbol `email'. You best not assume you can set it to `medium', or anything like that, because trying that will be _silently_accepted_ and then: your email will be revealed. That's a pretty huge gotcha, and certainly not the way to design a security feature. But it gets even worse: url.el used to do these acrobatics to make sure that there is indeed something privacy breaking in there: (or url-personal-mail-address user-mail-address (format "%s@%s" (user-real-login-name) (system-name))) AFAIK, no other browser out there provide this misfeature. It seems like something from the happy 1990's that has completely outlived any usefulness, assuming that it was at all useful even to begin with. Providing a way to get back to the old behaviour is just re-introducing a bad, bad footgun. Keeping it around puts users at risk. So I think we shouldn't do that. ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Never send user email address in HTTP requests 2023-12-17 12:02 ` Never send user email address in HTTP requests Stefan Kangas @ 2023-12-17 12:34 ` Eli Zaretskii 2023-12-17 14:05 ` Yuri Khan 0 siblings, 1 reply; 47+ messages in thread From: Eli Zaretskii @ 2023-12-17 12:34 UTC (permalink / raw) To: Stefan Kangas; +Cc: rms, philipk, akib, emacs-devel, monnier > From: Stefan Kangas <stefankangas@gmail.com> > Date: Sun, 17 Dec 2023 04:02:09 -0800 > Cc: rms@gnu.org, philipk@posteo.net, akib@disroot.org, emacs-devel@gnu.org, > Stefan Monnier <monnier@iro.umontreal.ca> > > Eli Zaretskii <eliz@gnu.org> writes: > > > It looks like a changeset was installed on master which changes how > > URL behaves in this matter, see commit 346e571230. I'm worried that > > this is a backward-incompatible change which doesn't seem to have any > > way for users to get back old behavior. I think we should provide > > such a way, and I think this change should be called out in the > > "Incompatible changes" section of NEWS. > > Thanks, I moved it to "Incompatible changes". > > The TL;DR here is that I think the issue fixed in 346e571230 is a > serious issue, and that we should not provide a way to get back to the > old behavior. Sorry, but I disagree. Emacs should not second-guess the users, and should certainly NOT force them into what we consider to be the secure environment. It is okay to behave securely by default, but if someone wants to be insecure, for whatever reasons, we should let them have the old, insecure behavior. Certainly when we first change the default, since there's a possibility that something will break for someone due to this change, and we need to let users have a fire escape in those cases, until we get our act together in the next release. > The basic problem is that a mere misconfiguration of `url-privacy-level' > will lead a user's privacy to be fully compromised. > > For example, a typo like: > > (setq url-privacy-level '(eemail)) > > will make Emacs announce your email (that you customized separately, for > Gnus or Notmuch) to the remote server in every HTTP request. If typos are the problem, it should be okay to detect that and holler or signal an error. But the changes disallow even values that have no typos, under the premise that "we know better". I very much object to software that "knows better", and hope Emacs will never behave like that. > In fact, it's enough to customize that setting to anything that is not > `high', `paranoid', or a list containing the symbol `email'. > > You best not assume you can set it to `medium', or anything like that, > because trying that will be _silently_accepted_ and then: your email > will be revealed. That's a pretty huge gotcha, and certainly not the > way to design a security feature. Again: it is okay to refrain from silently accepting invalid values. That's not my concern. In the Emacs where I'm typing this the value of url-privacy-level is (email), and that has no typos. I see no reasons to disallow such values, as long as they are not the default. > But it gets even worse: url.el used to do these acrobatics to make sure > that there is indeed something privacy breaking in there: > > (or url-personal-mail-address > user-mail-address > (format "%s@%s" (user-real-login-name) > (system-name))) > > AFAIK, no other browser out there provide this misfeature. It seems > like something from the happy 1990's that has completely outlived any > usefulness, assuming that it was at all useful even to begin with. > > Providing a way to get back to the old behaviour is just re-introducing > a bad, bad footgun. Keeping it around puts users at risk. So I think > we shouldn't do that. See above: I don't agree to be smarter than everybody. The defaults should be secure, but completely locking out users is not. ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Never send user email address in HTTP requests 2023-12-17 12:34 ` Eli Zaretskii @ 2023-12-17 14:05 ` Yuri Khan 2023-12-17 14:44 ` Eli Zaretskii ` (2 more replies) 0 siblings, 3 replies; 47+ messages in thread From: Yuri Khan @ 2023-12-17 14:05 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Stefan Kangas, rms, philipk, akib, emacs-devel, monnier On Sun, 17 Dec 2023 at 19:36, Eli Zaretskii <eliz@gnu.org> wrote: > Sorry, but I disagree. Emacs should not second-guess the users, and > should certainly NOT force them into what we consider to be the secure > environment. It is okay to behave securely by default, but if someone > wants to be insecure, for whatever reasons, we should let them have > the old, insecure behavior. Certainly when we first change the > default, since there's a possibility that something will break for > someone due to this change, and we need to let users have a fire > escape in those cases, until we get our act together in the next > release. The header in question, From, is governed by RFC 9110 § 10.1.2[0], which says: The From header field is rarely sent by non-robotic user agents. A user agent SHOULD NOT send a From header field without explicit configuration by the user, since that might conflict with the user's privacy interests or their site's security policy. A robotic user agent SHOULD send a valid From header field so that the person responsible for running the robot can be contacted if problems occur on servers, such as if the robot is sending excessive, unwanted, or invalid requests. [0]: https://www.rfc-editor.org/rfc/rfc9110.html#section-10.1.2 That is, it’s not intended for web browsers or interactive applications acting on the user’s behalf. It’s for spiders and other automation. Surely a user who is writing a spider in Elisp can take the extra conscious step of filling out the general fire escape, ‘url-request-extra-headers’, and deciding which email address to expose. It is good that the default value of ‘url-privacy-level’ is (email), preventing the leak by default, but there is no reason to make it possible to configure url.el to leak it with every request made from Emacs. If you’re running a spider and also just browsing the Web with EWW, you probably only want requests from your spider to be attributed to you as the spider maintainer. ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Never send user email address in HTTP requests 2023-12-17 14:05 ` Yuri Khan @ 2023-12-17 14:44 ` Eli Zaretskii 2023-12-17 17:30 ` T.V Raman 2023-12-19 3:51 ` Richard Stallman 2 siblings, 0 replies; 47+ messages in thread From: Eli Zaretskii @ 2023-12-17 14:44 UTC (permalink / raw) To: Yuri Khan; +Cc: stefankangas, rms, philipk, akib, emacs-devel, monnier > From: Yuri Khan <yuri.v.khan@gmail.com> > Date: Sun, 17 Dec 2023 21:05:00 +0700 > Cc: Stefan Kangas <stefankangas@gmail.com>, rms@gnu.org, philipk@posteo.net, > akib@disroot.org, emacs-devel@gnu.org, monnier@iro.umontreal.ca > > On Sun, 17 Dec 2023 at 19:36, Eli Zaretskii <eliz@gnu.org> wrote: > > > Sorry, but I disagree. Emacs should not second-guess the users, and > > should certainly NOT force them into what we consider to be the secure > > environment. It is okay to behave securely by default, but if someone > > wants to be insecure, for whatever reasons, we should let them have > > the old, insecure behavior. Certainly when we first change the > > default, since there's a possibility that something will break for > > someone due to this change, and we need to let users have a fire > > escape in those cases, until we get our act together in the next > > release. > > The header in question, From, is governed by RFC 9110 § 10.1.2[0], which says: Thanks, but this isn't relevant to the issue at hand. > It is good that the default value of ‘url-privacy-level’ is (email), > preventing the leak by default, but there is no reason to make it > possible to configure url.el to leak it with every request made from > Emacs. If you’re running a spider and also just browsing the Web with > EWW, you probably only want requests from your spider to be attributed > to you as the spider maintainer. I remain convinced that we should allow users who actively want that to make their Emacs behave against any RFCs, when Emacs has been behaving like that for many years until now. ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Never send user email address in HTTP requests 2023-12-17 14:05 ` Yuri Khan 2023-12-17 14:44 ` Eli Zaretskii @ 2023-12-17 17:30 ` T.V Raman 2023-12-19 3:51 ` Richard Stallman 2 siblings, 0 replies; 47+ messages in thread From: T.V Raman @ 2023-12-17 17:30 UTC (permalink / raw) To: Yuri Khan Cc: Eli Zaretskii, Stefan Kangas, rms, philipk, akib, emacs-devel, monnier Yuri Khan <yuri.v.khan@gmail.com> writes: Just let-bind url-privacy-level to paranoid > On Sun, 17 Dec 2023 at 19:36, Eli Zaretskii <eliz@gnu.org> wrote: > >> Sorry, but I disagree. Emacs should not second-guess the users, and >> should certainly NOT force them into what we consider to be the secure >> environment. It is okay to behave securely by default, but if someone >> wants to be insecure, for whatever reasons, we should let them have >> the old, insecure behavior. Certainly when we first change the >> default, since there's a possibility that something will break for >> someone due to this change, and we need to let users have a fire >> escape in those cases, until we get our act together in the next >> release. > > The header in question, From, is governed by RFC 9110 § 10.1.2[0], which says: > > The From header field is rarely sent by non-robotic user agents. > A user agent SHOULD NOT send a From header field > without explicit configuration by the user, > since that might conflict with the user's privacy interests > or their site's security policy. > > A robotic user agent SHOULD send a valid From header field > so that the person responsible for running the robot can be contacted > if problems occur on servers, > such as if the robot is sending excessive, unwanted, or invalid requests. > > [0]: https://www.rfc-editor.org/rfc/rfc9110.html#section-10.1.2 > > That is, it’s not intended for web browsers or interactive > applications acting on the user’s behalf. It’s for spiders and other > automation. > > Surely a user who is writing a spider in Elisp can take the extra > conscious step of filling out the general fire escape, > ‘url-request-extra-headers’, and deciding which email address to > expose. > > It is good that the default value of ‘url-privacy-level’ is (email), > preventing the leak by default, but there is no reason to make it > possible to configure url.el to leak it with every request made from > Emacs. If you’re running a spider and also just browsing the Web with > EWW, you probably only want requests from your spider to be attributed > to you as the spider maintainer. > -- ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Never send user email address in HTTP requests 2023-12-17 14:05 ` Yuri Khan 2023-12-17 14:44 ` Eli Zaretskii 2023-12-17 17:30 ` T.V Raman @ 2023-12-19 3:51 ` Richard Stallman 2 siblings, 0 replies; 47+ messages in thread From: Richard Stallman @ 2023-12-19 3:51 UTC (permalink / raw) To: Yuri Khan; +Cc: eliz, stefankangas, philipk, akib, emacs-devel, monnier [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > A user agent SHOULD NOT send a From header field > without explicit configuration by the user, If the user sets a user option to request something, that is explicit configuration by the user. In addition, the words "SHOULD NOT" are vehement, but they do not show a reason that could convince us do or not to do something. If we saw a reason -- some trouble that would result, for someone or other -- that could be a reason, but it would depend on what the trouble would be, etc. -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-12-17 8:23 ` Stefan Kangas 2023-12-17 9:12 ` Eli Zaretskii @ 2023-12-19 3:53 ` Richard Stallman 1 sibling, 0 replies; 47+ messages in thread From: Richard Stallman @ 2023-12-19 3:53 UTC (permalink / raw) To: Stefan Kangas; +Cc: emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > If you are very concerned about your privacy, it's probably better to > browse the web using the Tor web browser and eschew Emacs altogether. The issue here is how to make package.el talk using Tor with the Emacs package site. Can package.el do this using an external browser? If so, that might do the job. How can one do this? -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-12-17 3:21 ` Richard Stallman 2023-12-17 8:23 ` Stefan Kangas @ 2023-12-17 11:51 ` Philip Kaludercic 2023-12-17 14:10 ` Yuri Khan ` (2 more replies) 1 sibling, 3 replies; 47+ messages in thread From: Philip Kaludercic @ 2023-12-17 11:51 UTC (permalink / raw) To: Richard Stallman; +Cc: akib, emacs-devel Richard Stallman <rms@gnu.org> writes: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > 185.220.101.26 - - [14/Dec/2023:13:04:00 +0100] "GET /test HTTP/1.1" 301 169 "https://amodernist.com/" "URL/Emacs Emacs/30.0.50 (PureGTK; x86_64-pc-linux-gnu)" > > > As you can see the User-Agent indicates that I am using Emacs, what > > version and even my architecture. Compare that to the user agent that > > you'd regularly encounter from an average browser: > > We should (1) let users specify what User-Agent to send, That is already possible using the `url-user-agent' user option. > and (2) maybe > choose a different default. 1+ > Icecat, by default, identifies itself as some widely used proprietary > browser running on Windows. While helpful, it could also be dangerous if the server decides to send the user content that only a widely used proprietary browser running on Windows could process. > > Other than the user-agent, there are certainly other bits of behaviour > > that a malicious actor can use to track a user, such as the order in > > which HTTP headers are transmitted, the size of chunks by which the > > client sends and receives data and of course what requests aren't being > > sent (e.g. due to a lack of Javascript in EWW). > > We could work on making Emacs-based browsing more similar to the most > common browsers, in such aspects of visible behavior. > > > and of course what requests aren't being > > sent (e.g. due to a lack of Javascript in EWW). > > Compareed with the harm done by _running_ the page's Javascript, > giving evidence of not running Javascript is arguably a far lesser > evil. The way I see this, this is a security/privacy vs freedom issue. If you really want to blend in, you have to behave the way most people do. > That said, one important method for preventing sites from effectively > profiling you is to connect to them through Tor. In fact, connecting > directly enables OTHERS that observe your network traffic to figure > out what you are talking to! Tor hides your IP address, in which sense it acts like a trusted VPN service, but I am just trying to emphasise that (in general) just using Tor as a transport layer can give users a false sense of security. > That is why I want to connect to the Emacs package repo via Tor. > I am not worried about being profiled by the Emacs package repo! > > More generally, if all that distinguishes you in the actual > interaction with a site is that you don't run the Javascript, and you > connect through Tor, whatever site you are talking to will have > trouble distinguishing you from other users that don't run the > Javascript. True, but considering how infrequent this is on a global scale, "no Javascript" still holds a lot of information. > > That being said: All of this doesn't matter that much for package.el, > > since most people are accessing it via Emacs. > > I agree. However, these issues may have some real importance for the case > of using EWW to look at pages _other than_ the Emacs package repo. Right, that is where my concerns from above apply. Richard Stallman <rms@gnu.org> writes: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > If you have a Tor daemon running on your system, it should provide a > > SOCKS proxy by default, > > I believe it does that. > > meaning that you can configure every package > > that uses url.el to go through this proxy (unless I have misunderstood > > something): > > Maybe that is possible. But I know very little about sockets or how > to use them. I would appreciate precise advice about what I should do > to tell package.el to connect using Tor. That was the code you quoted below with `url-gateway-method'. > You sent this code > > (let ((conn > (open-network-stream > "test" (current-buffer) "gnu.org" "http" > :type 'shell > :shell-command "torsocks nc %s %p"))) > (process-send-string conn "GET / HTTP/1.0\r\n\r\n")) > > but I don't think that is a solution ready to use. It looks like a > proposed approach for designing that solution. > > Also, the end of your message MAY mean that this approach is not > applicable to package.el. Yes, this was just a proof of concept integrating torsocks into a network connection open from within Emacs. > > If you have a Tor daemon running on your system, it should provide a > > SOCKS proxy by default, meaning that you can configure every package > > that uses url.el to go through this proxy (unless I have misunderstood > > something): > > > --8<---------------cut here---------------start------------->8--- > > (setq url-gateway-method 'socks > > socks-server '("Tor" "localhost" 9050 5)) > > --8<---------------cut here---------------end--------------->8--- > > > That being said, while testing I noticed that when connecting to a > > server I have access to, I always receive two requests, one from a Tor > > exit node and one from my current IP address. Unless I missed something > > obvious, that might be a bug. > > I await word about further progress. I will try and look into if I am mis-configuring something, and otherwise report a bug. > When I know enough to be able to do it, I will add a feature to > package.el for a user option to tell it to go through Tor always. Stefan Kangas <stefankangas@gmail.com> writes: > Richard Stallman <rms@gnu.org> writes: > >> > 185.220.101.26 - - [14/Dec/2023:13:04:00 +0100] "GET /test >> > HTTP/1.1" 301 169 "https://amodernist.com/" "URL/Emacs >> > Emacs/30.0.50 (PureGTK; x86_64-pc-linux-gnu)" >> >> > As you can see the User-Agent indicates that I am using Emacs, what >> > version and even my architecture. Compare that to the user agent that >> > you'd regularly encounter from an average browser: >> >> We should (1) let users specify what User-Agent to send, and (2) maybe >> choose a different default. >> >> Icecat, by default, identifies itself as some widely used proprietary >> browser running on Windows. > > Should we bump the default to 'paranoid'? Do what icecat does? That wouldn't send any Use-Agent header at all, which is still fingerprintable. Richard mentioned that Icecat uses a false user agent like Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.3 but that would have to be updated on a regular basis, to keep up with whatever is being used. That being said, I don't believe that this is enough, if we take the threat model into account that a Tor user is operating under. In their case, it probably is the best to just use the Tor Browser. > Does the remote ever need to know if we're using X11 or PureGTK? > I think they don't, and we should never add that information, in any > configuration. Yes, it might make sense to just add `os' to `url-privacy-level'. >> > Other than the user-agent, there are certainly other bits of behaviour >> > that a malicious actor can use to track a user, such as the order in >> > which HTTP headers are transmitted, the size of chunks by which the >> > client sends and receives data and of course what requests aren't being >> > sent (e.g. due to a lack of Javascript in EWW). >> >> We could work on making Emacs-based browsing more similar to the most >> common browsers, in such aspects of visible behavior. > > If you are very concerned about your privacy, it's probably better to > browse the web using the Tor web browser and eschew Emacs altogether. > > How about telling users about this in the EWW manual? 1+ -- Philip Kaludercic ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-12-17 11:51 ` Philip Kaludercic @ 2023-12-17 14:10 ` Yuri Khan 2023-12-19 3:51 ` Richard Stallman 2023-12-19 3:52 ` Richard Stallman 2023-12-19 3:52 ` Richard Stallman 2 siblings, 1 reply; 47+ messages in thread From: Yuri Khan @ 2023-12-17 14:10 UTC (permalink / raw) To: Philip Kaludercic; +Cc: Richard Stallman, akib, emacs-devel On Sun, 17 Dec 2023 at 20:04, Philip Kaludercic <philipk@posteo.net> wrote: > > Icecat, by default, identifies itself as some widely used proprietary > > browser running on Windows. > > While helpful, it could also be dangerous if the server decides to send > the user content that only a widely used proprietary browser running on > Windows could process. It also inflates That Other Browser’s usage statistics. Which is harmful because web site authors say “yay, Firefox and its forks have fallen below our support threshold, we can start using features only supported in That Other Browser”. ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-12-17 14:10 ` Yuri Khan @ 2023-12-19 3:51 ` Richard Stallman 0 siblings, 0 replies; 47+ messages in thread From: Richard Stallman @ 2023-12-19 3:51 UTC (permalink / raw) To: Yuri Khan; +Cc: emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > While helpful, it could also be dangerous if the server decides to send > > the user content that only a widely used proprietary browser running on > > Windows could process. It could be a little annoying, but minor annoyances are widespread on the web. So this wouldn't be a reason to change a decision. > It also inflates That Other Browser’s usage statistics. That effect is tiny -- not enough to worry about. -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-12-17 11:51 ` Philip Kaludercic 2023-12-17 14:10 ` Yuri Khan @ 2023-12-19 3:52 ` Richard Stallman 2023-12-19 3:52 ` Richard Stallman 2 siblings, 0 replies; 47+ messages in thread From: Richard Stallman @ 2023-12-19 3:52 UTC (permalink / raw) To: Philip Kaludercic; +Cc: akib, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > Compareed with the harm done by _running_ the page's Javascript, > giving evidence of not running Javascript is arguably a far lesser > evil. The person who set this default for IceCat has sttudied the situation csrefully; to dismiss his conclusions hastily is not wise. > The way I see this, this is a security/privacy vs freedom issue. If you > really want to blend in, you have to behave the way most people do. That simple heuristic is valid in many situations, but not in this one. With Javascript, the option you're calling "blending in" means letting each site take your fingerprints in its usual way. Trying to "blend in" that way will backfire completely: each site can precisely recognize you each time, and distinguish you from all the other visitors. > Tor hides your IP address, in which sense it acts like a trusted VPN > service, but I am just trying to emphasise that (in general) just using > Tor as a transport layer can give users a false sense of security. Indeed, just using Tor is not sufficient to stop a web site from recognizing me when I come back. I take other precautions too. Meanwhile, can anyone help me make it easy to use Tor when communicating with the Emacs package archive site. -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-12-17 11:51 ` Philip Kaludercic 2023-12-17 14:10 ` Yuri Khan 2023-12-19 3:52 ` Richard Stallman @ 2023-12-19 3:52 ` Richard Stallman 2 siblings, 0 replies; 47+ messages in thread From: Richard Stallman @ 2023-12-19 3:52 UTC (permalink / raw) To: Philip Kaludercic; +Cc: akib, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > If you are very concerned about your privacy, it's probably better to > > browse the web using the Tor web browser and eschew Emacs altogether. I'm looking for a way I could make package.el to communicate with the Emacs package repository via the Tor network. I think you've drifted onto a totally different subject. -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-11-17 3:53 ` Richard Stallman 2023-11-17 7:03 ` Philip Kaludercic @ 2023-11-18 3:03 ` Richard Stallman 2023-11-18 7:21 ` Eli Zaretskii 1 sibling, 1 reply; 47+ messages in thread From: Richard Stallman @ 2023-11-18 3:03 UTC (permalink / raw) To: akib, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] I have been trying to understand how package.el calls url.el but I can't begin to understand URL. What are its entry points? How is it supposed to be used? The file url.el gives no information whatsoever about how that package works or how to use it. It creates a process only inside url-open-rlogin, url-open-telnet and url-gateway-nslookup-host, but these are buried deep inside its calling structure. package.el calls a few url-... functions. They are called from three places that are subroutines or auxiliary macros, two of which have next to no documentation of what they do. The one that has some information is package--with-work-buffer, whose doc string is very abstract. It could be used for almost anything. "Run BODY in a buffer containing the contents of FILE at LOCATION. LOCATION is the base location of a package archive, and should be one of the URLs (or file names) specified in `package-archives'. FILE is the name of a file relative to that base location. This macro retrieves FILE from LOCATION into a temporary buffer, and evaluates BODY while that buffer is current. This work buffer is killed afterwards. Return the last value in BODY." I decided to change the calls to start-process. I can do that without undertsnading url.el. Maybe it will work. Would someone like to clean up the URL package and document its structure, its entry points, and how to use them? -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-11-18 3:03 ` Richard Stallman @ 2023-11-18 7:21 ` Eli Zaretskii 2023-11-21 2:39 ` Richard Stallman 0 siblings, 1 reply; 47+ messages in thread From: Eli Zaretskii @ 2023-11-18 7:21 UTC (permalink / raw) To: rms; +Cc: akib, emacs-devel > From: Richard Stallman <rms@gnu.org> > Date: Fri, 17 Nov 2023 22:03:46 -0500 > > I have been trying to understand how package.el calls url.el > but I can't begin to understand URL. What are its entry points? > How is it supposed to be used? > > The file url.el gives no information whatsoever about how that package > works or how to use it. The url package has its own Info manual, see doc/misc/url.texi. If that manual doesn't answer your questions, we need to improve it, but in that case, please tell what is missing from that manual that would have helped you to get the information you needed. ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-11-18 7:21 ` Eli Zaretskii @ 2023-11-21 2:39 ` Richard Stallman 0 siblings, 0 replies; 47+ messages in thread From: Richard Stallman @ 2023-11-21 2:39 UTC (permalink / raw) To: Eli Zaretskii; +Cc: akib, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > The url package has its own Info manual, see doc/misc/url.texi. If > that manual doesn't answer your questions, we need to improve it, but > in that case, please tell what is missing from that manual that would > have helped you to get the information you needed. Thanks for telling me about that. It does say how other packages should _use_ URL. It does not explain the internal structure of URL itself, which is not straightforward. I think the URL source needs comments to explain that. The manual helped me get started towards solving my problem, but not enough to get me to a solution. The section Proxies and Gatewaying suggests that perhaps it is possible to use a Socks gateway to make URL connect through Tor. But this short explanation of Socks gateways @item socks @cindex @sc{socks} Use if the firewall has a @sc{socks} gateway running on it. The @sc{socks} v5 protocol is defined in RFC 1928. doesn't explain enough to show concretely how to do that. Can anyone tell me how to do that? The RFC is not likely to give much help, and it might not even mention the crucial systen-specific details needed to actually do this. I think each of these gateway methods should have examples showing concretely how to use it. and one example for `socks' could be using the Tor demon as a gateway. In the rest of the manual, I noted these items @item dav @cindex DAV A list of numbers specifying what DAV protocol/schema versions are supported. @item dasl @cindex DASL A list of supported DASL search types supported (string form). which need some sort of explanation of what DAV and DASL mean, and where to find more info on them. I don't know those terms. -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-10-16 2:04 Making package.el talk over Tor Richard Stallman 2023-10-16 6:54 ` Akib Azmain Turja @ 2023-10-16 7:12 ` Stefan Kangas 2023-10-16 9:15 ` Philip Kaludercic 1 sibling, 1 reply; 47+ messages in thread From: Stefan Kangas @ 2023-10-16 7:12 UTC (permalink / raw) To: rms, emacs-devel; +Cc: Philip Kaludercic Richard Stallman <rms@gnu.org> writes: > I would like to arrange for package.el > to always connect to ELPA across the Tor network. > But it is 4600 lines of code and I would rather not have to read it all. > > Can someone tell me where to find the code that actually > communicates with the ELPA repos? Where is the best place > to make that change? I found these macros by searching for the string "(url": package--with-response-buffer-1 package--with-work-buffer I don't know if you want this to affect package-vc, but I guess a new option would be even more useful if it could cover that too. ^ permalink raw reply [flat|nested] 47+ messages in thread
* Re: Making package.el talk over Tor 2023-10-16 7:12 ` Stefan Kangas @ 2023-10-16 9:15 ` Philip Kaludercic 0 siblings, 0 replies; 47+ messages in thread From: Philip Kaludercic @ 2023-10-16 9:15 UTC (permalink / raw) To: Stefan Kangas; +Cc: rms, emacs-devel Stefan Kangas <stefankangas@gmail.com> writes: > Richard Stallman <rms@gnu.org> writes: > >> I would like to arrange for package.el >> to always connect to ELPA across the Tor network. >> But it is 4600 lines of code and I would rather not have to read it all. >> >> Can someone tell me where to find the code that actually >> communicates with the ELPA repos? Where is the best place >> to make that change? > > I found these macros by searching for the string "(url": > > package--with-response-buffer-1 > package--with-work-buffer > > I don't know if you want this to affect package-vc, but I guess a new > option would be even more useful if it could cover that too. IIRC all HTTP requests by package-vc go through these functions as well, so if they were to be made Tor-compatible and vc-tor was set, then this /could/ be safe, setting aside issues such as detailed fingerprinting. -- Philip Kaludercic ^ permalink raw reply [flat|nested] 47+ messages in thread
end of thread, other threads:[~2023-12-24 20:37 UTC | newest] Thread overview: 47+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-10-16 2:04 Making package.el talk over Tor Richard Stallman 2023-10-16 6:54 ` Akib Azmain Turja 2023-10-16 7:10 ` Emanuel Berg 2023-10-18 1:42 ` Richard Stallman 2023-11-17 3:53 ` Richard Stallman 2023-11-17 7:03 ` Philip Kaludercic 2023-11-19 3:39 ` Richard Stallman 2023-11-19 6:17 ` Eli Zaretskii 2023-12-09 4:06 ` Richard Stallman 2023-12-09 7:40 ` Eli Zaretskii 2023-12-13 4:58 ` Richard Stallman 2023-12-14 12:25 ` Philip Kaludercic 2023-12-17 3:21 ` Richard Stallman 2023-12-18 4:12 ` Richard Stallman 2023-12-18 8:05 ` Tomas Hlavaty 2023-12-18 8:10 ` Tomas Hlavaty 2023-12-21 4:20 ` Richard Stallman 2023-12-21 9:52 ` Philip Kaludercic 2023-12-21 9:55 ` Philip Kaludercic 2023-12-21 19:15 ` Tomas Hlavaty 2023-12-24 3:57 ` Richard Stallman 2023-12-24 13:36 ` Tomas Hlavaty 2023-12-24 15:19 ` Philip Kaludercic 2023-12-24 20:37 ` Tomas Hlavaty 2023-12-14 12:41 ` Philip Kaludercic 2023-12-14 12:54 ` Emanuel Berg 2023-12-14 13:06 ` Emanuel Berg 2023-12-17 3:21 ` Richard Stallman 2023-12-17 8:23 ` Stefan Kangas 2023-12-17 9:12 ` Eli Zaretskii 2023-12-17 12:02 ` Never send user email address in HTTP requests Stefan Kangas 2023-12-17 12:34 ` Eli Zaretskii 2023-12-17 14:05 ` Yuri Khan 2023-12-17 14:44 ` Eli Zaretskii 2023-12-17 17:30 ` T.V Raman 2023-12-19 3:51 ` Richard Stallman 2023-12-19 3:53 ` Making package.el talk over Tor Richard Stallman 2023-12-17 11:51 ` Philip Kaludercic 2023-12-17 14:10 ` Yuri Khan 2023-12-19 3:51 ` Richard Stallman 2023-12-19 3:52 ` Richard Stallman 2023-12-19 3:52 ` Richard Stallman 2023-11-18 3:03 ` Richard Stallman 2023-11-18 7:21 ` Eli Zaretskii 2023-11-21 2:39 ` Richard Stallman 2023-10-16 7:12 ` Stefan Kangas 2023-10-16 9:15 ` Philip Kaludercic
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.