b2f:b2f
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| b2f:b2f [2025/02/15 10:22] – [Message Header] f4hof | b2f:b2f [2025/03/09 17:46] (current) – [Secure Gateway Login] f4hof | ||
|---|---|---|---|
| Line 57: | Line 57: | ||
| The exchange happens after the SID has been transmitted. | The exchange happens after the SID has been transmitted. | ||
| - | The server sends a ''; | + | The server sends a ''; |
| - | < | + | < |
| The client computes the response using the following pseudocode: | The client computes the response using the following pseudocode: | ||
| <code c> | <code c> | ||
| - | // Trailing salt | + | S3CRYPT: |
| - | uint8_t sl_salt[] = { | + | rDi8K8JsOww7bCixErw4fCgcKBA8Oew6TDm8Kcw4YhNRdjAgwt |
| - | 77, 197, 101, 206, 190, 249, 93, 200, | + | VcK2w6MdwpNhwppnw4QbX0HDkSbCgHM8w5I0w78NCsOOwrnCuG |
| - | 51, 243, 93, 237, 71, 94, 239, 138, | + | zDq8O0w5oNw5lNw6DCscOHSAlwwowSwqvDlMKAKw7DrMKGAHsp |
| - | 68, 108, 70, 185, 225, 137, 217, 16, | + | BCwMd8KjXmjDrMO7RTUTXlRqSU3CvsK4T8K2XT/DsArClsKUwq |
| - | 51, 122, 193, 48, 194, 195, 198, 175, | + | bCvD4/ |
| - | 172, 169, 70, 84, 61, 62, 104, 186, | + | Yj1UwpRGwq5macOqwqFrfH0Dw5Fgw4bDoDzCp8KKR8Ouw7PDmD |
| - | | + | gFwpVbwovCqsOVeMOSGsKaUMOUwppHw63DhDdqCcKXNsKcTi1i |
| - | 187, 249, 232, 193, 41, 113, 41, 45, | + | DS4aCMOnw4Uew44BWwQ0wroUJcO7w4VqdMO1XcO7wqZYGMOAP8 |
| - | | + | KXwqdSwpprw4jClcKOFQPCkFQNwpt6bMKCw7TCisOTw7vDtcOc |
| - | }; | + | LMOzMyXDih5KZMKBw64zw4LChGzCtjPDrMO/ |
| + | Ncwq3Cm8KGw7bCj8Oaw53Do3nCs8O6bcKQwqDCvV7CgSXCusKX | ||
| + | wrLCgMK0ewnDpBLDrMKcCsKXb8Khw4TCrcOBA2DCnx0xLsKEMs | ||
| + | OZfMK9OMKRw7pDw4fDrn1BdWXDqkLChHRlwqrDrSbDi8O5K0HD | ||
| + | qBFQw5kCw4NdSRvDnAopU05gaEAHSBfCm8KYw5vCnMKxZTLCuz | ||
| + | 48wp0Owo0Zw6vCrsOuw5XCtsK2c8KzdcKwwq03w7TDt8KIw7Qh | ||
| + | w7nCusOUNMOaXlLCjAQ0aMOjw4nDpGpWwp5XAk5pwr/ | ||
| + | 7DjcOcw4jCplzCpsOkERPDskjCvnlFw7IJwqzCsBkGOg08wqzC | ||
| + | gMKXw4M4w6/ | ||
| + | 7Dq29AMR7DusOjFsOpw7sFwqnDsUnCgMO0eMKTwpXDtjjCicO+ | ||
| + | Q8KTLMOAwqrDjjEsw7vDmT1dKcOMCcKKw4wUwofDgcKkERBrw5 | ||
| + | ZNw4kUwqfDl8OdXWXDpsOGLMK6w57DgxPCqcKdw6jDnAfDqMOt | ||
| + | wogDRwLCo8O7JyLDssOaPVHCscKVAHjDq8KMMcOUa8KFwp3DgX | ||
| + | PCisKRw60QwpLCnMODYsKowqrCoDh4AsORLcKjcDBPJcOCKsOi | ||
| + | Amx9UMK9woLClsOMEMKvwqJKCz0iN1JvGjfDuxLChWkcTH3DjM | ||
| + | OowpkFw7fDkDjCiC/ | ||
| + | wq9/ | ||
| + | llwo3DtkvDpVk/ | ||
| + | DMO4wrBswrTCoG0ZwrrDv8KqwovCri0AMsKFw5lJIsOraARJwp | ||
| + | zDncKSS1DDhUpIwrULwp7CocOfMD3CmmPCjsOddsOTN2vDh8Ky | ||
| + | FcK+wqPCpkhQw5N9Fkl0wq/ | ||
| + | KEW00Tw7rCuMOzO8KsOkLCvsKiwp7CtcKhwqrCiMOiwpnDihIs | ||
| + | wrDDocKPw7PDmy3CosKSEDECw53CuUM5woHDg8O8NhdPwrHCv8 | ||
| + | OGwq1cBiN4wqbCgjtDb8OYLsOQw5PCr8KNI0jDgTlDbAw6e3/ | ||
| + | oMO6w751DcODwpI9wpINJzfCssOWw5TCmFUTBVnCoBcXclIawq | ||
| + | LCoMOzwoERPAvDnThSwoTDvSl2PU8NwojCpF3DuRjDmcK1w7zC | ||
| + | oXBjccKIwrHCiMKvD3HDlcOdY2Ygw67Co2nDo8KAwrzDkcKvwq | ||
| + | gdcUNjw6TDpMO/ | ||
| + | w4oywp7Dog8ZTcKcw5MMw6JYw4TDhMO5w6fDow9Bw6HCuVFYw6 | ||
| + | jDmUURJsK8PsKqUHLCo2rDsB/ | ||
| + | </ | ||
| - | // Concatenate | + | The result is then sent to the server using the following format: |
| - | payload = concat( challenge, password, sl_salt) | + | |
| - | // Compute the md5 of the last result | + | < |
| - | md5sum = md5(payload) | + | |
| - | // Take the first 4 bytes of the hash, flip the byte-wise endianness, and cap the first byte to 0x3f | + | ABNF Grammar: |
| - | response = ( (uint8_t)(md5sum[3]) & 0x3f ) << 24 | (uint8_t)(md5sum[2]) << 16 | (uint8_t)(md5sum[1]) << 8 | (uint8_t)(md5sum[0]) ) | + | |
| - | + | ||
| - | // Keep the 8 least significant digits in base 10 of response. | + | |
| - | // If response is shorter than 8 digits, 0-pad from the left. | + | |
| - | resval = itoa( response % 100000000, base10) | + | |
| - | sprintf( result, " | + | |
| + | <code abnf> | ||
| + | B2F_AUTH_CHALLENGE = %x3B %x50 %x51 %x3A SP 8DIGIT CR | ||
| + | B2F_AUTH_RESPONSE | ||
| </ | </ | ||
| - | The result is then sent to the server using the following format: | + | Reference source code in [[https:// |
| - | < | + | ==== Secure Gateway Login ==== |
| + | |||
| + | When a RMS connects to a CMS, the latter sends a login challenge with '' | ||
| + | |||
| + | The auth scheme works the same way the Secure login does. | ||
| + | |||
| + | The RMS answers with a triplet composed of the secure login response, the frequency the client is binding to (10 digit integer in Hertz), and the used mode. | ||
| ABNF Grammar: | ABNF Grammar: | ||
| <code abnf> | <code abnf> | ||
| - | B2F_AUTH_CHALLENGE | + | B2F_GW_AUTH_CHALLENGE |
| - | B2F_AUTH_RESPONSE | + | B2F_GW_AUTH_RESPONSE |
| </ | </ | ||
| - | Reference source code in [[https:// | ||
| ===== Data transfer ===== | ===== Data transfer ===== | ||
b2f/b2f.1739614951.txt.gz · Last modified: 2025/02/15 10:22 by f4hof
