This is why we're storing important user credentials on a user's phone instead of all on a central server! (https://clef.io)
Is there an open protocol for this?
Looks like you're doing something similar to the mutual auth that wikid does...a whitepaper or two with more depth would be useful on the site