SlideShare a Scribd company logo
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

PPTX
fhir-documents
PPTX
Devdays 2017 implementation guide authoring - ardon toonstra
PPTX
Fhir foundation (grahame)
PPTX
Building bridges devdays 2017- powerpoint template
PPTX
Furore devdays2017 tdd-2-advanced
PPTX
Advanced .net api (ewout)
PPTX
Furore devdays2017 general-introtofhir
PPTX
Fhir tooling (grahame)
fhir-documents
Devdays 2017 implementation guide authoring - ardon toonstra
Fhir foundation (grahame)
Building bridges devdays 2017- powerpoint template
Furore devdays2017 tdd-2-advanced
Advanced .net api (ewout)
Furore devdays2017 general-introtofhir
Fhir tooling (grahame)

What's hot (20)

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

Similar to Security overview (grahame) (20)

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

More from DevDays (14)

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

Recently uploaded (20)

PDF
Sports Quiz easy sports quiz sports quiz
PDF
Abdominal Access Techniques with Prof. Dr. R K Mishra
PDF
RMMM.pdf make it easy to upload and study
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PDF
01-Introduction-to-Information-Management.pdf
PDF
TR - Agricultural Crops Production NC III.pdf
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PDF
Complications of Minimal Access Surgery at WLH
PDF
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PPTX
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PDF
Pre independence Education in Inndia.pdf
PDF
Computing-Curriculum for Schools in Ghana
PPTX
Pharma ospi slides which help in ospi learning
PDF
102 student loan defaulters named and shamed – Is someone you know on the list?
PPTX
Cell Types and Its function , kingdom of life
PPTX
Institutional Correction lecture only . . .
PDF
Basic Mud Logging Guide for educational purpose
Sports Quiz easy sports quiz sports quiz
Abdominal Access Techniques with Prof. Dr. R K Mishra
RMMM.pdf make it easy to upload and study
STATICS OF THE RIGID BODIES Hibbelers.pdf
01-Introduction-to-Information-Management.pdf
TR - Agricultural Crops Production NC III.pdf
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
Complications of Minimal Access Surgery at WLH
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
Pre independence Education in Inndia.pdf
Computing-Curriculum for Schools in Ghana
Pharma ospi slides which help in ospi learning
102 student loan defaulters named and shamed – Is someone you know on the list?
Cell Types and Its function , kingdom of life
Institutional Correction lecture only . . .
Basic Mud Logging Guide for educational purpose

Security overview (grahame)

  • 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…