Opened 8 years ago

Closed 5 years ago

#4246 closed enhancement (wontfix)

Create a JS-based clock-check page to diagnose HS problems

Reported by: rransom Owned by:
Priority: High Milestone:
Component: Webpages/Website Version:
Severity: Keywords:
Cc: phobos, hellais, adrelanos@… Actual Points:
Parent ID: Points:
Reviewer: Sponsor:

Description

The most common cause of ‘I CAN"T REACH ANY HIDDEN SERVICES!!!!!!!!!!!!!!! ’ complaints seems to be that the user's clock is set incorrectly (see also #3460).

These problems fall into three general categories:

  • The time is off by over half an hour; the date and time zone are correct. This will stop being a problem soon, when #3460 is fixed.
  • The time and date appear correct; the time zone is incorrect. This will also become generally harmless to HS connectivity soon.
  • The time and time zone are correct; the date is incorrect. This can never be fixed in Tor with the current (v2) HS protocol.

Users often have a hard time figuring out that their clock is, in fact, wrong, even after we tell them that it is.

All of these problems could be diagnosed and fixed by a simple JavaScript-based clock test page. Unfortunately, the only way JavaScript can obtain a server's idea of the current time is to have the server send the current time as part of a response's content (JS cannot access the Date: header), so this will require some server-side code too.

Child Tickets

Change History (8)

comment:1 Changed 8 years ago by rransom

Owner: rransom deleted
Status: newassigned

comment:2 Changed 7 years ago by mazda

Apparently we can read the HTTP headers using java-script, Is that sufficient for this check?

<html>
<body>

<script type="text/javascript">

var d=new Date();
document.write(d);

javascript:var req = new XMLHttpRequest();
req.open('GET', document.location, false);req.send(null);var headers =
req.getAllResponseHeaders().toLowerCase();
document.write('<br>');
document.write(headers);
</script>

</body>
</html>

comment:3 Changed 7 years ago by rransom

Cc: hellais added

comment:4 Changed 7 years ago by hellais

Would this be implemented inside of check.torproject.org? I wrote a little POC for this: https://gist.github.com/4633bfa12c5095588e96

comment:5 Changed 7 years ago by phobos

inside check sounds the best place.

comment:6 in reply to:  5 Changed 7 years ago by proper

Replying to phobos:

inside check sounds the best place.

Sure? In #6098 you told me about check.tpo:

The real plan is to get rid of both and figure out how to get the client to verify itself without hitting a single service somewhere on the Internet.

comment:7 Changed 7 years ago by proper

Cc: adrelanos@… added

comment:8 Changed 5 years ago by Sebastian

Resolution: wontfix
Status: assignedclosed

I talked to helpdesk people, who think a website might not be required for this. Closing.

Note: See TracTickets for help on using tickets.