Recentemente ho usato pip
per installare pacchetti all'interno di una rete pubblica senza pensarci:
pip install packetname
e mi chiedevo se pip eseguisse una sorta di verifica tramite hashing o PGP.
Recentemente ho usato pip
per installare pacchetti all'interno di una rete pubblica senza pensarci:
pip install packetname
e mi chiedevo se pip eseguisse una sorta di verifica tramite hashing o PGP.
Oltre all'aspetto di sicurezza basato su SSL, quando si installa da PyPI pip
ha un Meccanismo di controllo basato su MD5 (anche se l'algoritmo di hashing può essere modificato), progettato per impedire / controllare le corruzioni del download e non essere realmente una guardia di sicurezza:
PyPI provides an MD5 hash in the fragment portion of each package download URL, like #md5=123..., which pip checks as a protection against download corruption. Other hash algorithms that have guaranteed support from hashlib are also supported here: sha1, sha224, sha384, sha256, and sha512. Since this hash originates remotely, it is not a useful guard against tampering and thus does not satisfy the --require-hashes demand that every package have a local hash.
Tuttavia, pip
può funzionare anche nella modalità di controllo hash (che non è abilitato per impostazione predefinita), che consente di convalidare gli hash locali per ciascuno dei pacchetti installati:
Since version 8.0, pip can check downloaded package archives against local hashes to protect against remote tampering.
Guarda anche questo thread pertinente:
pip usa https come protocollo di trasferimento a meno che tu non elimini consapevolmente questo. Questo include già alcune verifiche (il pacchetto proviene da una fonte attendibile e viene trasferito in forma crittografata e decifrato solo sul computer di destinazione).
Non sono sicuro dei meccanismi di verifica aggiuntivi incorporati in pip; ma probabilmente lo sono.