Tuesday, December 18, 2018

gitlab some tips


  • Working with non default ssh key pairs path
    • If you use non default file path for your Gitlab key pairs, you must configure your ssh client to find your gitlab private ssh key for connections to gitlab. Open terminate and enter
$eval($ssh-agent -s)
$ssh-add /path/to/another_id_rsa
    •  To retain these settings, you need to save them to configuration file. For openssh client this is configured in the ~/.ssh/config file
Host gitlab.com
    Preferredauthentications publickey 
    IdentityFile ~/.ssh/example_com_rsa 
  • Switching remote URLs from https to git: 
    • open terminal
git remote set-url https://gitlab.com gitlab@gitlab.com:USERNAME/REPOSITORY
    • Verify  remote URL has changed
git remote -v


Thursday, June 28, 2018

About Secure Password Hashing

An often overlooked and misunderstood concept in application development is the one involving secure hashing of passwords. We have evolved from plain text password storage, to hashing a password, to appending salts and now even this is not considered adequate anymore. In this post I will discuss what hashing is, what salts and peppers are and which algorithms are to be used and which are to be avoided.

Hashing

Hashing is a type of algorithm which takes any size of data and turns it into a fixed-length of data. This is often used to ease the retrieval of data as you can shorten large amounts of data to a shorter string (which is easier to compare). For instance let’s say you have a DNA sample of a person, this would consist of a large amount of data (about 2.2 – 3.5 MB), and you would like to find out to who this DNA sample belongs to. You could take all samples and compare 2.2 MB of data to all DNA samples in the database, but comparing 2.2 MB against 2.2 MB of data cant take quite a while, especially when you need to traverse thousands of samples. This is where hashing can come in handy, instead of comparing the data, you calculate the hash of this data (in reality, several hashes will be calculated for the different locations on the chromosomes, but for the sake of the example let’s assume it’s one hash), which will return a fixed length value of, for instance, 128 bits. It will be easier and faster to query a database for 128-bits than for 2.2 MB of data.
The main difference between hashing and encryption is that a hash is not reversible. When we are talking about cryptographic hash functions, we are referring to hash functions which have these properties:
  • It is easy to compute the hash value for any given message.
  • It is infeasible to generate a message that has a given hash.
  • It is infeasible to modify a message without changing the hash.
  • It is infeasible to find two different messages with the same hash.
The hash function should be resistant against these properties:
  • Collisions (two different messages generating the same hash)
  • Pre-image resistance: Given a hash h it should be difficult to find any message m such that h = hash(m).
  • Resistance to second-preimages: given m, it is infeasible to find m’ distinct from m and such that MD-5(m) = MD-5(m’).

Modern Hashing Algorithms

Some hashing algorithms you may encounter are:
  • MD-5
  • SHA-1
  • SHA-2
  • SHA-3

MD-5

MD-5 is a hashing algorithm which is still widely used but cryptographically flawed as it’s prone to collisions. MD-5 is broken in regard to collisions, but not in regard of preimages or second-preimages. The first attacks on MD-5 were published in 1996, this was in fact an attack on the compression of MD-5 rather than MD-5 itself. In 2004 a theoretical attack was produced which allowed for weakening the pre-image resistance property of MD-5. In practice the attack is way too slow to be useful.

SHA

SHA or Secure Hashing Algorithm is a family of cryptographic hash functions published by the National Institute of Standards and Technology (NIST) as a U.S. Federal Information Processing Standard (FIPS). Currently three algorithms are defined:
  • SHA-1: A 160-bit hash function which resembles the earlier MD-5 algorithm. This was designed by the National Security Agency (NSA) to be part of the Digital Signature Algorithm. Cryptographic weaknesses were discovered in SHA-1, and the standard was no longer approved for most cryptographic uses after 2010.
  • SHA-2: A family of two similar hash functions, with different block sizes, known as SHA-256 and SHA-512. They differ in the word size; SHA-256 uses 32-bit words where SHA-512 uses 64-bit words. There are also truncated versions of each standardized, known as SHA-224 and SHA-384. These were also designed by the NSA.
  • SHA-3: SHA-3 is not yet defined. NIST is working on the exact parameters they will use; SHA-3 will be Keccak, or “close enough”, but not necessarily the Keccak which was submitted (it is a configurable function, and they seem to want to tweak the parameters a bit differently than what was first proposed).
Note that while SHA-1 is “cryptographically broken” the properties we seek in a password hashing algorithm are still valid. In the real world finding a password hashing algorithm built on SHA-1 is still secure in the sense, that if it’s implemented there is no reason to assume it should be immediately changed to something newer.

Strong passwords

Apart from choosing a good hashing algorithm you should also force your users to choose a password which is built up of at least eight, random characters. Unfortunately people aren’t designed to remember and generate random sequences of characters. This is why we force our users to make passwords which contain numbers, letters, signs and at least one capital letter. But how does this help in regard to password hashing?
To attack hashed passwords there are different strategies:
  • Dictionary Attacks
  • Bruteforce
  • Rainbow Tables (generate everything upfront in a database and do a look up for each hash)
With a dictionary attack you will try to use word lists, these can consist of mostly used passwords, words, names, years, etc. For each word you will run the hashing algorithm and see if the generated hash is the same as the hash in the database. If this is the case then you know that the word from which you derived the hash is the password.
With a bruteforce attack you will try all possible combinations of characters. When using passwords of at least eight characters long, only using the ASCII characters set, there are 128^8 possibilities of passwords.
To show the importance of the length of a password:
These days, using a single, modern GPU, you can process about 10.323.000.000 passwords per second when bruteforcing plain MD-5. With this speed, when using a password of eight random characters, it will take about eighty days to generate every single possibility. This single GPU only costs about 500 USD (AMD Radeon 6990). People have actually constructed clusters which contain 25 of these cards, optimized it and managed to generate 350 billion passwords per second. This means they can generate all possible passwords of eight random characters long in less than two days.
Now when you add one character to the password, the possibilities will be 128^9. With previous calculation of 350 billion it will now take 305 days. 10 characters -> 106 years. This seems long, but we need to take into account Moore’s law:
Moore’s law is the observation that, over the history of computing hardware, the number of transistors on integrated circuits doubles approximately every two years. The period often quoted as “18 months” is due to Intel executive David House, who predicted that period for a doubling in chip performance (being a combination of the effect of more transistors and their being faster).
Computers have become faster and faster over the years, which is something we need to take into account. From a cryptographical point of view, 106 years is still a short period. We want infinity (something which will take several hundred-thousand to millions of years).

Hashing Passwords

Why do we hash passwords?

We hash passwords because in the event an attacker gets read access to our database, we do not want him to retrieve the passwords plain text. Remember often we store usernames, email addresses and other personal information in our database. Security rule #1 dictates that users need to be protected from themselves. We can make them aware of the risks, we can tell them not to re-use passwords, but we all know that in the end there will still be people who use the same password for their Facebook, Gmail, Linkedin and corporate email. What you do not want is that when the attacker gets his hand on your database, he immediately has access to all the above accounts (usernames/email addresses will be the same).
Hashing passwords is to prevent this from happening, when the attacker gets his hands on your database, you want to make it as painful as possible to retrieve those passwords using a brute-force attack. Hashing passwords will not make your site any more secure, but it will perform damage containment in the event of a breach.

Properties

Now that you have a small overview of hashing algorithms let’s dive into password hashing. Password hashing requires the following properties:
  • Have a unique salt per password (salt may only be used once across the database containing all password hashes) to prevent a bruteforce attack of compromising the data in one run
  • Fast on software (executing the function once must be relatively fast)
  • Slow on hardware (executing the function concurrently should be slow, this to prevent brute forcing on distributed systems)

Salt and Pepper

A salt is a non-secret, unique value in the database which is appended (depending on the used algorithm) to the password before it gets hashed. Note that the only requirement of a salt should be that it is unique in the database, which means that random generation does not need to be cryptographically random. A salt is used to prevent Rainbow Table lookups (an attack where you calculate a table of hashes for passwords).
It should be noted that you should never use any user supplied information as salt. This to prevent that two databases (of another application for example) would return the same hash for a given password+salt. Also when bruteforcing, you can’t generate all possibilities in one run, you will need to run the bruteforce for each password taking the salt into account. This means that instead of being able to break all passwords in 2 days (as mentioned in previous paragraph), you will need to run the bruteforce process for each password taking into account the specific salt for that password. So this means it will take 2 days for every hash (1 day if you take probability into account) rather than 2 days for the complete database. It will also prevent people from using Rainbow Tables, as the table would need to be generated, per password, based on the salt. This is why salts are so important and why they should be unique for a database!
A pepper is a secret value (a key) which is used to turn the hash into a HMAC (The pepper does not necessarily mean HMAC. The pepper is best described as a secret key which turns the hash function into a MAC. There are good and bad ways to do a MAC; one good way is HMAC.). A HMAC is like a hashing function, but cannot be reproduced without knowing the key. This could increase security if an attacker would only have access to the database and not to the place where the key is actually stored. The problem is that often in data compromises an attacker will at least have access to the hard disk and in some cases even the memory. If the attacker can obtain the key, then the pepper does not add any security to the hashing algorithm.

Speed

A password hashing algorithm should be slow to prevent bruteforce attacks, pereferably it should have features which actually decrease the feasibility of a distributed brute force attack on the hashes. This immediately throws out the following hashing algorithms:
  • MD-5
  • SHA-1
  • SHA-2
  • SHA-3
In their normal form all of the above hashing algorithms are actually unsuited for password hashing. They are all incredibly fast. People often think MD-5 is flawed for password hashing because of collision attacks, but this is not true, it’s because it’s an incredibly fast hashing algorithm. The same is true for SHA-3. I’ve seen people use SHA-3 for password hashing. They assume because it’s supposed to become the new standard that it’s suited for password hashing. Keccak (the name of the algorithm) was, by design, meant to be a fast hashing algorithm. This means it’s completely unsuited for password hashing in any form. So please note that not all hashing algorithms are suited for password hashing.
We can also add:
  • MD-5, SHA-1, SHA-256 (and SHA-224) use 32-bit operations, which are very fast on x86 CPU but also on ARM and, crucially, on GPU as they exist today.
  • SHA-512 (and SHA-384) use 64-bit arithmetic operations which make life harder for GPU, but also for 32-bit architectures (ARM in particular).
  • SHA-3 (Keccak) uses only boolean operations, which makes it fast everywhere but also quite faster on FPGA (no carry propagation).
So what to do now? Well you still have a few options open if you want to use the hashes from the Secure Hashing Algorithm suite. But they need to be used in a PBKDF2 implementation (and even then not every one of them is suited), which we will discuss below.

Hashing Passwords: algorithms

There are currently three algorithms which are safe to use:
  • PBKDF2
  • bcrypt
  • scrypt

PBKDF2

PBKDF2 is an algorithm which is used to derive keys. It wasn’t intended for password hashing, but due to it’s property of being slow, it lends itself quite well for this purpose. The resulting derived key (HMAC) can actually be used to securely store passwords. It’s not the ideal function for password hashing, but it’s easy to implement and it’s built upon SHA-1 or SHA-2 hashing algorithms (any HMAC will do, but these are the most common used ones and the most secure ones). Wait, didn’t you say SHA-1 and SHA-2 were bad to use when hashing passwords? Yes indeed, that’s why we use PBKDF2 to make the hashing a lot slower. You still will need to choose your hashing algorithm carefully, PBKDF2+Keccak is a substantially worse choice than PBKDF2+SHA-256, which is already somewhat worse than PBKDF2+SHA-512 if your server is a 64-bit PC.
To derive a key PBKDF2 does the following:
DK = PBKDF2(PRF, Password, Salt, c, dkLen)
Where DK is the derived key, PRF is the preferred HMAC function (this can be a SHA-1/2 HMAC, the password is used as a key for the HMAC and the salt as text), c is the amount of iterations and dkLen is the length of the derived key. A salt should, by definition of the standard, be at least 64-bits of length and the minimum amount of iterations should be 1024. What the algorithm will do is SHA-1-HMAC(password+salt), and repeat the calculation 1024 times on the result. This means the hashing of a password will be 1024 times slower. Still this does not actually offer a lot of protection when bruteforcing on distributed systems or GPU (Graphic Processing Unit).
There’s also a caveat when the password exceeds 64 bytes, the password will be shortened by applying a hash to it by the PBKDF2 algorithm so it does not exceed the block size. For instance when using HMAC-SHA-1 a password longer than 64 bytes will be reduced to SHA-1(password), which is 20 bytes in size. This means passwords longer than 64 bytes do not provide additional security when it comes to breaking the key used to make the HMAC, but may even reduce security as the length of the key will be reduced (note that even when reduced to 20 bytes, currently our great-great-great-great-great-great-great-great-great-great grand children will be long dead before the key is brute forced).

bcrypt

bcrypt is currently the defacto secure standard for password hashing. It’s derived from the Blowfish block cipher which, to generate the hash, uses look up tables which are initiated in memory. This means a certain amount of memory space needs to be used before a hash can be generated. This can be done on CPU, but when using the power of GPU it will become a lot more cumbersome due to memory restrictions. Bcrypt has been around for 14 years, based on a cipher which has been around for over 20 years. It’s been well vetted and tested and hence considered the standard for password hashing.
There is actually one weakness, FPGA processing units. When bcrypt was originally developed it’s main threat was custom ASICs specifically built to attack hash functions. These days those ASICs would be GPUs (password bruteforcing can actually still run on GPU, but not in full parallelism) which are cheap to purchase and are ideal for multithreaded processes such as password bruteforcing.
FPGAs (Field Programmable Gate Arrays) are similar to GPUs but the memory management is very different. On these chips bruteforcing bcrypt can be done more efficiently than on GPUs, but if you have a long enough password it will still be unfeasable.

scrypt

For password hashing, the current fashion is to move the problem away to another level; instead of doing a lot of hash function invocations, concentrate on an operation which is hard for anything else than a PC, e.g. random memory accesses. That’s what scrypt is about. Scrypt is another hashing algorithm which has the same properties as bcrypt, except that when you increase rounds, it exponentially increases calculation time and memory space required to generate the hash. Scrypt was created as response to evolving attacks on bcrypt and is completely unfeasable when using FPGAs or GPUs due to memory constraints. Scrypt requires the storage of a series of intermediate state data “snapshots”, which are used in further derivation operations. These snapshots, stored in memory, grow exponentially compared when rounds increase. So adding a round, will make it exponentially harder to brute force the password. Scrypt is still relatively new compared to bcrypt and has only been around for a couple of years, which makes it less vetted than bcrypt.

Conclusion and Acknowledgments

Passwords should be hashed with either PBKDF2, bcrypt or scrypt, MD-5 and SHA-3 should never be used for password hashing and SHA-1/2(password+salt) are a big no-no as well. Currently the most vetted hashing algorithm providing most security is bcrypt. PBKDF2 isn’t bad either, but if you can use bcrypt you should. Scrypt, while still considered very secure, hasn’t been around for a long time, so it doesn’t get recommended a lot, but it seems it will become the successor of bcrypt, once it has been around a bit longer. Note that while there are some caveats and password bruteforcing strategies for PBKDF2 and bcrypt, they are still considered unfeasable for strong passwords (passwords longer than 8 characters, containing numbers, letters, signs and at least one capital letter).
I would also like to thank Thomas Pornin for supplying so much insights, reviewing my cryptography assumptions and for suggesting amendments. I would also like to thank CodesInChaos for answering my questions regarding PBKDF2 key generation.

https://security.blogoverflow.com/2013/09/about-secure-password-hashing/

Thursday, March 1, 2018

Tôi chống nồm thành công bằng xỉ than dù người khác chê cười

Sau 2 năm, sàn nhà tôi tuyệt đối không bị nồm trong khi nhà bên cạnh mới xây thì ướt sũng.

Vào những ngày đầu xuân ở miền Bắc, sàn nhiều nhà bị nồm, ướt, phải áp dụng các biện pháp tạm thời như lau khô, dùng máy hút ẩm. Để giải quyết triệt để, các gia chủ cần có biện pháp phòng chống ngay từ khi xây dựng.
 Độc giả Trung Phạm đã chia sẻ cách chống nồm cho ngôi nhà xây cách đây 2 năm:
Tôi làm nhà năm 2016, có tham khảo trên mạng cách chống nồm của người Pháp tại Việt Nam. Tôi sử dụng xỉ than kết hợp với cát hạt to để đổ nền. Khi đó, nhiều người xung quanh không tin và cười chê giải pháp của tôi.
Nếu nhà bị nồm, chủ nhà không được lau bằng khăn ướt, phải đóng kín cửa. Ảnh minh họa: Supermama.
Nếu nhà bị nồm, chủ nhà không được lau bằng khăn ướt, phải đóng kín cửa. Ảnh minh họa: Supermama. 
Tuy nhiên, sau 2 năm, sàn nhà tôi tuyệt đối không bị ướt vào mùa gió nồm. Bởi vậy, vợ tôi cảm thấy rất tự hào mỗi khi giao mùa, thấy sàn nhà mình luôn khô ráo trong khi các nhà khác phải đóng kín cửa, sử dụng máy hút ẩm. Các bước làm cụ thể như sau:
- Làm móng âm 70 cm so với cốt sàn dự kiến.
- Đổ 30 - 35 cm cát vàng hạt to, tưới đẫm nước.
- Rải 30 cm xỉ than lên trên.
- Đổ tiếp cát đồng thời tưới nước để cát lấp đầy các khoảng trống của xỉ than, đến khi thấy cát không xuống nữa thì dừng lại.
- Đầm chặt bề mặt sau đó rải vữa cát và xi măng để san mặt bằng càng mỏng càng tốt, khoảng 1-1,5 cm. Lưu ý cát to còn xi măng cho ít nhất có thể. Sau đó, lát gạch, gỗ theo sở thích.
Bạn nên chọn loại gạch không quá nhẵn để chúng có khả năng hút nước tốt. Tuy nhiên, nếu bạn thích gạch men bóng thì vẫn có thể sử dụng. Gia đình tôi chọn gạch 80x80 cm.
Cách làm sàn nhà chống nồm kiểu Pháp. Ảnh: Pace Architecture.
Cách làm sàn nhà chống nồm kiểu Pháp. Ảnh: Pace Architecture. 
KTS Ngọc Anh cho biết, giải pháp của gia đình anh Trung phù hợp với điều kiện của các ngôi nhà ở phía Bắc, sẽ giải quyết được hiệu quả tình trạng nồm. Dù gia chủ tốn kém công sức và chi phí hơn nhưng đây là công đoạn nhất thiết phải làm.
Kiến trúc sư cho biết thêm, sàn bị nồm thường xảy ra vào dịp đầu xuân, kéo dài vài ngày tới cả tuần. Khi gió nồm ẩm và ấm thổi về, sẽ tạo ra sự chênh lệch nhiệt độ của lớp đất dưới sàn nhà (lạnh) và bề mặt phía trên (ấm hơn). Hơi nước trong không khí ngưng tụ sẽ tạo thành các giọt nước trên sàn. Hiện tượng này giống như khi bạn để cốc nước lạnh trên bàn, sau ít phút, sẽ thấy mặt ngoài có nước đọng.
Các ngôi nhà trước đây ít có hiện tượng này vì dùng tường vôi, mái ngói, nền đất hấp thụ bớt nước. Các công trình Pháp cổ lát gạch hoa nhưng cũng không bị nồm do khâu làm nền cẩn thận. Việc sử dụng lớp xỉ than, cát vàng sẽ làm giảm sự chênh lệch nhiệt độ nói trên.
Giải pháp của anh Trung theo đúng cách của người Pháp trước đây áp dụng ở Việt Nam. Tùy công trình mà các kiến trúc sư có thể nâng sàn nhà cao hơn, có thể lên tới 1m.

Monday, September 11, 2017

generate nonce value in golang

package main

import (
"fmt"
"crypto/aes"
"crypto/cipher"
"crypto/rand"
"encoding/base64"
"math/big"
)

const nonceLen = 40

func main() {
nonce := make([]byte, 12)
for i := 0; i < 4; i++ {
nonce[i] = 0
}
if _, err := rand.Read(nonce[4:]); err != nil {
panic("Failure in NewCipher: " + err.Error())
}

// Encode counter to plaintext
pt := make([]byte, 16)
ctr := big.NewInt(11)
pad := 8 - len(ctr.Bytes())
fmt.Printf("pad = %d\n", pad)
copy(pt[pad:], ctr.Bytes())
fmt.Printf("pt = %d\n", pt)

// Encrypt AES256
key := make([]byte, 32)
if _, err := rand.Read(key); err != nil {
panic("Failure in NewCipher: " + err.Error())
}

c, err := aes.NewCipher(key)
if err != nil {
panic("Failure in NewCipher: " + err.Error())
}
gcm, err := cipher.NewGCM(c)
if err != nil {
panic("Failure in NewGCM: " + err.Error())
}
ret := make([]byte, nonceLen)
ct := gcm.Seal(nil, nonce, pt, nil)
copy(ret, nonce[4:])
copy(ret[8:], ct)
fmt.Println(base64.RawURLEncoding.EncodeToString(ret))

}

Wednesday, September 6, 2017

Using M2Crypto to connect with certificate authentication

ctx = SSL.Context()
ctx.set_verify(SSL.verify_peer | SSL.verify_fail_if_no_peer_cert, depth=9)
x509_store = ctx.get_cert_store()
x509_store.add_x509(CACertObject)
m2.ssl_ctx_use_x509(ctx.ctx, CertObject)
m2.ssl_ctx_use_pkey_privkey(ctx.ctx, PrivateKeyObject)
m2.ssl_ctx_check_privkey(ctx.ctx)
_ssl = SSL.Connection(ctx)
_ssl.connect((self._host, self._port))
sock = _ssl.socket

Monday, July 31, 2017

Cách rèn con thành tài của người Do Thái khiến mọi dân tộc phải nể phục

Ngay từ khi còn nhỏ, những đứa trẻ Do Thái đã được cha mẹ tôi luyện để trở thành người thành đạt.
 >> Dạy con bằng đòn roi - 7 lý do bố mẹ nên cân nhắc
 >> "Tôi sẽ không dạy con trai hào hiệp với phụ nữ"
 >> Hãy dạy con gái trước khi bé lên 10…

Chỉ có 14 triệu dân trên toàn thế giới nhưng người Do Thái có đến 160 người đã giành giải Noel ở khắp các lĩnh vực, chiếm khoảng 1/5 số giải thưởng trên toàn thế giới. Trong 1,426 tỷ phú thế giới thì người Do Thái chiếm 11,6% (165 người).
Ở Mỹ, người Do Thái chỉ chiếm 2% tổng số dân nhưng có tới 48% tỷ phú Mỹ là người Do Thái. Ông chủ Facebook, Mark Zuckerberg, là một trong những người Do Thái xuất chúng này.
Tại sao tỷ lệ thành đạt của người Do Thái lại cao đến vậy?
Bí quyết nằm ở cách dạy con đặc biệt của các gia đình người Do Thái.

Những đứa trẻ Do Thái được gây dựng niềm yêu sách và dạy cách đọc sách một cách khoa học từ khi còn rất nhỏ.
Những đứa trẻ Do Thái được gây dựng niềm yêu sách và dạy cách đọc sách một cách khoa học từ khi còn rất nhỏ.
Tặng con "tình yêu đống lửa"
Trong khi các dân tộc khác trú trọng vào chỉ số IQ (chỉ số thông minh) thì người Do Thái lại quan tâm đến chỉ số AQ (chỉ số vượt khó) và chỉ số EQ (chỉ số cảm xúc).
Theo người Do Thái, thành công có công thức như sau: 20% IQ + 80% (AQ + EQ) = 100% thành công. Rõ ràng ở công thức này, chỉ số thông minh chỉ là yếu tố phụ quyết định thành công của một đứa trẻ.
Để tăng chỉ số AQ và EQ cho trẻ, cha mẹ Do Thái thường không bao bọc con mà dành cho con “tình yêu đống lửa”. Tức là họ luôn tìm cách nhen nhóm, khích lệ để con phát huy khả năng chứ không phải cho con cảm giác bao bọc, che chở.
Ở trường học, trẻ cũng được dạy cách nhận diện khó khăn, thử thách và cách vượt qua chúng. Trẻ con nhà quý tộc thì càng phải rèn về chỉ số vượt khó.
Nghệ thuật đọc sách
Người Do Thái cực kỳ coi trọng việc đọc sách, đó cũng là lý do giúp họ trở thành một dân tộc thông thái. Ngay từ khi còn nhỏ, những đứa trẻ đã được cha mẹ gây dựng tình yêu với sách và dạy cách đọc sách một cách nghiêm túc, đọc để hiểu và thấm nhuần tri thức chứ không phải đọc “chơi chơi”.
Một cuốn sách trẻ sẽ đọc đi đọc lại nhiều lần, và mỗi lần đọc cấp độ hiểu về cuốn sách sẽ tăng lên. Cụ thể, đọc lần 1 để hiểu nội dung; lần 2 đọc từng phần để nắm các ý chính; lần 3 đọc để hiểu rõ hơn nội dung; lần 4 đọc để rút ra những gì tinh túy nhất của cuốn sách; lần 5 đọc đi đọc lại nội dung cuốn sách để hiểu tổng thể nội dung.

 Thay vì cho con tiền tiêu vặt, cha mẹ Do Thái tìm cách cho con tự kiếm tiền bằng sức lao động của con.
Thay vì cho con tiền tiêu vặt, cha mẹ Do Thái tìm cách cho con tự kiếm tiền bằng sức lao động của con.
Hỏi ngược lại con
Con trẻ thường rất tò mò và hay đặt câu hỏi cho người lớn, thay vì trả lời ngay các câu hỏi của con, cha mẹ Do Thái thường đặt các câu hỏi ngược lại để gợi ý cho con tự tìm ra câu trả lời. Cách này buộc trẻ phải động não, đồng thời cũng rèn cho trẻ tư duy phản biện rất tốt.
Dạy con kiếm tiền từ tuổi lên 5
Cha mẹ Do Thái dạy con tự lập từ khi còn rất nhỏ. 2-3 tuổi, đứa trẻ đã được dạy cách tự chăm sóc, tự phục vụ bản thân như đánh răng, dọn dẹp phòng, cất đồ chơi. Trẻ cũng đã biết hỗ trợ cha mẹ gấp quần áo, và sắp xếp đồ đạc, bỏ quần áo bẩn vào máy giặt.
Lên 5 tuổi, trẻ bắt đầy được dạy cách sử dụng sức lao động để kiếm tiền. Thay vì cho con tiền tiêu vặt, cha mẹ sẽ giao cho con một số việc nhà có trả tiền.
Điều đáng lưu ý ở đây là cha mẹ phân biệt rất rạch ròi giữa những việc trẻ buộc phải làm để phục vụ bản thân, tức không được trả tiền như sắp xếp sách vở, gấp quần áo của bản thân…; và những việc làm nào sẽ được trả tiền như tưới cây, lau dọn nhà cửa…

Wednesday, July 19, 2017

Dạy con tiêu tiền - kinh nghiệm từ 5 nước trên thế giới

Nhiều cha mẹ quan niệm trẻ nhỏ đã có người lớn lo lắng nên mọi việc chi tiêu liên quan đến đồng tiền thì con nít không nên tiếp xúc, không cần tìm hiểu. Bao giờ đủ lớn để nhận thức và biết cách chi tiêu, trẻ được dạy cách tiêu tiền chưa muộn. Tư duy này không phải là cách dạy con làm quen với tiền đúng đắn.
Khác với trẻ em Việt Nam, trẻ em sống ở một số quốc gia khác trên thế giới thường được dạy về tiền bạc từ rất sớm. Theo đó, để giúp trẻ hiểu hơn về giá trị của đồng tiền và sức lao động, cha mẹ sẽ hướng dẫn con cách lập kế hoạch chi tiêu, quản lý tiền bạc…
Hãy cũng xem các bà mẹ trên thế giới dạy con tiêu tiền như thế nào nhé!

Nhật: Dạy con tiết kiệm tiền bạc

Các trẻ em ở Nhật thường được bố mẹ cho tiền tiêu vặt vào ngày đầu tiên của tháng mới. Mức tiền tiêu vặt trẻ được nhận sau khi cha mẹ đã tính toán chi tiết mức chi tiêu, các khoản cần mua sắm cũng như mức sống tại khu vực họ đang sống.
Trẻ phải tự lên kế hoạch chi tiêu trong khoản tiền bố mẹ cho. Nếu muốn mua những món đồ có giá trị, trẻ sẽ phải tiết kiệm và cắt giảm những khoản chi không cần thiết. Bằng cách này, trẻ sẽ hiểu được rằng: tiền không phải là vô hạn, mỗi chúng ta cần phải biết tự chi tiêu trong khả năng của mình và hài lòng với nó.
Ngay khi còn là học sinh mầm non, mỗi em bé sẽ được bố mẹ cho tiền tiêu vặt 50-70 yên/ ngày. Các bé có thể mua cho mình bánh kẹo hoặc đồ chơi với giá từ 10-50 yên, vì vậy để mua được món đồ với giá 50 yên, các bé phải “nuôi heo”, điều đó tạo cho các bé khả năng tiết kiệm.
Người Nhật dạy con tiêu tiền theo từng lứa tuổiNgười Nhật dạy con tiêu tiền theo từng lứa tuổi
Lên bậc tiểu học, các bé bắt đầu được cho tiền tiêu vặt hàng tháng, đầu tiên là 1000 yên, để bé được mua thứ mình thích, đã sử dụng hết thì thôi, muốn mua thêm thứ khác thì cũng phải đợi tới tháng sau. Tùy từng gia đình mà quyết định khoản tiêu vặt đó được dùng để mua gì, có thể là đồ dùng học tập hay đồ chơi. Lớn hơn một chút thì số tiền tiêu vặt đó sẽ tăng, nhưng không quá nhiều.
Bố mẹ Nhật sẽ hướng dẫn các em ghi chép các khoản chi trong tháng, được cho bao nhiêu? mua cái gì? giá bao nhiêu?… Để các em tự hệ thống lại cái gì đáng mua và không đáng mua để tháng sau chi tiêu hợp lý hơn. Ngoài ra, bố mẹ Nhật luôn lên phương án dạy con phải có kế hoạch trong tương lai, muốn có “thù lao” thì phải lao động và tích lũy từng ngày. Ví dụ trong tuần này, bé được mời sinh nhật bạn vào thứ 4, để có thể mua được món quà tặng bạn thì phải tiết kiệm tiền tiêu vặt từ thứ 2, thứ 3. Hoặc để có thể mua được một chiếc ô tô điều khiển từ xa  mà bạn A có thì phải tự gấp quần áo, sắp xếp và dọn dẹp phòng ngủ, cắt cỏ hoặc cọ toilet…
Lên bậc Trung học cơ sở, mỗi em được cho tiền chi tiêu cá nhân trung bình từ 5000-8000 yên/ tháng, tùy theo kinh tế mỗi gia đình. Với số tiền đó, các em phải tự chi trả tất tần tật các khoản như: Đồ dùng cho học tập, mua sắm quần áo, giày dép, cắt tóc, sinh nhật bạn… nếu muốn mua khoản lớn hơn thì đương nhiên các em phải tiết kiệm. Tuy nhiên, không phải là quá chi li trong chi tiêu, bố mệ Nhật vẫn dạy con cái phải giúp đỡ chia sẻ với bạn bè chứ không phân bua rạch ròi. Thấy người cơ nhỡ khó khăn sẽ để trẻ tự dùng tiền tiêu vặt của mình cho họ và biết cách cư xử, quý trọng tình cảm con người.

Mỹ: 4 chiếc lọ thần kỳ

Tại hội thảo "Giáo dục con trẻ về tài chính" diễn ra ở TP HCM, bà Neale S.Godfrey, Giám đốc điều hành ngân hàng dành cho trẻ em đầu tiên trên thế giới (The First Children's Bank-Mỹ) cho rằng, lứa tuổi lên 3 các bé đã có thể nhận thức được những điều mình mong muốn, và đây là thời điểm thích hợp để cho các cháu làm quen với tiền.
Theo bà, trước hết bố mẹ hãy giúp trẻ hiểu được phương thức "làm thì mới được trả công". Điều này có nghĩa là phụ huynh sẽ p hân ra hai loại công việc giao cho trẻ. Một loại là việc mà con phải tự làm và không được nhận tiền như đánh răng, ăn uống, học giỏi… bởi đây là các hoạt động liên quan trực tiếp tới cá nhân cháu bắt buộc phải tự làm.
Loại việc bố mẹ sẽ trả tiền cho con như giao các cháu tưới cây, cho thú ăn, dọn dẹp phòng... nhằm khuyến khích tinh thần lao động và trách nhiệm của chúng với đồng tiền. Số tiền mà cha mẹ cho nên căn cứ vào số tuổi, chẳng hạn trẻ 3 tuổi thì mỗi lần hoàn thành tốt công việc được giao thì cho chúng 3.000 đồng, với trẻ 5 tuổi sẽ là 5.000 đồng...
Khi đã cho các con tiền thì bố mẹ sẽ tiến hành bước tiếp theo là giúp các cháu lập ngân sách một cách hợp lý. Để thực hiện việc này, bà Neale S.Godfrey giới thiệu mô hình "4 chiếc lọ".
Sẽ có 4 chiếc bình và mỗi chiếc bình sẽ được dán nhãn và mang ý nghĩa nhất định:
Lọ “save” - để dành: Khoản tiền tiết kiệm cho một mục đích cụ thể (30%).
Lọ “invest” – đầu tư: Khoản tiền để mẹ dạy bé cách đầu tư vào một mục đích nào đó (30%).
Lọ “donate” – cho đi: Khoản tiền dành cho những người có hoàn cảnh khó khăn hơn mình (10%).
Lọ “spend” – tiêu: Khoản tiền được tiêu tùy ý bé (30%).
4 chiếc bình thần kỳ4 chiếc bình thần kỳ
Theo đó, mỗi tuần các bé sẽ được cha mẹ cấp cho một khoản tiền. Số tiền này sẽ được chia đều vào 4 chiếc lọ hoặc dựa theo một tỷ lệ nào đó. Trẻ sẽ phải tự giữ và quản lý số tiền này. Khi trẻ muốn mua thứ gì đó, mẹ sẽ cùng bé xem giá tiền của món đồ bé định mua. Nếu món đồ ấy phù hợp với số tiền bé có, mẹ có thể để bé mua. Ngược lại, nếu món đồ đó có giá trị cao hơn số tiền bé đang có, mẹ cần giải thích cho con món đồ đó có thực sự cần thiết hay không và vạch ra cho con một kế hoạch tiết kiệm tiền để mua được món đồ đó.
Từ kinh nghiệm bản thân, bà không bao giờ muốn các con hiểu rằng yêu chúng là cho thứ này thứ nọ một cách vô điều kiện. Theo bà Neale S.Godfrey, hiện nay nhiều phụ nữ bận làm việc nên luôn muốn cho con em những thứ mà bạn bè chúng có. "Đừng vì bù đắp việc thiếu hụt thời gian mà cho con quà cáp, tiền bạc một cách vô điều kiện và không kiểm soát. Đây là điều rất xấu với con cái", bà Neale nhấn mạnh.

Đức: Chi tiêu có giới hạn

Nguyên tắc vàng khi dạy trẻ chi tiêu đó là hãy đưa ra mức tiền tiêu vặt nhất định, sau đó cho trẻ biết chúng chỉ được tiêu đúng số tiền được cho. Điều này dường như không mấy ý nghĩa với những trẻ còn quá bé, vì chúng sẽ lại móc ví ra để mua cây kem mà chúng thích mê dưới sự giám sát của cha mẹ.
Người Đức dạy cho trẻ em cách tiêu tiền từ rất sớm. Người mẹ cho con một đồng và nói, con chỉ có một đồng thôi, nếu con mua kẹo thì con sẽ không được chơi ô tô, và nếu con chơi ô tô thì con sẽ không mua kẹo. Và con sẽ chỉ được mua trong phạm vi giới hạn số tiền này. Khi đó, mẹ sẽ phải giải thích cho trẻ biết giá của đồ vật mà bé muốn là bao nhiêu, có hợp với túi tiền nhà mình không rồi gợi ý bé có nên mua nó hay không.
Nếu mua cái này thì sẽ thôi mua cái kiaNếu mua cái này thì sẽ thôi mua cái kia
Ngoài ra, mỗi khi mua cái gì cho bé thì mẹ đều đưa tiền cho con trả kèm theo "Con không được phép mang vật đó ra khỏi cửa hàng mà chưa trả tiền, như thế là không tốt, là phạm pháp". Sau rất nhiều lần như thế bé sẽ biết: “À phải trả tiền trước khi mang đồ đi”. Một điểm nữa trong cách dạy con tiêu tiền của mẹ Đức là không dạy con theo kiểu "Có tiền là mua được tất cả". Điều này sẽ tạo cho trẻ sớm có tính coi thường, hiểu sai về giá trị đồng tiền.
 
Tuy nhiên, với những trẻ lớn hơn, số tiền tiêu vặt ít ỏi cố định trong tháng sẽ dạy chúng cách suy xét và cân nhắc trước quyết định mua sắm. Trẻ sẽ học cách tính toán nên chọn mua hai chiếc quần giá rẻ hay chỉ mua một chiếc áo có giá đắt hơn. Nếu không tự suy xét, trẻ có thể trải qua mùa đông ‘lạnh giá’ với chiếc áo mùa hè đã lỡ mua trước đó.

Singapore: Cùng con lập kế hoạch mua sắm 

Tại Singapore, các Mẹ sẽ dạy con 2 bài học về cách tiêu tiền: Bài học “Muốn và Thích” và Bài học “Một thành viên lớn trong gia đình”.
Tại Singapore, thay vì mua cho con những thứ mà con thích thì các bà mẹ lại cùng con lập một danh sách những thứ mà con thích và tính toán từng khoản tiền cho từng hạng mục. Theo đó, mỗi tuần các con sẽ được trích 1/2 số tiền được bố mẹ cho để tiết kiệm cho kế hoạch lớn. Số còn lại các bé sẽ được tự quyết định để mua sắm những thứ mà mình thích. Bằng cách này, trẻ sẽ có trách nhiệm hơn khi sử dụng số tiền mà mình có được. Mặt khác, thông qua việc lập kế hoạch chi tiêu, các mẹ Singapore muốn con phải học được thứ tự ưu tiên khi mua đồ cũng như biết được đâu là cái mình cần và đâu là cái mình muốn để không rơi vào tình trạng lãng phí.
Các bà mẹ Singapore cho rằng “Bố Mẹ hoàn toàn có thể mua cho con cái những thứ mà con thích nhưng việc tự mua bằng tiền tiết kiệm của mình sẽ khiến con có trách nhiệm hơn với từng đồng mình kiếm được”. Mặt khác, các mẹ muốn con “phải học được thứ tự ưu tiên khi mua đồ cũng như biết được đâu là cái mình cần và đâu là cái mình muốn”.

Để dạy con biết tiêu tiền 1 cách tiết kiệm thì những bậc làm cha, làm mẹ tại Singapore luôn luôn làm gương cho trẻ. Mỗi khi đi siêu thị mua đồ cho gia đình thì các mẹ luôn hỏi ý kiến bé xem nên mua và không nên mua đồ gì? Cái gì thực sự cần thiết và hữu ích? Làm như vậy sẽ khiến cho trẻ cảm thấy mình được tôn trọng và là “một thành viên lớn” trong gia đình.

Do Thái: Dạy theo từng giai đoạn và 5 chiếc lọ

Khi mới bi bô tập nói, các bà mẹ Do Thái sẽ dạy trẻ cách phân biệt tiền xu và tiền giấy, nguồn gốc tiền từ đâu mà có và tiền có thể mua được những gì.
Khi trẻ lớn hơn một chút, các bà mẹ ở đây sẽ giao cho con một khoản tiền để con tự quản lý. Bằng cách này, trẻ sẽ học được cách mua sắm như thế nào cho đúng và cách tự chịu trách nhiệm về hành vi tiêu sài của mình.
Bước vào giai đoạn thứ ba, cha mẹ cần bồi dưỡng cho con cách kiếm tiền. Đây cũng chính là giai đoạn giúp con hiểu về giá trị đồng tiền, về những quy tắc kinh doanh như quay vòng vốn, lấy công làm lãi… Từ đó, trẻ sẽ hình thành tư duy tài chính linh hoạt.
Giai đoạn tiếp theo là dạy con cách quản lý tài sản thông qua các lựa chọn như gửi tiền vào ngân hàng để có lãi hay đầu tư vào một việc gì đó.
Cuối cùng, mẹ Do Thái không quên việc giáo dục quản lý tài sản cho con. Mục đích của việc này là giúp con hiểu được giá trị của sức lao động, biết được những kỹ năng cần thiết phục vụ cuộc sống tương lai.
Phương pháp 5 chiếc lọ chính là bài học về cách quản lý tiền nổi tiếng mà người Do Thái dạy con và nó lý giải tại sao người Do Thái làm kinh tế giỏi nhất thế giới.
Trẻ em Do Thái được dạy cả đầu tưTrẻ em Do Thái được dạy cả đầu tư
- Lọ "tiền tiêu": Bé có thể được sử dụng tùy ý (50%). Tiêu tiền cũng rất quan trọng nhưng hãy nghĩ đến nó cuối cùng sau khi bạn đã thanh toán hết các hóa đơn sinh hoạt cần thiết và bỏ tiền vào 4 chiếc lọ tdưới đây.
- Lọ "tiền tiết kiệm": Lọ này chỉ được mở khi đã đạt đủ số tiền cho một mục đích cụ thể như để mua sách, lego…(10%). Nhiều người có thói quen mua rất nhiều thứ nhỏ nhặt chỉ để thỏa mãn ham muốn nhất thời xong lại chẳng dùng đến. Trong khi đó, nếu biết tiết kiệm những khoản tiền nhỏ đó, bạn có thể mua được những thứ đáng giá hơn rất nhiều.
- Lọ "tiền từ thiện": Tiền trong lọ sẽ được dùng để giúp đỡ những người có hoàn cảnh khó khăn như ủng hộ các bé bị ung thư, nhân dân vùng bão lũ...(10%). Ông bà ta đã dạy "gieo nhân nào thì gặp quả đó", "cho sao nhận vậy" nên cứ yên tâm đối tốt với mọi người, bạn sẽ chẳng bao giờ phải chịu thiệt.
- Lọ "tiền đầu tư": Mẹ có thể hướng dẫn bé đầu tư nhỏ như mua sách truyện cho các bạn thuê, mua thêm bút chì, giấy màu để bán cho các bạn ở lớp…(20%). Tiết kiệm khó giúp bạn giàu được. Đầu tư mới là cách khiến tiền có thể đẻ ra tiền. Đó chính là lý do vì sao, chúng ta nên để dành 20% thu nhập kiếm được để đầu tư. 
- Lọ "tiền trả nợ": Tiền này dùng để trả các khoản nợ phát sinh (10%). Nhiều người có thói quen đi vay tiền để mua thứ mình muốn nhưng quá khả năng chi trả để rồi sau đó nợ nần chồng chất không thể thanh toán. Bởi vậy, nếu bạn có một món nợ, hãy bắt đầu áp dụng cách này để giải phóng bản thân khỏi chúng.
Tổng hợp trên Internet.