Bert,
Maybe you can make something of this. I set up three separate fields, SSN1, SSN2, and SSN3. I added a fourth to show the final result concatenated together. I didn't mask the concatenated input to show that SSN1 and SSN2 have values even though they are masked.

I added SSN1 and SSN2 to the class "password" and added the following CSS:
.password .cf-field {
-webkit-text-security: disc; /* For WebKit browsers */
text-security: disc; /* For other browsers that support it */
}
On the input mask for SSN1, SSN2, and SSN3 I set the input mask to '###', '##' and '####' respectively so they would each only input the correct number of digits.
For SSN Full, I set it to read-only and added the following function:

That's pretty much it.
Its not as elegant as a single box that does it all but should work for what you are doing.