Let me chime in on another part of the discussion of SSN as a key. I am now speaking regarding Federal Law and guidelines that I get from the U.S. Department of Defense plus yearly refresher courses that I have to take (and have recently taken) regarding records handling, HIPAA, the USA Privacy Act of 1974 (and as subsequently amended):
It is now forbidden to use the SSN as a computer-based primary key in any record that includes any one of about a dozen different fields, the most prominent of which is the Personal Name, but there is also Personal Address, Personal Phone, specific family information (including Mother's Maiden Name), etc. We were required to redact all repeat ALL records that used SSN as a key. We have a DoD field called the EDIPI - Electronic Data Information Personal Identifier (or something close to that). It is NOT the SSN. We are not allowed to use the SSN because it is now recognized by USA courts of law as nearly an automatic violation of privacy. So ButtonMoon, as of the latest updates in Federal Law, the SSN usage IS a privacy issue.
Now, there is a distinct question - whether SSN should be treated as a prime key? Here, my opinion is no because of the possibility of identity theft forcing changes in the SSN. There is also the fact - and this IS a fact - that some folks will need to be entered into a system while their SSN is still in the "applied for" state. Here, the real consideration is that you suddenly allowed data to drive a process rather than allowing a process to drive the data. If you used SSN for people who don't have one yet and that fact blocks their entry, then the tail is wagging the dog.
There is also the issue of whether someone should ever see a primary key value. My response there is, It depends on the key and whether knowing it gets you to something that you could use unscrupulously. Let's take a trivial case - where people use a USA-only location indicator that includes state abbreviations. You can use the two-character state abbreviation as a literal primary key (in text mode) because it fits in a fixed size slot, is stable, and pretty much doesn't matter whether someone sees it or not. Because there, the information is already widely known and easily knowable.
You face the problem again and again that the government needs a way to identify you but that information then becomes a key to allow perpetrators to ... well, PERPETRATE bad things on you. The problem is that you are stuck on the information security CIA triad - confidentiality, integrity, availability. Without using that unique identifier, you can't assure that a transaction applies only to you (confidentiality). That means that the integrity of your data can be questionable; also, gaining access to that data (availability) is an issue. So the question is, how many identifiers are enough to assure your data cannot be compromised, yet how many identifiers are too many to manage?
In the end analysis, back to the topic of keys... I've seen so many different answers to this question because opinions of "security experts" change over time and the ingenuity of the malicious hackers increases as time passes. Is it OK to use text vs. numeric keys? Whatever floats your boat works for me. Is it OK to use natural vs. surrogate keys? Whichever is better for your applications? Is it mandatory to hide primary keys from users? Depends, because first you have to decide whether that PK is used for something else. (And that question is where SSN shines as an example of the conflict of hiding vs. revealing the PK.)