iT邦幫忙

2025 iThome 鐵人賽

DAY 23
0
Security

醫療數據的資安挑戰與創新解決方案系列 第 23

醫師登入後查詢病歷(Authorization)

  • 分享至 

  • xImage
  •  

今日要學習的是理解「授權(Authorization)」的概念,登入後並不代表可以存取所有資料,必須根據角色與權限控制存取範圍。

一、理論重點

  1. **授權(Authorization)**是登入後的第二層防護,決定醫師能否查詢特定病歷。
  2. 不同角色(醫師、護理師、行政人員)應有不同權限,這是** RBAC(Role-Based Access Control)角色存取控制**的應用。
  3. 即使是合法醫師,仍必須依照「最小權限原則」存取與自己醫療業務相關的病歷。
  4. 系統應紀錄存取日誌(Audit Log),一旦有異常存取行為,可以追蹤責任。
  5. 搭配病人同意機制,讓病人能決定哪些醫療單位或醫師可查看其病歷,符合 GDPR 與 HIPAA 要求。

二、案例分享

過去英國國民保健署(NHS)內部發生多起醫護人員未經授權查閱病歷的事件,受害對象包括知名明星與政治人物。這些員工利用自身系統存取權限,私下查看了病人的敏感醫療資料,甚至部分資料可能外流。事件曝光後引起輿論強烈關注,NHS 面臨信任危機。為了防止類似事件再次發生,NHS 進行了全面的制度改革,包括角色權限分級、存取日誌監控、多因素驗證以及教育訓練。

三、簡單程式示範

# 模擬病歷資料庫
patient_records = {
    "PatientA": "糖尿病治療紀錄",
    "PatientB": "高血壓治療紀錄"
}

# 醫師與可存取的病人列表
doctor_access = {
    "Jason": ["PatientA"],
    "Bill": ["PatientB"]
}

def query_record(doctor, patient):
    if patient in doctor_access.get(doctor, []):
        print(f"醫師 {doctor} 查詢 {patient}:{patient_records[patient]}")
    else:
        print(f"醫師 {doctor} 無權限查詢 {patient} 的紀錄")

# 測試流程
query_record("Jason", "PatientA")  # 有權限
query_record("Bill", "PatientB")  # 沒有權限

這段延續昨天,昨天登入驗證後,今天看醫生有無權限查詢某病人的資料。執行結果如下

https://ithelp.ithome.com.tw/upload/images/20250923/20169331XTmJaM1qtL.png


上一篇
醫師登入驗證流程(Authentication)
下一篇
勒索病毒對醫療機構的威脅
系列文
醫療數據的資安挑戰與創新解決方案24
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言