Source? How can I add a new device (e.g. Messages on OSX) and get all the messages between my phone and friends?
The protocol hasn't been completely reverse engineered but enough to know it's likely decentralized like this, just MITM it (quite a bit is documented on the wiki I linked), Apple is the CA and the piping but it appears to be rather strong and decentralized in terms of chain-of-trust. Apple has put itself, probably without coincidence, in a position where they may not even be able to execute a court order to spy on a user.
The Apple security white-papers detail their hardware level certificates, I've dealt with this a lot as a Apple MDM developer.
When someone sends me an iMessage, their client sends as many copies as I have devices?
Generally how this works is that the sender encrypts the message with a symmetric encryption algorithm (like AES) and then encrypts the randomly-generated AES key with RSA with each of the receivers' private keys. So you only send out a single message, but it can be decrypted by any of the intended recipients.
I have a feeling they could manage.
I really had thought, that this would have happened long ago, for everybody, and so on. Would not have thought, that this was a problem for law enforcement, as it was with i.e. skype.
WINDMILLS DO NOT WORK THAT WAY.
Nobody iMessaging me gets any indication when I get a new iPad and add it to my account, despite all their messages to me now encrypting (on their device) to n+1 of my devices now.
When I have A, and want to add B, A ships its private key to B so it can decrypt the messages too? (and vise versa, obviously)
Or does A get B's public key, and A then re-encrypts and re-sends messages it receives to B?
Or is it something completely different?
Someone who actually knows should weigh in, though. GP's understanding seems a bit murky to me.
You can find more info here. Encryption and Data Protection section should be a good place to start.