A Generic Framework for Three-Factor Authentication: Preserving Security and Privacy in Distributed Systems | Synapse