You have 2 investment strategies to choose from.
- Dollar-cost averaging (DCA): You invest $100 (inflation-adjusted) every month for all 40 years.
- Buy the Dip: You save $100 (inflation-adjusted) each month and only buy when the market is in a dip. A “dip” is defined as anytime when the market is not at an all-time high. But, I am going to make this second strategy even better. Not only will you buy the dip, but I am going to make you omniscient (i.e. “God”) about when you buy. You will know exactly when the market is at the absolute bottom between any two all-time highs. This will ensure that when you do buy the dip, it is always at the lowest possible price.
Tuesday, April 30, 2019
Should You Time The Market?
https://ofdollarsanddata.com/even-god-couldnt-beat-dollar-cost-averaging/
Labels:
Links
Friday, March 15, 2019
Everything Smarthome
This is a long, but enjoyable article in broken Russian-English about everything smarthome in 2019.
https://vas3k.com/blog/dumbass_home/
https://vas3k.com/blog/dumbass_home/
Labels:
Links
Wednesday, February 27, 2019
Password strength
Dropbox has a password strength estimator called zxcvbn that I like a lot. It estimates entropy in your password by looking for dictionary or password list leak matches. It's long bothered me when sites estimate password strength purely based on complexity. These sites say a password like
Password!1 is much more secure than one like zbuwcramudbpvreorkno (a score of 72% vs 21% respectively). I discuss this in more detail in my How to be secure online post.
However, a while ago Dropbox changed their algorithm to favor length over resistance to dictionary attacks. There is some logic in their decision, but I really feel like something is lost by not having the old algorithm. So, I made a demo comparing the two so you can find passwords both algorithms agree are strong. At the same time, I finally hooked up this domain I bought a while ago to my github pages site.
Labels:
Stuff I Wrote
Thursday, January 31, 2019
Tuesday, December 25, 2018
How to Be Secure Online: The Blog Post
I've read a lot recently about some new types attacks I wasn't aware of
before. Most of these can be defended against pretty easily, it's just a
matter of knowing the threats. I wanted to summarize some of the
things everyone should be doing at this point, but most people aren't.
However, security isn't the only benefit of a password manager, it is also much more convenient. You can memorize one really good random password, with no restrictions on maximum length or allowed characters, and then use random passwords on every site. You'll never have to worry about password complexity restrictions, or being forced to change your password again. Just generate a new 30 character random password and let the password manager worry about keeping track of it.
I wrote about password managers in more detail here. If you just want the easiest path, then LastPass will work fine. I use KeepassXC which is open source and offline. You have to copy the password file between computers and phones yourself, using something like Dropbox, or the open source Syncthing.
I've always been bothered with password strength estimators that score you based on complexity. A classic example of a bad password estimator is http://www.passwordmeter. com/
If I generate a random 20 character password, but one that consists of only lowercase letters like
Luckily, people are starting to wise up to how useless things like replacing o with 0 are. NIST has updated password guidelines that are a great summary of what restrictions should be on password systems. Password estimators like the one above used to be much more common, and even major companies used them. A long time ago I made my own password estimator, which attempted to replace common dictionary words and then figure out the number of possible combinations, however Dropbox has a way better version of that called zxcvbn, named for the bottom row of letters on a keyboard. Using
At some point, zxcvbn changed its algorithm for calculating entropy. I didn't like this change, so I made a page with both the new and old versions of it so you can compare the two.
If you are going to use 2 factor auth, you should use a hardware device like a Yubikey, or an app like Authy. If the service only supports SMS based 2 factor auth, then use a VOIP number like Google Voice, which can't be easily ported to a new carrier.
The worst part of this, is that using plain SMS for 2 factor auth can make you less secure than no 2 factor auth, because an attacker attempting to social engineer their way into your account will be more believable if they have access to SMS codes being sent to them, versus if there is no 2 factor turned on. In some cases services allow you to reset your password using only your SMS phone number, so someone who knows your phone number, but not your password, can reset it and get into your account.
A credit freeze simply adds a random PIN that will be needed to open new accounts, ie, any time someone wants to do a hard pull of your credit with one of the reporting agencies, they will require you to lift the freeze, using the PIN. Note that you can still use your existing accounts with the freeze in place, it's only opening new accounts that will be blocked. You can quickly and temporarily remove a freeze (called thawing) within a few minutes. See here or here for more info on how to freeze your credit.
When freezing your credit, make sure they use the word "Freeze" on the page. Be careful not to do any sort of credit monitoring or "locking", those are paid services that are less effective than freezes. They will push those hard, both because they can charge for them, and because people freezing their credit restricts the agencies from doing whatever they want with your info. Worse still, if the monitoring is with a third party, the will require your SSN and other info to monitor your credit, giving your info to yet another database that will inevitable be leaked at some point.
Use a password manager
At this point, you really should be using a password manager. You have to assume some of the sites you use will be breached in any given year, and when they are the username and password you use there will be tried on other popular sites. The only way to be safe is to use different random passwords for every site. There is no way you can memorize random passwords for every site, even if you limit it to only the sites you actually care about the security of.However, security isn't the only benefit of a password manager, it is also much more convenient. You can memorize one really good random password, with no restrictions on maximum length or allowed characters, and then use random passwords on every site. You'll never have to worry about password complexity restrictions, or being forced to change your password again. Just generate a new 30 character random password and let the password manager worry about keeping track of it.
I wrote about password managers in more detail here. If you just want the easiest path, then LastPass will work fine. I use KeepassXC which is open source and offline. You have to copy the password file between computers and phones yourself, using something like Dropbox, or the open source Syncthing.
Use a long password
You should only need one or two passwords, if you are using a password manager, so you can make them very strong. You should make your password very long, and not worry about complexity too much.I've always been bothered with password strength estimators that score you based on complexity. A classic example of a bad password estimator is http://www.passwordmeter.
If I generate a random 20 character password, but one that consists of only lowercase letters like
xznmjetjsciqukhspaxv passwordmeter.com gives that a score of 21% (weak). A 6 character random password like z&*4uV
gets a score of 64% (strong), merely because it has lower case, upper
case, digits, and special characters. Tacking on 2 more characters z&*4uV.9
gets you to 100% (very strong). While that is an ok password, the 20
character one is much, much stronger, despite being all lower case.
Even if the attacker knew that your password was all lowercases there
would still be over 10^28 possibilities. Trying every possible 6
character password, even with all 95 normal keyboard characters
possible, is only about 10^12 possibilities. Which makes the 20
character password roughly a quadrillion times more secure than the 6
character one. Even the 8 character one is a trillion times worse than the 20 character one.Luckily, people are starting to wise up to how useless things like replacing o with 0 are. NIST has updated password guidelines that are a great summary of what restrictions should be on password systems. Password estimators like the one above used to be much more common, and even major companies used them. A long time ago I made my own password estimator, which attempted to replace common dictionary words and then figure out the number of possible combinations, however Dropbox has a way better version of that called zxcvbn, named for the bottom row of letters on a keyboard. Using
zxcvbn as a password would seem random to many estimators, but isn't actually, and attackers were already trying keyboard patterns.At some point, zxcvbn changed its algorithm for calculating entropy. I didn't like this change, so I made a page with both the new and old versions of it so you can compare the two.
Don't use SMS for 2 factor authentication
Don't use actual cell phone numbers with a traditional carrier, like Verizon, for 2 factor auth. It is quite easy, and increasingly common to intercept SMS codes via SIM swapping attacks. All an attacker needs is your phone number; then they call your carrier and pretend to be you with a new phone and SIM card, and ask for your number to be ported to the new phone. Then they request a 2 factor auth code and it goes to the phone they have instead of yours.If you are going to use 2 factor auth, you should use a hardware device like a Yubikey, or an app like Authy. If the service only supports SMS based 2 factor auth, then use a VOIP number like Google Voice, which can't be easily ported to a new carrier.
The worst part of this, is that using plain SMS for 2 factor auth can make you less secure than no 2 factor auth, because an attacker attempting to social engineer their way into your account will be more believable if they have access to SMS codes being sent to them, versus if there is no 2 factor turned on. In some cases services allow you to reset your password using only your SMS phone number, so someone who knows your phone number, but not your password, can reset it and get into your account.
Freeze your credit
After the Equifax data breach it's safe to assume that if you have a credit history in the US, that history including SSN and date of birth was leaked. To open new accounts one typically only needs SSN, DOB and name. To prove your identity online you are sometimes asked security questions generated from your credit history (things like what bank was your car loan in 2015 with?). All those things were leaked.A credit freeze simply adds a random PIN that will be needed to open new accounts, ie, any time someone wants to do a hard pull of your credit with one of the reporting agencies, they will require you to lift the freeze, using the PIN. Note that you can still use your existing accounts with the freeze in place, it's only opening new accounts that will be blocked. You can quickly and temporarily remove a freeze (called thawing) within a few minutes. See here or here for more info on how to freeze your credit.
When freezing your credit, make sure they use the word "Freeze" on the page. Be careful not to do any sort of credit monitoring or "locking", those are paid services that are less effective than freezes. They will push those hard, both because they can charge for them, and because people freezing their credit restricts the agencies from doing whatever they want with your info. Worse still, if the monitoring is with a third party, the will require your SSN and other info to monitor your credit, giving your info to yet another database that will inevitable be leaked at some point.
Labels:
Links,
Stuff I Wrote
Friday, November 16, 2018
Invisibly inserting usernames into text with Zero-Width Characters
https://medium.com/@umpox/be-careful-what-you-copy-invisibly-inserting-usernames-into-text-with-zero-width-characters-18b4e6f17b66
https://www.umpox.com/zero-width-detection/
https://www.umpox.com/zero-width-detection/
Zero-width characters are invisible, ‘non-printing’ characters that are not displayed by the majority of applications. For example, I’ve inserted 10 zero-width spaces into this sentence, can you tell? (Hint: paste the sentence into Diff Checker to see the locations of the characters!). These characters can be used to ‘fingerprint’ text for certain users.
Labels:
Links
Sunday, November 4, 2018
The FBI of the National Park Service
https://www.outsideonline.com/2353856/national-park-service-investigative-services-branch
Last August, I traveled to Yosemite National Park to meet up with Shott’s colleague, ISB special agent Jeff Sullivan, an affable, self-deprecating, 35-year veteran of the Park Service. Sullivan has played a role in investigating nearly every major crime and mystery that’s taken place in Yosemite over the past quarter-century, which made him the ideal guide for a tour of the shadowy side of America’s fifth most visited national park. See that grassy expanse, dotted with wildflowers? That’s where park visitors discovered the skull of a still-unidentified young woman, a murder claimed by the prolific serial killer Henry Lee Lucas. That lush meadow? Once, someone found a dead bear there, its head neatly severed from its body. (The ISB sent the bear’s remains to the park’s wildlife lab in Oregon, hoping to discover clues about who’d poached it. The lab called back a few weeks later: The poacher you’re looking for is a mountain lion.)
Sullivan and I drove up to Glacier Point, where he told me about the rockslide in 1996 that killed one and injured at least 11. The dust cloud it kicked up was so massive it blocked out the sun; until Sullivan arrived on the scene, he’d been sure there would be dozens of casualties. Next to us, a bored teenager flung a water bottle into the abyss. Watching it fall seemed to cause Sullivan physical pain. He leaned in close and flashed his badge at the kid. “Don’t throw water bottles,” he said quietly.
Labels:
Links
Monday, October 22, 2018
How to set up a Raspberry Pi without a keyboard, mouse, or monitor
There are plenty of guides out there about how to set up headless Raspberry Pis, but they get out of date quickly, and I do this often enough that I'm constantly searching for up to date ones. So for my own benefit here's my documentation of the process.
Download Raspbian Lite. This is the version without the GUI components.
Put your SD card in your computer and use
Use dd to copy the data over. They constantly recommend you use the program Etcher, but I've never had it work successfully. The command is
Once done, your card should have 2 partitions, open the boot partition and add an empty file called
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="YourSSID"
psk=abcdef1234567890
key_mgmt=WPA-PSK
}
You can either put your actual password in there as the psk, or use the tool wpa_passphrase to convert your password into a hash that will also work.
Put the card in the Pi, boot it up, and it should connect to your network and you should be able to ssh in with username
You should put your public key in
Download Raspbian Lite. This is the version without the GUI components.
Put your SD card in your computer and use
lsblk to identify which drive your SD card is. Be careful, if you use the wrong drive below you will overwrite your main hard drive.Use dd to copy the data over. They constantly recommend you use the program Etcher, but I've never had it work successfully. The command is
sudo dd bs=4M if=2018-10-09-raspbian-stretch-lite.img of=/dev/sde conv=fsync status=progressOnce done, your card should have 2 partitions, open the boot partition and add an empty file called
ssh to enable ssh, and create a file called wpa_supplicant.conf to configure wifi. The contents of the file are this:
country=USctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="YourSSID"
psk=abcdef1234567890
key_mgmt=WPA-PSK
}
You can either put your actual password in there as the psk, or use the tool wpa_passphrase to convert your password into a hash that will also work.
Put the card in the Pi, boot it up, and it should connect to your network and you should be able to ssh in with username
pi and password raspberry. Note that you need to boot once for it to expand the filesystem.You should put your public key in
~/.ssh/authorized_keys and turn off password ssh access in /etc/ssh/sshd_config. You should also run sudo raspi-config once you ssh in, and update with sudo apt update && sudo apt upgrade
Labels:
Stuff I Wrote
Saturday, October 6, 2018
Blockchain Technology Overview
https://nvlpubs.nist.gov/nistpubs/ir/2018/NIST.IR.8202.pdf
NIST just published a good overview of blockchain technologies. Very thorough, yet digestible for non-technical readers.
NIST just published a good overview of blockchain technologies. Very thorough, yet digestible for non-technical readers.
Blockchains are tamper evident and tamper resistant digital ledgers implemented in a distributed fashion (i.e., without a central repository) and usually without a central authority (i.e., a bank, company, or government). At their basic level, they enable a community of users to record transactions in a shared ledger within that community, such that under normal operation of the blockchain network no transaction can be changed once published. This document provides a high-level technical overview of blockchain technology. The purpose is to help readers understand how blockchain technology works.
Labels:
Links
Subscribe to:
Posts (Atom)

