|
1 | 1 | #lang notes |
2 | 2 |
|
| 3 | +@block{@block-name{auth: channel-a & channel-b} |
| 4 | + channel-a: Add dependency on channel-b |
| 5 | + |
| 6 | + badkid=$(gpg --list-keys --keyid-format LONG --with-colons Bad | awk -F: '/^pub:/ { print $5 }') |
| 7 | + # gpg --armor --export 'Bad Guy' > attacker-in-channel-b-$badkid.key |
| 8 | + baduid=$(gpg --list-keys --with-colons $badkid | awk -F: '/^uid:/ { print $10 }') |
| 9 | + badfip=$(gpg --fingerprint $badkid | sed -n '2p' | sed 's/^[[:space:]]*//') |
| 10 | + badname=$(echo "$baduid" | cut -d '<' -f1 | xargs) |
| 11 | + bademail=$(echo "$baduid" | cut -d '<' -f2 | cut -d '>' -f1) |
| 12 | + |
| 13 | + GIT_COMMITTER_NAME="$badname" |
| 14 | + GIT_COMMITTER_EMAIL="$bademail" |
| 15 | + |
| 16 | + echo "GIT_COMMITTER_NAME : $GIT_COMMITTER_NAME" |
| 17 | + echo "GIT_COMMITTER_EMAIL : $GIT_COMMITTER_EMAIL" |
| 18 | + |
| 19 | + |
| 20 | + GIT_AUTHOR_NAME="$badname" \ |
| 21 | + GIT_AUTHOR_EMAIL="$bademail" \ |
| 22 | + GIT_COMMITTER_NAME="$badname" \ |
| 23 | + GIT_COMMITTER_EMAIL="$bademail" \ |
| 24 | + git commit -S$badkid -m "channel-b: Add attacker-in-channel-b to .guix-authorizations" |
| 25 | + |
| 26 | + echo "Bad content in channel-b" > bad-in-channel-b.txt ─╯ |
| 27 | + git add bad-in-channel-b.txt ─╯ |
| 28 | + |
| 29 | + |
| 30 | + GIT_AUTHOR_NAME="$badname" \ |
| 31 | + GIT_AUTHOR_EMAIL="$bademail" \ |
| 32 | + GIT_COMMITTER_NAME="$badname" \ |
| 33 | + GIT_COMMITTER_EMAIL="$bademail" \ |
| 34 | + git commit -S$badkid -m "channel-b: Bad commit" |
| 35 | + |
| 36 | + GIT_AUTHOR_NAME="$badname" \ |
| 37 | + GIT_AUTHOR_EMAIL="$bademail" \ |
| 38 | + GIT_COMMITTER_NAME="$badname" \ |
| 39 | + GIT_COMMITTER_EMAIL="$bademail" \ |
| 40 | + git commit -S$badkid -m "channel-b: [tampered] Create channel-b with .guix-authorizations" |
| 41 | + |
| 42 | + ❯ git co keyring ─╯ |
| 43 | + ❯ git reset --hard keyring-hack ─╯ |
| 44 | + ❯ git co master ─╯ |
| 45 | + ❯ git reset --hard master-hack ─╯ |
| 46 | + |
| 47 | + GIT_AUTHOR_NAME="$badname" \ |
| 48 | + GIT_AUTHOR_EMAIL="$bademail" \ |
| 49 | + GIT_COMMITTER_NAME="$badname" \ |
| 50 | + GIT_COMMITTER_EMAIL="$bademail" \ |
| 51 | + git rebase --interactive master-good master-hack-2 |
| 52 | + |
| 53 | + GIT_AUTHOR_NAME="$badname" \ |
| 54 | + GIT_AUTHOR_EMAIL="$bademail" \ |
| 55 | + GIT_COMMITTER_NAME="$badname" \ |
| 56 | + GIT_COMMITTER_EMAIL="$bademail" \ |
| 57 | + git rebase --interactive f96cb26 master-hack-2 |
| 58 | + |
| 59 | + ("045D D405 56B6 C4D4 ED93 7053 A740 61D5 6CFE 8E89" |
| 60 | + name "attacker-in-channel-b") |
| 61 | +} |
| 62 | + |
3 | 63 | @block{@block-name{Git} |
4 | 64 | # When git submodule shows |
5 | 65 | # fatal: No url found for submodule path '...' in .gitmodules |
|
0 commit comments