Changes between Version 12 and Version 13 of Archtectural Overview Security


Ignore:
Timestamp:
Nov 22, 2007, 1:11:25 AM (16 years ago)
Author:
KOBAYASHI, Shinji
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Archtectural Overview Security

    v12 v13  
    1 [wiki:"Archtectural Overview index" TOC] [wiki:"Archtectural Overview Design of the openEHR EHR" PREV] [wiki:"Archtectural Overview Versioning" NEXT]
    2 [[TOC]]
     1[wiki:"Archtectural Overview index" TOC] [wiki:"Archtectural Overview Design of the openEHR EHR" PREV] [wiki:"Archtectural Overview Versioning" NEXT]  [[TOC]]
    32
    43この文書は[http://svn.openehr.org/specification/TAGS/Release-1.0.1/publishing/html/architecture/overview/Output/front.html Archtectural Overview]の[http://svn.openehr.org/specification/TAGS/Release-1.0.1/publishing/html/architecture/overview/Output/security.html 7 Security and Confidentiality]の翻訳である。内容の正確性については保証しないので,正確な内容については原文を参照すること
     4
    55= 7 セキュリティと機密保護 =
    6 
    767 Security and Confidentiality
    87
     
    12117.1 Requirements
    1312
    14 === プライバシー、機密保護、及び同意 ===
    15  
    16 Privacy, Confidentiality and Consent
     13=== プライバシー、機密保護、及び同意 ===
     14  Privacy, Confidentiality and Consent
    1715
    1816プライバシー(個人データを閲覧できる人を限定する権利)及び機密保護(開示されたデータのプライバシーの尊重についての閲覧者の責務)は、eHealthシステムに関する多くの利用者の主要な関心事である。広く受け容れられた原則は、ケアの過程において患者からの信頼に基づいて医療専門職に提供された情報(直接か、検体等の観察や検査によるものかを問わず)は、患者が承認した場合にのみ第三者に手渡され、またその利用に供せられるべきである、より簡潔には、「データ共有には患者の同意による統制が必須」ということである。患者によってはさらに複雑な追加要件があって、健康情報の部分毎に異なるアクセスを許す、たとえば、大部分の健康情報は比較的オープンにアクセスを許容するが、性または精神関連の健康項目についてはアクセスを制限するということがある。健康情報の内部関係性がこのことを難しくしている。たとえば、診断が秘匿されていても、投薬リストによってセンシティブな状態が明らかになってしまうことがよくある。にもかかわらず、すべからく安全な治療には投薬内容のリストが必要であり、多くの臨床専門職にとって現在の投薬内容(及びアレルギー)情報が利用できなければごく基本的なケアを行うためにも大きな問題となろう。
     
    2119
    2220=== ヘルスケア提供者の要件 ===
    23 
    2421Requirements of Healthcare Providers
    2522
     
    3330
    3431=== アクセス制御の指定 ===
    35  
    36 Specifying Access Control
     32  Specifying Access Control
    3733
    3834理論的には、患者や一部の医療専門職にとって、誰が患者レコードを見ることができるかを特定することは容易なことであろう。場合によっては、直接識別による特定、たとえば患者が長期の主治医を提供者IDで指名するといったことが可能である。除外設定なども同じやり方でできるかもしれない。たとえば、以前の医師について患者との個人的な関係に問題が生じた場合である。
     
    4541
    4642=== ロールについての課題 ===
    47 
    4843The Problem of Roles
    4944
     
    6156
    6257=== ユーザビリティ ===
    63 
    6458Usability
    6559
     
    7367
    7468== 7.2 セキュリティとプライバシーへの脅威 ==
    75 
    76697.2 Threats to Security and Privacy
    7770
    7871ヘルス・レコードにおいてセキュリティとプライバシーをサポートするいかなるモデルも、仮定された脅威についてのなんらかの観念に基づく必要がある。あまり詳細にわたることは避けるが、openEHRで仮定しているセキュリティへの脅威には以下が含まれている。(ここで「不適切」とは、患者の同意を得ておらず、また得られないであろうすべてのことがらを意味するものとする)
    79   * 患者識別における人的誤りにより、ある患者のヘルス・データが他の患者に間違って関連付けられること。患者の識別ミスは、ある患者の個人データが他の患者のレコードに入り込む事態を招く(プライバシーの侵害と医療事故を招く惧れがある)。あるいは、同一患者に実在する記録以外の記録を生じさせる(2つ、またはそれ以上の医療的に不完全な記録となる)。
    80   * その患者の現在のケアには関与していない医療専門職や身体ケア提供の場にいるその他の者(すなわち病院内の全従業者を含む)による不適切なアクセス。
    81   * その患者が知っている他の者(たとえば家族)による不適切なアクセス。
    82   * 企業や他の機関(たとえば保険審査目的)によるヘルス・データへの不適切なアクセス。
    83   * 営利や他の個人的動機に基づく、(たとえば有名人や政治家の)ヘルス・データの悪意の盗み出しやアクセス。
    84   * ウイルス、ワーム、DoS攻撃等による、データ整合性や可用性への一般的な脅威。
    85   * ソフトウェアの誤り(バグ、構成ミス、インターオペラビリティ上の不具合等)が、データ汚染またはディスプレイ表示やコンピュータ処理の誤りを生じさせ、結果として医療事故をもたらすこと。
     72
     73 * 患者識別における人的誤りにより、ある患者のヘルス・データが他の患者に間違って関連付けられること。患者の識別ミスは、ある患者の個人データが他の患者のレコードに入り込む事態を招く(プライバシーの侵害と医療事故を招く惧れがある)。あるいは、同一患者に実在する記録以外の記録を生じさせる(2つ、またはそれ以上の医療的に不完全な記録となる)。
     74 * その患者の現在のケアには関与していない医療専門職や身体ケア提供の場にいるその他の者(すなわち病院内の全従業者を含む)による不適切なアクセス。
     75 * その患者が知っている他の者(たとえば家族)による不適切なアクセス。
     76 * 企業や他の機関(たとえば保険審査目的)によるヘルス・データへの不適切なアクセス。
     77 * 営利や他の個人的動機に基づく、(たとえば有名人や政治家の)ヘルス・データの悪意の盗み出しやアクセス。
     78 * ウイルス、ワーム、DoS攻撃等による、データ整合性や可用性への一般的な脅威。
     79 * ソフトウェアの誤り(バグ、構成ミス、インターオペラビリティ上の不具合等)が、データ汚染またはディスプレイ表示やコンピュータ処理の誤りを生じさせ、結果として医療事故をもたらすこと。
    8680
    8781Any model of how security and privacy are supported in the health record must be based on some notion of assumed threats. Without going into great detail, security threats assumed by openEHR include the following (here "inappropriate" means anything that is not or would not be consented to by the patient):
    88   * human error in patient identification, leading to incorrect association of health data of one patient with another. Mis-identification of patients can cause personal data for one patient to go into the record of another patient (leading to privacy violations and possibly clinical errors), or into a new record rather than the existing one for the same patient (leading to two or more clinically incomplete records);
    89   * inappropriate access by health professionals or others in the physical care delivery environment (including e.g. any worker in a hospital) not involved in the current care of the patient;
    90   * inappropriate access by other persons known to the patient, e.g. a by family member;
    91   * inappropriate access of health data by corporate or other organisations e.g. for purposes of insurance discrimination;
    92   * malicious theft of or access to health data (e.g. of a celebrity or politician) for profit or other personal motives;
    93   * generic threats to data integrity and availability, such as viruses, worms, denial of service attacks etc.;
    94   * failures in software (due to bugs, incorrect configuration, interoperability failures etc.) causing corruption to data, or incorrect display or computation, resulting in clinical errors.
     82
     83 * human error in patient identification, leading to incorrect association of health data of one patient with another. Mis-identification of patients can cause personal data for one patient to go into the record of another patient (leading to privacy violations and possibly clinical errors), or into a new record rather than the existing one for the same patient (leading to two or more clinically incomplete records);
     84 * inappropriate access by health professionals or others in the physical care delivery environment (including e.g. any worker in a hospital) not involved in the current care of the patient;
     85 * inappropriate access by other persons known to the patient, e.g. a by family member;
     86 * inappropriate access of health data by corporate or other organisations e.g. for purposes of insurance discrimination;
     87 * malicious theft of or access to health data (e.g. of a celebrity or politician) for profit or other personal motives;
     88 * generic threats to data integrity and availability, such as viruses, worms, denial of service attacks etc.;
     89 * failures in software (due to bugs, incorrect configuration, interoperability failures etc.) causing corruption to data, or incorrect display or computation, resulting in clinical errors.
    9590
    9691セキュリティ、機密保護、及び整合性をサポートするメカニズムを設計することに関する主要原則は、ぜひ銘記いただきたいのだが、方式の如何によらず標的とされた不適切アクセスの発生可能性は、情報の見積られた価値に比例し、アクセスのためのコストに反比例するということである。ヘルス・データ・セキュリティに関するRoss Andersonの英国医師協会誌[[FootNote(see e.g. Ross Anderson - "Security in Clinical Information Systems" available at http://www.cl.cam.ac.uk/users/rja14/policy11/policy11.html.)]] 記事に倣うならば、あるアクセスを想定した場合、犯人は最も単純で安上がりですばやい方法を見つけ出そうとするものである。それは、ジェームズ・ボンドに触発されたテクノロジーよりも、贈収賄や強盗の手口に近い。openEHRは、実装するのは安価であるが、悪用は極めて難しく、可用性について妥協のない、比較的単純なメカニズムを提供することによって、この原則を実用に供する。
     
    9893A key principle with respect to the design of mechanisms supporting security, confidentiality and integrity has to be kept in mind: the likelihood of any given mode of targeted inappropriate access is proportional to the perceived value of the information and inversely proportional to the cost of access. To paraphrase Ross Anderson's BMA paper1 on health data security, for a given access, the perpretrator will try to find the simplest, cheapest and quickest method, which is more likely to be bribery or burglary than James Bond-inspired technology. openEHR makes use of this principle by providing some relatively simple mechanisms that are cheap to implement but can make misuse quite difficult, without compromising availability.
    9994
    100 == 7.3 openEHTが提供するソリューション  ==
    101 
     95== 7.3 openEHRが提供するソリューション ==
    102967.3 Solutions Provided by openEHR
    10397
    10498=== 7.3.1 概要 ===
    105 
    106997.3.1 Overview
    107100
    108101セキュリティとプライバシーに関する具体的なメカニズムの多くは、openEHRのようなモデルの中にではなく、システムのデプロイ、特に認証、アクセス制御、及び暗号化の実装に見出される。openEHRの仕様とコア・コンポーネントの実装は、異なるサイト毎に要件が極めて多様であるために、多種の具体的なメカニズムを明確に定義するものではない。セキュアなLANのデプロイの多くが、その内部では最低限のセキュリティを要求するのに対し、webでアクセス可能なヘルス・レコード・サーバーはおそらく全く異なる要件をもっているだろう。openEHRが行っていることは、本質的に異なる要件と構成をもつデプロイが、それにもかかわらず標準的な手段で基本原則を実装できるだけの柔軟さをもった方法で、主要な要件のいくつかをサポートすることである。
    109102
    110 Many of the concrete mechanisms relating to security and privacy are found in system deployments rather than in models such as openEHR, particularly the implementation of authentication, access control, and encryption. The openEHR specifications and core component implementations do not explicitly define many concrete mechanisms since there is great variability in the requirements of different sites - secure LAN deployments many require minimal security inside, whereas web-accessible health record servers are likely to have quite different requirements. What openEHR does is to support some of the key requirements in a flexible enough way that deployments with substantially different requirements and configurations can nevertheless implement the basic principles in a standard way.  
     103Many of the concrete mechanisms relating to security and privacy are found in system deployments rather than in models such as openEHR, particularly the implementation of authentication, access control, and encryption. The openEHR specifications and core component implementations do not explicitly define many concrete mechanisms since there is great variability in the requirements of different sites - secure LAN deployments many require minimal security inside, whereas web-accessible health record servers are likely to have quite different requirements. What openEHR does is to support some of the key requirements in a flexible enough way that deployments with substantially different requirements and configurations can nevertheless implement the basic principles in a standard way.
    111104
    112105図21は、openEHRのアーキテクチャーによって直接仕様化された主要なセキュリティ手段を示している。ここには、EHRとデモグラフィックの分離、及びEHR全体に対するアクセス制御オブジェクトが含まれる。バージョン付きオブジェクトのレベルでは、コミット・オーディット(必須)、電子署名及びハッシュが利用可能である。以下のセクションで、これらの機構についてより詳細に記述する。
     
    117110
    118111=== 7.3.2 セキュリティ・ポリシー ===
    119 
    1201127.3.2 Security Policy
    121113
     
    125117
    126118=== 一般 ===
    127   * 整合性: ヘルス・レコード情報は削除できない。論理的な削除は、データがあたかも削除されたかのように見せる方法で実現される(バージョン制御で実装されている)。
    128   * 監査証跡: コンテント・オブジェクト、及びEHRステータスやアクセス制御オブジェクトを含めEHRに対して行われたすべての変更について、ユーザー識別、タイム・スタンプ、理由、オプションとしての電子署名、及び該当バージョン情報による監査証跡が取られる。例外が一つあり、変更者が患者である場合には、シンボリックな識別子を用いることができる(openEHRでPARTY_SELF と呼ぶもの。次の点を参照のこと)。
    129   * 匿名性: ヘルス・レコードの内容は、個人識別可能なデモグラフィック情報から分離されている。このことにより、EHRを盗んでも、所有者である患者を識別するための直接の手がかりが得られないといった構成が可能となる (もちろん間接的な手がかりを制御することはもっと難しい)。 識別できるEHRを盗むためには、2つのサーバーからのデータの窃盗、もしくは2台の物理的なコンピュータの窃盗さえもが必要であるが、これはデプロイの構成に依存する。
     119 * 整合性: ヘルス・レコード情報は削除できない。論理的な削除は、データがあたかも削除されたかのように見せる方法で実現される(バージョン制御で実装されている)。
     120 * 監査証跡: コンテント・オブジェクト、及びEHRステータスやアクセス制御オブジェクトを含めEHRに対して行われたすべての変更について、ユーザー識別、タイム・スタンプ、理由、オプションとしての電子署名、及び該当バージョン情報による監査証跡が取られる。例外が一つあり、変更者が患者である場合には、シンボリックな識別子を用いることができる(openEHRでPARTY_SELF と呼ぶもの。次の点を参照のこと)。
     121 * 匿名性: ヘルス・レコードの内容は、個人識別可能なデモグラフィック情報から分離されている。このことにより、EHRを盗んでも、所有者である患者を識別するための直接の手がかりが得られないといった構成が可能となる (もちろん間接的な手がかりを制御することはもっと難しい)。 識別できるEHRを盗むためには、2つのサーバーからのデータの窃盗、もしくは2台の物理的なコンピュータの窃盗さえもが必要であるが、これはデプロイの構成に依存する。
    130122
    131123General
    132   * Indelibility: health record information cannot be deleted; logical deletion is achieved by marking the data in such a way as to make it appear deleted (implemented in version control).
    133   * Audit trailing: All changes made to the EHR including content objects as well as the EHR status and access control objects are audit-trailed with user identity, time-stamp, reason, optionally digital signature and relevant version information; one exception is where the modifier is the patient, in which case, a symbolic identifier can be used (known as PARTY_SELF in openEHR; see next point).
    134   * Anonymity: the content of the health record is separate from identifying demographic information. This can be configured such that theft of the EHR provides no direct clue to the identity of the owning patient (indirect clues are of course harder to control). Stealing an identified EHR involves theft of data from two servers, or even theft of two physical computers, depending on deployment configuration.
     124
     125 * Indelibility: health record information cannot be deleted; logical deletion is achieved by marking the data in such a way as to make it appear deleted (implemented in version control).
     126 * Audit trailing: All changes made to the EHR including content objects as well as the EHR status and access control objects are audit-trailed with user identity, time-stamp, reason, optionally digital signature and relevant version information; one exception is where the modifier is the patient, in which case, a symbolic identifier can be used (known as PARTY_SELF in openEHR; see next point).
     127 * Anonymity: the content of the health record is separate from identifying demographic information. This can be configured such that theft of the EHR provides no direct clue to the identity of the owning patient (indirect clues are of course harder to control). Stealing an identified EHR involves theft of data from two servers, or even theft of two physical computers, depending on deployment configuration.
    135128
    136129=== アクセス制御 ===
    137 
    138130Access Control
    139131
    140132 * アクセスリスト:アクセス制御のもっとも重要な原則は,ユーザーのアイデンティティ(誰が患者をケアしているのか)と時間(現在のケアのエピソードが継続され,どのくらい持続するのが妥当か,あとどのくらい続けられるのか)の双方について「関連性」を持つことである。EHRで定義することができるアクセス制御リストは,識別された個人やカテゴリーを示すものであり,カテゴリーにはロールタイプや特定のスタッフグループが示されるものである。
    141  * アクセス設定に基づいたアクセス制御:ゲートキーパーはEHRのアクセスコントロール設定にアクセスしてアクセスを制御する。ゲートキーパーはEHR内部で知られるアイデンティティの一つとしてEHRが作り出されたときに確立され、通常は精神的に成人としての能力のある患者本人あるいは、親や法的保護者、支持者といった責任のある人によって務められる。ゲートキーパーはアクセス制御リストを誰が変更できるのか決定することができる。リストに対するすべての変更は、通常のデータ(通常のバージョニングのために得られた)に関して証跡監査される。
    142  * プライバシー:
     133 * アクセス設定に基づいたアクセス制御:ゲートキーパーはEHRのアクセスコントロール設定にアクセスしてアクセスを制御する。ゲートキーパーはEHR内部で知られるアイデンティティの一つとしてEHRが作り出されたときに確立され、通常は精神的に成人としての能力のある患者本人あるいは、親や法的保護者、支持者といった責任のある人によって務められる。ゲートキーパーはアクセス制御リストを誰が変更できるのか決定することができる。リストに対するすべての変更は、通常のデータ(通常のバージョニングのために得られた)に関して監査証跡される。
     134 * プライバシー:患者は多くのレベルのプライバシーの一つをもつようにEHR内のCOMPOSITIONに記録することができる。プライバシーレベルの定義はopenEHRのモデルに固有の設定があるのではなく、使用についての法的権限内での同意あるいは標準により定義されるものである。
     135 * ユーザビリティ:アクセス制御設定の一般的な考え方は、EHRでの情報の大部分と時間のほとんどについて影響する「思慮深い初期値」の一つである。EHRへの初期値は患者により設定できるものであり、アクセス決定の大部分を閉めるアクセス制御の振る舞いについて定義するものである。初期値としてのポリシーの例外はその後に加えられる。この方法により、EHRそれぞれにあるすべてのアイテムについてのセキュリティについて考える必要性を最小限に止めている。
    143136
    144   * Access list: the overriding principle of access control must be "relevance" both in terms of user identity (who is delivering care to the patient) and time (during the current episode of care, and for some reasonable, limited time afterward). An access control list can be defined for the EHR, indicating both identified individuals and categories, the latter of which might be role types, or particular staff groups.
    145   * Access control of access settings: a gate-keeper controls access to the EHR access control settings. The gate-keeper is established at the time of EHR creation as being one of the identities known in the EHR, usually the patient for mentally competent adults, otherwise a parent, legal guardian, advocate or other responsible person. The gate-keeper determines who can make changes to the access control list. All changes to the list are audit-trailed as for normal data (achieved due to normal versioning).
    146   * Privacy: patients can mark Compositions in the EHR as having one of a number of levels of privacy. The definition of the privacy levels is not hard-wired in the openEHR models but rather is defined by standards or agreements within jurisdictions of use.
    147   * Usability: The general mentality of access control setting is one of "sensible defaults" that work for most of the information in the EHR, most of the time. The defaults for the EHR can be set by the patient, defining access control behaviour for the majority of access decisions. Exceptions to the default policy are then added. This approach minimises the need to think about the security of every item in the EHR individually.
     137 * Access list: the overriding principle of access control must be "relevance" both in terms of user identity (who is delivering care to the patient) and time (during the current episode of care, and for some reasonable, limited time afterward). An access control list can be defined for the EHR, indicating both identified individuals and categories, the latter of which might be role types, or particular staff groups.
     138 * Access control of access settings: a gate-keeper controls access to the EHR access control settings. The gate-keeper is established at the time of EHR creation as being one of the identities known in the EHR, usually the patient for mentally competent adults, otherwise a parent, legal guardian, advocate or other responsible person. The gate-keeper determines who can make changes to the access control list. All changes to the list are audit-trailed as for normal data (achieved due to normal versioning).
     139 * Privacy: patients can mark Compositions in the EHR as having one of a number of levels of privacy. The definition of the privacy levels is not hard-wired in the openEHR models but rather is defined by standards or agreements within jurisdictions of use.
     140 * Usability: The general mentality of access control setting is one of "sensible defaults" that work for most of the information in the EHR, most of the time. The defaults for the EHR can be set by the patient, defining access control behaviour for the majority of access decisions. Exceptions to the default policy are then added. This approach minimises the need to think about the security of every item in the EHR individually.
     141
    148142Other security policy principles that should be implemented in even a minimal EHR deployment but are not directly specified by openEHR include the following.
    149   * Access logging: read accesses by application users to EHR data should be logged in the EHR system. Currently openEHR does not specify models of such logs, but might do so in the future. Studies have shown that making users aware of the fact of access logging is an effective deterrent to inappropriate access (especially where other controls are not implemented). There are some proponents of the argument that even read-access logs should be made part of the content of the EHR proper; currently openEHR does not support this approach.
    150   * Record demerging: when data for a patient is found to be in another patient's EHR, the access logs for that EHR should be used to determine who has accessed that data, primarily to determine if subsequent clinical thinking (e.g. diagnoses, medication decisions) have been made based on wrong information.
    151   * Record merging: when more than one EHR is discovered for the same patient, and have to be merged into a single record, the access control lists have to be re-evaluated and merged by the patient and potentially relevant carers.
    152   * Time-limitation of access: mechanisms should be implemented that limit the time during which given health professionals can see the patient record. Usually, the outer limits are defined by the interval of the episode of care in an institution plus some further time to cover follow-up or outpatient care. Episode start and end are recorded in openEHR as instances of the ADMIN_ENTRY class, containing admission and discharge details.
    153   * Non-repudiation: if digital signing of changes to the record is made mandatory, non-repudiation of content can be supported by an openEHR system. The digital signing of communications (EHR Extracts) is also supported in openEHR; coupled with logging of communication of Extracts, this can be used to guarantee non-repudiation of information passed between systems (cf. information passed between back-end and front-end applications of the same system).
    154   * Certification: a mechanism should be provided to allow a level of trust to be formally associated with user signing keys.
    155 A key feature of the policy is that it must scale to distributed environments in which health record information is maintained at multiple provider sites visited by the patient.
    156 As Anderson points out in the BMA study, policy elements are also needed for guarding against users gaining access to massive numbers of EHRs, and inferencing attacks. Currently these are outside the scope of openEHR, and realistically, of most EHR implementations of any kind today.
    157 The following sections describe how openEHR supports the first list of policy objectives.
     143
     144 * Access logging: read accesses by application users to EHR data should be logged in the EHR system. Currently openEHR does not specify models of such logs, but might do so in the future. Studies have shown that making users aware of the fact of access logging is an effective deterrent to inappropriate access (especially where other controls are not implemented). There are some proponents of the argument that even read-access logs should be made part of the content of the EHR proper; currently openEHR does not support this approach.
     145 * Record demerging: when data for a patient is found to be in another patient's EHR, the access logs for that EHR should be used to determine who has accessed that data, primarily to determine if subsequent clinical thinking (e.g. diagnoses, medication decisions) have been made based on wrong information.
     146 * Record merging: when more than one EHR is discovered for the same patient, and have to be merged into a single record, the access control lists have to be re-evaluated and merged by the patient and potentially relevant carers.
     147 * Time-limitation of access: mechanisms should be implemented that limit the time during which given health professionals can see the patient record. Usually, the outer limits are defined by the interval of the episode of care in an institution plus some further time to cover follow-up or outpatient care. Episode start and end are recorded in openEHR as instances of the ADMIN_ENTRY class, containing admission and discharge details.
     148 * Non-repudiation: if digital signing of changes to the record is made mandatory, non-repudiation of content can be supported by an openEHR system. The digital signing of communications (EHR Extracts) is also supported in openEHR; coupled with logging of communication of Extracts, this can be used to guarantee non-repudiation of information passed between systems (cf. information passed between back-end and front-end applications of the same system).
     149 * Certification: a mechanism should be provided to allow a level of trust to be formally associated with user signing keys.
     150
     151A key feature of the policy is that it must scale to distributed environments in which health record information is maintained at multiple provider sites visited by the patient.  As Anderson points out in the BMA study, policy elements are also needed for guarding against users gaining access to massive numbers of EHRs, and inferencing attacks. Currently these are outside the scope of openEHR, and realistically, of most EHR implementations of any kind today.  The following sections describe how openEHR supports the first list of policy objectives.
    158152
    1591537.3.3 Integrity
    160154
    161 Versioning
    162 The most basic security-related feature of openEHR is its support for data integrity. This is mainly provided by the versioning model, specified in the change_control package in the Common Information Model, and in the Extract Information Model. Change-set based versioning of all information in the EHR and demographic services constitutes a basic integrity measure for information, since no content is ever physically modified, only new versions are created. All logical changes and deletions as well as additions are therefore physically implemented as new Versions rather than changes to existing information items. Clearly the integrity of the information will depend on the quality of the implementation; however, the simplest possible implementations (1 Version = 1 copy) can provide very good safety due to being write-once systems.
    163 The use of change-sets, known as Contributions in openEHR, provides a further unit of integrity corresponding to all items modified, created or deleted in a single unit of work by a user.
    164 The openEHR versioning model defines audit records for all changed items, which can be basic audits and/or any number of additional digitally signed attestations (e.g. by senior staff). This means that every write access of any kind to any part of an openEHR record is logged with the user identification, time, reason, and potentially other meta-data. Versioning is described in detail in section 8 on page 45.
    165 Digital Signature
    166 The possibility exists within an openEHR EHR to digitally sign each Version in a Versioned object (i.e. for each Version of any logical item, such as medications list, encounter note etc.). The signature is created as a private-key encryption (e.g. RSA-1) of a hash (e.g. MD5) of a canonical representation (such as in schema-based XML) of the Version being committed. A likely candidate for defining the signature and digest strings in openEHR is the openPGP message format (IETF RFC24402), due to being an open specification and self-describing. The use of RFC2440 for the format does not imply the use of the PGP distributed certificate infrastructure, or indeed any certification infrastructure; openEHR is agnostic on this point. If no public key or equivalent infrastructure is available, the encryption step might be omitted, resulting in a digest only of the content. The signature is stored within the Version object, allowing it to be conveniently carried within EHR Extracts. The process is shown in FIGURE 22.
     155Versioning  The most basic security-related feature of openEHR is its support for data integrity. This is mainly provided by the versioning model, specified in the change_control package in the Common Information Model, and in the Extract Information Model. Change-set based versioning of all information in the EHR and demographic services constitutes a basic integrity measure for information, since no content is ever physically modified, only new versions are created. All logical changes and deletions as well as additions are therefore physically implemented as new Versions rather than changes to existing information items. Clearly the integrity of the information will depend on the quality of the implementation; however, the simplest possible implementations (1 Version = 1 copy) can provide very good safety due to being write-once systems.  The use of change-sets, known as Contributions in openEHR, provides a further unit of integrity corresponding to all items modified, created or deleted in a single unit of work by a user.  The openEHR versioning model defines audit records for all changed items, which can be basic audits and/or any number of additional digitally signed attestations (e.g. by senior staff). This means that every write access of any kind to any part of an openEHR record is logged with the user identification, time, reason, and potentially other meta-data. Versioning is described in detail in section 8 on page 45.  Digital Signature  The possibility exists within an openEHR EHR to digitally sign each Version in a Versioned object (i.e. for each Version of any logical item, such as medications list, encounter note etc.). The signature is created as a private-key encryption (e.g. RSA-1) of a hash (e.g. MD5) of a canonical representation (such as in schema-based XML) of the Version being committed. A likely candidate for defining the signature and digest strings in openEHR is the openPGP message format (IETF RFC24402), due to being an open specification and self-describing. The use of RFC2440 for the format does not imply the use of the PGP distributed certificate infrastructure, or indeed any certification infrastructure; openEHR is agnostic on this point. If no public key or equivalent infrastructure is available, the encryption step might be omitted, resulting in a digest only of the content. The signature is stored within the Version object, allowing it to be conveniently carried within EHR Extracts. The process is shown in FIGURE 22.
    167156
    168157[[Image(securitya.gif)]]
    169158
    170 The signing of data in a versioning system acts as an integrity check (the digest performs this function), an authentication measure (the signature performs this function), and also a non-repudiation measure. To guard against hacking of the versioned persistence layer itself, signatures can be forwarded to a trusted notarisation service. A fully secure system based on digital signing also requires certified public keys, which may or may not be available in any given environment.
    171 One of the benefits of digitally signing relatively small pieces of the EHR (single Versions) rather than the whole EHR or large sections of it is that the integrity of items is more immune to localised repository corruptions.
     159The signing of data in a versioning system acts as an integrity check (the digest performs this function), an authentication measure (the signature performs this function), and also a non-repudiation measure. To guard against hacking of the versioned persistence layer itself, signatures can be forwarded to a trusted notarisation service. A fully secure system based on digital signing also requires certified public keys, which may or may not be available in any given environment.  One of the benefits of digitally signing relatively small pieces of the EHR (single Versions) rather than the whole EHR or large sections of it is that the integrity of items is more immune to localised repository corruptions.
    172160
    173 7.3.4 Anonymity
    174 As described above in section 6.1, one of the features of the openEHR EHR is a separation of EHR (clinical and administrative) information and demographic information. This mainly relates to references to the patient rather than to provider entities, since the latter are usually publicly known. A special kind of object known as PARTY_SELF in openEHR is used to refer to the subject in the EHR. The only information contained in a PARTY_SELF instance is an optional external reference. The openEHR EHR can be configured to provide 3 levels of separation by controlling whether and where this external identifier is actually set in PARTY_SELF instances, as follows:
    175   * Nowhere in the EHR (i.e. every PARTY_SELF instance is a blank placeholder). This is the most secure approach, and means that the link between the EHR and the patient has to be done outside the EHR, by associating EHR.ehr_id and the subject identifier. This approach is more likely for more open environments.
    176   * Once only in the EHR Status object (subject attribute), and nowhere else. This is also relatively secure, if the EHR Status object is protected in some way.
    177   * In every instance of PARTY_SELF; this solution is reasonable in a secure environment, and convenient for copying parts of the record around locally.
     1617.3.4 Anonymity  As described above in section 6.1, one of the features of the openEHR EHR is a separation of EHR (clinical and administrative) information and demographic information. This mainly relates to references to the patient rather than to provider entities, since the latter are usually publicly known. A special kind of object known as PARTY_SELF in openEHR is used to refer to the subject in the EHR. The only information contained in a PARTY_SELF instance is an optional external reference. The openEHR EHR can be configured to provide 3 levels of separation by controlling whether and where this external identifier is actually set in PARTY_SELF instances, as follows:
     162
     163 * Nowhere in the EHR (i.e. every PARTY_SELF instance is a blank placeholder). This is the most secure approach, and means that the link between the EHR and the patient has to be done outside the EHR, by associating EHR.ehr_id and the subject identifier. This approach is more likely for more open environments.
     164 * Once only in the EHR Status object (subject attribute), and nowhere else. This is also relatively secure, if the EHR Status object is protected in some way.
     165 * In every instance of PARTY_SELF; this solution is reasonable in a secure environment, and convenient for copying parts of the record around locally.
     166
    178167This simple mechanism provides a basic protection against certain kinds of information theft or hacking if used properly. In the most secure situation, a hacker has to steal not just EHR data but also separate demographic records and an identity cross reference database, both of which can be located on different machines (making burglary harder). The identity cross-reference database would be easy to encrypt or protect by other security mechanisms.
    179168
    1801697.4 Access Control
    181170
    182 Overview
    183 Access control is completely specified in an openEHR EHR in the EHR_ACCESS object for the EHR. This object acts as a gateway for all information access, and any access decision must be made based on the policies and rules it contains.
    184 One of the problems with defining the semantics of the EHR Access object is that there is currently no published formal, proven model of access control for shared health information. Various efforts underway include the CEN EN13606 part 4 work, the ISO PMAC (Privilege Management and Access Control) work being done in TC/215 based on the generic security standard ISO/IEC 17799. Undoubtedly experimental and even some limited production health information security implementations exist. In reality however, no large-scale shared EHR deployments exist, and so security solutions to date are still developmental.
    185 The openEHR architecture is therefore designed to accommodate alternative models of access control, each defined by a subtype of the class ACCESS_CONTROL_SETTING (Security IM). This approach means that a simplistic access control model can be defined and implemented initially, with more sophisticated models being used later. The "scheme" in use at any given time is always indicated in the EHR Access object.
    186 1see e.g. Ross Anderson - "Security in Clinical Information Systems" available at http://www.cl.cam.ac.uk/users/rja14/policy11/policy11.html.
    187 2IETF RFC 2440 - http://www.ietf.org/internet-drafts/draft-ietf-openpgp-rfc2440bis-18.txt
     171Overview  Access control is completely specified in an openEHR EHR in the EHR_ACCESS object for the EHR. This object acts as a gateway for all information access, and any access decision must be made based on the policies and rules it contains.  One of the problems with defining the semantics of the EHR Access object is that there is currently no published formal, proven model of access control for shared health information. Various efforts underway include the CEN EN13606 part 4 work, the ISO PMAC (Privilege Management and Access Control) work being done in TC/215 based on the generic security standard ISO/IEC 17799. Undoubtedly experimental and even some limited production health information security implementations exist. In reality however, no large-scale shared EHR deployments exist, and so security solutions to date are still developmental.  The openEHR architecture is therefore designed to accommodate alternative models of access control, each defined by a subtype of the class ACCESS_CONTROL_SETTING (Security IM). This approach means that a simplistic access control model can be defined and implemented initially, with more sophisticated models being used later. The "scheme" in use at any given time is always indicated in the EHR Access object.  1see e.g. Ross Anderson - "Security in Clinical Information Systems" available at [http://www.cl.cam.ac.uk/users/rja14/policy11/policy11.html http://www.cl.cam.ac.uk/users/rja14/policy11/policy11.html]. 2IETF RFC 2440 - [http://www.ietf.org/internet-drafts/draft-ietf-openpgp-rfc2440bis-18.txt http://www.ietf.org/internet-drafts/draft-ietf-openpgp-rfc2440bis-18.txt]
    188172
    189173[[FootNote]]
    190174
    191 [wiki:"Archtectural Overview index" TOC] [wiki:"Archtectural Overview Design of the openEHR EHR" PREV] [wiki:"Archtectural Overview Versioning" NEXT] 
     175[wiki:"Archtectural Overview index" TOC] [wiki:"Archtectural Overview Design of the openEHR EHR" PREV] [wiki:"Archtectural Overview Versioning" NEXT]