[Verifpal] New analysis with nil
jq-rs at mles.io
jq-rs at mles.io
Fri Nov 15 16:10:09 CET 2019
Hello,
Still wondering this, are the ENC(nil, nil) and MAC(nil, nil) bugs or do I have something to worry about in the protocol?
E.g.
"Result! cipher_msg_bob_name, sent by Attacker and not by Bob and resolving to ENC(nil, nil), is successfully used in primitive DEC(HASH(HASH(key_string)), ENC(nil, nil)) in Alice's state (analysis 44, depth 0)"
Thanks for looking into it,
--
jq-rs
On Fri, 1 Nov 2019, at 8:11 PM, jq-rs at mles.io wrote:
>
> Hello,
>
> I upgraded mles-webworker model to 0.7.5 and seems it has new findings
> with nil-parameters. I am afraid I can't quite get them. Any guidance?
> Thank you.
>
> Verifpal 0.7.5 (go1.13.3)
> © 2019 Nadim Kobeissi — https://verifpal.com
> WARNING: Verifpal is experimental software.
>
> Verifpal! parsing model "mles-websocket.vp"...
> Verifpal! verification initiated at 17:56:48
> Analysis! Alice has sent cipher_msg_alice_name to Bob, rendering it
> public
> Analysis! Alice has sent cipher_msg_alice_channel to Bob, rendering it
> public
> Analysis! Alice has sent cipher_msg_alice to Bob, rendering it public
> Analysis! Alice has sent hmac_cipher_msg_alice to Bob, rendering it
> public
> Analysis! Bob has sent cipher_msg_bob_name to Alice, rendering it
> public
> Analysis! Bob has sent cipher_msg_bob_channel to Alice, rendering it
> public
> Analysis! Bob has sent cipher_msg_bob to Alice, rendering it public
> Analysis! Bob has sent hmac_cipher_msg_bob to Alice, rendering it
> public
> Info! attacker is configured as active
> Deduction! cipher_msg_alice_name resolves to
> ENC(HASH(HASH(key_string)), name_alice)
> Deduction! ENC(HASH(HASH(key_string)), channel) found by attacker by
> equivocating with cipher_msg_alice_channel (analysis 0, depth 1)
> Deduction! cipher_msg_alice resolves to ENC(HASH(key_string),
> msg_alice) (analysis 0, depth 2)
> Deduction! hmac_cipher_msg_alice resolves to
> MAC(HASH(HASH(key_string)), ENC(HASH(key_string), msg_alice)) (analysis
> 0, depth 3)
> Deduction! cipher_msg_bob_name resolves to ENC(HASH(HASH(key_string)),
> name_bob) (analysis 0, depth 4)
> Deduction! cipher_msg_bob resolves to ENC(HASH(key_string), msg_bob)
> (analysis 0, depth 5)
> Deduction! hmac_cipher_msg_bob resolves to MAC(HASH(HASH(key_string)),
> ENC(HASH(key_string), msg_bob)) (analysis 0, depth 6)
> Analysis! ASSERT(MAC(HASH(HASH(key_string)), ENC(HASH(key_string),
> msg_alice)), MAC(HASH(HASH(key_string)), ENC(HASH(key_string),
> msg_alice)))? now conceivable by reconstructing with
> MAC(HASH(HASH(key_string)), ENC(HASH(key_string), msg_alice)),
> MAC(HASH(HASH(key_string)), ENC(HASH(key_string), msg_alice)) (analysis
> 0, depth 7)
> Analysis! ASSERT(MAC(HASH(HASH(key_string)), ENC(HASH(key_string),
> msg_bob)), MAC(HASH(HASH(key_string)), ENC(HASH(key_string),
> msg_bob)))? now conceivable by reconstructing with
> MAC(HASH(HASH(key_string)), ENC(HASH(key_string), msg_bob)),
> MAC(HASH(HASH(key_string)), ENC(HASH(key_string), msg_bob)) (analysis
> 0, depth 8)
> Analysis! MAC(nil, nil) now conceivable by reconstructing with nil,
> nil (analysis 9, depth 0)
> Analysis! ASSERT(MAC(HASH(HASH(key_string)), ENC(HASH(key_string),
> msg_alice)), MAC(nil, nil))? now conceivable by reconstructing with
> MAC(HASH(HASH(key_string)), ENC(HASH(key_string), msg_alice)), MAC(nil,
> nil) (analysis 9, depth 1)
> Deduction! ENC(nil, nil) found by attacker by reconstructing with nil
> (analysis 12, depth 0)
> Result! cipher_msg_alice_name, sent by Attacker and not by Alice and
> resolving to ENC(nil, nil), is successfully used in primitive
> DEC(HASH(HASH(key_string)), ENC(nil, nil)) in Bob's state (analysis 21,
> depth 0)
> Analysis! MAC(nil, nil) now conceivable by reconstructing with nil,
> nil (analysis 32, depth 0)
> Analysis! ASSERT(MAC(HASH(HASH(key_string)), ENC(HASH(key_string),
> msg_bob)), MAC(nil, nil))? now conceivable by reconstructing with
> MAC(HASH(HASH(key_string)), ENC(HASH(key_string), msg_bob)), MAC(nil,
> nil) (analysis 32, depth 1)
> Deduction! ENC(nil, nil) found by attacker by reconstructing with nil
> (analysis 35, depth 0)
> Result! cipher_msg_bob_name, sent by Attacker and not by Bob and
> resolving to ENC(nil, nil), is successfully used in primitive
> DEC(HASH(HASH(key_string)), ENC(nil, nil)) in Alice's state (analysis
> 44, depth 0)
> Stage 2, Analysis 52...
> Result! authentication? Alice -> Bob: cipher_msg_alice_name:
> cipher_msg_alice_name, sent by Attacker and not by Alice and resolving
> to ENC(nil, nil), is successfully used in primitive
> DEC(HASH(HASH(key_string)), ENC(nil, nil)) in Bob's state
> Result! authentication? Bob -> Alice: cipher_msg_bob_name:
> cipher_msg_bob_name, sent by Attacker and not by Bob and resolving to
> ENC(nil, nil), is successfully used in primitive
> DEC(HASH(HASH(key_string)), ENC(nil, nil)) in Alice's state
> Verifpal! verification completed at 17:56:48
>
> https://github.com/jq-rs/mles-webworker/blob/master/mles-websocket.vp
>
> --
> jq-rs at mles.io
More information about the Verifpal
mailing list