Donc, il est donné que le protocole SSL est ce que nous devons et nous devons vivre avec les défis de débogage qui viennent avec il. communication SSL nécessite toute la charge utile de TCP à chiffrer au-delà des messages de prise de contact initiale. Une fois que la poignée de main est complète avec un message FINI, tout à l'avance va être chiffré sur cette session. Voici quelques-unes des questions communes où vous devez entrer dans les détails au niveau du fil.
SSL Handshake échoue
Vous eu de la chance si la question est aussi simple que l'échec SSL Handshake. Dans la plupart des cas, les échecs de prise de contact seront vus dans les messages initiaux SSL handshake. Cette partie de la communication ne sont pas cryptées et vous pouvez le déboguer en prenant une trace et en regardant où la défaillance est survenue. Très probablement, vous avez reçu l'un des messages d'alerte suivants:
- handshake_failure (40)
- export_restriction (60)
- protocol_version (70)
- no_renegotiation (100)
raisons simples sont autour de ne pas avoir chiffrements correspondant ou l'une des parties de ne pas envoyer un message de prise de contact attendue etc Vous pouvez vérifier les compteurs respectifs sur NetScaler ainsi.
Certificat erreurs
erreurs de certificat sont techniquement partie des messages SSL handshake mais ils ne seraient pas vus si vous ne faites pas l'authentification du client. Tout en faisant l'authentification du client, vous pouvez frapper différentes erreurs comme:
- bad_certificate (42)
- unsupported_certificate (43)
- certificate_revoked (44)
- certificate_expired (45)
- certificate_unknown (46)
- unknown_ca (48)
Comme vous pouvez le voir, il peut y avoir plusieurs questions autour de la certificats et tous ceux-ci sont une erreur fatale qui se traduit par la fin de la poignée de main. Encore une fois ceux-ci peuvent être vus en clair et pour toutes ces alertes NetScaler pose des compteurs internes qui vous indiquent également la raison pour correspondre avec ce que vous voyez dans la trace.
échec de traitement en vrac
Voici venir les choses intéressantes ... quand nous disons l'échec est dans le traitement en vrac ... vous regardez maintenant la charge utile chiffrée réelle au-delà de la poignée de main initiale. Il y a certains types d'erreur qui sont très spécifiques à enregistrement SSL traitement de couche et que vous souhaitez voir ces échecs dans le dossier traitement de couche tout crypter ou décrypter des données en vrac. Par exemple lorsque l'enregistrement SSL est déchiffré, nous trouvons le MAC de l'enregistrement est pas correctement calculé. Ou toute routine de décryptage a échoué en raison d'un certain problème au cours du processus de chiffrement de l'autre côté. Parfois, il peut y avoir des erreurs qui ne peuvent être mis sous un protocole de catégorie et couche d'enregistrement dit qu'il est une erreur interne. De telles erreurs sont encore plus difficiles à déboguer et d'analyser. Certains des messages d'alerte commun serait:
- unexpected_message (10)
- bad_record_mac (20)
- decryption_failed (21)
- record_overflow ( 22)
- illegal_parameter (47)
- access_denied (49)
- decode_error (50)
- decrypt_error (51)
- INTERNAL_ERROR ( 80)
La question devient plus difficile quand vous les avez recadrage dans le protocole de couche supérieure comme HTTP. Nous remarquerions cette question plus souvent là où l'échec est dans le traitement de HTTP ou l'un des modules de politique sur NetScaler. Dans ce cas, vous ne pouvez pas comprendre la raison sans déchiffrer la trace et obtenir les données en clair pour comprendre ce qui va mal
Conseils rapides sur déchiffrant le fichier de trace:.
- Vous devez recueillir la trace sur le client ou le côté NetScaler
- Dans la plupart des cas prenant trace sur NetScaler est mieux
- Assurez-vous que traces recueillies captures session complète
- Assurez-vous de la session ne soit pas réutilisé autrement décryptage échouerait
- vous avez besoin du serveur de fichiers clé privée pour le déchiffrement
- Une fois que vous avez le fichier de clé, voici le processus (en supposant que vous utiliser wireshark)
- Allez dans Edition -> Préférences
- Aller à Protocol-> SSL
- Ne remontez enregistrements SSL à travers TCP
- Ne remontez SSL App données dans les dossiers
- Spécifiez la clé RSA: ServerIP, Port, Protocole, Key-file-Name
- "Key-file-Name" est le fichier clé réelle qui est sur le système local
- vous devez spécifier le chemin complet du fichier sur le système local
Une simple erreur sur wireshark serait vous donner le temps réel dur déchiffrant le fichier de trace. Ainsi, chaque étape est obligatoire et doit être pris avec beaucoup d'attention. La question devient plus intéressante lorsque vous avez dit que je ne peux pas vous fournir le fichier de clé privée client. Dans de nombreux cas, vous exécutez dans ces comptes où le partage de la clé est hors de question, alors comment obtenez-vous les données plaintext ??
Ici, nous retourner à nos outils Linux favoris et le fichier de trace décryptée au client fin. Sur la couche SSL le plus utile est " ssldump ". Ceci est l'outil de ligne de commande qui prend fichier de trace et le fichier clé comme entrée et génère une sortie déchiffré. Ceci est un excellent outil qui vous fournit paquets et de niveau de protocole détails très granulaires ainsi que la charge utile déchiffré. Maintenant vous pouvez obtenir ce fichier sans obtenir le fichier clé et regarder encore à travers les données décryptées.
Joyeux Debugging
0 Komentar