3,686 reputation
1419
bio website
location
age
visits member for 2 years, 1 month
seen Apr 14 at 21:45

Dec
16
comment Is my developer's home-brew password security right or wrong, and why?
@Muhd - The problem with your supposition is that both algorithms are designed to add a nontrivial but acceptable amount of time complexity to the calculation (and the amount of complexity can be varied to achieve this balance). Running them in series means that you either double the time a user must wait for a legitimate password verification, or the strength of each algorithm must be reduced by half. Complexity is the enemy of security; the more it interferes with the status quo, the more likely your system will be "attacked" by your own users.
Aug
20
comment How do WPS (Wi-Fi Positioning System) databases have the MAC Addresses of the networks?
In other words, if you don't potentially want the world to know your home WAP's MAC address, don't broadcast its SSID.
Aug
5
comment How can I identify my phone call is being tracked or tapped?
Unfortunately it may be that the first time you learn that the information is known to someone other than the other person on the call is when you hear it in court. Also, even without a wiretap, the other party to your call may be a mole.
Aug
5
comment How could i totally secure a connection between two nodes?
As @AJHenderson says, verification requires trust which requires verification which requires trust. At some point, the scope of this cycle must extend beyond the digital realm; the two parties to the communication must be given or specify some piece of information that only they can know, but which the other party in the system can easily verify.
Aug
5
comment How could i totally secure a connection between two nodes?
To create a channel over a public network, you must have already exchanged some data offline that can be used to validate trust in an online identity. You cannot build a secure tunnel from whole cloth; both sides have to be able to prove they are who they say they are. As for "external services", a web of trust doesn't require paying money for a third-party certificate, but it does require at least two people to meet offline and digitally sign each others' keys before taking them back to install in their cert stores.
Aug
5
comment How could i totally secure a connection between two nodes?
Perhaps some clarification is needed. It sounds like you want two nodes to be able to communicate securely from the first byte, without a third party being able to decipher anything sent between them, nor being able to impersonate either of them. Is this true?
Jul
24
comment Store private key on server, then use k1 to log in, k2 to verify HMAC and k3 to decrypt private key
The only key you have to store long-term is your own. While availability (being able to use that key from other computers) might be nice, it has its own security concerns such as having your key installed into the certificate store of a shared computer.
Jul
24
comment Store private key on server, then use k1 to log in, k2 to verify HMAC and k3 to decrypt private key
If you don't know whether your intended recipient uses PGP, then you can't use PGP. In order to encrypt the message properly, you have to know (and trust to be correct) the recipient's public key. The message is encrypted symmetrically with a random key, then that key is encrypted asymmetrically with the recipient's public key, and then the entire thing is digitally signed with your private key. The recipient can then verify you sent it by checking the signature with your public key, and is the only one that can decrypt the message key using their private key.
Jul
24
comment Is it acceptable to generate salts with a hash of the username?
Yes. Each new hash should have a new salt, otherwise by cracking one hash and saving all previous attempts, you now have a rainbow table to start with for all future password changes by that user.
Jul
24
comment Store private key on server, then use k1 to log in, k2 to verify HMAC and k3 to decrypt private key
This is why PGP implementations typically stand alone; if you could trust your e-mail server to secure your messages properly, you wouldn't need PGP. Giving your PGP private key to the e-mail server for safe-keeping, even encrypted, takes the responsibility out of your hands.
Jul
24
comment Store private key on server, then use k1 to log in, k2 to verify HMAC and k3 to decrypt private key
Well, the server could still hash k1 again and store that, meaning that an attacker could obtain a list of usernames and k1 hashes and still wouldn't have what they needed to obtain the rest of the data via the service endpoint. If you can't trust the server, you lose; if the server's owner goes over to the dark side then social engineering is trivial, because the guy calling you really is the person who should be resolving any user login issues.
Jul
16
comment How to protect against “padding oracle attacks.”
Oracles get their name from exactly what I describe. I tailored the cryptographic definition towards a malicious attack, but white hats and other good guys can use oracles just as effectively for benevolent purposes, including the intended purpose for a particular security scheme.
Jul
16
comment How to protect against “padding oracle attacks.”
Well, oracles don't just give pass/fail results. The "random oracle" is another useful conceptual oracle, which takes in messages and produces random numbers that are always the same for a given message but never the same for any two different messages. This is the conceptual idea that we simulate with hash functions. We don't know how it's done (in fact we cannot achieve such behavior computationally) and don't need to know; all we have to know is how to use it.
Jul
11
comment Encrypted files storage. How to simplify the password management scheme?
Just don't get caught up in the new sweetness and use sCrypt for sCrypt's sake. Lots of amateur cryptographers, myself included, fall into the trap of overestimating the sophistication level of the average attacker by several orders of magnitude. Unless you're designing enterprise-level security to be used by large public corporations or government agencies with a lot of very valuable data to hide, the profile of your attacker is a twenty-something script kiddie with a GPU cracker looking for low-hanging fruit.
Jul
11
comment Encrypted files storage. How to simplify the password management scheme?
sCrypt should be fine on its own; its computation is both EXPTIME and EXPSPACE when both are plentiful, and to use constant space requires exponentially more time. Most implementations generate a 512-bit digest; XOR-fold that into a 256-bit AES key, generate a random IV, and you'll have a scheme I'd trust (if properly implemented; use an authenticated mode for AES, watch out for possible oracle or timing attacks, and keep all sensitive data as volatile as feasible).
Jun
26
comment How to secure database table of users for an application?
This is one good solution and a general best practice, but it can be hard to implement in a mature application, especially when using an ORM or other "rich query" framework. There are other options as I cover in my answer.
Jun
13
comment Client-side encryption, but cloud service can still decrypt data in the event of a death? Is this possible?
Companies that give a flip about IT security don't advertise a lot of the security measures they take. Why make it that much easier for an attacker to identify potential holes?
Jun
13
comment Client-side encryption, but cloud service can still decrypt data in the event of a death? Is this possible?
No. Either a key on the server and a key on the client can be used in the scheme I described, which is simpler than Adman's SSSS. The server never knows the password used to generate the key, nor the private key that can obtain it from the recovery key data it stores, but the user and the company have access to each. And the fact that the family has to present a death certificate is evidence in itself that the recovery mechanism has at least somewhat more process to it than storing the recovery key in a thumb drive in the top drawer.
May
22
comment Is “non-repudiation” automatically proven, given the other three tenets of info security?
I am, however, starting to understand that there are ways to use DH to verify the other person is who they say they are but not be able to prove it to anyone else after the fact, which is a practical requirement of non-repudiation in the legal sense. SPEKE's one possibility; even giving up the password used in key exchange isn't a proof for posterity that any given message was sent by Alice.
May
22
comment Is “non-repudiation” automatically proven, given the other three tenets of info security?
I still don't understand; what's Alice's "long-term key" in DH terms? Is it her secret, a, or the generator g or prime modulus p, or something used to generate one or more of them, like a shared password? For Bob to know it's Alice, Bob would have to know something that, in the simple ephemeral DH scheme, only Alice would know.