SVX日記
2024-01-08(Mon) 続・Maveでデジタル署名付きメールを検証する
先日、改めて「Maverick」に移行したのだが、早速新しいメールを読み出さなくなってしまっていた。OSサポートという仕事柄、何か障害が起こると、瞬時に頭の中に思い当たる点がリストアップされてしまう性分である。そして案の定、リフレッシュトークンの期限切れであった。アクセストークンの有効期限は1時間だが、リフレッシュトークンの有効期限は7日間らしい。むー、そういうのヤメようよ。
結局、自分で先日の記事を読み返し、リフレッシュトークンを再発行して対処したが、週に一度くらいなら我慢するかなぁ。それとも、もう少し手順を簡略化できる方法もありそうなので、来週までにそれをやってみるかな。また、面白そうな課題が出てきたな。他に取り組みたい課題もあるのだけれどな。ウキウキ。
.. 300 住信SBIネット銀 Fri, 29 Dec 20:01 9K w? +出金のお知らせ
.. 650 service@smbctb.c Sat, 14 Oct 17:18 11K .? +SMBC信託銀行 カードご利用のお知らせ
先日、Maveでデジタル署名付きメールを検証する機能はガッチリと作ったはずなのだが、何がおかしいのだろうか。検証をやりなおす手順を実行してみると「送信元が署名者と一致していない」というエラーが出た。
Digital Signature is NOT Valid. reason=[Sender does not match Signer.]
require 'openssl'
mail = 'xxxxxxxx.eml'
pkcs7 = OpenSSL::PKCS7.read_smime(open(mail).read)
pkcs7.certificates.each {|cert|
print(cert.to_text)
puts('-' * 80)
cert.subject.to_a.each {|name|
name[0] == 'emailAddress' and p ['emailAddress', name[1]]
}
puts('=' * 80)
}
$ ./smime_dec.rb
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
3f:07:9c:34:1b:03:0c:e0:bd:b0:42:f1:93:43:b2:a4:17:30:b1:50
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=JP, O=Cybertrust Japan Co., Ltd., CN=Cybertrust Japan SureMail CA G4
Validity
Not Before: May 15 07:55:52 2023 GMT
Not After : Jun 9 07:55:16 2024 GMT
Subject: C=JP, ST=Tokyo, L=Minato-ku, O=SBI Sumishin Net Bank, Ltd.,, OU=System Department02, CN=SBI Sumishin Net Bank post_master
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public-Key: (2048 bit)
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:FALSE
X509v3 Certificate Policies:
Policy: 1.2.392.200081.1.24.1
CPS: https://www.cybertrust.ne.jp/ssl/repository/index.html
X509v3 Subject Alternative Name:
email:post_master@netbk.co.jp
Authority Information Access:
CA Issuers - URI:http://crl.cybertrust.ne.jp/SureMail/smcag4/smcag4.crt
--------------------------------------------------------------------------------
================================================================================
X509v3 Subject Alternative Name:
email:post_master@netbk.co.jp
X509v3 Subject Alternative Name:
email:service@smbctb.co.jp
Subject: C=JP, ST=Aichi, L=Nagoya, O=ITLine Inc., CN=Furutanian/emailAddress=furutanian@itline.jp
Subject: C=JP, ST=Tokyo, L=Minato, O=xxx, OU=xxx/emailAddress=xxxxxx@xxx.xxx
X509v3 Subject Alternative Name:
email:xxxxxx@xxx.xxx, othername:<unsupported>
begin
pkcs7 = OpenSSL::PKCS7.read_smime(File.open(path).read)
addrs = []; pkcs7.certificates.each {|cert|
+ cert.extensions.each {|ext|
+ ext.to_h['oid'] == 'subjectAltName' and ext.to_h['value'] =~ /mail:([^,]+)/ and addrs << $1
+ }
cert.subject.to_a.each {|name|
name[0] == 'emailAddress' and addrs << name[1]
}
.. 300 住信SBIネット銀 Fri, 29 Dec 20:01 9K wC +出金のお知らせ
.. 650 service@smbctb.c Sat, 14 Oct 17:18 11K .C +SMBC信託銀行 カードご利用のお知らせ