ファクト

ÆTERNITYのセキュリティ監査報告を読んでみる11

更新日:

本稿について

ÆTERNITYのメインネットリリース前から行われているセキュリティ監査報告のv0.5について見ていきます。今回の範囲は「5. Nodes」の「5.4 Source Code(Epoch)」です。

原文はこちらになります

スポンサードサーチ

今回のまとめ

  • Epochのソースコードについて
    • ノードはピア鍵と署名鍵の2種類の鍵を持つ(いずれも公開鍵と秘密鍵のペア)。ピア鍵はNoiseプロトコルによるハンドシェイクで利用する。署名鍵はマイニング用の鍵で、キーブロックやマイクロブロックの署名に用いる。
    • 行ったレビュー:暗号アルゴリズムと変数の利用に関するソースコードレビュー、鍵管理に関するソースコードレビュー、鍵のストレージに関するソースコードレビュー、残りの疑問点を明らかにするためのソースコードのウォークスルー
    • 強み:ノード上でのウォレットの秘密鍵を保存不要、著名な暗号ライブラリlibsodiumを利用、ノードの鍵漏洩による損失が限定的、署名鍵とピア鍵の処理が別個のErlangプロセス、スタックトレースやメモリダンプから鍵漏洩が起こらないデータ構造
    • 弱み:個別のパスワードを使った鍵の暗号化が未実装

※以下、今回まとめた範囲の和訳になりますので詳細をご覧になりたい方は読み進めてください。

5. ノード(続き)

5.4 ソースコード(Epoch)

暗号理論

基本的な設定では、Epochノードはウォレットと一緒に運営される。推奨される運営の仕方はトランザクション生成に利用する秘密鍵をノードが一切持たないことだ。しかし、ノードは様々な領域で暗号理論(libsodiumベース)を使う。

  • 他ノードとの通信(Noiseプロトコル)
  • ブロック・トランザクション・コントラクト等の検証(秘密鍵は不要)
  • マイクロブロックを生成するための鍵の管理及び使用(マイニングノードのみ)

これらのタスクを行うために、ノードは基本的に秘密鍵と公開鍵のペアを2つ持つ。ソースコードで"署名鍵(sign key)"、"ピア鍵(peer key)"と言われるものだ。

ピア鍵はノードの最初の立ち上げ時に生成される。これはNoiseハンドシェイクに利用される。ノードはいつでも不明で信頼していないノードに接続するので、この鍵の保護に関連するものは限られている。しかしノードが他ノードやノードの公開鍵に基づく評判を追跡し始めると、鍵の保護は非常に重要になってくる可能性がある。

署名鍵はマイニング用に生成される。ノードは全てのキーブロック候補にこの鍵を入れる。ノードがキーブロックのマイニングに成功すると、署名鍵はマイクロブロックの署名に用いられる(Bitcoin-NGのスキームに準拠)。ノードは新しいマイニングラウンドごとに署名鍵を生成することから、この鍵のスコープは限られているという点は重要であるので留意してほしい。しかしながら、署名鍵の漏洩は損失につながる。マイナーに誠実なふるまいをさせるために、他のピアは同じ署名鍵で署名された矛盾するマイクロブロックを探すだろう。もしこのような矛盾するマイクロブロックが見つかると、マイナーは罰せられて報酬は受け取れない。ブロックがマイニングされてから一定期間(ブロック高で定められる)はこのようなことが起こりうる。悪意ある者が矛盾するマイクロブロックを生成する(マイナーに対する妨害を行う)のを防ぐために、その一定期間の間は署名鍵を秘密にしておかねばならない。

鍵管理のために別々のErlangプロセスが用いられる。データ構造はスタックトレースやメモリダンプから鍵が漏洩してしまうのを防ぐように構成される。

この領域では以下のレビューステップが行われた。

  • 暗号アルゴリズムと変数の利用に関するソースコードレビュー
  • 鍵の管理に関するソースコードレビュー
  • ディスク上の鍵のストレージに関するソースコードレビュー
  • 残りの疑問点を明らかにするために行ったÆTERNITYの開発者たちとのソースコードのウォークスルー
強み
  • ノードの運営にあたりウォレットの秘密鍵をノードに保存しておく必要がない。
  • 暗号操作に著名な"libsodium"ライブラリが用いられている。
  • 鍵のつながりとスコープが限局されているおかげでノードの鍵が漏洩しても損失が限られている。
  • 鍵は別々のErlangプロセスで処理される。データ構造はスタックトレースやメモリダンプから鍵が漏洩しないように設定される。
弱み
  • 個別のパスワードを使って鍵(ピア鍵と署名鍵の両方)を保護するという選択肢がノードの運営者にない。(Finding6)

ÆTERNITYのセキュリティ監査報告を読んでみる10 ←← 前)|(次 →→ ÆTERNITYのセキュリティ監査報告を読んでみる12

免責

邦訳には誤りがある場合がございます。予めご承知おき下さい。

確実な情報を知るためには冒頭に示した原文をご参照くださいますようお願いいたします。

-ファクト
-, , ,

Copyright© 暗号通貨界隈のメモ書きなど。 , 2019 All Rights Reserved Powered by STINGER.

%d人のブロガーが「いいね」をつけました。