I’d also prefer a more standards-compliant solution that did not require the extra custom process of decrypting the data that is already sent over an encrypted channel.
--
You received this message because you are subscribed to the Google Groups "Developer Group - Beneficiary Claims Data API" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bc-api+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bc-api/0632d36f-75e1-4546-beae-b6573330f198%40googlegroups.com.
This incoming email was seamlessly encrypted by
Paubox
--
You received this message because you are subscribed to the Google Groups "Developer Group - Beneficiary Claims Data API" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
bc-api+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bc-api/64bf0090c96ebc321939bfcb1ae23574%40mail.gmail.com.
I second Dave’s preference.
--
Jack N Shoemaker / (336) 202-2165
From: bc-...@googlegroups.com <bc-...@googlegroups.com> On Behalf Of Dave DeCaprio
Sent: Tuesday, May 28, 2019 13:36
To: Justin Stauffer <jus...@epic.com>; Developer Group - Beneficiary Claims Data API <bc-...@googlegroups.com>
Subject: RE: [BCDA-API] Encryption of ndjson files goes against FHIR Bulk Data specification
I’d also prefer a more standards-compliant solution that did not require the extra custom process of decrypting the data that is already sent over an encrypted channel.
From: bc-...@googlegroups.com <bc-...@googlegroups.com> On Behalf Of Justin Stauffer
Sent: Tuesday, May 28, 2019 1:11 PM
To: Developer Group - Beneficiary Claims Data API <bc-...@googlegroups.com>
Subject: [BCDA-API] Encryption of ndjson files goes against FHIR Bulk Data specification
The FHIR Bulk Data Specification (https://github.com/HL7/bulk-data/blob/master/spec/export/index.md) does not call for the ndjson files returned to be encrypted (other than being exchanged over TLS). By adding this additional requirement, it makes it more difficult for clients implementing a standard-compliant solution because this means they now have to perform custom processes for the CMS Bulk FHIR server.
It should be the responsibility of the client to ensure the file contents are kept securely (just like they would be required to secure PHI obtained from any other web service) and that can be handled outside the scope of this API. That is, it should be an implementation decision -- for example, if those files need to be passed on to third parties behind the FHIR Bulk Data Client, then perhaps encryption is appropriate and that can be handled out of band. However, if the FHIR Bulk Data Client is already storing the retrieved data securely, then additional encryption / decryption is just a burden for no security gain.
--
You received this message because you are subscribed to the Google Groups "Developer Group - Beneficiary Claims Data API" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bc-api+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bc-api/0632d36f-75e1-4546-beae-b6573330f198%40googlegroups.com.
This incoming email was seamlessly encrypted by Paubox
--
You received this message because you are subscribed to the Google Groups "Developer Group - Beneficiary Claims Data API" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bc-api+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bc-api/64bf0090c96ebc321939bfcb1ae23574%40mail.gmail.com.
Hi Justin, Dave, Jack,Sincere thank yous for taking the time to share your experience using BCDA's sandbox environment. This is the sort of input from the community we're looking for to inform the future shape of the product, to better serve BCDA's consumers and, ultimately, Medicare beneficiaries.
To unsubscribe from this group and stop receiving emails from it, send an email to bc-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bc-api/0632d36f-75e1-4546-beae-b6573330f198%40googlegroups.com.
This incoming email was seamlessly encrypted by Paubox
--
You received this message because you are subscribed to the Google Groups "Developer Group - Beneficiary Claims Data API" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bc-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bc-api/64bf0090c96ebc321939bfcb1ae23574%40mail.gmail.com.
I’m wondering if there are ways to address these underlying concerns in different ways which might be more standards compliant.
For #1, it seems like the core goal is to make it so that an attacker needs to compromise multiple credentials in order to be able to compromise the account. If the attacker gets a hold of the client’s API key they would still need the private key in order to access the data, or vice versa. This of course makes sense and is the core principle behind the various different approaches to multi-factor authentication.
There are several ways to support multifactor authentication in a standards compliant way. I’ll briefly describe one approach. Instead of clients using long lived credentials to access the data APIs, you could use short lived tokens that are created by a separate authentication call. The authentication call could use one of several approaches to multifactor authentication. For example, it could return a token that is encrypted using the client’s public key. The client would then use their private key to decrypt the token and use it in the resulting data API call. The advantage of an approach like this is that it separates the implementation of authentication from the actual payload of the API. It also allows for more flexibility in how the authentication is handled over time without requiring changes to the data implementation.
For #2, I think there is a counterbalancing factor, which is that the likelihood of the data ending up in an unexpected location goes down if the client can use standard tools to process the data. If this endpoint is custom and works different than other FHIR endpoints, then the result is that custom code needs to be written to support this case. This custom code likely won’t have the same level of rigorous testing that a standards compliant implementation would go through. The more special exceptions and corner cases an implementation has, the bigger it’s attack surface. Having a smaller number of cases to test means that each one can be tested more fully.
As a concrete example, imagine that a client gets the encrypted file, saves it somewhere, runs the python script to convert it to a decrypted file, and then imports that into a standard FHIR database. Then imagine the alternative case where the payload is not encrypted. In this case the client gets the data and can immediately pipe it over to their FHIR database without any need for intermediate storage. Note that these scenarios, which I think are very realistic use cases, the encrypted payload actually ends up with MORE potential for exploitation than the standards-compliant version, as the decryption process puts a copy on the temporary local file system, which might not be adequately secured. Of course, you can create use cases where the opposite is true, but the point here is to lean towards the standards-based implementation unless there is a clear advantage to a different approach.
Overall I’m very excited about this project and happy to see the team be so responsive.
Thanks,
Dave
To unsubscribe from this group and stop receiving emails from it, send an email to bc-api+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bc-api/6ae58359-e47e-4ffe-b10a-78d9e513003a%40googlegroups.com.
Instead of clients using long lived credentials to access the data APIs, you could use short lived tokens that are created by a separate authentication call.
It's worth noting that the implementation described in the Authorization Guide provides mitigations for this threat, however, the shape that auth/n/z will take in BCDA long-term is still to be determined.
To view this discussion on the web visit https://groups.google.com/d/msgid/bc-api/6ae58359-e47e-4ffe-b10a-78d9e513003a%40googlegroups.com.
Dear Isaac,
But surely, we will want BCDA to adhere to the standard and will disfavor different solutions because, well, they aren’t standard.
To unsubscribe from this group and stop receiving emails from it, send an email to
bc-api+un...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/bc-api/b2161156-35c8-459b-a5d2-f9e5a05f7ecc%40googlegroups.com.
Verified secure by
Paubox Inbound Security - HITRUST CSF Certified
Hello Isaac, Jack, Dave, and Justin:
I want to reiterate Ryan's note: Thank you again for calling attention to the ways that BCDA's encryption decisions deviate from the FHIR spec.
This type of discussion is precisely why we created the group -- it acts as a community-based forcing function. Based on the great points you all have made, we are going to be working with our CMS partners to evaluate further. We look forward to bringing the fruits of these discussions to you, the Google Group community, as well as other FHIR communities, and iterate further.
Thank you again.
To view this discussion on the web visit https://groups.google.com/d/msgid/bc-api/BN6PR01MB26581EAFE5C24CE6337F85FEA6100%40BN6PR01MB2658.prod.exchangelabs.com.