All SHSH files are pulled from Apple's servers and then stored/cached either on Cydia's servers and/or your own HDD, by way of TinyUmbrella. That's why people talk about a window in which you can retrieve your SHSH files from Apple's servers and save them off somewhere; once they upgrade to a new firmware, the window for the previous firmware closes, and if you don't have them saved somewhere, you'll not be able to restore back to that particular version.
To address the other statement you made: you absolutely do not have to be jailbroken to save/store/cache your SHSH files somewhere. When you launch TinyUmbrella and click Save SHSH, by default, it'll send your SHSH requests to Cydia and also pull down a copy on your local machine. Similarly, the first time you run Cydia after jailbreaking your phone, you're asked whether or not you want to save all future SHSH files on Cydia's servers. I like TinyUmbrella, as it puts both a copy on Cydia as well as on your local machine.