420 likes | 534 Views
DIGITAL RIGHT MANAGEMENT. Bùi Thành Đạt 50700480 Nguyễn Hoàng Nhật Đông 50700542 Nguyễn Duy Cường 50700287. Contents. SOFTWARE REVERSE ENGINEERING (SRE) What is SRE ? Tools How to prevent Conclusion DIGITAL RIGHT MANAGEMENT (DRM) What is DRM ? Problems and solutions
E N D
DIGITAL RIGHT MANAGEMENT Bùi Thành Đạt 50700480 Nguyễn Hoàng Nhật Đông 50700542 Nguyễn Duy Cường 50700287
Contents • SOFTWARE REVERSE ENGINEERING (SRE) • What is SRE ? • Tools • How to prevent • Conclusion • DIGITAL RIGHT MANAGEMENT (DRM) • What is DRM ? • Problems and solutions • A real world system • Some DRM system designs • Conclusion
Contents • SOFTWARE REVERSE ENGINEERING (SRE) • What is SRE ? • Tools • How to prevent • Conclusion • DIGITAL RIGHT MANAGEMENT (DRM) • What is DRM ? • Problems and solutions • A real world system • Some DRM system designs • Conclusion
What is SRE ? • Software reverse engineering (reverse code engineering, or reverse). • Purpose: • Good: understand malware, legacy code... • Not good: cheating, breaking DRM systems... 8048340: 55 pushl %ebp 8048341: 89 e5 movl %esp,%ebp 8048343: eb 02 jmp 0x8048347 8048345: 06 pushl %es ............
Tools for SRE • Disassembler • Debugger • Hex editor DISASSEMBLY DEBUG PATCH
Contents • SOFTWARE REVERSE ENGINEERING (SRE) • What is SRE ? • Tools • How to prevent • Conclusion • DIGITAL RIGHT MANAGEMENT (DRM) • What is DRM ? • Problems and solutions • A real world system • Some DRM system designs • Conclusion
How to prevent SRE ? ANTI-DISASSEMBLY DISASSEMBLY DEBUG PATCH ANTI-DEBUGGING TAMPER RESISTANCE
How to prevent SRE ?Anti-Disassembly • Encryption: encrypt before executed. • Problem: Code must be decrypted before executed -> attacker can access decryption code.
How to prevent SRE ?Anti-Disassembly • False assembly • Make the real code different from the disassemblied one. • Problem: attacker studies the technique carefully -> bypass the effects of false assembly.
How to prevent SRE ?Anti-Disassembly • False assembly jmp antidebug1 + 2 antidebug1: .short 0xc606 call reloc reloc: popl %esi jmp antidebug2 antidebug2: addl $(data - reloc),%esi movl 0(%esi),%edi pushl %esi jmp *%edi data: .long 0 http://vxheavens.com/lib/vsc04.html#p2:
How to prevent SRE ?Anti-Disassembly • Self-modifying code: real time, effective to confuse a disassembler. • Problem: • Also confuse developers. • Difficult to implement and error prone.
How to prevent SRE ?Anti-Debugging • Monitoring debug registers. • Monitoring breakpoints. • Multi threads.
How to prevent SRE ?Tamper Resistance • Guards: • Some sections of code calculate checksum of another section. • From “single point of failure” to “area of failure”. • Problems: • All guards are the same -> easy to detect. • Different classes of guards -> still able to be detected. • Conclusion: • Code has not been altered only if guards themselves have not been altered.
How to prevent SRE ?Tamper Resistance • Obfuscation: make the code difficult to understand. • Examples: • “Spaghetti code” • Opaque predicate
How to prevent SRE ?Tamper Resistance Metamorphism • Normally: distribute identical copies (clones) of software to each customer. • Weakness: can’t prevent break-one-break-everywhere (BOBE)
How to prevent SRE ?Tamper Resistance Metamorphism (cont) • Use metamorphic copies: same function, different internal structure. • For N copies, it takes N times to break all N instances (best case) • Usually use in malware. • Note: same flaw still exists in all copies.
Conclusion • Truly secure software is impossible to achieve in practice. • Solution: just provides sufficient protection • Confusing. • Hard to understand. • Increase the time required for an attack.
Contents • SOFTWARE REVERSE ENGINEERING (SRE) • What is SRE ? • Tools • How to prevent • Conclusion • DIGITAL RIGHT MANAGEMENT (DRM) • What is DRM ? • Problems and solutions • A real world example • Some DRM system designs • Conclusion
What is DRM ? • Retain some control over digital content after it has been delivered: “remote control” For the Hack of it PUBLISHED What happen?
What is DRM ? • Persistent protection: the protection stays with the content after it’s delivered. • Example: for a digital book: • No copying • Read once • Do not open until Christmas • No forwarding • ....
Contents • SOFTWARE REVERSE ENGINEERING (SRE) • What is SRE ? • Tools • How to prevent • Conclusion • DIGITAL RIGHT MANAGEMENT (DRM) • What is DRM ? • Problems and solutions • A real world system • Some DRM system designs • Conclusion
Problems and Solutionsproblems • From SRE section: can’t prevent SRE -> can’t hide a secret in software. • Analog hole: impossible to prevent such attacks
Problems and Solutionssolutions • Options: • Honor system • Assuming most people are good, honest, decent, and trustworthy • Example: shareware • Weak software-based DRM • Example: DRM for P2P Application • Strongest possible DRM system • Example: A real world system
Problems and Solutionssolutions • Cryptography: different from standard crypto scenario. • Legitimate recipient is a potential attacker. A recipient can access everything in dashed box (including key). How to solve ?
Problems and Solutionssolutions • Security by obscurity: secure when attacker doesn’t understand the software completely. • When obscurity gone, security gone • It’s preferable not rely on security by obscurity, but need to consider when there is no other option. • Closed systems, secret designs
Contents • SOFTWARE REVERSE ENGINEERING (SRE) • What is SRE ? • Tools • How to prevent • Conclusion • DIGITAL RIGHT MANAGEMENT (DRM) • What is DRM ? • Problems and solutions • A real world system • Some DRM system designs • Conclusion
Some DRM system designsa realworld system • MediaSnap Inc. DRM system: • Use with digital documents that will be distributed via e-mail. • Components: • Secure Document Server (SDS) • Client software is a plugin to Adobe PDF reader.
Some DRM system designsa realworld system • Security for system • The SDS is relatively secure. • The DRM client software is readily available to any attacker. • Focus on the client software
Some DRM system designsa realworld system • Tamper-resistant barrier • Anti-disassembly: encryption, false assembly • Anti-debugging: monitor debug registers • Tamper-resistant techniques: AES, along with “scrambling” algorithm • Anti-screen capture, digital watermarking • Metamorphism for BOBE resistance
Contents • SOFTWARE REVERSE ENGINEERING (SRE) • What is SRE ? • Tools • How to prevent • Conclusion • DIGITAL RIGHT MANAGEMENT (DRM) • What is DRM ? • Problems and solutions • A real world system • Some DRM system designs • Conclusion
Some DRM system designsdrm for streaming data • Possible attacks on streaming media: • Spoofing the stream • Man-in-the-middle • Replay attack • Plaintext captured at the client • The proposed design makes use of scrambling algorithms. • Achieve significant degree of metamorphism • Security by obscurity
Some DRM system designsdrm for streaming data • Details: • Server has list N scrambling algorithm s0, s1, s2, ..., sN-1 • Each client has a subset of these algorithms LIST = {s12, s23, s45, s2, s7} • This list is store as E(LIST, Kserver) • Client and server must negotiate a specific scrambling algorithm to be used.
Some DRM system designs drm for p2p application • Peer offering service (POS) • Legal provider • Apparent to users • Significant percentage of responses • Use weak DRM
Some DRM system designs drm in enterprise • DRM in enterprise is different from DRM in e-commerce: • Prevent losing money instead of making money • The human dimension is completely different • Other issues are more important than the strength of DRM system: • Policy management • Authentication • Relatively easy to solve.
Conclusion • DRM clearly illustrates the limitations of doing security in software • Strong software-based DRM is impossible due to SRE problems • DRM is not only a technical problem, so the challenge is to develop something that works in practice.