iidaの日記: openssl smime -sign 5
日記 by
iida
S/MIME対応ソフトの評価をするはめになり、OpenSSLでこしらえたS/MIME署名付きメールを送りつけて、動作を見てみた。すると、オペーク署名 (一体型署名) はすんなり検証できるのだが、クリア署名 (分離署名) が検証できない。
「もしや」と思い、バージョンを1.0.1gからどんどん下げていった。すると、0.9.6mのクリア署名では検証が通る。0.9.6系と、0.9.7系以降の署名付きメールを比べて見ると、被署名部分の改行コードが違っている。Unix系マシン (Solaris) で作業していて、0.9.6系はLFのままなのだが、0.9.7系以降ではCRLFになっていた。
「ならば」と、tr -d '\15'でざっくりCRを削除すると、しっかり署名が検証できるではないか。勘弁してくれ、OpenSSL!
正規化? (スコア:1)
実験の詳細がわからないのですが、行末はCRLFで正規化してあるほうが正解なのかも?
https://www.ipa.go.jp/security/rfc/RFC2311-03JA.html#name3_1 [ipa.go.jp]
Re:正規化? (スコア:1)
From: bob@example.net
To: alice@example.net
Subject: S/MIME test 2-r.txt
Date: Mon, 19 May 2014 17:57:38 +0900
Message-ID: <20140519175738.6580.make@osienai.example.net>
MIME-Version: 1.0
Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg="sha1"; boundary="----8F46B4C5077728BDFF2011E7970D1E7A"
This is an S/MIME signed message
------8F46B4C5077728BDFF2011E7970D1E7A
Content-Type: text/plain; charset=US-ASCII^M
^M
Hello^M
--^M
iida^M
------8F46B4C5077728BDFF2011E7970D1E7A
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
MIIMHwYJKoZIhvcNAQcCoIIMEDCCDAwCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3
DQEHAaCCCTAwggTYMIIDwKADAgECAgIQHzANBgkqhkiG9w0BAQUFADBVMQswCQYD
VQQGEwJKUDEYMBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MSwwKgYDVQQLEyNTZWN1
cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEgVGVzdDAeFw0wODA1MDIwOTE5NTNa
Fw0xODA1MDIwOTE5NTNaMIGQMQswCQYDVQQGEwJKUDElMCMGA1UEChMcU0VDT00g
VHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEpMCcGA1UECxMgU0VDT00gUGFzc3BvcnQg
Zm9yIE1lbWJlcjIuMCBQVUIxLzAtBgNVBAMTJlNFQ09NIFBhc3Nwb3J0IGZvciBN
ZW1iZXIgUFVCIENBMSBUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAwDBH9gyImuyGADHNXwhQZDq+rsRcPR/fS+DIE19giTNBLDLR3Lg0ccOs+WNB
xWSi9lR5TWjvdYyVgQtltkw1QsjML6o58ndryw1BF0Zdyp7Fe3koXJcyaZtUoJyi
4ZmhnYAuHv9+eILN0s27O4WosAp/Zu3Raez20YhoGVmHOOEThL8jSINkcwfdnGb5
3s3wIoMsRywomMbPBMO/aKzuAtnYNxM7VB+zFC7KTKo2l64qFKnqzlCWZ1MBCgFE
4C0I1onOTMT4oYC0EAPOBdHtqr3kzz1cTQmQUo8Kh4+Gb3Xqi0A1ViV1zy+smKVw
Gesvoyx5MlmUQv7ffRUjsJKusQIDAQABo4IBdDCCAXAwHQYDVR0OBBYEFGRUDUHr
LmJqcPkF5mUdwksVHX+gMB8GA1UdIwQYMBaAFPxM8CAHalnE/zzSmhQt7ry0Jmnp
MBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMF0GA1UdHwRWMFQw
UqBQoE6GTGh0dHA6Ly93d3cuc2Vjb210cnVzdC5uZXQvc2VydmljZS9uaW5zeW8v
dGVzdC9zY3Jvb3QxL3JlcG9zaXRvcnkvZnVsbGNybC5jcmwwaQYDVR0gBGIwYDBe
BgoqgwiMmxtkh2cBMFAwTgYIKwYBBQUHAgEWQmh0dHBzOi8vd3d3LnNlY29tdHJ1
c3QubmV0L3NlcnZpY2Uvbmluc3lvL3Rlc3Qvc2Nyb290MS9yZXBvc2l0b3J5LzBA
BggrBgEFBQcBAQQ0MDIwMAYIKwYBBQUHMAGGJGh0dHA6Ly9zY3Jvb3RjYTEub2Nz
cC5zZWNvbXRydXN0Lm5ldDANBgkqhkiG9w0BAQUFAAOCAQEAAjwNf1WfZi3sjRzD
B6+vvaVTIWrlIJoSrkJIwCXAoh1ccE2iPjgAg4to9IoG02/dlatOgPTba4eGyaEx
vKsIgCtAg3K3MAXrt3HVDNeZSmEoL8uGaP/tkeXrvbK9RWci/owKGcSgXDHUu5aF
cKKfRr+YoKc4BdG1/4+NDcQ5TjjOveddnISRoqpnvWakeR1TAnh3PcEgrM41mIsX
1YLbVGf2UKVB0Js7qu0/iVZ6FMw/sTU2JETXHVbvnUky7lAYNdg9qj4HYOcxOpaB
88fQxnWYM0NhjzaZwbCO17R5rAZyYEJE/K0w9joTNO+pUe6cAl9DY6AxW76BD0FO
4N5DuzCCBFAwggM4oAMCAQICCQjFeSYBcpZbGTANBgkqhkiG9w0BAQUFADCBkDEL
MAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExU
RC4xKTAnBgNVBAsTIFNFQ09NIFBhc3Nwb3J0IGZvciBNZW1iZXIyLjAgUFVCMS8w
LQYDVQQDEyZTRUNPTSBQYXNzcG9ydCBmb3IgTWVtYmVyIFBVQiBDQTEgVGVzdDAe
Fw0xNDA1MTQwNzUyNDJaFw0xNDA1MjEwNzUyNDJaMFMxCzAJBgNVBAYTAkpQMQsw
CQYDVQQIDAJzdDEKMAgGA1UEBwwBbDEKMAgGA1UECgwBbzELMAkGA1UECwwCb3Ux
EjAQBgNVBAMMCWJvYiBLbnVyZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
ggEBALAuom9SzRX0P605jWii6husB4WL6LJHYUp493cCQWJEuiOBbxCbCfnGxcDR
h/TOV8QWpUf/qnjkgHLBx+uya/9qTJe3emsA3ucdhcREnsDXCDr/d280xdQN0sKu
s2JRkFRzl71dnHKMRZkdybMb74FiaoURjRGD02uQc7ASyZYi+jguh3yM1dbIzTv+
Q1BFC7aDDaVs6YCwF1EaTe3Z837f9knyZnIp47F8edcHpKa6bUfeL4oORdFbqDEQ
hHqOndvtiKNAKq5i2sqaUffnTmGRPKcY8f1f8riyPUJWhDlIHxh5iooeSdpdjCYH
6Ei7SH/qTKZ+pMHvzcrqoLflohUCAwEAAaOB6DCB5TAOBgNVHQ8BAf8EBAMCBsAw
EwYDVR0lBAwwCgYIKwYBBQUHAwQwHwYDVR0jBBgwFoAUZFQNQesuYmpw+QXmZR3C
SxUdf6AwHQYDVR0OBBYEFOdTXVhFbUO1HwJ5a1cOHo2LzxCGMEkGA1UdHwRCMEAw
PqA8oDqGOGh0dHA6Ly9kb3JhZW1vbi5zZWNvbXRydXN0Lm5ldC9wcm9qcy93ZWJw
L35jYS9wdWJDQTEuY3JsMBcGA1UdIAQQMA4wDAYKKoMIjJsbZIdnATAaBgNVHREE
EzARgQ9ib2JAZXhhbXBsZS5uZXQwDQYJKoZIhvcNAQEFBQADggEBAAy2QXZ0rnbu
TURtDFQyN3dAwGtN51HxR
iida
Re:正規化? (スコア:1)
てことは openssl に binary オプションを付ければいいんですかね。
規格としては CR-LF で正規化してほしい + OpenSSL は正しく実装している
けれども大方の実装はそうなっていない、というようなことでしょうか。
Re:正規化? (スコア:2)
欲を言えば、-binaryのないとき、被署名部分だけでなく、全体がCRLF改行になってほしいものです。
iida
Re:正規化? (スコア:1)
iida