Here are some other advantages other than being impervious to padding oracle attacks:
- easier to decrypt from a certain offset within the ciphertext
- no randomness requirements for the nonce
- nonce can be calculated, e.g. be a simple counter
- nonce can be a message identifier
- $E = D$: encryption is the same as decryption, which means
- only encryption or decryption required from the block cipher
- less logic required
- no padding overhead or mechanism required
- key stream can be pre-calculated (latency advantages)
- parallel computation of the key stream is also possible
Draws:
- sequential speed the same (about the same number of ciphertext blocks)
- cryptographic security (when used properly)
Disadvantages:
- nonce reuse is catastrophic, confidentiality is completely lost
- leaks somewhat more information about the size of the plaintext
- possible to perform one or more bit flips in the plaintext by the attacker (also affects plaintext oracle attacks)
- multiple, slightly different schemes with regards to IV creation and the method that the nonce is used
- still less common in libraries or known by (starting) developers
Another questionable disadvantage is that CTR has no error propagation, but that should probably be considered an advantage by now; if you want integrity, use an authentication tag (MAC or signature).
You can attack CBC and CTR using different methods, with different consequences. If CBC mode has problems in a certain protocol, then switching to another mode has its advantages of course. See the answer of Thor for good reason to switch to CTR for OpenSSH specifically.
That's probably a better reason to disable CBC than the reasons given above. If you want to know for sure, you should ask the OpenSSH developers though (or the person that disabled CBC-mode, anyway).
Beware that AES-CTR is still vulnerable to plaintext oracle attacks. Padding oracle attacks are only a subset of plaintext oracle attacks. If the system returns specific errors if the ciphertext is altered then an adversary can still learn information about the plaintext. CTR actually makes this easier since it allows the attacker to flip any bit of the plaintext; if CBC is used then a whole block of plaintext gets randomized.
Then again, AES-CTR is the underlying cipher of all of the popular AEAD modes for AES. So if you want to add message integrity / authenticity then AES-GCM is only one step away.
AES256-CTR
in my SSH connections. – Rlearner Aug 18 '14 at 02:44