Add 'Implement and Integrate CONIKS for Tor Messenger' project idea
Damian Johnson

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