По поводу п.2 поясните, пожалуйста. В БД не планируется хранить ни ключи, ни сами доступы в открытом виде, записывать уже зашифрованные. После чего посылать зашифрованными на клиент, расшифровывать их там и отправлять обратно для разового использования в сессии. Я не совсем понимаю (может быть, в силу отсутствия опыта), что даст кража бд / кода.