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