3 ms·
When we built the new set of drivers for Neo4j, we decided to allow three modes: No encryption, Trust on First Use and Trusted Signature - there's no way to est
by jakewins 10y ago
When we built the new set of drivers for Neo4j, we decided to allow three modes: No encryption, Trust on First Use and Trusted Signature - there's no way to establish an connection without trust.
This was a terrifying decision, because of ease of use concerns. Having done so and shipped it, TL;DR: It worked awesome, outside of some early kinks in TOFU that we worked out - and now everyone can sleep well knowing there's not a single install that thinks they are running an encrypted setup when they really aren't.
Anyone that came back asking for a flag to disable host key verification seemed happy with our argument for why that's not really much different from just disabling encryption.
See "Trust" here: https://neo4j.com/docs/developer-manual/current/drivers/configure-connect/ https://neo4j.com/docs/developer-manual/current/drivers/conf...
If you're interested in doing this as well, we wrote code to do it in Python, JS, Java and C#, it's all Apache licensed:
JS: https://github.com/neo4j/neo4j-javascript-driver/blob/1.2/src/v1/internal/ch-node.js#L106 https://github.com/neo4j/neo4j-javascript-driver/blob/1.2/sr...
Python: https://github.com/neo4j/neo4j-python-driver/blob/1.2/neo4j/bolt/connection.py#L463 https://github.com/neo4j/neo4j-python-driver/blob/1.2/neo4j/...
Java: https://github.com/neo4j/neo4j-java-driver/blob/1.3/driver/src/main/java/org/neo4j/driver/internal/security/TLSSocketChannel.java#L68 https://github.com/neo4j/neo4j-java-driver/blob/1.3/driver/s...
C#: https://github.com/neo4j/neo4j-dotnet-driver/blob/1.3/Neo4j.Driver/Neo4j.Driver/Internal/Connector/ITrustStrategy.cs#L28 https://github.com/neo4j/neo4j-dotnet-driver/blob/1.3/Neo4j....