So I'm a complete novice in security practices, and an amateur web developer. I have a personal website connected to a personal DB. Currently there is nothing in this DB that would be useful to anyone but me, and I wouldn't care if any of it was stolen. I've had a probably stupid idea, and I'd like some help evaluating HOW stupid, and what I can do to make it slightly less stupid.
I'd like to add a table to my DB to store all my passwords, and add functionality to my website which would allow me to read and write to that table. The obvious and very valid objections to this are: "the personal website of an amateur is probably not at all secure and very hackable. If someone gets access, they'll be able to steal everything." I can think of a few ways to make this bad result less likely. Here's how I'm picturing it working:
- Log in to my admin account on my website.
- Make a request to get my passwords. Before the request goes out, I have to pass two-factor authentication.
- The passwords are encrypted in the db and still encrypted when they are received on the client-side. I store the key completely separate from the website/DB.
Is the above design secure enough to make this a reasonable thing to do? If not, is there something else I could do to improve it?
PS: I am aware that there are password management services available. Please indulge my desire to 'do it myself'