TEE を活用した暗号資産カストディの安全な設計

私の友人に、ビットコインの初期採用者がいる。彼は常に「自己主権」を信じていた。
「鍵を持っていなければ、それは自分のコインではない」――彼はいつもそう言っていた。

しかし、時が経つにつれ、リスクは増していった。
ハッキング、フィッシング詐欺、強制的な押収――彼はあらゆる脅威を目の当たりにしてきた。

彼は自分の資産を守ることに誇りを持っていた。
ハードウェアウォレット、マルチシグ、バックアップ……準備は万全のはずだった。

だが、心のどこかで不安があった。

ファームウェアは本当に信頼できるのか？
クラウドの復旧システムは安全なのか？
どれだけ対策をしても、「秘密鍵が1つの障害点である」ことに変わりはない。

そんなある夜、彼から電話があった。

「ハッカーにも、企業にも、政府にも破れない仕組みが欲しい。そして、それを自分の手元で管理したいんだ」

「何か方法はないか？」

私は考えた。最適な解決策は、TEEを活用したウォームウォレットではないかと。

単一のハードウェアウォレットやカストディサービスに頼るのではなく、秘密鍵を複数の安全な環境（エンクレーブ）に分割する。
それらを彼自身が管理するデバイス――自宅のサーバー、Raspberry Pi、信頼できる友人のノード――に分散させるのだ。

TEE（Trusted Execution Environment）は、どのデバイスも秘密鍵全体を知ることがないようにする。
GNU Artanisが通信を守り、改ざんや漏洩を防ぐ。
仮に1つが盗まれたり、ハッキングされたりしても、それだけでは何の意味も持たない。

「つまり……もし俺のノートPCが盗まれても、資産は安全ってことか？」

「その通り。そして何より――俺や誰かを信頼する必要はない。」

## ホットウォレット・ウォームウォレット・コールドウォレットとは？

ホットウォレット：インターネットに接続されたウォレット。日常の取引に便利だが、ハッキングのリスクがある。

ウォームウォレット：インターネットには接続されていないが、すぐにアクセスできるウォレット。必要なときに素早く資金を動かせる。

コールドウォレット：完全にオフラインのウォレット。大きな資産を長期的に安全に保管するために使われる。

なぜウォームウォレット + TEE が重要なのか？
完全にサードパーティに依存しない環境を作るためには、自宅にTEE（Trusted Execution Environment）を活用したウォームウォレットを構築するのが最善だ。

基本的な考え方は、資産は自分のデバイスに保管し、取引が必要なときだけ取引所へ送金するというもの。
こうすることで、カストディサービス（第三者保管サービス）に全額預ける必要がなくなる。

TEEが果たす役割
TEE（Trusted Execution Environment）は、秘密鍵を安全に保護する技術だ。
これはシステムの他の部分から完全に隔離された安全な領域であり、秘密鍵を格納し、外部に漏らすことなく署名を行うことができる。

さらに、TEEを活用すればデバイス全体を暗号化することも可能だ。
仮にデバイスが盗まれたとしても、攻撃者は秘密鍵を含むデータにアクセスできない。

なぜA16Z（Andreessen Horowitz）はTEEに投資したのか？
A16ZはTEEが暗号資産の未来のカストディ（保管管理）を守る鍵となる技術だと考えている。
高いセキュリティとユーザーの主権を両立できるこの技術は、今後さらに注目されるだろう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3973392/8748c900-4e6d-47a5-a81a-2f8a45d8e21f.png)

カストディ・ソリューションの実装には「2つのトリプレット」が必要

安全な暗号資産管理を実現するためには、2組の「トリプレット（3要素）」となる認証情報が必要だ。

取引所の認証情報（パブリックな取引サービス用）
ローカル認証情報（TEE内に安全に保存される）
トリプレットとは？
それぞれの認証情報は、以下の3つの要素から構成される。

✅ APIキー：サービスへのアクセスを認証するための鍵。
✅ 秘密鍵：取引の署名に使用される鍵。
✅ パスフレーズ：秘密鍵を暗号化し、保護するためのフレーズ。

なぜこの仕組みが必要なのか？
現代の認証では、APIキーがユーザーの認証に使われ、秘密鍵が取引の署名に使われる。しかし、秘密鍵が盗まれれば資産を奪われるリスクがある。

そこで、TEEを活用してローカルで秘密鍵を安全に管理し、さらにパスフレーズで暗号化することで、より高いセキュリティを実現できる。

このアプローチにより、取引所に依存せず、自分の資産を自分の手元で完全に管理できるようになる。

## セキュリティのベストプラクティス

前述のとおり、**GNU ArtanisはHardenedLinuxの公式プロジェクト**であり、セキュリティに特化したベストプラクティスを採用している。  
これにより、GNU Artanisを安全な環境で実行できるようになっている。

### **HardenedLinuxとTEEへの対応**

HardenedLinuxは、新しいハードウェアプラットフォームで**TEE（Trusted Execution Environment）に適応するための開発を進めている**。  
現在も開発が進行中であり、今後さらなる詳細を公開する予定だ。

### **Linux Kernel Vaccine（VED）について**

HardenedLinuxは、システムの攻撃を防ぐための**セキュリティモジュール「Linux Kernel Vaccine」**を提供している。  
この技術は**VED（Vault Exploit Defense）**と呼ばれ、**ゼロデイ攻撃に対して非常に高い防御率を誇る**。

過去のシステム統合テストでは、**GNU ArtanisにおけるVEDのオーバーヘッドはわずか3%〜5%**。  
低コストでありながら、高度なセキュリティを実現できる。

### **VEDと他のランタイム保護技術の比較**

現在、世界には**ランタイム保護技術**を提供する製品は3つしか存在しない。

| 製品名            | 特徴                                               | ライセンス                    |
|-----------------|-------------------------------------------------|---------------------------|
| **GRSecurity**  | 最高レベルのセキュリティ                          | **GPLライセンス（最も高価）** |
| **Hitachi AKO** | Additional Kernel Observer。日立が開発し、自社製品向けに設計 | **プロプライエタリ（商用）** |
| **VED**        | HardenedVaultが開発し、HardenedLinuxがコミュニティ版を提供 | **GPLライセンス（最もコスト効率が良い）** |

**GRSecurity** は最も強力だが、高価。  
**Hitachi AKO** は日立の製品向けで、一般向けには提供されていない。  
**VED** は**GPLライセンスのオープンソース**であり、最もコストパフォーマンスに優れた選択肢となる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3973392/853739e6-73ba-42c7-8d53-71e53074a32d.png)


## **トランザクションの流れ**

1. ユーザーが **GNU Artanis サービス** にリクエストを送信  
2. GNU Artanis サービスが **TEE（Trusted Execution Environment）** にリクエストを送信  
3. **TEE が秘密鍵でトランザクションに署名**  
4. TEE が署名済みトランザクションを GNU Artanis サービスに返す  
5. GNU Artanis サービスが署名済みトランザクションを **公開取引所サービス** に送信  
6. 公開取引所サービスが **トランザクションを検証し、処理を実行**  
7. 公開取引所サービスが結果を GNU Artanis サービスに返す  
8. GNU Artanis サービスが結果をユーザーに返す  

🔑 **パスフレーズの入力**  
- ユーザーは、**秘密鍵をTEE内で復号するためのパスフレーズを入力**する必要がある  
- **パスフレーズはTEEに保存されず、一時的に復号に使用されるのみ**  

---

## **結論**

✅ **トランザクションは安全**  
- 秘密鍵の復号にはユーザーのパスフレーズが必要なため、**不正アクセスを防げる**  

✅ **ユーザーのデータと秘密鍵は安全**  
- **デバイスが盗難に遭っても、ハードディスクが取り出されても、取引履歴やトレーディング戦略、秘密鍵は漏洩しない**  

---

## **ロードマップ**

🚀 **今後の開発予定**  

- ✅ **Artanis カストディ・プラグイン**（Coinbase、QuickNode などに完全対応）  
- ✅ **HardenedLinux に TEE を統合**  
- ✅ **TEE 内での認証情報管理**  
- ✅ **HardenedLinux に VED（Vault Exploit Defense）を統合**  
- ✅ **ハードウェア・ウォームウォレットの開発**  

---

## **フィードバック歓迎！**

🔹 **Artanis カストディ・プラグイン** への Issue や PR を大歓迎！  
🔹 改善点や機能提案があれば、ぜひコントリビュートしてください！  


# 資料

https://a16zcrypto.com/posts/article/trusted-execution-environments-tees-primer/

https://github.com/hardenedlinux/ved

https://artanis.dev/blog/demystify-artanis-deployment.html

https://grsecurity.net/

https://ousar.lib.okayama-u.ac.jp/ja/60101

https://hardenedvault.net/products/ved

https://github.com/hardenedlinux/artanis-custody

https://github.com/hardenedlinux/artanis-custody