Hi,

I have found yet another incompatibility between ssh2 and the secsh draft.
This time it is publickey user authentication. The draft says:

  byte      SSH_MSG_USERAUTH_REQUEST
  string    user name
  string    service
  string    "publickey"
  boolean   TRUE
  string    public key algorithm name
  string    public key to be used for authentication
  string    signature

Signature  is a signature by the corresponding private key over the
following data, in this order:

o  session identifier, and

o  packet payload without the signature.

The problem is with the "service" field, which should contain the service
the client is authenticating for. ssh2 generates signature on a throw-away
packet, which contains a constant "ssh-userauth" in the service field, then
sends a packet containing "ssh-connection", which is obviously not the
"packet payload without the signature". Here's a hex dump of packets what
ssh2 signs, and sends:

This datablock is signed by ssh2:

     0x3d    0x2c    0x3e    0x1c    0x2d    0x65    0x4f    0x2b
     0x39    0xbc    0xf6    0xb4    0xe4    0x08    0xca    0x0f
     0xa3    0x53    0x18    0x88    0x32    0x00    0x00    0x00
     0x05    0x62    0x61    0x7a    0x73    0x69    0x00    0x00
     0x00    0x0c    0x73    0x73    0x68    0x2d    0x75    0x73
     0x65    0x72    0x61    0x75    0x74    0x68    0x00    0x00
     0x00    0x09    0x70    0x75    0x62    0x6c    0x69    0x63
     0x6b    0x65    0x79    0x01    0x00    0x00    0x00    0x07
     0x73    0x73    0x68    0x2d    0x64    0x73    0x73    0x00
     0x00    0x01    0xb3    0x00    0x00    0x00    0x07    0x73
     0x73    0x68    0x2d    0x64    0x73    0x73    0x00    0x00
     0x00    0x81    0x00    0xe7    0x9e    0x22    0xcc    0x85
     0x75    0x70    0xdc    0x41    0x36    0x8f    0x21    0xc9
     0x0b    0x29    0x00    0x8e    0x5a    0x6a    0xb0    0x3f
     0x8a    0xab    0xf5    0xe9    0x4f    0x12    0x44    0x45
     0x1b    0xdd    0xd1    0xc6    0x06    0x74    0x58    0x9d
     0x2e    0x10    0x6c    0x2c    0xe9    0x4a    0xfe    0xa7
     0xf6    0x99    0x6c    0x0a    0x41    0x9c    0x9c    0x4a
     0xe2    0xfc    0x18    0xc2    0xe3    0x04    0xe9    0x44
     0x6d    0x57    0x38    0x41    0xde    0x5f    0xe3    0xfe
     0xb5    0xc5    0xff    0x41    0xb3    0x4a    0x2d    0xcf
     0x5a    0x75    0x77    0x9f    0xc6    0x74    0x82    0xa9
     0x55    0x39    0x87    0x69    0x40    0xf1    0x02    0xd3
     0xb2    0xba    0xb4    0x7b    0xe3    0x18    0x80    0x00
     0x32    0x65    0xac    0x29    0x8b    0x57    0xa7    0x82
     0xd0    0xa4    0x30    0xb2    0x83    0x97    0x27    0x80
     0xc4    0x1e    0xad    0xae    0x8d    0xa9    0x20    0x20
     0xa0    0x51    0xa7    0x00    0x00    0x00    0x15    0x00
     0xb9    0xfc    0x93    0x7f    0xaf    0x89    0xee    0x89
     0x31    0xee    0xc8    0xf9    0x07    0x45    0xa3    0xa1
     0x55    0x4c    0xe4    0x6f    0x00    0x00    0x00    0x81
     0x00    0xe6    0x57    0x14    0x1c    0x5e    0x1f    0x1f
     0xe0    0x41    0xc8    0x96    0xdf    0x34    0x34    0x0b
     0x3f    0xaf    0x10    0x80    0x69    0xf7    0x73    0xaa
     0x30    0x01    0xa8    0xa4    0xd5    0xba    0xe8    0x58
     0x9f    0x11    0x24    0x49    0x67    0x51    0xd1    0x57
     0x4e    0xed    0x8c    0x38    0x15    0xb8    0xed    0x8c
     0xd7    0xb3    0x9f    0x76    0xee    0xcd    0xf5    0x03
     0x5e    0xfc    0xa0    0x6c    0xd7    0x74    0x1c    0x46
     0xe1    0x44    0x06    0xdc    0x5d    0x53    0xcf    0xbe
     0xf5    0xd4    0x25    0x1d    0xe0    0x25    0x13    0xe3
     0xed    0x25    0x31    0x59    0x07    0xb3    0x0d    0x41
     0x6f    0x56    0x9f    0x63    0x4d    0x89    0xf1    0xc4
     0x67    0xd8    0xd7    0x79    0x9f    0xe9    0xdf    0xa9
     0x93    0xf2    0x07    0x46    0xd9    0xf6    0x8b    0x47
     0x09    0xee    0xd1    0x4f    0x16    0x73    0x46    0x37
     0x20    0x68    0x59    0x2f    0x15    0x86    0x4c    0x05
     0xc5    0x00    0x00    0x00    0x81    0x00    0xcd    0x6d
     0xeb    0x6f    0xe0    0x00    0x07    0xdc    0x58    0x83
     0xd4    0xbc    0x68    0xb3    0x86    0xdf    0x4a    0xb9
     0xf4    0xac    0xc9    0xcf    0x64    0x82    0xbb    0x71
     0xa7    0x47    0x92    0xa5    0x15    0x42    0x48    0xc3
     0xda    0x22    0xc7    0x58    0xe2    0xfd    0xf1    0x18
     0xab    0xad    0x48    0x26    0x85    0x3f    0xe0    0xc9
     0xba    0xc1    0x35    0xb8    0xb0    0x0a    0xf6    0xda
     0x62    0x95    0x59    0x50    0xe5    0xc1    0x87    0x94
     0x08    0xf8    0x53    0x76    0x78    0x06    0x58    0x3e
     0xc6    0x5e    0xe8    0xe4    0xbe    0xad    0x0a    0x30
     0xd8    0xc8    0x27    0x95    0xb8    0xa3    0x90    0x51
     0x12    0x3f    0x72    0x54    0x26    0x13    0x99    0x6b
     0x54    0x1a    0x71    0xd6    0xf6    0x4b    0xb1    0x28
     0x12    0x52    0x51    0xd1    0xe7    0xb6    0xe2    0xe4
     0x0e    0x6d    0xc0    0xe3    0xef    0xf7    0xe7    0xd2
     0x73    0xd5    0x2b    0x99    0x43    0xd4


And this is what lsh constructs when the packet is received. The first 20
bytes of both packets is the session id.

     0x3d    0x2c    0x3e    0x1c    0x2d    0x65    0x4f    0x2b
     0x39    0xbc    0xf6    0xb4    0xe4    0x08    0xca    0x0f
     0xa3    0x53    0x18    0x88    0x32    0x00    0x00    0x00
     0x05    0x62    0x61    0x7a    0x73    0x69    0x00    0x00
     0x00    0x0e    0x73    0x73    0x68    0x2d    0x63    0x6f
     0x6e    0x6e    0x65    0x63    0x74    0x69    0x6f    0x6e
     0x00    0x00    0x00    0x09    0x70    0x75    0x62    0x6c
     0x69    0x63    0x6b    0x65    0x79    0x01    0x00    0x00
     0x00    0x07    0x73    0x73    0x68    0x2d    0x64    0x73
     0x73    0x00    0x00    0x01    0xb3    0x00    0x00    0x00
     0x07    0x73    0x73    0x68    0x2d    0x64    0x73    0x73
     0x00    0x00    0x00    0x81    0x00    0xe7    0x9e    0x22
     0xcc    0x85    0x75    0x70    0xdc    0x41    0x36    0x8f
     0x21    0xc9    0x0b    0x29    0x00    0x8e    0x5a    0x6a
     0xb0    0x3f    0x8a    0xab    0xf5    0xe9    0x4f    0x12
     0x44    0x45    0x1b    0xdd    0xd1    0xc6    0x06    0x74
     0x58    0x9d    0x2e    0x10    0x6c    0x2c    0xe9    0x4a
     0xfe    0xa7    0xf6    0x99    0x6c    0x0a    0x41    0x9c
     0x9c    0x4a    0xe2    0xfc    0x18    0xc2    0xe3    0x04
     0xe9    0x44    0x6d    0x57    0x38    0x41    0xde    0x5f
     0xe3    0xfe    0xb5    0xc5    0xff    0x41    0xb3    0x4a
     0x2d    0xcf    0x5a    0x75    0x77    0x9f    0xc6    0x74
     0x82    0xa9    0x55    0x39    0x87    0x69    0x40    0xf1
     0x02    0xd3    0xb2    0xba    0xb4    0x7b    0xe3    0x18
     0x80    0x00    0x32    0x65    0xac    0x29    0x8b    0x57
     0xa7    0x82    0xd0    0xa4    0x30    0xb2    0x83    0x97
     0x27    0x80    0xc4    0x1e    0xad    0xae    0x8d    0xa9
     0x20    0x20    0xa0    0x51    0xa7    0x00    0x00    0x00
     0x15    0x00    0xb9    0xfc    0x93    0x7f    0xaf    0x89
     0xee    0x89    0x31    0xee    0xc8    0xf9    0x07    0x45
     0xa3    0xa1    0x55    0x4c    0xe4    0x6f    0x00    0x00
     0x00    0x81    0x00    0xe6    0x57    0x14    0x1c    0x5e
     0x1f    0x1f    0xe0    0x41    0xc8    0x96    0xdf    0x34
     0x34    0x0b    0x3f    0xaf    0x10    0x80    0x69    0xf7
     0x73    0xaa    0x30    0x01    0xa8    0xa4    0xd5    0xba
     0xe8    0x58    0x9f    0x11    0x24    0x49    0x67    0x51
     0xd1    0x57    0x4e    0xed    0x8c    0x38    0x15    0xb8
     0xed    0x8c    0xd7    0xb3    0x9f    0x76    0xee    0xcd
     0xf5    0x03    0x5e    0xfc    0xa0    0x6c    0xd7    0x74
     0x1c    0x46    0xe1    0x44    0x06    0xdc    0x5d    0x53
     0xcf    0xbe    0xf5    0xd4    0x25    0x1d    0xe0    0x25
     0x13    0xe3    0xed    0x25    0x31    0x59    0x07    0xb3
     0x0d    0x41    0x6f    0x56    0x9f    0x63    0x4d    0x89
     0xf1    0xc4    0x67    0xd8    0xd7    0x79    0x9f    0xe9
     0xdf    0xa9    0x93    0xf2    0x07    0x46    0xd9    0xf6
     0x8b    0x47    0x09    0xee    0xd1    0x4f    0x16    0x73
     0x46    0x37    0x20    0x68    0x59    0x2f    0x15    0x86
     0x4c    0x05    0xc5    0x00    0x00    0x00    0x81    0x00
     0xcd    0x6d    0xeb    0x6f    0xe0    0x00    0x07    0xdc
     0x58    0x83    0xd4    0xbc    0x68    0xb3    0x86    0xdf
     0x4a    0xb9    0xf4    0xac    0xc9    0xcf    0x64    0x82
     0xbb    0x71    0xa7    0x47    0x92    0xa5    0x15    0x42
     0x48    0xc3    0xda    0x22    0xc7    0x58    0xe2    0xfd
     0xf1    0x18    0xab    0xad    0x48    0x26    0x85    0x3f
     0xe0    0xc9    0xba    0xc1    0x35    0xb8    0xb0    0x0a
     0xf6    0xda    0x62    0x95    0x59    0x50    0xe5    0xc1
     0x87    0x94    0x08    0xf8    0x53    0x76    0x78    0x06
     0x58    0x3e    0xc6    0x5e    0xe8    0xe4    0xbe    0xad
     0x0a    0x30    0xd8    0xc8    0x27    0x95    0xb8    0xa3
     0x90    0x51    0x12    0x3f    0x72    0x54    0x26    0x13
     0x99    0x6b    0x54    0x1a    0x71    0xd6    0xf6    0x4b
     0xb1    0x28    0x12    0x52    0x51    0xd1    0xe7    0xb6
     0xe2    0xe4    0x0e    0x6d    0xc0    0xe3    0xef    0xf7
     0xe7    0xd2    0x73    0xd5    0x2b    0x99    0x43    0xd4

I am trying to add a workaround to lsh.

-- 
Bazsi
PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1
     url: http://www.balabit.hu/pgpkey.txt

PGP signature

Reply via email to