Comments (3)
타인이 복호화를 할 수 없어야 정상 이겠죠.
빌드를 할 때 암호화/복호화를 한 키가 screwim binary 안에 포함이 되게 됩니다. 즉, 암호화를 한 screwim binary로만 복호화를 할 수 있다는 의미 입니다.
빌드를 할 때, configure를 하면 SCREWIM_ENC_DATA 상수가 config.h 에 random 하게 생성이 됩니다. 즉 이 SCREWIM_ENC_DATA 상수 값을 동일하게 빌드한 binary에서만 복호화가 가능 하다는 의미입니다.
즉, 이미 빌드를 한 후에, 다시 빌드를 할 때 동일한 SCREWIM_ENC_DATA 값을 가지게 해서 빌드를 해야지만 암호화 복호화가 가능 하다는 의미입니다.
즉 복호화 기능은 제공자를 위한 기능이지, 사용자를 위한 기능은 아니라는 의미입니다.
사용자에게 암호화된 코드를 넘기면서, screwim 이나 screwim_decrypt() 기능이 포함된 screwim.so 를 같이 넘기면 안되다는 의미입니다.
암호화된 코드와, screwim_decrypt() 기능이 포함되지 않은 screwim.so 를 넘겨줘야 합니다.
from mod_screwim.
네....새롭게 빌드를 한다면 이해가 되는데요...문제는 빌드한 채로 고객에게 납품했을 경우의 상황입니다.
즉, 패키지를 제공할때 고객 서버에 직접 설치해서 제공하는 경우 소스 보호를 위해서 mod_screwim 을 설치/빌드까지 한 상태로 고객에게 제공했을 때, 고객은 해당 복호기능을 통해서 암호화된 문서를 복호화해서 열람을 할 수 있는 상황에 대한 것이었습니다.
요컨대, 빌드를 한 후에 수동으로 복호하는 기능(함수)을 삭제할 수 있는 방법이 있는지 궁금합니다. 물론, php 실행시에는 해당 암호화된 문서가 복호화되서 정상적인 기능을 수행해야 하구요..
이상입니다.
from mod_screwim.
현재 빌드한 코드의 config.h 에 보시면 SCREWIM_ENC_DATA 상수값이 있습니다. 이 상수가 키 값이므로, 새로 빌드를 할 때 configure 후에 config.h 에서 SCREWIM_ENC_DATA 값을 원래 빌드한 값과 동일하게 수정한 후에 빌드를 할 수 있습니다.
이미 decrypt function이 포함된 screwim.so 가 배포가 되었다면 이를 완벽하게 회수할 방법은 없습니다. 동작을 제한할 수 있는 코드를 포함하여 이전 코드가 무력화 되도록 작업 루틴을 변경 하시고, 새롭게 암호화를 해서 전달하는 수 밖에는 없습니다.
예를 들어, 해당 코드가 네트워크 통신을 한다면, 서버 쪽에서 해당 요청을 무력화 시켜 코드를 변경할 수 있도록 유도를 해야 겠지요.
뭐 말씀하신 상황은 엎질러진 물인 것 같습니다.
from mod_screwim.
Related Issues (20)
- add -Wall compiler option
- php7.4.5 complie error HOT 2
- missing config.w32 HOT 3
- Do you also support php8.0? HOT 5
- screwim_decrypt integer overflow
- arginfo casting type support
- version update to 1.0.4
- screwim_seed () works even without --enable-screwim-decrypt
- Encode only binary or decode with key/password binary HOT 3
- version update to 1.0.5
- phar package encryption error cannot be executed
- universal cli tool HOT 1
- screwim_encryp returns wrong data on PHP 8.1
- add screwim.enable ini option
- improve performance fixing duplicate file open
- 컴파일중 오류가 발생 하였습니다. HOT 1
- segmentation fault (core dumped)? HOT 1
- 암호화 파일 확장자가 php 인 경우 오류 HOT 2
- version update to 1.0.2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mod_screwim.