Based off the diagram in the TWiT event presentation (attached), the unlock key is the one thing that always survives any other changes, so that’s why I used the term “refactor” or “reroll”, in contrast to creating an entirely new identity. So, the SQRL protocol and clients are all that’s responsible for parsing out a single SQRL ID from the user’s perspective into multiple unique token IDs for use with individual site accounts?
Correct.
Eventually I hope this will be broken out even further into tokenized blocks that only users’ clients can ever piece back together and can live in disparate encrypted blobs not just for basic file-level storage like today’s distributed cloud-storage apps but also for providing that level of obfuscation and protection for transactional and metadata.
I'm not sure I see the need for that, but, anyone writing a client is free to do as they please. Though adhering to the S3 storage format defined provides interoperability and, theoretically, adequate local security, especially given other features such as recovery, locking, and re-keying.
I guess the implication of what you’re saying is also that unless a site gets more info from you like your email to associate with a given SQRL ID you login with, the site basically only knows which unique SQRL ID logged in but not even whether or not it was the same one as last time?
No, it will always get the same one as last time. There just is nothing to ever tie different logins together. Essentially it says:
Client: "Hello, site.com! On this site, you can call me 49276813."
Server: "I've never heard of you. Would you like an account?"
Client: "Yes, please."
Server: "Done."
Then, when you come back later:
Client: "Hello, site.com! On this site, you can call me 49276813. (which happens to be a public key I made JUST for this site)"
Server: "Wait! I know you! You have an account here. First, PROVE to me that you are the real 49276813 by signing this crap 54654894313864843 with the 49276813's private key, which only the real YOU will have!"
Client: SQRL Magic (cryptographic signature)
Server: "Well, damn! It really IS you!! Come on in!"
If you log in to a different forum at even a SLIGHTLY different site name (related or not):
Client: "Hello, sister.site.com! On this site, YOU can call me 52879461. (which happens to be a public key I made just for THIS site)"
Server: "I've never heard of you. Would you like an account?"
Or if you use the Alt-ID option and use "otherMe" to login on the SAME site:
Client: "Hello, site.com! On this site (what I am now calling site.com
otherMe in my head), YOU can call me 37915482. (which happens to be a public key I made just for THIS site)"
Server: "I've never heard of you. Would you like an account?"
Completely separate unique numbers are generated for every site. But, consistently generated for that site. And you here, you there, and other you here are all as different as you there and me there. With NOTHING to know that they aren't 4 different people or all the same person.
SQRL doesn’t require a fresh validation of the account each time? Or it’s just a matter of your own choice with settings at a given site (e.g. a checkbox to stay logged in)?
The latter. It is up to the site if they want to keep a cookie and let you in based on the cookie. In the scenario where this forum let you back in again without a challenge, that is because it chose to do so and the SQRL code on the server was never even asked for an opinion on it. If it HAD been asked, you would have been asked to go through the SQRL process.
Perhaps SQRL could add an option to reject cookies that involve it without having to
Again, unless the server asks SQRL to do its thing, not one instruction of SQRL code is involved on the server. And, likewise, unless you clicked on a SQRL link or scanned a SQRL QRCode in your browser, not one instruction of SQRL code is involved on your computer. Both ends are completely out of the way unless asked.
The reason I’d even want fresh validation is in case token IDs (vs. SQRL IDs proper from the user’s perspective) do, in fact, yield any inferences about which SQRL ID they came from as a pattern over time.
They absolutely cannot. First, if you had an account "Phil" at site site.com and they added SQRL and let you switch over to using SQRL, the exchange would essentially be "Phil, who is already logged in old-school now wants to ALSO be known as SQRL 89754621". Then, when you come back and use SQRL login to say
Client: "Hello, site.com! On this site, YOU can call me 89754621. (which happens to be a public key I made just for this site)"
Server: "I know you! You have an account here. First, PROVE to me that you are the real 89754621 by signing this crap 94313864843546548 with the 89754621's private key, which only the real YOU will have!"
Client: SQRL Magic (cryptographic signature)
Server: "
Phil?
Phil Connors?
Phil Connors, I thought that was you." ©Groundhog Day! "It really IS you!! Come on in, PHIL! And let me set a cookie to remember that Phil is already logged in (not 89754621, Phil).
Secondly, another part of the entire point to SQRL is that 89754621 is a public key. You could give it out like Pez and it would be of absolutely ZERO use to anyone because it's only used, by one site ever, and it is exclusively used to say "I'm back" which is always followed by "PROVE IT with the corresponding private key!"
I apologize if these concerns are redundant, but I’m trying to learn how to talk about it in contrast to PGP.
Ask away!!