Using the app delegate seems to be the "old school" way of doing it, but I think it's a lousy habit to get into. You turn your app delegate into a giant global variable, which is never a Good Thing.
Storing in NSUserDefaults works, although if it's not really a setting you want to save (and you might not given your security considerations), this can come back to haunt you later.
I'm hardcore: I'd instantiate a data model class in your app delegate to hold information like this, and pass it along to your root view controller and onward to any other view controllers that need access to the information. Advantages? No global variables, nothing gets persisted to user defaults, and only those parts of your code that really need the information ever see it (reduces Action At A Distance). Disadvantages? Not as easy to set up as the other two methods (at least the first time).