Передача пароля по сети
Смотрю на код (в собственном клиенте для FB) упаковки пароля в буфер, который будет отправлен на сервер:
m_dpb.AppendMbcString (isc_api::ibp_isc_dpb_password_enc, L"isc_dpb_password_enc", dpb_type::mbc_str_box_type(password_b,password_sz));
И думаю…
1. Пароль передается в «зашифрованном» виде.
2. В FB3 с его SRP, шифрование «поинтереснее».
3. Но пришлось libtommath затащить в код.
4. А в родном NetProvider для FB это «затаскивание» не асилили, поэтому SRP оно не поддерживает.
5. А интересно — «isc_dpb_password_enc» хотя бы используется?
6. Нет, не используется. Пароль передается как есть (через isc_dpb_password):
protected override void SendAttachToBuffer(DatabaseParameterBuffer dpb, string database) { XdrStream.Write(IscCodes.op_attach); XdrStream.Write(0); if (!string.IsNullOrEmpty(Password)) { dpb.Append(IscCodes.isc_dpb_password, Password); } dpb.Append(IscCodes.isc_dpb_utf8_filename, 0); XdrStream.WriteBuffer(Encoding.UTF8.GetBytes(database)); XdrStream.WriteBuffer(dpb.ToArray()); }
7. Забавно, забавно …