Senders y Receivers

Qué valores enviar en los headers de un mensaje

Senders y Receivers

Los mensajes de Shinkansen Core están protegidos por firmas digitales. Para evitar cualquier riesgo de un ataque por repetición (replay-attack), además del id del mensaje para idempotencia, también se incluyen en el header los siguientes campos:

  • sender: Identificador del emisor actual del mensaje.
  • receiver: Identificador del receptor inmediato del mensaje.

Nota que acá se trata del emisor o receptor inmediato del mensaje, no del receptor final ni del emisor original.

Por ejemplo si estás enviando un mensaje de payout, el receiver es SHINKANSEN y NO el banco desde donde se originará el pago. Acá el sender será el identificador que le corresponde a tu institución. O cuando recibes una respuesta de payouts, el sender será SHINKANSEN y no dicho banco (Y el receiver será el identificador tuyo).

👍

En la práctica:

  • Verás solo dos combinaciones de sender y receiver:
  • Cuando envías un mensaje, document.header.sender.fin_id será el id de tu organización y document.header.receiver.fin_id será SHINKANSEN.
  • Cuando recibes un mensaje, document.header.sender.fin_id será SHINKANSEN y document.header.receiver.fin_id será el id de tu organización.
  • El esquema usado para identificar (en campos document.header.sender.fin_id_schema y document.header.receiver.fin_id_schema es siempre SHINKANSEN)

🚨

Security tip Es clave que cuando recibes un mensaje, verifiques que el document.header.receiver.fin_id corresponda al id de tu institución. Caso contrario quedas vulnerables a replay-attacks en que se use un mensaje dirigido a otro participante de Shinkansen Core.