Damian Johnson commited on 2016-02-23 18:37:14
Zeige 1 geänderte Dateien mit 72 Einfügungen und 0 Löschungen.
Project idea courtesy of Arlo.
| ... | ... |
@@ -1371,6 +1371,78 @@ tampering. Third, unit tests should be added for existing and new code |
| 1371 | 1371 |
in order to make the code base more robust. |
| 1372 | 1372 |
</p> |
| 1373 | 1373 |
</li> |
| 1374 |
+ |
|
| 1375 |
+ <a id="coniks_in_messenger"></a> |
|
| 1376 |
+ <li> |
|
| 1377 |
+ <b>Implement and Integrate CONIKS for Tor Messenger</b> |
|
| 1378 |
+ <br> |
|
| 1379 |
+ Effort Level: <i>Medium</i> |
|
| 1380 |
+ <br> |
|
| 1381 |
+ Skill Level: <i>Medium</i> |
|
| 1382 |
+ <br> |
|
| 1383 |
+ Likely Mentors: <i>Marcela, Arlo (arlolra)</i> |
|
| 1384 |
+ <p> |
|
| 1385 |
+CONIKS is an end-user key management and verification system for end-to-end |
|
| 1386 |
+secure communication services, which improves upon existing key management |
|
| 1387 |
+systems by providing both strong security and better usability using a model |
|
| 1388 |
+called key transparency. CONIKS does this by requiring providers to manage |
|
| 1389 |
+tamper-evident, publicly-auditable key directories, which contain mappings from |
|
| 1390 |
+usernames to public keys, on behalf of their users. This design makes it easier |
|
| 1391 |
+for users (both "default" users and power users) to establish trust since they |
|
| 1392 |
+don't have to worry about or even see keys, but users also don't have to |
|
| 1393 |
+trust the provider to be well-behaved because the CONIKS client can run as |
|
| 1394 |
+part of the secure messaging app and automatically check that the service |
|
| 1395 |
+provider doesn’t map spurious keys to their users' usernames, and it can |
|
| 1396 |
+verify that observed name-to-key mappings are consistent with what other |
|
| 1397 |
+clients in the system are seeing. Unlike existing key transparency solutions, |
|
| 1398 |
+CONIKS also provides strong privacy guarantees by employing cryptographic |
|
| 1399 |
+primitives for robust data obfuscation. |
|
| 1400 |
+ </p> |
|
| 1401 |
+ |
|
| 1402 |
+ <p> |
|
| 1403 |
+The CONIKS system design, protocols, and proof-of-concept are described in |
|
| 1404 |
+great detail in the <a |
|
| 1405 |
+href="https://www.usenix.org/system/files/conference/usenixsecurity15/sec15-paper-melara.pdf">CONIKS |
|
| 1406 |
+research paper</a>, and basic reference implementations of a CONIKS key server |
|
| 1407 |
+and a CONIKS client are avialable on <a |
|
| 1408 |
+href="https://github.com/coniks-sys/coniks-ref-implementation">Github</a>. |
|
| 1409 |
+ </p> |
|
| 1410 |
+ |
|
| 1411 |
+ <p> |
|
| 1412 |
+This project has two main components: (1) designing and implementing a CONIKS |
|
| 1413 |
+key server tailored to Tor Messenger users, and (2) building a CONIKS client |
|
| 1414 |
+which integrates with the Tor Messenger client. One challenge the applicant |
|
| 1415 |
+will face is ensuring that the key server design is efficient and scalable for |
|
| 1416 |
+large volumes of users, concurrent traffic and guarantees this scalability even |
|
| 1417 |
+as Tor Messenger's user base grows. On the client side, the main challenges |
|
| 1418 |
+will be to focus on space efficiency as well as minimizing computational |
|
| 1419 |
+overhead when implementing the CONIKS consistency checks, and determining how |
|
| 1420 |
+to best communicate CONIKS consistency check results to users in the UI. Since |
|
| 1421 |
+Tor Messenger does not hand out online identities per se, as most online |
|
| 1422 |
+communication services do (like, say, Twitter, in which each user has a unique |
|
| 1423 |
+handle), the CONIKS key server for Tor Messenger will have to map usernames |
|
| 1424 |
+from third-party communication services to the encryption keys used in Tor |
|
| 1425 |
+Messenger. One additional important challenge that the applicant will have to |
|
| 1426 |
+help address is ensuring that each such third-party username remains unique in |
|
| 1427 |
+the Tor Messenger space and that such external, third-party identities are |
|
| 1428 |
+indeed controlled by the expected user of that third-party communication |
|
| 1429 |
+service. |
|
| 1430 |
+ </p> |
|
| 1431 |
+ |
|
| 1432 |
+ <p> |
|
| 1433 |
+Some design and implementation questions have been discussed in <a |
|
| 1434 |
+href="https://trac.torproject.org/projects/tor/ticket/17961">Ticket #17961</a>. |
|
| 1435 |
+ </p> |
|
| 1436 |
+ |
|
| 1437 |
+ <p> |
|
| 1438 |
+The applicant should have some familiarity with well-known crypto primitives |
|
| 1439 |
+and algorithms, as well as have a basic understanding of the key transparency |
|
| 1440 |
+model. Client side integration will require some basic use of JavaScript. |
|
| 1441 |
+Consider submitting a patch for <a |
|
| 1442 |
+href="https://github.com/arlolra/ctypes-otr/issues">one of the open key |
|
| 1443 |
+verification issues</a> as part of the application process. |
|
| 1444 |
+ </p> |
|
| 1445 |
+ </li> |
|
| 1374 | 1446 |
<!-- |
| 1375 | 1447 |
<a id=""></a> |
| 1376 | 1448 |
<li> |
| 1377 | 1449 |