電子帳簿保存法に従ってSTIIを利用して各文書のTSA認証を取ってみた

# 電子帳簿保存法に従ってSTIIを利用して各文書のTSA認証を取ってみた
## 電子子帳簿保存法とは
> 決算関係書類や各種帳簿などの税務関係帳簿・書類を電子データで保存することを認めた法律です。 税務関係書類は紙での保存が原則ですが、電子帳簿保存法によって電子データでの保存が特例として認められました。 
> 2022年1月の改正により、電子取引で扱った電子データを紙に出力しての保存ができなくなります。
ということで、これから電子化された全ての文書やデータを保存しなきゃいけない

但し、このデータを保存するのに条件が必要だと。。。

> タイムスタンプとは、電子化された文書が原本であることを証明する技術です。電子文書にタイムスタンプが付与されると、付与された時刻に書類が存在していたことと、付与時刻以降は書類が変更されていないことが証明されます。
> 紙の書類の場合ですと、紙が劣化していれば時間の経過がわかりますし、筆跡の変化や文書の修正などがあれば、改ざんされたことが明らかになります。一方の電子文書は、紙と違って劣化することがなく、複製や編集も簡単なため、書類が原本であることを保証するのは困難です。そこで登場したのが、タイムスタンプです。タイムスタンプは、第三者機関である時刻認証業務認定事業者（TSA：Time-Stamping Authority。以下、TSA）が発行するため、発行後の変更や書類の有無を隠すことができません。

なので、電子化された文書や、データは全てこのタイムスタンプを提供してくれる認証業務認定事業者からTSAを取ってくることがこの改正法の前提になるらしい


## 経緯

ネットを探してみると企業用のSAPサービスは多く存在するが、自分は個人なので簡単に契約できないし、その予算もない
かつ、今回はTSAの内容も実際に目で確認してみたいのでその経緯から無料TSA認証サービス STIIを選択し色々試してみた

## STIIとは
> 請求書はPDF、報告書や明細書はExcelなど送付データに添付するファイル形式は様々。stiiタイムスタンプサービスを使えば書類の完全性を証明するタイムスタンプをまとめて付与し、さらに電子帳簿保存法に対応した証明書が発行されます。
> stamp@stii.comをメールのCCに入れ、タイムスタンプを付与したいファイルを添付して送信するだけで、電子帳簿保存法に対応した証明書が発行されます。PDFだけでなく JPEG、PNG、Excel、Word、Zipなどあらゆるファイルタイプにタイムスタンプを付与することができます。

要はメールで認証したいファイルを添付して、CCそれともBCCでstiiさんを参照すれば、そのファイルのTSAタイムスタンプを取って証明書を発行してくれるというサービス


```plantuml
actor A社 as Foo1
database STII as Foo3
actor B社 as Foo2 
Foo1 -> Foo2 : 契約書
Foo3 -> Foo1 : 契約書のTSA証明書
Foo3 -> Foo2 : 契約書のTSA証明書

```
その発行された証明書はpdf形式で送信側と受信側、に送られて来る仕組み。
しかもここはまだオープンしたばっかりで現在無料で運営してるっぽい

:::note warn
追記、300件以上送る場合はSTII社と相談が必要
:::

詳しくはSTIIのホームページから参考まで
[STIIのホームページ](https://stii.com/ )


## 電子データの選び

現在 STII側が処理できるファイルフォーマットは
JPG, PNG, PDF, CSV, MP3, DOC, TXT, PSD, ZIP, パスワードがかかったZIPファイルも可能っぽい

まずはJPGとPDFをテストしてみる事にした


## JPGファイルのTSA認証
### 1.サンプル請求書を作る

![Image- 2022-11-22 at 14.20.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236263/7dd3aed0-df62-20a5-274f-cc4eaf66ca96.png)


### 2. メールを書く
メールにはJPGを添付し、そしてTSA認証を取るためにbccにstamp@stii.comを追加する


![Image- 2022-11-22 at 14.32.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236263/cd68bfa7-7495-b9d5-16e5-0f2aaad34476.png)


### 3.返信メール確認
数秒後に STIIさんから認証書付きのメールが返ってくる


![Image- 2022-11-22 at 14.36.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236263/a262b2d0-78f6-206e-1907-cca84e28e650.png)

メールにはTSA証明書と原本を検証する方法が書いてあった
以下の三つの方法で検証できるらしい
- TSA証明書を stamp@stii.comに送る
- TSA証明書や原本ファイルをstamp@stii.comに送る
- acrobatなど第三者のツールで検証する


### 4.証明書の内容確認

このTSA認証の証明書は下記の内容はこんな感じ


![Image- 2022-11-22 at 14.39.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236263/1dddb2f6-d41b-9968-1f2e-b99547297cf3.png)

詳しくは二つの情報が書いてある
- メールそのものの情報
件名、メールID、標準時刻、メール送信者、メール受信者、添付ファイルの数、
- 添付ファイルに関する情報
ファイル名、MIME形式、ファイルサイズ、サイン時刻、ハッシュ値


### 5.原本と証明書の保存

あとは送った原本と証明書をどこか保存するだけでTSAを確保が可能になるという


### 6.TSA認証を確認

原本が変わってないのかをチェックする時に使われるTSA認証の確認を先ほどメールの案内に従って
stamp@stii.comへ原本とTSA証明書を送る事でできるらしいので
送ってみた

![Image- 2022-11-22 at 16.15.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236263/1fef87ea-ba3a-c52c-1495-94e0790a24ff.png)

そうすると、あと数秒後にはSTIIさんから検証のメールが返ってきた


![Image- 2022-11-22 at 16.18.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236263/3d7aba88-ef42-8a24-e95a-c1c40023881b.png)


検証に成功したといるメールだったが、もし修正された物を送ってもちゃんと検知してくれるかをチェックしたかったので、先の請求書の修正本を作って少しいじってみた


![Image- 2022-11-22 at 16.24.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236263/b77fc46c-0b2f-404a-e083-6477273020b6.png)

明らかにちょっと嘘っぽいけど、原本をいじる行為をちゃんと検知してくれるかをみてみたいので少し改ざんを行ってもう一回 stiiさんに検証を依頼

![Image- 2022-11-22 at 16.26.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236263/31f23b05-aa15-9bb4-80e6-af5c6d44d83e.png)

あと、数秒後検証のメールが届くが

![Image- 2022-11-22 at 16.27.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236263/3d9b0860-87db-116a-7a39-0428311132fa.png)

このように検証に失敗してしまったことから、TSA有効性が欠けたファイルが証明できるという。。。

# 結論
フリーランスエンジニアや個人事業者だと予算もないし、色んなSAPを検討したり検証する時間もない、システムの導入にも結構負担になるので電子帳簿保存法の改正で対応していくために手軽に使えるものとしてありかもです。TSAと証明書の検証など色々テストしてみましたが、いちいちメールを送る手間がかかるものの、無料で使うには十分な仕様かなと思いました