this post was submitted on 17 Nov 2023
27 points (81.4% liked)
Open Source
31111 readers
316 users here now
All about open source! Feel free to ask questions, and share news, and interesting stuff!
Useful Links
- Open Source Initiative
- Free Software Foundation
- Electronic Frontier Foundation
- Software Freedom Conservancy
- It's FOSS
- Android FOSS Apps Megathread
Rules
- Posts must be relevant to the open source ideology
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon from opensource.org, but we are not affiliated with them.
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
It wouldn't matter much.
Most of what a bank does isn't on your phone, but server side.
In fact most bank apps could be replaced with an internal web browser that is pointing at their website, and a password manager, with no loss in functionality or change in security.
And if you'd like to review the client side code the bank is using you can just open dev mode in your browser, right now.
OP raises a good point, though. Why isn't there a standard banking API that all banks could use, against which applications could be written?
People don't choose banks because of the bank's app. Banks are also pretty sticky. Having a standard would allow banks to save money on application development. I just don't see what the value-add of proprietary banking APIs are for them. It doesn't seem like much of a differentiator.
I think there's a sort of standard in the EU; why doesn't the US have one?
There are a bunch of APIs, actually. Plaid is a pretty popular one. The problem is getting the banks to implement them.
But people definitely choose banks because of their apps. For example, my bank doesn't have any physical branches in my area, so I do everything through the website or app. Remote check deposit through my phone camera, for example.
So, just so I understand: the app, not services, fees, rates, or other financial considerations was a significant factor in your choice of institutions?
May I ask what generation you fall into?
I started banking with them in 2011, I think, on recommendation from friends. I've continued to use them because of my satisfaction with the things you've mentioned as well as the services they make available through the site and app. (It's USAA, for reference).
I am a millenial.
Word of mouth is priceless.
I think it's interesting, and I wonder if it's a generational thing or if that'd be overgeneralizing. Or, you're so flush it doesn't matter to you. I'm Gen-X; while I can't speak for the rest of my generation, I was taught that, when it comes to entrusting me money with an institution, the most important things were the financial factors: fees, interest, loan services and terms, investment services.
Did you do any comparison shopping based on financial considerations? Or is ease of use the most important factor? Do you feel that all banks are basically the same?
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?
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.
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
What's the advantage for the bank?