cross-posted from: https://fost.hu/post/226135

Let’s say, I create a bank with the caveat that all of my banking phone apps and webapps are FOSS (or if they depend on non-free components — banks probably do to communicate with each other —, then just OSS). Am I going to be behind the competition by doing this?

If the most secure crypto algorithms are the ones that are public, can we ensure the security of a bank’s apps by publicizing it?

Are they not doing this because they secretly collect a lot of data (on top of your payment history because of the centralized nature of card payments) through these apps?

EDIT: Clarifying question: Is there a technical reason they don’t publicize their code or is it just purely corporate greed and nothing else?

  • nIi7WJVZwktT4Ze@fost.huOP
    link
    fedilink
    arrow-up
    3
    arrow-down
    5
    ·
    8 months ago

    Are there any downsides to opening up the server-side code too? Would it also compromise other banks’ security, since these banks need to interoperate?

    • Pfosten@feddit.de
      link
      fedilink
      arrow-up
      10
      ·
      8 months ago

      It would be unwise for a bank to publish its exact fraud detection and risk management policies, otherwise they could be easily circumvented. A lot of these policies will be embodied in their internal backend services.

      Someone will now inevitably mention “security by obscurity”. But Kerckhoff’s Principle is specifically about cryptosystems which should derive their security solely from the strength of the keys. That way, confidentiality is still ensured even when details about the cryptosystem become known to adversaries.

      But non-cryptographic aspects of security benefit from asymmetric knowledge, from grey areas, from increasing risk for adversaries.

    • OhNoMoreLemmy@lemmy.ml
      link
      fedilink
      arrow-up
      3
      ·
      8 months ago

      Yeah I thought you’d ask this. Basically they’ll never do this, just because their attitude is “fuck you I’m a bank”.

      Beyond this, there’s a big difference between source code and having a working system.

      For very long running systems their state depends very heavily on how they were maintained, little bits of informal design decisions that get components working together, and the order stuff was loaded in, and what other services were up and running when you booted up.

      None of this magic is captured by source code, and it can make even setting up a replacement server, even as part of the same infrastructure really hard.

      Of course banks are moving to more modern dev methods that encourages turnkey deployment, but the fact that they still rely on a bunch of COBOL code tells you there’s a lot of very old system running in “do not touch” mode