Skip to content

Implementation of ACRA Server in Transparent Proxy Mode #728

@carevalogh

Description

@carevalogh

Good afternoon, I’m trying to implement ACRA Server in transparent proxy mode, since I cannot modify our application, and I haven’t had good results.

I installed ACRA Server and I’m starting it with the following command:

acra-server --client_id=testclient --mysql_enable=true --db_host=192.168.1.9 --db_port=3306 --incoming_connection_string="tcp://0.0.0.0:9393/" --keys_dir=.acrakeys -d -v --log_to_console=true --encryptor_config_file=./configs/encryptor-config.yaml

The file encryptor-config.yaml has the following content:

database_settings:
  mysql:
    case_sensitive_table_identifiers: true
  defaults:
    crypto_envelope: acrablock
schemas:
  - table: demo
    columns:
      - id
      - secret_data
    encrypted:
      - column: secret_data
        searchable: true
        data_type: str

When I connect to MySQL via ACRA Server, it works perfectly, but if I insert a record into the demo table, the column I configured for encryption (secret_data) does nothing.

This is the output from ACRA Server:

time="2025-06-16T21:42:09Z" level=debug msg="New packet" client_id=testclient deprecate_eof=true proxy=client sequence_number=0 session_id=3
time="2025-06-16T21:42:09Z" level=debug msg="ignoring error of non parsed sql statement" error="syntax error: unexpected LEX_ERROR at position 2 near '\x00'"
time="2025-06-16T21:42:09Z" level=debug msg="ignoring error of non parsed sql statement" error="syntax error: unexpected LEX_ERROR at position 2 near '\x00'"
time="2025-06-16T21:42:09Z" level=debug msg="Query command" client_id=testclient command=3 deprecate_eof=true proxy=client sequence_number=0 session_id=3 sql="\x00\x01SELECT @@session.transaction_read_only"
time="2025-06-16T21:42:09Z" level=debug msg="ignoring error of non parsed sql statement" error="syntax error: unexpected LEX_ERROR at position 2 near '\x00'"
time="2025-06-16T21:42:09Z" level=debug msg=HashQuery.OnQuery
time="2025-06-16T21:42:09Z" level=debug msg="ignoring error of non parsed sql statement" error="syntax error: unexpected LEX_ERROR at position 2 near '\x00'"
time="2025-06-16T21:42:09Z" level=debug msg="Unsupported search query"
time="2025-06-16T21:42:09Z" level=debug msg=PreparedStatementsQuery.OnQuery
time="2025-06-16T21:42:09Z" level=debug msg="ignoring error of non parsed sql statement" error="syntax error: unexpected LEX_ERROR at position 2 near '\x00'"
time="2025-06-16T21:42:09Z" level=debug msg="ignoring error of non parsed sql statement" error="syntax error: unexpected LEX_ERROR at position 2 near '\x00'"
time="2025-06-16T21:42:09Z" level=debug msg="New packet from db to client" client_id=testclient sequence_number=1 session_id=3
time="2025-06-16T21:42:09Z" level=debug msg="Read column descriptions" client_id=testclient session_id=3
time="2025-06-16T21:42:09Z" level=debug msg="Read column description" client_id=testclient column_index=0 session_id=3
time="2025-06-16T21:42:09Z" level=debug msg="Parse field" client_id=testclient column_index=0 session_id=3
time="2025-06-16T21:42:09Z" level=debug msg="Read data rows" client_id=testclient session_id=3
time="2025-06-16T21:42:09Z" level=debug msg="Read data row" client_id=testclient data_row_index=0 session_id=3
time="2025-06-16T21:42:09Z" level=debug msg="Process data text row" client_id=testclient data_row_index=0 session_id=3
time="2025-06-16T21:42:09Z" level=debug msg="Process data rows in text protocol" client_id=testclient session_id=3
time="2025-06-16T21:42:09Z" level=debug msg="Unknown hash function"
time="2025-06-16T21:42:09Z" level=debug msg="OnColumn: Try to decrypt SerializedContainer"
time="2025-06-16T21:42:09Z" level=debug msg="OnColumn: Try to decrypt AcraBlock"
time="2025-06-16T21:42:09Z" level=debug msg="Unknown hash function"
time="2025-06-16T21:42:09Z" level=debug msg="Encode text" client_id=testclient column="" decrypted=false session_id=3
time="2025-06-16T21:42:09Z" level=debug msg="Finish processing text data row" client_id=testclient session_id=3
time="2025-06-16T21:42:09Z" level=debug msg="Update row data" client_id=testclient data_row_index=0 newLength=2 oldLength=2 session_id=3
time="2025-06-16T21:42:09Z" level=debug msg="Read data row" client_id=testclient data_row_index=1 session_id=3
time="2025-06-16T21:42:09Z" level=debug msg="Empty result set" client_id=testclient data_row_index=1 session_id=3
time="2025-06-16T21:42:09Z" level=debug msg="Proxy output" client_id=testclient session_id=3
time="2025-06-16T21:42:09Z" level=debug msg="Query handler finish" client_id=testclient session_id=3
time="2025-06-16T21:42:09Z" level=debug msg="New packet" client_id=testclient deprecate_eof=true proxy=client sequence_number=0 session_id=3
time="2025-06-16T21:42:09Z" level=debug msg="ignoring error of non parsed sql statement" error="syntax error: unexpected LEX_ERROR at position 2 near '\x00'"
time="2025-06-16T21:42:09Z" level=debug msg="ignoring error of non parsed sql statement" error="syntax error: unexpected LEX_ERROR at position 2 near '\x00'"
time="2025-06-16T21:42:09Z" level=debug msg="Query command" client_id=testclient command=3 deprecate_eof=true proxy=client sequence_number=0 session_id=3 sql="\x00\x01/* ApplicationName=DBeaver 25.0.4 - SQLEditor <Script-47.sql> */ insert into demo (secret_data) values ('carlos')"
time="2025-06-16T21:42:09Z" level=debug msg="ignoring error of non parsed sql statement" error="syntax error: unexpected LEX_ERROR at position 2 near '\x00'"
time="2025-06-16T21:42:09Z" level=debug msg=HashQuery.OnQuery
time="2025-06-16T21:42:09Z" level=debug msg="ignoring error of non parsed sql statement" error="syntax error: unexpected LEX_ERROR at position 2 near '\x00'"
time="2025-06-16T21:42:09Z" level=debug msg="Unsupported search query"
time="2025-06-16T21:42:09Z" level=debug msg=PreparedStatementsQuery.OnQuery
time="2025-06-16T21:42:09Z" level=debug msg="ignoring error of non parsed sql statement" error="syntax error: unexpected LEX_ERROR at position 2 near '\x00'"
time="2025-06-16T21:42:09Z" level=debug msg="ignoring error of non parsed sql statement" error="syntax error: unexpected LEX_ERROR at position 2 near '\x00'"
time="2025-06-16T21:42:09Z" level=debug msg="New packet from db to client" client_id=testclient sequence_number=1 session_id=3
time="2025-06-16T21:42:09Z" level=debug msg="Proxy output" client_id=testclient session_id=3
time="2025-06-16T21:42:09Z" level=debug msg="Query handler finish" client_id=testclient session_id=3 

Please, I need help to understand what I’m doing wrong.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions