電子処方箋   導入記 (No.6)


電子署名


電子署名は いままで使ったことがありません。日本医師会が発行しているHPKIカード(医師資格症)をゲットしてカードリーダで読み込み, 電子暗号テキストをコピペすればいいんじゃないかと簡単に考えていたのですが, どうも話はもうすこし複雑なようです。


電子処方箋には必ず電子署名を付加しなければ成りません。

ただし電子処方箋対応の対応医療機関が紙の処方箋を発行するときは 電子署名なしで処方箋XMLを処方箋管理サービスに送信すればいいことになっています。(でも, 紙なら, なんで余計な手間かけてCSVを送らねば成らないんだ...と思ったりしまが...厚生労働省としては処方箋の電子データがほしいんでしょうね。(-.-))




電子処方箋管理サービス_記録条件仕様(処方編)ver1.4.pdf」によると

電子署名の生成

署名フォーマットには以下の形式が含まれる。

・ ES 署名者に関する情報と署名データを格納した形式

・ ES-T ES形式の署名に署名時刻を担保する署名タイムスタンプを付与した形式

・ ES-C ES-T形式の署名に署名検証のための一連の証明書と失効情報に対する参照情報を付与した形式

・ ES-XL ES-C形式の署名に署名検証のための一連の証明書と失効情報を格納した形式

・ ES-A ES-XL形式の署名に署名データ,タイムスタンプ,検証情報などを保護するためにアーカイブタイムスタンプを付与した形式


電子処方箋では 以下の2種類の電子署名を使用する

① 処方情報に対する処方医の電子署名(ES)

② 処方情報に対する処方医の電子署名(ES-XL)


ES形式の電子署名にはタイムスタンプ要素が含まれないなら, 一度作った自分の電子署名をコピペで使い回せそうですが...


電子署名のサンプルを見てみると


 

0??0?j?^0*?H??10JP10U

MEDIS10U

MEDIS HPKI CA1/0-U

&HPKI-01-MedisSignCA2-forNonRepudiation0

220206150000Z

270207145959Z0d10UJP1"0 U

MEDIS UNIVERSITY HOSPITAL10U

Sanjushi Kagurazaka10U

Test1171200?"0*?H???0?

?ˣ?gܭp??o?y>?.?v?I_?Z7???'?dT(?l??.???M?A/?8K??̈́{uKj?yу?GՃ??????Y?Ӎ?????A???,?.@??4M??j{S?)$>

?6W??'?37?2??

uѽ3r?2??ԽWr0?????"[??h?F?q???'i1???

?X?-???(?+??RC?)d???

?j?&?<?+??O1??|?G??RR????g?Q?+.X???

v?J&:?""?QpA3??:0?60??U#

??0?????RE??^xR?X?x?T??桁????0??10U

JP1/0-U

&Ministry of Health, Labour and Welfare1<0:U

3Director-General for Policy Planning and Evaluation10U

MHLW HPKI Root CA V2?0U?B33?%?3!Պ??E0U

?@0rUk0i?g0e0UJP1!0U

医療情報大学病院10U

神楽坂 三十四10U

Test1171200;U

40200?.?,?*http://cert.medis.or.jp/sign/crl-sign2.crl0=

U60402

(??B1(1&0$?"1 ?????

Medical Doctor0J

U ?@0>0<*???0,0*+

http://www.medis.or.jp/8_hpki/0

¥*?H??

??LzQ??v????o???ndI

eȼP??pu???*?,?ew??ФGAη~?h

?P|X???O1?1[

#Y???ޕ}4?!>?P???b{MP̤

???R??"O5?

??$?ӿ/????)?7?????υ}V"%%#???5???????H^f?z?M\?lH

kq??5ZS?nw?ݬG??k??D?/?\*??????B??????Ig?Gsm??Y???:?',E?ӟ???p?fy?RU???#


<?xml version="1.0" encoding="UTF-8"?><Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Document" xsi:noNamespaceSchemaLocation="EP.xsd"><Prescription><PrescriptionManagement id="PrescriptionManagement"><Version Value="EPS1.0"/></PrescriptionManagement>

<PrescriptionDocument id="PrescriptionDocument">


U0oxCjEsMSw4MDAwMDEwLDk5LOaknOiovOeUqOeXhemZogoyLDg1Mi04MTU0LOmVt+W0juecjOmVt+W0juW4ggozLDAzLTM3NzUtMzExMSwwMy0zNzc1LTMxMTIs44Gd44Gu5LuW6YCj57Wh5YWI77yQ77yRCjQsMiwwMSzlhoXnp5EKNSwwMDAwMDAwMDAwMDAwMDEs772y7728772s7727776M776e776b772zLOWMu+iAheOAgOS4iemDjgoxMSwwMDAwMDAwMDAwMDAwMDEs6Zu75Yem44CA5pyJ5Yq55LqU5LqMLO++g+++nu++ne+9v+9riDvvpXvvbPvvbrvvbPvvbrvvp7vvoYKMTIsMgoxMywyMDExMDEwMQoxNCwxCjIxLDEKMjIsMzExMzA4NDIKMjMsMjAyMiwwMTAwMDEsMSwwMQoyNCwxMDAsMTAwCjI1LDEKMjcsMjkxMjM0NTYsMTIzNDU2NwoyOCwyOTEyMzQ1NiwxMjM0NTY3CjI5LDI5MTIzNDU2LDEyMzQ1NjcKMzAsOTkxMjM0NTYtMDEyMzQ1Njc4OTA5OTEyMzQ1Ni0wMTIzNDU2Nzg5MCw5OTEyMzQ1Ni0wMTIzNDU2Nzg5MDk5MTIzNDU2LTAxMjM0NTY3ODkwCjMxLDExMTEKNTEsMjAyMjA5MDcKNTIsMjAyMjEyMzEKNjIsMQo4MSwxLDEs5YKZ6ICD77yQ77yRCjgyLDEsMTAwMDAwMDAwMDAwMDAwMQoxMDEsMSwxLCwxNAoxMTEsMSwzLDEwMTExMDAwMDAwMDAwMDAs77yR5pel77yR5Zue5bCx5ad5YmN44CA5pyN55SoLDEKMTgxLDEsMSws55So5rOV6KOc6Laz5oOF5aCx77yQ77yRLCwKMjAxLDEsMSwxLDIsNjIyNjg4MTAxLOODn+ODi+ODquODs+ODoeODq+ODiO+8r++8pOmMoO+8ku+8lc68772HLDIsMSzpjKAKMjExLDEsMSwxMDEKMjIxLDEsMSwxLjI1LDEsLCwsLCwsLAoyMzEsMSwxLDAsMCwwLDAKMjQxLDEsMSwxLDEKMjgxLDEsMSwxLCzolqzlk4Hoo5zotrPmg4XloLHvvJDvvJEsCjEwMSwyLDMsLDEKMTExLDIsMywxMDUwVzIwMDAwMDAwMDAwLOmBqeWunOOAgOacjeeUqCwxCjE4MSwyLDEsLOeUqOazleijnOi2s+aDheWgse+8kO+8kSwsCjIwMSwyLDEsMSwyLDY2MjY0MDY4MyzjgqLjg6vjg6Hjgr/ou5/oho/jgIDvvJDvvI7vvJHvvIUsMSwxLOacrAoyMTEsMiwxLDEwMQoyMjEsMiwxLDEuMjUsMSwsLCwsLCwsCjIzMSwyLDEsMCwwLDAsMAoyNDEsMiwxLDEsMQoyODEsMiwxLDEsLOiWrOWTgeijnOi2s+aDheWgse+8kO+8kSw=


</PrescriptionDocument>

<PrescriptionSign><xs:Signature xmlns:xs="http://www.w3.org/2000/09/xmldsig#" Id="PrescriptionSign"><xs:SignedInfo Id="id898cfb77-SignedInfo"><xs:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><xs:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/><xs:Reference Id="id29b12603-Reference1-Detached" URI="#PrescriptionDocument"><xs:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/><xs:DigestValue>d2AViR1mbbTGkOUKs3/DNI66RLps3c8tE/UDoled78U=

</xs:DigestValue></xs:Reference><xs:Reference Id="id041cb21b-Reference2-KeyInfo" URI="#id6a875f31-KeyInfo"><xs:Transforms><xs:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/></xs:Transforms><xs:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/><xs:DigestValue>bI4jGyBqLZB28i/cH8njp05705/ji/sUPptLX/M2ycQ=

</xs:DigestValue></xs:Reference><xs:Reference Id="id8b2ae0fe-Reference3-SignedProperties" Type="http://uri.etsi.org/01903#SignedProperties" URI="#idc51bfd03-SignedProperties"><xs:Transforms><xs:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/></xs:Transforms><xs:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/><xs:DigestValue>8XgGgHpPS/3nAQTc6cVSGHI5ObMWjQ8l3oHpyQkF4jQ=

</xs:DigestValue></xs:Reference></xs:SignedInfo>

<xs:SignatureValue Id="id00fac23c-SignatureValue">

CE2jLDBwEc1NJRaoOZ/PvThIR7EuNrg5U5OkhXiq7T+A6Erb2wv+lcbnZWfmtdem1BaKzcI9kk2j

YpG5nG9sIJMq5+AGjDszZ10mkshzg9L44FcgnB4TgVD32U6o361lqYXUgIPHpD8uINGNvMVjRdCP

q6207euvjLP35Wyf2Hcv9dmmWSiJJQ1y6Udz6EKxss7bSKxZUwjArgfoWW31LoNUFZwt4qwyIuB5

RfKsDa/bi3sj1d5BGRDVbmmC8EYzcwjvXlcRzBh5a4qRT549alcAiSu7cdhThQc4PN4yHiskn58d

O+Lax7yN4Pkn9vJeaGhtT6WF2pgFgX5GF2ojHA==

</xs:SignatureValue><xs:KeyInfo Id="id6a875f31-KeyInfo"><xs:X509Data>

<xs:X509Certificate>


MIIFgjCCBGqgAwIBAgICAV4wDQYJKoZIhvcNAQELBQAwZjELMAkGA1UEBhMCSlAxDjAMBgNVBAoM

BU1FRElTMRYwFAYDVQQLDA1NRURJUyBIUEtJIENBMS8wLQYDVQQDDCZIUEtJLTAxLU1lZGlzU2ln

bkNBMi1mb3JOb25SZXB1ZGlhdGlvbjAeFw0yMjAyMDYxNTAwMDBaFw0yNzAyMDcxNDU5NTlaMGQx

CzAJBgNVBAYTAkpQMSIwIAYDVQQKDBlNRURJUyBVTklWRVJTSVRZIEhPU1BJVEFMMRwwGgYDVQQD

DBNTYW5qdXNoaSBLYWd1cmF6YWthMRMwEQYDVQQFEwpUZXN0MTE3MTIwMIIBIjANBgkqhkiG9w0B

AQEFAAOCAQ8AMIIBCgKCAQEAy6PVZxPcrXC3jW+teT7YLvl2+0lfHRbZWjf56eMn8mRUKKNsuPAu

tvSaTbRBL+E4S5HIzYR7dUtqqXnRg+xH1YPe2eaFAfzJFBNZggHTjYfV2wmX0kE/0sssjy5A1BUZ

4zRN1+oGantT8CkLJD4EsTZX1LCNJwUsBpkzN6kyhc4HddG9M3ISGa0dMtP31L1XcjCs/cP3xCJb

8Z5osEacccwVBaiL7CdpATEcro+xEJtYii0IibH9KJcrxOEbUkP8KWTzC2npwA+YauAmC6s8GfMr

wAEb0U8x+v58gUe4hVJS6PmW3QhnwVHFKy5Yp6zbDxB2jEomOp8iIvsSUXBBMwIDAQABo4ICOjCC

AjYwgcgGA1UdIwSBwDCBvYAUndYTUkXvvV54UshYjni8VB4/luahgaGkgZ4wgZsxCzAJBgNVBAYT

AkpQMS8wLQYDVQQKDCZNaW5pc3RyeSBvZiBIZWFsdGgsIExhYm91ciBhbmQgV2VsZmFyZTE8MDoG

A1UECwwzRGlyZWN0b3ItR2VuZXJhbCBmb3IgUG9saWN5IFBsYW5uaW5nIGFuZCBFdmFsdWF0aW9u

MR0wGwYDVQQLDBRNSExXIEhQS0kgUm9vdCBDQSBWMoIBBDAdBgNVHQ4EFgQUwUIYMzPxAiX6Mwch

BNWKrcAL4UUwDgYDVR0PAQH/BAQDAgZAMHIGA1UdEQRrMGmkZzBlMQswCQYDVQQGEwJKUDEhMB8G

A1UECgwY5Yy755mC5oOF5aCx5aSn5a2m55eF6ZmiMR4wHAYDVQQDDBXnpZ7mpb3lnYLjgIDkuInl

jYHlm5sxEzARBgNVBAUTClRlc3QxMTcxMjAwOwYDVR0fBDQwMjAwoC6gLIYqaHR0cDovL2NlcnQu

bWVkaXMub3IuanAvc2lnbi9jcmwtc2lnbjIuY3JsMD0GA1UdCQQ2MDQwMgYGKIGFQgABMSgxJjAk

oCIxIKAMBgoqgwiGkQ8BBgEBohAMDk1lZGljYWwgRG9jdG9yMEoGA1UdIAEB/wRAMD4wPAYMKoMI

hpEPAQUBAQABMCwwKgYIKwYBBQUHAgEWHmh0dHA6Ly93d3cubWVkaXMub3IuanAvOF9ocGtpLzAN

BgkqhkiG9w0BAQsFAAOCAQEAmUx6UQDm6HboCK39k2/6qL9uAB9kSQtlyLxQ8Jpwdb7Q8iqNfyyo

ZXfMArjQpEcCQc63fsNoDItQfFjI8YJPMZExAVsPI1n/3NnelX00rxshPvZQvsryYntNUMykBbro

hlKx1hQJFCIETzXeBKrNJIHTvy+WF/3nAsIp6hU3mu2y9qzPhX0UViIlJQbGEhIj5JXmNYaVpYwR

DqOArUheAmbDevNNXKRsEfNICmtxotY1WlPdbneh3axHutxrzs5E4i+0XCr8m+C2Fz+bQoChiMTP

5R4USWe3R3Nt+dNZjbj1OvEnLEUT5tOfpZ0KzXDJZht5DOHLUhtV6+WuI+6Yqw==


</xs:X509Certificate>

</xs:X509Data></xs:KeyInfo><xs:Object xmlns:xa="http://uri.etsi.org/01903/v1.3.2#"><xa:QualifyingProperties Id="id993b4fd6-QualifyingProperties" Target="#PrescriptionSign"><xa:SignedProperties Id="idc51bfd03-SignedProperties"><xa:SignedSignatureProperties><xa:SigningTime>2022-09-07T08:08:01+00:00</xa:SigningTime><xa:SigningCertificateV2><xa:Cert><xa:CertDigest><xs:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/><xs:DigestValue>NqeepkXkMTTnbn2s3W197fpOof0tj+Rd8JLII6BofmQ=

</xs:DigestValue></xa:CertDigest></xa:Cert></xa:SigningCertificateV2></xa:SignedSignatureProperties></xa:SignedProperties></xa:QualifyingProperties></xs:Object></xs:Signature></PrescriptionSign></Prescription></Document>


青字はPrescriptionDocument なので Decodeすれば 処方CSVが出てくるはずです。

PrescriptionSign 以降が 電子署名部分と考えられますが,

赤字の部分が電子署名の暗号部分なので, ここをBase64Decodeしてみると, 大部分は判読不能です。テキストエンコーディングが不適なのでしょうか? ,ただ, この部分をブラウザーで読ませて, テキストエンコーディングをいくつか変えてみても判読不能のままです。一部に読める文字列が認められます。おそらく, abcd病院, 医師 何野 太郎,  日付・時刻というようなことが 英字と日本語で書いてあるんでしょう。これはES-XLと考えられます。