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 |