<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>SGX on Lutong's Homepage</title><link>https://www.elliot98.top/tags/sgx/</link><description>Recent content in SGX on Lutong's Homepage</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Thu, 28 Mar 2019 11:53:11 +0800</lastBuildDate><atom:link href="https://www.elliot98.top/tags/sgx/index.xml" rel="self" type="application/rss+xml"/><item><title>论文笔记| Giving State to the Stateless: Augmenting Trustworthy Computation with Ledgers</title><link>https://www.elliot98.top/post/lab/big4-reading-4/</link><pubDate>Thu, 28 Mar 2019 11:53:11 +0800</pubDate><guid>https://www.elliot98.top/post/lab/big4-reading-4/</guid><description>&lt;h1 id="giving-state-to-the-stateless-augmenting-trustworthy-computation-with-ledgers"&gt;Giving State to the Stateless: Augmenting Trustworthy Computation with Ledgers&lt;/h1&gt;
&lt;h2 id="gabriel-kaptchuk-matthew-green-ian-miers"&gt;Gabriel Kaptchuk, Matthew Green, Ian Miers&lt;/h2&gt;
&lt;h2 id="network-and-distributed-systems-security-ndss-symposium-2019"&gt;Network and Distributed Systems Security (NDSS) Symposium 2019&lt;/h2&gt;
&lt;h2 id="一introduction"&gt;一、Introduction&lt;/h2&gt;
&lt;p&gt;该篇文章做了一次尝试，将可信计算平台（如 Intel SGX, ARM TrustZone 等）与区块链（如 BTC, ETH) 结合,期望实现无状态的可信计算。背景如下：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;中心化和去中心化网络已经广泛使用，去中心化网络已被证明可以有更长的寿命和更高的可靠性。&lt;/li&gt;
&lt;li&gt;有状态的可信计算环境可能会被攻击（需要外部存储非易失数据、以及监控网络流量等）&lt;/li&gt;
&lt;li&gt;可信计算环境的硬件资源有限，特别是非易失存储资源的有限。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;解决办法：
将有状态的可信计算环境（TEE）变更为无状态的TEE。使用类似传统 http 的模式提供计算服务。同时引入分布式账单（Ledger)来记录状态。文章给出了一个Host、TEE 和 Ledger 之间的三方协议，来实现该方案。&lt;/p&gt;
&lt;p&gt;对于通常的服务，可以用如下公式形式化描述：P是给定程序，对于输入Ii，当前状态Si和随机代价ri，产生确定输出Oi和新的状态Si+1。&lt;/p&gt;
&lt;p&gt;$$ P(I_i,S_i,r_i) \rightarrow O_i,S_i+1 $$&lt;/p&gt;
&lt;p&gt;文章对上述模型做了一下修正，以提高安全性：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Attempt 1: 加密程序状态，无法抵御重放攻击&lt;/li&gt;
&lt;li&gt;Attempt 2: 使用 Ledger 存储状态信息，也无法抵御回放攻击&lt;/li&gt;
&lt;li&gt;Attempt 3: 使用 Ledger 绑定程序的输入。通过向 Ledger 中提交输入，可以解决上述攻击。&lt;/li&gt;
&lt;li&gt;Attempt 4: 随机化。为了防止恶意Host 复制程序执行，采用伪随机数发生器，产生随机代价？？？&lt;/li&gt;
&lt;li&gt;Extension 1: 减少 Ledger 带宽 &amp;hellip;&lt;/li&gt;
&lt;li&gt;Extension 2: 增加公共输入输出&lt;/li&gt;
&lt;li&gt;Extension 3: 指定程序&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="二模型"&gt;二、模型&lt;/h2&gt;
&lt;p&gt;文章给出模型的三个参与者：&lt;/p&gt;</description></item><item><title>论文笔记| OBLIVIATE:A Data Oblivious File System for Intel SGX</title><link>https://www.elliot98.top/post/lab/big4-reading-1/</link><pubDate>Tue, 26 Mar 2019 12:03:49 +0800</pubDate><guid>https://www.elliot98.top/post/lab/big4-reading-1/</guid><description>&lt;h1 id="obliviatea-data-oblivious-file-system-for-intel-sgx"&gt;OBLIVIATE:A Data Oblivious File System for Intel SGX&lt;/h1&gt;
&lt;h2 id="adil-ahmad-kyungtae-kim-muhammad-ihsanulhaq-sarfaraz--byoungyoung-lee"&gt;Adil Ahmad, Kyungtae Kim, Muhammad Ihsanulhaq Sarfaraz, Byoungyoung Lee.&lt;/h2&gt;
&lt;h2 id="ndss-2018"&gt;Ndss 2018&lt;/h2&gt;
&lt;p&gt;这篇主要讲了使用 SGX 技术实现了一个可用于web服务的混淆文件系统，用于在不可信服务器上提供隐私数据的 Web 服务。主要是用来对抗包括page failed等侧信道攻击。
该方案亮点在于结合了 SGX 和 ORAM 算法来混淆文件读取的偏移量等信息，使用 cmov 条件转移指令来混淆读取内存内容。但是性能上有一定损失。&lt;/p&gt;
&lt;p&gt;为了应对三种 Side-Channel Attacks：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Syscall Snooping Attacks: SGX 调用 ocall 过程中，向内核泄漏信息。&lt;/li&gt;
&lt;li&gt;Page Fault Attacks: 当 EPC 页面第一次加载时，触发 Page Fault Attacks，可能泄漏信息。&lt;/li&gt;
&lt;li&gt;Cache Based Attacks：各级缓存中泄漏信息。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="方案-sgx-和-oram-算法结合来混淆对文件系统读取时的偏离量path-oram-算法简介"&gt;方案： SGX 和 ORAM 算法结合，来混淆对文件系统读取时的偏离量。Path ORAM 算法简介：&lt;/h3&gt;
&lt;p&gt;&lt;img src="https://www.elliot98.top/images/sgx1.png" alt="/images/sgx1.png"&gt;&lt;/p&gt;
&lt;p&gt;采用完全二叉树结构。叶子节点数等于真实节点数。灰色标记的 abcd 节点为真实数据节点，efg为dummy 节点（随机填充）。另外有一张 Position map 表（加密存放于 SGX 中，指向真实节点位置。&lt;/p&gt;</description></item></channel></rss>