mirror of
				https://gogs.blitter.com/RLabs/xs
				synced 2024-08-14 10:26:42 +00:00 
			
		
		
		
	Compare commits
	
		
			No commits in common. "02e379e50d0338bec5ed383f83e403d6759048f5" and "0184e342845d267fde88b3cceb41922cc975f60f" have entirely different histories.
		
	
	
		
			02e379e50d
			...
			0184e34284
		
	
		
					 5 changed files with 10 additions and 35 deletions
				
			
		
							
								
								
									
										2
									
								
								Makefile
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
										
									
									
									
								
							|  | @ -1,4 +1,4 @@ | ||||||
| VERSION := 0.9.3 | VERSION := 0.9.3-pre | ||||||
| .PHONY: lint vis clean common client server passwd subpkgs install uninstall reinstall | .PHONY: lint vis clean common client server passwd subpkgs install uninstall reinstall | ||||||
| 
 | 
 | ||||||
| ## Tag version of binaries with build info wrt.
 | ## Tag version of binaries with build info wrt.
 | ||||||
|  |  | ||||||
|  | @ -56,9 +56,7 @@ An interesting question. See [this write-up for a discussion](https://paragonie. | ||||||
| 
 | 
 | ||||||
| xs operates via the philosophy that **it is the server admin's prerogitive to configure local policy wrt. allowed cryptographic primitives**. The connection protocol makes no allowance for any sort of 'downgrades' or algo substitution during negotiation; there is no 'fallback' mode or two-way negotiation of what primitives to use, which would open the possibility of downgrade attacks. Unlike `ssh`, the server does not offer to clients a list of supported algorithms; the client can only offer a single configuration to the server, which it simply accepts or rejects without comment to the client. | xs operates via the philosophy that **it is the server admin's prerogitive to configure local policy wrt. allowed cryptographic primitives**. The connection protocol makes no allowance for any sort of 'downgrades' or algo substitution during negotiation; there is no 'fallback' mode or two-way negotiation of what primitives to use, which would open the possibility of downgrade attacks. Unlike `ssh`, the server does not offer to clients a list of supported algorithms; the client can only offer a single configuration to the server, which it simply accepts or rejects without comment to the client. | ||||||
| 
 | 
 | ||||||
| In all releases prior to v0.9.3, absent a specific whitelist of algs to allow, the server allows 'all' combinations of the above cryptographic primitives to be proposed by clients (but again, **only one** combination is proposed by the client in a single connect attempt). If the admin wishes to restrict the accepted algorithms now or at any future time, they may use the `-aK`, `-aC` and `-aH` options when launching the server to define a whitelist which excludes certain primitives. | In all releases to date, absent a specific whitelist of algs to allow, the server allows 'all' combinations of the above cryptographic primitives to be proposed by clients (but again, **only one** combination is proposed by the client in a single connect attempt). If the admin wishes to restrict the accepted algorithms now or at any future time, they may use the `-aK`, `-aC` and `-aH` options when launching the server to define a whitelist which excludes certain primitives. In future releases the default may be changed to accept *no* algs and such a whitelist shall be required. This will have no effect on the connection protocol itself. | ||||||
| 
 |  | ||||||
| As of release v0.9.3, the default when supplying no explicit KEX, cipher or HMAC algorithms to `xsd` results in *no* algs being accepted; so the admin must decide on a specific whitelist of algorithms. |  | ||||||
| *** | *** | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										27
									
								
								xs/xs.go
									
										
									
									
									
								
							
							
						
						
									
										27
									
								
								xs/xs.go
									
										
									
									
									
								
							|  | @ -710,30 +710,9 @@ func main() { | ||||||
| 
 | 
 | ||||||
| 	flag.BoolVar(&vopt, "v", false, "show version") | 	flag.BoolVar(&vopt, "v", false, "show version") | ||||||
| 	flag.BoolVar(&dbg, "d", false, "debug logging") | 	flag.BoolVar(&dbg, "d", false, "debug logging") | ||||||
| 	flag.StringVar(&cipherAlg, "c", "C_AES_256", "session `cipher`"+` | 	flag.StringVar(&cipherAlg, "c", "C_AES_256", "session `cipher` [C_AES_256 | C_TWOFISH_128 | C_BLOWFISH_64 | C_CRYPTMT1 | C_CHACHA20_12 | C_HOPSCOTCH]") | ||||||
|       C_AES_256 | 	flag.StringVar(&hmacAlg, "m", "H_SHA256", "session `HMAC` [H_SHA256 | H_SHA512]") | ||||||
|       C_TWOFISH_128 | 	flag.StringVar(&kexAlg, "k", "KEX_HERRADURA512", "KEx `alg` [KEX_HERRADURA{256/512/1024/2048} | KEX_KYBER{512/768/1024} | KEX_NEWHOPE | KEX_NEWHOPE_SIMPLE | KEX_FRODOKEM_{1344|976}{AES|SHAKE}]") | ||||||
|       C_BLOWFISH_64 |  | ||||||
|       C_CRYPTMT1 |  | ||||||
|       C_HOPSCOTCH |  | ||||||
|       C_CHACHA20_12`) |  | ||||||
| 	flag.StringVar(&hmacAlg, "m", "H_SHA256", "session `HMAC`"+` |  | ||||||
|       H_SHA256 |  | ||||||
|       H_SHA512`) |  | ||||||
| 	flag.StringVar(&kexAlg, "k", "KEX_HERRADURA512", "KEx `alg`"+` |  | ||||||
|       KEX_HERRADURA256 |  | ||||||
|       KEX_HERRADURA512 |  | ||||||
|       KEX_HERRADURA1024 |  | ||||||
|       KEX_HERRADURA2048 |  | ||||||
|       KEX_KYBER512 |  | ||||||
|       KEX_KYBER768 |  | ||||||
|       KEX_KYBER1024 |  | ||||||
|       KEX_NEWHOPE |  | ||||||
|       KEX_NEWHOPE_SIMPLE |  | ||||||
|       KEX_FRODOKEM_1344AES |  | ||||||
|       KEX_FRODOKEM_1344SHAKE |  | ||||||
|       KEX_FRODOKEM_976AES |  | ||||||
|       KEX_FRODOKEM_976SHAKE`) |  | ||||||
| 	flag.StringVar(&kcpMode, "K", "unused", "KCP `alg`, one of [KCP_NONE | KCP_AES | KCP_BLOWFISH | KCP_CAST5 | KCP_SM4 | KCP_SALSA20 | KCP_SIMPLEXOR | KCP_TEA | KCP_3DES | KCP_TWOFISH | KCP_XTEA] to use KCP (github.com/xtaci/kcp-go) reliable UDP instead of TCP") | 	flag.StringVar(&kcpMode, "K", "unused", "KCP `alg`, one of [KCP_NONE | KCP_AES | KCP_BLOWFISH | KCP_CAST5 | KCP_SM4 | KCP_SALSA20 | KCP_SIMPLEXOR | KCP_TEA | KCP_3DES | KCP_TWOFISH | KCP_XTEA] to use KCP (github.com/xtaci/kcp-go) reliable UDP instead of TCP") | ||||||
| 	flag.UintVar(&port, "p", 2000, "``port") | 	flag.UintVar(&port, "p", 2000, "``port") | ||||||
| 	//flag.StringVar(&authCookie, "a", "", "auth cookie") | 	//flag.StringVar(&authCookie, "a", "", "auth cookie") | ||||||
|  |  | ||||||
|  | @ -6,9 +6,7 @@ XSD_USER=root | ||||||
| XSD_HOME=/var/run | XSD_HOME=/var/run | ||||||
| INST_PREFIX=/usr/local | INST_PREFIX=/usr/local | ||||||
| COMMAND=$INST_PREFIX/sbin/xsd | COMMAND=$INST_PREFIX/sbin/xsd | ||||||
| #ARGS="-L -aK KEX_all -aC C_all -aH H_all" | ARGS="-L" | ||||||
| echo "SET ARGS in this script to define allow KEX, cipher and hmac algs" |  | ||||||
| exit 1 |  | ||||||
| 
 | 
 | ||||||
| depend() { | depend() { | ||||||
|     need net |     need net | ||||||
|  | @ -30,7 +28,7 @@ start() { | ||||||
|         -d ${XSD_HOME} \ |         -d ${XSD_HOME} \ | ||||||
|         --make-pidfile --pidfile ${XSD_PIDFILE} \ |         --make-pidfile --pidfile ${XSD_PIDFILE} \ | ||||||
|         --start --quiet --background \ |         --start --quiet --background \ | ||||||
|         --exec "${COMMAND}" -- ${ARGS} |         --exec "${COMMAND}" -- "${ARGS}" | ||||||
|     eend $? |     eend $? | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -527,7 +527,7 @@ func main() { | ||||||
| 	flag.BoolVar(&useSystemPasswd, "s", true, "use system shadow passwds") | 	flag.BoolVar(&useSystemPasswd, "s", true, "use system shadow passwds") | ||||||
| 	flag.BoolVar(&dbg, "d", false, "debug logging") | 	flag.BoolVar(&dbg, "d", false, "debug logging") | ||||||
| 
 | 
 | ||||||
| 	flag.Var(&aKEXAlgs, "aK", "Allowed KEX `alg`s (eg. '-aK KEXAlgA -aK KEXAlgB ...')" + ` | 	flag.Var(&aKEXAlgs, "aK", `Allowed KEX algs (eg. '-aK KEXAlgA -aK KEXAlgB ...') (default: none) | ||||||
|       KEX_all |       KEX_all | ||||||
|       KEX_HERRADURA256 |       KEX_HERRADURA256 | ||||||
|       KEX_HERRADURA512 |       KEX_HERRADURA512 | ||||||
|  | @ -542,7 +542,7 @@ func main() { | ||||||
|       KEX_FRODOKEM_1344SHAKE |       KEX_FRODOKEM_1344SHAKE | ||||||
|       KEX_FRODOKEM_976AES |       KEX_FRODOKEM_976AES | ||||||
|       KEX_FRODOKEM_976SHAKE`) |       KEX_FRODOKEM_976SHAKE`) | ||||||
| 	flag.Var(&aCipherAlgs, "aC", "Allowed `cipher`s (eg. '-aC CAlgA -aC CAlgB ...')" + ` | 	flag.Var(&aCipherAlgs, "aC", `Allowed ciphers (eg. '-aC CAlgA -aC CAlgB ...') (default: none) | ||||||
|       C_all |       C_all | ||||||
|       C_AES_256 |       C_AES_256 | ||||||
|       C_TWOFISH_128 |       C_TWOFISH_128 | ||||||
|  | @ -550,7 +550,7 @@ func main() { | ||||||
|       C_CRYPTMT1 |       C_CRYPTMT1 | ||||||
|       C_HOPSCOTCH |       C_HOPSCOTCH | ||||||
|       C_CHACHA20_12`) |       C_CHACHA20_12`) | ||||||
| 	flag.Var(&aHMACAlgs, "aH", "Allowed `HMAC`s (eg. '-aH HMACAlgA -aH HMACAlgB ...')" + ` | 	flag.Var(&aHMACAlgs, "aH", `Allowed HMACs (eg. '-aH HMACAlgA -aH HMACAlgB ...') (default: none) | ||||||
|       H_all |       H_all | ||||||
|       H_SHA256 |       H_SHA256 | ||||||
|       H_SHA512`) |       H_SHA512`) | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue