[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[orca-users:15599] Re: HPKI 署名用秘密鍵による署名時データのパディング処理について



パディング云々に関してちょっと間違っていたかもしれません。

実際の電子処方箋サービスのサンプルで試してみました。

X509署名用公開鍵証明書から公開鍵を取り出して、SignatuteValue を復号すると

3031 300d 0609 6086 4801 6503 0402 0105
0004 2095 b69d 3e1d 20bd 055e bead 0405
 60c7 217d 15c3 a239 3a0a 109b 1966 ef9f
1327 2c

という51byte長のバイナリ列が得られます。
(openssl のコマンドで確認できます)

パディングした256byteではありません。

電子処方箋サービス側のサーバがパディングに対応していれば、問題ないのですが
そのような例はないようなので、パディングなしで送付するのがいいのかなと思います。

なお、
95 b69d 3e1d 20bd 055e bead 0405
 60c7 217d 15c3 a239 3a0a 109b 1966 ef9f
1327 2c
が、署名したい対象のハッシュ値です。
この値は、
<PrescriptionDocument id="PrescriptionDocument">謎の文字列</PrescriptionDocument>
からも直接求められます。

だから、両者が一致すれば、この文書を作成したのは、公開鍵とペアで作成された
秘密鍵の持ち主であることが保障される、というのが電子署名の理屈です。

しかし、以前に提示したサンプルが実際の仕様にあってないとか、ちょっと
どうなのか?とは思います。


猪股弘明
精神保健指定医

ーーーー電子処方箋サンプルーーーーーー
<?xml version="1.0" encoding="UTF-8"?>
略
<PrescriptionDocument
id="PrescriptionDocument">U0oxCjEsMSw4MDAwMDEwLDk5LOaknOiovOeUqOeXhemZogoyLDg1Mi04MTU0LOmVt+W0juecjOmVt+W0juW4ggozLDAzLTM3NzUtMzExMSwwMy0zNzc1LTMxMTIs44Gd44Gu5LuW6YCj57Wh5YWI77yQ77yRCjQsMiwwMSzlhoXnp5EKNSwwMDAwMDAwMDAwMDAwMDEs772y7728772s7727776M776e776b772zLOWMu+iAheOAgOS4iemDjgoxMSwwMDAwMDAwMDAwMDAwMDEs6Zu75Yem44CA5pyJ5Yq55LqU5LqMLO++g+++nu++ne+9vO+9riDvvpXvvbPvvbrvvbPvvbrvvp7vvoYKMTIsMgoxMywyMDExMDEwMQoxNCwxCjIxLDEKMjIsMzExMzA4NDIKMjMsMjAyMiwwMTAwMDEsMSwwMQoyNCwxMDAsMTAwCjI1LDEKMjcsMjkxMjM0NTYsMTIzNDU2NwoyOCwyOTEyMzQ1NiwxMjM0NTY3CjI5LDI5MTIzNDU2LDEyMzQ1NjcKMzAsOTkxMjM0NTYtMDEyMzQ1Njc4OTA5OTEyMzQ1Ni0wMTIzNDU2Nzg5MCw5OTEyMzQ1Ni0wMTIzNDU2Nzg5MDk5MTIzNDU2LTAxMjM0NTY3ODkwCjMxLDExMTEKNTEsMjAyMzAzMDYKNTIsMjAyMzEyMzEKNjIsMQo4MSwxLDEs5YKZ6ICD77yQ77yRCjgyLDEsMTAwMDAwMDAwMDAwMDAwMQoxMDEsMSwxLCwxNAoxMTEsMSwzLDEwMTExMDAwMDAwMDAwMDAs77yR5pel77yR5Zue5bCx5a+d5YmN44CA5pyN55SoLDEKMTgxLDEsMSws55So5rOV6KOc6Laz5oOF5aCx77yQ77yRLCwKMjAxLDEsMSwxLDIsNjIyNjg4MTAxLOODn+ODi+ODquODs+ODoeODq+ODiO+8r++8pOmMoO+8ku+8lc68772HLDIsMSzpjKAKMjExLDEsMSwxMDEKMjIxLDEsMSwxLjI1LDEsLCwsLCwsLAoyMzEsMSwxLDAsMCwwLDAKMjQxLDEsMSwxLDEKMjgxLDEsMSwxLCzolqzlk4Hoo5zotrPmg4XloLHvvJDvvJEsCjEwMSwyLDMsLDEKMTExLDIsMywxMDUwVzIwMDAwMDAwMDAwLOmBqeWunOOAgOacjeeUqCwxCjE4MSwyLDEsLOeUqOazleijnOi2s+aDheWgse+8kO+8kSwsCjIwMSwyLDEsMSwyLDY2MjY0MDY4MyzjgqLjg6vjg6Hjgr/ou5/oho/jgIDvvJDvvI7vvJHvvIUsMSwxLOacrAoyMTEsMiwxLDEwMQoyMjEsMiwxLDEuMjUsMSwsLCwsLCwsCjIzMSwyLDEsMCwwLDAsMAoyNDEsMiwxLDEsMQoyODEsMiwxLDEsLOiWrOWTgeijnOi2s+aDheWgse+8kO+8kSw=</PrescriptionDocument>
略
<ds:SignatureValue
Id="value-id-b41c08068e007d77655c7df7d0636a8c">hFIxB6Ki963Suxh7M6/xViA5o/Fw2AyVsTsnp07EtZCghk7eCeZOqAVcj5r8TTXeTEi9zYAJ6CPHvozFsUMxkiNX4DF9Mwn0f+CZYEVfYUJQsn6JA7NOBwry/+ZAzt6fiWpemofNtOaEenlAnGiEOB1mOJ5PazqtXbj5RbF9z++HMUHVUK9O+pmIFrG8XKsCDR2iqiqUUAsaNAjsgNkaYYZ4yquu+/EbnHHojFrEZIUiYR+pLD+Qc/Eb9kQD5fOoxvSfPvWQqWhnpbPfMy7eIkhk8IVzH7OtmG5UrY7LuIlckaax0cFgxil70M3GObDFCyu/OSEqruZ27g6sPDC2aA==</ds:SignatureValue>
略
<ds:X509Data><ds:X509Certificate>MIIFgjCCBGqgAwIBAgICAUswDQYJKoZIhvcNAQELBQAwZjELMAkGA1UEBhMCSlAx
DjAMBgNVBAoMBU1FRElTMRYwFAYDVQQLDA1NRURJUyBIUEtJIENBMS8wLQYDVQQD
DCZIUEtJLTAxLU1lZGlzU2lnbkNBMi1mb3JOb25SZXB1ZGlhdGlvbjAeFw0yMTA4
MDYxNTAwMDBaFw0yNjA4MDYxNDU5NTlaMGQxCzAJBgNVBAYTAkpQMSIwIAYDVQQK
DBlNRURJUyBVTklWRVJTSVRZIEhPU1BJVEFMMRwwGgYDVQQDDBNOaWp1cm9rdSBL
YWd1cmF6YWthMRMwEQYDVQQFEwpUZXN0MTE3MTE3MIIBIjANBgkqhkiG9w0BAQEF
AAOCAQ8AMIIBCgKCAQEAugxS30KQWi17lR58HPr1S3gO+csFcpEC8fA5sZTBEtCt
OayBRt4wkpGDiHas/tLizKEC5bbF40CPAwa1qCt6UEbZqPEyi01sQDvFE79i3/64
gRfAyTasK0GzgeiS4fatTq6CePrMLDW5iEM9kMcQV6AImbcLu9dT++afXsrYkFk2
g25xL1vE3GmC/iTk+Pr8EpY8W4KE/JDQnoYjAzU4xP2Q3bbuwPCN4jltB870EYgh
n4snljZQh8JOLu0vuvCMGleABWJW4akQGcd6HE1PkiG2idErxsfHyiCJ+mYDZtAK
F/vsNNU2yq66x1V+r+XveLlEAjJvjhN71gVu7nUW9wIDAQABo4ICOjCCAjYwgcgG
A1UdIwSBwDCBvYAUndYTUkXvvV54UshYjni8VB4/luahgaGkgZ4wgZsxCzAJBgNV
BAYTAkpQMS8wLQYDVQQKDCZNaW5pc3RyeSBvZiBIZWFsdGgsIExhYm91ciBhbmQg
V2VsZmFyZTE8MDoGA1UECwwzRGlyZWN0b3ItR2VuZXJhbCBmb3IgUG9saWN5IFBs
YW5uaW5nIGFuZCBFdmFsdWF0aW9uMR0wGwYDVQQLDBRNSExXIEhQS0kgUm9vdCBD
QSBWMoIBBDAdBgNVHQ4EFgQUislqxazPp+ZpHjz59xhQfflUeDcwDgYDVR0PAQH/
BAQDAgZAMHIGA1UdEQRrMGmkZzBlMQswCQYDVQQGEwJKUDEhMB8GA1UECgwY5Yy7
55mC5oOF5aCx5aSn5a2m55eF6ZmiMR4wHAYDVQQDDBXnpZ7mpb3lnYLjgIDkuozl
jYHlha0xEzARBgNVBAUTClRlc3QxMTcxMTcwOwYDVR0fBDQwMjAwoC6gLIYqaHR0
cDovL2NlcnQubWVkaXMub3IuanAvc2lnbi9jcmwtc2lnbjIuY3JsMD0GA1UdCQQ2
MDQwMgYGKIGFQgABMSgxJjAkoCIxIKAMBgoqgwiGkQ8BBgEBohAMDk1lZGljYWwg
RG9jdG9yMEoGA1UdIAEB/wRAMD4wPAYMKoMIhpEPAQUBAQABMCwwKgYIKwYBBQUH
AgEWHmh0dHA6Ly93d3cubWVkaXMub3IuanAvOF9ocGtpLzANBgkqhkiG9w0BAQsF
AAOCAQEAQy3GVQSOnJ+DDxZzunthjFgVn1Cxr0OhqGFavWyehhVSkVjiCvIfc6n6
fC1aig726Kjq2ZH9TxoE4i5AYBBrrPOD7GrnrDG0mzuSISw/1pypfD6hCoHii/jU
/dnWy5QgQWu9FCgTNLEzIx7M12LgfoUpfPlbHBVCwGQ/VHWXeDWCYrHhT71Th5YF
9iH+woLpszbHxzG737uDgdWMNFi0KpElnNplvlPKBYXLF3PZFwNvice3E9iG4UwW
ogigOs+eJt9tt5cg/zdhQGdkn8ut1PrlGlTlIdQhysRvaq0wvprkGDDStJGVqr6h
3gELp07jwcvFMgWpp0+GKL7USGphsA==</ds:X509Certificate></ds:X509Data>




*****************************************************************************
Hiroaki Inomata
MD: Psychiatry BA: Physics
PHAZOR, LLC: CEO https://phazor.info
-- Medical Open Source Software Activities --
OsiriX (open-source ver): contributor, Horos: contributor
HorliX: developer https://phazor.info/HorliX
OpenDolphin-2.7m: developer
https://github.com/Hiroaki-Inomata/OpenDolphin-2.7m (source code)
...etc

2024年5月1日(水) 10:51 Hiroaki Inomata <inomatah0612@xxxxxxxxx>:
>
> ある程度、自己解決できたので、報告。
>
> 参考にした署名サンプルコードが、PKCS#11使用していたため、パディングに
> 関しては PKCS#1 v1.5 が自動で適用になっていたようです。
> (それでパディングされていた)
>
> 実運用的には、署名した xml を送付する際には、署名時にどのアルゴリズムを使ったか
> 記述するタグがあるため、送信する側が適当な値を設定すれば、管理サービス側は
> それに従って復号、(処方箋情報を反映した)メッセージを取り出すことができる、
> という理屈のようです。
>
> 猪股
> *****************************************************************************
> Hiroaki Inomata
> MD: Psychiatry BA: Physics
> PHAZOR, LLC: CEO https://phazor.info
> -- Medical Open Source Software Activities --
> OsiriX (open-source ver): contributor, Horos: contributor
> HorliX: developer https://phazor.info/HorliX
> OpenDolphin-2.7m: developer
> https://github.com/Hiroaki-Inomata/OpenDolphin-2.7m (source code)
> ...etc
>
> 2024年4月30日(火) 12:41 Hiroaki Inomata <inomatah0612@xxxxxxxxx>:
> >
> > HPKI 署名云々について、
> > これまでのところをコマンドラインツールにして公開。
> > https://github.com/Hiroaki-Inomata/HPKI-tools
> >
> > この時点で需要あるとは思いませんが、使い方・注意点などは
> > https://github.com/Hiroaki-Inomata/HPKI-tools/issues/2
> > で。
> >
> > 猪股弘明
> > 精神保健指定医
> > *****************************************************************************
> > Hiroaki Inomata
> > MD: Psychiatry BA: Physics
> > PHAZOR, LLC: CEO https://phazor.info
> > -- Medical Open Source Software Activities --
> > OsiriX (open-source ver): contributor, Horos: contributor
> > HorliX: developer https://phazor.info/HorliX
> > OpenDolphin-2.7m: developer
> > https://github.com/Hiroaki-Inomata/OpenDolphin-2.7m (source code)
> > ...etc
> >
> > 2024年4月28日(日) 12:52 Hiroaki Inomata <inomatah0612@xxxxxxxxx>:
> > >
> > > Mac Java からも HPKI カードとお話しできました。
> > > https://twitter.com/H_Inomata/status/1784425323842727948
> > > (とりあえず署名アプリを選択しています)
> > >
> > > ところで、返値
> > >  PC/SC terminal Circle CIR125 ICC
> > > を見て気がつきましたが、このカードリーダー PC/SC 規格に準拠してますね。
> > >
> > > おそらくですが、(少なくとも Windows Java からアクセスする場合)デバドラも不要でしょう。
> > > Mac Java の javax.smartcardio パッケージがデバドラを使っているかどうかは、よくわかりません。
> > >
> > > OpenDolphin に「署名モジュール」を使わない電子処方箋発行機能を付け加えるかは
> > > 時間との兼ね合いになります。
> > >
> > >
> > > 猪股弘明
> > > 精神保健指定医
> > > *****************************************************************************
> > > Hiroaki Inomata
> > > MD: Psychiatry BA: Physics
> > > PHAZOR, LLC: CEO https://phazor.info
> > > -- Medical Open Source Software Activities --
> > > OsiriX (open-source ver): contributor, Horos: contributor
> > > HorliX: developer https://phazor.info/HorliX
> > > OpenDolphin-2.7m: developer
> > > https://github.com/Hiroaki-Inomata/OpenDolphin-2.7m (source code)
> > > ...etc
> > >
> > > 2024年4月28日(日) 4:43 Hiroaki Inomata <inomatah0612@xxxxxxxxx>:
> > > >
> > > > https://ml.orca.med.or.jp/orca-users/msg15582.html
> > > > の続き。
> > > >
> > > > マイナカード風に
> > > > 0x80, 0x2A, 0x00, 0x80, 0x34
> > > > という APDU コマンドでも
> > > > パディングしない
> > > > 0x00, 0x2A, 0x9e, 0x9a, 0x34
> > > > というコマンドでも署名値は返ってきますが、
> > > > パディング処理した時とは、値が違ってました。
> > > >
> > > > 仕様書でも示唆されていましたが、パディング処理したデータの
> > > > 署名値を埋め込んで当局に送付するのが適正な処理のようです。
> > > >
> > > > このパディング処理がどのレベルで決まっているかは未調査です。
> > > >
> > > > なお、処方箋 CSV からハッシュ値を求めるとき、たまに SHA1 と
> > > > 紹介されているサイトもあるようですが、おそらく SHA256 です。
> > > >
> > > > また、(PC のドライバに頼らず)ブラウザの機能を使って
> > > > マイナカードを操作できないかという議論はマイナカード普及期にも
> > > > あったようです。
> > > > https://twitter.com/shao1555/status/1279752796657430528
> > > > デジ庁の中の人の主張は少々苦しいような気がします。
> > > > https://twitter.com/masanork/status/1279783955965767681
> > > >
> > > >
> > > > 猪股弘明
> > > > 精神保健指定医
> > > > *****************************************************************************
> > > > Hiroaki Inomata
> > > > MD: Psychiatry BA: Physics
> > > > PHAZOR, LLC: CEO https://phazor.info
> > > > -- Medical Open Source Software Activities --
> > > > OsiriX (open-source ver): contributor, Horos: contributor
> > > > HorliX: developer https://phazor.info/HorliX
> > > > OpenDolphin-2.7m: developer
> > > > https://github.com/Hiroaki-Inomata/OpenDolphin-2.7m (source code)
> > > > ...etc