Opass: A User Authentication Protocol Resistant to Password Stealing and Password Reuse Attacks