Разглеждам прилагането на CRAM-MD5 удостоверяване за IMAP и SMTP сървър. Проблемът е, че CRAM изглежда изисква парола с ясен текст, за да бъде достъпна по всяко време. Сървърът изпраща на клиента уникално предизвикателство и клиентът връща:
MD5( MD5(password, challenge), MD5( password ) )
Не виждам начин да проверя това без парола с ясен текст, спецификацията не казва, че трябва да има налична такава, но изглежда логично.
Единственото решение, което мога да измисля, е да криптирам (правилно криптирам, не хеширам) паролата в базата данни (вероятно използвайки базиран на RSA ключ AES, тъй като вече имам какво да се справя с това) и да я декриптирам, когато трябва да сравня, изглежда много бавен начин, тъй като ще има нужда от дешифриране и хеширане за всяко едно влизане в SMTP и IMAP.
Това ли е най-доброто решение/най-ефективното решение?
Или, по-добре, сега CRAM е остарял, защото дори по-малко сигурното удостоверяване по кабела сега е защитено с SSL?