HKExSh TODO Ideas -- Chaff Improvements - Zipf or other distributions for chaff freq, packetsz - Mimicry of hand-typed traffic for chaff on interactive sessions - Client-input chaff file data (ie., Moby Dick) KEx: Look at ECIES: https://godoc.org/github.com/bitherhq/go-bither/crypto/ecies ThreeBears? BIKE?, NTRU?: https://www.safecrypto.eu/pqclounge/ NIST Round 1 submissions: https://csrc.nist.gov/projects/post-quantum-cryptography/round-1-submissions Architecture (DONE) - Move hkexnet components other than key exchange into a proper hkex package (ie., hkexsh imports hkex) - hkex should be usable for other client/svr utils, ala 'hkex-netcat') (parts split out into hkexnet/*, hkexsession.go) (DONE) - Make KEx fully-pluggable: isolate all code to do with Herradura into a KEx-neutral pkg so it can be swapped out for other methods (eg., DH etc.) (DONE - test branch) - Use system password db (/etc/{passwd,shadow}) Features (DONE) - Support for hkcp (hkex-cp) - secure file copy protocol (DONE) - auth tokens to allow scripted hkexsh/hkexcp use (DONE) - tunnelling - multiple tunnel sessions co-existing w/shell sessions - non-interactive tunnel-only mode - reverse tunnels Alternate transports for hkexsh.Conn - HTTP-mimicking traffic, ICMP, ... ? (Whatever golang can support for net.Dial(), net.Accept(), io.Reader/Writer should in principle be usable as substrate for hkex.Conn) Install (DONE - openrc) - init scripts for open-rc/init (and systemd, sigh) (DONE) - make install - common packages (yum/deb/portage)