add passive mode

In passive mode, challenge provider connects to a passive listen socket to
provide challenge.