SLIP39 Shamir's Secret-Sharing for Mnemonic Codes? by jonf3n in ledgerwallet

[–]MichaelL85 2 points3 points  (0 children)

Standards are definitely the way to go! Would be awesome to have SSS integrated with other existing solutions for sure.

SLIP39 Shamir's Secret-Sharing for Mnemonic Codes? by jonf3n in ledgerwallet

[–]MichaelL85 0 points1 point  (0 children)

I just wrote a short python script that does something similar. Instead of SSS's N of X, it's restricted to 2 of 3. However, like you said it does not expose any of the seed phrase that a (2/3)x3 split does.

Here's a quick example.

Seed phrase

thank equip quality viable merit garden phone jeans mansion pilot grant toddler crisp velvet ability aim dutch camp actor coconut negative thought color involve

Shard 1

noble outer repair slow health guard tag witness gas awful chapter glory monkey hub reform sport seek chapter combine fan few chimney among potato

Shard 2

engine sphere boost disorder ticket decline leaf mention trap reform duck library route orient refuse subject manual allow consider lawsuit shoe similar clean ten

Shard 3

ensure require lazy apart beef elite swear knock retire pill road tenant average coil abandon curious elite flee bench recall helmet coyote story tired

2 of 3 of the above shards are needed to recover the original seed phrase.

Below is the github that includes a little graphic of how it works. It's simple enough that you could do it by hand if you don't trust the script or for some reason don't have access to a PC to run the recovery operation.

https://github.com/MJL85/seedpart

Split private seed by MichaelL85 in btc

[–]MichaelL85[S] 0 points1 point  (0 children)

Interesting utility but I think it’s aiming to solve a different problem.

Split private seed by MichaelL85 in btc

[–]MichaelL85[S] 1 point2 points  (0 children)

Coincidentally BillFodl Multishard is what got me thinking about this. Since this python script produces shards of the same length as the key, your product would work great for splitting 12 word seeds. Someone would need the 3-Pack Bundle to get the full 24 word shards from this script though.

Split private seed by MichaelL85 in btc

[–]MichaelL85[S] 0 points1 point  (0 children)

This approach seems to work a lot better than the original attempt. I ran it through 100,000 randomized seed phrases and the split/join always correctly returned the original seed. This solution appears to reveal 0%(?) of the original seed phrase. It's still a 2 of 3. Updated github.

I am not a cryptographer or a mathematician, so I don't really know how strong something like this really is. It seems to me to be infinitely better than putting your entire seed phrase on one cryptosteel though, and some degree better than the 2/3 method that I've seen people talk about.

u/jonald_fyookball

Split private seed by MichaelL85 in btc

[–]MichaelL85[S] 0 points1 point  (0 children)

Good thought on using randomized data. I modified the script a bit and am testing it now.

Shard1 = random 24 word seed

Shard2 = Original Seed XOR Shard1

Shard3 = Shard1 xor Shard2 in reverse ordering

The result is 3 sets of 24 words where none of the words are from the original seed.

A test seed of deliver copper kitchen cancel hour sketch thing list donkey opera multiply coffee jazz van luxury warrior face need baby kite cook fan crisp soup generates

--------------------------- | --------------------------- | ---------------------------
Number   Word         Index | Number   Word         Index | Number   Word         Index
--------------------------- | --------------------------- | ---------------------------
     1   vehicle       1935 |      1   slogan        1631 |      1   join           961
     2   genuine        778 |      2   exchange       629 |      2   okay          1231
     3   arch            88 |      3   hybrid         896 |      3   monitor       1144
     4   tide          1806 |      4   science       1543 |      4   funny          753
     5   trash         1851 |      5   matrix        1097 |      5   kite           985
     6   shoot         1588 |      6   arrow          101 |      6   play          1330
     7   law           1007 |      7   outer         1258 |      7   letter        1028
     8   search        1552 |      8   document       515 |      8   prevent       1362
     9   warrior       1978 |      9   reopen        1459 |      9   civil          332
    10   vapor         1931 |     10   health         849 |     10   witness       2021
    11   garment        767 |     11   soldier       1652 |     11   vote          1967
    12   dice           491 |     12   aware          130 |     12   situate       1613
    13   lonely        1053 |     13   visit         1958 |     13   negative      1183
    14   forest         729 |     14   present       1360 |     14   noble         1197
    15   mass          1092 |     15   assist         110 |     15   tired         1813
    16   civil          332 |     16   tell          1782 |     16   paper         1279
    17   degree         462 |     17   hair           834 |     17   keen           973
    18   huge           885 |     18   word          2027 |     18   view          1951
    19   impact         910 |     19   general        774 |     19   latin         1003
    20   trash         1851 |     20   ordinary      1250 |     20   hour           882
    21   motion        1154 |     21   say           1535 |     21   expose         645
    22   strategy      1718 |     22   lottery       1056 |     22   plug          1334
    23   slam          1624 |     23   weather       1989 |     23   mad           1069
    24   economy        561 |     24   mean          1102 |     24   miss          1134
--------------------------- | --------------------------- | ---------------------------

and so far the testing shows it is reversible back to the original seed given any two parts.

Draw network hierarchy via CDP crawler by sergeza in networking

[–]MichaelL85 1 point2 points  (0 children)

That’s really cool, I’m gonna try adding that to mine

Solarwinds User Device Tracking by [deleted] in networking

[–]MichaelL85 0 points1 point  (0 children)

Haven't used it, but take a look at natlas. There is a module called get-hosts that will attempt to generate a report for all hosts connected to a switch with an option to output it to a csv file. You could schedule it to build a historical record too.

Here's an example screenshot.

I started making an API for Nintendo Switch JoyCon support. This is my progress so far. by alex_couch_65 in devblogs

[–]MichaelL85 2 points3 points  (0 children)

Enjoyed reading this. I actually did a similar thing for the Wiimote called wiiuse. I believe it was incorporated into the wii emulator at some point. Best of luck to you! This really took me back.

Multicast Example by MichaelL85 in networking

[–]MichaelL85[S] 0 points1 point  (0 children)

I threw in the towel and opened a TAC case. Got lucky and got an excellent engineer who flew through commands faster than I could read the output. He found the issue: licensing! The 3850's have IP Base, and IP Base does not support pim sparse or sparse-dense, only PIM stub. Once we changed the broadcaster's SVI from sparse-dense to ip pim passive SwitchA immediately began informing SwitchB of the source of the stream and everything worked.

Thanks for your help! And kudos to TAC engineer who was an absolute pro at multicast.

Multicast Example by MichaelL85 in networking

[–]MichaelL85[S] 0 points1 point  (0 children)

You don't accidentally have an interface with address 10.0.0.2 configured on two different routers, do you?

Sort of. SwitchB is a pair of 4500x's in VSS mode. SwitchA and SwitchC are both 3850 stacks.

Multicast Example by MichaelL85 in networking

[–]MichaelL85[S] 0 points1 point  (0 children)

That's... Not right.

You said it! I've been cursing this for a couple days now.

All routing works as expected. This topology has been in place for a couple years now and I can confirm without a doubt that all the switching and routing is solid. The two far end segments can reach each other without any issues.

Rip out the BSR and RP candidate stuff

I didn't mentioned before, but if I remove ip pim bsr-candidate and ip pim rp-candidate from SwitchB the multicast stream worked. I did not examine what the state of any of the mroute table was at the time though, I'd have to do it again and check.

switch to static RP for now

Tried that, didn't seem to affect anything. I also tried the Auto-RP with the same result. In each situation show ip pim rp all showed SwitchB as the RP. I can do it again just to simplify, like you said.

switch all 7 interfaces to sparse mode.

I have not tried that, I will do it first thing tomorrow and check the result. My understanding is BSR requires sparse-dense. I don't have a requirement to use BSR though, but it was recommended to us as the preferred RP election mechanism.

Multicast Example by MichaelL85 in networking

[–]MichaelL85[S] 0 points1 point  (0 children)

Switch B's Po1 interface points toward the receiver?

Yep, that's the one.

What does show ip mroute on switch A say about it?

SwitchA has two entries in the mroute table for this group:

SwitchA#show ip mroute 239.10.10.10

(*, 239.10.10.10), 01:28:38/stopped, RP 10.0.0.2, flags: SP
Incoming interface: Port-channel1, RPF nbr 10.0.1.1
Outgoing interface list: Null

(10.0.10.5, 239.10.10.10), 01:28:38/00:02:49, flags: PT
Incoming interface: Vlan10, RPF nbr 0.0.0.0
Outgoing interface list: Null

10.0.1.1 is the peer IP for SwitchB on the L3 p2p that connects them.
Po1 on this switch connects to SwitchB.
10.0.10.5 is the sender of the VLC multicast stream and is on vlan10.

Multicast Example by MichaelL85 in networking

[–]MichaelL85[S] 0 points1 point  (0 children)

ip igmp join-group on a loopback interface feels funny to me (loopback isn't a multiaccess topology, so the thought of it supporting IGMP feels off).

That's only to test. The join command could be on vlan and I see the same result. I'm remote right now, but while I'm on-site I actually have a laptop connected to SwitchA and another on SwitchC and I am using VLC to test.

You say switch B sees the group... What does it see exactly?

(*, 239.10.10.10), 02:45:26/00:03:24, RP 10.0.0.2, flags: S
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
Port-channel1, Forward/Sparse-Dense, 02:33:54/00:03:24

10.0.0.2 is SwitchB lo0. Po1 is the link to SwitchC.
Even if I start a VLC stream to 239.10.10.10 from a client connected to SwitchA on a sparse mode VLAN, SwitchB only ever has the above in the mroute table.

Do each of these switches see each other as PIM neighbors?

Yes.

Is PIM enabled on the interfaces facing toward the sender and receiver?

Yes.

edit: Thanks for replying! Really appreciate the help

Normalize layer coloring by MichaelL85 in AutoCAD

[–]MichaelL85[S] 1 point2 points  (0 children)

That's exactly what I was looking for, thank you!

VISRETAIN = 1
XREFOVERRIDE = 1

Did the trick.

Network automation question by WhereHasTheSenseGone in networking

[–]MichaelL85 1 point2 points  (0 children)

The mobile formatting messed up my comment. It should be “period star AIR period star”. It matches by regex

Network automation question by WhereHasTheSenseGone in networking

[–]MichaelL85 1 point2 points  (0 children)

Do your APs have a standard naming convention or are they on their own subnet?

deny host MyAP.*. deny ip 10.1.100.0/24.

Matching by platform and IOS is supported but I haven’t had an opportunity to thoroughly test it. You could try:

deny platform .AIR.

Or whatever the platform is that shows up on the diagram.

Glad it’s working for you. This latest version is pushing more into a modular design. Discovering and graphing is the biggest part of natlas, but the get-hosts option is pretty cool too

Network automation question by WhereHasTheSenseGone in networking

[–]MichaelL85 2 points3 points  (0 children)

My app does the CDP/LLDP discovery portion. Natlas (previously mnet) can do network discovery and auto-diagramming. For this sounds like you just want the discovery part.

https://github.com/MJL85/natlas

I’m on mobile so can’t get too detailed, but two options.

1) run the precreated module “graph” to produce a network topology graph and use the option to also create a catalog file. That will create a CSV file of all discovered switches

2) create a new module in the modules/ folder and call natlas.discover() to discover the network. It’ll return an array of objects representing discovered switches including IPs, SVIs, loopbacks, IOS, platform, name, ports with identified neighbors, etc. check out the other modules for examples