背景
担当しているwebサービスで、クラウドサイン等のASP型の電子契約サービスを利用するのではなく、
電子契約を実装する必要が出てきたので、電子契約の仕組みについて調査しました。
目次
電子契約の法的根拠
日本では 電子署名法 がベースです。
電子署名法によれば、、次の2つの条件を満たすことで、紙の署名と同等の法的効力が認められます。
- 文書が「改ざんされていないこと」
- 合意が「本人によるものであること」
「改ざんされていないこと」の技術的根拠
- 文書データにハッシュ関数を適用してハッシュ値を計算することで改ざん検知が可能です。
さらに実際の電子署名では、ハッシュ値を秘密鍵で暗号化(署名)し、検証時には公開鍵で復号する仕組みを用います。
これにより、改ざん検知と本人確認を同時に実現できます。
契約締結時の流れ
- 契約書(PDFなど)にハッシュ関数(SHA-256など)を適用
→ 固定長の「ハッシュ値」を取得
検証時の流れ
- 契約書のデータに同じハッシュ関数を適用して新しいハッシュ値を計算
- 新しいハッシュ値と署名から得たハッシュ値を比較
- 一致 → 文書は改ざんされていない
- 不一致 → 改ざんされている
「本人によるものであること」の担保
改ざん検知については上述のようにハッシュ値の比較を用いますが、「本人によるものであること」の担保についてはいくつかの対応パターンがあります。
方法1) 当事者型(公的認証型)
概要
- 署名者本人が 秘密鍵 を使って電子署名(契約書ハッシュ値の暗号化)を行う
- 公的認証局(CA)発行の電子証明書を用いて本人確認を行う
- 改ざんされていないことをハッシュ値の比較で担保する
フロー
- 署名者が電子証明書を取得
- 個人: マイナンバーカードの署名用電子証明書
- 法人: 法務局が発行する法人電子証明書
- 電子証明書は公的認証局(CA)によって発行され、公開鍵と署名者情報(氏名等)が含まれる
- 契約書データのハッシュ化し署名する
- 契約を行う人(署名者)はマイナンバーカード等をICカードリーダやスマホにセットし、署名用パスワードを入力し、ICカードの中に保存されている秘密鍵を利用する権限を得る
- 契約書(PDFなど)にハッシュ関数(SHA-256など)を適用し、固定長のハッシュ値に変換
- ハッシュ値を署名者の秘密鍵で暗号化(電子署名)
- 署名付き契約書の送信
- 契約書と電子署名と電子証明書を相手方に送信
- 契約書と電子署名と電子証明書を相手方に送信
- 検証
- 改ざん検知
- 契約書のデータに同じハッシュ関数を適用 → 新しいハッシュ値を計算
- 電子署名を電子証明書の公開鍵で復号 → 元のハッシュ値を取得
- 新しいハッシュ値と署名から得たハッシュ値を比較
→一致している場合は改ざんなし
- 本人確認
- 電子証明書の署名者情報と契約者が一致していることを確認
→電子証明書はCAが発行しており、署名者本人の公開鍵であることが保証されているため、署名者が本人であることが証明される
- 電子証明書の署名者情報と契約者が一致していることを確認
- 改ざん検知
※双方向で契約へ署名する場合は、もう一方も上記の手順を繰り返す
方法2)対面型
概要
- 契約担当者が運転免許証等の書類で本人確認を行う
- 誰が操作したかを明確にできるように、電子ペン等で契約者が署名を行う
- 改ざんされていないことをハッシュ値の比較で担保する
保険の契約や携帯電話の契約等さまざまな領域で利用されている
方法3) 立会人型(サービス事業者型)
概要
- 本人確認はメール認証やSMS認証による簡易方式で行う
- クラウドサービス提供者が署名を代行する
クラウドサイン等のASP型の電子契約サービスはこの形式であることが多い
フロー
- 契約書作成
- 署名依頼者がクラウド契約サービスに契約書をアップロード
- 署名依頼者がクラウド契約サービスに契約書をアップロード
- 署名者情報入力
- 署名者のメールアドレスや電話番号を入力
- 署名者のメールアドレスや電話番号を入力
- 本人認証
- サービス側が署名者に 認証コード(メール/SMS) を送付
- 署名者が認証コードを入力 → サービス側が本人確認完了と判断
- 署名の付与
- サービス提供者が署名者に代わって子署名を付与(代行署名)
- 契約書にタイムスタンプや電子署名情報が追加される
- 署名済契約書の保存・送信
- 署名済の契約書を署名者および契約相手に送信
- サービス側で改ざん検知(ハッシュ化+タイムスタンプ)も管理
上記のフローで、契約が本人同士で合意されたことを、サービス事業者が担保する
各方法の比較
方法 | 本人性の担保方法 | メリット | デメリット |
---|---|---|---|
当事者型(公的認証型) | 公的認証局発行の電子証明書(例:マイナンバーカード)による署名 | – 高い本人確認精度 – 署名者本人が署名したことが法的に強く証明可能 – 契約の信頼性が高い | – 署名者に電子証明書が必要 – 利用手順がやや複雑 – 導入コストが高め |
対面型 | 対面で本人確認(身分証確認など)と署名 | – 契約相手の本人確認が直接可能 – 簡単でわかりやすい | – 物理的な場所と時間が必要 – 遠隔地との契約が困難 – 記録をデジタル化する場合は別途対応が必要 |
立会人型(サービス事業者型) | サービス事業者が契約締結時に本人確認を行い、立会人として記録 | – 利用者は手軽に署名可能 – リモートで契約可能 – サービス事業者が履歴を管理 | – 本人確認精度は公的認証型より低い – 法的効力は当事者型より弱め – サービス事業者に依存するため信頼性が変動 |
- 法的強度や本人確認の厳密さは、当事者型 > 対面型 ≈ 立会人型
- 利便性や手軽さは、立会人型 > 対面型 > 当事者型
→どの方式を採用するかは「法的な強度を優先するのか」「利用のしやすさを優先するのか」といったサービスの特性に応じて慎重に検討する必要があります。