Erlang library providing SSL certificate fingerprint, public key, and hostname verification functions for enhanced security.
ssl_verify_fun is an Erlang library that provides enhanced SSL/TLS verification functions for implementing certificate fingerprint pinning, public key pinning, and RFC 6125-compliant hostname validation. It solves the problem of needing stricter control over TLS connections than what standard Erlang/OTP SSL offers, helping prevent man-in-the-middle attacks by ensuring connections only to explicitly trusted certificates or public keys.
Erlang developers building secure networked applications, especially those needing certificate pinning for APIs, microservices, or client-server communication where standard CA validation is insufficient.
Developers choose ssl_verify_fun because it provides ready-to-use, OWASP-compliant verification functions that integrate seamlessly with Erlang's SSL module, offering stronger security guarantees than default settings without requiring low-level cryptographic implementations.
Collection of ssl verification functions for Erlang
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements certificate and public key pinning following OWASP best practices, ensuring connections only to servers with verified fingerprints or keys, as referenced in the README resources.
Supports multiple formats for public key pinning (base64, hex, SHA) and RFC 6125 hostname validation, offering versatility in security setups, demonstrated with github.com examples.
Provides drop-in verify_fun implementations that easily work with Erlang's ssl:connect and other TLS clients, as shown in the straightforward code snippets.
Enables precise control over trusted certificates and public keys, helping prevent man-in-the-middle attacks beyond standard OTP SSL capabilities, addressing specific security concerns.
Inherits OTP SSL's uninformative error reporting, where user-provided failure reasons are ignored, making debugging handshake failures difficult, as admitted in the README.
Requires manual extraction and updating of fingerprints or public keys using tools like OpenSSL, which is tedious and error-prone in environments with certificate rotations.
Exclusively designed for Erlang/OTP, so it cannot be used in projects involving other programming languages, limiting its applicability in mixed-tech stacks.