win32ss / supermium

Chromium fork for Windows XP/2003 and up
https://win32subsystem.live/supermium/
BSD 3-Clause "New" or "Revised" License
1.83k stars 60 forks source link

[Request, Enhancement] Improved `disable-machine-id` and `disable-encryption` flags for seamless transition #645

Open XakerTwo opened 3 weeks ago

XakerTwo commented 3 weeks ago
Preamble Digging a bit in search of why on my VM chromium not add id to ProgID when registering browser, but on my host does(due to one char - disk letter) i slightly moved aside and dig a bit into MACs or HMACs(at least can be correctly googled). So if i understand it right - machine id (device SID) is HMAC key, that added or not, depends on flag, to key-value pair (secured parameter name and value).

At start chromium checking HMAC-ed values from Secure Preferences file and registry and actual values. When disable-machine-id just toggled sure HMACs will not match and all related data will be lost.

I not digged much, but seen a migration functions for HMACs, that are probably used in synchronization. My suggestion is pretty simple - use these migration functions(create them if needed), whenever disable-machine-id flag toggled and browser about restart(after restart button clicked but before browser closed).

Why I see no any complications even in case of creating functions for migration, since parameters accessible and presented as dictionary, but again - i NOT looked at this close enough, so may be wrong about no complications Why in restart moment - HMACs supposed to be changed only during session and only after successfully checked or completely rejected and resetted. Else it creates vulnerability or will require double check on startup when HMACs is mismatched. Why it needed - to turn browser to/from portable mode seamless without any losses. It allow small abuse of such conversion to simply and offline moving of your profile to new machine Right now not only few settings but also extensions will be lost. Extensions, btw, actively have forced to use MV3 and some of them breaks. While, with certain flags, it's possible to preserve MV2 versions, MV2 crx files can't be downloaded from web store. Sure preserved extensions can be installed as unpacked, but with bunch of issues on updating or with different id and page 404 in web store. Plus restoring of their browser settings(settings of extensions is not a subject of HMAC)

Initially i was not aware about of disable-encryption but it behaves same, so request/suggestion same for it as well. Note that extensions also have their own cookies