Reading Security Engineering by Ross Anderson, chapter 2.4.7.1 Password Manglers got an idea that finally seems to solve the issue I have with the existing 'I need to remember a strong* password for too many systems' solutions.
*) my passwords are randomly generated, with a size depending of the...
@Monika personally, I store my keepass file on a usb stick with a portable copy of the software sitting next to it. the usb stick sits on my keyring with my keys
I used to have them on a usb stick, but then, I'm at a friends place in a weekend, forgot my thumb drive and had no access to my passwords, when I really needed them.
@Monika In some ways, it depends on what risk you are defending against. If you trust a password safe application, you are trusting that the software developer is trustworthy. If you trust to a pattern, you need to trust that all the sites you use passwords on are trustworthy
@Matthew, I wanted a system that does not care about the site's thrustworthyness. If a password leaks from their system, it doesn't compromise any of the other passwords I use (at least, that was the thought).
@Monika If you store some site-dependent data on your trusted Web server, you can use that to parametrise the password-generation process; this can be used both to comply to some site-specific rules, and also to handle password "generations".
But then, if you accept to store and modify site-specific data on your trusted Web server, simply storing the site-specific passwords on that server would be simpler.
What I do is the following:
I write the passwords down.
Many people will cringe and scream and curse me and say that this is wrong and should never be done, but this is too simplistic an assertion. Details matter. Here are the details:
I keep the passwords in a text file.
When I get out of ...
@Monika yes well that's not the actual problem, plus, it's not 100 really is it
many online services don't allow you to have a password of that length so password 1 is 64 characters in length but the first 16 are used on facebook and the second 16 are used on twitter and the third 16 are used on soundcloud and the fourth 16 are used on google
In fact the problem really is not a problem. There are only five or six passwords that I need to keep with me and that make sense to use when I am not in my home, and these passwords comfortably fit in my mind.
@AviD the answer to this is as always nuanced. You can foam at the mouth irrationally both for and against C++ if you like. C++ the language allows you to write as many overflows as you like. It also gives you a set of techniques to manage buffers to avoid this, i.e. what you would call "STL".
@AviD Even better that whole comment thread entirely misses the point. C was designed to be portable-ish assembly. It can do whatever the underlying processor can do. If the address you ask to write to is mapped into the virtual address space, it will write there. Unless you use x86 tasks (which I don't think exist in long mode) x86 doesn't understand "your" process and certainly doesn't understand your data structures, so can't validate them.
@ThomasPornin yep and a lot of people writing C++ essentially are writing C with classes. Try discussing move operators and ownership concepts with the average C++ programmer.
@AviD Yes, overflow exists. Of course it does, because what you meant was "copy X bytes to this buffer" and what you did was "copy a lot more bytes to this buffer". But the CPU doesn't understand that. All it knows is that memory has a no-execute bit set, so if the instruction pointer moves there it should raise an exception.
If it happens that you try to write to a virtual address that is not mapped to anything, then you get a segmentation fault. In that sense you have overflown, if you like, as you are out of bounds for the address space. But the whole stack is valid memory, and the processor only understands this is non-executable (assuming the nx bit is set). It'll happily write to it.