Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
1. Jednoduchá výzva na heslo (nie zabezpečené):
Toto je najjednoduchšie implementácia, ale ponúka prakticky žiadnu bezpečnosť. Jednoducho vyzýva na heslo, porovnáva ho s pevným kódom a poskytuje prístup, ak sa zhodujú.
`` `MATLAB
Funkcia my_script
% Definujte heslo (nekladajte citlivé heslá priamo do kódu)
AFFAFTAPSWORD ='MySecretPassword';
% Výzva na heslo
userPassword =input ('Enter Password:', 'S');
% Skontrolujte, či sa heslo zhoduje
Ak STRCMP (userPassword, AFFAFTASSWORD)
DISP ('ACCESS Udelený!');
% Vášho kódu na spustenie, ak je heslo správne, ide sem
DISP („Toto je chránený kód.“);
inak
disp ('nesprávne heslo. Prístup zamietnutý.');
ukončiť
ukončiť
`` `
Vysvetlenie:
* `Input ('Enter Password:', 'S')` Z výzvy používateľa zadáva text a uloží ho do „userPassword`. Argument `'s'` povie` Input`, aby považoval vstup za reťazec.
* `Strcmp (userPassword, AFFARTPASSWORD)` Porovnáva zadané heslo s hardcodeným heslom.
* Na základe porovnania je prístup udelený alebo zamietnutý.
Problémy s bezpečnosťou:
* tvrdé heslo: Heslo je v kóde obyčajný text, vďaka čomu je potrebné nájsť triviálne. Každý, kto dokáže prečítať súbor `.m`, pozná heslo.
* Žiadne šifrovanie: Samotný kód nie je chránený.
2. Heslo uložené ako hodnota hash (o niečo lepšie, ale stále slabá):
Tento prístup je okrajovo lepší, pretože namiesto hesla pre obyčajné textové heslo ukladá hash hesla. Hashovacie funkcie Matlabu však nie sú navrhnuté pre silnú bezpečnosť a môžu byť prerušené.
`` `MATLAB
Funkcia my_script_hashed
% Generujte hash hesla (urobte to iba raz a uložte hash)
% Nikdy neukladajte skutočné heslo.
% Príklad pomocou základnej funkcie hashovania (nie na výrobu):
AFFAFTAPSWORDHASH =DATAHASH ('MySecretPassword', 'MD5'); % Nahradiť modernejším hashom
% V skutočnej aplikácii by ste do súboru uložili 'AfrawApswordHash'.
% Na demonštračné účely, tu to budeme len hardcode (zlá prax):
AFFAFTAPSWORDHASH ='E5B6460F9578C6382F2C4D0F28D4E9F7';
% Výzva na heslo
userPassword =input ('Enter Password:', 'S');
% Hash heslo zadané používateľom
userPasswordhash =datahash (userPassword, 'md5'); % Používa rovnakú funkciu hash
% Skontrolujte, či sa zhoduje s hashmi
Ak STRCMP (userPasswordhash, AFFAFTAPSWORDHASH)
DISP ('ACCESS Udelený!');
% Váš chránený kód ide sem
DISP („Toto je chránený kód.“);
inak
disp ('nesprávne heslo. Prístup zamietnutý.');
ukončiť
ukončiť
`` `
Vysvetlenie:
* `Datahash ('MySecretPassword', 'md5')` Vypočíta hash hesla MD5. md5 sa považuje za zlomený a nemal by sa používať pre žiadne citlivé aplikácie. Zvyčajne by ste to urobili iba raz, aby ste vygenerovali hash a uložili hash.
* `Datahash (userPassword, 'md5')` Vypočíta hash MD5 zadaného hesla používateľa.
* Kód potom porovná tieto dva hashy.
Problémy s bezpečnosťou:
* Slabá funkcia hash: MD5 (a SHA-1) sú náchylné na kolízne útoky, čo uľahčuje nájsť iné heslo, ktoré generuje rovnaký hash. Mali by sa použiť SHA-256 alebo SHA-3. Datahash však podporuje iba slabé hash funkcie.
* Matlab's Hashing je neistý: Vstavané funkcie hash spoločnosti Matlab nie sú kryptograficky bezpečné. Nie sú navrhnuté tak, aby odolali útokom.
* stále zraniteľné: Odhodlaný útočník by mohol potenciálne reverzný inžinier hash alebo použiť útok dúhovej tabuľky.
3. Externé šifrovanie (bezpečnejšie):
Toto je odporúčaný prístup, ak potrebujete skutočnú bezpečnosť. Zahŕňa použitie externých šifrovacích nástrojov (mimo MATLAB) na šifrovanie údajov alebo celého skriptu MATLAB.
* šifrujte celý skript MATLAB: Na šifrovanie súboru `.m` použite špecializovaný šifrovací program (napr. Pred spustením v Matlabe by používateľ musel skript dešifrovať skript. Chráni to celý kód.
* šifrovať citlivé dátové súbory: Ak potrebujete iba chrániť určité dátové súbory používané v skripte MATLAB, na šifrovanie týchto súborov môžete použiť externé šifrovacie nástroje. Váš skript MATLAB by potom musel pred použitím údajov dešifrovať súbory a po použití ich znova zaregistrovať.
Príklad (s použitím 7-ZIP na príkazovom riadku):
`` `Bash
7Z a -pMysecrepassword my_script.7z my_script.m
7Z x my_script.7z -pmySecretPassword
`` `
Tieto príkazy potom môžete zavolať zvnútra MATLAB pomocou príkazu `System`, ale stále budete potrebovať používateľa, aby zadal heslo manuálne do externej aplikácie.
MATLAB kód na spustenie externej aplikácie:
`` `MATLAB
Funkcia my_encrypted_script
% Vyzvať používateľa na dešifrovanie súboru (pomocou externého nástroja)
cisktedFile ='my_script.7z';
deRcryptedFile ='my_script.m';
% Požiadajte používateľa, aby dešifroval súbor a stlačením klávesu Enter pokračujte
input ([', prosím, dešifrujte súbor "' EncryptedFile '" na "' dešifledfile '" a stlačte kláves Enter:'], 's');
% Teraz spustite dešifrovaný skript
run (dešifrtedfile);
ukončiť
`` `
Problémy s bezpečnosťou:
* sa spolieha na externý nástroj: Bezpečnosť závisí výlučne od sily šifrovacieho algoritmu a implementácie externého nástroja, ktorý používate.
* Správa kľúčov: Bezpečne riadenie šifrovacieho kľúču je rozhodujúce. Neskladujte heslo v skripte Matlab.
4. Pomocou kompilovaného MATLAB spustiteľné s licenciou na ochranu licencie (najlepšie pre komerčné výrobky, ale drahé):
Tento prístup zahŕňa zostavenie vášho kódu MATLAB do samostatného spustiteľného súboru a pomocou kompilátora MATLAB na ochranu kódu pomocou licencie. To pomáha predchádzať neoprávneniu distribúcie a používania vašej aplikácie.
* kompiláciu s kompilátorom Matlab: Zostavte skript MATLAB do spustiteľného súboru (.exe).
* Ochrana preukazu: Pomocou kompilátora MATLAB pridajte spustiteľnú činnosť ochranu licencie. To môže obmedziť prístup k žiadosti na základe licenčného kľúča.
Bezpečnostné úvahy:
* OBFUSCATION, nie šifrovanie: Matlab kompilátor zahanbuje kód, ale skutočne ho šifruje. Skúsený reverzný inžinier by mohol byť stále schopný extrahovať kód, ale sťažuje ho.
* Cena: Kompilátor MATLAB je samostatný produkt, ktorý vyžaduje licenciu.
Zhrnutie a odporúčania:
* Nespoliehajte sa na vstavané hasiace funkcie Matlabu pre bezpečnosť. Na tento účel nie sú navrhnuté.
* Ak potrebujete základné riadenie prístupu (napr. Aby ste zabránili náhodnému zneužitiu), môže stačiť jednoduché heslo. Uvedomte si však svoje obmedzenia.
* Pre akékoľvek skutočné zabezpečenie použite externý šifrovací nástroj na šifrovanie skriptu MATLAB alebo dátových súborov. Toto je odporúčaný prístup.
* Ak vyvíjate komerčnú aplikáciu MATLAB, zvážte použitie kompilátora MATLAB s ochranou licencie pre vyššiu úroveň bezpečnosti proti neoprávnenému použitiu.
Dôležité bezpečnostné postupy:
* Strong Heslá: Používajte silné, náhodné heslá (najmenej 12 znakov dlhé, so zmesou veľkých, malých písmen, čísel a symbolov).
* Secure Key Management: Bezpečne uložte šifrovacie kľúče. Nenajecte ich v skripte Matlab. Používajte premenné prostredia, konfiguračné súbory alebo vyhradené systémy správy kľúčov.
* Princíp najmenších privilégií: Dajte používateľom iba potrebné povolenia na vykonávanie svojich úloh.
* Pravidelné bezpečnostné audity: Pravidelne kontrolujte svoje bezpečnostné postupy a podľa potreby ich aktualizujte.
* Udržujte softvér aktualizovaný: Udržujte svoju inštaláciu MATLAB a všetky externé šifrovacie nástroje aktualizované najnovšími bezpečnostnými opravami.
Nezabudnite zvoliť metódu, ktorá najlepšie vyvažuje vaše bezpečnostné potreby so zložitosťou implementácie a nákladov. Ak sa zaoberáte skutočne citlivými údajmi, poraďte sa s odborníkom na bezpečnosť. Rada tu poskytuje východiskový bod, ale bezpečnosť je zložitá a vyvíjajúca sa oblasť.