Coder Social home page Coder Social logo

tls-n / nss-tlsn Goto Github PK

View Code? Open in Web Editor NEW
9.0 3.0 4.0 9.97 MB

Mozilla's NSS library with TLS-N implementation.

License: Mozilla Public License 2.0

Shell 2.43% Makefile 1.62% Batchfile 0.01% Python 1.95% JavaScript 0.08% C 70.74% HTML 0.90% Java 0.07% Lex 0.02% C++ 15.91% Yacc 0.01% Perl 0.22% Roff 0.61% CMake 0.11% M4 0.11% Assembly 4.04% Ada 0.01% Perl 6 0.01% Objective-C 1.17%
tls-n nss

nss-tlsn's People

Contributors

tls-n avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

nss-tlsn's Issues

Clarification requested: must server-side of an HTTPS session use specific TLS-N code?

It's not clear to me from your website and demo whether a server's TLS code must be modified, in order for a client to generate a non-repudiable proof of what the server said.

In particular, I used your "try it out" form to generate a proof of a HTTPS URL on twitter.com. (I don't expect Twitter's servers have been updated with your server-side code.) I then used your 'verify a proof' form to check the .PROOF file, and it showed the full conversation, client and server, as a 'valid proof'.

However, other credible sources (such as this Cryptography Stack Overflow answer) suggest there's not enough in a normal session to provide assurance a session transcript is authentic. (In particular, it says either party to the initial handshake could forge a transcript of both sides of the session.)

Can you clarify if your technique overcomes the TLS limitation even with only one side, such as the client with a non-upgraded server, generating the proof?

Resizing allocation

ss->tlsproofOrderingVector = PORT_Realloc(ss->tlsproofOrderingVector, ss->tlsproofOrderingVectorLen + 1);

It seems to me that the right allocation size should be ss->tlsproofOrderingVectorLen/8 +1 because ss->tlsproofOrderingVectorLen is the size in BIT of the ordering vector.

As far as I can understand, this structure qill be sent to the peer, but it uses a variable type which is typical of NSS. This might make it not compatible with other applications.

#define PROOF_PAR_SIZE (sizeof(PRUint16) + sizeof(PRUint16) + sizeof(PRUint16) + sizeof(PRUint16) + sizeof(PRUint64) + sizeof(PRUint64) + sizeof(PRUint16) + sizeof(PRUint16) + sizeof(SSLHashType))
typedef struct ProofParStr{
PRUint16 hash_size;
PRUint16 salt_size;
PRUint16 chunk_size;
PRUint16 num_proof_nodes;
PRUint64 startTime;
PRUint64 stopTime;
PRUint16 sig_len; // Signature is directly after this struct
PRUint16 cert_chain_len; // Certificate Chain is after the signature
SSLHashType hash_type;
} ProofPar;

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.