Kali Linux Revealed




Download 11,68 Mb.
Pdf ko'rish
bet123/174
Sana15.01.2024
Hajmi11,68 Mb.
#137314
1   ...   119   120   121   122   123   124   125   126   ...   174
Bog'liq
Kali-Linux-Revealed-2021-edition

Using Proprietary i386
Binaries on amd64
There are multiple use cases for multi-arch, but the most popular one is the possibility
to execute 32-bit binaries (i386) on 64-bit systems (amd64), in particular since several
popular proprietary applications (like Skype) are only provided in 32-bit versions.
Multi-Arch Related Changes
To make multi-arch actually useful and usable, libraries had to be repackaged and moved to an
architecture-specific directory so that multiple copies (targeting different architectures) can be
installed alongside one another. Such updated packages contain the Multi-Arch: same header field
to tell the packaging system that the various architectures of the package can be safely co-installed
(and that those packages can only satisfy dependencies of packages of the same architecture).
dpkg -s libwine
dpkg-query: error: --status needs a valid package name but ’libwine’ is not: ambiguous
å
package name ’libwine’ with more than one installed instance
Use --help for help about querying packages.
dpkg -s libwine:amd64 libwine:i386 | grep ^Multi
Multi-Arch: same
Multi-Arch: same
dpkg -L libgcc1:amd64 | grep .so
[...]
/usr/lib/x86_64-linux-gnu/wine/libwine.so.1
dpkg -S /usr/share/doc/libwine/copyright
libwine:amd64, libwine:i386: /usr/share/doc/libwine/copyright
It is worth noting that Multi-Arch: same packages must have their names qualified with their
architecture to be unambiguously identifiable. These packages may also share files with other
207
Chapter 8 — Debian Package Management


instances of the same package;
dpkg
ensures that all packages have bit-for-bit identical files when
they are shared. Also, all instances of a package must have the same version, therefore they must
be upgraded together.
Multi-Arch support also brings some interesting challenges in the way dependencies are handled.
Satisfying a dependency requires either a package marked Multi-Arch: foreign or a package whose
architecture matches the one of the package declaring the dependency (in this dependency res-
olution process, architecture-independent packages are assumed to be of the same architecture
as the host). A dependency can also be weakened to allow any architecture to fulfill it, with the
package
:any syntax, but foreign packages can only satisfy such a dependency if they are marked
Multi-Arch: allowed.
8.3.6. Validating Package Authenticity
System upgrades are very sensitive operations and you really want to ensure that you only install
official packages from the Kali repositories. If the Kali mirror you are using has been compro-
mised, a computer cracker could try to add malicious code to an otherwise legitimate package.
Such a package, if installed, could do anything the cracker designed it to do including disclose
passwords or confidential information. To circumvent this risk, Kali provides a tamper-proof seal
to guarantee—at install time—that a package really comes from its official maintainer and hasn’t
been modified by a third party.
The seal works with a chain of cryptographic hashes and a signature. The signed file is the
Release
file, provided by the Kali mirrors. It contains a list of the
Packages
files (including their com-
pressed forms,
Packages.gz
and
Packages.xz
, and the incremental versions), along with their
MD5, SHA1, and SHA256 hashes, which ensures that the files haven’t been tampered with. These
Packages
files contain a list of the Debian packages available on the mirror along with their hashes,
which ensures in turn that the contents of the packages themselves haven’t been altered either.
The trusted keys are managed with the
apt-key
command found in the apt package. This program
maintains a keyring of GnuPG public keys, which are used to verify signatures in the
Release.gpg
files available on the mirrors. It can be used to add new keys manually (when non-official mirrors
are needed). Generally however, only the official Kali keys are needed. These keys are automati-
cally kept up-to-date by the kali-archive-keyring package (which puts the corresponding keyrings
in
/etc/apt/trusted.gpg.d
). However, the first installation of this particular package requires
caution: even if the package is signed like any other, the signature cannot be verified externally.
Cautious administrators should therefore check the fingerprints of imported keys before trusting
them to install new packages:
apt-key fingerprint
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
/etc/apt/trusted.gpg.d/debian-archive-buster-automatic.gpg
----------------------------------------------------------
pub
rsa4096 2019-04-14 [SC] [expires: 2027-04-12]
80D1 5823 B7FD 1561 F9F7
BCDD DC30 D7C2 3CBB ABEE
uid
[ unknown] Debian Archive Automatic Signing Key (10/buster) 
208
Kali Linux Revealed


sub
rsa4096 2019-04-14 [S] [expires: 2027-04-12]
/etc/apt/trusted.gpg.d/debian-archive-buster-security-automatic.gpg
-------------------------------------------------------------------
pub
rsa4096 2019-04-14 [SC] [expires: 2027-04-12]
5E61 B217 265D A980 7A23
C5FF 4DFA B270 CAA9 6DFA
uid
[ unknown] Debian Security Archive Automatic Signing Key (10/buster) 
sub
rsa4096 2019-04-14 [S] [expires: 2027-04-12]
/etc/apt/trusted.gpg.d/debian-archive-buster-stable.gpg
-------------------------------------------------------
pub
rsa4096 2019-02-05 [SC] [expires: 2027-02-03]
6D33 866E DD8F FA41 C014
3AED DCC9 EFBF 77E1 1517
uid
[ unknown] Debian Stable Release Key (10/buster) 
/etc/apt/trusted.gpg.d/debian-archive-jessie-automatic.gpg
----------------------------------------------------------
pub
rsa4096 2014-11-21 [SC] [expires: 2022-11-19]
126C 0D24 BD8A 2942 CC7D
F8AC 7638 D044 2B90 D010
uid
[ unknown] Debian Archive Automatic Signing Key (8/jessie) 
/etc/apt/trusted.gpg.d/debian-archive-jessie-security-automatic.gpg
-------------------------------------------------------------------
pub
rsa4096 2014-11-21 [SC] [expires: 2022-11-19]
D211 6914 1CEC D440 F2EB
8DDA 9D6D 8F6B C857 C906
uid
[ unknown] Debian Security Archive Automatic Signing Key (8/jessie) 
/etc/apt/trusted.gpg.d/debian-archive-jessie-stable.gpg
-------------------------------------------------------
pub
rsa4096 2013-08-17 [SC] [expires: 2021-08-15]
75DD C3C4 A499 F1A1 8CB5
F3C8 CBF8 D6FD 518E 17E1
uid
[ unknown] Jessie Stable Release Key 
/etc/apt/trusted.gpg.d/debian-archive-stretch-automatic.gpg
-----------------------------------------------------------
pub
rsa4096 2017-05-22 [SC] [expires: 2025-05-20]
E1CF 20DD FFE4 B89E 8026
58F1 E0B1 1894 F66A EC98
uid
[ unknown] Debian Archive Automatic Signing Key (9/stretch) 
sub
rsa4096 2017-05-22 [S] [expires: 2025-05-20]
/etc/apt/trusted.gpg.d/debian-archive-stretch-security-automatic.gpg
--------------------------------------------------------------------
pub
rsa4096 2017-05-22 [SC] [expires: 2025-05-20]
6ED6 F5CB 5FA6 FB2F 460A
E88E EDA0 D238 8AE2 2BA9
uid
[ unknown] Debian Security Archive Automatic Signing Key (9/stretch) 
sub
rsa4096 2017-05-22 [S] [expires: 2025-05-20]
/etc/apt/trusted.gpg.d/debian-archive-stretch-stable.gpg
--------------------------------------------------------
pub
rsa4096 2017-05-20 [SC] [expires: 2025-05-18]
067E 3C45 6BAE 240A CEE8
8F6F EF0F 382A 1A7B 6500
uid
[ unknown] Debian Stable Release Key (9/stretch) 
/etc/apt/trusted.gpg.d/kali-archive-keyring.gpg
-----------------------------------------------
pub
rsa4096 2012-03-05 [SC] [expires: 2023-01-16]
44C6 513A 8E4F B3D3 0875
F758 ED44 4FF0 7D8D 0BF6
uid
[ unknown] Kali Linux Repository 
sub
rsa4096 2012-03-05 [E] [expires: 2023-01-16]
When a third-party package source is added to the
sources.list
file, APT needs to be told to
trust the corresponding GPG authentication key (otherwise it will keep complaining that it can’t
ensure the authenticity of the packages coming from that repository). The first step is of course
209
Chapter 8 — Debian Package Management


to get the public key. More often than not, the key will be provided as a small text file, which we
will call
key.asc
in the following examples.
To add the key to the trusted keyring, the administrator can run
apt-key add < key.asc
. An-
other way is to use the
synaptic
graphical interface: its Authentication tab in the Settings
→ Repositories menu provides the ability to import a key from the
key.asc
file.
For people who prefer a dedicated application and more details on the trusted keys, it is possible to
use
gui-apt-key
(in the package of the same name), a small graphical user interface that manages
the trusted keyring.
Once the appropriate keys are in the keyring, APT will check the signatures before any risky op-
eration, so that front-ends will display a warning if asked to install a package whose authenticity
can’t be ascertained.

Download 11,68 Mb.
1   ...   119   120   121   122   123   124   125   126   ...   174




Download 11,68 Mb.
Pdf ko'rish