Skip to main content
QUICK REVIEW

[論文レビュー] Leveraging Intel SGX to Create a Nondisclosure Cryptographic library

Mohammad Hasanzadeh Mofrad, Adam J. Lee|arXiv (Cornell University)|May 12, 2017
Security and Verification in Computing参考文献 9被引用数 6
ひとこと要約

この論文では、Intel SGXを活用して、ハードウェアで強制されるエナclave内に暗号鍵を隔離・保護するセキュアな暗号ライブラリを提示している。SHA-256、HMAC-SHA-256、AES-ECB/CBCといった暗号操作をSGXエナclave内で実行することで、OS やアプリケーションが侵害されても鍵が漏洩しないことを保証し、最小限の信頼されるコンポーネント(TCB)を実現するとともに、オープンソースのプロトタイプコードを提供している。

ABSTRACT

Enforcing integrity and confidentiality of users' application code and data is a challenging mission that any software developer working on an online production grade service is facing. Since cryptology is not a widely understood subject, people on the cutting edge of research and industry are always seeking for new technologies to naturally expand the security of their programs and systems. Intel Software Guard Extension (Intel SGX) is an Intel technology for developers who are looking to protect their software binaries from plausible attacks using hardware instructions. The Intel SGX puts sensitive code and data into CPU-hardened protected regions called enclaves. In this project we leverage the Intel SGX to produce a secure cryptographic library which keeps the generated keys inside an enclave restricting use and dissemination of confidential cryptographic keys. Using enclaves to store the keys we maintain a small Trusted Computing Base (TCB) where we also perform computation on temporary buffers to and from untrusted application code. As a proof of concept, we implemented hashes and symmetric encryption algorithms inside the enclave where we stored hashes, Initialization Vectors (IVs) and random keys and open sourced the code (https://github.com/hmofrad/CryptoEnclave).

研究の動機と目的

  • 信頼できないソフトウェア環境において、暗号鍵の漏洩を防ぐ課題に対処すること。
  • Intel SGXエナclave内に感覚的な暗号操作を隔離することで、信頼されるコンポーネント(TCB)を縮小すること。
  • ハッシュ処理や対称暗号化といった安全な暗号操作を、ホストOS やアプリケーションに鍵を晒すことなく実行可能にすること。
  • 暗号の複雑さを抽象化しながら鍵の機密性を保証する、生産環境向けのオープンソース暗号ライブラリを提供すること。
  • 相互認証および鍵交換を備えた将来の安全なエナclave間通信の基盤を築くこと。

提案手法

  • Intel SGXを用いて、CPUが保護するメモリ領域(エナclave)を生成し、暗号関数を実行し、鍵を安全に保管する。
  • Intel SGX SDKおよびLibTomCryptライブラリを用いて、エナclave内にSHA-256、HMAC-SHA-256、AES-ECB、AES-CBCといった暗号プリミティブを実装する。
  • データおよび鍵へのアクセスをエナclaveの境界に制限し、鍵が保護されたメモリ領域から出ることを防ぐ。
  • エナclaveの整合性を検証し、実行環境を認証するために、リモートおよびローカルのアテステーションを採用する。
  • 信頼されるコードをエナclaveおよびその暗号操作に限定することで、最小限の信頼されるコンポーネント(TCB)を設計する。
  • 密封ストレージおよびセキュアなエントリ/エグジットポイントを用いて、信頼できないアプリケーションコードとエナclave間のデータフローを制御する。

実験結果

リサーチクエスチョン

  • RQ1信頼できない実行環境において、どのように暗号鍵を侵害から保護できるか?
  • RQ2Intel SGXを効果的に活用して、強い鍵機密性を備えた最小限のセキュアな暗号ライブラリを構築できるか?
  • RQ3パフォーマンスと使いやすさを維持しながら、SGXエナclave内で安全かつ効率的に隔離できる暗号操作は何か?
  • RQ4ハードウェア支援保護を用いて暗号ライブラリを構築する際、信頼されるコンポーネント(TCB)を最小限に抑えるにはどうすればよいか?
  • RQ5鍵交換およびデータ転送のための安全なエナclave間通信を実現するにあたり、実用的な課題や制限は何であるか?

主な発見

  • 実装により、Intel SGXエナclave内に暗号鍵が安全に保護され、ホストOS や信頼できないアプリケーションに鍵が漏洩しないことが確認された。
  • ライブラリは、SHA-256、HMAC-SHA-256、AES-ECB、AES-CBC(128ビット、192ビット、256ビット鍵)の4つの主要な暗号関数をサポートしている。
  • 鍵の生成、保存、操作をハードウェア保護されたエナclave内で隔離することで、強力な機密性と整合性の保証が達成された。
  • LibTomCryptの使用により、モジュラリティと拡張性が実現され、将来的に新しい暗号アルゴリズムを最小限のコード変更で追加可能となった。
  • GitHubで公開されたコードベースは、実世界のアプリケーションにエナclaveベースの暗号を統合するための生産環境向けで安全な基盤を提供している。
  • 著者らは、将来的には同じマシン上でも不安全なチャネルを通じたエナclave間の安全で認証済みの通信を実現する必要があると指摘している。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。