A native interface would defeat the purpose of security.
If you have a native interface, how do you know nothing is being captured on the backend before being sent to Google. Not saying that Apple would do that but you see the problem.
I do see your argument, but it becomes moot by the fact that Apple could grab the credentials in
both cases! After all its their web browser implementation, so
anything that is entered in any web form could be grabbed by Apple (the OS, to be specific), if they wanted to. Heck, every key stroke you do is under the control of the OS!
So whether they would provide a nicely rendered Cocoa GUI which would interact with the Google Auth service, or rendering the web pages (as provided by Google) directly totally does not make
any difference, when it comes to
security!
The point of a webpage is to know that you're dealing directly with a branded Google webpage on Google's own servers.
So "Security by Corporate Design" is it then, right?
😉
----------
So whether they would provide a nicely rendered Cocoa GUI which would interact with the Google Auth service, or rendering the web pages (as provided by Google) directly totally does not make any difference, when it comes to security!
There is off course a reason why Apple (or anyone, for that matter) might prefer the "web GUI" approach: first, license reasons. Google might simply dictate that a software renders their web login in order to comply with the "Terms of Use" (which I don't know and can only speculate about).
Then there is off course the "Ah I remember this Google login, I have seen it elsewhere!"-effect on users.
Third and probably most importantly: the HTML forms, the arguments being expected and the URLs to be contacted might change at Google's will! So "hard-coding" this kind of information in a Cocoa GUI (Controller/whatever) might break in the future.
I once did an Instagram Authentification without rendering their Web Login page, and simply POST-ing the user name/password at the corresponding URL (and reacting to each "Forward" request they sent me in turn). Needless to say that after some weeks my approach failed, since the Instagram web login process had changed in the meantime.
So it is 10 times more practical to simply render the HTML page in a browser, and let it react to whatever arguments are being passed around.
----------
Exactly. Not entirely sure why some have a hard time understanding this concept.
If you think the "web GUI approach" is more secure than a "native interface" (aka custom Cocoa GUI), then you surely did not understand the concepts of "security". Little hint: the OS is also responsible to render the web page, so if it wanted to, it can grab whatever credentials it likes (and is not supposed to).
----------
Um, the point of authentication like this is to contact the source directly instead of giving your credentials to a third party. How else do you expect them to do this?
I guess you imagine that the "third party" would be Apple (the OS) and in your world "contacting the source directly" means that you enter data in a web page and "no one else can intercept it".
Well, you are wrong on the later point unfortunately: off course the web page is rendered by the OS (specifically: the corresponding webkit framework), and if that framework wanted to grab whatever the user entered, nothing would prevent it from doing so!
Every bloody keystroke you do is under the control of the OS, so nothing less or more secure when entering the data in a "native GUI form" than when entering it in a "HTML web page as provided by Google".
----------
It's great for people who need it, and I'm happy to see support for it included in the OS, but for me, it kind of defeats the purpose of apps like 1Password.
It doesn't. It is an
additional layer of security!
There's something so clunky about occasionally having to grab my phone to verify my identity.
With strong emphasis on
occasionally: per device you have to complete 2FA exactly
once (unless you change something).