Add 'Make Stegotorus deployment ready' project idea
Damian Johnson

Damian Johnson commited on 2016-02-29 18:00:35
Zeige 1 geänderte Dateien mit 138 Einfügungen und 0 Löschungen.

... ...
@@ -1527,6 +1527,144 @@ implementation.
1527 1527
     </p>
1528 1528
     </li>
1529 1529
 
1530
+    <a id="stegotorus"></a>
1531
+    <li>
1532
+    <b>Make Stegotorus deployment ready</b>
1533
+    <br>
1534
+    Language: <i>C++</i>
1535
+    <br>
1536
+    Likely Mentors: <i>vmon</i>
1537
+    <br><br>
1538
+    <p>
1539
+    <a
1540
+    href="https://github.com/TheTorProject/stegotorus/tree/master/src">Stegotorus</a>
1541
+    is a PT framework which streamline the development stealthier pluggable
1542
+    transport. An HTTP pluggable transport is already implemented in Stegotorus
1543
+    framework and can be used when encrypted payloads are throttled and only
1544
+    ephemeral connections are tolerated.
1545
+    </p>
1546
+
1547
+    <p>
1548
+    The majority of work on Stegotorus is done and it can be deployed with a relatively minor improvements including:
1549
+    </p>
1550
+
1551
+    <ul>
1552
+      <li><b>#8098 A config file file for Stegotorus</b>
1553
+        <p>
1554
+        Stegotorus needs many configuration settings specially on the bridge
1555
+        side. This include also the configuration required by each steg module.
1556
+        Currently the configuration is fed to Stegotorus as command line
1557
+        arguments but a file like torrc is needed so all tweaking can be read
1558
+        from there.
1559
+        </p>
1560
+
1561
+        <p><i>
1562
+        Current Status and work needed to be done: The code for reading the
1563
+        config file is written by SRI but it is not yet used in the Stegotorus
1564
+        to read the config.
1565
+        </i></p>
1566
+      </li>
1567
+
1568
+      <li><b>#8101 Debugging the transparent proxy</b>
1569
+        <p>
1570
+        Stegotorus http module uses other websites payload to hide and serve
1571
+        censored traffic. As such it needs to decide if the request is
1572
+        genuinely to the auxiliary website, in that case becomes a transparent
1573
+        proxy and serves the website content as requested, or if the request is
1574
+        actually a request to serve censored material which should be delivered
1575
+        to steg modules.
1576
+        </p>
1577
+
1578
+        <p><i>
1579
+        Current Status: This is completely implemented. However, the transparent proxy sometimes crashes and need to be triaged, debugged and fixed.
1580
+        </i></p>
1581
+      </li>
1582
+
1583
+      <li><b>#11337 refactoring the steg module code</b>
1584
+        <p>
1585
+        The http steg module code, although not essentials to the core of the
1586
+        Stegotorus. needs some improvement and clean up. The solution is to
1587
+        refactor the steg modules as children of FileStegMod.
1588
+        </p>
1589
+
1590
+        <p><i>
1591
+        Current status and work needed to be done: This has already been done
1592
+        but still needs testing and refactoring before it can be reliably merge
1593
+        to the master branch.
1594
+        </i></p>
1595
+      </li>
1596
+
1597
+      <li><b>#8089 Adding Elligator to Stegotorus handshake and test</b>
1598
+        <p>
1599
+        The current Stegotorus handshake is distinguishable from random byte
1600
+        string, which can be used to flag and detect Stegotorus traffic
1601
+        deterministically and need to be implemented similar to
1602
+        ScrambleSuite. Also because the capacity of client to server channel
1603
+        might be slim depending on the choice of steg module it is desirable
1604
+        to be implemented using Elliptic curve crypto. Hence, Elligator
1605
+        protocol is ideal solution for this situation. All we need is to replace Stegotorus handshake by Elligator.
1606
+        </p>
1607
+
1608
+        <p><i>
1609
+        Current Status and work needed to be done: Elligator handshake code is
1610
+        included in stegotorus code base, it is only needed to be called by
1611
+        instead of the current handshake and be tested.
1612
+        </i></p>
1613
+      </li>
1614
+
1615
+      <li><b>Make Stegotorus memory safe by using shared pointers</b>
1616
+        <p>
1617
+        Stegotorus has large code base and it is not written in a memory safe
1618
+        languages. To facilitate its audit, we need to replace (almost all) use
1619
+        of pointers to shared pointers.
1620
+        </p>
1621
+
1622
+        <p><i>
1623
+        Current Status: No progress has not been done.
1624
+        </i></p>
1625
+      </li>
1626
+
1627
+      <li><b>Security Audit and writing more unit test</b>
1628
+        <p>
1629
+        To be able to deploy Stegotorus for real world use we need to audit the
1630
+        code and write more unit test covering new aspects of the Stegotorus
1631
+        (new http transport, proxy server, Elligator handshake)
1632
+        </p>
1633
+
1634
+        <p><i>
1635
+        Current Status: No progress has been done.
1636
+        </i></p>
1637
+      </li>
1638
+
1639
+      <li><b>SRI branch merging</b>
1640
+        <p>
1641
+        Stegotorus has been forked from the initial development from SRI. Now
1642
+        that SRI is hosting Stegotorus publicly it is desirable to merge the
1643
+        two branches so we can benefit from both developments.
1644
+        </p>
1645
+
1646
+        <p><i>
1647
+        Current Status: No progress has been done.
1648
+        </i></p>
1649
+      </li>
1650
+
1651
+      <li><b>#8099 deterministic build</b>
1652
+        <p>
1653
+        To make deterministic build possible we need to build many of
1654
+        Stegotorus dependency from scratch. Boost library is a a huge
1655
+        dependency for Stegotorus to access the file system. As we are only
1656
+        planning to deploy Stegotorus bridges on Linux machines we can simplify
1657
+        such access without that dependency. By dropping such dependency, it
1658
+        should be straight forward to have deterministic build for Stegotorus.
1659
+        </p>
1660
+
1661
+        <p><i>
1662
+        Current Status: No progress has been done.
1663
+        </i></p>
1664
+      </li>
1665
+    </ul>
1666
+    </li>
1667
+
1530 1668
 <!--
1531 1669
     <a id=""></a>
1532 1670
     <li>
1533 1671