Hi everyone,

Thank you for showing interest in discussing this bit of infrastructure.

My opinion is that it's valuable for black box pen testing and passing
audits. Note that most auditors (especially outside the PCI space) don't
have a fixed set of rules, guidelines or best practices. Even if they do
have internal policies and guidelines, they are usually not updated for
ages. What that means is that on the discretionary powers of an auditor,
users of Fineract can be dragged through a lot of arbitrary rules. It is
usual from an auditor perspective to think about :-

   - Request multiple layers of security. Additional encryption for "in
   transit" (ignoring that Fineract enforces HTTPS). Their concern can be what
   if HTTPS isn't always enforced - perhaps for communication between reverse
   proxy and application server or between API gateway and identity provider /
   application services.
   - Request sensible defaults for builds. ./gradlew clean war doesn't use
   OAuth or 2FA security profiles.
      - Regarding the general concern which Michael highlighted that "Web
      UI and App clients of the Authentication API to encrypt username and
      password will add significant complexity to such clients." - I agree but
      that is exactly what they want. Don't shoot the messenger. Perhaps we can
      explore if OAuth is implemented in all the client applications
and make it
      the default or encrypt the username/password combo with this key in a new
      security profile. The build property -Penv=dev flag which you introduced
      can continue with the unencrypted basicauth security profile.
   - In the absence of SSO, other services which communicate with Fineract
   (perhaps the Twilio service is an example) uses basicauth with a system
   user's credentials stored in plaintext at rest in a properties file.
   - While there are other threads and activities discussing which industry
   standards can be adopted to make an audit go smoother, this is a bare bones
   implementation of asymmetric encryption which can be used for fields or
   request bodies in any API call and not tied to authentication. In addition
   to the use case mentioned by Vishwas, let's consider a biometric based txn
   use case. An Aadhaar User Agency (AUA) expects the request body to be
   encrypted using their public key. For user experience purposes, we don't
   want to use the same public key to encrypt at source as we want to add some
   fields to the request body from the backend.  So the source / client
   applications use Fineract's biometric public key to encrypt which is then
   decrypted on platform side so that additional fields can be added to the
   request, encrypted using AUA public key and forwarded to AUA.
   - Digital signatures?
   - Setting password during user creation or first login or force password
   reset after time interval or change password APIs?


P.S. - This is separate from any discussion around symmetric encryption use
cases like encrypting PII, logs, variables stored in local storage
(browser, Android), third party public keys, using tomcat DBCP to avoid
cleartext DB username / password in server.xml and in Twilio service's
properties file, etc.

With best regards,
Avik.
ᐧ

On Mon, Jul 20, 2020 at 8:25 AM Vishwas Babu <[email protected]>
wrote:

> From reading a description of the issue in 1034 (have not looked into the
> PR), an example where this functionality could eventually help (and is
> distinct from our usage of HTTPS) would be in scenarios involving PCI
> compliance in server to server communications.
>
> Assume Org A  offers Fineract on a SaaS model. Further assume that Org A
> is PCI SAQ D compliant, which means that this organization may
> store/transmit personal details (Card number, CVV code, and expiry date)
> linked to cards.
>
> Assume Org B is a lending Fintech that builds on top of the API's offered
> by Org A and has use cases like pushing loan disbursals directly to
> external debit/credit cards (think of a country like the US where payment
> rails provided by card networks are faster/cheaper than account to account
> transfer alternatives like ACH or FedWire). To reduce compliance costs, Org
> B decides to opt for  PCI compliance level SAQ A, this means that Org B
> will not have any card personal data (in un-encrypted format) flow through
> their network (or be stored by their servers).
>
> If Org B wants to allow their clients to provide details of their external
> debit /credit cards (assume from a mobile device) , these details need to
> be encrypted from the Clients device, flow to Org B's backend, from where a
> request is made to Org A's API. Org A would then decrypt the card details,
> tokenize this card and pass an identifying token back to Org B's
> backend, which is then used for identifying this card for future
> transactions.
>
> Regards,
> Vishwas
>
> On Thu, 16 Jul 2020 at 09:58, Awasum Yannick <[email protected]> wrote:
>
>> Hi All,
>>
>> Is there anyone here with experience on how this PR can help Fineract?
>> https://github.com/apache/fineract/pull/1032
>>
>> This might be valuable work but I don't understand the use case and
>> am reaching out to you all to see if someone can help.
>>
>> I tried to review it but could not understand it adequately to
>> comfortably merge.
>>
>>
>> Here is the JIRA: https://issues.apache.org/jira/browse/FINERACT-1034
>>
>> Thanks.
>> Awasum
>>
>

-- 
Disclaimer:


Privileged & confidential information is contained in this 
message (including all attachments). If you are not an intended recipient 
of this message, please destroy this message immediately and kindly notify

the sender by reply e-mail. Any unauthorised use or dissemination of this 
message in any manner whatsoever, in whole or in part, is strictly 
prohibited. This e-mail, including all attachments hereto, (i) is for 
discussion purposes only and shall not be deemed or construed to be a 
professional opinion unless expressly stated otherwise, and (ii) is not 
intended, written or sent to be used, and cannot and shall not be used, for 
any unlawful purpose. This communication, including any attachments, may 
not be free of viruses, interceptions or interference, and may not be 
compatible with your systems. You should carry out your own virus checks 
before opening any attachment to this e-mail. The sender of this e-mail and 

*Fynarfin Tech Private Limited* shall not be liable for any damage that 
you may sustain as a result of viruses, incompleteness of this message, a 
delay in receipt of this message or computer problems experienced. 

Reply via email to