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 |