1 <html> 2 <head> 3 <title>Trevor Perrin</title> 4 </head> 5 <body> 6 <H1>Trevor Perrin</H1> 7 <b>Email:</b> trevp at trevp.net<br> 8 <b>PGP Key:</b> <a href="pgp/key.asc">8035 47B9 D1F9 C148 619A 7948 D8C0 0F11 2F2F F9E3</a> 9 <p>I'm a programmer, here are some projects I'm involved in. 10 11 <p>My current interest is cryptographic key management and alternatives to PKI. 12 <p> 13 14 <a name="cryptoID"> 15 <H2><a href="cryptoID/">CryptoIDs</a></H2> 16 <b>Paper 1:</b> Public Key Distribution through "cryptoIDs" (<a href="cryptoID/cryptoID.pdf">.pdf</a>, <a href="cryptoID/cryptoID.html">.html</a>) <i>(presented at <a href="http://www.nspw.org/2003/">NSPW 2003</a>)</i><br> 17 <b>Paper 2:</b> The CryptoID Key Management Protocols (<a href="cryptoID/cryptoID2.pdf">.pdf</a>) <i>(the best introduction)</i><br> 18 <b>Schema:</b> XML Schema for <certChain> (<a href="cryptoID/cryptoID.xsd">.xsd</a>)<br> 19 <b>Code:</b> CryptoIDlib Python and Java library and command-line tool v0.1.8 (<a href="cryptoID/cryptoIDlib-0.1.8.zip">.zip</a>, <a href="cryptoID/readme.txt">readme.txt</a>) 20 <p>PKI isn't working for person-to-person communications. Few people use 21 secure email, voice, instant-messaging, or anything else. 22 <p>CryptoIDs are an alternative. The idea is for people to exchange small, 23 user-friendly fingerprints (aka "cryptoIDs") like 'cyhf4.9ajd8.kbdx4.rk98c'. 24 These could be passed around and stored in address books as if they were phone 25 numbers or postal addresses. 26 <p>The cryptoID for each user would correspond to that user's <i>root key</i>. 27 The user would keep his root key in a safe place - his employer or 28 some commercial service might hold it for him. The rootholder would operate 29 an online service which would issue short-lived <i>subkey certificates</i> or <i>validation signatures</i> to the user. 30 <p>CryptoIDs, then, are about combining <i>fingerprint-based public-key distribution</i> with 31 <i>certificate-based private-key management</i>. The first paper above presents the 32 cryptoID fingerprint and certificate formats, which are designed specifically for 33 this. CryptoIDlib lets you test-drive these formats. 34 <p>The second paper presents private-key management protocols for use with online servers. 35 Support for these is being added to cryptoIDlib. 36 37 <a name="tls_lite"> 38 <H2><a href="tls_lite/">TLS Lite</a></H2> 39 <b>Code:</b> tls_lite python library v0.1.8 (<a href="tls_lite/tls_lite-0.1.8.zip">.zip</a>, <a href="tls_lite/readme.txt">readme.txt</a>)<br> 40 <p> 41 TLS Lite is a free python library that implements SSL 3.0 and <a href="http://www.ietf.org/rfc/rfc2246.txt">TLS 1.0</a>. 42 TLS Lite supports non-traditional authentication methods such as <a href="http://trevp.net/tls_srp/index.html">SRP</a>, 43 <a href="http://www.ietf.org/internet-drafts/draft-ietf-tls-sharedkeys-02.txt">shared keys</a>, 44 and <a href="http://trevp.net/cryptoID/index.html">cryptoIDs</a>, in addition to X.509 certificates. TLS Lite is pure 45 <a href="http://www.python.org">Python</a>, however it can access <a href="http://www.openssl.org/">OpenSSL</a> or 46 <a href="http://www.cs.auckland.ac.nz/~pgut001/cryptlib/">cryptlib</a> for faster crypto operations. 47 48 <a name="tlssrp"> 49 <H2><a href="tls_srp/">TLS/SRP</a></H2> 50 <b>Internet-Draft:</b> Using SRP for TLS Authentication (<a href="tls_srp/draft-ietf-tls-srp-06.txt">.txt</a>, <a href="tls_srp/draft-ietf-tls-srp-06.html">.html</a>) 51 <p><a href="http://srp.stanford.edu">SRP</a> is the best way to do password authentication 52 across a network. <a href="http://www.ietf.org/html.charters/tls-charter.html">TLS</a> (aka SSL v3.1) 53 is the best way to do channel security. What could go better together? 54 <p>This draft modifies the TLS handshake to use SRP. This combination of 55 password-based mutual authentication and the TLS record layer is 56 ideal for protecting protocols like POP3 and HTTP. 57 58 <a name="dss"> 59 <H2>DSS</H2> 60 <b>Requirements:</b> DSS Use Case Requirements Analysis (<a href="dss/oasis-dss-1.0-requirements-wd-12.pdf">.pdf</a>, <a href="dss/oasis-dss-1.0-requirements-wd-12.doc">.doc</a>)<br> 61 <b>Specification Working Draft:</b> Digital Signature Service Core Protocol and Elements (<a href="dss/oasis-dss-1.0-core-spec-wd-10.pdf">.pdf</a>, <a href="dss/oasis-dss-1.0-core-spec-wd-10.doc">.doc</a>)<br> 62 <b>Schema Working Draft:</b> oasis-dss-1.0-core-schema-wd-10 (<a href="dss/oasis-dss-1.0-core-schema-wd-10.xsd">.xsd</a>)<br> 63 <b>Somewhat Related Paper:</b> Delegated Cryptography, Online Trusted Third Parties, and PKI 64 (<a href="delegatedCrypto/delegatedCrypto.pdf">.pdf</a>, <a href="delegatedCrypto/delegatedCrypto.html">.html</a>)<br> 65 <i>(presented at the <a href="http://www.cs.dartmouth.edu/~pki02/">1st Annual PKI Research Workshop</a>)</i> 66 <p>The <a href="http://www.oasis-open.org/">OASIS</a> <a href="http://www.oasis-open.org/committees/dss/">Digital Signature Service Technical Committee</a> 67 is designing protocols for signing, verifying, and 68 time-stamping of XML documents and other data. The idea is to perform these 69 operations on servers, thus freeing clients from having to manage private 70 keys, calculate certificate paths, and so on. 71 <p>Also listed is a paper arguing for the server-based approach vs. client-side PKI. 72 73 <a name="cryptoURL"> 74 <H2>CryptoURLs</H2> 75 <b>Draft of potential Internet-Draft:</b> The "crypto" URL scheme (<a href="cryptoURL/draft-ietf-cryptoURL-01.txt">.txt</a>, <a href="cryptoURL/draft-ietf-cryptoURL-01.html">.html</a>)<br> 76 <p> 77 CryptoURLs add "crypto metadata" like content hashes and key fingerprints to normal URLs. 78 The resulting URLs are <a href="http://zooko.com/distnames.html">self-authenticating</a>, 79 like <a href="http://citeseer.nj.nec.com/mazieres99separating.html">SFS file names</a> or 80 <a href="http://research.microsoft.com/users/tuomaura/CGA/">Cryptographically Generated Addresses</a>. 81 These could be useful in: 82 <dir> 83 <LI>web pages: 84 <dir> 85 <LI>a page could link to software binaries and include their hash 86 <LI>a portal could provide secure introductions to a community of sites 87 </dir> 88 <LI>XML documents (e.g. extending an <a href="http://www.w3.org/TR/xmldsig-core/">XML-DSIG</a> over external references) 89 <LI>protocols (e.g. HTTP Redirects or LDAP Referrals) 90 <LI>software configuration (you could configure a client with the address and fingerprint of a server in one step) 91 </dir> 92 <a href="http://www.waterken.com/dev/YURL/">YURLs</a> are another approach to self-authenticating URLs. 93 94 <a name="cryptlibConverter"> 95 <H2><a href="cryptlibConverter/">CryptlibConverter</a></H2> 96 <b>Code:</b> Version 5 for cryptlib 3.1 (<a href="cryptlibConverter/cryptlibConverter5_cl31.zip">.zip</a>, <a href="cryptlibConverter/readme.txt">readme.txt</a>) 97 <p>This is a python script that generates java, python, and C# wrappers for 98 <a href="http://www.cs.auckland.ac.nz/~pgut001/cryptlib/">cryptlib</a>. A set of wrappers for 99 cryptlib 3.1 is included in the .zip file. The python and C# wrappers are also included in the latest cryptlib distribution. 100 <br> 101 <a name="cryptoID"> 102 <H2><a href="cryptoID/">CryptoIDs</a></H2> 103 <b>Paper 1:</b> Public Key Distribution through "cryptoIDs" (<a href="cryptoID/cryptoID.pdf">.pdf</a>, <a href="cryptoID/cryptoID.html">.html</a>) <i>(presented at <a href="http://www.nspw.org/2003/">NSPW 2003</a>)</i><br> 104 <b>Paper 2:</b> The CryptoID Key Management Protocols (<a href="cryptoID/cryptoID2.pdf">.pdf</a>) <i>(the best introduction)</i><br> 105 <b>Schema:</b> XML Schema for <certChain> (<a href="cryptoID/cryptoID.xsd">.xsd</a>)<br> 106 <b>Code:</b> CryptoIDlib Python and Java library and command-line tool v0.1.8 (<a href="cryptoID/cryptoIDlib-0.1.8.zip">.zip</a>, <a href="cryptoID/readme.txt">readme.txt</a>) 107 <p>PKI isn't working for person-to-person communications. Few people use 108 secure email, voice, instant-messaging, or anything else. 109 <p>CryptoIDs are an alternative. The idea is for people to exchange small, 110 user-friendly fingerprints (aka "cryptoIDs") like 'cyhf4.9ajd8.kbdx4.rk98c'. 111 These could be passed around and stored in address books as if they were phone 112 numbers or postal addresses. 113 <p>The cryptoID for each user would correspond to that user's <i>root key</i>. 114 The user would keep his root key in a safe place - his employer or 115 some commercial service might hold it for him. The rootholder would operate 116 an online service which would issue short-lived <i>subkey certificates</i> or <i>validation signatures</i> to the user. 117 <p>CryptoIDs, then, are about combining <i>fingerprint-based public-key distribution</i> with 118 <i>certificate-based private-key management</i>. The first paper above presents the 119 cryptoID fingerprint and certificate formats, which are designed specifically for 120 this. CryptoIDlib lets you test-drive these formats. 121 <p>The second paper presents private-key management protocols for use with online servers. 122 Support for these is being added to cryptoIDlib. 123 124 <a name="tls_lite"> 125 <H2><a href="tls_lite/">TLS Lite</a></H2> 126 <b>Code:</b> tls_lite python library v0.1.8 (<a href="tls_lite/tls_lite-0.1.8.zip">.zip</a>, <a href="tls_lite/readme.txt">readme.txt</a>)<br> 127 <p> 128 TLS Lite is a free python library that implements SSL 3.0 and <a href="http://www.ietf.org/rfc/rfc2246.txt">TLS 1.0</a>. 129 TLS Lite supports non-traditional authentication methods such as <a href="http://trevp.net/tls_srp/index.html">SRP</a>, 130 <a href="http://www.ietf.org/internet-drafts/draft-ietf-tls-sharedkeys-02.txt">shared keys</a>, 131 and <a href="http://trevp.net/cryptoID/index.html">cryptoIDs</a>, in addition to X.509 certificates. TLS Lite is pure 132 <a href="http://www.python.org">Python</a>, however it can access <a href="http://www.openssl.org/">OpenSSL</a> or 133 <a href="http://www.cs.auckland.ac.nz/~pgut001/cryptlib/">cryptlib</a> for faster crypto operations. 134 135 <a name="tlssrp"> 136 <H2><a href="tls_srp/">TLS/SRP</a></H2> 137 <b>Internet-Draft:</b> Using SRP for TLS Authentication (<a href="tls_srp/draft-ietf-tls-srp-06.txt">.txt</a>, <a href="tls_srp/draft-ietf-tls-srp-06.html">.html</a>) 138 <p><a href="http://srp.stanford.edu">SRP</a> is the best way to do password authentication 139 across a network. <a href="http://www.ietf.org/html.charters/tls-charter.html">TLS</a> (aka SSL v3.1) 140 is the best way to do channel security. What could go better together? 141 <p>This draft modifies the TLS handshake to use SRP. This combination of 142 password-based mutual authentication and the TLS record layer is 143 ideal for protecting protocols like POP3 and HTTP. 144 145 <a name="dss"> 146 <H2>DSS</H2> 147 <b>Requirements:</b> DSS Use Case Requirements Analysis (<a href="dss/oasis-dss-1.0-requirements-wd-12.pdf">.pdf</a>, <a href="dss/oasis-dss-1.0-requirements-wd-12.doc">.doc</a>)<br> 148 <b>Specification Working Draft:</b> Digital Signature Service Core Protocol and Elements (<a href="dss/oasis-dss-1.0-core-spec-wd-10.pdf">.pdf</a>, <a href="dss/oasis-dss-1.0-core-spec-wd-10.doc">.doc</a>)<br> 149 <b>Schema Working Draft:</b> oasis-dss-1.0-core-schema-wd-10 (<a href="dss/oasis-dss-1.0-core-schema-wd-10.xsd">.xsd</a>)<br> 150 <b>Somewhat Related Paper:</b> Delegated Cryptography, Online Trusted Third Parties, and PKI 151 (<a href="delegatedCrypto/delegatedCrypto.pdf">.pdf</a>, <a href="delegatedCrypto/delegatedCrypto.html">.html</a>)<br> 152 <i>(presented at the <a href="http://www.cs.dartmouth.edu/~pki02/">1st Annual PKI Research Workshop</a>)</i> 153 <p>The <a href="http://www.oasis-open.org/">OASIS</a> <a href="http://www.oasis-open.org/committees/dss/">Digital Signature Service Technical Committee</a> 154 is designing protocols for signing, verifying, and 155 time-stamping of XML documents and other data. The idea is to perform these 156 operations on servers, thus freeing clients from having to manage private 157 keys, calculate certificate paths, and so on. 158 <p>Also listed is a paper arguing for the server-based approach vs. client-side PKI. 159 160 <a name="cryptoURL"> 161 <H2>CryptoURLs</H2> 162 <b>Draft of potential Internet-Draft:</b> The "crypto" URL scheme (<a href="cryptoURL/draft-ietf-cryptoURL-01.txt">.txt</a>, <a href="cryptoURL/draft-ietf-cryptoURL-01.html">.html</a>)<br> 163 <p> 164 CryptoURLs add "crypto metadata" like content hashes and key fingerprints to normal URLs. 165 The resulting URLs are <a href="http://zooko.com/distnames.html">self-authenticating</a>, 166 like <a href="http://citeseer.nj.nec.com/mazieres99separating.html">SFS file names</a> or 167 <a href="http://research.microsoft.com/users/tuomaura/CGA/">Cryptographically Generated Addresses</a>. 168 These could be useful in: 169 <dir> 170 <LI>web pages: 171 <dir> 172 <LI>a page could link to software binaries and include their hash 173 <LI>a portal could provide secure introductions to a community of sites 174 </dir> 175 <LI>XML documents (e.g. extending an <a href="http://www.w3.org/TR/xmldsig-core/">XML-DSIG</a> over external references) 176 <LI>protocols (e.g. HTTP Redirects or LDAP Referrals) 177 <LI>software configuration (you could configure a client with the address and fingerprint of a server in one step) 178 </dir> 179 <a href="http://www.waterken.com/dev/YURL/">YURLs</a> are another approach to self-authenticating URLs. 180 181 <a name="cryptlibConverter"> 182 <H2><a href="cryptlibConverter/">CryptlibConverter</a></H2> 183 <b>Code:</b> Version 5 for cryptlib 3.1 (<a href="cryptlibConverter/cryptlibConverter5_cl31.zip">.zip</a>, <a href="cryptlibConverter/readme.txt">readme.txt</a>) 184 <p>This is a python script that generates java, python, and C# wrappers for 185 <a href="http://www.cs.auckland.ac.nz/~pgut001/cryptlib/">cryptlib</a>. A set of wrappers for 186 cryptlib 3.1 is included in the .zip file. The python and C# wrappers are also included in the latest cryptlib distribution. 187 <br> 188 <a name="cryptoID"> 189 <H2><a href="cryptoID/">CryptoIDs</a></H2> 190 <b>Paper 1:</b> Public Key Distribution through "cryptoIDs" (<a href="cryptoID/cryptoID.pdf">.pdf</a>, <a href="cryptoID/cryptoID.html">.html</a>) <i>(presented at <a href="http://www.nspw.org/2003/">NSPW 2003</a>)</i><br> 191 <b>Paper 2:</b> The CryptoID Key Management Protocols (<a href="cryptoID/cryptoID2.pdf">.pdf</a>) <i>(the best introduction)</i><br> 192 <b>Schema:</b> XML Schema for <certChain> (<a href="cryptoID/cryptoID.xsd">.xsd</a>)<br> 193 <b>Code:</b> CryptoIDlib Python and Java library and command-line tool v0.1.8 (<a href="cryptoID/cryptoIDlib-0.1.8.zip">.zip</a>, <a href="cryptoID/readme.txt">readme.txt</a>) 194 <p>PKI isn't working for person-to-person communications. Few people use 195 secure email, voice, instant-messaging, or anything else. 196 <p>CryptoIDs are an alternative. The idea is for people to exchange small, 197 user-friendly fingerprints (aka "cryptoIDs") like 'cyhf4.9ajd8.kbdx4.rk98c'. 198 These could be passed around and stored in address books as if they were phone 199 numbers or postal addresses. 200 <p>The cryptoID for each user would correspond to that user's <i>root key</i>. 201 The user would keep his root key in a safe place - his employer or 202 some commercial service might hold it for him. The rootholder would operate 203 an online service which would issue short-lived <i>subkey certificates</i> or <i>validation signatures</i> to the user. 204 <p>CryptoIDs, then, are about combining <i>fingerprint-based public-key distribution</i> with 205 <i>certificate-based private-key management</i>. The first paper above presents the 206 cryptoID fingerprint and certificate formats, which are designed specifically for 207 this. CryptoIDlib lets you test-drive these formats. 208 <p>The second paper presents private-key management protocols for use with online servers. 209 Support for these is being added to cryptoIDlib. 210 211 <a name="tls_lite"> 212 <H2><a href="tls_lite/">TLS Lite</a></H2> 213 <b>Code:</b> tls_lite python library v0.1.8 (<a href="tls_lite/tls_lite-0.1.8.zip">.zip</a>, <a href="tls_lite/readme.txt">readme.txt</a>)<br> 214 <p> 215 TLS Lite is a free python library that implements SSL 3.0 and <a href="http://www.ietf.org/rfc/rfc2246.txt">TLS 1.0</a>. 216 TLS Lite supports non-traditional authentication methods such as <a href="http://trevp.net/tls_srp/index.html">SRP</a>, 217 <a href="http://www.ietf.org/internet-drafts/draft-ietf-tls-sharedkeys-02.txt">shared keys</a>, 218 and <a href="http://trevp.net/cryptoID/index.html">cryptoIDs</a>, in addition to X.509 certificates. TLS Lite is pure 219 <a href="http://www.python.org">Python</a>, however it can access <a href="http://www.openssl.org/">OpenSSL</a> or 220 <a href="http://www.cs.auckland.ac.nz/~pgut001/cryptlib/">cryptlib</a> for faster crypto operations. 221 222 <a name="tlssrp"> 223 <H2><a href="tls_srp/">TLS/SRP</a></H2> 224 <b>Internet-Draft:</b> Using SRP for TLS Authentication (<a href="tls_srp/draft-ietf-tls-srp-06.txt">.txt</a>, <a href="tls_srp/draft-ietf-tls-srp-06.html">.html</a>) 225 <p><a href="http://srp.stanford.edu">SRP</a> is the best way to do password authentication 226 across a network. <a href="http://www.ietf.org/html.charters/tls-charter.html">TLS</a> (aka SSL v3.1) 227 is the best way to do channel security. What could go better together? 228 <p>This draft modifies the TLS handshake to use SRP. This combination of 229 password-based mutual authentication and the TLS record layer is 230 ideal for protecting protocols like POP3 and HTTP. 231 232 <a name="dss"> 233 <H2>DSS</H2> 234 <b>Requirements:</b> DSS Use Case Requirements Analysis (<a href="dss/oasis-dss-1.0-requirements-wd-12.pdf">.pdf</a>, <a href="dss/oasis-dss-1.0-requirements-wd-12.doc">.doc</a>)<br> 235 <b>Specification Working Draft:</b> Digital Signature Service Core Protocol and Elements (<a href="dss/oasis-dss-1.0-core-spec-wd-10.pdf">.pdf</a>, <a href="dss/oasis-dss-1.0-core-spec-wd-10.doc">.doc</a>)<br> 236 <b>Schema Working Draft:</b> oasis-dss-1.0-core-schema-wd-10 (<a href="dss/oasis-dss-1.0-core-schema-wd-10.xsd">.xsd</a>)<br> 237 <b>Somewhat Related Paper:</b> Delegated Cryptography, Online Trusted Third Parties, and PKI 238 (<a href="delegatedCrypto/delegatedCrypto.pdf">.pdf</a>, <a href="delegatedCrypto/delegatedCrypto.html">.html</a>)<br> 239 <i>(presented at the <a href="http://www.cs.dartmouth.edu/~pki02/">1st Annual PKI Research Workshop</a>)</i> 240 <p>The <a href="http://www.oasis-open.org/">OASIS</a> <a href="http://www.oasis-open.org/committees/dss/">Digital Signature Service Technical Committee</a> 241 is designing protocols for signing, verifying, and 242 time-stamping of XML documents and other data. The idea is to perform these 243 operations on servers, thus freeing clients from having to manage private 244 keys, calculate certificate paths, and so on. 245 <p>Also listed is a paper arguing for the server-based approach vs. client-side PKI. 246 247 <a name="cryptoURL"> 248 <H2>CryptoURLs</H2> 249 <b>Draft of potential Internet-Draft:</b> The "crypto" URL scheme (<a href="cryptoURL/draft-ietf-cryptoURL-01.txt">.txt</a>, <a href="cryptoURL/draft-ietf-cryptoURL-01.html">.html</a>)<br> 250 <p> 251 CryptoURLs add "crypto metadata" like content hashes and key fingerprints to normal URLs. 252 The resulting URLs are <a href="http://zooko.com/distnames.html">self-authenticating</a>, 253 like <a href="http://citeseer.nj.nec.com/mazieres99separating.html">SFS file names</a> or 254 <a href="http://research.microsoft.com/users/tuomaura/CGA/">Cryptographically Generated Addresses</a>. 255 These could be useful in: 256 <dir> 257 <LI>web pages: 258 <dir> 259 <LI>a page could link to software binaries and include their hash 260 <LI>a portal could provide secure introductions to a community of sites 261 </dir> 262 <LI>XML documents (e.g. extending an <a href="http://www.w3.org/TR/xmldsig-core/">XML-DSIG</a> over external references) 263 <LI>protocols (e.g. HTTP Redirects or LDAP Referrals) 264 <LI>software configuration (you could configure a client with the address and fingerprint of a server in one step) 265 </dir> 266 <a href="http://www.waterken.com/dev/YURL/">YURLs</a> are another approach to self-authenticating URLs. 267 268 <a name="cryptlibConverter"> 269 <H2><a href="cryptlibConverter/">CryptlibConverter</a></H2> 270 <b>Code:</b> Version 5 for cryptlib 3.1 (<a href="cryptlibConverter/cryptlibConverter5_cl31.zip">.zip</a>, <a href="cryptlibConverter/readme.txt">readme.txt</a>) 271 <p>This is a python script that generates java, python, and C# wrappers for 272 <a href="http://www.cs.auckland.ac.nz/~pgut001/cryptlib/">cryptlib</a>. A set of wrappers for 273 cryptlib 3.1 is included in the .zip file. The python and C# wrappers are also included in the latest cryptlib distribution. 274 <br> 275 <a name="cryptoID"> 276 <H2><a href="cryptoID/">CryptoIDs</a></H2> 277 <b>Paper 1:</b> Public Key Distribution through "cryptoIDs" (<a href="cryptoID/cryptoID.pdf">.pdf</a>, <a href="cryptoID/cryptoID.html">.html</a>) <i>(presented at <a href="http://www.nspw.org/2003/">NSPW 2003</a>)</i><br> 278 <b>Paper 2:</b> The CryptoID Key Management Protocols (<a href="cryptoID/cryptoID2.pdf">.pdf</a>) <i>(the best introduction)</i><br> 279 <b>Schema:</b> XML Schema for <certChain> (<a href="cryptoID/cryptoID.xsd">.xsd</a>)<br> 280 <b>Code:</b> CryptoIDlib Python and Java library and command-line tool v0.1.8 (<a href="cryptoID/cryptoIDlib-0.1.8.zip">.zip</a>, <a href="cryptoID/readme.txt">readme.txt</a>) 281 <p>PKI isn't working for person-to-person communications. Few people use 282 secure email, voice, instant-messaging, or anything else. 283 <p>CryptoIDs are an alternative. The idea is for people to exchange small, 284 user-friendly fingerprints (aka "cryptoIDs") like 'cyhf4.9ajd8.kbdx4.rk98c'. 285 These could be passed around and stored in address books as if they were phone 286 numbers or postal addresses. 287 <p>The cryptoID for each user would correspond to that user's <i>root key</i>. 288 The user would keep his root key in a safe place - his employer or 289 some commercial service might hold it for him. The rootholder would operate 290 an online service which would issue short-lived <i>subkey certificates</i> or <i>validation signatures</i> to the user. 291 <p>CryptoIDs, then, are about combining <i>fingerprint-based public-key distribution</i> with 292 <i>certificate-based private-key management</i>. The first paper above presents the 293 cryptoID fingerprint and certificate formats, which are designed specifically for 294 this. CryptoIDlib lets you test-drive these formats. 295 <p>The second paper presents private-key management protocols for use with online servers. 296 Support for these is being added to cryptoIDlib. 297 298 <a name="tls_lite"> 299 <H2><a href="tls_lite/">TLS Lite</a></H2> 300 <b>Code:</b> tls_lite python library v0.1.8 (<a href="tls_lite/tls_lite-0.1.8.zip">.zip</a>, <a href="tls_lite/readme.txt">readme.txt</a>)<br> 301 <p> 302 TLS Lite is a free python library that implements SSL 3.0 and <a href="http://www.ietf.org/rfc/rfc2246.txt">TLS 1.0</a>. 303 TLS Lite supports non-traditional authentication methods such as <a href="http://trevp.net/tls_srp/index.html">SRP</a>, 304 <a href="http://www.ietf.org/internet-drafts/draft-ietf-tls-sharedkeys-02.txt">shared keys</a>, 305 and <a href="http://trevp.net/cryptoID/index.html">cryptoIDs</a>, in addition to X.509 certificates. TLS Lite is pure 306 <a href="http://www.python.org">Python</a>, however it can access <a href="http://www.openssl.org/">OpenSSL</a> or 307 <a href="http://www.cs.auckland.ac.nz/~pgut001/cryptlib/">cryptlib</a> for faster crypto operations. 308 309 <a name="tlssrp"> 310 <H2><a href="tls_srp/">TLS/SRP</a></H2> 311 <b>Internet-Draft:</b> Using SRP for TLS Authentication (<a href="tls_srp/draft-ietf-tls-srp-06.txt">.txt</a>, <a href="tls_srp/draft-ietf-tls-srp-06.html">.html</a>) 312 <p><a href="http://srp.stanford.edu">SRP</a> is the best way to do password authentication 313 across a network. <a href="http://www.ietf.org/html.charters/tls-charter.html">TLS</a> (aka SSL v3.1) 314 is the best way to do channel security. What could go better together? 315 <p>This draft modifies the TLS handshake to use SRP. This combination of 316 password-based mutual authentication and the TLS record layer is 317 ideal for protecting protocols like POP3 and HTTP. 318 319 <a name="dss"> 320 <H2>DSS</H2> 321 <b>Requirements:</b> DSS Use Case Requirements Analysis (<a href="dss/oasis-dss-1.0-requirements-wd-12.pdf">.pdf</a>, <a href="dss/oasis-dss-1.0-requirements-wd-12.doc">.doc</a>)<br> 322 <b>Specification Working Draft:</b> Digital Signature Service Core Protocol and Elements (<a href="dss/oasis-dss-1.0-core-spec-wd-10.pdf">.pdf</a>, <a href="dss/oasis-dss-1.0-core-spec-wd-10.doc">.doc</a>)<br> 323 <b>Schema Working Draft:</b> oasis-dss-1.0-core-schema-wd-10 (<a href="dss/oasis-dss-1.0-core-schema-wd-10.xsd">.xsd</a>)<br> 324 <b>Somewhat Related Paper:</b> Delegated Cryptography, Online Trusted Third Parties, and PKI 325 (<a href="delegatedCrypto/delegatedCrypto.pdf">.pdf</a>, <a href="delegatedCrypto/delegatedCrypto.html">.html</a>)<br> 326 <i>(presented at the <a href="http://www.cs.dartmouth.edu/~pki02/">1st Annual PKI Research Workshop</a>)</i> 327 <p>The <a href="http://www.oasis-open.org/">OASIS</a> <a href="http://www.oasis-open.org/committees/dss/">Digital Signature Service Technical Committee</a> 328 is designing protocols for signing, verifying, and 329 time-stamping of XML documents and other data. The idea is to perform these 330 operations on servers, thus freeing clients from having to manage private 331 keys, calculate certificate paths, and so on. 332 <p>Also listed is a paper arguing for the server-based approach vs. client-side PKI. 333 334 <a name="cryptoURL"> 335 <H2>CryptoURLs</H2> 336 <b>Draft of potential Internet-Draft:</b> The "crypto" URL scheme (<a href="cryptoURL/draft-ietf-cryptoURL-01.txt">.txt</a>, <a href="cryptoURL/draft-ietf-cryptoURL-01.html">.html</a>)<br> 337 <p> 338 CryptoURLs add "crypto metadata" like content hashes and key fingerprints to normal URLs. 339 The resulting URLs are <a href="http://zooko.com/distnames.html">self-authenticating</a>, 340 like <a href="http://citeseer.nj.nec.com/mazieres99separating.html">SFS file names</a> or 341 <a href="http://research.microsoft.com/users/tuomaura/CGA/">Cryptographically Generated Addresses</a>. 342 These could be useful in: 343 <dir> 344 <LI>web pages: 345 <dir> 346 <LI>a page could link to software binaries and include their hash 347 <LI>a portal could provide secure introductions to a community of sites 348 </dir> 349 <LI>XML documents (e.g. extending an <a href="http://www.w3.org/TR/xmldsig-core/">XML-DSIG</a> over external references) 350 <LI>protocols (e.g. HTTP Redirects or LDAP Referrals) 351 <LI>software configuration (you could configure a client with the address and fingerprint of a server in one step) 352 </dir> 353 <a href="http://www.waterken.com/dev/YURL/">YURLs</a> are another approach to self-authenticating URLs. 354 355 <a name="cryptlibConverter"> 356 <H2><a href="cryptlibConverter/">CryptlibConverter</a></H2> 357 <b>Code:</b> Version 5 for cryptlib 3.1 (<a href="cryptlibConverter/cryptlibConverter5_cl31.zip">.zip</a>, <a href="cryptlibConverter/readme.txt">readme.txt</a>) 358 <p>This is a python script that generates java, python, and C# wrappers for 359 <a href="http://www.cs.auckland.ac.nz/~pgut001/cryptlib/">cryptlib</a>. A set of wrappers for 360 cryptlib 3.1 is included in the .zip file. The python and C# wrappers are also included in the latest cryptlib distribution. 361 <br> 362 <a name="cryptoID"> 363 <H2><a href="cryptoID/">CryptoIDs</a></H2> 364 <b>Paper 1:</b> Public Key Distribution through "cryptoIDs" (<a href="cryptoID/cryptoID.pdf">.pdf</a>, <a href="cryptoID/cryptoID.html">.html</a>) <i>(presented at <a href="http://www.nspw.org/2003/">NSPW 2003</a>)</i><br> 365 <b>Paper 2:</b> The CryptoID Key Management Protocols (<a href="cryptoID/cryptoID2.pdf">.pdf</a>) <i>(the best introduction)</i><br> 366 <b>Schema:</b> XML Schema for <certChain> (<a href="cryptoID/cryptoID.xsd">.xsd</a>)<br> 367 <b>Code:</b> CryptoIDlib Python and Java library and command-line tool v0.1.8 (<a href="cryptoID/cryptoIDlib-0.1.8.zip">.zip</a>, <a href="cryptoID/readme.txt">readme.txt</a>) 368 <p>PKI isn't working for person-to-person communications. Few people use 369 secure email, voice, instant-messaging, or anything else. 370 <p>CryptoIDs are an alternative. The idea is for people to exchange small, 371 user-friendly fingerprints (aka "cryptoIDs") like 'cyhf4.9ajd8.kbdx4.rk98c'. 372 These could be passed around and stored in address books as if they were phone 373 numbers or postal addresses. 374 <p>The cryptoID for each user would correspond to that user's <i>root key</i>. 375 The user would keep his root key in a safe place - his employer or 376 some commercial service might hold it for him. The rootholder would operate 377 an online service which would issue short-lived <i>subkey certificates</i> or <i>validation signatures</i> to the user. 378 <p>CryptoIDs, then, are about combining <i>fingerprint-based public-key distribution</i> with 379 <i>certificate-based private-key management</i>. The first paper above presents the 380 cryptoID fingerprint and certificate formats, which are designed specifically for 381 this. CryptoIDlib lets you test-drive these formats. 382 <p>The second paper presents private-key management protocols for use with online servers. 383 Support for these is being added to cryptoIDlib. 384 385 <a name="tls_lite"> 386 <H2><a href="tls_lite/">TLS Lite</a></H2> 387 <b>Code:</b> tls_lite python library v0.1.8 (<a href="tls_lite/tls_lite-0.1.8.zip">.zip</a>, <a href="tls_lite/readme.txt">readme.txt</a>)<br> 388 <p> 389 TLS Lite is a free python library that implements SSL 3.0 and <a href="http://www.ietf.org/rfc/rfc2246.txt">TLS 1.0</a>. 390 TLS Lite supports non-traditional authentication methods such as <a href="http://trevp.net/tls_srp/index.html">SRP</a>, 391 <a href="http://www.ietf.org/internet-drafts/draft-ietf-tls-sharedkeys-02.txt">shared keys</a>, 392 and <a href="http://trevp.net/cryptoID/index.html">cryptoIDs</a>, in addition to X.509 certificates. TLS Lite is pure 393 <a href="http://www.python.org">Python</a>, however it can access <a href="http://www.openssl.org/">OpenSSL</a> or 394 <a href="http://www.cs.auckland.ac.nz/~pgut001/cryptlib/">cryptlib</a> for faster crypto operations. 395 396 <a name="tlssrp"> 397 <H2><a href="tls_srp/">TLS/SRP</a></H2> 398 <b>Internet-Draft:</b> Using SRP for TLS Authentication (<a href="tls_srp/draft-ietf-tls-srp-06.txt">.txt</a>, <a href="tls_srp/draft-ietf-tls-srp-06.html">.html</a>) 399 <p><a href="http://srp.stanford.edu">SRP</a> is the best way to do password authentication 400 across a network. <a href="http://www.ietf.org/html.charters/tls-charter.html">TLS</a> (aka SSL v3.1) 401 is the best way to do channel security. What could go better together? 402 <p>This draft modifies the TLS handshake to use SRP. This combination of 403 password-based mutual authentication and the TLS record layer is 404 ideal for protecting protocols like POP3 and HTTP. 405 406 <a name="dss"> 407 <H2>DSS</H2> 408 <b>Requirements:</b> DSS Use Case Requirements Analysis (<a href="dss/oasis-dss-1.0-requirements-wd-12.pdf">.pdf</a>, <a href="dss/oasis-dss-1.0-requirements-wd-12.doc">.doc</a>)<br> 409 <b>Specification Working Draft:</b> Digital Signature Service Core Protocol and Elements (<a href="dss/oasis-dss-1.0-core-spec-wd-10.pdf">.pdf</a>, <a href="dss/oasis-dss-1.0-core-spec-wd-10.doc">.doc</a>)<br> 410 <b>Schema Working Draft:</b> oasis-dss-1.0-core-schema-wd-10 (<a href="dss/oasis-dss-1.0-core-schema-wd-10.xsd">.xsd</a>)<br> 411 <b>Somewhat Related Paper:</b> Delegated Cryptography, Online Trusted Third Parties, and PKI 412 (<a href="delegatedCrypto/delegatedCrypto.pdf">.pdf</a>, <a href="delegatedCrypto/delegatedCrypto.html">.html</a>)<br> 413 <i>(presented at the <a href="http://www.cs.dartmouth.edu/~pki02/">1st Annual PKI Research Workshop</a>)</i> 414 <p>The <a href="http://www.oasis-open.org/">OASIS</a> <a href="http://www.oasis-open.org/committees/dss/">Digital Signature Service Technical Committee</a> 415 is designing protocols for signing, verifying, and 416 time-stamping of XML documents and other data. The idea is to perform these 417 operations on servers, thus freeing clients from having to manage private 418 keys, calculate certificate paths, and so on. 419 <p>Also listed is a paper arguing for the server-based approach vs. client-side PKI. 420 421 <a name="cryptoURL"> 422 <H2>CryptoURLs</H2> 423 <b>Draft of potential Internet-Draft:</b> The "crypto" URL scheme (<a href="cryptoURL/draft-ietf-cryptoURL-01.txt">.txt</a>, <a href="cryptoURL/draft-ietf-cryptoURL-01.html">.html</a>)<br> 424 <p> 425 CryptoURLs add "crypto metadata" like content hashes and key fingerprints to normal URLs. 426 The resulting URLs are <a href="http://zooko.com/distnames.html">self-authenticating</a>, 427 like <a href="http://citeseer.nj.nec.com/mazieres99separating.html">SFS file names</a> or 428 <a href="http://research.microsoft.com/users/tuomaura/CGA/">Cryptographically Generated Addresses</a>. 429 These could be useful in: 430 <dir> 431 <LI>web pages: 432 <dir> 433 <LI>a page could link to software binaries and include their hash 434 <LI>a portal could provide secure introductions to a community of sites 435 </dir> 436 <LI>XML documents (e.g. extending an <a href="http://www.w3.org/TR/xmldsig-core/">XML-DSIG</a> over external references) 437 <LI>protocols (e.g. HTTP Redirects or LDAP Referrals) 438 <LI>software configuration (you could configure a client with the address and fingerprint of a server in one step) 439 </dir> 440 <a href="http://www.waterken.com/dev/YURL/">YURLs</a> are another approach to self-authenticating URLs. 441 442 <a name="cryptlibConverter"> 443 <H2><a href="cryptlibConverter/">CryptlibConverter</a></H2> 444 <b>Code:</b> Version 5 for cryptlib 3.1 (<a href="cryptlibConverter/cryptlibConverter5_cl31.zip">.zip</a>, <a href="cryptlibConverter/readme.txt">readme.txt</a>) 445 <p>This is a python script that generates java, python, and C# wrappers for 446 <a href="http://www.cs.auckland.ac.nz/~pgut001/cryptlib/">cryptlib</a>. A set of wrappers for 447 cryptlib 3.1 is included in the .zip file. The python and C# wrappers are also included in the latest cryptlib distribution. 448 <br> 449 <a name="cryptoID"> 450 <H2><a href="cryptoID/">CryptoIDs</a></H2> 451 <b>Paper 1:</b> Public Key Distribution through "cryptoIDs" (<a href="cryptoID/cryptoID.pdf">.pdf</a>, <a href="cryptoID/cryptoID.html">.html</a>) <i>(presented at <a href="http://www.nspw.org/2003/">NSPW 2003</a>)</i><br> 452 <b>Paper 2:</b> The CryptoID Key Management Protocols (<a href="cryptoID/cryptoID2.pdf">.pdf</a>) <i>(the best introduction)</i><br> 453 <b>Schema:</b> XML Schema for <certChain> (<a href="cryptoID/cryptoID.xsd">.xsd</a>)<br> 454 <b>Code:</b> CryptoIDlib Python and Java library and command-line tool v0.1.8 (<a href="cryptoID/cryptoIDlib-0.1.8.zip">.zip</a>, <a href="cryptoID/readme.txt">readme.txt</a>) 455 <p>PKI isn't working for person-to-person communications. Few people use 456 secure email, voice, instant-messaging, or anything else. 457 <p>CryptoIDs are an alternative. The idea is for people to exchange small, 458 user-friendly fingerprints (aka "cryptoIDs") like 'cyhf4.9ajd8.kbdx4.rk98c'. 459 These could be passed around and stored in address books as if they were phone 460 numbers or postal addresses. 461 <p>The cryptoID for each user would correspond to that user's <i>root key</i>. 462 The user would keep his root key in a safe place - his employer or 463 some commercial service might hold it for him. The rootholder would operate 464 an online service which would issue short-lived <i>subkey certificates</i> or <i>validation signatures</i> to the user. 465 <p>CryptoIDs, then, are about combining <i>fingerprint-based public-key distribution</i> with 466 <i>certificate-based private-key management</i>. The first paper above presents the 467 cryptoID fingerprint and certificate formats, which are designed specifically for 468 this. CryptoIDlib lets you test-drive these formats. 469 <p>The second paper presents private-key management protocols for use with online servers. 470 Support for these is being added to cryptoIDlib. 471 472 <a name="tls_lite"> 473 <H2><a href="tls_lite/">TLS Lite</a></H2> 474 <b>Code:</b> tls_lite python library v0.1.8 (<a href="tls_lite/tls_lite-0.1.8.zip">.zip</a>, <a href="tls_lite/readme.txt">readme.txt</a>)<br> 475 <p> 476 TLS Lite is a free python library that implements SSL 3.0 and <a href="http://www.ietf.org/rfc/rfc2246.txt">TLS 1.0</a>. 477 TLS Lite supports non-traditional authentication methods such as <a href="http://trevp.net/tls_srp/index.html">SRP</a>, 478 <a href="http://www.ietf.org/internet-drafts/draft-ietf-tls-sharedkeys-02.txt">shared keys</a>, 479 and <a href="http://trevp.net/cryptoID/index.html">cryptoIDs</a>, in addition to X.509 certificates. TLS Lite is pure 480 <a href="http://www.python.org">Python</a>, however it can access <a href="http://www.openssl.org/">OpenSSL</a> or 481 <a href="http://www.cs.auckland.ac.nz/~pgut001/cryptlib/">cryptlib</a> for faster crypto operations. 482 483 <a name="tlssrp"> 484 <H2><a href="tls_srp/">TLS/SRP</a></H2> 485 <b>Internet-Draft:</b> Using SRP for TLS Authentication (<a href="tls_srp/draft-ietf-tls-srp-06.txt">.txt</a>, <a href="tls_srp/draft-ietf-tls-srp-06.html">.html</a>) 486 <p><a href="http://srp.stanford.edu">SRP</a> is the best way to do password authentication 487 across a network. <a href="http://www.ietf.org/html.charters/tls-charter.html">TLS</a> (aka SSL v3.1) 488 is the best way to do channel security. What could go better together? 489 <p>This draft modifies the TLS handshake to use SRP. This combination of 490 password-based mutual authentication and the TLS record layer is 491 ideal for protecting protocols like POP3 and HTTP. 492 493 <a name="dss"> 494 <H2>DSS</H2> 495 <b>Requirements:</b> DSS Use Case Requirements Analysis (<a href="dss/oasis-dss-1.0-requirements-wd-12.pdf">.pdf</a>, <a href="dss/oasis-dss-1.0-requirements-wd-12.doc">.doc</a>)<br> 496 <b>Specification Working Draft:</b> Digital Signature Service Core Protocol and Elements (<a href="dss/oasis-dss-1.0-core-spec-wd-10.pdf">.pdf</a>, <a href="dss/oasis-dss-1.0-core-spec-wd-10.doc">.doc</a>)<br> 497 <b>Schema Working Draft:</b> oasis-dss-1.0-core-schema-wd-10 (<a href="dss/oasis-dss-1.0-core-schema-wd-10.xsd">.xsd</a>)<br> 498 <b>Somewhat Related Paper:</b> Delegated Cryptography, Online Trusted Third Parties, and PKI 499 (<a href="delegatedCrypto/delegatedCrypto.pdf">.pdf</a>, <a href="delegatedCrypto/delegatedCrypto.html">.html</a>)<br> 500 <i>(presented at the <a href="http://www.cs.dartmouth.edu/~pki02/">1st Annual PKI Research Workshop</a>)</i> 501 <p>The <a href="http://www.oasis-open.org/">OASIS</a> <a href="http://www.oasis-open.org/committees/dss/">Digital Signature Service Technical Committee</a> 502 is designing protocols for signing, verifying, and 503 time-stamping of XML documents and other data. The idea is to perform these 504 operations on servers, thus freeing clients from having to manage private 505 keys, calculate certificate paths, and so on. 506 <p>Also listed is a paper arguing for the server-based approach vs. client-side PKI. 507 508 <a name="cryptoURL"> 509 <H2>CryptoURLs</H2> 510 <b>Draft of potential Internet-Draft:</b> The "crypto" URL scheme (<a href="cryptoURL/draft-ietf-cryptoURL-01.txt">.txt</a>, <a href="cryptoURL/draft-ietf-cryptoURL-01.html">.html</a>)<br> 511 <p> 512 CryptoURLs add "crypto metadata" like content hashes and key fingerprints to normal URLs. 513 The resulting URLs are <a href="http://zooko.com/distnames.html">self-authenticating</a>, 514 like <a href="http://citeseer.nj.nec.com/mazieres99separating.html">SFS file names</a> or 515 <a href="http://research.microsoft.com/users/tuomaura/CGA/">Cryptographically Generated Addresses</a>. 516 These could be useful in: 517 <dir> 518 <LI>web pages: 519 <dir> 520 <LI>a page could link to software binaries and include their hash 521 <LI>a portal could provide secure introductions to a community of sites 522 </dir> 523 <LI>XML documents (e.g. extending an <a href="http://www.w3.org/TR/xmldsig-core/">XML-DSIG</a> over external references) 524 <LI>protocols (e.g. HTTP Redirects or LDAP Referrals) 525 <LI>software configuration (you could configure a client with the address and fingerprint of a server in one step) 526 </dir> 527 <a href="http://www.waterken.com/dev/YURL/">YURLs</a> are another approach to self-authenticating URLs. 528 529 <a name="cryptlibConverter"> 530 <H2><a href="cryptlibConverter/">CryptlibConverter</a></H2> 531 <b>Code:</b> Version 5 for cryptlib 3.1 (<a href="cryptlibConverter/cryptlibConverter5_cl31.zip">.zip</a>, <a href="cryptlibConverter/readme.txt">readme.txt</a>) 532 <p>This is a python script that generates java, python, and C# wrappers for 533 <a href="http://www.cs.auckland.ac.nz/~pgut001/cryptlib/">cryptlib</a>. A set of wrappers for 534 cryptlib 3.1 is included in the .zip file. The python and C# wrappers are also included in the latest cryptlib distribution. 535 <br> 536 <a name="cryptoID"> 537 <H2><a href="cryptoID/">CryptoIDs</a></H2> 538 <b>Paper 1:</b> Public Key Distribution through "cryptoIDs" (<a href="cryptoID/cryptoID.pdf">.pdf</a>, <a href="cryptoID/cryptoID.html">.html</a>) <i>(presented at <a href="http://www.nspw.org/2003/">NSPW 2003</a>)</i><br> 539 <b>Paper 2:</b> The CryptoID Key Management Protocols (<a href="cryptoID/cryptoID2.pdf">.pdf</a>) <i>(the best introduction)</i><br> 540 <b>Schema:</b> XML Schema for <certChain> (<a href="cryptoID/cryptoID.xsd">.xsd</a>)<br> 541 <b>Code:</b> CryptoIDlib Python and Java library and command-line tool v0.1.8 (<a href="cryptoID/cryptoIDlib-0.1.8.zip">.zip</a>, <a href="cryptoID/readme.txt">readme.txt</a>) 542 <p>PKI isn't working for person-to-person communications. Few people use 543 secure email, voice, instant-messaging, or anything else. 544 <p>CryptoIDs are an alternative. The idea is for people to exchange small, 545 user-friendly fingerprints (aka "cryptoIDs") like 'cyhf4.9ajd8.kbdx4.rk98c'. 546 These could be passed around and stored in address books as if they were phone 547 numbers or postal addresses. 548 <p>The cryptoID for each user would correspond to that user's <i>root key</i>. 549 The user would keep his root key in a safe place - his employer or 550 some commercial service might hold it for him. The rootholder would operate 551 an online service which would issue short-lived <i>subkey certificates</i> or <i>validation signatures</i> to the user. 552 <p>CryptoIDs, then, are about combining <i>fingerprint-based public-key distribution</i> with 553 <i>certificate-based private-key management</i>. The first paper above presents the 554 cryptoID fingerprint and certificate formats, which are designed specifically for 555 this. CryptoIDlib lets you test-drive these formats. 556 <p>The second paper presents private-key management protocols for use with online servers. 557 Support for these is being added to cryptoIDlib. 558 559 <a name="tls_lite"> 560 <H2><a href="tls_lite/">TLS Lite</a></H2> 561 <b>Code:</b> tls_lite python library v0.1.8 (<a href="tls_lite/tls_lite-0.1.8.zip">.zip</a>, <a href="tls_lite/readme.txt">readme.txt</a>)<br> 562 <p> 563 TLS Lite is a free python library that implements SSL 3.0 and <a href="http://www.ietf.org/rfc/rfc2246.txt">TLS 1.0</a>. 564 TLS Lite supports non-traditional authentication methods such as <a href="http://trevp.net/tls_srp/index.html">SRP</a>, 565 <a href="http://www.ietf.org/internet-drafts/draft-ietf-tls-sharedkeys-02.txt">shared keys</a>, 566 and <a href="http://trevp.net/cryptoID/index.html">cryptoIDs</a>, in addition to X.509 certificates. TLS Lite is pure 567 <a href="http://www.python.org">Python</a>, however it can access <a href="http://www.openssl.org/">OpenSSL</a> or 568 <a href="http://www.cs.auckland.ac.nz/~pgut001/cryptlib/">cryptlib</a> for faster crypto operations. 569 570 <a name="tlssrp"> 571 <H2><a href="tls_srp/">TLS/SRP</a></H2> 572 <b>Internet-Draft:</b> Using SRP for TLS Authentication (<a href="tls_srp/draft-ietf-tls-srp-06.txt">.txt</a>, <a href="tls_srp/draft-ietf-tls-srp-06.html">.html</a>) 573 <p><a href="http://srp.stanford.edu">SRP</a> is the best way to do password authentication 574 across a network. <a href="http://www.ietf.org/html.charters/tls-charter.html">TLS</a> (aka SSL v3.1) 575 is the best way to do channel security. What could go better together? 576 <p>This draft modifies the TLS handshake to use SRP. This combination of 577 password-based mutual authentication and the TLS record layer is 578 ideal for protecting protocols like POP3 and HTTP. 579 580 <a name="dss"> 581 <H2>DSS</H2> 582 <b>Requirements:</b> DSS Use Case Requirements Analysis (<a href="dss/oasis-dss-1.0-requirements-wd-12.pdf">.pdf</a>, <a href="dss/oasis-dss-1.0-requirements-wd-12.doc">.doc</a>)<br> 583 <b>Specification Working Draft:</b> Digital Signature Service Core Protocol and Elements (<a href="dss/oasis-dss-1.0-core-spec-wd-10.pdf">.pdf</a>, <a href="dss/oasis-dss-1.0-core-spec-wd-10.doc">.doc</a>)<br> 584 <b>Schema Working Draft:</b> oasis-dss-1.0-core-schema-wd-10 (<a href="dss/oasis-dss-1.0-core-schema-wd-10.xsd">.xsd</a>)<br> 585 <b>Somewhat Related Paper:</b> Delegated Cryptography, Online Trusted Third Parties, and PKI 586 (<a href="delegatedCrypto/delegatedCrypto.pdf">.pdf</a>, <a href="delegatedCrypto/delegatedCrypto.html">.html</a>)<br> 587 <i>(presented at the <a href="http://www.cs.dartmouth.edu/~pki02/">1st Annual PKI Research Workshop</a>)</i> 588 <p>The <a href="http://www.oasis-open.org/">OASIS</a> <a href="http://www.oasis-open.org/committees/dss/">Digital Signature Service Technical Committee</a> 589 is designing protocols for signing, verifying, and 590 time-stamping of XML documents and other data. The idea is to perform these 591 operations on servers, thus freeing clients from having to manage private 592 keys, calculate certificate paths, and so on. 593 <p>Also listed is a paper arguing for the server-based approach vs. client-side PKI. 594 595 <a name="cryptoURL"> 596 <H2>CryptoURLs</H2> 597 <b>Draft of potential Internet-Draft:</b> The "crypto" URL scheme (<a href="cryptoURL/draft-ietf-cryptoURL-01.txt">.txt</a>, <a href="cryptoURL/draft-ietf-cryptoURL-01.html">.html</a>)<br> 598 <p> 599 CryptoURLs add "crypto metadata" like content hashes and key fingerprints to normal URLs. 600 The resulting URLs are <a href="http://zooko.com/distnames.html">self-authenticating</a>, 601 like <a href="http://citeseer.nj.nec.com/mazieres99separating.html">SFS file names</a> or 602 <a href="http://research.microsoft.com/users/tuomaura/CGA/">Cryptographically Generated Addresses</a>. 603 These could be useful in: 604 <dir> 605 <LI>web pages: 606 <dir> 607 <LI>a page could link to software binaries and include their hash 608 <LI>a portal could provide secure introductions to a community of sites 609 </dir> 610 <LI>XML documents (e.g. extending an <a href="http://www.w3.org/TR/xmldsig-core/">XML-DSIG</a> over external references) 611 <LI>protocols (e.g. HTTP Redirects or LDAP Referrals) 612 <LI>software configuration (you could configure a client with the address and fingerprint of a server in one step) 613 </dir> 614 <a href="http://www.waterken.com/dev/YURL/">YURLs</a> are another approach to self-authenticating URLs. 615 616 <a name="cryptlibConverter"> 617 <H2><a href="cryptlibConverter/">CryptlibConverter</a></H2> 618 <b>Code:</b> Version 5 for cryptlib 3.1 (<a href="cryptlibConverter/cryptlibConverter5_cl31.zip">.zip</a>, <a href="cryptlibConverter/readme.txt">readme.txt</a>) 619 <p>This is a python script that generates java, python, and C# wrappers for 620 <a href="http://www.cs.auckland.ac.nz/~pgut001/cryptlib/">cryptlib</a>. A set of wrappers for 621 cryptlib 3.1 is included in the .zip file. The python and C# wrappers are also included in the latest cryptlib distribution. 622 <br> 623 <a name="cryptoID"> 624 <H2><a href="cryptoID/">CryptoIDs</a></H2> 625 <b>Paper 1:</b> Public Key Distribution through "cryptoIDs" (<a href="cryptoID/cryptoID.pdf">.pdf</a>, <a href="cryptoID/cryptoID.html">.html</a>) <i>(presented at <a href="http://www.nspw.org/2003/">NSPW 2003</a>)</i><br> 626 <b>Paper 2:</b> The CryptoID Key Management Protocols (<a href="cryptoID/cryptoID2.pdf">.pdf</a>) <i>(the best introduction)</i><br> 627 <b>Schema:</b> XML Schema for <certChain> (<a href="cryptoID/cryptoID.xsd">.xsd</a>)<br> 628 <b>Code:</b> CryptoIDlib Python and Java library and command-line tool v0.1.8 (<a href="cryptoID/cryptoIDlib-0.1.8.zip">.zip</a>, <a href="cryptoID/readme.txt">readme.txt</a>) 629 <p>PKI isn't working for person-to-person communications. Few people use 630 secure email, voice, instant-messaging, or anything else. 631 <p>CryptoIDs are an alternative. The idea is for people to exchange small, 632 user-friendly fingerprints (aka "cryptoIDs") like 'cyhf4.9ajd8.kbdx4.rk98c'. 633 These could be passed around and stored in address books as if they were phone 634 numbers or postal addresses. 635 <p>The cryptoID for each user would correspond to that user's <i>root key</i>. 636 The user would keep his root key in a safe place - his employer or 637 some commercial service might hold it for him. The rootholder would operate 638 an online service which would issue short-lived <i>subkey certificates</i> or <i>validation signatures</i> to the user. 639 <p>CryptoIDs, then, are about combining <i>fingerprint-based public-key distribution</i> with 640 <i>certificate-based private-key management</i>. The first paper above presents the 641 cryptoID fingerprint and certificate formats, which are designed specifically for 642 this. CryptoIDlib lets you test-drive these formats. 643 <p>The second paper presents private-key management protocols for use with online servers. 644 Support for these is being added to cryptoIDlib. 645 646 <br> 647 <br> 648 </body> 649 </html> 650