Let say I got a library to read/write files securely on the hard disk (encrypt before writing and decrypt to read back). If the library is severely obfuscated, attackers may be intimidated. So they may not be able to reverse to find the crypto key in the library. However they can use the library as a whole to decrypt previously encrypted files.

So as said in the title, what is the terminology used to describe the attacks of extracting an application's shared library and using it stand-alone?



  • A black box component that encrypts anything you throw at it is called an Encryption Oracle.
  • A black box component that decrypts anything you throw at it is called a Decryption Oracle.

Actual examples of this would be your library, or an HSM (hardware security module) that does all the crypto internally.

I suggest, you buy a cheap $500 HSM and let that worry about the crypto. Contrary to a library, a HSM can not simply be copied. (But brings other headaches, like how to do backups/restores/HW-replacement.)

  • While this is the term in cryptography, I want to know if there is a more general term. – Krypton Dec 17 '15 at 10:25
  • 1
    I don't think there is a name for this "a local administrator is using part of my program in a way that it's not supposed to" problem. If this a problem, then I'd say you must restructure your program architecture and compartmentalize more. Put the supersensible processing on a different host or on an HSM, or something. The "nobody will figure out my black box" approach goes against Kerckhoffs's principle and is impossible to get right/safe. – StackzOfZtuff Dec 17 '15 at 15:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.