FHIR(Fast Healthcare Interoperability Resources)은 보안 프로토콜이 아니며 보안 관련 기능을 정의하지도 않습니다. 그러나 FHIR은 다른 곳에 정의된 다양한 보안 프로토콜과 함께 사용해야 하는 교환 프로토콜 및 콘텐츠 모델을 정의합니다. 이번 포스트에서는 “보안 프로토콜”에 대해서 공부한 내용은 짧게 키워드만 정리해보았습니다.
Summary
- endpoint는 권한 및 인증 메커니즘으로 보호
- SSL 암호화 프로토콜로 보호
- 접근 제어. IP주소 기반 허용하지 않은 클라이언트의 액세스를 방지
- http 로그 모니터링
엑세스 제어 모델
Role-Based Access Control (RBAC)
RBAC는 사용자의 역할에 기반하여 리소스에 대한 액세스를 제어하는 모델입니다.
각 사용자는 하나 이상의 역할에 할당되며, 각 역할은 특정 작업이나 권한의 집합을 나타냅니다.
역할에 따라 사용자에게 할당된 권한이 결정되며, 사용자는 해당 역할에 따라 리소스에 액세스할 수 있습니다.
구현이 간단하고 이해하기 쉽습니다.
하지만 세밀한 액세스 제어를 위해서는 역할이 너무 세분화되어야 하고, 이는 관리의 어려움을 초래할 수 있습니다.
Attribute-Based Access Control (ABAC)
ABAC는 사용자의 특성 및 리소스의 특성에 기반하여 액세스를 제어하는 모델입니다.
사용자의 특성은 사용자의 역할뿐만 아니라 속성(예: 나이, 위치, 부서 등)일 수 있으며,
리소스의 특성은 리소스의 속성(예: 보안 등급, 소유자 등)일 수 있습니다.
이러한 속성을 기반으로 정책이 정의되며, 액세스 결정이 이루어집니다.
세밀한 액세스 제어가 가능하지만 정책의 관리 및 유지보수가 복잡할 수 있습니다.
Security – FHIR v5.0.0 (hl7.org)
Response 규칙
- 데이터 세트 반환 시, 0개 결과로 성공 반환
- 이러면 알려진 데이터가 없는 경우와 가려진 데이터의 여부를 알 수 없게 함
- 404 Not Found
- 404로 리턴하면 실제 값이 존재하는지 아닌지 가릴 수 있음
- 대신 사용자 인증이 검증되었다는 사실이 유출됨
- 403 Forbidden
- 실패 이유가 승인 실패임을 나타냄
- 권한을 부여 받기 위해 어떻게 변경해야 하는지 설명하지 않음
- staff 권한이 필요하다. 이런 거 반환하지 않음
- 401 Unauthorized
- 인증을 시도했지만 실패했음을 나타냄
- 400 Bad Request
- 검색을 처리할 수 없거나 기본 FHIR 유효성 검사 규칙에 실패했습니다.
OAuth
OAuth는 인터넷 사용자를 대신하여 다른 웹사이트 또는 앱에 대한 액세스를 인증하는 표준 프로토콜입니다.
참고하면 좋은 글
HL7.FHIR.US.UDAP-SECURITY\Tiered OAuth for User Authentication – FHIR v4.0.1