[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openbsd-tech
Subject:    Re: iked(8): update RFC references
From:       Claudio Jeker <cjeker () diehard ! n-r-g ! com>
Date:       2019-02-27 12:22:18
Message-ID: 20190227122218.GB13607 () diehard ! n-r-g ! com
[Download RAW message or body]

On Wed, Feb 27, 2019 at 01:08:44PM +0100, Tobias Heider wrote:
> Hi,
> 
> i went through the code and man pages and updated obsolete RFC
> references according to [iana].
> 
> The remaining mentions of RFC4306 are deprecated and listed as RESERVED
> in the current registry, should they be removed from ikev2.h?
> 
> Tobias
> 
> [iana] https://www.iana.org/assignments/ikev2-parameters/ikev2-parameters.xhtml#ikev2-parameters-10

The only issue I see with this if RFC7296 includes requirements that 
RFC 5996 doesn't have and iked has not implemented them.
Looking at RFC7296 section 1.8 this is not the case so OK claudio@
 
> Index: ca.c
> ===================================================================
> RCS file: /mount/openbsd/cvs/src/sbin/iked/ca.c,v
> retrieving revision 1.46
> diff -u -p -u -r1.46 ca.c
> --- ca.c	30 Oct 2017 09:53:27 -0000	1.46
> +++ ca.c	27 Feb 2019 10:58:22 -0000
> @@ -808,7 +808,7 @@ ca_subjectpubkey_digest(X509 *x509, uint
>  	 * Generate a SHA-1 digest of the Subject Public Key Info
>  	 * element in the X.509 certificate, an ASN.1 sequence
>  	 * that includes the public key type (eg. RSA) and the
> -	 * public key value (see 3.7 of RFC4306).
> +	 * public key value (see 3.7 of RFC7296).
>  	 */
>  	if ((pkey = X509_get_pubkey(x509)) == NULL)
>  		return (-1);
> Index: iked.8
> ===================================================================
> RCS file: /mount/openbsd/cvs/src/sbin/iked/iked.8,v
> retrieving revision 1.21
> diff -u -p -u -r1.21 iked.8
> --- iked.8	3 Jul 2018 13:37:11 -0000	1.21
> +++ iked.8	27 Feb 2019 10:27:19 -0000
> @@ -31,7 +31,7 @@ is an Internet Key Exchange (IKEv2) daem
>  authentication and which establishes and maintains IPsec flows and
>  security associations (SAs) between the two peers.
>  .Pp
> -The IKEv2 protocol is defined in RFC 5996,
> +The IKEv2 protocol is defined in RFC 7296,
>  which combines and updates the previous standards:
>  ISAKMP/Oakley (RFC 2408),
>  IKE (RFC 2409),
> @@ -187,8 +187,9 @@ control socket.
>  .%A P. Hoffman
>  .%A Y. Nir
>  .%A P. Eronen
> -.%D September 2010
> -.%R RFC 5996
> +.%A T. Kivinen
> +.%D October 2014
> +.%R RFC 7296
>  .%T Internet Key Exchange Protocol Version 2 (IKEv2)
>  .Re
>  .Sh HISTORY
> Index: ikev2.c
> ===================================================================
> RCS file: /mount/openbsd/cvs/src/sbin/iked/ikev2.c,v
> retrieving revision 1.167
> diff -u -p -u -r1.167 ikev2.c
> --- ikev2.c	26 Feb 2019 18:05:22 -0000	1.167
> +++ ikev2.c	27 Feb 2019 10:32:36 -0000
> @@ -4585,7 +4585,7 @@ ikev2_sa_keys(struct iked *env, struct i
>  	 *  (Ni | Nr) is used as a PRF key, otherwise a "key" buffer
>  	 *  is used and PRF is performed on the concatenation of DH
>  	 *  exchange result and nonces (g^ir | Ni | Nr).  See sections
> -	 *  2.14 and 2.18 of RFC5996 for more information.
> +	 *  2.14 and 2.18 of RFC7296 for more information.
>  	 */
>  
>  	/*
> Index: ikev2.h
> ===================================================================
> RCS file: /mount/openbsd/cvs/src/sbin/iked/ikev2.h,v
> retrieving revision 1.27
> diff -u -p -u -r1.27 ikev2.h
> --- ikev2.h	3 Dec 2017 21:02:44 -0000	1.27
> +++ ikev2.h	27 Feb 2019 11:56:13 -0000
> @@ -184,7 +184,7 @@ extern struct iked_constmap ikev2_xformt
>  
>  extern struct iked_constmap ikev2_xformencr_map[];
>  
> -#define IKEV2_IPCOMP_OUI		1	/* RFC5996 */
> +#define IKEV2_IPCOMP_OUI		1	/* UNSPECIFIED */
>  #define IKEV2_IPCOMP_DEFLATE		2	/* RFC2394 */
>  #define IKEV2_IPCOMP_LZS		3	/* RFC2395 */
>  #define IKEV2_IPCOMP_LZJH		4	/* RFC3051 */
> @@ -283,38 +283,38 @@ struct ikev2_notify {
>  	/* Followed by variable length notification data */
>  } __packed;
>  
> -#define IKEV2_N_UNSUPPORTED_CRITICAL_PAYLOAD	1	/* RFC4306 */
> -#define IKEV2_N_INVALID_IKE_SPI			4	/* RFC4306 */
> -#define IKEV2_N_INVALID_MAJOR_VERSION		5	/* RFC4306 */
> -#define IKEV2_N_INVALID_SYNTAX			7	/* RFC4306 */
> -#define IKEV2_N_INVALID_MESSAGE_ID		9	/* RFC4306 */
> -#define IKEV2_N_INVALID_SPI			11	/* RFC4306 */
> -#define IKEV2_N_NO_PROPOSAL_CHOSEN		14	/* RFC4306 */
> -#define IKEV2_N_INVALID_KE_PAYLOAD		17	/* RFC4306 */
> -#define IKEV2_N_AUTHENTICATION_FAILED		24	/* RFC4306 */
> -#define IKEV2_N_SINGLE_PAIR_REQUIRED		34	/* RFC4306 */
> -#define IKEV2_N_NO_ADDITIONAL_SAS		35	/* RFC4306 */
> -#define IKEV2_N_INTERNAL_ADDRESS_FAILURE	36	/* RFC4306 */
> -#define IKEV2_N_FAILED_CP_REQUIRED		37	/* RFC4306 */
> -#define IKEV2_N_TS_UNACCEPTABLE			38	/* RFC4306 */
> -#define IKEV2_N_INVALID_SELECTORS		39	/* RFC4306 */
> +#define IKEV2_N_UNSUPPORTED_CRITICAL_PAYLOAD	1	/* RFC7296 */
> +#define IKEV2_N_INVALID_IKE_SPI			4	/* RFC7296 */
> +#define IKEV2_N_INVALID_MAJOR_VERSION		5	/* RFC7296 */
> +#define IKEV2_N_INVALID_SYNTAX			7	/* RFC7296 */
> +#define IKEV2_N_INVALID_MESSAGE_ID		9	/* RFC7296 */
> +#define IKEV2_N_INVALID_SPI			11	/* RFC7296 */
> +#define IKEV2_N_NO_PROPOSAL_CHOSEN		14	/* RFC7296 */
> +#define IKEV2_N_INVALID_KE_PAYLOAD		17	/* RFC7296 */
> +#define IKEV2_N_AUTHENTICATION_FAILED		24	/* RFC7296 */
> +#define IKEV2_N_SINGLE_PAIR_REQUIRED		34	/* RFC7296 */
> +#define IKEV2_N_NO_ADDITIONAL_SAS		35	/* RFC7296 */
> +#define IKEV2_N_INTERNAL_ADDRESS_FAILURE	36	/* RFC7296 */
> +#define IKEV2_N_FAILED_CP_REQUIRED		37	/* RFC7296 */
> +#define IKEV2_N_TS_UNACCEPTABLE			38	/* RFC7296 */
> +#define IKEV2_N_INVALID_SELECTORS		39	/* RFC7296 */
>  #define IKEV2_N_UNACCEPTABLE_ADDRESSES		40	/* RFC4555 */
>  #define IKEV2_N_UNEXPECTED_NAT_DETECTED		41	/* RFC4555 */
>  #define IKEV2_N_USE_ASSIGNED_HoA		42	/* RFC5026 */
> -#define IKEV2_N_TEMPORARY_FAILURE		43	/* RFC5996 */
> -#define IKEV2_N_CHILD_SA_NOT_FOUND		44	/* RFC5996 */
> -#define IKEV2_N_INITIAL_CONTACT			16384	/* RFC4306 */
> -#define IKEV2_N_SET_WINDOW_SIZE			16385	/* RFC4306 */
> -#define IKEV2_N_ADDITIONAL_TS_POSSIBLE		16386	/* RFC4306 */
> -#define IKEV2_N_IPCOMP_SUPPORTED		16387	/* RFC4306 */
> -#define IKEV2_N_NAT_DETECTION_SOURCE_IP		16388	/* RFC4306 */
> -#define IKEV2_N_NAT_DETECTION_DESTINATION_IP	16389	/* RFC4306 */
> -#define IKEV2_N_COOKIE				16390	/* RFC4306 */
> -#define IKEV2_N_USE_TRANSPORT_MODE		16391	/* RFC4306 */
> -#define IKEV2_N_HTTP_CERT_LOOKUP_SUPPORTED	16392	/* RFC4306 */
> -#define IKEV2_N_REKEY_SA			16393	/* RFC4306 */
> -#define IKEV2_N_ESP_TFC_PADDING_NOT_SUPPORTED	16394	/* RFC4306 */
> -#define IKEV2_N_NON_FIRST_FRAGMENTS_ALSO	16395	/* RFC4306 */
> +#define IKEV2_N_TEMPORARY_FAILURE		43	/* RFC7296 */
> +#define IKEV2_N_CHILD_SA_NOT_FOUND		44	/* RFC7296 */
> +#define IKEV2_N_INITIAL_CONTACT			16384	/* RFC7296 */
> +#define IKEV2_N_SET_WINDOW_SIZE			16385	/* RFC7296 */
> +#define IKEV2_N_ADDITIONAL_TS_POSSIBLE		16386	/* RFC7296 */
> +#define IKEV2_N_IPCOMP_SUPPORTED		16387	/* RFC7296 */
> +#define IKEV2_N_NAT_DETECTION_SOURCE_IP		16388	/* RFC7296 */
> +#define IKEV2_N_NAT_DETECTION_DESTINATION_IP	16389	/* RFC7296 */
> +#define IKEV2_N_COOKIE				16390	/* RFC7296 */
> +#define IKEV2_N_USE_TRANSPORT_MODE		16391	/* RFC7296 */
> +#define IKEV2_N_HTTP_CERT_LOOKUP_SUPPORTED	16392	/* RFC7296 */
> +#define IKEV2_N_REKEY_SA			16393	/* RFC7296 */
> +#define IKEV2_N_ESP_TFC_PADDING_NOT_SUPPORTED	16394	/* RFC7296 */
> +#define IKEV2_N_NON_FIRST_FRAGMENTS_ALSO	16395	/* RFC7296 */
>  #define IKEV2_N_MOBIKE_SUPPORTED		16396	/* RFC4555 */
>  #define IKEV2_N_ADDITIONAL_IP4_ADDRESS		16397	/* RFC4555 */
>  #define IKEV2_N_ADDITIONAL_IP6_ADDRESS		16398	/* RFC4555 */
> @@ -334,8 +334,8 @@ struct ikev2_notify {
>  #define IKEV2_N_TICKET_NACK			16412	/* RFC5723 */
>  #define IKEV2_N_TICKET_OPAQUE			16413	/* RFC5723 */
>  #define IKEV2_N_LINK_ID				16414	/* RFC5739 */
> -#define IKEV2_N_USE_WESP_MODE			16415	/* RFC-ietf-ipsecme-traffic-visibility-12.txt */
> -#define IKEV2_N_ROHC_SUPPORTED			16416	/* RFC-ietf-rohc-ikev2-extensions-hcoipsec-12.txt */
> +#define IKEV2_N_USE_WESP_MODE			16415	/* RFC5415 */
> +#define IKEV2_N_ROHC_SUPPORTED			16416	/* RFC5857 */
>  #define IKEV2_N_EAP_ONLY_AUTHENTICATION		16417	/* RFC5998 */
>  #define IKEV2_N_CHILDLESS_IKEV2_SUPPORTED	16418	/* RFC6023 */
>  #define IKEV2_N_QUICK_CRASH_DETECTION		16419	/* RFC6290 */
> @@ -375,13 +375,13 @@ struct ikev2_id {
>  } __packed;
>  
>  #define IKEV2_ID_NONE		0	/* No ID */
> -#define IKEV2_ID_IPV4		1	/* RFC4306 (ID_IPV4_ADDR) */
> -#define IKEV2_ID_FQDN		2	/* RFC4306 */
> -#define IKEV2_ID_UFQDN		3	/* RFC4306 (ID_RFC822_ADDR) */
> -#define IKEV2_ID_IPV6		5	/* RFC4306 (ID_IPV6_ADDR) */
> -#define IKEV2_ID_ASN1_DN	9	/* RFC4306 */
> -#define IKEV2_ID_ASN1_GN	10	/* RFC4306 */
> -#define IKEV2_ID_KEY_ID		11	/* RFC4306 */
> +#define IKEV2_ID_IPV4		1	/* RFC7296 (ID_IPV4_ADDR) */
> +#define IKEV2_ID_FQDN		2	/* RFC7296 */
> +#define IKEV2_ID_UFQDN		3	/* RFC7296 (ID_RFC822_ADDR) */
> +#define IKEV2_ID_IPV6		5	/* RFC7296 (ID_IPV6_ADDR) */
> +#define IKEV2_ID_ASN1_DN	9	/* RFC7296 */
> +#define IKEV2_ID_ASN1_GN	10	/* RFC7296 */
> +#define IKEV2_ID_KEY_ID		11	/* RFC7296 */
>  #define IKEV2_ID_FC_NAME	12	/* RFC4595 */
>  
>  extern struct iked_constmap ikev2_id_map[];
> @@ -396,18 +396,18 @@ struct ikev2_cert {
>  } __packed;
>  
>  #define IKEV2_CERT_NONE			0	/* None */
> -#define IKEV2_CERT_X509_PKCS7		1	/* RFC4306 */
> -#define IKEV2_CERT_PGP			2	/* RFC4306 */
> -#define IKEV2_CERT_DNS_SIGNED_KEY	3	/* RFC4306 */
> -#define IKEV2_CERT_X509_CERT		4	/* RFC4306 */
> -#define IKEV2_CERT_KERBEROS_TOKEN	6	/* RFC4306 */
> -#define IKEV2_CERT_CRL			7	/* RFC4306 */
> -#define IKEV2_CERT_ARL			8	/* RFC4306 */
> -#define IKEV2_CERT_SPKI			9	/* RFC4306 */
> -#define IKEV2_CERT_X509_ATTR		10	/* RFC4306 */
> -#define IKEV2_CERT_RSA_KEY		11	/* RFC4306 */
> -#define IKEV2_CERT_HASHURL_X509		12	/* RFC4306 */
> -#define IKEV2_CERT_HASHURL_X509_BUNDLE	13	/* RFC4306 */
> +#define IKEV2_CERT_X509_PKCS7		1	/* UNSPECIFIED */
> +#define IKEV2_CERT_PGP			2	/* UNSPECIFIED */
> +#define IKEV2_CERT_DNS_SIGNED_KEY	3	/* UNSPECIFIED */
> +#define IKEV2_CERT_X509_CERT		4	/* RFC7296 */
> +#define IKEV2_CERT_KERBEROS_TOKEN	6	/* UNSPECIFIED */
> +#define IKEV2_CERT_CRL			7	/* RFC7296 */
> +#define IKEV2_CERT_ARL			8	/* UNSPECIFIED */
> +#define IKEV2_CERT_SPKI			9	/* UNSPECIFIED */
> +#define IKEV2_CERT_X509_ATTR		10	/* UNSPECIFIED */
> +#define IKEV2_CERT_RSA_KEY		11	/* RFC7296 */
> +#define IKEV2_CERT_HASHURL_X509		12	/* RFC7296 */
> +#define IKEV2_CERT_HASHURL_X509_BUNDLE	13	/* RFC7296 */
>  #define IKEV2_CERT_OCSP			14	/* RFC4806 */
>  /*
>   * As of November 2014, work was still in progress to add a more generic
> @@ -436,8 +436,8 @@ struct ikev2_ts {
>  	uint16_t	ts_endport;		/* End port */
>  } __packed;
>  
> -#define IKEV2_TS_IPV4_ADDR_RANGE	7	/* RFC4306 */
> -#define IKEV2_TS_IPV6_ADDR_RANGE	8	/* RFC4306 */
> +#define IKEV2_TS_IPV4_ADDR_RANGE	7	/* RFC7296 */
> +#define IKEV2_TS_IPV6_ADDR_RANGE	8	/* RFC7296 */
>  #define IKEV2_TS_FC_ADDR_RANGE		9	/* RFC4595 */
>  
>  extern struct iked_constmap ikev2_ts_map[];
> @@ -453,9 +453,9 @@ struct ikev2_auth {
>  } __packed;
>  
>  #define IKEV2_AUTH_NONE			0	/* None */
> -#define IKEV2_AUTH_RSA_SIG		1	/* RFC4306 */
> -#define IKEV2_AUTH_SHARED_KEY_MIC	2	/* RFC4306 */
> -#define IKEV2_AUTH_DSS_SIG		3	/* RFC4306 */
> +#define IKEV2_AUTH_RSA_SIG		1	/* RFC7296 */
> +#define IKEV2_AUTH_SHARED_KEY_MIC	2	/* RFC7296 */
> +#define IKEV2_AUTH_DSS_SIG		3	/* RFC7296 */
>  #define IKEV2_AUTH_ECDSA_256		9	/* RFC4754 */
>  #define IKEV2_AUTH_ECDSA_384		10	/* RFC4754 */
>  #define IKEV2_AUTH_ECDSA_521		11	/* RFC4754 */
> @@ -504,20 +504,20 @@ struct ikev2_cfg {
>  	/* Followed by variable-length data */
>  } __packed;
>  
> -#define IKEV2_CFG_INTERNAL_IP4_ADDRESS		1	/* RFC5996 */
> -#define IKEV2_CFG_INTERNAL_IP4_NETMASK		2	/* RFC5996 */
> -#define IKEV2_CFG_INTERNAL_IP4_DNS		3	/* RFC5996 */
> -#define IKEV2_CFG_INTERNAL_IP4_NBNS		4	/* RFC5996 */
> +#define IKEV2_CFG_INTERNAL_IP4_ADDRESS		1	/* RFC7296 */
> +#define IKEV2_CFG_INTERNAL_IP4_NETMASK		2	/* RFC7296 */
> +#define IKEV2_CFG_INTERNAL_IP4_DNS		3	/* RFC7296 */
> +#define IKEV2_CFG_INTERNAL_IP4_NBNS		4	/* RFC7296 */
>  #define IKEV2_CFG_INTERNAL_ADDRESS_EXPIRY	5	/* RFC4306 */
> -#define IKEV2_CFG_INTERNAL_IP4_DHCP		6	/* RFC5996 */
> -#define IKEV2_CFG_APPLICATION_VERSION		7	/* RFC5996 */
> -#define IKEV2_CFG_INTERNAL_IP6_ADDRESS		8	/* RFC5996 */
> -#define IKEV2_CFG_INTERNAL_IP6_DNS		10	/* RFC5996 */
> +#define IKEV2_CFG_INTERNAL_IP4_DHCP		6	/* RFC7296 */
> +#define IKEV2_CFG_APPLICATION_VERSION		7	/* RFC7296 */
> +#define IKEV2_CFG_INTERNAL_IP6_ADDRESS		8	/* RFC7296 */
> +#define IKEV2_CFG_INTERNAL_IP6_DNS		10	/* RFC7296 */
>  #define IKEV2_CFG_INTERNAL_IP6_NBNS		11	/* RFC4306 */
> -#define IKEV2_CFG_INTERNAL_IP6_DHCP		12	/* RFC5996 */
> -#define IKEV2_CFG_INTERNAL_IP4_SUBNET		13	/* RFC5996 */
> -#define IKEV2_CFG_SUPPORTED_ATTRIBUTES		14	/* RFC5996 */
> -#define IKEV2_CFG_INTERNAL_IP6_SUBNET		15	/* RFC5996 */
> +#define IKEV2_CFG_INTERNAL_IP6_DHCP		12	/* RFC7296 */
> +#define IKEV2_CFG_INTERNAL_IP4_SUBNET		13	/* RFC7296 */
> +#define IKEV2_CFG_SUPPORTED_ATTRIBUTES		14	/* RFC7296 */
> +#define IKEV2_CFG_INTERNAL_IP6_SUBNET		15	/* RFC7296 */
>  #define IKEV2_CFG_MIP6_HOME_PREFIX		16	/* RFC5026 */
>  #define IKEV2_CFG_INTERNAL_IP6_LINK		17	/* RFC5739 */
>  #define IKEV2_CFG_INTERNAL_IP6_PREFIX		18	/* RFC5739 */
> 

-- 
:wq Claudio

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic