Key Exchange Protocol attack












1












$begingroup$


I am working on the exercise below which ask about whether it is possible to attack the following key exchange protocol on sharing session key $K_s$ between user $X$ and $Y$:




  1. $X rightarrow Y : X | r$


  2. $Y rightarrow X : E (r | K_s, K_{xy})$


  3. $X rightarrow Y : E (r, K_s)$



where $K_{xy}$ is a pre-shared secret key between user $X$ and $Y$, $K_s$ is a session key, $E(m, k)$ is symmetric key encryption on message $m$, with key $k$



It appears to me that it is secure. Could any one can give me a hand or some hints on possible attack ?










share|cite|improve this question











$endgroup$












  • $begingroup$
    How does $Y$ know the $r$ in order to carry out step 2?
    $endgroup$
    – user10354138
    Dec 7 '18 at 17:19










  • $begingroup$
    @user10354138 It's sent in step 1.
    $endgroup$
    – Henno Brandsma
    Dec 8 '18 at 6:42
















1












$begingroup$


I am working on the exercise below which ask about whether it is possible to attack the following key exchange protocol on sharing session key $K_s$ between user $X$ and $Y$:




  1. $X rightarrow Y : X | r$


  2. $Y rightarrow X : E (r | K_s, K_{xy})$


  3. $X rightarrow Y : E (r, K_s)$



where $K_{xy}$ is a pre-shared secret key between user $X$ and $Y$, $K_s$ is a session key, $E(m, k)$ is symmetric key encryption on message $m$, with key $k$



It appears to me that it is secure. Could any one can give me a hand or some hints on possible attack ?










share|cite|improve this question











$endgroup$












  • $begingroup$
    How does $Y$ know the $r$ in order to carry out step 2?
    $endgroup$
    – user10354138
    Dec 7 '18 at 17:19










  • $begingroup$
    @user10354138 It's sent in step 1.
    $endgroup$
    – Henno Brandsma
    Dec 8 '18 at 6:42














1












1








1





$begingroup$


I am working on the exercise below which ask about whether it is possible to attack the following key exchange protocol on sharing session key $K_s$ between user $X$ and $Y$:




  1. $X rightarrow Y : X | r$


  2. $Y rightarrow X : E (r | K_s, K_{xy})$


  3. $X rightarrow Y : E (r, K_s)$



where $K_{xy}$ is a pre-shared secret key between user $X$ and $Y$, $K_s$ is a session key, $E(m, k)$ is symmetric key encryption on message $m$, with key $k$



It appears to me that it is secure. Could any one can give me a hand or some hints on possible attack ?










share|cite|improve this question











$endgroup$




I am working on the exercise below which ask about whether it is possible to attack the following key exchange protocol on sharing session key $K_s$ between user $X$ and $Y$:




  1. $X rightarrow Y : X | r$


  2. $Y rightarrow X : E (r | K_s, K_{xy})$


  3. $X rightarrow Y : E (r, K_s)$



where $K_{xy}$ is a pre-shared secret key between user $X$ and $Y$, $K_s$ is a session key, $E(m, k)$ is symmetric key encryption on message $m$, with key $k$



It appears to me that it is secure. Could any one can give me a hand or some hints on possible attack ?







cryptography






share|cite|improve this question















share|cite|improve this question













share|cite|improve this question




share|cite|improve this question








edited Dec 7 '18 at 17:10









kelalaka

329212




329212










asked Dec 7 '18 at 12:57









MluiMlui

112




112












  • $begingroup$
    How does $Y$ know the $r$ in order to carry out step 2?
    $endgroup$
    – user10354138
    Dec 7 '18 at 17:19










  • $begingroup$
    @user10354138 It's sent in step 1.
    $endgroup$
    – Henno Brandsma
    Dec 8 '18 at 6:42


















  • $begingroup$
    How does $Y$ know the $r$ in order to carry out step 2?
    $endgroup$
    – user10354138
    Dec 7 '18 at 17:19










  • $begingroup$
    @user10354138 It's sent in step 1.
    $endgroup$
    – Henno Brandsma
    Dec 8 '18 at 6:42
















$begingroup$
How does $Y$ know the $r$ in order to carry out step 2?
$endgroup$
– user10354138
Dec 7 '18 at 17:19




$begingroup$
How does $Y$ know the $r$ in order to carry out step 2?
$endgroup$
– user10354138
Dec 7 '18 at 17:19












$begingroup$
@user10354138 It's sent in step 1.
$endgroup$
– Henno Brandsma
Dec 8 '18 at 6:42




$begingroup$
@user10354138 It's sent in step 1.
$endgroup$
– Henno Brandsma
Dec 8 '18 at 6:42










1 Answer
1






active

oldest

votes


















0












$begingroup$

There are two problems in this protocol.




  1. An attacker can start the protocol instead of $X$ since the id $X$ sent unencrypted and the attacker can generate a random $r$. $Y$ generates the key sends back to $X$. In the first hand, there is no rejection for $Y$


  2. The attacker can store all transmitted $E (r | K_s, K_{xy})$ and transmitted encrypted messages with $K_{s_i}$for a future usage. When he successfully attacked one of the $X$ and $Y$, he can decrypt all the messages first by decrypting the stored $E (r | K_s, K_{xy})$. In short, this protocol has no forward secrecy.







share|cite|improve this answer









$endgroup$













    Your Answer





    StackExchange.ifUsing("editor", function () {
    return StackExchange.using("mathjaxEditing", function () {
    StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
    StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
    });
    });
    }, "mathjax-editing");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "69"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    noCode: true, onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3029871%2fkey-exchange-protocol-attack%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0












    $begingroup$

    There are two problems in this protocol.




    1. An attacker can start the protocol instead of $X$ since the id $X$ sent unencrypted and the attacker can generate a random $r$. $Y$ generates the key sends back to $X$. In the first hand, there is no rejection for $Y$


    2. The attacker can store all transmitted $E (r | K_s, K_{xy})$ and transmitted encrypted messages with $K_{s_i}$for a future usage. When he successfully attacked one of the $X$ and $Y$, he can decrypt all the messages first by decrypting the stored $E (r | K_s, K_{xy})$. In short, this protocol has no forward secrecy.







    share|cite|improve this answer









    $endgroup$


















      0












      $begingroup$

      There are two problems in this protocol.




      1. An attacker can start the protocol instead of $X$ since the id $X$ sent unencrypted and the attacker can generate a random $r$. $Y$ generates the key sends back to $X$. In the first hand, there is no rejection for $Y$


      2. The attacker can store all transmitted $E (r | K_s, K_{xy})$ and transmitted encrypted messages with $K_{s_i}$for a future usage. When he successfully attacked one of the $X$ and $Y$, he can decrypt all the messages first by decrypting the stored $E (r | K_s, K_{xy})$. In short, this protocol has no forward secrecy.







      share|cite|improve this answer









      $endgroup$
















        0












        0








        0





        $begingroup$

        There are two problems in this protocol.




        1. An attacker can start the protocol instead of $X$ since the id $X$ sent unencrypted and the attacker can generate a random $r$. $Y$ generates the key sends back to $X$. In the first hand, there is no rejection for $Y$


        2. The attacker can store all transmitted $E (r | K_s, K_{xy})$ and transmitted encrypted messages with $K_{s_i}$for a future usage. When he successfully attacked one of the $X$ and $Y$, he can decrypt all the messages first by decrypting the stored $E (r | K_s, K_{xy})$. In short, this protocol has no forward secrecy.







        share|cite|improve this answer









        $endgroup$



        There are two problems in this protocol.




        1. An attacker can start the protocol instead of $X$ since the id $X$ sent unencrypted and the attacker can generate a random $r$. $Y$ generates the key sends back to $X$. In the first hand, there is no rejection for $Y$


        2. The attacker can store all transmitted $E (r | K_s, K_{xy})$ and transmitted encrypted messages with $K_{s_i}$for a future usage. When he successfully attacked one of the $X$ and $Y$, he can decrypt all the messages first by decrypting the stored $E (r | K_s, K_{xy})$. In short, this protocol has no forward secrecy.








        share|cite|improve this answer












        share|cite|improve this answer



        share|cite|improve this answer










        answered Dec 13 '18 at 21:46









        kelalakakelalaka

        329212




        329212






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Mathematics Stack Exchange!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            Use MathJax to format equations. MathJax reference.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3029871%2fkey-exchange-protocol-attack%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            To store a contact into the json file from server.js file using a class in NodeJS

            Redirect URL with Chrome Remote Debugging Android Devices

            Dieringhausen