Compare commits
26 Commits
master
..
f92cf0c343
| Author | SHA1 | Date | |
|---|---|---|---|
| f92cf0c343 | |||
| c2bbd1795d | |||
| ae70d14a3e | |||
| 85cfc60d48 | |||
| 19017cfbb1 | |||
| ba3caa5bcf | |||
| 1b2e77d610 | |||
| cd21983232 | |||
| 7ecfcb6a6c | |||
| 4c81a3b3cb | |||
| 1a444120e0 | |||
| 979dff793d | |||
| 6c5a00b18d | |||
| e13dbe316b | |||
| 1c73f70782 | |||
| 498b078199 | |||
| 611ace277a | |||
| 6915e520f3 | |||
| 162270d5db | |||
| 790d22a6bc | |||
| f11c7c82b6 | |||
| 3b5ce34285 | |||
| 2738c7daa9 | |||
| 7435e1a5c4 | |||
| a1c8976817 | |||
| 2a9ef0820c |
@@ -7,14 +7,10 @@ help: ## Print the help message
|
|||||||
# Search should not include slides separated by '***', as those are for mdp, not pandoc.
|
# Search should not include slides separated by '***', as those are for mdp, not pandoc.
|
||||||
markdown != find slides/ -maxdepth 2 -type f -name "*.md" -exec grep -LF '***' '{}' ';'
|
markdown != find slides/ -maxdepth 2 -type f -name "*.md" -exec grep -LF '***' '{}' ';'
|
||||||
pdfs = $(patsubst %.md, %.pdf, $(markdown))
|
pdfs = $(patsubst %.md, %.pdf, $(markdown))
|
||||||
handouts = $(patsubst %.md, %_handout.pdf, $(markdown))
|
|
||||||
|
|
||||||
$(pdfs): %.pdf: %.md
|
$(pdfs): %.pdf: %.md
|
||||||
pandoc -t beamer -V theme:Warsaw -i $< -o $@
|
pandoc -t beamer -V theme:Warsaw -i $< -o $@
|
||||||
|
|
||||||
$(handouts): %_handout.pdf: %.md
|
|
||||||
pandoc -t beamer -V handout -V theme:Warsaw -i $< -o $@
|
|
||||||
|
|
||||||
.PHONY: pdfs
|
.PHONY: pdfs
|
||||||
pdfs: $(pdfs) ## Generate all pdfs (try `make -j pdfs`)
|
pdfs: $(pdfs) ## Generate all pdfs (try `make -j pdfs`)
|
||||||
|
|
||||||
|
|||||||
@@ -1,40 +0,0 @@
|
|||||||
## init
|
|
||||||
|
|
||||||
```sh
|
|
||||||
go mod tidy
|
|
||||||
go mod init hello
|
|
||||||
```
|
|
||||||
|
|
||||||
## Build
|
|
||||||
|
|
||||||
```sh
|
|
||||||
go build .
|
|
||||||
go tool dist list ## list arch
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
## Types
|
|
||||||
|
|
||||||
int32,ing64,
|
|
||||||
int -> depends on arch
|
|
||||||
rune -> utf char
|
|
||||||
string -> array of runes
|
|
||||||
|
|
||||||
|
|
||||||
### Other
|
|
||||||
|
|
||||||
```sh
|
|
||||||
ldd ./hello
|
|
||||||
ls -lah
|
|
||||||
strip hello
|
|
||||||
```
|
|
||||||
|
|
||||||
[online compiler](https://godbolt.org)
|
|
||||||
|
|
||||||
|
|
||||||
### Notes
|
|
||||||
|
|
||||||
- standard lib is huge
|
|
||||||
|
|
||||||
- [beginer go](https://gobyexample.com/)
|
|
||||||
- [advanced go](https://go.dev/ref/spec)
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
module hello
|
|
||||||
|
|
||||||
go 1.24.3
|
|
||||||
|
|
||||||
require github.com/radovskyb/watcher v1.0.7 // indirect
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"net/http"
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
type Point struct {
|
|
||||||
x int
|
|
||||||
y int
|
|
||||||
}
|
|
||||||
|
|
||||||
type Boja int
|
|
||||||
|
|
||||||
const (
|
|
||||||
plava = iota //asc
|
|
||||||
zuta
|
|
||||||
crvena
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
plava = iota << 1
|
|
||||||
zuta // 010
|
|
||||||
crvena // 100
|
|
||||||
)
|
|
||||||
|
|
||||||
type Vektor2d struct {
|
|
||||||
x int
|
|
||||||
y int
|
|
||||||
}
|
|
||||||
|
|
||||||
type Vektor3d struct {
|
|
||||||
x ,y, z int
|
|
||||||
}
|
|
||||||
|
|
||||||
type(p Point) D
|
|
||||||
|
|
||||||
|
|
||||||
type Vektor interface {
|
|
||||||
Duzina() float32
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
|
|
||||||
p:= Vektor2d[
|
|
||||||
x:1,
|
|
||||||
y:1
|
|
||||||
]
|
|
||||||
|
|
||||||
fmt.Println(p.)
|
|
||||||
// web server
|
|
||||||
|
|
||||||
http.HandleFunc("/", a )
|
|
||||||
http.ListenAndServe(":8080", nil)
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
func a(w http.ResponseWriter, r *http.Request){
|
|
||||||
w.Write([]byte("Hello Web"))
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
//go:build exclude
|
|
||||||
package main
|
|
||||||
|
|
||||||
import "fmt"
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
|
|
||||||
var a int
|
|
||||||
var s string = "hello world " + "!!!"
|
|
||||||
|
|
||||||
var c = 5
|
|
||||||
|
|
||||||
a = a + 1
|
|
||||||
|
|
||||||
b := 1
|
|
||||||
b := []byte(a)
|
|
||||||
c := string(b)
|
|
||||||
|
|
||||||
_ = b
|
|
||||||
_ = c
|
|
||||||
|
|
||||||
fmt.Println("Hello Wordl", "qwe")
|
|
||||||
fmt.Println(s)
|
|
||||||
|
|
||||||
{
|
|
||||||
d = d
|
|
||||||
}
|
|
||||||
|
|
||||||
d := 5
|
|
||||||
f(d)
|
|
||||||
fmt.Println(a, "1")
|
|
||||||
|
|
||||||
|
|
||||||
// std lib
|
|
||||||
a : = []byte{1,2,3,4}
|
|
||||||
fmt.Println(hex.EncodeToString(a))
|
|
||||||
|
|
||||||
crypto.MD5.New()
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
func f(str *int) {
|
|
||||||
a=1
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
//go:build exclude
|
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"net/http"
|
|
||||||
)
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
|
|
||||||
// web server
|
|
||||||
|
|
||||||
http.HandleFunc("/", a )
|
|
||||||
http.ListenAndServe(":8080", nil)
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
func a(w http.ResponseWriter, r *http.Request){
|
|
||||||
w.Write([]byte("Hello Web"))
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
module dmz
|
|
||||||
|
|
||||||
go 1.25.1
|
|
||||||
@@ -1,100 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
"html/template"
|
|
||||||
"fmt"
|
|
||||||
"net/http"
|
|
||||||
// "github.com/radovskyb/watcher"
|
|
||||||
)
|
|
||||||
|
|
||||||
func main(){
|
|
||||||
// w := watcher.New()
|
|
||||||
port := ":8080"
|
|
||||||
http.HandleFunc("/{$}", HtmlContentMiddleware(HomeHandler))
|
|
||||||
http.HandleFunc("/about", HtmlContentMiddleware(AboutHandler))
|
|
||||||
http.HandleFunc("GET /api", HtmlContentMiddleware(ApiHandler))
|
|
||||||
http.HandleFunc("POST /api", HtmlContentMiddleware(ApiHandler))
|
|
||||||
http.HandleFunc("/", NotFoundHandler)
|
|
||||||
|
|
||||||
fmt.Println("http://localhost"+port)
|
|
||||||
http.ListenAndServe(port, nil)
|
|
||||||
}
|
|
||||||
|
|
||||||
type handleFunc func(w http.ResponseWriter, r *http.Request)
|
|
||||||
|
|
||||||
func HtmlContentMiddleware(f handleFunc) handleFunc {
|
|
||||||
return func(w http.ResponseWriter, r *http.Request){
|
|
||||||
w.Header().Add("Content-Type", "text/html")
|
|
||||||
f(w,r)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
func HomeHandler(w http.ResponseWriter, r *http.Request){
|
|
||||||
|
|
||||||
// data := struct{
|
|
||||||
// Name string
|
|
||||||
// }{
|
|
||||||
// Name: "Coja",
|
|
||||||
// }
|
|
||||||
|
|
||||||
temp := template.New("home")
|
|
||||||
temp.Parse(baseTemplate)
|
|
||||||
temp.Execute(w,messages)
|
|
||||||
|
|
||||||
// home := "<html><body><i>Hello world</i></body></html>"
|
|
||||||
// w.Header().Add("Content-Type", "text/html")
|
|
||||||
|
|
||||||
w.Write(temp)
|
|
||||||
}
|
|
||||||
|
|
||||||
func AboutHandler(w http.ResponseWriter, r *http.Request){
|
|
||||||
// w.Header().Add("Content-Type", "text/html")
|
|
||||||
w.Write([]byte("about"))
|
|
||||||
}
|
|
||||||
|
|
||||||
func NotFoundHandler(w http.ResponseWriter, r *http.Request){
|
|
||||||
// w.Header().Add("Content-Type", "text/html")
|
|
||||||
w.WriteHeader(http.StatusNotFound)
|
|
||||||
w.Write([]byte("404 Not Found"))
|
|
||||||
}
|
|
||||||
|
|
||||||
func ApiHandler(w http.ResponseWriter, r *http.Request){
|
|
||||||
w.Header().Add("Content-Type", "application/json")
|
|
||||||
w.WriteHeader(http.StatusNotFound)
|
|
||||||
// w.Write([]byte("[1,2,3]"))
|
|
||||||
var filteredMessages []Message
|
|
||||||
userParam := r.URL.Query().Get("user")
|
|
||||||
|
|
||||||
if userParam != ""{
|
|
||||||
for _ ,m:=range messages {
|
|
||||||
if userParam == m.User{
|
|
||||||
filteredMessages = append(filteredMessages, m)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else{
|
|
||||||
filteredMessages = messages
|
|
||||||
}
|
|
||||||
json.NewEncoder(w).Encode(filteredMessages)
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewMessageHandler(w http.ResponseWriter, r *http.Request){
|
|
||||||
|
|
||||||
var message Message
|
|
||||||
|
|
||||||
err := json.NewDecoder(r.Body).Decode(&message)
|
|
||||||
userParam := r.URL.Query().Get("user")
|
|
||||||
|
|
||||||
if err != nil{
|
|
||||||
w.WriteHeader(http.StatusBadRequest)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if userParam != ""{
|
|
||||||
w.WriteHeader(http.StatusBadRequest)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// messages.append(messages, message)
|
|
||||||
}
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
type Message struct {
|
|
||||||
Content string
|
|
||||||
User string
|
|
||||||
}
|
|
||||||
|
|
||||||
var messages []Message = []Message {
|
|
||||||
{
|
|
||||||
Content: "hi",
|
|
||||||
User: "dmz",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Content: "hello",
|
|
||||||
User: "admin",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Content: "sup?",
|
|
||||||
User: "dmz",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
Content: "s3nd nud3s",
|
|
||||||
User: "admin",
|
|
||||||
},
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
var baseTemplate =`
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Home</title>
|
|
||||||
<style>
|
|
||||||
p {
|
|
||||||
background-color: #f4f4f4;
|
|
||||||
border-radius: 5px;
|
|
||||||
}
|
|
||||||
</syle>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
{{range .}}
|
|
||||||
<p>{{.Content}} {{.Name}}</p>
|
|
||||||
{{end}}
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
`
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
.PHONY: build run
|
|
||||||
|
|
||||||
build:
|
|
||||||
presenterm privacy-presenterm.md -e
|
|
||||||
|
|
||||||
run:
|
|
||||||
presenterm privacy-presenterm.md
|
|
||||||
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
Next sunday, on [date], we will have a lecture about Digital privacy and security in Serbia, hosted by local activists from Decentrala, a hackerspace with expertise in such local issues. This will be a great opportunity for anyone who moved to Serbia to learn about the local survailance, laws and ways to defend yourselves. This talk can be exceptionally usefull to any activists or anyone worried about their digital security.
|
|
||||||
Lecture will start at [time] and later we will have a Q&A session to address all of your concerns.
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
Title: Digital privacy and security in Serbia
|
|
||||||
|
|
||||||
Lecturers: fram3d and coja form Decentrala
|
|
||||||
|
|
||||||
Descrition: We will analyze the current state of digital privacy in Serbia and the relationship between the government and private sector in the survaliance industry. This talk will go over best tools and practices for personal and collective information security as of 2026 to get the audiance prepared as possible for the constantly growing treat in this area from both government and private actors.
|
|
||||||
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 152 KiB |
|
Before Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 233 KiB |
|
Before Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 92 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 341 KiB |
|
Before Width: | Height: | Size: 84 KiB |
|
Before Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 84 KiB |
|
Before Width: | Height: | Size: 617 KiB |
@@ -1,172 +0,0 @@
|
|||||||
---
|
|
||||||
title: Digital Privacy
|
|
||||||
author: Decentrala
|
|
||||||
theme:
|
|
||||||
terminal_font_size: 28
|
|
||||||
margin:
|
|
||||||
percent: 8
|
|
||||||
override:
|
|
||||||
footer:
|
|
||||||
style: template
|
|
||||||
center: '**Digital Privacy** | decentrala.org'
|
|
||||||
right: "{current_slide} / {total_slides}"
|
|
||||||
height: 1
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<!-- alignment: center -->
|
|
||||||
# 1. Introduction
|
|
||||||
|
|
||||||
- dmz.rs
|
|
||||||
- xecut
|
|
||||||
- talks and workshops
|
|
||||||
- services (forum, xmpp)
|
|
||||||
- direct democracy
|
|
||||||
|
|
||||||
<!-- end_slide -->
|
|
||||||
<!-- alignment: center -->
|
|
||||||
# 2. Police
|
|
||||||
|
|
||||||
- SIM cards need ID now
|
|
||||||
- VTK
|
|
||||||
- Relationship with social media companies
|
|
||||||
- Hard to enforce without your cooperation
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
<!-- end_slide -->
|
|
||||||
<!-- alignment: center -->
|
|
||||||
# 3. Survaliance infrastruture
|
|
||||||
|
|
||||||
- Cameras (Goverment, public transport, private)
|
|
||||||
- Mobile Towers
|
|
||||||
- Spy vans
|
|
||||||
- Facial recognition
|
|
||||||
- Data collection
|
|
||||||
- Data trading
|
|
||||||
|
|
||||||

|
|
||||||
<!-- end_slide -->
|
|
||||||
<!-- alignment: center -->
|
|
||||||
# 4. Comunication Apps
|
|
||||||
|
|
||||||
- Viber, Whatsup
|
|
||||||
- Telegram, Signal
|
|
||||||
All need phone numbers!
|
|
||||||
|
|
||||||
- XMPP (Conversations, Gajim,..)
|
|
||||||
- Matrix, Briar, Jami,..
|
|
||||||
|
|
||||||
<!-- end_slide -->
|
|
||||||
<!-- alignment: center -->
|
|
||||||
# 5. Digital safeguard
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
- Privacy vs. Anonymity
|
|
||||||
- Digital fingerprinting
|
|
||||||
- Profiling
|
|
||||||
- Digital clone
|
|
||||||
|
|
||||||
<!-- end_slide -->
|
|
||||||
<!-- alignment: center -->
|
|
||||||
## 5.1. PC
|
|
||||||
|
|
||||||
- MacOS
|
|
||||||
- Windows
|
|
||||||
- Linux (Mint, CachyOS, Debian)
|
|
||||||
|
|
||||||

|
|
||||||
<!-- end_slide -->
|
|
||||||
<!-- alignment: center -->
|
|
||||||
## 5.2. Sugested practices
|
|
||||||
|
|
||||||
- Block adds
|
|
||||||
- uOriginBlock
|
|
||||||
- Network block (piHole, Adguard,..)
|
|
||||||
- Privacy browsers
|
|
||||||
- Firefox forks like Librewolf
|
|
||||||
- Ungoogled chromium
|
|
||||||
- Tor
|
|
||||||
- Alternative search engine
|
|
||||||
- DuckDuckGo
|
|
||||||
- SearXNG
|
|
||||||
- many more
|
|
||||||
- Avoid [big tech] companies
|
|
||||||
- Fediverse alternatives
|
|
||||||
- Alternative clients
|
|
||||||
- Avoid auth
|
|
||||||
- Beware of LLMs
|
|
||||||
- Self-hosting
|
|
||||||
|
|
||||||
<!-- end_slide -->
|
|
||||||
<!-- alignment: center -->
|
|
||||||
## 5.3. Mobile
|
|
||||||
|
|
||||||
- iOS
|
|
||||||
- Android
|
|
||||||
- CustomROM
|
|
||||||
- Linux
|
|
||||||
|
|
||||||
<!-- end_slide -->
|
|
||||||
<!-- alignment: center -->
|
|
||||||
## 5.4. Degoogling
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
- Hunt for free and open source alternatives
|
|
||||||
- Aurora store
|
|
||||||
- Obtanium
|
|
||||||
- F-Droid
|
|
||||||
- Reviewed and flagged with antifeatures
|
|
||||||
- EU is opting out
|
|
||||||
|
|
||||||
<!-- end_slide -->
|
|
||||||
<!-- alignment: center -->
|
|
||||||
## 5.5. CustomROM
|
|
||||||
|
|
||||||
- Google blocking the sideloading
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
- AOSP
|
|
||||||
- Unlock the bootloader
|
|
||||||
- LinageOS and forks
|
|
||||||
- GrapheneOS (soon Motorola)
|
|
||||||
- A lot more, depends on model
|
|
||||||
- Linux phone (PostmakertOS, Droidian,...)
|
|
||||||
|
|
||||||
<!-- end_slide -->
|
|
||||||
<!-- alignment: center -->
|
|
||||||
# 6. Networks
|
|
||||||
|
|
||||||
- Speed vs Privacy
|
|
||||||
- Logging all conetections: (ISPs, Servers)
|
|
||||||
- Law will not let you be anonymous
|
|
||||||
- Connection to the Internet
|
|
||||||
|
|
||||||
<!-- end_slide -->
|
|
||||||
<!-- alignment: center -->
|
|
||||||
# 6.1. Server vs P2P
|
|
||||||

|
|
||||||
|
|
||||||
<!-- end_slide -->
|
|
||||||
<!-- alignment: center -->
|
|
||||||
# 6.2 Torrent
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
<!-- end_slide -->
|
|
||||||
<!-- alignment: center -->
|
|
||||||
# 6.3 ISP and VPNs
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
<!-- end_slide -->
|
|
||||||
<!-- alignment: center -->
|
|
||||||
# 6.4 Tor and I2P
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
# DIGITAL PRIVACY
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
# Introduction
|
|
||||||
|
|
||||||
- dmz.rs
|
|
||||||
- xecut
|
|
||||||
- talks and workshops
|
|
||||||
- direct democracy
|
|
||||||
|
|
||||||
|
|
||||||
# Police
|
|
||||||
|
|
||||||
- SIM cards need ID now
|
|
||||||
- VTK
|
|
||||||
- Relationship with social media companies
|
|
||||||
- Hard to enforce without your cooperation
|
|
||||||
|
|
||||||
# Survaliance infrastruture
|
|
||||||
|
|
||||||
- Cameras (Goverment, public transport, private)
|
|
||||||
- Mobile Towers
|
|
||||||
- Spy vans
|
|
||||||
|
|
||||||
# Apps
|
|
||||||
|
|
||||||
- Viber, Whatsup
|
|
||||||
- Telegram, Signal
|
|
||||||
- All need phone numbers!
|
|
||||||
- Conversations
|
|
||||||
|
|
||||||
|
|
||||||
# Systems
|
|
||||||
|
|
||||||
- Andorid
|
|
||||||
- IOS
|
|
||||||
- Windows
|
|
||||||
- MacOS
|
|
||||||
- Linux
|
|
||||||
|
|
||||||
# Networks
|
|
||||||
|
|
||||||
- Server vs P2P
|
|
||||||
- Torrent
|
|
||||||
- ISP and VPNs
|
|
||||||
- Tor and I2P
|
|
||||||