[[!template id=project title="Implement RFC 6056: 'Recommendations for Transport-Protocol Port Randomization'" contact=""" [tech-net](mailto:tech-net@NetBSD.org) """ mentors=""" [Alistair G. Crooks](mailto:agc@NetBSD.org) """ category="kernel" difficulty="easy" duration="3 months" done_by="Vlad Balan" description=""" When using connect(2) to connect the client end of a socket, the system will choose the next number of the socket for you. Having an easily guessed port number can allow various attacks to take place. Choosing the next port number at random, whilst not perfect, gives more protection against these attacks. [RFC 6056](http://www.rfc-editor.org/rfc/rfc6056.txt) gives an excellent overview of the algorithms in use when "randomising source ports", giving examples from FreeBSD, OpenBSD and Linux. This project has a number of goals: * Evaluate and prioritise the algorithms in RFC 6056. * Implement the algorithms in RFC 6056, and make it possible to choose between them with sysctl. """ ]] [[!tag gsoc]]