NSUserDefaults lub keychain lepiej zapisać nazwę użytkownika i hasło w aplikacji na iPhone'a

W mojej aplikacji na iPhone'a są pewne poufne dane, takie jak nazwa użytkownika, hasło i niektóre adresy URL do usługi internetowej. Który z nich jest lepszy NSUserdefaults lub keychain. Ktoś mówi, że NSUserdefaults jest niepewny. Dlaczego jest niepewny? i czy każdy może podać zalety i wady każdego z nich.