3.2.1. Transform-independent parameters (Paramètres indépendants de la transformation)
3.2.1. Transform-independent parameters (Paramètres indépendants de la transformation)
Les paramètres indépendants de la transformation sont présents dans le contexte cryptographique indépendamment des transformations particulières de chiffrement ou d'authentification utilisées. Les paramètres indépendants de la transformation du contexte cryptographique pour SRTP consistent en:
-
un compteur de retournement (rollover counter, ROC) non signé de 32 bits, qui enregistre combien de fois le numéro de séquence RTP de 16 bits a été remis à zéro après avoir dépassé 65,535. Contrairement au numéro de séquence (SEQ), que SRTP extrait de l'en-tête du paquet RTP, le ROC est maintenu par SRTP comme décrit dans la Section 3.3.1.
Nous définissons l'index du paquet SRTP correspondant à un ROC et un numéro de séquence RTP donnés comme la quantité de 48 bits
i = 2^16 * ROC + SEQ. -
pour le récepteur uniquement, un numéro de séquence s_l de 16 bits, qui peut être considéré comme le numéro de séquence RTP le plus élevé reçu (voir Section 3.3.1 pour sa gestion), qui DEVRAIT (SHOULD) être authentifié puisque l'authentification des messages est RECOMMANDÉE (RECOMMENDED),
-
un identifiant pour l'algorithme de chiffrement, c'est-à-dire le chiffre et son mode d'opération,
-
un identifiant pour l'algorithme d'authentification des messages,
-
une liste de rejeu (replay list), maintenue par le récepteur uniquement (lorsque l'authentification et la protection contre le rejeu sont fournies), contenant les index des paquets SRTP récemment reçus et authentifiés,
-
un indicateur MKI (0/1) indiquant si un MKI est présent dans les paquets SRTP et SRTCP,
-
si l'indicateur MKI est défini à un, la longueur (en octets) du champ MKI, et (pour l'émetteur) la valeur réelle du MKI actuellement actif (la valeur de l'indicateur MKI et la longueur DOIVENT (MUST) rester fixes pendant toute la durée de vie du contexte),
-
la ou les clés maîtres (master keys), qui DOIVENT (MUST) être aléatoires et gardées secrètes,
-
pour chaque clé maître, il existe un compteur du nombre de paquets SRTP qui ont été traités (envoyés) avec cette clé maître (essentiel pour la sécurité, voir Sections 3.3.1 et 9),
-
des entiers non négatifs n_e et n_a, déterminant la longueur des clés de session pour le chiffrement et l'authentification des messages.
De plus, pour chaque clé maître, un flux SRTP PEUT (MAY) utiliser les valeurs associées suivantes:
-
un sel maître (master salt), à utiliser dans la dérivation de clés de session. Cette valeur, lorsqu'elle est utilisée, DOIT (MUST) être aléatoire, mais PEUT (MAY) être publique. L'utilisation du sel maître est fortement RECOMMANDÉE (RECOMMENDED), voir Section 9.2. Un sel "NULL" est traité comme 00...0.
-
un entier dans l'ensemble {1,2,4,...,2^24}, le "key_derivation_rate" (taux de dérivation de clé), où une valeur non spécifiée est traitée comme zéro. La contrainte d'être une puissance de 2 simplifie l'implémentation de la dérivation de clé de session, voir Section 4.3.
-
une valeur MKI,
-
des valeurs <From, To>, spécifiant la durée de vie d'une clé maître, exprimée en termes de deux valeurs d'index de 48 bits à l'intérieur de la plage (y compris les points d'extrémité de la plage) dans laquelle la clé maître est valide. Pour l'utilisation de <From, To>, voir Section 8.1.1. <From, To> est une alternative au MKI et suppose qu'une clé maître est en correspondance un-à-un avec la clé de session SRTP sur laquelle la plage <From, To> est définie.
SRTCP DOIT (SHALL) par défaut partager le contexte cryptographique avec SRTP, sauf:
-
aucun compteur de retournement et valeur s_l n'a besoin d'être maintenu car l'index RTCP est explicitement transporté dans chaque paquet SRTCP,
-
une liste de rejeu séparée est maintenue (lorsque la protection contre le rejeu est fournie),
-
SRTCP maintient un compteur séparé pour sa clé maître (même si la clé maître est la même que celle pour SRTP, voir ci-dessous), comme moyen de maintenir un décompte du nombre de paquets SRTCP qui ont été traités avec cette clé.
Notez en particulier que la ou les clés maîtres PEUVENT (MAY) être partagées entre SRTP et le SRTCP correspondant, si les transformations prédéfinies (y compris la dérivation de clé) sont utilisées, mais la ou les clés de session NE DOIVENT PAS (MUST NOT) être ainsi partagées.
De plus, il peut y avoir des cas (voir Sections 8 et 9.1) où plusieurs flux SRTP au sein d'une session RTP donnée, identifiés par leur source de synchronisation (SSRC, qui fait partie de l'en-tête RTP), partagent la plupart des paramètres du contexte cryptographique (y compris éventuellement les clés maître et de session). Dans de tels cas, tout comme dans le partage normal de paramètres SRTP/SRTCP ci-dessus, des listes de rejeu et des compteurs de paquets séparés pour chaque flux (SSRC) DOIVENT (MUST) néanmoins être maintenus. De plus, des index SRTP séparés DOIVENT (MUST) alors être maintenus.
Un résumé des paramètres, des transformations prédéfinies et des valeurs par défaut pour les paramètres ci-dessus (et d'autres paramètres SRTP) peut être trouvé dans les Sections 5 et 8.2.