SlideShare a Scribd company logo
1 of 23
FHIR® is the registered trademark of HL7 and is used with the permission of HL7. The Flame Design mark is the registered trademark of HL7 and is used with the permission of HL7.
Amsterdam, 15-17 November | @fhir_furore | #fhirdevdays17 | www.fhirdevdays.com
Overview over security in FHIR & Security Labels
Grahame Grieve, Health Intersections
Security Problem Space
• Basic Web Security
• Authentication / Authorization / Access Control
• Digital Signatures
• Audit Trail / Provenance tracking
• Security Labels
• An insecure system is an unsafe system
Basic Web Security
• Use a time synchronization protocol
• Use SSL / TLS (almost always)
• Keep your security libraries up to date
• Use CORS correctly (hard)
• No Buffer overflows, XSS, etc
• Narrative Handling
• Recommended: https://www.troyhunt.com/
Content Issues
• Base Content Rules:
• No DTD references
• No Active Content in XHTML
• XML: Ignore Processing Instructions
• XHTML:
• White list external references
• Don’t leak headers processing external references (images, css, etc)
• Check media types of attachments
AuthZ
• Authentication: Who is the user? (and their agent?)
• Authorization: What does the user allow in this context?
• Access Control: Is this request allowed, given
• The data in the request
• The user’s rights
• The user’s authorization
• The rules on the underlying data
Access Control Engine
OAuth
• Delegating Authorization
• Implicit: Delegating Authentication
• openID Connect: Make this explicit
• Two layer OAuth (demonstration)
• Smart App Launch (http://hl7.org/fhir/smart-app-launch)
• A profile on OAuth + openID Connect
• Should always use this wherever possible for interoperability
Two Layer OAuth
• Must be possible to map from identity on health records server to
Identity server information (this can be established lots of ways)
• Best identity server is a national identity server
OAuth Client Server (AS/RS) Resources
User Application Health Records Server What healthcare records
should this application get
access to
Health Records Server Identity Server Identification information
about the patient
OAuth
• Delegating Authorization
• Implicit: Delegating Authentication
• openID Connect: Make this explicit
• Two layer OAuth (demonstration)
• Smart App Launch (http://hl7.org/fhir/smart-app-launch)
• A profile on OAuth + openID Connect
• Should always use this wherever possible for interoperability
Smart App Launch
• Confidential Client (can keep a secret) – server / secure enclave
• Public Client
• Backend services
• Not much supported, and not part of STU standard
Smart App Launch Scopes
• [class]/[type].[mode]
• Class = patient | user | system
• Type = * or a FHIR resource type
• Mode = * | read | write
• Examples: patient/*.read user/*.* system/Communication.write
• Also: openid profile launch offline_access online_access
Smart App Launch
Alternative Approach
• Instead of Smart Scopes, scopes are URIs that identify Consent
resource
• Application identifies the consent resource it wants to work under
• User chooses which consent resource to proceed under
• Server replies with the consent resource that the user chose
• Makes decisions obscure to the interface, but…
• Possibly going to be tested in January connectathon
Access Control
• The Smart OAuth scopes interact with access control
• Access Control Engine engine:
• What scopes can a user allow?
• What operations/data does a user have rights for?
• What scopes has the user allowed in this context?
• What other Consents are applicable in this context? (+ jurisdictional rules)
• FHIR does not standardise the access control layer
• Should we?
• SCIM for user management – what’s the mapping between users and roles?
AuditEvent and Provenance
AuditEvent
• Record of an event
• Login/logout
• RESTful API transaction
• Higher level event (RWE)
• Typically Create (no
update/delete)
• Consider signing the audit trail
(blockchain?)
• Provenance
• Information about source of data
• Applies to a set of resources
• W5: Who What When Where Why
• This information is denormalised
into resources variably
• Can provide it in an HTTP header
• Can populate the AuditEvent
Digital Signatures
• Formal Support:
• Signature Data type
• Provenance.signature
• Bundle.signature
Signature Data Type
Using the Signature Data Type
• Provenance
• Detached Signature
• Provenance.target : Reference(Any) 1..*
• Provenance.signature: a signature across all the resources
• Canonicalization across multiple resources not specified
• Bundle
• Enveloped Signature
• Bundle.signature signs content
• http://hl7.org/fhir/xml.html#digsig and
http://hl7.org/fhir/json.html#canonical
Challenges with digital signatures
• Signatures on static content (“documents”) are well understood
• Signatures on a RESTful interface are not
• Changing contents on interface engines
• Signing packages of resources that can be re-identified
Security Labels
• Some resources need special handling
• VIP patients
• Confidential records
• Restricted use data (i.e. released for research, not for treatment)
• Sometimes this is implicit in context, or the content of the resource
• Mostly useful to make this explicit on the resource (denormalization)
Using Labels
• Text to add to slide
• Indent item
• Another item
Core Labels
• Purpose of Use
• Treatment, research, legal, claims… etc
• Confidentiality Codes
• Unrestricted  normal  restricted  very restricted
• Delete after use / No Reuse
• All applications are required to know what these labels mean and
observe/obey them if relevant
• There are 500+ total labels, and growing….
Summary
• Security is hard
• Requires clear thinking
• Ongoing development around Authorization and Consent
• Questions…

More Related Content

What's hot

Dev days 2017 advanced directories (brian postlethwaite)
Dev days 2017 advanced directories (brian postlethwaite)Dev days 2017 advanced directories (brian postlethwaite)
Dev days 2017 advanced directories (brian postlethwaite)DevDays
 
Furore devdays 2017 - workflow
Furore devdays 2017 - workflowFurore devdays 2017 - workflow
Furore devdays 2017 - workflowDevDays
 
Furore devdays 2017-sdc (lloyd)
Furore devdays 2017-sdc (lloyd)Furore devdays 2017-sdc (lloyd)
Furore devdays 2017-sdc (lloyd)DevDays
 
final Keynote (grahame)
final Keynote (grahame)final Keynote (grahame)
final Keynote (grahame)DevDays
 
Furore devdays 2017- profiling academy - profiling guidelines v1
Furore devdays 2017- profiling academy - profiling guidelines v1Furore devdays 2017- profiling academy - profiling guidelines v1
Furore devdays 2017- profiling academy - profiling guidelines v1DevDays
 
Integrating with the epic platform fhir dev days 17
Integrating with the epic platform fhir dev days 17Integrating with the epic platform fhir dev days 17
Integrating with the epic platform fhir dev days 17DevDays
 
Furore devdays 2017- rdf2(solbrig)
Furore devdays 2017- rdf2(solbrig)Furore devdays 2017- rdf2(solbrig)
Furore devdays 2017- rdf2(solbrig)DevDays
 
Whats new (grahame)
Whats new (grahame)Whats new (grahame)
Whats new (grahame)DevDays
 
Profiling with clin fhir
Profiling with clin fhirProfiling with clin fhir
Profiling with clin fhirDevDays
 
Furore devdays2017 tdd-1-intro
Furore devdays2017 tdd-1-introFurore devdays2017 tdd-1-intro
Furore devdays2017 tdd-1-introDevDays
 
2017 11-ccda-on-fhir
2017 11-ccda-on-fhir2017 11-ccda-on-fhir
2017 11-ccda-on-fhirDevDays
 
Dev days 2017 questionnaires (brian postlethwaite)
Dev days 2017 questionnaires (brian postlethwaite)Dev days 2017 questionnaires (brian postlethwaite)
Dev days 2017 questionnaires (brian postlethwaite)DevDays
 
20171116 rene spronk_profiling_governance
20171116 rene spronk_profiling_governance20171116 rene spronk_profiling_governance
20171116 rene spronk_profiling_governanceDevDays
 
Furore devdays 2017- continua implementing fhir
Furore devdays 2017- continua implementing fhirFurore devdays 2017- continua implementing fhir
Furore devdays 2017- continua implementing fhirDevDays
 
Discover the new face of HL7 FHIR v4 - Ideas2IT
Discover the new face of  HL7 FHIR v4 - Ideas2ITDiscover the new face of  HL7 FHIR v4 - Ideas2IT
Discover the new face of HL7 FHIR v4 - Ideas2ITIdeas2IT Technologies
 
Building a Scenario using clinFHIR
Building a Scenario using clinFHIRBuilding a Scenario using clinFHIR
Building a Scenario using clinFHIRDevDays
 
Furore devdays 2017 - implementation guides (lloyd)
Furore devdays 2017 - implementation guides (lloyd)Furore devdays 2017 - implementation guides (lloyd)
Furore devdays 2017 - implementation guides (lloyd)DevDays
 
Fhir dev days 2017 fhir profiling - overview and introduction v07
Fhir dev days 2017   fhir profiling - overview and introduction v07Fhir dev days 2017   fhir profiling - overview and introduction v07
Fhir dev days 2017 fhir profiling - overview and introduction v07DevDays
 
Fhir dev days_basic_fhir_terminology_services
Fhir dev days_basic_fhir_terminology_servicesFhir dev days_basic_fhir_terminology_services
Fhir dev days_basic_fhir_terminology_servicesDevDays
 
Transforming other content (grahame)
Transforming other content (grahame)Transforming other content (grahame)
Transforming other content (grahame)DevDays
 

What's hot (20)

Dev days 2017 advanced directories (brian postlethwaite)
Dev days 2017 advanced directories (brian postlethwaite)Dev days 2017 advanced directories (brian postlethwaite)
Dev days 2017 advanced directories (brian postlethwaite)
 
Furore devdays 2017 - workflow
Furore devdays 2017 - workflowFurore devdays 2017 - workflow
Furore devdays 2017 - workflow
 
Furore devdays 2017-sdc (lloyd)
Furore devdays 2017-sdc (lloyd)Furore devdays 2017-sdc (lloyd)
Furore devdays 2017-sdc (lloyd)
 
final Keynote (grahame)
final Keynote (grahame)final Keynote (grahame)
final Keynote (grahame)
 
Furore devdays 2017- profiling academy - profiling guidelines v1
Furore devdays 2017- profiling academy - profiling guidelines v1Furore devdays 2017- profiling academy - profiling guidelines v1
Furore devdays 2017- profiling academy - profiling guidelines v1
 
Integrating with the epic platform fhir dev days 17
Integrating with the epic platform fhir dev days 17Integrating with the epic platform fhir dev days 17
Integrating with the epic platform fhir dev days 17
 
Furore devdays 2017- rdf2(solbrig)
Furore devdays 2017- rdf2(solbrig)Furore devdays 2017- rdf2(solbrig)
Furore devdays 2017- rdf2(solbrig)
 
Whats new (grahame)
Whats new (grahame)Whats new (grahame)
Whats new (grahame)
 
Profiling with clin fhir
Profiling with clin fhirProfiling with clin fhir
Profiling with clin fhir
 
Furore devdays2017 tdd-1-intro
Furore devdays2017 tdd-1-introFurore devdays2017 tdd-1-intro
Furore devdays2017 tdd-1-intro
 
2017 11-ccda-on-fhir
2017 11-ccda-on-fhir2017 11-ccda-on-fhir
2017 11-ccda-on-fhir
 
Dev days 2017 questionnaires (brian postlethwaite)
Dev days 2017 questionnaires (brian postlethwaite)Dev days 2017 questionnaires (brian postlethwaite)
Dev days 2017 questionnaires (brian postlethwaite)
 
20171116 rene spronk_profiling_governance
20171116 rene spronk_profiling_governance20171116 rene spronk_profiling_governance
20171116 rene spronk_profiling_governance
 
Furore devdays 2017- continua implementing fhir
Furore devdays 2017- continua implementing fhirFurore devdays 2017- continua implementing fhir
Furore devdays 2017- continua implementing fhir
 
Discover the new face of HL7 FHIR v4 - Ideas2IT
Discover the new face of  HL7 FHIR v4 - Ideas2ITDiscover the new face of  HL7 FHIR v4 - Ideas2IT
Discover the new face of HL7 FHIR v4 - Ideas2IT
 
Building a Scenario using clinFHIR
Building a Scenario using clinFHIRBuilding a Scenario using clinFHIR
Building a Scenario using clinFHIR
 
Furore devdays 2017 - implementation guides (lloyd)
Furore devdays 2017 - implementation guides (lloyd)Furore devdays 2017 - implementation guides (lloyd)
Furore devdays 2017 - implementation guides (lloyd)
 
Fhir dev days 2017 fhir profiling - overview and introduction v07
Fhir dev days 2017   fhir profiling - overview and introduction v07Fhir dev days 2017   fhir profiling - overview and introduction v07
Fhir dev days 2017 fhir profiling - overview and introduction v07
 
Fhir dev days_basic_fhir_terminology_services
Fhir dev days_basic_fhir_terminology_servicesFhir dev days_basic_fhir_terminology_services
Fhir dev days_basic_fhir_terminology_services
 
Transforming other content (grahame)
Transforming other content (grahame)Transforming other content (grahame)
Transforming other content (grahame)
 

Similar to Securing FHIR with OAuth, digital signatures and security labels

APIsecure 2023 - FHIR API Security, Grahame Grieve (Health Intersections)
APIsecure 2023 - FHIR API Security, Grahame Grieve (Health Intersections)APIsecure 2023 - FHIR API Security, Grahame Grieve (Health Intersections)
APIsecure 2023 - FHIR API Security, Grahame Grieve (Health Intersections)apidays
 
Introduction to Web Application Security Principles
Introduction to Web Application Security Principles Introduction to Web Application Security Principles
Introduction to Web Application Security Principles Dr. P. Mohana Priya
 
Cm2 secure code_training_1day_data_protection
Cm2 secure code_training_1day_data_protectionCm2 secure code_training_1day_data_protection
Cm2 secure code_training_1day_data_protectiondcervigni
 
Building open source identity infrastructures
Building open source identity infrastructuresBuilding open source identity infrastructures
Building open source identity infrastructuresFrancesco Chicchiriccò
 
Securing .NET Core, ASP.NET Core applications
Securing .NET Core, ASP.NET Core applicationsSecuring .NET Core, ASP.NET Core applications
Securing .NET Core, ASP.NET Core applicationsNETUserGroupBern
 
Big Data Warehousing Meetup: Securing the Hadoop Ecosystem by Cloudera
Big Data Warehousing Meetup: Securing the Hadoop Ecosystem by ClouderaBig Data Warehousing Meetup: Securing the Hadoop Ecosystem by Cloudera
Big Data Warehousing Meetup: Securing the Hadoop Ecosystem by ClouderaCaserta
 
apidays LIVE Australia 2021 - Levelling up database security by thinking in A...
apidays LIVE Australia 2021 - Levelling up database security by thinking in A...apidays LIVE Australia 2021 - Levelling up database security by thinking in A...
apidays LIVE Australia 2021 - Levelling up database security by thinking in A...apidays
 
OWASP Top 10 Web Vulnerabilities from DCC 04/14
OWASP Top 10 Web Vulnerabilities from DCC 04/14OWASP Top 10 Web Vulnerabilities from DCC 04/14
OWASP Top 10 Web Vulnerabilities from DCC 04/14Chris Holwerda
 
Lesson 6 web based attacks
Lesson 6 web based attacksLesson 6 web based attacks
Lesson 6 web based attacksFrank Victory
 
Public Digital Identity as a Service
Public Digital Identity as a ServicePublic Digital Identity as a Service
Public Digital Identity as a ServicePT Datacomm Diangraha
 
CNIT 121: 3 Pre-Incident Preparation
CNIT 121: 3 Pre-Incident PreparationCNIT 121: 3 Pre-Incident Preparation
CNIT 121: 3 Pre-Incident PreparationSam Bowne
 
Open Secrets of the Defense Industry: Building Your Own Intelligence Program ...
Open Secrets of the Defense Industry: Building Your Own Intelligence Program ...Open Secrets of the Defense Industry: Building Your Own Intelligence Program ...
Open Secrets of the Defense Industry: Building Your Own Intelligence Program ...Sean Whalen
 
Shifting security left simplifying security for k8s open shift environments
Shifting security left simplifying security for k8s open shift environmentsShifting security left simplifying security for k8s open shift environments
Shifting security left simplifying security for k8s open shift environmentsLibbySchulze
 
Ledingkart Meetup #3: Security Basics for Developers
Ledingkart Meetup #3: Security Basics for DevelopersLedingkart Meetup #3: Security Basics for Developers
Ledingkart Meetup #3: Security Basics for DevelopersMukesh Singh
 
OpenId Connect Protocol
OpenId Connect ProtocolOpenId Connect Protocol
OpenId Connect ProtocolMichael Furman
 
UserCentric Identity based Service Invocation
UserCentric Identity based Service InvocationUserCentric Identity based Service Invocation
UserCentric Identity based Service Invocationguestd5dde6
 
Track 5 session 2 - st dev con 2016 - security iot best practices
Track 5   session 2 - st dev con 2016 - security iot best practicesTrack 5   session 2 - st dev con 2016 - security iot best practices
Track 5 session 2 - st dev con 2016 - security iot best practicesST_World
 
Globus Auth: A Research Identity and Access Management Platform
Globus Auth: A Research Identity and Access Management PlatformGlobus Auth: A Research Identity and Access Management Platform
Globus Auth: A Research Identity and Access Management PlatformIan Foster
 

Similar to Securing FHIR with OAuth, digital signatures and security labels (20)

APIsecure 2023 - FHIR API Security, Grahame Grieve (Health Intersections)
APIsecure 2023 - FHIR API Security, Grahame Grieve (Health Intersections)APIsecure 2023 - FHIR API Security, Grahame Grieve (Health Intersections)
APIsecure 2023 - FHIR API Security, Grahame Grieve (Health Intersections)
 
Introduction to Web Application Security Principles
Introduction to Web Application Security Principles Introduction to Web Application Security Principles
Introduction to Web Application Security Principles
 
Cm2 secure code_training_1day_data_protection
Cm2 secure code_training_1day_data_protectionCm2 secure code_training_1day_data_protection
Cm2 secure code_training_1day_data_protection
 
Building open source identity infrastructures
Building open source identity infrastructuresBuilding open source identity infrastructures
Building open source identity infrastructures
 
Securing .NET Core, ASP.NET Core applications
Securing .NET Core, ASP.NET Core applicationsSecuring .NET Core, ASP.NET Core applications
Securing .NET Core, ASP.NET Core applications
 
Vault 101
Vault 101Vault 101
Vault 101
 
Spa Secure Coding Guide
Spa Secure Coding GuideSpa Secure Coding Guide
Spa Secure Coding Guide
 
Big Data Warehousing Meetup: Securing the Hadoop Ecosystem by Cloudera
Big Data Warehousing Meetup: Securing the Hadoop Ecosystem by ClouderaBig Data Warehousing Meetup: Securing the Hadoop Ecosystem by Cloudera
Big Data Warehousing Meetup: Securing the Hadoop Ecosystem by Cloudera
 
apidays LIVE Australia 2021 - Levelling up database security by thinking in A...
apidays LIVE Australia 2021 - Levelling up database security by thinking in A...apidays LIVE Australia 2021 - Levelling up database security by thinking in A...
apidays LIVE Australia 2021 - Levelling up database security by thinking in A...
 
OWASP Top 10 Web Vulnerabilities from DCC 04/14
OWASP Top 10 Web Vulnerabilities from DCC 04/14OWASP Top 10 Web Vulnerabilities from DCC 04/14
OWASP Top 10 Web Vulnerabilities from DCC 04/14
 
Lesson 6 web based attacks
Lesson 6 web based attacksLesson 6 web based attacks
Lesson 6 web based attacks
 
Public Digital Identity as a Service
Public Digital Identity as a ServicePublic Digital Identity as a Service
Public Digital Identity as a Service
 
CNIT 121: 3 Pre-Incident Preparation
CNIT 121: 3 Pre-Incident PreparationCNIT 121: 3 Pre-Incident Preparation
CNIT 121: 3 Pre-Incident Preparation
 
Open Secrets of the Defense Industry: Building Your Own Intelligence Program ...
Open Secrets of the Defense Industry: Building Your Own Intelligence Program ...Open Secrets of the Defense Industry: Building Your Own Intelligence Program ...
Open Secrets of the Defense Industry: Building Your Own Intelligence Program ...
 
Shifting security left simplifying security for k8s open shift environments
Shifting security left simplifying security for k8s open shift environmentsShifting security left simplifying security for k8s open shift environments
Shifting security left simplifying security for k8s open shift environments
 
Ledingkart Meetup #3: Security Basics for Developers
Ledingkart Meetup #3: Security Basics for DevelopersLedingkart Meetup #3: Security Basics for Developers
Ledingkart Meetup #3: Security Basics for Developers
 
OpenId Connect Protocol
OpenId Connect ProtocolOpenId Connect Protocol
OpenId Connect Protocol
 
UserCentric Identity based Service Invocation
UserCentric Identity based Service InvocationUserCentric Identity based Service Invocation
UserCentric Identity based Service Invocation
 
Track 5 session 2 - st dev con 2016 - security iot best practices
Track 5   session 2 - st dev con 2016 - security iot best practicesTrack 5   session 2 - st dev con 2016 - security iot best practices
Track 5 session 2 - st dev con 2016 - security iot best practices
 
Globus Auth: A Research Identity and Access Management Platform
Globus Auth: A Research Identity and Access Management PlatformGlobus Auth: A Research Identity and Access Management Platform
Globus Auth: A Research Identity and Access Management Platform
 

More from DevDays

Consent dev days
Consent dev daysConsent dev days
Consent dev daysDevDays
 
Mohannad hussain dicom and imaging tools
Mohannad hussain   dicom and imaging toolsMohannad hussain   dicom and imaging tools
Mohannad hussain dicom and imaging toolsDevDays
 
Mohannad hussain community track - siim dataset & dico mweb proxy
Mohannad hussain   community track - siim dataset & dico mweb proxyMohannad hussain   community track - siim dataset & dico mweb proxy
Mohannad hussain community track - siim dataset & dico mweb proxyDevDays
 
Validation in net and java (ewout james)
Validation in net and java (ewout james)Validation in net and java (ewout james)
Validation in net and java (ewout james)DevDays
 
Structure definition 101 (ewout)
Structure definition 101 (ewout)Structure definition 101 (ewout)
Structure definition 101 (ewout)DevDays
 
Quality improvement dev days-2017
Quality improvement dev days-2017Quality improvement dev days-2017
Quality improvement dev days-2017DevDays
 
Furore devdays 2017- rdf1(solbrig)
Furore devdays 2017- rdf1(solbrig)Furore devdays 2017- rdf1(solbrig)
Furore devdays 2017- rdf1(solbrig)DevDays
 
Furore devdays 2017- oai
Furore devdays 2017- oaiFurore devdays 2017- oai
Furore devdays 2017- oaiDevDays
 
Connectathon opening 2017
Connectathon opening 2017Connectathon opening 2017
Connectathon opening 2017DevDays
 
20171127 rene spronk_messaging_the_unloved_paradigm
20171127 rene spronk_messaging_the_unloved_paradigm20171127 rene spronk_messaging_the_unloved_paradigm
20171127 rene spronk_messaging_the_unloved_paradigmDevDays
 
Vonk fhir facade (christiaan)
Vonk fhir facade (christiaan)Vonk fhir facade (christiaan)
Vonk fhir facade (christiaan)DevDays
 
Opening student track
Opening student trackOpening student track
Opening student trackDevDays
 
Fhir dev days_advanced_fhir_terminology_services
Fhir dev days_advanced_fhir_terminology_servicesFhir dev days_advanced_fhir_terminology_services
Fhir dev days_advanced_fhir_terminology_servicesDevDays
 
Distributing cds dev days-2017
Distributing cds dev days-2017Distributing cds dev days-2017
Distributing cds dev days-2017DevDays
 

More from DevDays (14)

Consent dev days
Consent dev daysConsent dev days
Consent dev days
 
Mohannad hussain dicom and imaging tools
Mohannad hussain   dicom and imaging toolsMohannad hussain   dicom and imaging tools
Mohannad hussain dicom and imaging tools
 
Mohannad hussain community track - siim dataset & dico mweb proxy
Mohannad hussain   community track - siim dataset & dico mweb proxyMohannad hussain   community track - siim dataset & dico mweb proxy
Mohannad hussain community track - siim dataset & dico mweb proxy
 
Validation in net and java (ewout james)
Validation in net and java (ewout james)Validation in net and java (ewout james)
Validation in net and java (ewout james)
 
Structure definition 101 (ewout)
Structure definition 101 (ewout)Structure definition 101 (ewout)
Structure definition 101 (ewout)
 
Quality improvement dev days-2017
Quality improvement dev days-2017Quality improvement dev days-2017
Quality improvement dev days-2017
 
Furore devdays 2017- rdf1(solbrig)
Furore devdays 2017- rdf1(solbrig)Furore devdays 2017- rdf1(solbrig)
Furore devdays 2017- rdf1(solbrig)
 
Furore devdays 2017- oai
Furore devdays 2017- oaiFurore devdays 2017- oai
Furore devdays 2017- oai
 
Connectathon opening 2017
Connectathon opening 2017Connectathon opening 2017
Connectathon opening 2017
 
20171127 rene spronk_messaging_the_unloved_paradigm
20171127 rene spronk_messaging_the_unloved_paradigm20171127 rene spronk_messaging_the_unloved_paradigm
20171127 rene spronk_messaging_the_unloved_paradigm
 
Vonk fhir facade (christiaan)
Vonk fhir facade (christiaan)Vonk fhir facade (christiaan)
Vonk fhir facade (christiaan)
 
Opening student track
Opening student trackOpening student track
Opening student track
 
Fhir dev days_advanced_fhir_terminology_services
Fhir dev days_advanced_fhir_terminology_servicesFhir dev days_advanced_fhir_terminology_services
Fhir dev days_advanced_fhir_terminology_services
 
Distributing cds dev days-2017
Distributing cds dev days-2017Distributing cds dev days-2017
Distributing cds dev days-2017
 

Recently uploaded

Pharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfPharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfMahmoud M. Sallam
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentInMediaRes1
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...Marc Dusseiller Dusjagr
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdfssuser54595a
 
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfSumit Tiwari
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for BeginnersSabitha Banu
 
Painted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaPainted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaVirag Sontakke
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17Celine George
 
Blooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docxBlooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docxUnboundStockton
 
Meghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentMeghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentInMediaRes1
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersSabitha Banu
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsanshu789521
 
AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.arsicmarija21
 
Hierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementHierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementmkooblal
 
CELL CYCLE Division Science 8 quarter IV.pptx
CELL CYCLE Division Science 8 quarter IV.pptxCELL CYCLE Division Science 8 quarter IV.pptx
CELL CYCLE Division Science 8 quarter IV.pptxJiesonDelaCerna
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...JhezDiaz1
 

Recently uploaded (20)

Pharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfPharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdf
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media Component
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
 
OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...
 
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for Beginners
 
Painted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaPainted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of India
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17
 
Blooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docxBlooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docx
 
Meghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentMeghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media Component
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginners
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha elections
 
AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.
 
Hierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementHierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of management
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
CELL CYCLE Division Science 8 quarter IV.pptx
CELL CYCLE Division Science 8 quarter IV.pptxCELL CYCLE Division Science 8 quarter IV.pptx
CELL CYCLE Division Science 8 quarter IV.pptx
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
 
9953330565 Low Rate Call Girls In Rohini Delhi NCR
9953330565 Low Rate Call Girls In Rohini  Delhi NCR9953330565 Low Rate Call Girls In Rohini  Delhi NCR
9953330565 Low Rate Call Girls In Rohini Delhi NCR
 

Securing FHIR with OAuth, digital signatures and security labels

  • 1. FHIR® is the registered trademark of HL7 and is used with the permission of HL7. The Flame Design mark is the registered trademark of HL7 and is used with the permission of HL7. Amsterdam, 15-17 November | @fhir_furore | #fhirdevdays17 | www.fhirdevdays.com Overview over security in FHIR & Security Labels Grahame Grieve, Health Intersections
  • 2. Security Problem Space • Basic Web Security • Authentication / Authorization / Access Control • Digital Signatures • Audit Trail / Provenance tracking • Security Labels • An insecure system is an unsafe system
  • 3. Basic Web Security • Use a time synchronization protocol • Use SSL / TLS (almost always) • Keep your security libraries up to date • Use CORS correctly (hard) • No Buffer overflows, XSS, etc • Narrative Handling • Recommended: https://www.troyhunt.com/
  • 4. Content Issues • Base Content Rules: • No DTD references • No Active Content in XHTML • XML: Ignore Processing Instructions • XHTML: • White list external references • Don’t leak headers processing external references (images, css, etc) • Check media types of attachments
  • 5. AuthZ • Authentication: Who is the user? (and their agent?) • Authorization: What does the user allow in this context? • Access Control: Is this request allowed, given • The data in the request • The user’s rights • The user’s authorization • The rules on the underlying data
  • 7. OAuth • Delegating Authorization • Implicit: Delegating Authentication • openID Connect: Make this explicit • Two layer OAuth (demonstration) • Smart App Launch (http://hl7.org/fhir/smart-app-launch) • A profile on OAuth + openID Connect • Should always use this wherever possible for interoperability
  • 8. Two Layer OAuth • Must be possible to map from identity on health records server to Identity server information (this can be established lots of ways) • Best identity server is a national identity server OAuth Client Server (AS/RS) Resources User Application Health Records Server What healthcare records should this application get access to Health Records Server Identity Server Identification information about the patient
  • 9. OAuth • Delegating Authorization • Implicit: Delegating Authentication • openID Connect: Make this explicit • Two layer OAuth (demonstration) • Smart App Launch (http://hl7.org/fhir/smart-app-launch) • A profile on OAuth + openID Connect • Should always use this wherever possible for interoperability
  • 10. Smart App Launch • Confidential Client (can keep a secret) – server / secure enclave • Public Client • Backend services • Not much supported, and not part of STU standard
  • 11. Smart App Launch Scopes • [class]/[type].[mode] • Class = patient | user | system • Type = * or a FHIR resource type • Mode = * | read | write • Examples: patient/*.read user/*.* system/Communication.write • Also: openid profile launch offline_access online_access
  • 13. Alternative Approach • Instead of Smart Scopes, scopes are URIs that identify Consent resource • Application identifies the consent resource it wants to work under • User chooses which consent resource to proceed under • Server replies with the consent resource that the user chose • Makes decisions obscure to the interface, but… • Possibly going to be tested in January connectathon
  • 14. Access Control • The Smart OAuth scopes interact with access control • Access Control Engine engine: • What scopes can a user allow? • What operations/data does a user have rights for? • What scopes has the user allowed in this context? • What other Consents are applicable in this context? (+ jurisdictional rules) • FHIR does not standardise the access control layer • Should we? • SCIM for user management – what’s the mapping between users and roles?
  • 15. AuditEvent and Provenance AuditEvent • Record of an event • Login/logout • RESTful API transaction • Higher level event (RWE) • Typically Create (no update/delete) • Consider signing the audit trail (blockchain?) • Provenance • Information about source of data • Applies to a set of resources • W5: Who What When Where Why • This information is denormalised into resources variably • Can provide it in an HTTP header • Can populate the AuditEvent
  • 16. Digital Signatures • Formal Support: • Signature Data type • Provenance.signature • Bundle.signature
  • 18. Using the Signature Data Type • Provenance • Detached Signature • Provenance.target : Reference(Any) 1..* • Provenance.signature: a signature across all the resources • Canonicalization across multiple resources not specified • Bundle • Enveloped Signature • Bundle.signature signs content • http://hl7.org/fhir/xml.html#digsig and http://hl7.org/fhir/json.html#canonical
  • 19. Challenges with digital signatures • Signatures on static content (“documents”) are well understood • Signatures on a RESTful interface are not • Changing contents on interface engines • Signing packages of resources that can be re-identified
  • 20. Security Labels • Some resources need special handling • VIP patients • Confidential records • Restricted use data (i.e. released for research, not for treatment) • Sometimes this is implicit in context, or the content of the resource • Mostly useful to make this explicit on the resource (denormalization)
  • 21. Using Labels • Text to add to slide • Indent item • Another item
  • 22. Core Labels • Purpose of Use • Treatment, research, legal, claims… etc • Confidentiality Codes • Unrestricted  normal  restricted  very restricted • Delete after use / No Reuse • All applications are required to know what these labels mean and observe/obey them if relevant • There are 500+ total labels, and growing….
  • 23. Summary • Security is hard • Requires clear thinking • Ongoing development around Authorization and Consent • Questions…