本頁面暫無您所用語言的版本,您正在閱讀英文原文。
Blog
The profile clock and the exit address disagree: what is compared first
ARMANOS 團隊7 min
What a platform reads first
The address arrives ahead of any script: it sits in every request, or the answer never reaches you. Nobody asks your permission for it, and it cannot be switched off.
The clock follows: the zone name comes from the browser itself, with no prompt and no delay. A platform then compares countries rather than times.
- 1
Reads the address
It sits in the request header, before the first line of the page.
- 2
Asks for the clock
A zone name such as Europe/Berlin goes to any page that asks.
- 3
Runs the move backwards
Zone to country, language to country, both against the address.
One zone names exactly one country
A zone is not the time on the clock, it is a name such as Europe/Berlin or Europe/Moscow. Every name belongs to a country, and the move backwards from it is unambiguous.
Across 114 countries there are 114 distinct zones and the same number of distinct language stacks. So the zone and the stack each name your country on their own, without your address.
| What every country carries | How many |
|---|---|
| Countries with a ready clock and language pair | 114 |
| Distinct zones among them | 114 |
| Distinct language stacks | 114 |
| Stacks that keep English at the tail | 109 |
| Countries holding more than one zone | 7 |
A German address with Moscow hours
Take a German address and a profile carrying Europe/Moscow. A platform gets two countries out of one visit and picks which of them to believe.
No real machine answers that way: a person in Berlin keeps Berlin hours rather than Moscow ones. The gap shows without a single extra request.
| What a platform reads | Where it leads |
|---|---|
| Exit address | Germany |
| Clock on the profile | Europe/Moscow |
| Country behind that clock | Russia |
| Languages on the profile | ru-RU, ru, en |
| Languages a German address carries | de-DE, de, en |
Your languages name the same country
A platform reads the language list with the same move it uses on the clock. The first tag in it carries the region: de-DE is Germany, ru-RU is Russia.
Stacks come in different lengths: 10 countries carry two languages, 85 carry three, 19 carry four. English is in all 114, and it sits at the tail in 109: in the other five a local language follows it.
Where your profile gets its clock
Your profile asks for the country of its own address, and it asks through the same proxy it will use afterwards. The answer comes over a secure connection, from four independent sources in turn.
Otherwise whoever runs the proxy could name any country and hand your profile a clock that argues with its own address. An answer sent in the clear is rewritten by anyone on the path; a secure one is not.
- 1
Through your own proxy
The question goes the road the profile will take, not around it.
- 2
Over a secure connection only
Otherwise the country is swapped by anyone standing on the path.
- 3
Four sources instead of one
One refusal does not decide what clock your profile ends up with.
The engine sets the clock
On ARMANOS Browser the clock comes from the browser itself, which is why the zone name and the offset from UTC come from one place. On the built-in engine a script over the page sets them: one place as well, but a different layer.
A platform often asks both ways at once. A browser whose two answers disagree gives the swap away faster than the zone itself ever would.
Seven countries with several zones
Most countries in the set carry one zone, and the profile gets exactly that. Eight countries are written out separately, and seven of them hold several zones: the United States and Canada four each, Australia four, Brazil, Mexico and Russia three, Indonesia two.
For those countries the zone falls to a profile by lot from its own seed. So two profiles on one American address usually show different clocks, and that works for you: identical clocks across five profiles would say more.
A language arrives paired with a region
A country's language stack opens with an exact pair: German of Germany for Germany, Russian of Russia for Russia. Then comes the plain language, and English closes the row.
The pair with a region matters more than the language itself. Austrian German on a German address is no mistake, while German of Germany next to a Brazilian address is already a mismatch.
A profile does not know your city
The clock comes from the country rather than the city of exit. If your address is in Denver and the profile drew the New York zone, a platform sees a two hour gap inside one country.
That happens to living people too: someone flies across the country with a laptop and the clock stays at home. But when it repeats across five of your profiles in a row, the picture reads differently.
Why the set of countries is what it is
The set holds a hundred and fourteen countries, each with a ready pair: a zone and a language stack. These are the countries sellers most often hand addresses from.
A country outside the set is not left without a clock: the zone and the language fall to the profile by lot from its seed. They are then under no obligation to match the country of the address, and the app does not warn about it.
So an address from a rare country is worth checking on the very first page: the clock and the language will tell more about the profile than the address does.
What to look at after changing a proxy
Rotating the address on a proxy does not change the exit country while the proxy stays the same. Moving a profile onto a proxy in another country changes everything at once: the clock and the language both.
After such a move, open the profile and check three things side by side: the address, the clock and the first language. A mismatch shows at a glance, and it is fixed before the first sign-in rather than after.
How to check this yourself
Open a profile and read four values in a row: the address, the zone name, the offset from UTC and the language list. Reduce them to one country.
If the countries part ways, a platform sees exactly the same thing. If they agree, this pair of signals makes you look like an ordinary machine at home.
What this does not claim
- It does not claim that every platform runs this comparison. Some match country to address on the first visit, some never look, and none of them publish their rules.
- The clock follows the country of the address rather than its city. A Los Angeles address with New York hours is still one country, and a check by country will not see that gap.
- A country outside the set of 114 does not reach the profile's clock: the zone and the language fall to it by lot from its own seed. The launch warning covers a different case, when the country could not be worked out at all, and about this one the app stays quiet.
- No browser fixes behaviour. Identical texts, one payment card and one daily rhythm link accounts regardless of clock and address.
Where you can see this yourself
Every number above comes out of code you can open and run.
- The zone and language stack of each of the 114 countries sit on one line
- packages/shared/src/index.js · apps/desktop/test/fingerprint-consistency.js
- The profile card shows the same clock the platform will get
- apps/desktop/test/fingerprint-card-matches.js
- The exit country is asked through your own proxy and over a secure connection only
- apps/desktop/src/lib/exitGeo.js · apps/desktop/test/exit-geo.js
- The profile clock is read in a real browser along with the other readings
- apps/desktop/test/audit-on-builtin.js
- After a rotation the old country is dropped and the clock comes from the new one
- apps/desktop/src/lib/proxyRotate.js · apps/desktop/test/ротация-адреса-исполняется.js
- The clock change sits in a patch the engine build actually applies
- engine/patches/armanos-fp.cumulative.diff · apps/desktop/test/engine-patches-real.js
Questions
- How quickly does a platform notice this?
- Both values arrive in one visit, so they can be compared on the very first page. Nothing about your behaviour or the age of the account is needed for it.
- The proxy is German and I want to keep my own clock. Can I?
- What you set by hand is never rewritten: you know what you are after. But at that moment you are naming two countries at once, and the platform picks.
- If I set the clock by hand, does the language follow?
- Yes, when the address has not already fixed the country. A zone chosen by hand pulls the languages of its country, and a language chosen by hand pulls the clock the same way.
- My proxy is American and the clocks differ across profiles. Is that wrong?
- No. Seven countries hold more than one zone, so profiles on an American address get different American hours. The country stays the same for all of them.
- The clock answers Europe/Kiev instead of Europe/Kyiv. Is that a fake?
- No, that is the canonical zone name. Ordinary Chrome answers the same way, and Asia/Kolkata turns into Asia/Calcutta there too.
- The address rotates before launch. Does the clock follow it?
- Yes. The country remembered earlier is dropped when the address changes, and the profile takes its clock and language from the new address instead.
Next to this
Timezone spoofing
The ways a site reads the clock and where those readings split.
Exit address
How a platform learns your country and what trails an address.
Browser language list
What a real machine carries in that list and in which order.
Free fingerprint check
12 values read in your browser, with nothing sent anywhere.
See what your own browser answers
The check reads 12 values right in your browser and sends nothing anywhere.