A Free Template From Joomlashack

A Free Template From Joomlashack

Flickr

www.flickr.com
This is a Flickr badge showing public photos and videos from NickDawson. Make your own badge here.
NickDawson. Get yours at bighugelabs.com/flickr

where am I?



stuff you might like

The Nerdery
Planning for the worst, digitally speaking PDF Print E-mail
Written by Nick Dawson   
Wednesday, 23 July 2008 19:21

The text below was orignally sent to the Security Now podcast in response to a listener question.

______________________

Steve,
Thank you for one of the audio highlights of my week. I look forward to Security Now every week - although you might be slightly disconcerted to learn that I usually listen in the shower. When we remodeled our house I went overboard on the IT infrastructure, including a streaming audio system, touch screen and waterproof speakers in the master bathroom.

I am writing in response to a listener's question about  making sure his loved ones had access to his passwords in the event of his passing. While it is a grim subject, it  is one that has become increasingly more important as we rely on ones and zeros more and more. I found myself asking a similar question a while ago and set out to find a solution. What I discovered was a mathematical algorithm, and a software implementation, of something called Shamir's Secret Sharing. This history and english major would only embarrass himself trying to explain the math, but the practical point is that SSS, as it is known, allows you to break a string into N parts and require that X many parts are required to reassemble that string.

The linux binary, which I found also compiled cleanly in OS X allows you to enter a string, presumably of any length. It then asks how many parts you want, and how many parts are required to recreate the string. The result is a list of strings that look essentially like crypto.

[the application and web demo can be found here: http://point-at-infinity.org/ssss/ ]

So here is what I did. I created a truecrypt volume that was about 5MB that contained a few items. First was a text file with a listing of all of my admin passwords (since I change my user account passwords every 120 days or so). Next was a text file with detailed step-by-step instructions for accessing those accounts and consequently my user accounts.  I generated a perfect password by cutting bits and snippets from several reloads of GRC's perfect password page and used that for the truecrypt volume. Then I simply ran that password through SSS and generated 5 "scrambled" strings, of which I require 3 to recreate the master password.

I went to our discount warehouse and purchased a 5 pack of USB thumb drives and loaded each drive with one of the unique strings from SSS, linux and OSX binaries for SSS, windows linux and OSX binaries for truecrypt, the truecrypt volume for with all my passowrds and a planetext text file with detailed instructions for putting it all together.

Finally, I sent the thumbdrives out into the world. One went to my parents, who live about 3 hours southwest of me, one to my in-laws who live 3 hours north, one in a safe deposit box, one on our family farm about 3 hours north east and one hidden in my house - remember that remodel I mentioned? I built in a few sneaky places for just such a cause.  The net result: if at any time I am incapacitated or worse, my loved ones just need a quorum of 3 to unlock my digital life.

I spent a lot of time searching for this solution and owe a big debt of thanks to the folks in #crypto on the Freenode IRC network for pointing me in the direction of SSS. Let just hope the need to use the system is not for quite some time.

Thanks for a great show!
Nick Dawson
From NickDawson.net (and also Virginia)

p.s. if you are ever curious to hear about the egregious lack of security surrounding healthcare IT just say the word and I will fill you in. It will make your head spin...

 
Share your passwords, but better security PDF Print E-mail
Written by Nick Dawson   
Monday, 21 April 2008 00:46
Monday, 28 January 2008

When I told my wife about the concept I am about to discuss, she rolled her eyes and called me a nerd (a moniker I am very comfortable with). File this under paranoid or even egotistical, but for some time I have been searching for a way give my passwords to family members. Thats right, the keys to my digital kingdom and I want to give them away- with one catch, no one person can read them. Here is the idea, in the event that I am ever incapacitated, I want to make sure my family has access to anything they need- from my bank account information to the root password on my machines. The only thing, like I said, is that I wanted a way to disseminate the passwords in such a way that no one person had everything. What I needed was to create some kind of quorum. I had a vision of sending out USB keys, one to my parents, one to my in-laws, one hidden here at home and one in a safe deposit box. Of course that has some flaws, what happens if the house burns down and one of the keys is lost? I was also really concerned with security. What if one of the keys outside of my house was stolen or lost- would my passwords be in the wild?

I wanted a 3 out of 4 system... I wanted a way to break the passwords into 4 parts and require that 3 of the 4 be present in order to decode the passwords. Is that to much to ask? Its kind of the "wonder twins activate" of the password world. I was aware of the key recovery techniques that PGP uses where you can essentially plot keys on a parabolic curve, but frankly I'm just not a big enough nerd to make sense of that.

What I found is so cool it just blows my mind: Shamir's Secret Sharing. This Wikipedia article does a much better job of explaining things than I can. In a nutshell Adi Shamir figured out a mathematical way to split "secrets" into N parts and require M (where M is equal to or less than N) parts to rebuild the secret. Wait, it gets better! There is an open source application that implements Shamir's Secret Sharing, its called ssss and is available totally free here . Need a demo? Check the demo page here , it lets you plug in a "secret" and specify the number of shares and the threshold (number needed to rebuild the secret).

To the SSSS program, a secret is a short string of text. That could be a short sentence or one word. SSSS does not seem to do well with whole documents.

Let me give you an example. Let's say I want to take a secret and break it into 4 parts. The results look like this:
1-6a489b233e29ddc15d23a6c1c1ef9d80e2
2-198c349efd3d7d19b6f679e02655d9a6ca
3-373051f5bc311d51efbaccff7b3c1a44d0
4-fe056be57b143ca8615dc7a3e92151ea84

In this example lets say we only need any 2 of the 4 lines above to recreate my secret... pick any two of those lines and paste them into the combine field on this page .... pretty cool huh?

Installing SSSS in most flavors of linux should be trivial if you are comfortable compiling software. On Ubuntu feisty fawn you'll need to have a compiler installed, the easiest way to go about that is by issuing the following command:
sudo apt-get install build-essential
Then you should be able to navigate to the directory where you uncompressed ssss and compile the source.
On the Mac side its a little more tricky. First, you'll need to install Xcode from your OSX install DVD. SSSS requires glib which is not part of OSX by default. The easiest way to get glib is through MacPorts. Once you have MacPorts installed, open a terminal and type:
sudo port install glib
After that, SSSS should compile fine.
According to the SSSS page, there is a Windows port but its flawed. Use it at your own risk.

Once installed SSSS is simple to use, follow the on screen prompts.

I've split my passwords into 4 parts (of which I am requiring 3). I have them on USB keys that I've sent out into the world. Each key has a text file with instructions as well as OSX and Linux binaries of SSSS. I have told the holders of the USB keys, that in the event that I am ever incapacitated to assemble 3 of the 4 keys and follow the instructions to recover my passwords.

To implement my plan I turned to TrueCrypt. I wanted to crate a text file that had all of my passwords, as well as some other instructions and detailed information. TueCrypt made short work of turning that file into a block of unreadable gibberish. That way I can put a copy of the encrypted file on each USB drive. All that was left was to take the password for the TrueCrypt volume and and run it through SSSS.

I the end this may be more of an exercise in geekyness than anything else. But, perhaps, the tools and ideas can help inspire a ore elegant solution. Clearly there is power in Shamir's Secret Sharing and it seems to have a very usable role in online security. I would love to hear from anyone reading this about ways they have tackled this issue and what they think of SSS and my solution.

 

 
Use Shamir's Secret Sharing to hide your passwords in plain sight PDF Print E-mail
Written by Nick Dawson   
Monday, 28 January 2008 12:09

When I told my wife about the concept I am about to discuss, she rolled her eyes and called me a nerd (a moniker I am very comfortable with). File this under paranoid or even egotistical, but for some time I have been searching for a way give my passwords to family members. Thats right, the keys to my digital kingdom and I want to give them away- with one catch, no one person can read them. Here is the idea, in the event that I am ever incapacitated, I want to make sure my family has access to anything they need- from my bank account information to the root password on my machines. The only thing, like I said, is that I wanted a way to disseminate the passwords in such a way that no one person had everything. What I needed was to create some kind of quorum. I had a vision of sending out USB keys, one to my parents, one to my in-laws, one hidden here at home and one in a safe deposit box. Of course that has some flaws, what happens if the house burns down and one of the keys is lost? I was also really concerned with security. What if one of the keys outside of my house was stolen or lost- would my passwords be in the wild?

I wanted a 3 out of 4 system... I wanted a way to break the passwords into 4 parts and require that 3 of the 4 be present in order to decode the passwords. Is that to much to ask? Its kind of the "wonder twins activate" of the password world. I was aware of the key recovery techniques that PGP uses where you can essentially plot keys on a parabolic curve, but frankly I'm just not a big enough nerd to make sense of that.

What I found is so cool it just blows my mind: Shamir's Secret Sharing. This Wikipedia article does a much better job of explaining things than I can. In a nutshell Adi Shamir figured out a mathematical way to split "secrets" into N parts and require M (where M is equal to or less than N) parts to rebuild the secret. Wait, it gets better! There is an open source application that implements Shamir's Secret Sharing, its called ssss and is available totally free here . Need a demo? Check the demo page here , it lets you plug in a "secret" and specify the number of shares and the threshold (number needed to rebuild the secret).

To the SSSS program, a secret is a short string of text. That could be a short sentence or one word. SSSS does not seem to do well with whole documents.

Let me give you an example. Let's say I want to take a secret and break it into 4 parts. The results look like this:
1-6a489b233e29ddc15d23a6c1c1ef9d80e2
2-198c349efd3d7d19b6f679e02655d9a6ca
3-373051f5bc311d51efbaccff7b3c1a44d0
4-fe056be57b143ca8615dc7a3e92151ea84

In this example lets say we only need any 2 of the 4 lines above to recreate my secret... pick any two of those lines and paste them into the combine field on this page .... pretty cool huh?

Installing SSSS in most flavors of linux should be trivial if you are comfortable compiling software. On Ubuntu feisty fawn you'll need to have a compiler installed, the easiest way to go about that is by issuing the following command:
sudo apt-get install build-essential
Then you should be able to navigate to the directory where you uncompressed ssss and compile the source.
On the Mac side its a little more tricky. First, you'll need to install Xcode from your OSX install DVD. SSSS requires glib which is not part of OSX by default. The easiest way to get glib is through MacPorts. Once you have MacPorts installed, open a terminal and type:
sudo port install glib
After that, SSSS should compile fine.
According to the SSSS page, there is a Windows port but its flawed. Use it at your own risk.

Once installed SSSS is simple to use, follow the on screen prompts.

I've split my passwords into 4 parts (of which I am requiring 3). I have them on USB keys that I've sent out into the world. Each key has a text file with instructions as well as OSX and Linux binaries of SSSS. I have told the holders of the USB keys, that in the event that I am ever incapacitated to assemble 3 of the 4 keys and follow the instructions to recover my passwords.

To implement my plan I turned to TrueCrypt. I wanted to crate a text file that had all of my passwords, as well as some other instructions and detailed information. TueCrypt made short work of turning that file into a block of unreadable gibberish. That way I can put a copy of the encrypted file on each USB drive. All that was left was to take the password for the TrueCrypt volume and and run it through SSSS.

I the end this may be more of an exercise in geekyness than anything else. But, perhaps, the tools and ideas can help inspire a ore elegant solution. Clearly there is power in Shamir's Secret Sharing and it seems to have a very usable role in online security. I would love to hear from anyone reading this about ways they have tackled this issue and what they think of SSS and my solution.

 

{mos_fb_discuss:3} 

Last Updated ( Tuesday, 29 April 2008 19:37 )
 
listupdate.sh PDF Print E-mail
Written by Nick Dawson   
Thursday, 27 September 2007 09:47

{mos_fb_discuss:3}

 

#! /bin/bash
#listupdate  V.08,    2007, Nick Dawson
#released under the GPL license

# this script has 3 arguments, [file] [header] [item to add]

# check argus supplied by: http://www.linuxweblog.com/bash-argument-numbers-check
# This block checks for the approprate number of arguments, if they do not exist an error code of 65 is returned
EXPECTED_ARGS=3
E_BADARGS=65

if [ $# -ne $EXPECTED_ARGS ]
then
echo "Usage: `basename $0` {file, header, list addition}"
exit $E_BADARGS
fi

#check for the file
if [[ ! -f $1 ]]
    then
    echo "File " $1 " does not exist"
    echo "would you like me to create it for you? (y/n) "
    read $RPLY
    if [[ $RPLY = "y" ]]
        then
        touch $1
        else
        exit 75
    fi
fi

#if [[ $2 = "-c" ]] #checking off entry
#    then
#    ed -s "$1" <<< "/$3/"$''
#
#


#check for the search key
if cat $1 | grep $2 >> /dev/null
    then
    ls /dev/null >> /dev/null
    else
    exit 85
fi

#preform editing
ed -s "$1" <<< "/$2/"$'a\n'"+ $3"$'\n.\nw'
#ed -s (supress output) use $1 as the file <<< look for $2 then add a new line containing "+ $3" then end that line
exit 0
#assuming everything was successful, so exit with status of 0

Last Updated ( Friday, 02 May 2008 13:37 )
 
bashit 2.0 now with textmate support! PDF Print E-mail
Written by Nick Dawson   
Tuesday, 25 September 2007 16:07

{mos_fb_discuss:3} 

#! /bin/bash
# bashit, 2007, Nick Dawson
# v2.2
#released under the GPL license


if [[ $1 = "-m" ]]  #user wishs to use textmate (OSX ONLY)
        then
        if which mate  #check for textmate terminal link
                then
                        if [[ -f $2 ]]
                                then
                                mate $2
                                else
                                touch $2
                                echo "#! /bin/bash" >> $2
                                echo "# " $2 ", " $(date) " Nick Dawson" $2
                                echo "# npdweb AT nick HYPTHEN dawson DOT com" >>$2
                                echo "#released under the GPL license" >> $2
                                chmod +x $2
                                mate $2
                                fi
                else
                        echo "Textmate, or terminal link, not installed"
                        echo "continuing with vi"
                        if [[ -f $2 ]]
                                then
                                vi $2
                                else
                                touch $2
                                echo "#! /bin/bash" >> $2
                                echo "# " $2 ", " $(date) " Nick Dawson" $2
                                echo "# npdweb AT nick HYPTHEN dawson DOT com" >>$2
                                echo "#released under the GPL license" >> $2
                                chmod +x $2
                                vi $2
                        fi
                fi
exit 0
        fi

if [[ -f $1 ]]  #check for the file
then #if it exists, simply open it with vi
        vi $1
else  #otherwise, create it, add headers, make it executable and open with vi
        touch $1
        echo "#! /bin/bash" >> $1
        echo "# " $1 ", " $(date) " Nick Dawson" $1
        echo "# npdweb AT nick HYPTHEN dawson DOT com" >>$1
        echo "#released under the GPL license" >> $1
        chmod +x $1
        vi $1

fi
exit 0
Last Updated ( Friday, 02 May 2008 13:37 )
 
<< Start < Prev 1 2 Next > End >>

Page 1 of 2
 
Joomla 1.5 Templates by Joomlashack