Removing "security by obscurity" from port knocking Every article about port knocking, for instance  https://wiki.archlinux.org/index.php/Port_Knocking , declares this method as security by obscurity.  Is the following enough to remove that title;


a scheme where a 2048 bit shared key is generated. Every 2 bytes of the key are chunked off to make a list of 128 port numbers (2048/8/2). These port numbers in order are then configured as the port knocking sequence. 
the MAC address of the sender is also factored in (maybe as the first 6 bytes of the key)


Does this fix the "Security by obscurity" aspect of port knocking?

I understand that this is a sniffable method. Thanks for your feedback!
The essence of port knocking - namely, the concealment of a service behind a lightweight authenticator - does not categorically suffer from security through obscurity. It really depends on what the characteristics of the authenticator are. At one end of the spectrum, there is "open port 22 if a SYN packet is sent first to port 12345" (obscurity - even nmap becomes a legitimate port knocking client in this case), and at the other end of the spectrum is PK's big brother "Single Packet Authorization" (which can use 2048-bit GnuPG keys together with an HMAC for example). The fwknop SPA implementation can do the later: https://www.cipherdyne.org/fwknop/
(Disclaimer: I wrote fwknop, so I'm obviously biased, but I believe the point still stands.) You may find additional material in the fwknop tutorial useful: http://www.cipherdyne.org/fwknop/docs/fwknop-tutorial.html

Also, the best reference on Port Knocking and SPA is still Sebastien Jeanquier's thesis "An Analysis of Port Knocking and Single Packet Authorization": http://www.securitygeneration.com/wp-content/uploads/2010/05/An-Analysis-of-Port-Knocking-and-Single-Packet-Authorization-Sebastien-Jeanquier.pdf