Kılavuzlar›Güvenlik›Güvenli belgeler

Belge servisi · şifreleme, erişim ve gerçek olan sınırlar

Her şeyin üzerine oturduğu parça, yapamadıkları dahil.

Bu sitedeki her uyum iddiası — Amerikan, Avrupa, İngiliz, Alman — sonunda tek bir düzeneği işaret eder: klinik belgeleri saklayan servis. Bu sayfa onun nasıl çalıştığını gündelik dille anlatıyor ve ardından çoğu üretici belgesinin kaçındığı bir şey yapıyor.

Şunları sıralıyor: teknik çözümü olmayan riskler. Çözdüğümüz ve anlatmak isteyeceklerimiz değil — dürüst yanıtın “bu olabilir, neden böyle seçtiğimiz şu ve sizin ne yapmanız gerektiği bu” olduğu riskler. Yalnızca bir bölüm okuyacaksanız, onu okuyun.

Güvenlik denetçileri Veri koruma görevlileri Klinik direktörleri Anahtarı kim tutacaksa
AES-256-GCMher sürümde 1belge sürümü başına anahtar 0veritabanındaki anahtar 0kaybolan bir anahtarı kurtarma yolu 7aşağıda adı geçen risk
01 — Fikir

İki kilit, ve ikincisi binanın içinde değil

Her klinik belgeyi kendi asma kilidi olan bir kutuda, her asma kilidin de ayrı bir anahtarı olduğunu düşünün. O anahtarların kendisi tek bir kasada kilitli. Kutular ve küçük anahtarlar sizin veritabanınızda durur. Kasanın anahtarı durmaz.

Bütün tasarım budur. Aşağıdakilerin hepsi bunun üzerine ayrıntıdır ve mekaniğe girmeden önce sonuçları söylemeye değer:

Birinci sonuç

Çalınmış bir veritabanı veri ihlali değildir

Bütün veritabanınızı kopyalayan biri kutuları ve kilitli küçük anahtarları elde eder. Kasa anahtarı olmadan hiçbiri açılmaz. İhlal hukukundaki şifreleme istisnasını sizin için kullanılabilir kılan da budur — kasa anahtarı da alınmamışsa, verilerin anlaşılamaz olduğunu savunabilirsiniz.

İkinci sonuç

İmha kanıtlanabilir

Bir belgeyi imha etmek için onun küçük anahtarını yok edersiniz. Kutu, sonsuza kadar boş ve açılamaz halde kalır. Bu, bir satırı silmekten daha güçlüdür — silinen bir satır dün geceki yedekten geri gelir, yok edilen bir anahtar gelmez.

Üçüncü sonuç

Kasa anahtarını kaybetmek her şeyi kaybetmektir

Ana kopya yok, üretici nezdinde emanet yok, kurtarma hizmeti yok. Kasa anahtarı gittiyse, elinizdeki her klinik belge de onunla gitmiştir. Bu bilinçlidirve bölüm 05, buna getirilecek herhangi bir “çözüm”ün sorundan neden daha kötü olacağını anlatıyor.

02 — Mekanik

Bir belge gerçekte nasıl şifrelenir

Tekniğin adı zarf şifrelemesive bankalarla bulut sağlayıcıları aynı sorun için bunu kullanır. Üç katman var. Neden bir değil de üç olduğu üçüncü sütunda.

KatmanNedirNeden ayrıdır
Belge sürümü Asıl dosya — bir seans raporu, bir olay kaydı, bir kimlik belgesi — şununla şifrelenir: AES-256-GCM. Şifreli sonuç, diskte kendi dizinine, Odoo’nun olağan dosya deposunun dışına yazılır ve hiçbir zaman normal indirme yolundan sunulmaz. Şifreli metni olağan dosya alanının dışında tutmak, yanlış yapılandırılmış bir web sunucusunun klinik dosyaları kazara yayımlayamaması demektir, çünkü dosyalar bir web sunucusunun bakacağı yerde değildir.
Veri anahtarı (DEK) Yepyeni, rastgele 256 bitlik bir anahtar; her belgenin her sürümü içinüretilir. Hasta başına değil, belge başına değil — sürüm başına. Veritabanında saklanır, ama yalnızca sarılmış halde. Sürüm başına tek anahtar, imhayı kesin kılan şeydir. Bir sürümün anahtarını yok etmek tam olarak o sürümü imha eder, başka hiçbir şeyi etkilemez; böylece bir düzeltme saklanırken aslı imha edilebilir ya da tersi.
Kurulum anahtarı (KEK) Bütün kurulum için tek bir 256 bitlik anahtar; sunucuda bir dosyada durur ve her veri anahtarını sarar. Hiçbir zaman veritabanında saklanmaz ve sunucudan hiç çıkmaz. İşi yapan ayrım budur. Veritabanı ve anahtarlar, farklı yerlerde, farklı yedeklerle duran farklı şeylerdir; birini elde etmek diğerini vermez.

Her parça gerçekte nerede durur

Her belge sürümü için altı şey vardır. Bilerek farklı yerlerde tutulurlar, çünkü bütün tasarım hiçbir yerin bunlardan ikisini birden tutmamasına dayanır.

ParçaNerede tutulurYalnızca bunu elde etmek ne kazandırır
Dosyanın kendisi, şifreli Sunucuda kendi dizininde, şu düzende: <store>/<first 2 of uuid>/<next 2>/<uuid>.enc.v<version>. Dizinler yalnızca sahibine açık, dosyalar sahibi için okunur/yazılır. Odoo’nun dosya deposunun dışındadır, dolayısıyla /web/content üzerinden erişilemez ve ek dosya çöp toplamasından etkilenmez. Hiçbir şey. Anahtarsız, kimliği doğrulanmış şifreli metin. Sürüm başına tek dosya olduğu için yeni bir sürüm dosyalamak bir öncekinin üzerine yazamaz.
Nonce ve iki özet Veritabanında, sürüm satırında: bu şifreleme için kullanılan nonce, düz metnin özeti ve şifreli metnin özeti. Tek başına hiçbir şey — ama aşağıdaki bağlamayı yeniden kurmak için düz metin özeti gerekir; onu kaybetmek şifreli metni çözülemez kılar. Bu bir gözden kaçma değil, tasarım gereğidir.
Veri anahtarı, sarılmış halde Veritabanında, kurulum anahtarıyla şifrelenmiş olarak. Sarılmamış hali yalnızca bellekte, tek bir okuma boyunca vardır ve hemen ardından atılır. Kurulum anahtarı olmadan hiçbir şey. Çalınmış bir veritabanı size sarılmış anahtarlar ve şifreli metin yolları verir; ikisi de hiçbir şeyi açmaz.
Kurulum anahtarı Sunucuda bir dosya; yalnızca Odoo’nun çalıştığı hesap okuyabilir. Asla veritabanında. Asla dosya deposunda. Asla bildirilmiş bir yedek kökünün içinde — bunların her biri açılışta denetlenir ve uyarı değil, ölümcül hatadır. Veritabanı olmadan hiçbir şey— sarılmış veri anahtarları orada durur — ve şifreli metin deposu olmadan da hiçbir şey. Üç ayrı şey gerekir ve bunlar üç ayrı yerde tutulur.
Erişim kuralları Veritabanında, kayıt olarak — kim neyi, hangi dayanakla ve ne zamana kadar açabilir. Bir meslektaşın neyi açabileceğine karar verirler. Dosyalara sahip olup anahtarlara sahip olmayan birine hiçbir etkileri yoktur; şifrelemenin var olma nedeni de o durumdur.
Erişim günlüğü Veritabanında, yalnızca eklenen ve özetle zincirlenen biçimde. Yalnızca her değişiklik değil, her okumakaydedilir. Kimin neyi açtığının kaydı. İçerik teslim edilmeden önce yazılır, dolayısıyla birinin iptal ettiği bir indirme bile erişim olarak kayda geçer.

İki akış, adım adım

Yukarıdakilerin hepsini bunlara bakarak doğrulamak daha kolay. Birincisi bir belge dosyalandığında, ikincisi biri bir belgeyi görmek istediğinde ne olduğudur. İkincisini dikkatle okuyun — çoğu sistemin iddia ettiğinden zayıf olduğu yer orasıdır.

1 bunu yazılım kendiliğinden yapar 1 bir insan bir şey yapar ✕ yazılım reddeder
Yazma yolu Bir belgenin dosyalanması — yüklemeden diske Düz metin yalnızca bellekte vardır, başka hiçbir yerde. Bu sıranın hiçbir noktasında diske şifresiz tek bir bayt yazılmaz.
  1. Biri bir dosya yükler

    Bir seans raporu, bir olay kaydı, bir kimlik belgesi. Belleğe gelir.

  2. Bu sürüm için yepyeni bir anahtar üretilir

    İşletim sisteminin kriptografik rastgelelik kaynağından 32 bayt. Bir paroladan türetilmez, başka bir belgeden yeniden kullanılmaz, bu belgenin önceki sürümünden de yeniden kullanılmaz.

    sürüm başına bir anahtar — imhayı kesin kılan budur
  3. İçeriğin parmak izi alınır ve yeni bir nonce çekilir

    Düz metnin SHA-256 özeti ve bir kez kullanılan 96 bitlik bir sayı. Şifreleme çekirdeğindeki hiçbir işlev çağıranından nonce kabul etmez; dolayısıyla klasik yeniden kullanım hatası burada yapılamaz.

  4. Dosya, tam olarak bu belgeye ve sürüme bağlanarak şifrelenir

    AES-256-GCM; ek kimlik doğrulama verisi olarak uuid | sürüm numarası | içerik parmak izi kullanılır. Bu bağlama zorunludur. Sonradan başka bir belgeye ya da başka bir sürüme kopyalanan bir şifreli metin, yanlış kişinin erişim kuralları altında sessizce açılmak yerine çözülmeyi reddeder.

  5. Veri anahtarı kurulum anahtarıyla sarılır

    Kurulum anahtarıyla şifrelenir, anahtar kuşağı ve anahtar ad alanıyla etiketlenir ve veritabanında bu biçimde saklanır. Sarılmamış anahtar bellekten hemen atılır.

  6. Şifreli metin kendi deposuna, atomik olarak yazılır

    Hedef dizinde geçici bir dosyaya yazılır, fiziksel diske geçirilir ve ardından yerine taşınır — böylece yazım ortasında bir çöküş yarım bir sürüm bırakamaz. Geçici dosya şifreli metin tutar, asla düz metin değil.

  7. Veritabanı içeriği değil, işaretçiyi tutar

    Depolama yolu, nonce, iki özet, boyut ve sarılmış anahtar. Asla düz metin, asla sarılmamış bir anahtar, asla kurulum anahtarı.

  8. Dosyalama erişim günlüğüne yazılır

    Kimin dosyaladığı, ne zaman, ne büyüklükte ve hangi türde. Yalnızca eklenen ve kendinden öncekilere zincirlenen biçimde.

Veritabanının bir yedeğinde artık ne var: yollar, özetler ve kendileri şifrelenmiş anahtarlar. Onu kurulum anahtarı olmayan bir makineye geri yüklemek hiçbir şeyi açmaz.
Okuma yolu Bir belgeyi açmak — anahtar nasıl bulunur ve kullanılır Bir istekle çözülmüş bir bayt arasında altı denetim durur. Her biri reddedebilir ve dördü, anahtar diskten hiç okunmadan önce reddeder.
  1. Biri bir belge ister

    Arka ofisteki bir klinisyen ya da kendi kayıtları sayfasındaki bir danışan. İkisi de aynı denetimlerden geçer; hiçbiri diğerininkini atlamaz.

  2. İki adımla giriş yapılmamış mı? Reddedilir

    Danışana dönük yolda, yalnızca parolası olan bir hesaba kayıtlar gösterilmez. Ret, belge yokmuş gibi davranmak yerine ne yapılması gerektiğini söyler.

  3. Çok fazla, çok hızlı mı okunuyor? Reddedilir

    Danışana dönük yolda kişi başına bir hız sınırı. Açıkça söylenir, çünkü söylemek hiçbir şey sızdırmaz ve bir destek aramasından kurtarır.

  4. Erişim kararı sabit bir sırayla işler

    Önce ret kuralları — bir tanesi bile kesindir. Sonra izin kuralları: hiçbiri uymuyorsa yanıt hayırdır. Acil erişime ancak o noktada bakılır; böylece hiç verilmemiş olana ulaşabilir ama bir reddi bozamaz. Hassasiyet etiketleri en son uygulanır ve yalnızca erişimi geri alabilir.

    varsayılan olarak kapalı · bu denetimde süper kullanıcı dalı yoktur
  5. Okuma, hiçbir şey çözülmeden önce günlüğe yazılır

    Kayıt önce yazılır, böylece birinin yarıda kestiği bir aktarım bile erişim olarak kayıtta durur. Günlük yalnızca eklenir ve özetle zincirlenmiştir; kayıtlar sonradan sessizce çıkarılamaz, ne bizim ne de kendi yöneticinizin eliyle.

  6. Saklanan dosya, kayıtlı özetiyle karşılaştırılır

    Herhangi bir anahtara dokunulmadan önce. Böylece depodaki bozulma, sonradan kafa karıştırıcı bir kimlik doğrulama hatası olarak değil, bozulma olarak bildirilir.

  7. Şimdi — ve ancak şimdi — kurulum anahtarı dosyasından okunur

    Bu sürümün veri anahtarını açmak için kullanılır; bu sırada anahtar kuşağı ve ad alanı denetlenir. Bir ad alanı için sarılmış bir anahtar, başka bir ad alanı olarak açılamaz — her iki kurulum anahtarını birden elinde tutan biri tarafından bile.

  8. Dosya bellekte çözülür ve bağlama doğrulanır

    Belge tanımlayıcısı, sürüm numarası ve içerik parmak izi yeniden kurulur ve uyuşmak zorundadır. Kurcalama, yanlış anahtar ve başka bir kayıttan taşınmış bir şifreli metin burada başarısız olur — ve hepsi aynı biçimdebaşarısız olur, çünkü bir saldırgana hangi parçanın tutmadığını söylemek bedava bilgi vermektir.

  9. Baytlar okuyucuya akıtılır, sonra unutulur

    Veri anahtarı bellekten düşürülür. Bu üründe hiçbir kod yolu diske çözülmüş bir bayt yazmaz — önizleme için değil, küçük resim için değil, arama dizini için değil.

  10. Anahtar imha edildiyse, hiçbir yol yoktur

    İmha edilmiş bir sürüm, anahtarının artık var olmadığını bildirir. Yedek bir yol, önbellekte bir kopya ve bir kurtarma rotası yoktur; imhayı böyle yapmanın anlamı da budur.

Bunu “kayıtlarımı kim görebilir” sorusunun yanıtı olarak okuyun. 2’den 4’e kadarki adımlar izin verilip verilmediğinekarar verir, kanıtlanabilirkılar ve 6’dan 9’a kadarki adımlar, doğru bir kararın bile yalnızca bir bayt akışı ürettiği, hiçbir zaman bir yerde duran çözülmüş dosya bırakmadığı anlamına gelir.

Kurulum anahtarı: nasıl üretilir ve sunucu neyi reddeder

Tek bir anahtar kurulumdaki bütün veri anahtarlarını korur; dolayısıyla onun ele alınışı satır satır denetlenmeye değer kısımdır. Aşağıdaki denetimlerin hepsi açılışta çalışır ve hepsi ölümcüldür — sunucu, sahip olduğunuzu sandığınız ama sahip olmadığınız bir korumayla çalışmaktansa hiç başlamaz.

Nasıl üretilir

İşletim sisteminin rastgelelik kaynağından 32 bayt, tek bir adımda yalnızca sahibinin okuyabileceği izinle oluşturulan bir dosyaya yazılır; böylece kısa bir an bile başkası tarafından okunabilir olmaz.

Dosya ya 32 ham bayt ya da 64 onaltılık karakter içermelidir. Başka hiçbir şey kabul edilmez — bir parola, anahtara genişletilmek yerine reddedilir, çünkü genişletilmiş bir parola, daha güçlü görünen daha zayıf bir anahtardır.

Nerede duramaz

Veritabanında değil. Odoo’nun veri dizininde, eklenti yolunda ya da dosya deposunda değil. Şifreli metin deposunun içinde değil. Yedek kökü olarak bildirdiğiniz hiçbir dizinin içinde değil.

İnsanların yanıldığı sonuncusudur. Hem veritabanını hem anahtarı tutan bir yedek, ele geçmiş bir anahtar demektir ve kurulumu Amerikan ihlal güvenli limanının ve Avrupa’daki Md. 34(3)(a) istisnasının dışına çıkarır — ki şifrelemenin burada olmasının bütün nedeni odur.

Anahtar değişimi ve neden ucuz olduğu

Kurulum anahtarını değiştirmek veri anahtarlarını yeniden sarar ve şifreli metnin tek bir baytını bile yeniden yazmaz. Yüz bin belge, yüz bin dosyanın yeniden yazılabileceği hızda değil, yüz anahtarın yeniden şifrelenebileceği hızda değişir.

Kuşak numarası sarmanın içindedir; dolayısıyla eski kuşakla sarılmış bir anahtar, yeniymiş gibi sessizce açılamaz.

İmha ve geriye kalan

Bir sürümü imha etmek, sarılmış anahtarını rastgele baytlarla üzerine yazar , alanı boşaltmak yerine; böylece veritabanı sayfasından bile kurtarılacak bir şey kalmaz.

Sürümün üst veri kabuğu ve bütün erişim günlüğü kalır — belgeyi elinizde tuttuğunuzu ve doğru biçimde imha ettiğinizi hâlâ kanıtlayabilirsiniz. Anahtarı hâlâ varken bir sürüm silinemez, dolayısıyla sıra asla ters olamaz.

Bir denetçinin sorması gereken üç ayrıntı

Şifrelemenin genellikle neredeyse doğru uygulandığı yerler bunlardır ve farkın tamamı o “neredeyse”dedir.

Her şifreli metin kendi kaydına bağlıdır

Bir sürüm şifrelenirken şifreleme; o belgenin tanımlayıcısına, sürüm numarasına ve içeriğinin parmak izine bağlanır. Kriptograflar buna ek kimlik doğrulama verisider ve burada zorunludur — hiçbir çağıran onu atlayamaz.

Sonuç: başka bir belgeye ya da başka bir sürüme kopyalanan bir şifreli metin çözülmeyi reddeder. Yanlış hastanın erişim kuralları altında sessizce açılmaz — ki bu bağlama olmayan bir sistemin tam da açık olduğu saldırıdır.

Bir nonce asla yeniden kullanılmaz

Aynı anahtarla aynı nonce iki kez kullanılırsa AES-GCM felaket derecede zayıflar: böyle iki şifreli metni gören bir saldırgan ikisinden de bilgi çıkarabilir. Klasik uygulama hatası budur.

Burada her şifreleme kendi nonce’unu üretir ve hiçbir işlev çağıranından nonce kabul etmez. Hatayı yapmak zorlaştırılmamış; imkânsız kılınmıştır.

Kriptografinin içinde Odoo yok

Şifreleme çekirdeği, uygulama çatısına hiç bağımlı olmayan bağımsız bir parça olarak yazılmıştır; böylece şifreleme iddiasını denetleyen biri bir klinik sistemi çalıştırmadan onu tek başına okuyup sınayabilir.

Güvenlik ekibiniz bu sayfadaki iddialara inanmak yerine doğrulamak isterse, onlara verilecek dosya odur ve kısa bir dosyadır.

Terapi notları için bir değil iki anahtar

Hukukun, bir terapistin kendi süreç notlarını klinik kayıttan ayırdığı yerde — en açık örnek Amerikan psikoterapi notu ayrıcalığıdır — o notlar ikinci, farklı bir kurulum anahtarıylaşifrelenir. Olağan kaydı açan anahtar onları açmaz.

Bu önemlidir, çünkü ayrımı erişim kurallarının değil depolamanın bir özelliği haline getirir. Yarın sistemdeki her izin yanlış olsa bile, olağan anahtar yine o notları çözmezdi. Bu aynı zamanda ikinci anahtarın devreye almadan önce yapılandırılması gerektiği anlamına gelir: onsuz böyle bir notu dosyalamak, başarısız olur — sessizce ana anahtara dönmez, çünkü sessiz bir geri dönüş, kimse fark etmeden ayrımı yok ederdi.

03 — Bir belgeyi kim açabilir

Şifreleme bir hırsızın ne elde ettiğine karar verir. Bu ise bir meslektaşın ne elde ettiğine

İkisi sık sık birbirine karıştırılır. Şifreleme, sistemde hiç bulunmaması gereken birine karşı korur. Çok daha yaygın olan soruna hiçbir şey yapmaz: sistemde bulunan ve okumaya hiç işi olmayan bir kayda bakan biri.

Yetkilendirme katmanı bunun içindir ve çoğu sistemden farklı bir ilkeyle çalışır: erişim, görev unvanını değil bakım ilişkisini izler.

Her okumada olanlar

Her seferinde. Girişte bir kez değil.

  1. Kim soruyor?Giriş yapmış, bir bireye çözülmüş bir kişi. Bir rol değil, bir grup değil, “sistem” hiç değil.
  2. İzin veren bir kural var mı?Kişinin kendisi olduğu için, yürürlükte bir bakım ilişkisi olduğu için ya da biri adına erişim verdiği için. Kural yoksa erişim de yok.
  3. Yasaklayan bir kural var mı?Bir ret her zaman bir izni yener. Mühürlenmiş belgeler, esirgenmiş kayıtlar ve ayrı tutulan terapi notları her yolda reddeder.
  4. Günlük kaydını yazİçerik geri gönderilmeden önce. Günlüğe yazma başarısız olursa içerik sunulmaz.
  5. Anahtarı aç, bellekte çöz, akıtDüz metin çıkış yolunda hiçbir zaman diske yazılmaz ve olağan dosya alanına hiç düşmez.

Sizi içeri almayanlar

Açıkça yazılıyor, çünkü denetçiler soruyor

  1. Yönetici olmakBir yönetici hesabı tek başına hiçbir klinik belgeyi açmaz. Bakım için bir geçersiz kılma ve destek arka kapısı yoktur.
  2. Onu kendin yazmış olmakOlay ve koruma dosyaları, direktöre dosyalandıkları için onları dosyalayan kişiye bile kapalıdır.
  3. Kıdemli olmakKlinik roller, birinin hangi ekranlara ulaşacağına karar verir. Neyi açabileceğine asla karar vermez.
  4. Hastanın kendisi olmakBir danışan, kendisi hakkındaki bir kaydı ancak bir kural bunu özellikle verdiği yerde görür — gerekçesi ve kararı verenle birlikte kaydedilen klinik ve hukuki bir karar.
  5. Bir referansı tahmin etmekGöremeyeceğiniz bir belge “bulunamadı” döndürür, asla “yasak” değil; böylece iki yanıt arasındaki fark, hangi kayıtların var olduğunu keşfetmek için kullanılamaz.
Acil erişim vardır ve asla sessiz değildir

Bir klinisyenin bazen gerçekten hiçbir ilişkisi olmayan bir kayda ihtiyacı olur — bir kriz, mesai dışı bir çağrı, hastalanan bir meslektaş. Kuruluşunuz izin veriyorsa acil erişim kullanılabilir. Kullanılması, sonradan gözden geçirilen kayıtlı bir oturum açar.

Yalnızca reddeden bir sistem kendi açısından güvensizdir ve Birleşik Krallık’ta açıkça uyumsuzdur: Caldicott 7. İlke, paylaşma ödevini koruma ödevi kadar önemli kılar. Dolayısıyla erişim vardır ve kullanımı asla sessiz değildir.

04 — Bir belgenin ömrü

Dosyalamadan imhaya ve geriye ne kaldığına

1 bunu yazılım kendiliğinden yapar 1 bir insan bir şey yapar ya da karar verir ✕ yazılım reddeder
Bir seans raporu, baştan sona 2026’da bir salı dosyalandı, 2046’da imha edildi Yirmi yıl varsayımsal bir süre değildir — ruh sağlığı kayıtları için İngiliz saklama süresidir ve saklama düzeneği onun etrafında tasarlanmıştır.
  1. Bir terapist raporu yazıp dosyalar

    Bir belge türüne karşı — kuralları, saklama süresini ve kimin açabileceğini belirleyen o türdür.

  2. Dosyalama penceresi kimin açabileceğini söyler

    Açık sözcüklerle, kaydedilmeden önce Önce. Yanlış dosyalamanın çoğu, bir belgenin nereye düşeceğini kimsenin bilmemesinden olur.

  3. Yeni bir anahtar üretilir ve içerik şifrelenir

    Bu belgeye, bu sürüme ve bu içeriğin parmak izine bağlanarak.

  4. Anahtar kurulum anahtarıyla sarılıp saklanır

    Sarılmamış anahtar yalnızca bellekte, gerektiği an boyunca vardır.

  5. Şifreli metin olağan dosya alanının dışına yazılır

    Kendi izinleriyle, kendi dizininde.

  6. Bakım ekibindeki meslektaşlar yıllar boyunca onu açar

    Her açılış, içerik görünmeden önce günlüğe yazılır.

  7. Bir düzeltme dosyalanır

    Kendi yeni anahtarıyla, bir yeni sürümolarak. Aslına dokunulmaz ve hâlâ okunabilir — değiştirilebilir bir kayıt, kanıt olarak değersizdir.

  8. Biri şifreli metni başka bir kayda taşımaya çalışır

    Çözülmeyi reddeder, çünkü şifreleme asıl belgenin kimliğine bağlıdır.

  9. Tedavi biter ve saklama sayacı başlar

    İlişkinin bitişinden — dosyanın oluşturulduğu günden değil.

  10. Yirmi yıl sonra, zamanlanmış bir iş onu imha eder

    Anahtar malzemesi rastgele baytlarla üzerine yazılır, sonra anahtar satırı silinir. Önce üzerine yazmak bilinçlidir: işlem yarıda kesilirse hata durumu, olmaması gerekirken hayatta kalan bir belge değil, okunamayan bir belgedir.

  11. Geriye kalan: boş bir kabuk ve denetim izi

    Kaydın var olduğunu, yirmi yıl boyunca kimin gördüğünü ve zamanında imha edildiğini hâlâ kanıtlayabilirsiniz. İçerik, biz dahil hiç kimse tarafından, kalıcı olarak okunamaz.

Yasal bir saklama kararı bütün bunları durdurur. Bir dava, bir şikâyet ya da bir soruşturma açıkken imha askıya alınır ve hiçbir şey yok edilmez — otomatik bir saklama işinin aksi halde gerçek zarar vereceği durum da budur.
05 — Dürüst kısım

Teknik çözümü olmayan yedi risk

Yukarıdaki her şey sistemin iyi yaptıklarıydı. Bu bölüm tersidir: kötü bir şeyin olabileceği ve hiçbir mühendisliğin kapatamadığı yerler — çünkü kapatmak, kazandırdığından fazla koruma götürür.

Her biri gerçekte ne olduğunu, bizim ne yaptığımızı ve sizde neyin kaldığını söylüyor. Bir tedarikçi size şifrelemelerinde bunların hiçbirinin olmadığını söylüyorsa, ya bunu hiç düşünmemiştir ya da sizin düşünmemenizi umuyordur.

1 · Kurulum anahtarı kaybolur ya da silinir — her şey gider

Ne olur: anahtar dosyası silinir, disk bozulur, sunucu onsuz yeniden kurulur ya da nerede olduğunu bilen tek kişi ayrılır. Sistemdeki her klinik belge kalıcı olarak okunamaz hale gelir. Kurtarması zor değil — imkânsız. Veritabanı sapasağlam ve işe yaramaz.

Neden düzeltmiyoruz: tek çözümler, üreticinin tuttuğu bir kopya ya da bir kurtarma arka kapısıdır. İkisi de bütün tasarımın var olma nedeni olan özelliği yok eder. Bir kopyayı biz tutsaydık, “çalınmış bir veritabanı ihlal değildir” doğru olmaktan çıkardı ve bu sayfada neleri göremediğimize dair her söz yalan olurdu. Kurtarılabilir bir anahtar, başkasının da kullanabileceği bir anahtardır.

Ne yapıyoruz: anahtar eksikse sistem başlamayı reddeder; sessizce çalışıp sorunu bir belge açılmadığında keşfetmenize bırakmaz. Açılış denetimi, anahtar dosyası sahibinden başkasınca okunabiliyorsa ya da yanlış hesaba aitse de reddeder.

Sizde ne kalıyor: anahtarı verilerden ayrı olarak yedekleyin ve geri yükleyebildiğinizi sınayın. Nerede olduğunu iki kişi bilmeli. Bu, bütün platformdaki sonucu en ağır tek işletme ödevidir ve doğru yapmak on dakika sürer.

2 · Anahtar, sahip olmaması gereken birine kopyalanır

Ne olur: bir yönetici anahtar dosyasını bir meslektaşına e-postayla gönderir, bir destek kaydına yapıştırır, bir dizüstüne kopyalar ya da ayrılan bir mühendis bir kopyayı alıkoyar. Hem o dosyayı hem de veritabanının bir kopyasını birlikte elinde tutan herkes, her belgeyi çevrimdışı, hiçbir giriş yapmadan çözebilir ve erişim günlüğünüze hiçbir şey yazılmaz — çünkü günlük, uygulama üzerinden yapılan okumaları kaydeder ve bu yol uygulamayı tamamen atlar.

Neden düzeltmiyoruz: anahtarın, onu kullanan yazılım tarafından okunabilmesi gerekir. Onu okuyabilen her süreç kopyalayabilir de. Donanımsal güvenlik modülleri bu sorunu çözmez, yerini değiştirir — yazılımın hâlâ modülden anahtarları açmasını isteyebilmesi gerekir, dolayısıyla o yazılımın yetkilerine sahip bir saldırgan yine düz metni elde eder.

Ne yapıyoruz: dosya izinleri açılışta uygulanır, dolayısıyla herkesin okuyabildiği bir anahtar fark edilmeden geçmek yerine sistemi durdurur. Ve kendi sunucunuzda barındırdığınız için dosya hiçbir zaman bizde olmaz — onu kopyalayabilecek kişiler kümesi sizin personelinizdir, sizin personeliniz artı bizimki değil.

Sizde ne kalıyor: anahtarı denetim altındaki fiziksel bir nesne gibi görün. Sunucuya kimlerin giriş yapabileceğini kısıtlayın, ortak bir hesap yerine bireysel yönetici hesapları kullanın ve sunucuya erişimi olan biri ayrıldığında anahtarı değiştirin — bölüm 06 değişimin neden ucuz olduğunu anlatıyor.

3 · Anahtar, verilerle aynı yedeğin içine düşer

Ne olur: en sessiz ve en yaygın hata. Biri bütün sunucuyu süpüren bir yedekleme kurar ve anahtar dosyası veritabanıyla aynı arşivin içinde kalır. Artık çalınan tek bir yedek her iki yarıyı da içerir, şifreleme hiçbir şeyi korumaz ve — daha kötüsü — bir ihlal raporunda şifreleme istisnasını ileri sürüyor olurdunuz, çünkü kâğıt üzerinde her şey şifreliydi.

Neden zor: çalışan sistemde hiçbir şey farklı görünmez. Kusursuz çalışır. Sorun yalnızca yedekte vardır ve yalnızca yedeğin çalındığı gün önem kazanır.

Ne yapıyoruz: bu listede kısmen karşı önlem aldığımız tek madde budur. Yedek dizinlerinizi yapılandırmada bildirirsiniz ve anahtar dosyası bunlardan birinin içindeyse sistem başlamayı reddeder. Hiç yedek yolu bildirmezseniz, istisnanın doğrulanamayacağı uyarısını verir — çünkü denetlenmemiş bir iddia tehlikeli olanıdır.

Sizde ne kalıyor: yedek köklerini dürüstçe bildirin ve yedekleme aracınızın gerçekte neleri içerdiğini, içerdiğini sandığınızı değil, denetleyin.

4 · Meşru erişimi olan biri, okumaması gereken bir şeyi okur

Ne olur: bir terapist, aynı zamanda komşusu olan bir danışanın dosyasını açar. Bir resepsiyon görevlisi yerel bir ünlüyü arar. Her kural sağlanmıştır — kişinin geçerli bir bakım ilişkisi ya da geçerli bir dayanağı vardır ve bunu yalnızca kötüye kullanmıştır. Şifreleme burada konu dışıdır. Erişim denetimi de öyle, çünkü erişim verilmişti.

Neden hiçbir sistem düzeltemez: yazılım niyeti okuyamaz. Okumaya çalışan bir sistem — bir ad yerel göründüğü için erişimi engelleyen — acil bir durumda gerçek klinik işi engellerdi; bu da kendi başına bir zarar ve Birleşik Krallık’ta kendi başına bir uyumsuzluktur.

Ne yapıyoruz: imkânsız kılmak yerine görünür kılıyoruz. Her açılış, içerik görünmeden önce, kimsenin düzenleyemediği bir günlüğe kaydedilir — yöneticileriniz dahil, biz dahil. Bakım ilişkileri biter ve kısa bir tolerans süresinden sonra erişim de onlarla biter; böylece pencere dardır. Acil erişim, sessiz bir yetenek değil, ayrı, bilinçli ve gözden geçirilen bir eylemdir.

Sizde ne kalıyor: birinin günlüğü gerçekten okuma okuması gerekir. Yönetişim modülü bu gözden geçirmeye bir ev verir — sıklık, adı belli bir gözden geçiren, bulgu izi — ama kimsenin bakmadığı bir günlük kimseyi caydırmaz. Kâğıt üzerinde en sık var olan ve hiç gerçekleşmeyen denetim budur.

5 · Sunucuda root yetkisi olan biri, belge açıkken onu okur

Ne olur: bir belgeyi yetkili bir klinisyene gösterebilmek için yazılımın onu çözmesi gerekir. O an için sunucunun belleğinde okunabilir metin olarak bulunur. İşletim sistemine tam hâkim biri, ilkesel olarak onu orada okuyabilir — ya da yazılımı kopya tutacak biçimde değiştirebilir.

Neden hiçbir sistem düzeltemez: bu, birine bir şey gösteren her sistem için doğrudur. Makine belgeyi gösterebiliyorsa, makinenin sahibi belgeyi elde edebilir. Şifreleme, veriyi duruyorken ve yolculukta korur; onu hukuka uygun biçimde işleyen bilgisayardan koruyamaz.

Ne yapıyoruz: pencereyi daraltıyoruz — çözme, okuma anı boyunca bellekte olur ve düz metin asla diske yazılmaz. Ve kendi sunucunuzda barındırmak demek, root yetkisine sahip tarafın siz olmanız demektir, biz değil.

Sizde ne kalıyor: sunucu yönetimi elinizdeki en yüksek yetkili roldur. Az sayıda, adı belli kişi; parola değil anahtar; ve erişimin kimde olduğunun kaydı. Bu, klinik hesapların yanında işe giriş-çıkış kontrol listesine aittir.

6 · Bir belge imha edilir ve edilmemeliydi

Ne olur: bir saklama kuralı yanlış yapılandırılır ya da imha yanlış seçim üzerinde çalıştırılır. Anahtarların üzerine yazılır ve belgeler okunamaz hale gelir. Geri alma yoktur ve dün geceki yedeği geri yüklemek işe yaramaz — yedek aynı şifreli metni içerir ve onun anahtarı gitmiştir.

Neden düzeltmiyoruz: geri alınabilir bir imha, imha değildir. Anahtar imhasının bir düzenleyici nezdindeki bütün değeri, geri alınamamasıdır. Yok edilen anahtarlar için bir “geri dönüşüm kutusu”, verilerin aslında hiç yok edilmediği anlamına gelir ve verdiğiniz her silme beyanı yalan olurdu.

Ne yapıyoruz: anahtarlar hiçbir olağan yoldan silinemez — silme işlemi düpedüz engellenmiştir ve imha yalnızca, ilerledikçe denetim kaydı yazan imha yolundan olur. Yasal saklama kararları imhayı tamamen askıya alır. Saklama, dosya yaşından değil saklanan başlangıç tarihlerinden sayılır; böylece yanlış tarihli imhanın en yaygın nedeni ortaya çıkmaz.

Sizde ne kalıyor: saklama yapılandırmasını ilk imha çalışmasından sonra değil, devreye almadan önce denetleyin. Ve zamanlanmış işlerin gerçekten çalıştığını doğrulayın — sessizce duran bir saklama işi başka bir sorundur, ama aynı biçimde, yani çok geç keşfedilir.

7 · Bugünün şifrelemesi sonsuza kadar güçlü kalmayacak

Ne olur: ruh sağlığı kayıtları yirmi yıl, kimi zaman daha uzun saklanır. AES-256 bugün kırılabilir sayılmıyor — insanların üzerine spekülasyon yaptığı kuantum bilgisayarlarla da — ama dürüst hiçbir mühendis 2046 hakkında yüzü kızarmadan söz veremez.

Neden kimse düzeltemez: henüz gerçekleşmemiş matematiksel bir sonuca karşı koruma satın alamazsınız. Klinik kayıtlar için “kuantum-dayanıklı” depolama satan biri, bir hikâye satıyordur.

Ne yapıyoruz: algoritmayı ve anahtarları, verilerinize dokunmadan değiştirilebilir kılıyoruz. Anahtar değişimi her veri anahtarını yeni bir kurulum anahtarıyla yeniden sarar, şifreli metnin tek bir baytını bile yeniden yazmadan, dolayısıyla bir göç projesi değil bir arka plan işidir. Kriptografi, tam da zamanı geldiğinde değiştirilebilsin diye tek bir küçük ve denetlenebilir bileşende yalıtılmıştır.

Sizde ne kalıyor: hiç değiştirmemek yerine düzenli olarak değiştirin ve yirmi yıllık bir kaydın ömründe bir kez yeniden şifreleme bekleyin. Bunu bir kriz olarak değil, bakım olarak planlayın.

Yedisinde ortak olan örüntü

Yedisinin ortak yanına bakın. Her durumda riski kapatacak olan “çözüm” — kurtarılabilir bir anahtar, geri alınabilir bir imha, niyeti okuyan bir sistem, kendi yöneticilerinize karşı koruma — koruduğundan daha değerli bir şeyi yok ederdi. Tasarım kararı, bu risklerin gözden kaçmış olması değildir. Onları kapatmanın, geri kalan güvenceleri yalan kılacak olmasıdır.

Size kalan kısım küçük, somut ve çoğunlukla usule ilişkindir: anahtarı ayrı yedekleyin, sunucuya kimin ulaşabileceğini denetleyin, yedek yollarınızı bildirin, erişim günlüğünü okuyun ve saklama ayarlarını bir kez kontrol edin. Bu liste tek sayfaya sığar ve hepsi bu kadardır.

06 — Anahtarın saklanması

Sistem neyi denetler, neyi yalnızca siz yapabilirsiniz

1. ve 2. riskler bu sayfadaki sonucu en ağır iki madde olduğuna göre, hangi parçaların otomatik hangilerinin sizin olduğu konusunda kesin konuşmaya değer.

DenetimDurumNe olur
Anahtar var ✓ Açılışta doğrulanır. Eksik bir anahtar, sistemin çalışıp bir hastanın önünde birer birer belge hatası vermesi yerine sistemi durdurur.
Yalnızca sahibi okuyabiliyor ✓ Gruba ya da herkese açık bir anahtar, kimsenin okumadığı bir günlükteki uyarı değil, açılışta ölümcül hatadır.
Doğru hesaba ait ✓ Servisin çalıştığı hesaba karşı denetlenir. Ayrılmış bir mühendisin hesabına ait bir anahtar bir bulgudur.
Bir yedek dizinin içinde değil ✓ Yedek köklerinizi siz bildirirsiniz; anahtar birinin içindeyse sistem başlamayı reddeder. Hiç bildirmezseniz, ihlal istisnasının doğrulanamayacağı uyarısını verir.
Verilerle birlikte yolculuk edeceği bir yerde değil ✓ Anahtarın asla bulunmaması gereken kısa bir dizin listesi düpedüz reddedilir.
Gerçek bir anahtar ✓ Yalnızca 32 ham bayt ya da 64 onaltılık karakter olarak kabul edilir. Kırpılmış ya da bozulmuş bir dosya, kimsenin bir daha açamayacağı belgeler üretmek için kullanılmak yerine reddedilir.
Ayrı olarak yedeklenmiş — Sizin işiniz ve yazılım yardım edemez. Görmemize izin verilmeyen bir yedeği doğrulayamayız ve kendi anahtar yedeğini denetleyebilen bir sistem, ona ulaşabilen bir sistem olurdu. İki kişi, iki yer, sınanmış geri yükleme.
Sunucuya kim ulaşabilir — Sizin işiniz. Root yetkisi olan herkes anahtarı okuyabilir. O liste kısa, adı belli ve insanlar ayrıldıkça gözden geçirilmiş olmalı.
Biri ayrıldığında anahtar değişimi ⚙ Destekleniyor ve ucuz: değişim, hiçbir şifreli metni yeniden yazmadan her veri anahtarını yeni bir kurulum anahtarıyla yeniden sarar ve eski anahtarlar, hâlâ yolda olan bir şeyi açmak için saklanabilir. Ne zaman değiştireceğinize siz karar verirsiniz. Bir sunucu yöneticisi ayrıldıktan sonra bariz andır ve en sık kaçırılan andır.
✓OtomatikYazılım tarafından, her başlayışta denetlenir. ⚙Destekleniyor — zamanına siz karar verirsinizKurulu ve çalıştırması ucuz; zamanlama bir işletme tercihidir. —Yalnızca siz yapabilirsinizYazılımdaki bir eksik değil. Yazılımın kendi amacını bozmadan doğrulayamayacağı bir şey.
07 — Asla yapmayacakları

Eksiklik değil, doğası gereği olan dört sınır

Tasarımın sonuçları; kimse sonradan keşfetmesin diye yazılıyor

  • Belgeler içeriklerine göre aranamaz. Şifreli metin, tam da şifrelemenin korumak için var olduğu şeyin aranabilir bir kopyası oluşturulmadan dizine alınamaz. Belgeler kişiye, türe ve tarihe göre bulunur. Aynı içerik için hem güçlü şifreleme hem tam metin araması vaat eden her tedarikçi, ikisinden birini yalan söylüyordur — hangisi olduğunu sorun.
  • Bu bir elektronik sağlık kaydı değildir. Klinik dokümantasyon yok, yapılandırılmış not yok, HL7 ya da FHIR mesajlaşması yok, reçete yok. Belgeleri saklar ve denetler. Bir EHR gerekiyorsa başka yerden gelir ve belgeleri bu tutar.
  • Çekirdek, sağlık hukuku hakkında hiçbir şey bilmez. Şifreleme, erişim, günlükleme ve saklama tasarım gereği yargı alanından bağımsızdır. Ülkeye özgü her kural üstte ayrı bir modül olarak gelir; aynı çekirdeğin Amerikan, Avrupa, İngiliz ve Alman kurulumlarına, bir ülkenin varsayımları diğerine sızmadan hizmet etmesinin nedeni de budur.
  • Bir kişi belgeye bakmaya başladıktan sonra onu koruyamaz. Hukuka uygun erişimi olan bir klinisyen ekranın fotoğrafını çekebilir, metni kopyalayabilir ya da trende yüksek sesle okuyabilir. Hiçbir depolama sistemi ekranın ötesine geçemez. Bu bir personel, eğitim ve disiplin meselesidir ve erişim günlüğü, olayı sonradan araştırılabilir kılan şeydir.
Tek paragraflık özet

Her klinik belgenin her sürümü kendi anahtarıyla ve o belgenin kimliğine bağlanarak şifrelenir; böylece başka bir yere taşınamaz. Bu anahtarlar, veritabanının dışında duran ve sunucunuzdan hiç çıkmayan tek bir kurulum anahtarıyla sarılır — dolayısıyla çalınmış bir veritabanı bir açıklama değildir ve imha, bir satırı silerek değil bir anahtarı yok ederek yapılır. Belgeler yalnızca yürürlükte bir tedavi ilişkisi olan kişilere açılır ve her açılış önce zincirlenmiş bir günlüğe yazılır; böylece erişim meşruyken bile kötüye kullanım görünür olur. Mühendislikle düzeltilemeyecek olan bölüm 05’te adlandırılıyor ve sizin tarafınızın kısa hali şu: anahtarı ayrı yedekleyin, sunucu erişimini kısa ve adı belli tutun, yedek yollarınızı bildirin, günlüğü okuyun ve devreye almadan önce saklama ayarlarını bir kez kontrol edin.