Skip to content

Unsigned API responses #3396

@cthulhu-rider

Description

@cthulhu-rider

Is your feature request related to a problem? Please describe.

each NeoFS response has https://github.com/nspcc-dev/neofs-api/blob/797e8303ff7a8b7fb55af57d0f10489140f8053c/container/service.proto#L140 field. It carries crypto signatures of the response payload and meta header. If the response message route consists of several API servers, each one adds its own signature

the purpose of this approach is:

  1. signature ensures response data integrity
  2. public key authenticates the server
  3. client can track the request route

but:

  • extra CPU, RAM and net capacity are spent on calculating and sending signature
  • it does not protect from replay and other attacks
  • the route is visible but not verifiable. And even if it were so, hardly anyone would be interested in it
  • the listed advantages are implemented by protocols of other network levels (TLS)

based on these facts, NeoFS API protocol can be simplified by eliminating all response verification headers

Describe the solution you'd like

  1. deprecate the field in all response messages
  2. keep signing responses for client requests with meta_header.version <= v2.17
  3. wait one release/update cycle, then prohibit the field and never sign responses

Describe alternatives you've considered

no

Additional context

Metadata

Metadata

Assignees

No one assigned

    Labels

    I3Minimal impactS1Highly significantU3RegularenhancementImproving existing functionality

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions